考慮到系統(tǒng)將來(lái)可擴(kuò)展圖像采集功能和復(fù)雜的人機(jī)界面等因素,在S3C44B0X 上移植了μC/OS-II操作系統(tǒng)。μC/OS-II 是目前流行的免費(fèi)公開(kāi)源代碼的實(shí)時(shí)操作系統(tǒng)。它不僅具有結(jié)構(gòu)小巧、可固化、可裁剪、多任務(wù)和可剝奪型的實(shí)時(shí)內(nèi)核等特點(diǎn),其實(shí)時(shí)性、穩(wěn)定性和可靠性也得到了廣泛認(rèn)可。μC/OS-II 的最小內(nèi)核可編譯至1.5KB,可廣泛應(yīng)用于從8 位到64 位單片機(jī)的各種不同類(lèi)型、不同規(guī)模的嵌入式系統(tǒng)。在內(nèi)存使用方面,μC/OS-II 是可裁剪的實(shí)時(shí)內(nèi)核,在應(yīng)用中需要調(diào)度的任務(wù)越多,需要的RAM 空間越大。
以運(yùn)行20 個(gè)任務(wù)進(jìn)行估算,μC/OS-II 內(nèi)核占用不到2KB 的RAM 空間,可以使用20 個(gè)信號(hào)量、郵箱等來(lái)完成任務(wù)間的同步與通信。
系統(tǒng)以S3C44B0X 的T0 定時(shí)器作為操作系統(tǒng)的時(shí)鐘源,中斷頻率為10ms。系統(tǒng)每隔10ms 就調(diào)用一下鍵盤(pán)查詢(xún)程序以實(shí)時(shí)響應(yīng)鍵盤(pán)事件,串口和CPU之間的SPI 通信采用中斷方式接收和發(fā)送。任何時(shí)候只要沒(méi)有關(guān)中斷,中斷的執(zhí)行就高于任何任務(wù)以保證通信的實(shí)時(shí)性。根據(jù)控制系統(tǒng)的工作要求,任務(wù)可劃分為鍵盤(pán)任務(wù),茶杯給水任務(wù),茶杯給水定時(shí)設(shè)置任務(wù),無(wú)影燈任務(wù),LED 指示燈任務(wù),報(bào)警信息任務(wù)和沖洗痰盂任務(wù)。

?
然后,用OSTaskCreate( )函數(shù)建立7 個(gè)任務(wù)。最后,在起始任務(wù)中將它本身刪除掉。
(1) 鍵盤(pán)任務(wù):調(diào)用OSSemPend(Sem_Keyboard,0,&err)來(lái)獲得信號(hào)量。獲得信號(hào)量后,任務(wù)將調(diào)用郵箱發(fā)送消息任務(wù)OSMboxPost (OS_EVENT*pevent,void*msg)喚醒相應(yīng)的其它任務(wù)。
(2) 茶杯給水任務(wù):向茶杯中加水。該任務(wù)通過(guò)OSMboxPost(Mbox_Cup,Msg_Cup)被喚醒。
(3) 茶杯給水定時(shí)設(shè)置任務(wù):設(shè)置茶杯給水定時(shí)時(shí)間。該任務(wù)通過(guò)OSMboxPost(Mbox_CupSetting,Msg_CupSetting)被喚醒。
(4) 報(bào)警信息任務(wù):牙椅運(yùn)動(dòng)到達(dá)障礙位置報(bào)警等的報(bào)警信息,并進(jìn)行相應(yīng)的處理。該任務(wù)調(diào)用OSSemPend(Sem_AlARMTask,0,&err)獲得信號(hào)量。
(5) 沖洗痰盂任務(wù):沖洗痰盂。該任務(wù)通過(guò)OSMboxPost (Mbox_Ty,Msg_Ty 被喚醒。
(6) LED 燈指示任務(wù):通過(guò)動(dòng)態(tài)掃描方式點(diǎn)亮相應(yīng)的鍵盤(pán)指示燈來(lái)指示當(dāng)前的系統(tǒng)工作狀態(tài)。該任務(wù)通過(guò)OSMboxPost (Mbox_LED,Msg_LED)被喚醒。
(7) 無(wú)影燈任務(wù):開(kāi)關(guān)及連續(xù)調(diào)節(jié)無(wú)影燈亮度。
該任務(wù)通過(guò)OSMboxPost(Mbox_Move,Msg_Move)被喚醒。
在系統(tǒng)中,設(shè)置任務(wù)1 的優(yōu)先級(jí)最高,依次為任務(wù)2、任務(wù)3 至任務(wù)6,程序流程如圖3所示。

?
在上述任務(wù)中,CPU 主要是接受鍵盤(pán)的輸入以喚醒其它相應(yīng)任務(wù),另外還有相應(yīng)的記錄位置的任務(wù)和與上位機(jī)通信的任務(wù),這里不再做詳細(xì)介紹。
3 控制系統(tǒng)調(diào)試結(jié)果
長(zhǎng)時(shí)間口腔診療應(yīng)用調(diào)試運(yùn)行,本牙椅控制系統(tǒng)能夠及時(shí)響應(yīng)輸入并按要求運(yùn)動(dòng),返回的記憶位置誤差控制在1mm 內(nèi),茶杯水位誤差不超過(guò)2mm,運(yùn)行結(jié)果表明,控制系統(tǒng)與上位機(jī)的通信及兩CPU 之間通信實(shí)時(shí)性、可靠性均滿(mǎn)足設(shè)計(jì)要求,且整個(gè)系統(tǒng)運(yùn)行平穩(wěn)可靠,便于調(diào)試和維護(hù),提高了牙椅自動(dòng)化水平和檔次。
4 結(jié)語(yǔ)
本文采用嵌入式處理器和實(shí)時(shí)多任務(wù)操作系統(tǒng)增強(qiáng)了系統(tǒng)的功能,提高了系統(tǒng)的可靠性、實(shí)時(shí)性并使系統(tǒng)具有良好的可擴(kuò)展性,便于后續(xù)擴(kuò)展圖像采集和人機(jī)界面功能,為進(jìn)一步開(kāi)發(fā)高端產(chǎn)品奠定基礎(chǔ)。
評(píng)論