μC/OS-II實現(xiàn)牙椅控制系統(tǒng)
1 引言
目前,市場高端牙椅設備基本被國外公司獨斷,一般其價格昂貴而且技術不轉讓。隨著人們對口腔健康的日益重視,開發(fā)適合國情的高端一體化口腔診療系統(tǒng)顯得尤為必要。牙椅控制器是一體化口腔診療系統(tǒng)的核心,其設計水平反映了整個系統(tǒng)的自動化程度,也是判定牙椅檔次的一個重要依據(jù)。
本文研究開發(fā)了基于ARM嵌入式技術的牙椅控制系統(tǒng)。在控制系統(tǒng)中應用嵌入式操作系統(tǒng),利用多任務管理、任務間同步與通信等功能,可更進一步提高系統(tǒng)可靠性和實時性,增強智能控制和管理水平。
2 整體功能概述
系統(tǒng)整體框圖如圖1 所示。牙椅控制系統(tǒng)設計必須滿足醫(yī)療需求并方便使用操作。高檔牙椅在實際工作中除了要滿足上下仰臥四個基本方向的運動,同時還必須能夠完成茶杯給水、沖洗痰盂、無影燈調控、位置數(shù)據(jù)采集、X 光透射、及與上位機通信功能,還要保證運動的平穩(wěn)可靠和數(shù)據(jù)傳輸?shù)膶崟r性。牙椅控制系統(tǒng)CPU 響應外接鍵盤輸入,執(zhí)行相應的命令,驅動外部的液壓傳動機構實現(xiàn)牙椅的運動和其他外部設備的工作。
由于牙椅控制系統(tǒng)的控制點較多,且集中于器械盤面板和牙椅底座兩個地方,因此本文將牙椅控制系統(tǒng)主要分為三大模塊:面板控制模塊、底座控制模塊、供電模塊。
2.1 系統(tǒng)的硬件設計
基于芯片性能、功耗、系統(tǒng)需求等多方面的要求,本系統(tǒng)采用S3C44B0X芯片與ATmega16 芯片構成雙CPU 模塊進行協(xié)同控制。S3C44B0X 是Samsung 公司生產(chǎn)的16/32 位RISC 處理器,其總線結構采用三星ARM CPU 嵌入式微處理器總線結構。S3C44B0X提供了全面的、通用的片上外設,包括1 個LCD 控制器、5 個PWM 通道的定時器和1 通道內部定時器、71 個通用I/O 口和8 通道外部中斷源、8 通道10 位的ADC、SPI 同步數(shù)據(jù)通信串行ARM 嵌入式牙椅控制系統(tǒng)接口等,具有良好的可擴展性,作為牙椅系統(tǒng)的主處理器。
ATmega16 是增強的AVR RISC 結構的低功耗8位CMOS 微控制器,內部資源豐富,具有32 路可編程I/O 口、512 字節(jié)的EEPROM、四通道的PWM 輸出、8 路10 位ADC 轉換通道和3 個內部定時器/計數(shù)器和SPI 同步數(shù)據(jù)通信串行口,作為牙椅系統(tǒng)的底座模塊的核心和控制芯片,控制牙椅的移動和進行牙椅的位置數(shù)據(jù)采集。
牙椅控制系統(tǒng)的原理結構圖如圖2 所示。底座控制板CPU 外接一個3×2 腳踏鍵盤,CPU 接收鍵盤輸入執(zhí)行相應的命令,并控制底座模塊上的各液壓傳動控制繼電器的通斷,控制牙椅向上下仰臥四個方向、漱口位置和就診位置運動??紤]到使用者的安全和牙椅設備的穩(wěn)定可靠問題,在運動過程中CPU 必須對四個方向的限位開關和底座障礙物保護開關的反饋信息進行實時監(jiān)控并做出相應的保護動作。
[!--empirenews.page--]
為達到方便使用的目的,面板控制模塊同樣也要能夠控制牙椅的上述運動并實時記憶牙椅的位置,因此系統(tǒng)要實現(xiàn)底座板和面板的實時通信。結合CPU芯片的特點和實際需求兩者采用串行外設接口(SPI)進行高速數(shù)據(jù)同步傳輸。面板CPU 可接收外部擴展鍵盤的輸入來執(zhí)行響應的命令,并預留了擴展接口。
由于外部設備對于CPU 來說都屬于強電控制部分,為了使兩者之間既保持控制信號聯(lián)系,又要避免電氣干擾,即實行弱電和強電隔離,面板控制模塊增加了光電隔離電路。無影燈的亮度數(shù)字調節(jié)設計采用了PWM 方式。S3C44B0X 有5 個定時器可以提供PWM輸出。由于系統(tǒng)使用的無影燈額定功率為50W,額定電壓為12V,屬于大電流工作,為了保證無影燈的調節(jié)精度,在控制電路上采用場效應管IRF540 與光電隔離電路配合控制。
2.2 系統(tǒng)的軟件設計
考慮到系統(tǒng)將來可擴展圖像采集功能和復雜的人機界面等因素,在S3C44B0X 上移植了μC/OS-II操作系統(tǒng)。μC/OS-II 是目前流行的免費公開源代碼的實時操作系統(tǒng)。它不僅具有結構小巧、可固化、可裁剪、多任務和可剝奪型的實時內核等特點,其實時性、穩(wěn)定性和可靠性也得到了廣泛認可。μC/OS-II 的最小內核可編譯至1.5KB,可廣泛應用于從8 位到64 位單片機的各種不同類型、不同規(guī)模的嵌入式系統(tǒng)。在內存使用方面,μC/OS-II 是可裁剪的實時內核,在應用中需要調度的任務越多,需要的RAM 空間越大。
以運行20 個任務進行估算,μC/OS-II 內核占用不到2KB 的RAM 空間,可以使用20 個信號量、郵箱等來完成任務間的同步與通信。
系統(tǒng)以S3C44B0X 的T0 定時器作為操作系統(tǒng)的時鐘源,中斷頻率為10ms。系統(tǒng)每隔10ms 就調用一下鍵盤查詢程序以實時響應鍵盤事件,串口和CPU之間的SPI 通信采用中斷方式接收和發(fā)送。任何時候只要沒有關中斷,中斷的執(zhí)行就高于任何任務以保證通信的實時性。根據(jù)控制系統(tǒng)的工作要求,任務可劃分為鍵盤任務,茶杯給水任務,茶杯給水定時設置任務,無影燈任務,LED 指示燈任務,報警信息任務和沖洗痰盂任務。
因為任務間、任務和中斷間的通信都是基于信號量機制集中管理,所以要建立起信號量的保護機制。
在起始任務StartTask 中,首先建立一系列的信號量和郵箱:
然后,用OSTaskCreate( )函數(shù)建立7 個任務。最后,在起始任務中將它本身刪除掉。[!--empirenews.page--]
(1) 鍵盤任務:調用OSSemPend(Sem_Keyboard,0,&err)來獲得信號量。獲得信號量后,任務將調用郵箱發(fā)送消息任務OSMboxPost (OS_EVENT*pevent,void*msg)喚醒相應的其它任務。
?。?) 茶杯給水任務:向茶杯中加水。該任務通過OSMboxPost(Mbox_Cup,Msg_Cup)被喚醒。
?。?) 茶杯給水定時設置任務:設置茶杯給水定時時間。該任務通過OSMboxPost(Mbox_CupSetting,Msg_CupSetting)被喚醒。
?。?) 報警信息任務:牙椅運動到達障礙位置報警等的報警信息,并進行相應的處理。該任務調用OSSemPend(Sem_AlarmTask,0,&err)獲得信號量。
?。?) 沖洗痰盂任務:沖洗痰盂。該任務通過OSMboxPost (Mbox_Ty,Msg_Ty 被喚醒。
?。?) LED 燈指示任務:通過動態(tài)掃描方式點亮相應的鍵盤指示燈來指示當前的系統(tǒng)工作狀態(tài)。該任務通過OSMboxPost (Mbox_LED,Msg_LED)被喚醒。
?。?) 無影燈任務:開關及連續(xù)調節(jié)無影燈亮度。
該任務通過OSMboxPost(Mbox_Move,Msg_Move)被喚醒。
在系統(tǒng)中,設置任務1 的優(yōu)先級最高,依次為任務2、任務3 至任務6,程序流程如圖3所示。
在上述任務中,CPU 主要是接受鍵盤的輸入以喚醒其它相應任務,另外還有相應的記錄位置的任務和與上位機通信的任務,這里不再做詳細介紹。
3 控制系統(tǒng)調試結果
長時間口腔診療應用調試運行,本牙椅控制系統(tǒng)能夠及時響應輸入并按要求運動,返回的記憶位置誤差控制在1mm 內,茶杯水位誤差不超過2mm,運行結果表明,控制系統(tǒng)與上位機的通信及兩CPU 之間通信實時性、可靠性均滿足設計要求,且整個系統(tǒng)運行平穩(wěn)可靠,便于調試和維護,提高了牙椅自動化水平和檔次。
4 結語
本文采用嵌入式處理器和實時多任務操作系統(tǒng)增強了系統(tǒng)的功能,提高了系統(tǒng)的可靠性、實時性并使系統(tǒng)具有良好的可擴展性,便于后續(xù)擴展圖像采集和人機界面功能,為進一步開發(fā)高端產(chǎn)品奠定基礎。
該牙椅控制系統(tǒng)可提高國內牙椅生產(chǎn)設計水平,已在廣州某醫(yī)療器械廠投入生產(chǎn),創(chuàng)造了良好的經(jīng)濟和社會效益。