引 言
工業(yè)上用32位單片機(jī)PIC32MX460F512L來(lái)控制帶觸摸屏的液晶顯示器是一種理想的方案,。本文使用PIC32MX460F512L的并行接口模塊,,按照8080時(shí)序驅(qū)動(dòng)所羅門公司的SSD1926芯片,實(shí)現(xiàn)了5.7 in TFT彩色液晶觸模屏的觸摸和顯示功能,。該方案在噴水織機(jī)控制應(yīng)用中,,已經(jīng)整體實(shí)現(xiàn)了數(shù)據(jù)輸入/輸出、數(shù)據(jù)存儲(chǔ),、數(shù)據(jù)處理及傳輸?shù)纫幌盗猩衔粰C(jī)功能,,而且用戶界面友好。
1 PIC32MX與SSD1926的接口電路
SSD1926是一款中小規(guī)模的顯示控制芯片,。采用128引腳LQFP封裝,256 KB靜態(tài)存儲(chǔ)空間和2D圖像引擎,,可以支持單色和彩色LCD,;32位內(nèi)部數(shù)據(jù)通道,可以提供高帶寬的顯示內(nèi)存,,以實(shí)現(xiàn)快速的屏幕刷新,;擁有MMC/SD接口,可以與SD卡等外部存儲(chǔ)器件方便地進(jìn)行數(shù)據(jù)交換,;采用單電源供電和單時(shí)鐘輸入,,具有很短的CPU訪問(wèn)延遲時(shí)間,可以支持無(wú)READY/WAIT信號(hào)的微處理器,。這些特點(diǎn)能夠極大地簡(jiǎn)化外圍電路的設(shè)計(jì),。同時(shí),SSD1926還具有強(qiáng)大的總線兼容性,,可與多種類型的MCU連接,,除了支持SRAM接口與ARM系列連接、ISA接口與NEC系列連接外,還支持8/16位8080時(shí)序間接尋址方式,,能夠方便地與各種具有并口的MCU連接,。本文使用:PIC32MX460F512L的8位/16位并行控制接口模塊與SSD1926接口。硬件接口框圖如圖1所示,。
CS為片選信號(hào),,RS為地址與數(shù)據(jù)選擇信號(hào),RESET為復(fù)位信號(hào),,都可以由通用I/O口進(jìn)行控制,,分別用RC1、RC2和RC3與其連接,。數(shù)據(jù)總線DB[15:0]與并行控制接口模塊中的PMD[15:0]引腳分別對(duì)接,。WR和RD為讀寫信號(hào),由并行控制接口模塊中的PMWR和PMRD引腳分別控制,。SSD1926對(duì)接收到的數(shù)據(jù)進(jìn)行處理之后,,再通過(guò)與LCD的接口驅(qū)動(dòng)TFT彩色液晶屏進(jìn)行顯示。
2 觸摸功能的軟硬件設(shè)計(jì)
電阻式觸摸屏處于與外界完全隔離的工作環(huán)境,,不怕灰塵和水汽,,可以用任何物體來(lái)觸摸,可以寫字畫圖,,廣泛應(yīng)用于工業(yè)控制領(lǐng)域中,。觸摸屏工作時(shí),上下導(dǎo)體層可以看作電阻網(wǎng)絡(luò),。當(dāng)某一層電極加上電壓時(shí),,會(huì)在該電阻網(wǎng)絡(luò)上形成電壓梯度。若外力使得上下兩層電極在某一點(diǎn)相接觸,,則在電極未施加電壓的另一層可以檢測(cè)出接觸點(diǎn)的電壓,,從而換算出接觸點(diǎn)的坐標(biāo)值。本文選用4線電阻式觸摸屏,,其電阻網(wǎng)絡(luò)工作原理如圖2所示,。
系統(tǒng)工作時(shí),首先把AN11/RB11,、AN4/RB4復(fù)用引腳設(shè)置為I/O引腳,。RB11輸出高電平(+3.3 V),RB4引腳輸出低電平(0 V),,在頂層的電極X+,、X-上即產(chǎn)生了3.3 V的電壓。當(dāng)有外力使得上下兩層在某一點(diǎn)接觸時(shí),,在底層Y+,、Y-引腳上就會(huì)輸出接觸點(diǎn)處的電壓,。此時(shí),AN10/RB10,、AN5/RB5設(shè)置為A/D輸入通道,。采樣此引腳上的電壓信號(hào),即可得到Y(jié)+,、Y-引腳上的電壓值,,根據(jù)下式可以計(jì)算出X坐標(biāo):
觸點(diǎn)X坐標(biāo)=X軸分辨率×X相電壓采樣值/1 024
本文為10位精度A/D采樣,3.3 V輸入時(shí)對(duì)應(yīng)的采樣值即為1 024,。然后,,改變4個(gè)引腳的輸出定義,將A/D輸入引腳RB10設(shè)置為I/O引腳輸出高電平,,RB5設(shè)置為I/O引腳輸出低電平,,將3.3 V電壓切換到底層電極Y+、Y-上,,設(shè)置AN11和AN4為A/D輸入引腳,。對(duì)X+、X-引腳進(jìn)行A/D采樣,,測(cè)量得到接觸點(diǎn)處的Y相電壓,,根據(jù)下式可以計(jì)算出Y坐標(biāo):
觸點(diǎn)Y坐標(biāo)=y軸分辨率×y相電壓采樣值/1 024
在工業(yè)應(yīng)用中,由于A/D采樣信號(hào)為模擬量輸入,,很容易受到現(xiàn)場(chǎng)環(huán)境的電磁干擾,。除了在硬件上設(shè)計(jì)濾波電路等抗干擾措施外,還需要在軟件中設(shè)計(jì)抗干擾算法,,具體軟件流程如圖3所示,。通過(guò)采樣兩次輸入進(jìn)行比較的方法,能夠有效地減少由A/D采樣模擬信號(hào)源帶來(lái)的干擾,。根據(jù)采樣得到的X,、Y坐標(biāo)值,能夠準(zhǔn)確地知道觸摸屏上接觸點(diǎn)的位置,,再根據(jù)X、Y坐標(biāo)的歷史值,,還能夠分析出接觸點(diǎn)的狀態(tài)是接觸,、移動(dòng),還是放開(kāi)等狀態(tài),。
3 顯示觸摸功能的綜合實(shí)現(xiàn)
PIC32MX系列的并行控制接口模塊功能非常強(qiáng)大,,只需要對(duì)其寄存器進(jìn)行正確的初始化配置,即可自動(dòng)適應(yīng)各種并行接口的時(shí)序要求,。當(dāng)需要進(jìn)行讀寫指令切換時(shí),,只需要改變讀寫狀態(tài)寄存器的值,,芯片就會(huì)根據(jù)初始化配置時(shí)設(shè)置的值自動(dòng)產(chǎn)生時(shí)序電平。在進(jìn)行寫操作時(shí),,芯片也會(huì)根據(jù)設(shè)置的值,,自動(dòng)使數(shù)據(jù)信號(hào)達(dá)到所要求的建立電平和保持電平的時(shí)間。SSD1926相對(duì)應(yīng)的寄存器配置如下:
并行接口數(shù)據(jù)傳輸時(shí)序如圖4所示,。[next]
圖4中,,CS信號(hào)為片選信號(hào),對(duì)SSD1926進(jìn)行操作時(shí)在整個(gè)操作周期中保持高電平,。RS信號(hào)為地址與數(shù)據(jù)選擇信號(hào),,寫地址時(shí)保持低電平,寫數(shù)據(jù)時(shí)保持高電平,。PMWR為寫操作使能信號(hào),。當(dāng)寫操作開(kāi)始時(shí),首先等待1個(gè)外部時(shí)鐘周期(B),,確保PMD[15:0]上的數(shù)據(jù)或地址信號(hào)已穩(wěn)定建立,;然后保持3個(gè)外部時(shí)鐘周期的高電平(M),確保信號(hào)內(nèi)容完全寫入SSD1926,;最后用1個(gè)外部時(shí)鐘周期(E)結(jié)束寫操作,。BUSY信號(hào)為PMMODEbits.BUSY寄存器的狀態(tài)。進(jìn)行讀寫操作時(shí),,BUSY信號(hào)自動(dòng)置高,;只有讀到BUSY信號(hào)為低時(shí)(表示上一次操作已完成,總線空閑),,程序才能開(kāi)始下一次讀寫操作,。把對(duì)應(yīng)I/O口和寄存器的操作編程集成起來(lái),編寫為子程序,,可方便地在主程序中實(shí)現(xiàn)PIC32MX系列單片機(jī)與SSD1926之間的數(shù)據(jù)傳輸,。人機(jī)界面主程序框圖如圖5所示。
當(dāng)A/D采樣得到的接觸點(diǎn)X,、Y坐標(biāo)發(fā)生變化時(shí),,消息處理函數(shù)根據(jù)得到的消息發(fā)出相應(yīng)的指令。除了進(jìn)行數(shù)據(jù)輸入/輸出和與下位機(jī)通信外,,當(dāng)需要進(jìn)行頁(yè)面切換時(shí),,就更改頁(yè)面狀態(tài),調(diào)用“新頁(yè)面建立”函數(shù),,切換到新的頁(yè)面,;當(dāng)需要進(jìn)行頁(yè)面內(nèi)容更新時(shí),就調(diào)用“頁(yè)面更新”函數(shù),,更新當(dāng)前頁(yè)面的狀態(tài),。
為了簡(jiǎn)化編程,,軟件中定義了幾種常用的圖形模塊,如按鍵,、靜態(tài)圖片,、靜態(tài)文字段、動(dòng)態(tài)數(shù)據(jù)顯示框等,。每個(gè)模塊都具有模塊創(chuàng)建,、模塊更新和消息響應(yīng)3個(gè)子程序。模塊創(chuàng)建子程序根據(jù)模塊的上下左右坐標(biāo),、模塊的顏色,、模塊的內(nèi)容及狀態(tài)等參數(shù),在液晶顯示器的對(duì)應(yīng)位置上顯示出模塊的圖案,,并在對(duì)應(yīng)的內(nèi)存空間中記錄下模塊的狀態(tài),。模塊更新子程序定義了模塊不同狀態(tài)下圖案的變化,比如按鍵模塊當(dāng)被觸摸時(shí)即顯示出3D效果的凹陷圖案,,未被觸摸時(shí)即顯示3D效果的凸出圖案,。消息響應(yīng)子程序則根據(jù)A/D采樣得到的接觸點(diǎn)X、Y坐標(biāo),,判斷模塊是處于觸摸過(guò)程的接觸,、移動(dòng)還是放開(kāi)狀態(tài),并對(duì)狀態(tài)進(jìn)行響應(yīng),。Microchip公司特別針對(duì)PIC32MX系列還開(kāi)發(fā)了圖形軟件庫(kù)(graphics library),。該軟件可以方便地把各種語(yǔ)言、各種字體的文字以及位圖格式的圖片轉(zhuǎn)化為能夠在軟件中直接使用的數(shù)組矩陣,,極大地方便了用戶,。
4 應(yīng)用情況
該方案已經(jīng)成功應(yīng)用在了某公司自主開(kāi)發(fā)的噴水織機(jī)上。圖6為該噴水織機(jī)上本系統(tǒng)的實(shí)物圖,。
噴水織機(jī)是采用噴射水柱牽引緯紗穿越梭口的無(wú)梭織機(jī),。為了完成開(kāi)口、引緯,、打緯,、卷取、送經(jīng)過(guò)程,,需要多單元高精度的協(xié)同配合工作,。舊式的噴水織機(jī)完全靠機(jī)械齒輪齒條傳動(dòng)的方式,一旦更換織造品種,,就得更換大.量齒輪齒條,,改變傳動(dòng)比,;而且由于機(jī)械精度及強(qiáng)度的限制,,很難提高織造的速度,。
采用CAN總線電氣一體化控制策略的電控噴水織機(jī),能夠利用CAN總線高速傳輸?shù)哪芰σ约敖涣麟姍C(jī)伺服系統(tǒng)的高精度,,實(shí)現(xiàn)多單元的高度協(xié)同工作,,大幅度提高織造速度和質(zhì)量;并且更換織造品種時(shí)只需要進(jìn)行相關(guān)參數(shù)的調(diào)整,,無(wú)需改變機(jī)械傳動(dòng)比,。
由于電氣單元和交流伺服電機(jī)的引入,需要設(shè)置大量的參數(shù),,而且需要及時(shí),、準(zhǔn)確的故障報(bào)警,以監(jiān)測(cè)織機(jī)系統(tǒng)狀態(tài)并方便織機(jī)系統(tǒng)的維護(hù),。為此,,我們?cè)O(shè)計(jì)開(kāi)發(fā)了人機(jī)界面。它以PIC32MX460F512L芯片和液晶觸摸屏為核心,,具有精度高,、價(jià)格低、抗干擾能力強(qiáng),、簡(jiǎn)化了輸入輸出設(shè)備等優(yōu)點(diǎn),。系統(tǒng)通過(guò)I2C總線與片外EEPROM接口,能夠方便地保存用戶由界面輸入的數(shù)據(jù),;通過(guò)I2C總線與日歷時(shí)鐘芯片接口,,能夠得到準(zhǔn)確的時(shí)間信息;采用CAN通信方式與電機(jī)控制器通信,,將設(shè)置的參數(shù)及時(shí)傳輸42給主控制器,,并把用戶需要的數(shù)據(jù)實(shí)時(shí)顯示在液晶顯示屏上;具備故障監(jiān)測(cè)和自動(dòng)報(bào)警功能,,實(shí)現(xiàn)了電氣智能化控制,。系統(tǒng)結(jié)構(gòu)框圖如圖7所示。
5 結(jié) 論
本文介紹了帶觸摸屏的液晶控制器SSD1926與數(shù)字信號(hào)處理器PIC32MX460F512L的接口電路,,并行接口時(shí)序的模塊化實(shí)現(xiàn),,以及電阻式觸摸屏的觸摸功能。實(shí)踐證明,,這種方案具有完善的漢字顯示和圖形顯示功能,,占用引腳少,程序模塊化強(qiáng),,編寫方便,;觸摸功能可以取代應(yīng)用系統(tǒng)中的鍵盤模塊,具有良好的人機(jī)交互功能,。該方案已經(jīng)用于噴水織機(jī)中,,效果良好,。