光盤伺服控制系統是典型的光機電一體化的控制系統,是光盤驅動器和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是由JEAN J.LABROSSE編寫的一個源代碼公開、可免費使用的嵌入式實時操作系統。它是μC/OS的一個升級版本。從最老的μCOS到最新的μC/OS-II,已有十多年的歷史。它的特點主要有:公開源代碼、可移植性、可固化、可裁減、支持多任務、具有可確定性等。μC/OS-II面向中小型嵌入式系統,是基于優先級搶占式的實時多任務操作系統,包含了實時內核、任務管理、時間管理、任務間通信同步(信號量、郵箱、消息隊列)和內存管理等功能,絕大部分代碼用C語言編寫,與硬件相關部分用匯編語言編寫。
基于μC/OS-II的應用系統工作時,首先把CPU初始化;接著進行操作系統初始化,主要完成任務控制塊(TCB)初始化、TCB優先級表初始化、空任務的創建等;然后開始創建新任務,并可在新創建的任務中再創建其他的新任務;最后調用OSSTART()函數啟動多任務調度。
2.2 光盤伺服系統的分析
對光盤伺服控制系統的設計和實現已有一些參考資料。根據μC/OS-II的特點和光盤伺服系統工作的具體情況,筆者將實現的光盤伺服系統分為三個運行狀態:Power-On State(上電態)、Idle State(空閑態)、Execution State(執行態)。圖2表示了設定的三個狀態之間的關系和進入各個狀態的條件。三個狀態中,執行態最為復雜。為了把復雜的問題簡單化,把執行態劃分為三個子系統:Host Interface(HIS)、Buffer Manager(BM)、 Disk Interface(DIS)。圖3表示了這三個子系統之間的聯系和進入跳出各個子系統的條件。圖4表示了子系統之間的狀態變化及其條件,比較明晰地表示了執行態的實現過程。
圖4 執行態子系統的任務狀態運行關系
2.3 伺服系統的軟件結構
經過如上分析,光盤伺服系統初始化后,創建了五個任務:Host Task(主機任務)、Serial Port Task(串口任務)、Disk Read Task(讀盤任務)、Disk Write Task(寫盤任務)、Servo Task(伺服任務)。任務間通過Semaphore(信號量)和Mailbox(郵箱)進行通信,實現交互控制和任務的切換。圖5表明了這五個任務之間的關系。
圖5 光盤伺服系統的任務結構框圖
下面給出主程序的框架:
void main (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的功能,適用于光盤伺服控制系統,具有便于維護、易于擴展等優點。對于支持多格式光盤的驅動器和播放器的實現,具有重要的參考價值。
相關推薦
UC/OS-II操作系統——任務(一)
uC/OS-II系統開發的6條重要總結
uC/OS-II實時操作系統移植技巧
uC/OS-II源碼包的下載
uC/OS-II簡介
uC/OS-II簡介
uC/OS-II簡介
uC/OS-II簡介
uC/OS-II簡介
uC/OS-II簡介
μC/OS-II下通用驅動框架該怎樣去設計?
μC/OS-II在P89V51RD2上是怎樣實現移植的?
μC/OS-II在SOC芯片C8051F041上的移植
μC/OS-II實現牙椅控制系統
μC/OS-II的中斷按鍵怎么處理?
μC/OS-II的特點
μC/OS-II的移植方法
μC/OS-II操作系統在各種處理器上的移植
μC/OS-II操作系統在各類處理器怎么移植?
μC/OS-II在總線式數據采集系統中有哪些應用?
μClinux/μC/OS-II/eCos/FreeRTOS和都江堰操作系統的特點及不足是什么?
μClinux/μC/OS-II/eCos/FreeRTOS的特點及不足是什么
【圖書分享】嵌入式實時操作系統μC/OS-II經典實例
【干貨分享】μC/OS-II 軟件定時器的分析與測試
為什么想學uc/OS-II
基于μC/OS-II怎么設計混合動力整車控制器?
如何實現μC/OS-II在AT89C51上的移植?
如何實現μC/OS-II的移植?
如何將LwIP協議棧移植到μC/OS-II實時操作系統上去呢
嵌入式實時操作系統μC/OS-II在LPC2378上怎么移植?
嵌入式實時操作系統μC/OS-II在S12單片機上的移植
嵌入式軟件使用c語言編程,μC/OS-II系統,用什么靜態分析...
請問有邵貝貝翻譯的《嵌入式實時操作系統uC/OS-II》光盤資料嗎?
適用于μC/OS-II的低功耗模式
采用μC/OS-II的事件記錄和查詢系統
基于μC/OS-II的嵌入式音頻系統設計
![](https://skin.elecfans.com/images/2021-soft/load.png)
μC/OS-II 在Nios上的移植
![](https://skin.elecfans.com/images/2021-soft/load.png)
μC/OS-II 任務調度機制的改進
![](https://skin.elecfans.com/images/2021-soft/load.png)
μC OS-II 在S3C44B0X 處理器上的移植
![](https://skin.elecfans.com/images/2021-soft/load.png)
μC OS-II 在Nios 上的移植1
![](https://skin.elecfans.com/images/2021-soft/load.png)
基于μC/OS-II的文件系統設計
![](https://skin.elecfans.com/images/2021-soft/load.png)
嵌入式μC/OS-II在LPC2104上的移植及通信設計
![](https://skin.elecfans.com/images/2021-soft/load.png)
基于嵌入式系統μC/OS-II的雙CAN通信構件
![](https://skin.elecfans.com/images/2021-soft/load.png)
輕型PPP協議在μC/OS-II操作系統中的實現
![](https://skin.elecfans.com/images/2021-soft/load.png)
μC/OS-II在壓力測控系統中的應用
![](https://skin.elecfans.com/images/2021-soft/load.png)
μC/OS-II在PC機上移植的設計與實現
![](https://skin.elecfans.com/images/2021-soft/load.png)
實時操作系統OS-II在ARM7上的移植
![](https://skin.elecfans.com/images/2021-soft/load.png)
μC/OS-II在S3C44BOX處理器上的移植
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A4/2B/wKgZomUMMveAF8sdAAB_D86Cb8k358.gif)
μC/OS-II任務棧處理的改進設計
![](https://skin.elecfans.com/images/2021-soft/eye.png)
用協處理器提高μC/OS-II的實時性
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A4/AC/wKgZomUMNTiAMVZpAAAQo0nUwDI699.gif)
μC/OS-II實時性能測試與分析
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A4/AC/wKgZomUMNTqAEawLAAAF0kAg7aQ264.gif)
一種用于光盤伺服控制系統的通用濾波器的設計
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A4/D7/wKgZomUMNeuAffiEAABEvZgAOLg018.jpg)
μC/OS-II在EP7312上的移植
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A5/06/wKgZomUMNpmAbviOAAAfSr6Q5nQ876.gif)
基于μC/OS-II的顯示控制系統開發
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A5/6E/wKgZomUMOGeAbZgTAABzeNbtUgI376.jpg)
μC/OS-II操作系統在各種處理器上的移植
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A5/98/wKgZomUMOSaAc4XYAABCe3RKaRw086.jpg)
基于μC/OS-II的智能拆焊、回流焊溫度控制系統
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A5/D4/wKgZomUMOlCABT4tAAAXGa5dcUw285.jpg)
μC/OS-II中縮短中斷關閉時間方法
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A5/E4/wKgZomUMOqaAEYGxAAAKWj-Xng8704.jpg)
基于uC/OS-II的變頻器結構控制系統設計
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A6/01/wKgZomUMOz2AMcDiAAAWLZk91ks972.jpg)
基于μC/OS-II操作系統實現在P89V51RD2微控制器上運行
![](https://skin.elecfans.com/images/2021-soft/eye.png)
評論