徐 健,彭雪峰,宋耀華
XU Jian, PENG Xue-feng, SONG Yao-hua
(九江職業(yè)技術(shù)學(xué)院,九江 332007)
基于LPC2131的電子影像診斷儀嵌入式控制系統(tǒng)設(shè)計
The embedded control system design for electrical image diagnostic instrument
徐 健,彭雪峰,宋耀華
XU Jian, PENG Xue-feng, SONG Yao-hua
(九江職業(yè)技術(shù)學(xué)院,九江 332007)
電子影像診斷儀是一種常見的醫(yī)療電子設(shè)備。本文詳細闡述了整個控制系統(tǒng)的硬件和軟件設(shè)計,采用LPC2131 ARM處理器作為核心控制器,通過產(chǎn)生6路PWM控制斬波電路導(dǎo)通時間,經(jīng)過微焦點X光發(fā)生器模塊來產(chǎn)生所需影像。針對醫(yī)療設(shè)備實時性要求,采用嵌入式實時操作系統(tǒng)(RTOS)作為軟件開發(fā)平臺,測試結(jié)果表明該系統(tǒng)結(jié)構(gòu)簡單、性能可靠,具有很高的實用價值。
ARM;電子影像診斷儀;斬波電路;PWM;RTOS
隨著當今醫(yī)療現(xiàn)代化進程的快速發(fā)展,各種醫(yī)療電子儀器與設(shè)備朝著小型化,高精密化方向發(fā)展,人機界面更加友好,操作更加方便。傳統(tǒng)的采用單片機為控制器的醫(yī)療電子產(chǎn)品在性能,處理速度,硬件設(shè)計上都不能適應(yīng)產(chǎn)品更新?lián)Q代的發(fā)展。ARM處理器是目前公認的業(yè)界領(lǐng)先的32位嵌入式RISC微處理器,以其卓越的性能、超低的功耗、豐富的外設(shè)接口、較高的性價比,代表了當今主流電子應(yīng)用技術(shù)的發(fā)展方向。實時操作系統(tǒng)uC/OS-II以其小巧、源代碼公開、注解詳細、實時性強、可移植性好、多任務(wù)、基于優(yōu)先級的可剝奪型調(diào)度的特點,已經(jīng)廣泛應(yīng)用在很多對實時性要求比較高的產(chǎn)品中。本文以我們最近研制成功的電子影像診斷儀為案例,講述了其中各模塊電路的功能,以LPC2131為控制器,構(gòu)建了整個控制電路,分析了硬件電路設(shè)計,并詳細講述了uC/OS-II在LPC2131上的移植,各任務(wù)模塊的劃分和應(yīng)用程序的編寫。
圖1 電子影像儀硬件電路圖
電子影像診斷儀電路主要由四個模塊組成,包括:主電源模塊、輔助電源模塊、微焦點X光發(fā)生器模塊、微處理器控制及顯示模塊,電路整體結(jié)構(gòu)框圖如圖1所示。主電源模塊由EMI濾波電路、整流濾波電路、恒壓斬波電路、恒流斬波電路、全橋斬波電路等電路組成。輔助電源模塊主要是給各電路提供工作電源,分別輸出5V、12V的直流穩(wěn)壓電源供各模塊使用。微焦點X光發(fā)生器模塊由主變壓器、倍壓整流電路、射線管和保護電路組成。
主控制電路模塊是通過控制斬波電路工作時間的長短來控制X光發(fā)生器曝光的時間。本系統(tǒng)中恒流斬波電路、恒壓斬波電路和全橋斬波電路需要控制導(dǎo)通時間,而傳統(tǒng)的單片機沒有6路PWM波輸出,如果使用軟件模擬PWM的產(chǎn)生,很難保證實時性的要求。為了能同時使用6路PWM控制斬波電路的導(dǎo)通時間,我們選擇ARM處理器作為主控制器。為了系統(tǒng)擴展和預(yù)留功能,我們選擇NXP公司的LPC2131 ARM微處理器作為主芯片。LPC2131的內(nèi)核是ARM7TDMI-S核,三級流水線,32位微處理器,采用馮·諾依曼結(jié)構(gòu)(數(shù)據(jù)和指令混合編址)。較小的封裝(LQFP64)和極低的功耗使LPC2131可理想的應(yīng)用于小型系統(tǒng)中,如通信網(wǎng)關(guān)、協(xié)議轉(zhuǎn)換器、聲音辨別、低端成像、工業(yè)控制和醫(yī)療系統(tǒng)。8KB片內(nèi)SRAM;32KB片內(nèi)Flash,高達60MHz的操作頻率;8路10位A/D轉(zhuǎn)換器; 2個32位定時器(帶4路捕獲和4路比較通道),PWM單元(6路輸出)和看門狗; 2個UART,2個高速IIC接口(400Kb/s),SPI,SSP; 向量中斷控制器,可配置優(yōu)先級和向量地址;47個(P0.0-P0.23,P0.24-P0.31,P1.16-P1.31)可承受5V電壓的通用I/O口;9個邊沿或者電平觸發(fā)的外部中斷引腳;片內(nèi)晶體振蕩電路支持頻率1-30MHz; 2個低功耗模式:空閑和掉電;單電源供電,含有上電復(fù)位(POR)和掉電檢測(BOD)電路,CPU操作電壓3.0-3.6V。
整個電路由顯示模塊、矩陣鍵盤模塊、斬波電路控制模塊、遙控接收模塊組成,控制系統(tǒng)框圖如圖2所示:
圖2 主控制電路原理框圖
點陣式液晶模塊一般采用并行接口進行數(shù)據(jù)傳輸,設(shè)計中采用中文圖形點陣液晶顯示模塊SMG240128A。SMG240128A點陣圖形液晶模塊的點像素為240×128點,黑色字/白色底,STN液晶屏,內(nèi)嵌控制器為東芝公司的T6963C,外部顯示存儲器為32KB。液晶模塊采用8位總線接口與微控制器連接,內(nèi)部集成了負壓DC-DC電路(LCD驅(qū)動電壓),使用時只需提供單5V電源即可。液晶模塊上裝有LED背光,使用5V電源供電,顯示字符或圖形時LED背光可點亮或熄滅。該模塊沒有地址總線,顯示地址和顯示數(shù)據(jù)均通過DB0~DB7接口實現(xiàn)。LPC2131與SMG240128A接口電路圖如圖3所示。
圖3 液晶接口模塊
圖4 斬波驅(qū)動電路
由于本系統(tǒng)需要6路斬波驅(qū)動電路,因此可以利用LPC2131的PWM功能來控制斬波電路的導(dǎo)通時間。因為LPC2131 IO口電平為3.3V,因此需要電壓提升電路,本設(shè)計采用三極管提升電壓,使輸出端OUT1能驅(qū)動斬波電路。斬波驅(qū)動電路共需要6路,本文用LPC2131 的PWM1驅(qū)動恒壓斬波電路,PWM2驅(qū)動恒流斬波電路,PWM3~PWM6驅(qū)動全橋斬波電路。本文只畫出一路PWM驅(qū)動電路,其余5路電路完全相同,如圖4所示。
遙控接收端采用價格便宜、性能可靠的一體化紅外接收頭HS0038B,它接收紅外型號的頻率為38KHz,同時對信號進行放大、檢波、整形,得到TTL電平的編碼信號,再送給LPC2131,解碼并執(zhí)行,控制相關(guān)對象。接收端電路如圖5所示。
圖5 遙控接收端電路圖
矩陣鍵盤主要用來設(shè)定X光曝光時間,傳統(tǒng)的按鍵輸入軟件接口程序通常非常簡單,在程序中一旦檢測到按鍵輸入口為低電平時,便調(diào)用軟件延時程序延時10ms。然后再次檢測按鍵輸入口,如果還是低電平則表示按鍵按下,轉(zhuǎn)入執(zhí)行按鍵處理程序。如果第二次檢測按鍵輸入口為高電平,則放棄本次按鍵的檢測,重新開始一次按鍵檢測過程。傳統(tǒng)的按鍵檢測處理方法,不僅由于采用了軟件延時而使得MCU的效率降低,而且也不容易同系統(tǒng)中其他功能模塊協(xié)調(diào)工作,系統(tǒng)的實時性也差。本文采用有限狀態(tài)機的程序設(shè)計思想,由于按鍵的檢測過程需要進行消抖處理,因此取狀態(tài)機的時間序列的周期約為10ms。按鍵狀態(tài)機的狀態(tài)轉(zhuǎn)換圖如圖6所示:狀態(tài)0為按鍵的初始狀態(tài),當按鍵輸入為“1”時,表示按鍵處于放開,輸出“0”(1/0),下一狀態(tài)仍為狀態(tài)0;當按鍵輸入為“0”時,表示按鍵閉合,但輸出還是“0”(0/0)(沒有經(jīng)過消抖,不能確認按鍵真正按下),下一狀態(tài)進入狀態(tài)1。狀態(tài)1為按鍵閉合確認狀態(tài),它表示在10ms前按鍵為閉合的,因此當再次檢測到按鍵輸入為“0”時,可以確認按鍵被按下;輸出“1”表示確認按鍵閉合(0/1),下一狀態(tài)進入狀態(tài)2。而當再次檢測到按鍵的輸入為“1”時,表示按鍵可能處在抖動干擾,輸出為“0”(1/0),下一狀態(tài)返回到狀態(tài)0。這樣,利用狀態(tài)1,實現(xiàn)了按鍵的消抖處理。狀態(tài)2為等待按鍵釋放狀態(tài),因為只有等按鍵釋放后,一次完整的按鍵操作過程才算完成。
圖6 按鍵狀態(tài)機的狀態(tài)轉(zhuǎn)換圖
系統(tǒng)功能的實現(xiàn)要靠軟硬件來完成,硬件是軀體,軟件是靈魂,二者相互依存,缺一不可。電子影像診斷儀要求響應(yīng)速度快,可靠性好,因此在控制系統(tǒng)中使用實時操作系統(tǒng)作為軟件運行平臺是非常適合的。源代碼公開的實時操作系統(tǒng)uC/OS II以其小巧,執(zhí)行時間確定性而廣泛使用在醫(yī)療電子、工業(yè)控制等領(lǐng)域,特別適合于沒有MMU的ARM7處理器上。
在確定所選的微處理器和編譯器能夠滿足所選的實時操作系統(tǒng)后,就可以動手編寫移植代碼了。移植工作包括以下幾個內(nèi)容:
用#define 設(shè)置一個常量的值(OS_CPU.H);
聲明10個數(shù)據(jù)類型(OS_CPU.H);
用#define 聲明3個宏(OS_CPU_C.H);
用C語言編寫6個簡單的函數(shù)(OS_CPU_C.C);
編寫4個匯編語言函數(shù)(OS_CPU_A.ASM);
圖7 按鍵任務(wù)
圖8 顯示任務(wù)
我們所用的編譯器為ADS1.2,所以將OS_CPU_A.ASM的后綴名改為OS_CPU_A.S,詳細的移植代碼可以參考文獻[3]。
嵌入式電子影像診斷儀應(yīng)包含一個ISR(遙控接收ISR)和3個任務(wù):“初始化任務(wù)”、“鍵盤掃描任務(wù)”、“液晶顯示任務(wù)”。初始化任務(wù)創(chuàng)建其余2個任務(wù),因此優(yōu)先級最高,設(shè)為7,鍵盤掃描任務(wù)設(shè)為9,液晶顯示任務(wù)設(shè)為11。
void initial_task(void *pdata); //初始化創(chuàng)建任務(wù),優(yōu)先級7
void key_task(void *pdata); //鍵盤掃描任務(wù),優(yōu)先級9
void display_task(void *pdata); //液晶顯示任務(wù),優(yōu)先級11
在以上任務(wù)中,initial_task()為一次性任務(wù),創(chuàng)建完其它任務(wù)后自行刪除,其他任務(wù)都是周期性任務(wù)。按鍵和顯示流程圖如圖7、圖8所示。
本套系統(tǒng)的設(shè)計,充分考慮了電子影像儀的特點,尤其突出其對于實時性與可靠性的要求??刂瓢弩w積小、功能齊全、直觀性強、人機界面友好、操作方便,經(jīng)過實際使用,完全滿足需要,可以批量生產(chǎn)。
[1] 周立功,等.ARM微控制器基礎(chǔ)與實踐[M].北京:北京航空航天大學(xué)出版社,2003.
[2] 杜春雷.ARM體系結(jié)構(gòu)與編程[M].北京:清華大學(xué)出版社,2003.
[3] 周立功.張華.深入淺出ARM7-LPC213x/214x(上、下冊)[M].北京:北京航空航天大學(xué)出版社,2005.
[4] 任哲,等.嵌入式操作系統(tǒng)基礎(chǔ)uC/OS II和Linux[M].北京:北京抗空航天大學(xué)出版社,2006.
[5] 杜春蕾.ARM體系結(jié)構(gòu)與編程[M].北京:清華大學(xué)出版社,2003.
[6] 魯昀,陳明.基于LPC2210的液晶顯示器的設(shè)計[J].計算機技術(shù)與應(yīng)用,2006,(4):42-43.
TH166
A
1009-0134(2010)10(上)-0188-03
10.3969/j.issn.1009-0134.2010.10(上).59
2010-05-17
科研項目:江西省教育廳科研項目(GJJ10657)
徐建(1979 -),男,副教授,碩士,研究方向為嵌入式軟硬件技術(shù)、高頻電源技術(shù)。