0 引言
醫(yī)用數(shù)據(jù)采集" title="醫(yī)用數(shù)據(jù)采集">醫(yī)用數(shù)據(jù)采集系統(tǒng)能夠為醫(yī)務(wù)人員及時有效的提供患者的第一手數(shù)據(jù),有助于加強醫(yī)院的現(xiàn)代化信息管理和提高工作效率,。而在家庭保健方面,,它能夠滿足人們在快節(jié)奏的工作生活中及時準確的獲知自身及家人的健康狀況。在設(shè)備的日常使用中,,良好的人機接口" title="人機接口">人機接口設(shè)計,,也將為設(shè)備使用人員節(jié)約大量的時間并提供極大的便捷。本文主要以LM3S3748為核心,,并采用TFT液晶作為系統(tǒng)的顯示設(shè)備,,而用觸摸屏和手柄控制器作為系統(tǒng)的控制設(shè)備,介紹了其人機接口的設(shè)計方法,。
1 系統(tǒng)硬件設(shè)計
系統(tǒng)人機接口主要包括TFT液晶,、觸摸屏和手柄控制器,其結(jié)構(gòu)框圖如圖1所示,。其中TFT液晶亮度好,,對比度高,層次感強,,顏色鮮艷,,因此,在不考慮耗電的情況下,,TFT液晶是一個很好的選擇,。觸摸屏采用模數(shù)轉(zhuǎn)換芯片ADS7843對觸摸屏的數(shù)據(jù)進行采樣,再對其采樣的輸出值經(jīng)過校準程序,即可以得到其觸摸屏的物理坐標,。手柄控制器采用Modbus協(xié)議,,并通過串口對核心板進行控制。
1.1 控制單元
本系統(tǒng)的控制單元可采用TI公司的LM3S3748,,支持主頻為50 MHz的ARM" title="ARM">ARM Codex-M3內(nèi)核和128 KByte FIASH,、64 KByte SRAM。同時集成有USB HOST/DEVICE/OTG,、睡眠模塊,、正交編碼器、ADC,、帶死區(qū)刪,、溫度傳感器、模擬比較器,、UART,、SSI、通用定時器,,I2C,、CCP、DMA控制器等外設(shè),。此外,,芯片內(nèi)部還固化有驅(qū)動庫,能較好的滿足系統(tǒng)需求,。
1.2 液晶接口電路
液晶可選用3.2寸TFT(240×320)26萬色彩屏觸摸模塊,,該模塊支持SD卡和DATAFLASH,同時支持16位/8位模式,。該模塊可以實現(xiàn)顯示畫面的180度任意旋轉(zhuǎn)使用,,并帶觸摸屏及觸摸控制芯片。模塊默認i8080 16位并行接口,,并可選8位并行接口方式,。其液晶接口電路如圖2所示,。
1.3 觸摸屏控制電路
觸摸屏控制芯片采用的ADS7843是TI公司生產(chǎn)的4線電阻觸摸屏轉(zhuǎn)換接口芯片,。它是一款具有同步串行接口的12位取樣模數(shù)轉(zhuǎn)換器。ADS7843具有兩個輔助輸入(IN3,、IN4),,可設(shè)置為8位或12位模式。
ADS7843可以通過連接觸摸屏X+將觸摸信號輸入到A/D轉(zhuǎn)換器,,同時打開Y+和Y-驅(qū)動,,然后再數(shù)字化X+的電壓,從而得到當(dāng)前Y位置的測量結(jié)果,,同理,,也可以得到X坐標的邏輯坐標,。當(dāng)?shù)玫絏、Y的邏輯坐標后,,通過SPI接口將數(shù)據(jù)傳送給LM3S3748進行數(shù)據(jù)處理,。其ADS7843的外部電路如圖3所示。
1.4 RS232串口通信電路
RS232串口主要用于手柄控制器與核心板的通信,,這類似于人機接口中的鍵盤接口,。它們之間通過Modbus協(xié)議進行通信。其RS232串口通信電路如圖4所示,。
2 系統(tǒng)軟件設(shè)計
2.1 觸摸屏軟件設(shè)計
ADS7843具有兩種工作模式,,分別為單端基準模式和差分基準模式。同時還可以對其進行12位或8位轉(zhuǎn)換模式的選擇,。本設(shè)計采用差分基準模式和12位轉(zhuǎn)換模式,,即:
WriteCharTo7843(0xD0);∥送控制字10010000,,
即用差分方式+12位轉(zhuǎn)換模式,,讀X坐標;
……
WriteCharTo7843(0x90),;∥送控制字11010000,,
即用差分方式+12位轉(zhuǎn)換模式,讀Y坐標,;
CPU采用中斷方式對坐標進行讀取,。當(dāng)未對屏幕進行觸摸時,ADS7843的引腳PENIRQ為高電平輸出,,當(dāng)對屏幕有觸摸動作時,,引腳PENIRQ變?yōu)榈碗娖捷敵觯慨?dāng)CPU檢測到這個引腳的下降沿時,,系統(tǒng)進入中斷讀取坐標,。其坐標值讀取的流程如圖5所示。當(dāng)CPU在每一次獲取邏輯坐標的過程中,,實際上分別對X,、Y坐標進行了11次讀取,然后將讀取到的邏輯坐標值分別存入兩個數(shù)組,,并且對這兩個數(shù)組中的值進行冒泡排序,,使其從小到大依次排列后,再去掉最大和最小的兩個數(shù)值,,并將中間值作為基準,,余下數(shù)值與基準值進行求差的絕對值運算。設(shè)計中可設(shè)定一個閥值(此閥值可根據(jù)實驗設(shè)置為5),如果絕對值大于閥值,,則拋棄此值,,最后將剩余數(shù)值求和平均,并將其作為最終邏輯坐標值,。這就是流程圖中“數(shù)據(jù)處理”所完成的功能,。
系統(tǒng)中的主程序流程圖如圖6所示。其中觸摸屏校準處理采用了一種較為通用的校準算法,。由于電阻式觸摸屏有一個共性,,那就是電壓成線性均勻分布,所以,,只要求出邏輯坐標與物理坐標的比例系數(shù),,就可以實現(xiàn)邏輯坐標與物理坐標的轉(zhuǎn)換。首先可確定5個物理坐標點,。并依次在屏幕上用“+”顯示,,同時將其坐標值用數(shù)組Set_x[4]保存起來(以X坐標為例)。校準過程中讀出的邏輯坐標值則用數(shù)組Read_X[3]存儲,。最后求出邏輯坐標與物理坐標的比例系數(shù):
K1=(Read_x[1]-Read_x[0])/Set_X[1]-Set_x[0]),;
K2=(Read_X[3]-Read_X[2])/Set_X[3]-Set_x[2]);
KX=(K1+K2)/2,; ∥對兩次運算的值求平均得到最終的X比例系數(shù)
求得比例系數(shù)后,,再以設(shè)置的第5點作為基準點(Set_X[4]),這樣就可求出任意觸摸點的物理坐標:
X=(ReadX-Read_X[5])/KX+Set_X[4],;
同理,,也可求出Y軸的物理坐標。
2.2 Modbus通信協(xié)議
本系統(tǒng)采用Modbus作為手柄控制器與核心板之間的通信協(xié)議,。Modbus通信使用主-從技術(shù),,即僅一設(shè)備(主設(shè)備)能初始化傳輸(查詢),其它設(shè)備(從設(shè)備)根據(jù)主設(shè)備查詢提供的數(shù)據(jù)作出相應(yīng)反應(yīng),,主機查詢和從機回復(fù)的消息結(jié)構(gòu)如圖7所示,。主設(shè)備可單獨和從設(shè)備通信,也可以廣播方式和所有從設(shè)備進行通信,。如果單獨通信,,則從設(shè)備返回一消息作為回應(yīng);而如果是以廣播方式查詢,。則不作任何回應(yīng),。Modbus協(xié)議建立了主設(shè)備查詢格式,包括設(shè)備(或廣播)地址,、功能代碼、所有要發(fā)送的數(shù)據(jù)錯誤檢測域。從設(shè)備回應(yīng)消息也由Modbus協(xié)議構(gòu)成,,包括確認要行動的域,、任何要返回的數(shù)據(jù)、和錯誤檢測域,。如果在消息接收過程中發(fā)生錯誤,,或從設(shè)備不能執(zhí)行其命令,那么,,從設(shè)備將建立一個錯誤消息并把它作為回應(yīng)發(fā)送出去,。
Modbus協(xié)議有ASCII和RTU兩種傳輸模式,但在同一個Modbus網(wǎng)絡(luò)上的所有設(shè)備都必須選擇相同的傳輸模式和串口參數(shù),。本設(shè)計采用RTU模式,,即在消息中的每8 Bit字節(jié)都包含兩個4 Bit的十六進制字符,因而在同樣的波特率下,,可比ASCII方式傳送更多的數(shù)據(jù),。RTU模式的消息結(jié)構(gòu)如圖8所示。當(dāng)手柄控制器檢測到有按鍵被按下時,,就將被按下鍵的鍵碼按RTU消息幀的結(jié)構(gòu)并通過串口發(fā)送給核心板,。核心板接收到手柄控制器發(fā)送的信息后,首先進行CRC校驗,,校驗正確后,,核心板將根據(jù)鍵碼進行相應(yīng)操作,并且回應(yīng)手柄控制器,,若CRC校驗出錯,,則核心板回應(yīng)手柄控制器錯誤信息,從而完成一次通信后,,系統(tǒng)便等待下一次通信,。
3 結(jié)束語
本文所設(shè)計的人機接口通過實際使用證明其通訊穩(wěn)定可靠,操作簡單方便,,完全可以滿足醫(yī)用數(shù)據(jù)采集系統(tǒng)的要求,。并且該設(shè)計具有很強的移植性,可以根據(jù)使用系統(tǒng)的復(fù)雜性進行完善,。因而具有相當(dāng)廣泛的使用范圍,。