基于ARM的醫(yī)用數(shù)據(jù)采集系統(tǒng)的人機(jī)接口設(shè)計(jì)
ADS7843可以通過(guò)連接觸摸屏X+將觸摸信號(hào)輸入到A/D轉(zhuǎn)換器,同時(shí)打開(kāi)Y+和Y-驅(qū)動(dòng),然后再數(shù)字化X+的電壓,從而得到當(dāng)前Y位置的測(cè)量結(jié)果,同理,也可以得到X坐標(biāo)的邏輯坐標(biāo)。當(dāng)?shù)玫絏、Y的邏輯坐標(biāo)后,通過(guò)SPI接口將數(shù)據(jù)傳送給LM3S3748進(jìn)行數(shù)據(jù)處理。其ADS7843的外部電路如圖3所示。
1.4 RS232串口通信電路
RS232串口主要用于手柄控制器與核心板的通信,這類(lèi)似于人機(jī)接口中的鍵盤(pán)接口。它們之間通過(guò)Modbus協(xié)議進(jìn)行通信。其RS232串口通信電路如圖4所示。
2 系統(tǒng)軟件設(shè)計(jì)
2.1觸摸屏軟件設(shè)計(jì)
ADS7843具有兩種工作模式,分別為單端基準(zhǔn)模式和差分基準(zhǔn)模式。同時(shí)還可以對(duì)其進(jìn)行12位或8位轉(zhuǎn)換模式的選擇。本設(shè)計(jì)采用差分基準(zhǔn)模式和12位轉(zhuǎn)換模式,即:
WriteCharTo7843(0xD0);∥送控制字10010000,
即用差分方式+12位轉(zhuǎn)換模式,讀X坐標(biāo);
……
WriteCharTo7843(0x90);∥送控制字11010000,
即用差分方式+12位轉(zhuǎn)換模式,讀Y坐標(biāo);
CPU采用中斷方式對(duì)坐標(biāo)進(jìn)行讀取。當(dāng)未對(duì)屏幕進(jìn)行觸摸時(shí),ADS7843的引腳PENIRQ為高電平輸出,當(dāng)對(duì)屏幕有觸摸動(dòng)作時(shí),引腳PENIRQ變?yōu)榈碗娖捷敵?,每?dāng)CPU檢測(cè)到這個(gè)引腳的下降沿時(shí),系統(tǒng)進(jìn)入中斷讀取坐標(biāo)。其坐標(biāo)值讀取的流程如圖5所示。當(dāng)CPU在每一次獲取邏輯坐標(biāo)的過(guò)程中,實(shí)際上分別對(duì)X、Y坐標(biāo)進(jìn)行了11次讀取,然后將讀取到的邏輯坐標(biāo)值分別存入兩個(gè)數(shù)組,并且對(duì)這兩個(gè)數(shù)組中的值進(jìn)行冒泡排序,使其從小到大依次排列后,再去掉最大和最小的兩個(gè)數(shù)值,并將中間值作為基準(zhǔn),余下數(shù)值與基準(zhǔn)值進(jìn)行求差的絕對(duì)值運(yùn)算。設(shè)計(jì)中可設(shè)定一個(gè)閥值(此閥值可根據(jù)實(shí)驗(yàn)設(shè)置為5),如果絕對(duì)值大于閥值,則拋棄此值,最后將剩余數(shù)值求和平均,并將其作為最終邏輯坐標(biāo)值。這就是流程圖中“數(shù)據(jù)處理”所完成的功能。
系統(tǒng)中的主程序流程圖如圖6所示。其中觸摸屏校準(zhǔn)處理采用了一種較為通用的校準(zhǔn)算法。由于電阻式觸摸屏有一個(gè)共性,那就是電壓成線性均勻分布,所以,只要求出邏輯坐標(biāo)與物理坐標(biāo)的比例系數(shù),就可以實(shí)現(xiàn)邏輯坐標(biāo)與物理坐標(biāo)的轉(zhuǎn)換。首先可確定5個(gè)物理坐標(biāo)點(diǎn)。并依次在屏幕上用“+”顯示,同時(shí)將其坐標(biāo)值用數(shù)組Set_x[4]保存起來(lái)(以X坐標(biāo)為例)。校準(zhǔn)過(guò)程中讀出的邏輯坐標(biāo)值則用數(shù)組Read_X[3]存儲(chǔ)。最后求出邏輯坐標(biāo)與物理坐標(biāo)的比例系數(shù):
評(píng)論