基于A(yíng)RM的牽引理療系統的實(shí)現方案
引言
本文引用地址:http://dyxdggzs.com/article/201706/350227.htm醫學(xué)上針對腰椎間盤(pán)突出癥等腰脊椎病,通常采取物理牽引的保守治療方法。本牽引床系統是以?xún)啥问酱搀w為治療平臺,采用ARM等嵌入式處理器并結合計算機對床體各自由度運動(dòng)實(shí)現分布式控制,并由直流電機實(shí)施外力快、慢速牽引及床體的任意角度的快慢速旋轉,從而實(shí)現腰脊椎病的物理治療。
1系統功能與總體設計
牽引床以?xún)啥问酱搀w為治療平臺。其床體分為前、后兩段,供病人躺臥。前段有固定帶將病人腰上部固定,利用牽引帶與活動(dòng)床頭相連。牽引運動(dòng)是前后方向的平動(dòng)。床頭在電機驅動(dòng)下可向前牽出一定距離,而病人腰部則是被固定著(zhù),這樣牽引帶對腰椎就有了一定的作用力。床頭安裝“S”型拉力傳感器檢測牽引力。后段床體也有固定帶將病人的腰下部至胯骨處固定,并可在電機帶動(dòng)下以腰部處為軸心做水平平面的擺動(dòng)、垂直軸向的傾斜升降轉動(dòng)、以及向左右兩側的旋轉共三個(gè)自由度的轉動(dòng)。前段床體的牽引速度可調,后段床體的旋轉角度與旋轉速度也可任意設定。
牽引床為醫師提供四個(gè)自由度可調節的物理運動(dòng),充分滿(mǎn)足腰椎病物理治療的需要。實(shí)際治療中,醫生根據患者的病理情況,將后床面的左、右旋轉結合慢牽基礎上的快牽功能進(jìn)行合理使用能夠起到“正脊”作用。
牽引床的總體設計采取分布式控制體系,如圖1所示。計算機作為上位機通過(guò)RS-485總線(xiàn)與三個(gè)嵌入式控制器(下位機)組成分布式總線(xiàn)網(wǎng)絡(luò )實(shí)現對床體運動(dòng)的控制。計算機實(shí)現系統總體操作控制界面。系統復雜的控制任務(wù)被分解為三部分,分別由三個(gè)嵌入式控制器并行實(shí)時(shí)執行完成。其中,牽引運動(dòng)及牽引力的檢測與控制由一片STC89C52RD+單片機完成;三個(gè)旋轉運動(dòng)的角度檢測及控制由Samsong公司的32位ARM核RISC處理器S3C44B0X處理;床體上各類(lèi)限位開(kāi)關(guān)等開(kāi)關(guān)量檢測及輸出則由另一片STC89C52RD+實(shí)現。
圖1 系統總體設計框圖
2 系統硬件設計
2.1 基于STC89C52RD+的牽引控制
快慢牽引治療是通過(guò)直流電機驅動(dòng)床頭向前運動(dòng)從而拉伸固定在患者腰間的固定帶,產(chǎn)生一定的牽引作用力施加在腰椎。牽引力大小及快慢由醫生設置,并保持一段時(shí)間。保持期間可配合床體旋轉等動(dòng)作進(jìn)行物理治療。
牽引力可由床頭的S型應變式拉力傳感器轉換為模擬信號。該信號大小與加在傳感器上的激勵直流電壓大小有關(guān)。傳感器靈敏度為2mV/V,若DC激勵電壓為5V,則傳感器輸出最大信號為10mV。如果力傳感器的量程為0-200Kg,則對應傳感器輸出模擬信號為0-10mV。該信號經(jīng)儀表放大器AD623放大500倍后為0-5V,經(jīng)“Л”型電感、電容無(wú)源網(wǎng)絡(luò )濾波后輸入給10位A/D轉換器TLC1549。牽引力信號頻率很低,處理器每秒鐘采樣20次。采用一個(gè)專(zhuān)用的STC89C52RD+的片內硬件定時(shí)器,每隔50ms進(jìn)入定時(shí)器中斷服務(wù)程序通過(guò)SPI串行接口進(jìn)行一次A/D轉換,并將轉換后的數據由UART經(jīng)接口芯片74LBC176轉換為485信號發(fā)送至上位機。由上位機判斷后發(fā)出控制指令控制牽引電機及牽引過(guò)程。
STC89C52RD+是STC公司生產(chǎn)的增強型51單片機,可靠性高,抗干擾性強。在產(chǎn)品注冊對控制器做電磁兼容性試驗時(shí),發(fā)現采用AT89C52通不過(guò)的電源脈沖干擾試驗以及高壓放電干擾試驗項目,STC89C52RD+可輕易通過(guò)。STC單片機的可靠性由此可見(jiàn)一斑。
2.2 基于STC89C52RD+的開(kāi)關(guān)量檢測與控制
床體采用行程開(kāi)關(guān)為各個(gè)運動(dòng)行程進(jìn)行限位,避免系統失控造成牽引力過(guò)大拉傷病患,或旋轉、擺動(dòng)角度過(guò)大將病患甩出床體。當出現碰觸行程限位開(kāi)關(guān)的情況時(shí),繼電器控制電路將直接切斷電機電源使電機停轉??刂破鱏TC89C52RD+實(shí)時(shí)檢測這些信號,并迅速將此信息通過(guò)485串行總線(xiàn)傳至上位機。系統軟件將停止該進(jìn)程并將系統復位。單片機將系統的23個(gè)輸出開(kāi)關(guān)量狀態(tài)鎖存在3片74HC377中,確保狀態(tài)可靠輸出。各路輸出經(jīng)由光電耦合器隔離、ULN2803放大,驅動(dòng)繼電器的開(kāi)關(guān)來(lái)控制各個(gè)電動(dòng)機的啟停及組合動(dòng)作。
設置“急退”按鈕,在病患自己感覺(jué)不舒適的時(shí)候可自行按下,系統將迅速解除牽引力并將床體旋平。當病人按下“急退”按鈕,單片機檢測到后即通過(guò)485總線(xiàn)將此消息傳至上位機。系統軟件接收到后,立即停止當前的牽引進(jìn)程,并發(fā)出命令,單片機隨即控制牽引電機反轉解除牽引力。如果床面處于旋轉傾斜狀態(tài),則控制將床體旋平。這些措施大大提高了牽引治療系統的安全性與可靠性,對于一臺醫療器械而言是必須要考慮的。
選用一片STC89C52RD+作為專(zhuān)用的開(kāi)關(guān)量檢測與控制處理器。這樣可使這部分控制程序更簡(jiǎn)潔、純粹,易于實(shí)現,可確保系統可靠無(wú)誤的動(dòng)作。若將這部分任務(wù)合并到其他控制器中,會(huì )增加軟件的編程難度,流程會(huì )更復雜,勢必將降低系統運行的可靠性、安全性。
2.3 基于ARM處理器S3C44B0X的旋轉運動(dòng)控制
醫療設備的運行要求低噪音。系統采用高效率、低噪聲的新型220V高壓大功率直流電機作為床體運動(dòng)的執行機構,來(lái)實(shí)現床體機械系統多維、多軸、多自由度的運動(dòng)。對直流電機的控制采用PWM方式。PWM驅動(dòng)采用高效率大功率VMOS管功放電路。在嵌入式電機控制處理器選擇上,采用Samsong公司的32位ARM核RISC處理器S3C44B0X。該處理器具有雙串行口、5個(gè)PWM定時(shí)器、8通道10位ADC、最高主頻66MHz,完全勝任運動(dòng)控制要求。
上位機經(jīng)485總線(xiàn)發(fā)出的轉動(dòng)運動(dòng)指令中包含有速度參數及角度參數數據。三個(gè)自由度的旋轉運動(dòng)分別各對應一個(gè)PWM定時(shí)器的輸出。旋轉電機的調速由PWM占空比參數調節。速度控制是開(kāi)環(huán)的。角度傳感器選用高精度單圈電位計。電位器外接5V激勵,即0-360度對應0-5V。實(shí)際上,只采用了0-30度范圍。這樣,ARM控制器、PWM執行器與角度傳感器的測量環(huán)節構成角度位置閉環(huán)調節回路,實(shí)現旋轉角度的調節。
考慮到目前市場(chǎng)上存在欠款問(wèn)題并為了更好地回收資金并保護知識產(chǎn)權,結合S3C44B0X的內部資源設計了獨特的硬件加密功能。通常加密是利用計算機的日歷以及計算機中的硬盤(pán)序列號來(lái)實(shí)現的。計算機的運算能力強,算法實(shí)現也容易,但是往往也容易被解密。好的方法是利用電路硬件來(lái)做加密。首先,利用S3C44B0X內部的RTC設計日歷定時(shí)器做硬件注冊時(shí)間加密。第二,利用DS18B20中全球唯一的序列號作為注冊序列號來(lái)做加密。DS18B20是DALAS公司生產(chǎn)的數字溫度傳感器,但在這里并不用其測溫,而是利用其中全球唯一的序列號。它與ARM處理器的連接僅用一根數據線(xiàn)作串行數據傳輸。
圖2 旋轉運動(dòng)控制框圖
3軟件設計
系統控制任務(wù)與算法按照二級拓撲分布在各個(gè)嵌入式控制器以及上位機的軟件中。STC89C52RD+單片機采用匯編語(yǔ)言編程,效率高,可靠性高。S3C44B0X為ARM7內核,采用C語(yǔ)言加匯編語(yǔ)言進(jìn)行混合編程。上位機軟件則采用功能強大的DELPHI6.0Windows應用程序開(kāi)發(fā)工具開(kāi)發(fā),運用Object Pascal語(yǔ)言編寫(xiě)程序代碼。這使得軟件對床體的控制更加靈活、可靠和高效,界面簡(jiǎn)潔友好,操作方便、可靠性高。在開(kāi)發(fā)過(guò)程中采用了一些新的技術(shù),最主要的是控件技術(shù),特別是在串行通信中采用了控件技術(shù),大大提高了串行通信的可靠性,保障了系統的可靠性。其軟件結構功能總體框圖如圖3所示。
3.1 通訊協(xié)議
上位機對牽引運動(dòng)、旋轉運動(dòng)與開(kāi)關(guān)量動(dòng)作的控制與協(xié)調指揮是通過(guò)一定協(xié)議的數據通訊傳達至各嵌入式處理器執行的。通訊指令依照異步串行數據通訊格式制定,包括字頭、下位機地址、指令數據和結束符三部分。字頭與結束符用于數據同步。指令、數據傳達參數設置與控制等信息。
上位機通過(guò)485總線(xiàn)主動(dòng)發(fā)出詢(xún)問(wèn)指令來(lái)獲取數據并進(jìn)行控制。各下位機嵌入式控制器平時(shí)處于被動(dòng)接收狀態(tài),當確認查詢(xún)地址是自己時(shí),即上傳數據或執行命令。實(shí)踐中發(fā)現由于信道的問(wèn)題,首先及最后發(fā)送的字符往往會(huì )出現錯誤,從而造成一定的誤碼。這會(huì )影響到系統的可靠性。為了解決這一問(wèn)題,在字頭發(fā)送前及結束符發(fā)送后,多發(fā)送幾個(gè)無(wú)關(guān)的字節“0xFF”。實(shí)驗證明,大大降低了誤碼率。
3.2 基于Spcomm控件的串口通信實(shí)現
用Delphi 實(shí)現串口通信,常用的方法有:第一,使用控件。如Mscomm和Spcomm控件等。第二,使用API函數在Delphi 中調用其它串口通信程序。使用API方法的優(yōu)點(diǎn)是適合編寫(xiě)較為復雜的低層次通信程序,但缺點(diǎn)是編寫(xiě)串口通信程序較為復雜。本系統選用Spcomm。它是Small-Pig Team開(kāi)發(fā)的一個(gè)第三方Delphi串口控件,該控件具有豐富的與串口通信密切相關(guān)的屬性及事件,提供了對串口的各種操作,且編程簡(jiǎn)單、通用性強、可移植性好。在Delphi軟件開(kāi)發(fā)中成為一個(gè)被廣泛應用的串口通信開(kāi)發(fā)控件。Spcomm串行通信控件為多線(xiàn)程。接收和發(fā)送數據分別在兩個(gè)線(xiàn)程內完成,接收線(xiàn)程負責收到數據時(shí)觸發(fā)OnReceiveData事件。WriteCommData()函數將待發(fā)送的數據寫(xiě)入輸出緩沖器,發(fā)送線(xiàn)程在后臺完成數據發(fā)送。在接收和發(fā)送數據前需要初始化串口,用StartComm打開(kāi)串口,退出程序時(shí)用StopComm關(guān)閉串口。
4 總結
本系統已交付廠(chǎng)家(河南騰遠醫療設備有限公司)生產(chǎn),并已在多家醫院投入治療,反映效果良好,并已產(chǎn)生約一百萬(wàn)元經(jīng)濟效益。已經(jīng)專(zhuān)家會(huì )議鑒定評審為河南省科技成果。
創(chuàng )新點(diǎn):在復雜的嵌入式系統中采用多個(gè)嵌入式處理器結合上位計算機來(lái)并行分擔系統的復雜任務(wù)與算法,為醫療設備的研制獲得了難得的可靠性
評論