1 引言
目前,市場(chǎng)高端牙椅設(shè)備基本被國(guó)外公司獨(dú)斷,,一般其價(jià)格昂貴而且技術(shù)不轉(zhuǎn)讓,。隨著人們對(duì)口腔健康的日益重視,開(kāi)發(fā)適合國(guó)情的高端一體化口腔診療系統(tǒng)顯得尤為必要,。牙椅控制器是一體化口腔診療系統(tǒng)的核心,,其設(shè)計(jì)水平反映了整個(gè)系統(tǒng)的自動(dòng)化程度,也是判定牙椅檔次的一個(gè)重要依據(jù),。
本文研究開(kāi)發(fā)了基于ARM嵌入式技術(shù)的牙椅控制系統(tǒng),。在控制系統(tǒng)中應(yīng)用嵌入式操作系統(tǒng),,利用多任務(wù)管理、任務(wù)間同步與通信等功能,,可更進(jìn)一步提高系統(tǒng)可靠性和實(shí)時(shí)性,,增強(qiáng)智能控制和管理水平。
2 整體功能概述
系統(tǒng)整體框圖如圖1 所示,。牙椅控制系統(tǒng)設(shè)計(jì)必須滿(mǎn)足醫(yī)療需求并方便使用操作,。高檔牙椅在實(shí)際工作中除了要滿(mǎn)足上下仰臥四個(gè)基本方向的運(yùn)動(dòng),同時(shí)還必須能夠完成茶杯給水,、沖洗痰盂,、無(wú)影燈調(diào)控、位置數(shù)據(jù)采集,、X 光透射,、及與上位機(jī)通信功能,還要保證運(yùn)動(dòng)的平穩(wěn)可靠和數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性,。牙椅控制系統(tǒng)CPU 響應(yīng)外接鍵盤(pán)輸入,,執(zhí)行相應(yīng)的命令,驅(qū)動(dòng)外部的液壓傳動(dòng)機(jī)構(gòu)實(shí)現(xiàn)牙椅的運(yùn)動(dòng)和其他外部設(shè)備的工作,。
由于牙椅控制系統(tǒng)的控制點(diǎn)較多,,且集中于器械盤(pán)面板和牙椅底座兩個(gè)地方,因此本文將牙椅控制系統(tǒng)主要分為三大模塊:面板控制模塊,、底座控制模塊,、供電模塊。
2.1 系統(tǒng)的硬件設(shè)計(jì)
基于芯片性能,、功耗,、系統(tǒng)需求等多方面的要求,本系統(tǒng)采用S3C44B0X芯片與ATmega16 芯片構(gòu)成雙CPU 模塊進(jìn)行協(xié)同控制,。S3C44B0X 是Samsung 公司生產(chǎn)的16/32 位RISC 處理器,,其總線(xiàn)結(jié)構(gòu)采用三星ARM CPU 嵌入式微處理器總線(xiàn)結(jié)構(gòu)。S3C44B0X提供了全面的,、通用的片上外設(shè),,包括1 個(gè)LCD 控制器、5 個(gè)PWM 通道的定時(shí)器和1 通道內(nèi)部定時(shí)器,、71 個(gè)通用I/O 口和8 通道外部中斷源,、8 通道10 位的ADC、SPI 同步數(shù)據(jù)通信串行ARM 嵌入式牙椅控制系統(tǒng)接口等,,具有良好的可擴(kuò)展性,作為牙椅系統(tǒng)的主處理器,。
ATmega16 是增強(qiáng)的AVR RISC 結(jié)構(gòu)的低功耗8位CMOS 微控制器,,內(nèi)部資源豐富,,具有32 路可編程I/O 口、512 字節(jié)的EEPROM,、四通道的PWM 輸出,、8 路10 位ADC 轉(zhuǎn)換通道和3 個(gè)內(nèi)部定時(shí)器/計(jì)數(shù)器和SPI 同步數(shù)據(jù)通信串行口,作為牙椅系統(tǒng)的底座模塊的核心和控制芯片,,控制牙椅的移動(dòng)和進(jìn)行牙椅的位置數(shù)據(jù)采集,。
牙椅控制系統(tǒng)的原理結(jié)構(gòu)圖如圖2 所示。底座控制板CPU 外接一個(gè)3×2 腳踏鍵盤(pán),,CPU 接收鍵盤(pán)輸入執(zhí)行相應(yīng)的命令,,并控制底座模塊上的各液壓傳動(dòng)控制繼電器的通斷,控制牙椅向上下仰臥四個(gè)方向,、漱口位置和就診位置運(yùn)動(dòng),。考慮到使用者的安全和牙椅設(shè)備的穩(wěn)定可靠問(wèn)題,,在運(yùn)動(dòng)過(guò)程中CPU 必須對(duì)四個(gè)方向的限位開(kāi)關(guān)和底座障礙物保護(hù)開(kāi)關(guān)的反饋信息進(jìn)行實(shí)時(shí)監(jiān)控并做出相應(yīng)的保護(hù)動(dòng)作,。
為達(dá)到方便使用的目的,面板控制模塊同樣也要能夠控制牙椅的上述運(yùn)動(dòng)并實(shí)時(shí)記憶牙椅的位置,,因此系統(tǒng)要實(shí)現(xiàn)底座板和面板的實(shí)時(shí)通信,。結(jié)合CPU芯片的特點(diǎn)和實(shí)際需求兩者采用串行外設(shè)接口(SPI)進(jìn)行高速數(shù)據(jù)同步傳輸。面板CPU 可接收外部擴(kuò)展鍵盤(pán)的輸入來(lái)執(zhí)行響應(yīng)的命令,,并預(yù)留了擴(kuò)展接口,。
由于外部設(shè)備對(duì)于CPU 來(lái)說(shuō)都屬于強(qiáng)電控制部分,為了使兩者之間既保持控制信號(hào)聯(lián)系,,又要避免電氣干擾,,即實(shí)行弱電和強(qiáng)電隔離,面板控制模塊增加了光電隔離電路,。無(wú)影燈的亮度數(shù)字調(diào)節(jié)設(shè)計(jì)采用了PWM 方式,。S3C44B0X 有5 個(gè)定時(shí)器可以提供PWM輸出。由于系統(tǒng)使用的無(wú)影燈額定功率為50W,,額定電壓為12V,,屬于大電流工作,為了保證無(wú)影燈的調(diào)節(jié)精度,,在控制電路上采用場(chǎng)效應(yīng)管IRF540 與光電隔離電路配合控制,。
2.2 系統(tǒng)的軟件設(shè)計(jì)
考慮到系統(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ù),。
因?yàn)槿蝿?wù)間,、任務(wù)和中斷間的通信都是基于信號(hào)量機(jī)制集中管理,所以要建立起信號(hào)量的保護(hù)機(jī)制,。
在起始任務(wù)StartTask 中,,首先建立一系列的信號(hào)量和郵箱:
然后,用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ǔ),。
該牙椅控制系統(tǒng)可提高國(guó)內(nèi)牙椅生產(chǎn)設(shè)計(jì)水平,,已在廣州某醫(yī)療器械廠投入生產(chǎn),創(chuàng)造了良好的經(jīng)濟(jì)和社會(huì)效益,。