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