根據(jù)ARM的LCD觸摸屏系統(tǒng)設(shè)計(jì)策略
1 系統(tǒng)結(jié)構(gòu)
系統(tǒng)主要包括三個(gè)部分,分別為PC機(jī)、S3C4480X微處理器和LCD觸摸屏模塊。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)框圖
本系統(tǒng)為基于S3C44BOX的工業(yè)設(shè)備提供交互接口,通過(guò)該系統(tǒng)可以給工業(yè)設(shè)備提供一個(gè)可視化的人機(jī)界面。來(lái)自PC機(jī)的定制好的界面信息存儲(chǔ)在ARM的FLASH存儲(chǔ)器內(nèi)。在應(yīng)用當(dāng)中,當(dāng)微處理器接收到觸摸屏按鍵信息時(shí),對(duì)工業(yè)設(shè)備進(jìn)行控制。同時(shí)微處理器也對(duì)LCD進(jìn)行界面的刷新,這樣以完成人機(jī)交互。
2 系統(tǒng)硬件設(shè)計(jì)
系統(tǒng)硬件電路原理如圖2所示。其中S3C4480X為CPU內(nèi)核,320x240點(diǎn)陣LCD觸摸屏為主要的輸入輸出設(shè)備。
圖2 系統(tǒng)硬件電路原理圖
2.1 LCD觸摸屏模塊OCMJ15x20D介紹
本系統(tǒng)顯示部分采用的是OCMJ15x20D (320x240點(diǎn)陣)D系列中文液晶濕示模塊,其中OCMJ表示奧可拉中文集成模塊。這是一個(gè)中英文文字與繪圖模式的點(diǎn)陣液晶屁示模塊,內(nèi)建512KByte的ROM字形碼,可以顯示中文字型、數(shù)字符號(hào)、英日歐文等字母,并且內(nèi)建雙圖層(Two Page)的顯爪內(nèi)存。在文字模式中,可接收標(biāo)準(zhǔn)中文文字內(nèi)碼直接顯示中文,而不需要進(jìn)入繪圖模式以繪圖方式描繪中文,提升液晶顯示中文之效率。該模塊整合了多項(xiàng)的實(shí)用界面,包含內(nèi)建的10-Bit ADC.提供觸控屏接口。OCMJ15X20D(V3.2)的觸摸屏是用FM7843控制的,該控制器已集成在模塊上,模塊已留出FM7843的控制線供客戶使用(OCMJ15X20D上的J5腳),可直接使用3V供電而不需外接負(fù)電壓。
模塊FM7843是四線電阻式觸摸屏輸入控制芯片。它是一款具有同步串行接口的12位采樣模數(shù)轉(zhuǎn)換器。在125kHz吞吐速率和2.7V電壓下的功耗為750μW.而在關(guān)閉模式下的功耗僅為0.5μW。它具有低功耗和高速等特性,因此被廣泛應(yīng)用。引腳X+、Y+、X-、Y-是轉(zhuǎn)換器模擬輸入端,DCLK是外部時(shí)鐘輸入;CS是片選端:DIN是串行輸入,其控制數(shù)據(jù)通過(guò)該引腳輸入;DOUT是串行數(shù)據(jù)輸出.用于輸出轉(zhuǎn)換后的觸摸位置數(shù)據(jù)。最大數(shù)為二進(jìn)制的4095;IN3、IN4是輔助輸入;PENIRQ是PEN中斷引腳。其中,S3C44BOX共使用6條與FM7843接口相連。
2.2 系統(tǒng)的工作原理
OCMJ15x20D模塊內(nèi)置LCD控制器,并將觸摸屏安裝在LCD液品屏上,設(shè)計(jì)相應(yīng)的控制電路對(duì)LCD和觸摸屏控制。當(dāng)用戶操作觸摸屏?xí)r,模塊FM7843控制芯片對(duì)觸摸點(diǎn)進(jìn)行檢測(cè),并把檢測(cè)到的信息送出轉(zhuǎn)換為相應(yīng)的坐標(biāo),以供S3C44BOX處理器讀取。
3 系統(tǒng)軟件設(shè)計(jì)及實(shí)現(xiàn)
3.1 系統(tǒng)軟件介紹
用戶可以根據(jù)實(shí)際應(yīng)用中的控制系統(tǒng)的需要及控制系統(tǒng)與人機(jī)交互界面的約定,通過(guò)PC機(jī)上的可視化人機(jī)界面定制軟件,定制好整個(gè)界面信息。然后把定制好的界面信息下載到ARM的Flash中,就可以輕松地實(shí)現(xiàn)人機(jī)界面的定制。在應(yīng)用中,ARM處理器通過(guò)直接操作I/O口與人機(jī)交互界面系統(tǒng)進(jìn)行交互,讀取觸摸屏信息。然后根據(jù)讀取的信息執(zhí)行相應(yīng)的操作。系統(tǒng)的軟件部分由用戶引導(dǎo)程序和應(yīng)用程序組成。系統(tǒng)運(yùn)行后,由用戶引導(dǎo)程序決定是執(zhí)行界面信息的更新還是正常運(yùn)行。若執(zhí)行界面信息的更新,則系統(tǒng)通過(guò)相關(guān)函數(shù)接收界面定制信息并保存在Flash中,然后通過(guò)本地讀取新的界面定制信息建立鏈表網(wǎng)絡(luò);若正常運(yùn)行,則直接從本地瀆取舊的界面定制信息建立鏈表網(wǎng)絡(luò)。應(yīng)用程序?qū)崿F(xiàn)的功能則包括觸摸屏輸入處理及界面的顯示。用戶通過(guò)本系統(tǒng)可以對(duì)工業(yè)設(shè)備所有與軟件相關(guān)的參數(shù)進(jìn)行配置。
3.2 程序設(shè)計(jì)
3.2.1 界面的定制與顯示
界面的定制足通過(guò)建立網(wǎng)絡(luò)鏈表的方式實(shí)現(xiàn)的。構(gòu)建好鏈表網(wǎng)絡(luò)后就進(jìn)入應(yīng)用程序階段,即系統(tǒng)進(jìn)入正常運(yùn)行狀態(tài)。通過(guò)系統(tǒng)中設(shè)定當(dāng)前屏指針、當(dāng)前項(xiàng)指針及已構(gòu)建的鏈表網(wǎng)絡(luò)等來(lái)實(shí)現(xiàn)人機(jī)交互界面的操作。
同一屏幕的項(xiàng)構(gòu)成雙向循環(huán)鏈表、鏈接屏幕構(gòu)成單向循環(huán)鏈表。實(shí)現(xiàn)方法:先以屏為單位建立每屏的橫向雙向循環(huán)鏈表; 再遍歷各屏的雙向鏈表,為各屏的項(xiàng)建立鏈接關(guān)系,進(jìn)而構(gòu)成一個(gè)鏈表網(wǎng)絡(luò)。通過(guò)遍歷當(dāng)前屏幕的橫向雙向循環(huán)鏈表來(lái)逐一顯示屏幕的項(xiàng)。其巾對(duì)各類項(xiàng)的處理如下:①當(dāng)屏幕項(xiàng)是文本時(shí),直接讀取并顯示。②當(dāng)屏幕項(xiàng)為整型、浮點(diǎn)時(shí).通過(guò)向控制系統(tǒng)索取其值并顯示。③當(dāng)屏幕項(xiàng)為枚舉時(shí),通過(guò)向控制系統(tǒng)索取其值,再按值讀取對(duì)應(yīng)的字符串并顯示。
評(píng)論