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