王璐,陳文飛,邱勇杰
(肇慶市金鵬實業有限公司,肇慶526040)
隨著TFT彩色液晶技術不斷發展成熟以及人們對人機界面感官性需求的不斷提高,越來越多的產品選用帶觸摸的TFT彩屏作為人機界面。本文針對RA8875的性能,提出了一種折中的解決方法。
RA8875[1]是瑞佑公司推出的256/64K色TFT-LCD控制器,最大支持800×480分辨率。RA8875的內部結構圖略——編者注。
在本設計中,主要涉及到RA8875的以下功能:
①480×272以下分辨率支持雙圖層,特別地,支持圖層1的通透模顯示,即設置好圖層1(Layer1)的透明色(BGTR Color)后,將其疊加在圖層2(Layer2)上,Layer1中原本顯示透明色的部分將不再顯示。其顯示效果如圖1所示。
②通過連續/區塊數據模式的DMA功能可將SPI-Flash中的數據快速搬移到RA8875顯存中顯示。
③可以直接訪問指定型號的外掛字庫,顯示16×16、24×24、32×32點陣文字,支持帶底色及通透兩種文本顯示模式。
④內建了直線、矩形、圓角矩形、橢圓的加速繪制引擎。以橢圓的繪制為例,在指定了橢圓的中心點、長短軸、顏色后開啟繪制,RA8875會自動按所指定參數繪出橢圓。圖2為RA8875用戶手冊[1]中給出的程序流程圖。其中[65h-A8h] 等均為RA8875中相應的寄存器。

圖1 圖層疊加的顯示效果圖

圖2 繪制橢圓的程序流程
⑤RA8875帶有一組10位ADC及其控制模塊,可用于控制4線電阻式觸摸屏。使用RA8875觸摸控制器的手動模式并配合中值平均濾波法濾波及三點校準[2]后,能實現觸摸屏和TFT屏坐標重合,其誤差值在10個像素點內,符合設計需求。
⑥帶有2組脈沖寬度調制(PWM1、PWM2),可方便用于LCD背光調節。
⑦帶1個GPOX,可方便用于輸出高/低電平。
如圖3所示,本系統由兩部分組成,分別為PC端的人機界面編輯軟件和應用RA8875組成的人機界面。

圖3 系統組成圖
PC端的人機界面編輯軟件包含兩部分:界面編輯、界面編譯。其中界面編輯(生成*.opt工程文件)用于設計者根據人機界面功能添加/編輯各個顯示頁面及其中所包含的顯示元素,例如圖片、文本、幾何圖形。特別地,允許設置正常圖像與按下圖像,這主要是為了在人機界面中使用圖片作為觸摸按鍵時能更美觀、及時地反映按鍵彈起/按下的狀態。界面編譯部分對工程文件(*.otp)進行整合打包,根據接口協議編譯生成資源文件(*.otpbin)。
如圖3所示,應用RA8875組成的人機界面主要由7部分組成:RA8875、MCU、SPI-Flash、字庫、TFT數字屏、背光驅動、4線電阻觸摸屏。圖4為RA8875與各部件連接的電路圖。
①雖然RA8875可以支持8位或16位的8080/6800系列數據總線接口以及I2C總線或3/4線的SPI串行接口,但是其BTE引擎功能僅對并行MCU接口開放[1],同時RA8875內部均為8位寄存器,所以本設計采用了STM32F103VCT6[3]的8位FSMC功能來控制。
②RA8875雖能以DMA方式快速顯示預存在SPIFlash里的圖像數據,但卻存在不能寫Flash的缺陷,必須將圖像取模數據預先保存在SPI-Flash中,以留待RA8875訪問。在軟件調試階段,可考慮將MCU的串口引出,通過MCU的SPI口訪問SPI-Flash,將*.otpbin文件下載至SPI-Flash中。在本設計的具體實現中采用了存儲容量為128Mb的SPI-Flash[4]保存資源文件(*.otpbin)及其他一些需要掉電保存的包括觸屏校準信息在內的系統數據。MCU、RA8875共用一組4線SPI總線訪問該SPI-Flash。為了避免因MCU未完全釋放SPI總線而導致RA8875不能正常讀取圖像數據的干擾問題,當RA8875需要訪問SPI總線時,MCU需要執行圖5所示的程序流程。

圖4 RA8875的電路框圖

圖5 MCU流程圖
③RA8875支持5種集通字庫芯片[1],在本設計中采用了GT23L32S4W[5]。兩者搭配使用支持15×16、24×24、32×32點陣GB2312標準字符及8×16、12×24、16×32點陣ASCII字符。
④RA8875的TFT驅動模塊用于驅動TFT數字屏的信號,包括時鐘信號(PCLK)、有效信號(DE)、垂直同步信號(VSYNC)、水平同步信號(HSYNC)、數據信號(PDAT[15:0] )。通過使用STM32內部的定時器中斷做精確計時,得出各種像素的TFT數字屏的速度指標,如表1所列。

表1 速度指標測試結果
隨著顯示屏分辨率的增加,其所需的處理時間相應遞增,在480×272像素時能達到24幀以上的刷新速度,由于人的視覺滯留效應,在這種速度下更新顯示內容沒有閃爍感,能被人肉眼所接受。速度指標測試結果略——編者注。在本設計中,采用驅動IC為OTA5180A的480(RGB)×272點陣TFT數字屏,圖6為該屏的接口定義及接線圖。
⑤如圖7所示,使用RT9293[6]作為背光WLED的驅動芯片,通過RA8875的PWM1來調節反饋引腳(FB)的電壓,實現背光亮度調節。另外,RA8875帶有一個GPOX引腳,通過訪問RA8875的C7h寄存器可修改該引腳的輸出電平,在本設計中,將其連至RT9293的使能端(LED_EN),當整個系統準備就緒需打開顯示時,再拉高電平使能背光。
⑥將RA8875的XN、YN、XP、YP連至4線電阻觸摸屏,系統就能不斷監測觸摸事件,為了提升ADC轉換穩定度,加10μF的電容到地。

圖6 TFT-LCD模組引腳定義及接線圖

圖7 背光電路圖
合理的資源文件接口協議是快捷地生成人機界面的關鍵。將PC端人機界面編輯軟件中的工程文件整合成緊湊的十六進制字節流文件就是資源文件。這個資源文件實質上就是由多個表(結構體)、圖像取模數據、字符串數據組成。資源文件的第一個字節處開始存放資源表,該表所包含的重要信息有:頁面信息表的數目、頁面信息表的入口地址、圖像信息表的數目、圖像信息表的入口地址。根據接口協議,這個接口實際上是由多個表組成。
3.1.1 頁面信息表
頁面是指一屏顯示界面,里面可包含多種元素。這是根據RA8875的功能特性及一般的顯示需要而設的,包括顯示圖像、不同顏色的文本、線段、矩形、圓角矩形、橢圓等。
頁面信息表所登記的信息包括該頁面唯一標識值、頁面元素個數、頁面元素表的地址。頁面元素表中存放的是上文提及的文本、線段、橢圓框、圖片等不同元素的屬性表。例如,對于橢圓框元素,其主要屬性為橢圓中心點、長短軸。MCU解析橢圓元素的屬性表內容后,按流程驅動RA8875顯示橢圓。
3.1.2 圖像信息表
圖像信息表中登記了一幅或多幅圖像的信息,包括圖像唯一的標識符、尺寸、圖像取模數據。當需要顯示或剪切顯示圖像時,僅需操作RA8875的個別寄存器即可將顯示工作完全交由RA8875的DMA來完成。其操作流程如圖8所示。

圖8 操作RA8875完成圖像顯示的流程圖
RA8875在480×272像素下支持雙圖層顯示。在本設計中,將Layer2設置為顯示加載資源的圖層,Layer1設置為根據現場實際需要動態顯示的圖層。Layge1以背景色(又可稱為透明色)透明的方式疊加顯示在Layer2之上,如圖2所示。從64K色中選取一種Layer1中不會用到的顏色作為透明色,當現場數據需要更新時,利用透明色局部清屏或作為文本底色,以達到現場數據直接疊加于人機界面上卻不破壞頁面的效果。圖9為對RA8875的操作流程圖。
在本設計中,使用128Mb Flash來存儲資源文件,可存儲64幅全屏圖像,若為不帶圖片的頁面,大多不足1KB/頁面的數據量,也可存放上萬頁面,這對一般的人機界面來說已經夠用了。
由于SPI-Flash支持從任意地址連續讀取任意長度數據,尤其是STM32所帶的SPI接口支持DMA功能,可以方便地加載各種資源表、信息表,因此不存在大量消耗內存及長期占用CPU的情況,給MCU留有足夠的資源去處理嵌入式系統中其他更重要的實時性任務。

圖9 接口協議的執行流程圖
本設計所用的PC端人機界面編輯軟件設計的界面圖略——編者注。
在充分利用RA8875特性的基礎上,借助PC機可視化編輯的優勢,提出了一套完整的人機界面設計的方案,并已嵌入于不同的人機界面設計中。雖然前期加入了PC端開發的工作量,但這種僅占用MCU少量工作時間及代碼空間的方法十分適用于低成本地縮短產品研發周期場合。
本文為期刊縮略版,全文見本刊網站www.mesnet.com.cn。
[1] 瑞佑科技(RAiO).RA8875文字/圖形TFT LCD控制器規格書V1.3,2013.
[2] 宋學端,蔡子裕,段青青.觸摸屏數據處理算法[J] .工藝應用技術與實現,2008(12):255-257.
[3] ST.STM32F系列ARM內核32位高性能微控制器參考手冊V10_1,2010.
[4] 華邦電子.W25Q128BV Reviosion E,2011.
[5] 上海集通公司.GT23L32S4W標準漢字字庫芯片簡要說明VER 4.0,2011.
[6] Richtek Technology Corporation.RT9293,2008.