摘 要:觸摸屏作為人機界面應用于氣相色譜儀控制系統(tǒng),在彩色LCD的配合下可實現(xiàn)可視化控制。本系統(tǒng)是基于S3C44B0嵌入式開發(fā)平臺,但是此處理器無SPI總線接口寄存器,只能通過軟件模擬SPI,實現(xiàn)與ADS7846通信。文中給出了觸摸屏數(shù)據(jù)采集的流程和用C語言實現(xiàn)的模擬SPI通信程序。
關(guān)鍵詞:S3C44B0; ADS7846; 氣相色譜儀
1 引言
氣相色譜儀是應用面極廣,數(shù)量較大的分析儀器中最重要的一大類科學儀器。在石油、天然氣、精細化工、冶金、電力、醫(yī)學、衛(wèi)生、糧油、食品、環(huán)保、氣體、技術(shù)監(jiān)督和國防科研等領(lǐng)域中,幾乎成為現(xiàn)代分析化學實驗室必備的分析儀器之一。隨著氣相色譜儀的普及,客戶對系統(tǒng)的要求逐步提高,不僅要求其有良好的運轉(zhuǎn)性能,而且需要實時、直觀地顯示工作狀態(tài),要求操作人員根據(jù)實際情況方便地調(diào)整系統(tǒng)的工作參數(shù),數(shù)據(jù)的采集、分析、判斷、參數(shù)顯示。為此,我們設計開發(fā)了可視化的控制系統(tǒng),能夠可視化地顯示系統(tǒng)狀態(tài)、提供完全圖形化的操作方法,而且成本較低。
2 氣相色譜儀原理及系統(tǒng)結(jié)構(gòu)
色相色譜儀技術(shù)的基本原理是(如圖1):當氣體樣品通過一定的進樣方式送入色譜系統(tǒng)后,樣品中混合物的各組分在流動相(載氣)的帶動下,通過稱為色譜柱的固定相,利用各組分在流動相中具有不同的吸附能力,當二相作相對運動時,樣品中各組分就會在二相中反復多次(103~106)受到上述各種作用力的作用,從而使混合物中各組分獲得分離,被分離后的單一組分隨載氣進入檢測器的系統(tǒng),獲得非電量轉(zhuǎn)換,將化學成分轉(zhuǎn)變成與其濃度成正比的電信號,然后通過這些電信號的不同來分析樣品成分。
[align=center]

圖1 氣相色譜儀系統(tǒng)結(jié)構(gòu)框圖[/align]
如圖1所示,該氣相色譜儀的控制系統(tǒng)主要由嵌入式控制系統(tǒng)(MCU)、一個溫度檢測器、一個載氣流量檢測控制器和一個樣品流量檢測控制、再加一個高阻抗放大器(帶光電隔離器)組成,其主要特點是MCU外接了帶觸摸屏的彩色LCD作為人機界面。本系統(tǒng)的工作原理是首先通過觸摸屏上不同的觸點使MCU分別向載氣和樣品流量控制器發(fā)送參數(shù)設定指令,為了達到可靠性,此命令通過RS485串口總線發(fā)送;啟動這個檢測系統(tǒng)后,可以通過觸摸屏實時的發(fā)送查詢各檢測器狀態(tài)的指令,當溫度檢測器,流量檢測控制器收到指令后,符合自己的,則把自己的狀態(tài)信息也通過RS485串口總線發(fā)送到MCU,MCU收到數(shù)據(jù)后在彩色LCD顯示相應的信息,如溫度曲線、流量曲線等;色譜儀的檢測器把檢測到的信息通過高阻抗放大器變化以后把檢測到的結(jié)果顯示在LCD上,直觀的查看樣品的成分。同時,MCU通過以太網(wǎng)把收到的數(shù)據(jù)傳到 PC機上,做備份;PC終端也可通過MCU對系統(tǒng)進行參數(shù)設定。為了協(xié)調(diào)MCU和各檢測控制器的通信,我們自己制定了一套內(nèi)部通信協(xié)議。整個系統(tǒng)都是按照LCD上的提示,通過觸摸屏來控制的。
3 硬件實現(xiàn)
我們開發(fā)了ARM7開發(fā)板(處理器為SAMSUNG公司的ARM7TDMI內(nèi)核的S3C44B0,數(shù)據(jù)位寬是32位,主頻可達66MHZ)作為中低端嵌入式系統(tǒng)的硬件平臺。此處理器內(nèi)建了LCD控制器(最大支持256色STN,使用專用DMA);2個異步串口控制器(支持IrDA1.0,16字節(jié)的FIFO);提供復合功能的71個通用I/O端口,供我們外接其他設備。
本系統(tǒng)的觸摸屏采用了AMD公司的電阻式觸摸屏AMT 9502型,該電阻觸摸屏的屏體部分是一塊與顯示器表面非常配合的多層復合薄膜,由一層有機玻璃作為基層,表面涂有一層透明的導電層,上面再蓋有一層外表面硬化處理、光滑防刮的塑料層,它的內(nèi)表面涂有一層透明導電層,在兩層導電層之間有許多細小(小于1/1000英寸)的透明隔離點把它們隔開絕緣。當筆觸摸屏幕時,兩層導電層在觸摸點位置就有了接觸,電阻發(fā)生變化,在X和Y兩個方向上產(chǎn)生信號,然后送觸摸屏控制器,計算出(X,Y)的位置。
觸摸屏控制芯片采用的是TI公司的模數(shù)轉(zhuǎn)換芯片ADS7846,此芯片是一種典型的12位取樣的逐步近似寄存器(SAR)A/D轉(zhuǎn)換器。除了基本的觸摸點位置的測量外,還可進行觸摸壓力的測量。芯片內(nèi)部提供的2.5v參考電壓可用于輔助輸入,電池監(jiān)控器和溫度測量。其自動節(jié)電功能可以保證很低的功率損耗,對于低功耗的嵌入式系統(tǒng)電路非常適合。本文只應用其作為觸摸屏控制器的基本功能。
ADS7846經(jīng)過A/D把坐標值傳給MCU,MCU經(jīng)過處理后在LCD上顯示相應的信息或通過RS485發(fā)出相應的指令;ADS7846同時能接收MCU發(fā)來的命令并加以執(zhí)行。ADS7846和外部進行數(shù)據(jù)交換是使用SPI總線,而S3C44B0沒有SPI總線接口,所以只能采用通用I/O口軟件模擬SPI,詳細硬件接線如圖2。
[align=center]

圖2. 觸摸屏硬件連接圖[/align]
4 軟件實現(xiàn)
為了獲得一個坐標值,ADS7846與MCU之間需經(jīng)過3個SPI的時鐘傳送(見圖4)。第一次從DIN向ADS7846發(fā)送測量命令字(見表1,設置見表2)。當ADS7846接收到命令字的前五位后,A/D轉(zhuǎn)換器進入采樣階段。控制字節(jié)輸入完畢后,等待BUSY為低后,在每個DCLK的下降沿,A/D轉(zhuǎn)換的坐標值從高位到低位逐位從DOUT引腳向MCU輸出。12位的A/D轉(zhuǎn)換結(jié)果數(shù)據(jù)在第13個DCLK時鐘傳送完畢。因此,有效數(shù)據(jù)是前12位,后面4位補0。
[align=center]

圖 3 ADS7946 24個Clock的時序轉(zhuǎn)換圖[/align]
[align=center]

表1 ADS7846測量命令字(8bit)

表2差分方式下(SER/DFR low)命令字與測量坐標值的關(guān)系[/align]
1) S3C44B0的初始化處理
由于S3C44B0沒有SPI接口,本文采用通用IO口模擬SPI,具體寄存器設置如下:
通常ADS7846工作在筆中斷模式,ADS7846檢測到筆落下時,通過 發(fā)出中斷信號,S3C44B0的EINT3在下降沿觸發(fā)的情況下,進入中斷服務子程序。我們在程序中定義了兩個全局變量,一個用來記錄經(jīng)ADS7846轉(zhuǎn)換后輸出觸點的X和Y坐標值,另一個用來表示筆的當前工作狀態(tài):
static struct pen_position{
unsigned short x;
unsigned short y;
unsigned char pen_state;
} first, second ;
其中pen_state的值反映筆的狀態(tài),為0是表示筆抬起,為1時筆落下。在對I/O寄存器的適當配置后,首先,S3C44B0通過DIN向ADS7846發(fā)送一個空命令字0x80(PD1,PD0都為0)來啟動中斷功能,使 為高,才能響應筆中斷的產(chǎn)生。C語言實現(xiàn)發(fā)送命令字程序如下:
void Send_controlbit( int cmd)
{ ……
for(i=0;i<8;i++)
{
rPDATF=(cmd>>(7-i)); /*通過PF0逐位輸出控制比特 */
Delay(20); // delay 20ns
rPDATG|=0x40; /*使PG6為1,即DCLK 為高 */
Delay(220); /*delay 220ns */
rPDATG&=0xBF; /*使PG6為0,即DCLK為低 */
Delay(200); /*delay 200ns */
}
}
2)數(shù)據(jù)的采集
[align=center]

圖5 數(shù)據(jù)采集流程[/align]
為了使系統(tǒng)實時的響應外部中斷處理,在進入筆中斷服務程序以后,把pen_state變?yōu)?,立即跳出中斷,程序隨即進入坐標值轉(zhuǎn)換和讀取階段,具體流程見圖5。要完成X、Y坐標值的轉(zhuǎn)換和讀取,MCU需分別向ADS7846發(fā)測量命令字,X坐標測量命令字(0xD3)、Y坐標測量命令字(0x93)。讀取坐標值的C程序如下:
int Touch_GetXY()
{ ……
for(i=;i<16;i++)
{ rPDATG|=0x40; /*DCLK 為高 */
temp=(rPDATF>>7);
temp&=0x1; /*通過PF7逐位讀取坐標值*/
data|=temp<<(15-i); /*把數(shù)據(jù)暫存在temp1*/
Delay(220); /* delay 220 ns*/
rPDATG&=0xBF; /*DCLK為低*/
Delay(220); /* delay 220ns */
}
data&=0xffff;
data=(data>>4); /*剔除后面4個0*/
return(data); /*返回坐標值 */
}
由于筆與觸摸屏接觸的壓力大小、時間長短,會導致觸點的抖動,這對于采集正確的觸點位置值有一定的影響。本文采用兩次采樣的方法來消除觸點的抖動,在程序中定義了一個計數(shù)器count,計算采樣次數(shù),當讀取兩次后跳出采樣程序。得到兩次坐標值分別為(fisrt.x,first.y)、(second.x,second.y),然后比較其差值,如果小于一定的值,則有效,并取其平均值;否則判為采樣錯誤,重新采樣。
通過觸摸屏和LCD的配合,此種方法取得了較好的實際效果,基本上消除了觸點抖動的影響。
5 總結(jié)
本文所介紹的程序已經(jīng)在S3C44B0平臺上經(jīng)過實際驗證,并與彩色LCD相配合,可提供可視化的人機界面。本系統(tǒng)應用到了氣相色譜儀工作站上,操作者可以直觀的查看溫度檢測器、流量控制器的運行狀況,同時可以實時地修改控制參數(shù),系統(tǒng)穩(wěn)定性良好。
參考文獻:
1. SAMSUNG electronic. S3C44B0 RISC Microprocessor Datasheet
2. Texas Instruments Incorported, ADS7846 Touch screen Controller data sheet
3. 商登喜, 氣相色譜儀的原理及應用, 高等教育出版社, 1989
作者介紹:
譚華平,男,1979.4, 碩士研究生, 研究方向: 嵌入式系統(tǒng)的軟硬件開發(fā)
張鵬,男,1980.1,碩士研究生,研究方向: 嵌入式系統(tǒng)的軟硬件開發(fā)
汪敏,男, 1957.1,教授,從事研究:數(shù)字通信與網(wǎng)絡技術(shù)、寬帶綜合業(yè)務接入網(wǎng)技術(shù)
潘志浩,男,1968.8 副研究員,從事研究:數(shù)字通信與網(wǎng)絡技術(shù)、多媒體通信