基于uC/OS-Ⅱ的光盤伺服控制系統(tǒng)的設計-設計應用_第1頁
基于uC/OS-Ⅱ的光盤伺服控制系統(tǒng)的設計-設計應用_第2頁
基于uC/OS-Ⅱ的光盤伺服控制系統(tǒng)的設計-設計應用_第3頁
基于uC/OS-Ⅱ的光盤伺服控制系統(tǒng)的設計-設計應用_第4頁
基于uC/OS-Ⅱ的光盤伺服控制系統(tǒng)的設計-設計應用_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

精品文檔-下載后可編輯基于uC/OS-Ⅱ的光盤伺服控制系統(tǒng)的設計-設計應用光盤伺服控制系統(tǒng)是典型的光機電一體化的控制系統(tǒng),是光盤驅動器和CD/VCD/DVD播放器的重要組成部分。目前業(yè)界普遍采用單片機與伺服控制數(shù)字信號處理器配合實現(xiàn)的結構,已可單片化(將單片機和伺服控制數(shù)字信號處理器集成在一塊芯片上)實現(xiàn)光盤伺服控制系統(tǒng)。不論是芯片組的形式,還是單片化的形式,都少不了以板級控制軟件(也稱為固件)實現(xiàn)控制系統(tǒng)。目前普遍采用的方案是利用運行于單片機的小型嵌入式操作系統(tǒng)實現(xiàn)光盤伺服系統(tǒng)。為采用自行研發(fā)的光盤伺服信號處理器實現(xiàn)支持多格式光盤的伺服控制系統(tǒng),筆者對光盤伺服控制系統(tǒng)做了比較深入的研究。本文介紹了一種以Hitachi的H8S/2357F作為控制處理器,μC/OS-II作為嵌入式實時操作系統(tǒng)的光盤伺服控制系統(tǒng)的設計和實現(xiàn)。

1光盤伺服控制系統(tǒng)的硬件設計

光盤伺服控制系統(tǒng)的硬件設計如圖1所示。該設計采用自行研發(fā)的伺服數(shù)字信號處理器、Hitachi公司的H8S/2357F高性能16位微控制器、AKM公司的AK8566、TI公司的SSl3736等芯片實現(xiàn)CD-ROM、DVD和CD-R/RW的伺服功能。并在該系統(tǒng)中完成對自行研發(fā)的光盤伺服數(shù)字信號處理器設計的驗證,為光盤伺服系統(tǒng)的產品化做好準備。

2光盤伺服控制系統(tǒng)的軟件設計

系統(tǒng)分析和軟件設計是光盤伺服控制系統(tǒng)實現(xiàn)的難點之一,設計的優(yōu)劣關系到系統(tǒng)的讀碟能力、使用壽命、穩(wěn)定性、擴展性、維護性等性能。因為要兼顧DVD、CD和CD-R/RW等光盤格式和各種不同的機械參數(shù)的設置,伺服控制軟件的設計變得相對復雜。為了使控制邏輯明了和易于實現(xiàn),采用在H8S/2357F上運行μC/OS-II實現(xiàn)光盤伺服控制系統(tǒng)是一個比較好的選擇。H8S/2357F的資源比較豐富,μC/OS-II在H8上可以很好地運行,易于系統(tǒng)的開發(fā)。

光盤伺服系統(tǒng)設計的關鍵是分析光盤伺服系統(tǒng),把各個功能在μC/OS-II核的基礎上建立起來,使其有機協(xié)調地運轉,實現(xiàn)光盤伺服控制系統(tǒng)。

2.μC/OS-II嵌入式實時多任務操作系統(tǒng)

μC/OS-II是由JEANJ.LABROSSE編寫的一個源代碼公開、可使用的嵌入式實時操作系統(tǒng)。它是μC/OS的一個升級版本。從老的μCOS到的μC/OS-Ⅱ,已有十多年的歷史。它的特點主要有:公開源代碼、可移植性、可固化、可裁減、支持多任務、具有可確定性等。μC/OS-II面向中小型嵌入式系統(tǒng),是基于優(yōu)先級搶占式的實時多任務操作系統(tǒng),包含了實時內核、任務管理、時間管理、任務間通信同步(信號量、郵箱、消息隊列)和內存管理等功能,絕大部分代碼用C語言編寫,與硬件相關部分用匯編語言編寫。

基于μC/OS-II的應用系統(tǒng)工作時,首先把CPU初始化;接著進行操作系統(tǒng)初始化,主要完成任務控制塊(TCB)初始化、TCB優(yōu)先級表初始化、空任務的創(chuàng)建等;然后開始創(chuàng)建新任務,并可在新創(chuàng)建的任務中再創(chuàng)建其他的新任務;調用OSSTART()函數(shù)啟動多任務調度。

2.2光盤伺服系統(tǒng)的分析

對光盤伺服控制系統(tǒng)的設計和實現(xiàn)已有一些參考資料。根據(jù)μC/OS-II的特點和光盤伺服系統(tǒng)工作的具體情況,筆者將實現(xiàn)的光盤伺服系統(tǒng)分為三個運行狀態(tài):Power-OnState(上電態(tài))、IdleState(空閑態(tài))、ExecutionState(執(zhí)行態(tài))。圖2表示了設定的三個狀態(tài)之間的關系和進入各個狀態(tài)的條件。三個狀態(tài)中,執(zhí)行態(tài)為復雜。為了把復雜的問題簡單化,把執(zhí)行態(tài)劃分為三個子系統(tǒng):HostInterface(HIS)、BufferManager(BM)、DiskInterface(DIS)。圖3表示了這三個子系統(tǒng)之間的聯(lián)系和進入跳出各個子系統(tǒng)的條件。圖4表示了子系統(tǒng)之間的狀態(tài)變化及其條件,比較明晰地表示了執(zhí)行態(tài)的實現(xiàn)過程。

2.3伺服系統(tǒng)的軟件結構

經過如上分析,光盤伺服系統(tǒng)初始化后,創(chuàng)建了五個任務:HostTask(主機任務)、SerialPortTask(串口任務)、DiskReadTask(讀盤任務)、DiskWriteTask(寫盤任務)、ServoTask(伺服任務)。任務間通過Semaphore(信號量)和Mailbox(郵箱)進行通信,實現(xiàn)交互控制和任務的切換。圖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],)//產生信號量和任務參數(shù)//任務開始運行OSStart();}

本設計在Hitach

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論