基于uC/OS-Ⅱ的光盤伺服控制系統(tǒng)的設(shè)計(jì)
發(fā)布時間:2008/6/3 0:00:00 訪問次數(shù):1311
為采用自行研發(fā)的光盤伺服信號處理器實(shí)現(xiàn)支持多格式光盤的伺服控制系統(tǒng),筆者對光盤伺服控制系統(tǒng)做了比較深入的研究。本文介紹了一種以hitachi的h8s/2357f作為控制處理器,μc/os-ii作為嵌入式實(shí)時操作系統(tǒng)的光盤伺服控制系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)。
1光盤伺服控制系統(tǒng)的硬件設(shè)計(jì)
光盤伺服控制系統(tǒng)的硬件設(shè)計(jì)如圖1所示。該設(shè)計(jì)采用自行研發(fā)的伺服數(shù)字信號處理器、hitachi公司的h8s/2357f高性能16位微控制器、akm公司的ak8566、ti公司的ssl3736等芯片實(shí)現(xiàn)cd-rom、dvd和cd-r/rw的伺服功能。并在該系統(tǒng)中完成對自行研發(fā)的光盤伺服數(shù)字信號處理器設(shè)計(jì)的驗(yàn)證,為光盤伺服系統(tǒng)的產(chǎn)品化做好準(zhǔn)備。
2光盤伺服控制系統(tǒng)的軟件設(shè)計(jì)
系統(tǒng)分析和軟件設(shè)計(jì)是光盤伺服控制系統(tǒng)實(shí)現(xiàn)的難點(diǎn)之一,設(shè)計(jì)的優(yōu)劣關(guān)系到系統(tǒng)的讀碟能力、使用壽命、穩(wěn)定性、擴(kuò)展性、維護(hù)性等性能。因?yàn)橐骖檇vd、cd和cd-r/rw等光盤格式和各種不同的機(jī)械參數(shù)的設(shè)置,伺服控制軟件的設(shè)計(jì)變得相對復(fù)雜。為了使控制邏輯明了和易于實(shí)現(xiàn),采用在h8s/2357f上運(yùn)行μc/os-ii實(shí)現(xiàn)光盤伺服控制系統(tǒng)是一個比較好的選擇。h8s/2357f的資源比較豐富,μc/os-ii在h8上可以很好地運(yùn)行,易于系統(tǒng)的開發(fā)。
光盤伺服系統(tǒng)設(shè)計(jì)的關(guān)鍵是分析光盤伺服系統(tǒng),把各個功能在μc/os-ii核的基礎(chǔ)上建立起來,使其有機(jī)協(xié)調(diào)地運(yùn)轉(zhuǎn),實(shí)現(xiàn)光盤伺服控制系統(tǒng)。
2.μc/os-ii嵌入式實(shí)時多任務(wù)操作系統(tǒng)
μc/os-ii是由jean j.labrosse編寫的一個源代碼公開、可免費(fèi)使用的嵌入式實(shí)時操作系統(tǒng)。它是μc/os的一個升級版本。從最老的μcos到最新的μc/os-ⅱ,已有十多年的歷史。它的特點(diǎn)主要有:公開源代碼、可移植性、可固化、可裁減、支持多任務(wù)、具有可確定性等。μc/os-ii面向中小型嵌入式系統(tǒng),是基于優(yōu)先級搶占式的實(shí)時多任務(wù)操作系統(tǒng),包含了實(shí)時內(nèi)核、任務(wù)管理、時間管理、任務(wù)間通信同步(信號量、郵箱、消息隊(duì)列)和內(nèi)存管理等功能,絕大部分代碼用c語言編寫,與硬件相關(guān)部分用匯編語言編寫。
基于μc/os-ii的應(yīng)用系統(tǒng)工作時,首先把cpu初始化;接著進(jìn)行操作系統(tǒng)初始化,主要完成任務(wù)控制塊(tcb)初始化、tcb優(yōu)先級表初始化、空任務(wù)的創(chuàng)建等;然后開始創(chuàng)建新任務(wù),并可在新創(chuàng)建的任務(wù)中再創(chuàng)建其他的新任務(wù);最后調(diào)用osstart()函數(shù)啟動多任務(wù)調(diào)度。
2.2光盤伺服系統(tǒng)的分析
對光盤伺服控制系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)已有一些參考資料。根據(jù)μc/os-ii的特點(diǎn)和光盤伺服系統(tǒng)工作的具體情況,筆者將實(shí)現(xiàn)的光盤伺服系統(tǒng)分為三個運(yùn)行狀態(tài):power-on state(上電態(tài))、idlestate(空閑態(tài))、execution state(執(zhí)行態(tài))。圖2表示了設(shè)定的三個狀態(tài)之間的關(guān)系和進(jìn)入各個狀態(tài)的條件。三個狀態(tài)中,執(zhí)行態(tài)最為復(fù)雜。為了把復(fù)雜的問題簡單化,把執(zhí)行態(tài)劃分為三個子系統(tǒng):host interface(his)、buffer manager(bm)、 disk interface(dis)。圖3表示了這三個子系統(tǒng)之間的聯(lián)系和進(jìn)入跳出各個子系統(tǒng)的條件。圖4表示了子系統(tǒng)之間的狀態(tài)變化及其條件,比較明晰地表示了執(zhí)行態(tài)的實(shí)現(xiàn)過程。
|
2.3伺服系統(tǒng)的軟件結(jié)構(gòu)
經(jīng)過如上分析,光盤伺服系統(tǒng)初始化后,創(chuàng)建了五個任務(wù):host task(主機(jī)任務(wù))、serial port task(串口任務(wù))、disk read task(讀盤任務(wù))、disk write task(寫盤任務(wù))、servo task(伺服任務(wù))。任務(wù)間通過semaphore(信號量)和mailbox(郵箱)進(jìn)行通信,實(shí)現(xiàn)交互控制和任務(wù)的切換。圖5表明了這五個任務(wù)之間的關(guān)系。
光盤伺服控制系統(tǒng)是典型的光機(jī)電一體化的控制系統(tǒng),是光盤驅(qū)動器和cd/vcd/dvd播放器的重要組成部分。目前業(yè)界普遍采用單片機(jī)與伺服控制數(shù)字信號處理器配合實(shí)現(xiàn)的結(jié)構(gòu),已可單片化(將單片機(jī)和伺服控制數(shù)字信號處理器集成在一塊芯片上)實(shí)現(xiàn)光盤伺服控制系統(tǒng)。不論是芯片組的形式,還是單片化的形式,都少不了以板級控制軟件(也稱為固件)實(shí)現(xiàn)控制系統(tǒng)。目前普遍采用的方案是利用運(yùn)行于單片機(jī)的小型嵌入式操作系統(tǒng)實(shí)現(xiàn)光盤伺服系統(tǒng)。
為采用自行研發(fā)的光盤伺服信號處理器實(shí)現(xiàn)支持多格式光盤的伺服控制系統(tǒng),筆者對光盤伺服控制系統(tǒng)做了比較深入的研究。本文介紹了一種以hitachi的h8s/2357f作為控制處理器,μc/os-ii作為嵌入式實(shí)時操作系統(tǒng)的光盤伺服控制系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)。 1光盤伺服控制系統(tǒng)的硬件設(shè)計(jì) 光盤伺服控制系統(tǒng)的硬件設(shè)計(jì)如圖1所示。該設(shè)計(jì)采用自行研發(fā)的伺服數(shù)字信號處理器、hitachi公司的h8s/2357f高性能16位微控制器、akm公司的ak8566、ti公司的ssl3736等芯片實(shí)現(xiàn)cd-rom、dvd和cd-r/rw的伺服功能。并在該系統(tǒng)中完成對自行研發(fā)的光盤伺服數(shù)字信號處理器設(shè)計(jì)的驗(yàn)證,為光盤伺服系統(tǒng)的產(chǎn)品化做好準(zhǔn)備。 2光盤伺服控制系統(tǒng)的軟件設(shè)計(jì) 系統(tǒng)分析和軟件設(shè)計(jì)是光盤伺服控制系統(tǒng)實(shí)現(xiàn)的難點(diǎn)之一,設(shè)計(jì)的優(yōu)劣關(guān)系到系統(tǒng)的讀碟能力、使用壽命、穩(wěn)定性、擴(kuò)展性、維護(hù)性等性能。因?yàn)橐骖檇vd、cd和cd-r/rw等光盤格式和各種不同的機(jī)械參數(shù)的設(shè)置,伺服控制軟件的設(shè)計(jì)變得相對復(fù)雜。為了使控制邏輯明了和易于實(shí)現(xiàn),采用在h8s/2357f上運(yùn)行μc/os-ii實(shí)現(xiàn)光盤伺服控制系統(tǒng)是一個比較好的選擇。h8s/2357f的資源比較豐富,μc/os-ii在h8上可以很好地運(yùn)行,易于系統(tǒng)的開發(fā)。 光盤伺服系統(tǒng)設(shè)計(jì)的關(guān)鍵是分析光盤伺服系統(tǒng),把各個功能在μc/os-ii核的基礎(chǔ)上建立起來,使其有機(jī)協(xié)調(diào)地運(yùn)轉(zhuǎn),實(shí)現(xiàn)光盤伺服控制系統(tǒng)。 2.μc/os-ii嵌入式實(shí)時多任務(wù)操作系統(tǒng) μc/os-ii是由jean j.labrosse編寫的一個源代碼公開、可免費(fèi)使用的嵌入式實(shí)時操作系統(tǒng)。它是μc/os的一個升級版本。從最老的μcos到最新的μc/os-ⅱ,已有十多年的歷史。它的特點(diǎn)主要有:公開源代碼、可移植性、可固化、可裁減、支持多任務(wù)、具有可確定性等。μc/os-ii面向中小型嵌入式系統(tǒng),是基于優(yōu)先級搶占式的實(shí)時多任務(wù)操作系統(tǒng),包含了實(shí)時內(nèi)核、任務(wù)管理、時間管理、任務(wù)間通信同步(信號量、郵箱、消息隊(duì)列)和內(nèi)存管理等功能,絕大部分代碼用c語言編寫,與硬件相關(guān)部分用匯編語言編寫。 基于μc/os-ii的應(yīng)用系統(tǒng)工作時,首先把cpu初始化;接著進(jìn)行操作系統(tǒng)初始化,主要完成任務(wù)控制塊(tcb)初始化、tcb優(yōu)先級表初始化、空任務(wù)的創(chuàng)建等;然后開始創(chuàng)建新任務(wù),并可在新創(chuàng)建的任務(wù)中再創(chuàng)建其他的新任務(wù);最后調(diào)用osstart()函數(shù)啟動多任務(wù)調(diào)度。 2.2光盤伺服系統(tǒng)的分析 對光盤伺服控制系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)已有一些參考資料。根據(jù)μc/os-ii的特點(diǎn)和光盤伺服系統(tǒng)工作的具體情況,筆者將實(shí)現(xiàn)的光盤伺服系統(tǒng)分為三個運(yùn)行狀態(tài):power-on state(上電態(tài))、idlestate(空閑態(tài))、execution state(執(zhí)行態(tài))。圖2表示了設(shè)定的三個狀態(tài)之間的關(guān)系和進(jìn)入各個狀態(tài)的條件。三個狀態(tài)中,執(zhí)行態(tài)最為復(fù)雜。為了把復(fù)雜的問題簡單化,把執(zhí)行態(tài)劃分為三個子系統(tǒng):host interface(his)、buffer manager(bm)、 disk interface(dis)。圖3表示了這三個子系統(tǒng)之間的聯(lián)系和進(jìn)入跳出各個子系統(tǒng)的條件。圖4表示了子系統(tǒng)之間的狀態(tài)變化及其條件,比較明晰地表示了執(zhí)行態(tài)的實(shí)現(xiàn)過程。
2.3伺服系統(tǒng)的軟件結(jié)構(gòu) 經(jīng)過如上分析,光盤伺服系統(tǒng)初始化后,創(chuàng)建了五個任務(wù):host task(主機(jī)任務(wù))、serial port task(串口任務(wù))、disk read task(讀盤任務(wù))、disk write task(寫盤任務(wù))、servo task(伺服任務(wù))。任務(wù)間通過semaphore(信號量)和mailbox(郵箱)進(jìn)行通信,實(shí)現(xiàn)交互控制和任務(wù)的切換。圖5表明了這五個任務(wù)之間的關(guān)系。 |