现在位置:范文先生网>理工论文>电子通信论文>基于μC/OS-II的光盘伺服控制系统的设计

基于μC/OS-II的光盘伺服控制系统的设计

时间:2022-08-06 10:04:44 电子通信论文 我要投稿
  • 相关推荐

基于μC/OS-II的光盘伺服控制系统的设计

  摘要:介绍以Hitachi公司的H8S/2357F作为控制处理器,μC/OS-II作为嵌入式实时操作系统的光盘伺服控制系统的设计和实现。该设计可以实现CD-ROM、CD-R/RW和DVD的伺服功能,适用于光盘伺服控制系统,具有便于维护、易于扩展等优点,对于支持多格式光盘的驱动器和播放器的实现,具有重要的参考价值。
  关键词:μC/OS-II嵌入式实时操作系统伺服控制光盘
  
  光盘伺服控制系统是典型的光机电一体化的控制系统,是光盘驱动器和CD/VCD/DVD播放器的重要组成部分。目前业界普遍采用单片机与伺服控制数字信号处理器配合实现的结构,已可单片化(将单片机和伺服控制数字信号处理器集成在一块芯片上)实现光盘伺服控制系统。不论是芯片组的形式,还是单片化的形式,都少不了以板级控制软件(也称为固件)实现控制系统。目前普遍采用的方案是利用运行于单片机的小型嵌入式操作系统实现光盘伺服系统。
  
  为采用自行研发的光盘伺服信号处理器实现支持多格式光盘的伺服控制系统,笔者对光盘伺服控制系统做了比较深入的研究。本文介绍了一种以Hitachi的H8S/2357F作为控制处理器,μC/OS-II作为嵌入式实时操作系统的光盘伺服控制系统的设计和实现。
  
  1光盘伺服控制系统的硬件设计
  
  光盘伺服控制系统的硬件设计如图1所示。该设计采用自行研发的伺服数字信号处理器、Hitachi公司的H8S/2357F高性能16位微控制器、AKM公司的AK8566、TI公司的SSI3736等芯片实现CD-ROM、DVD和CD-R/RW的伺服功能。并在该系统中完成对自行研发的光盘伺服数字信号处理器设计的验证,为光盘伺服系统的产品化做好准备。
  
  2光盘伺服控制系统的软件设计
  
  系统分析和软件设计是光盘伺服控制系统实现的难点之一,设计的优劣关系到系统的读碟能力、使用寿命、稳定性、扩展性、维护性等性能。因为要兼顾DVD、CD和CD-R/RW等光盘格式和各种不同的机械参数的设置,伺服控制软件的设计变得相对复杂。为了使控制逻辑明了和易于实现,采用在H8S/2357F上运行μC/OS-II实现光盘伺服控制系统是一个比较好的选择。H8S/2357F的资源比较丰富,μC/OS-II在H8上可以很好地运行,易于系统的开发。
  
  光盘伺服系统设计的关键是分析光盘伺服系统,把各个功能在μC/OS-II核的基础上建立起来,使其有机协调地运转,实现光盘伺服控制系统。
  
  图3执行态的子系统之间的通信和切换关系
  
  2.1μC/OS-II嵌入式实时多任务操作系统
  
  μC/OS-II是由JEANJ.LABROSSE编写的一个源代码公开、可免费使用的嵌入式实时操作系统。它是μC/OS的一个升级版本。从最老的μCOS到最新的μC/OS-II,已有十多年的历史。它的特点主要有:公开源代码、可移植性、可固化、可裁减、支持多任务、具有可确定性等。μC/OS-II面向中小型嵌入式系统,是基于优先级抢占式的实时多任务操作系统,包含了实时内核、任务管理、时间管理、任务间通信同步(信号量、邮箱、消息队列)和内存管理等功能,绝大部分代码用C语言编写,与硬件相关部分用汇编语言编写。
  
  基于μC/OS-II的应用系统工作时,首先把CPU初始化;接着进行操作系统初始化,主要完成任务控制块(TCB)初始化、TCB优先级表初始化、空任务的创建等;然后开始创建新任务,并可在新创建的任务中再创建其他的新任务;最后调用OSSTART()函数启动多任务调度。
  
  2.2光盘伺服系统的分析
  
  对光盘伺服控制系统的设计和实现已有一些参考资料。根据μC/OS-II的特点和光盘伺服系统工作的具体情况,笔者将实现的光盘伺服系统分为三个运行状态:Power-OnState(上电态)、IdleState(空闲态)、ExecutionState(执行态)。图2表示了设定的三个状态之间的关系和进入各个状态的条件。三个状态中,执行态最为复杂。为了把复杂的问题简单化,把执行态划分为三个子系统:HostInterface(HIS)、BufferManager(BM)、DiskInterface(DIS)。图3表示了这三个子系统之间的联系和进入跳出各个子系统的条件。图4表示了子系统之间的状态变化及其条件,比较明晰地表示了执行态的实现过程。
  
  图4执行态子系统的任务状态运行关系
  
  2.3伺服系统的软件结构
  
  
  
  
  经过如上分析,光盘伺服系统初始化后,创建了五个任务:HostTask(主机任务)、SerialPortTask(串口任务)、DiskReadTask(读盘任务)、DiskWriteTask(写盘任务)、ServoTask(伺服任务)。任务间通过Semaphore(信号量)和Mailbox(邮箱)进行通信,实现交互控制和任务的切换。图5表明了这五个任务之间的关系。
  
  图5光盘伺服系统的任务结构框图
  
  下面给出主程序的框架:
  
  voidmain(void)
  
  {
  
  //初始化处理器和硬件
  
  ……
  
  //产生任务
  
  OSTaskCreate(ServoTask,(void*)0,(void*)&ServoTaskStk[511],4);
  
  OSTaskCreate(DiscWrTask,(void*)0,(void*)&DiscWTaskStk[511],6);
  
  OSTaskCreate(DiscRdTask,(void*)0,(void*)&DiscRdTaskStk[511],8);
  
  OSTaskCreate(HostTask,(void*)0,(void*)&HostTaskStk3[511],10);
  
  OSTaskCreate(SerialCmdTask,(void*)0,(void*)&SerialCmdTaskStk[511],3);
  
  OSTaskCreate(ServoTimerTask,(void*)0,(void*)&ServoTimerTaskStk[511],1);
  
  //产生信号量和任务参数
  
  ……
  
  //任务开始运行
  
  OSStart();
  
  }
  
  本设计在Hitachi公司提供的开发系统HEW2上编译实现,并在验证系统实测。结果显示:该设计可以实现CD-ROM、DVD和CD-R/RW的功能,适用于光盘伺服控制系统,具有便于维护、易于扩展等优点。对于支持多格式光盘的驱动器和播放器的实现,具有重要的参考价值。
  
  
  
  

【基于μC/OS-II的光盘伺服控制系统的设计】相关文章:

MicroC/OS-II在80C196上的移植实现08-19

实现基于Spring框架应用的权限控制系统08-19

基于μC/OS的嵌入式系统应用开发研究08-19

基于RI-R6C-001A IC与ISO15693标准的读卡器设计04-12

《动物儿歌》基于标准的教学设计08-17

《z c s》教学设计05-01

基于Client/Server 的课件系统的设计与实现04-12

《z c s》教案设计05-01

基于Verilog HDL设计的自动数据采集系统04-12

基于文体学法要点与问题策略的练习设计08-15