基于uC/OS-Ⅱ的光盘伺服控制系统的设计-设计应用_第1页
基于uC/OS-Ⅱ的光盘伺服控制系统的设计-设计应用_第2页
基于uC/OS-Ⅱ的光盘伺服控制系统的设计-设计应用_第3页
基于uC/OS-Ⅱ的光盘伺服控制系统的设计-设计应用_第4页
基于uC/OS-Ⅱ的光盘伺服控制系统的设计-设计应用_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档-下载后可编辑基于uC/OS-Ⅱ的光盘伺服控制系统的设计-设计应用光盘伺服控制系统是典型的光机电一体化的控制系统,是光盘驱动器和CD/VCD/DVD播放器的重要组成部分。目前业界普遍采用单片机与伺服控制数字信号处理器配合实现的结构,已可单片化(将单片机和伺服控制数字信号处理器集成在一块芯片上)实现光盘伺服控制系统。不论是芯片组的形式,还是单片化的形式,都少不了以板级控制软件(也称为固件)实现控制系统。目前普遍采用的方案是利用运行于单片机的小型嵌入式操作系统实现光盘伺服系统。为采用自行研发的光盘伺服信号处理器实现支持多格式光盘的伺服控制系统,笔者对光盘伺服控制系统做了比较深入的研究。本文介绍了一种以Hitachi的H8S/2357F作为控制处理器,μC/OS-II作为嵌入式实时操作系统的光盘伺服控制系统的设计和实现。

1光盘伺服控制系统的硬件设计

光盘伺服控制系统的硬件设计如图1所示。该设计采用自行研发的伺服数字信号处理器、Hitachi公司的H8S/2357F高性能16位微控制器、AKM公司的AK8566、TI公司的SSl3736等芯片实现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核的基础上建立起来,使其有机协调地运转,实现光盘伺服控制系统。

2.μC/OS-II嵌入式实时多任务操作系统

μC/OS-II是由JEANJ.LABROSSE编写的一个源代码公开、可使用的嵌入式实时操作系统。它是μC/OS的一个升级版本。从老的μCOS到的μC/OS-Ⅱ,已有十多年的历史。它的特点主要有:公开源代码、可移植性、可固化、可裁减、支持多任务、具有可确定性等。μ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表示了子系统之间的状态变化及其条件,比较明晰地表示了执行态的实现过程。

2.3伺服系统的软件结构

经过如上分析,光盘伺服系统初始化后,创建了五个任务:HostTask(主机任务)、SerialPortTask(串口任务)、DiskReadTask(读盘任务)、DiskWriteTask(写盘任务)、ServoTask(伺服任务)。任务间通过Semaphore(信号量)和Mailbox(邮箱)进行通信,实现交互控制和任务的切换。图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*)(HostTaskStk[511],10);OSTaskCreate(SerialCmdTask,(void*)0,(void*)SerialCmdTaskStk[511],3);OSTaskCreate(ServoTimerTask,(void*)0,(void*)ServoTimerTaskStk[511],)//产生信号量和任务参数//任务开始运行OSStart();}

本设计在Hitach

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论