王璐,陳文飛,邱勇杰
(肇慶市金鵬實(shí)業(yè)有限公司,肇慶526040)
隨著TFT彩色液晶技術(shù)不斷發(fā)展成熟以及人們對人機(jī)界面感官性需求的不斷提高,越來越多的產(chǎn)品選用帶觸摸的TFT彩屏作為人機(jī)界面。本文針對RA8875的性能,提出了一種折中的解決方法。
RA8875[1]是瑞佑公司推出的256/64K色TFT-LCD控制器,最大支持800×480分辨率。RA8875的內(nèi)部結(jié)構(gòu)圖略——編者注。
在本設(shè)計(jì)中,主要涉及到RA8875的以下功能:
①480×272以下分辨率支持雙圖層,特別地,支持圖層1的通透模顯示,即設(shè)置好圖層1(Layer1)的透明色(BGTR Color)后,將其疊加在圖層2(Layer2)上,Layer1中原本顯示透明色的部分將不再顯示。其顯示效果如圖1所示。
②通過連續(xù)/區(qū)塊數(shù)據(jù)模式的DMA功能可將SPI-Flash中的數(shù)據(jù)快速搬移到RA8875顯存中顯示。
③可以直接訪問指定型號的外掛字庫,顯示16×16、24×24、32×32點(diǎn)陣文字,支持帶底色及通透兩種文本顯示模式。
④內(nèi)建了直線、矩形、圓角矩形、橢圓的加速繪制引擎。以橢圓的繪制為例,在指定了橢圓的中心點(diǎn)、長短軸、顏色后開啟繪制,RA8875會(huì)自動(dòng)按所指定參數(shù)繪出橢圓。圖2為RA8875用戶手冊[1]中給出的程序流程圖。其中[65h-A8h] 等均為RA8875中相應(yīng)的寄存器。
圖1 圖層疊加的顯示效果圖
圖2 繪制橢圓的程序流程
⑤RA8875帶有一組10位ADC及其控制模塊,可用于控制4線電阻式觸摸屏。使用RA8875觸摸控制器的手動(dòng)模式并配合中值平均濾波法濾波及三點(diǎn)校準(zhǔn)[2]后,能實(shí)現(xiàn)觸摸屏和TFT屏坐標(biāo)重合,其誤差值在10個(gè)像素點(diǎn)內(nèi),符合設(shè)計(jì)需求。
⑥帶有2組脈沖寬度調(diào)制(PWM1、PWM2),可方便用于LCD背光調(diào)節(jié)。
⑦帶1個(gè)GPOX,可方便用于輸出高/低電平。
如圖3所示,本系統(tǒng)由兩部分組成,分別為PC端的人機(jī)界面編輯軟件和應(yīng)用RA8875組成的人機(jī)界面。
圖3 系統(tǒng)組成圖
PC端的人機(jī)界面編輯軟件包含兩部分:界面編輯、界面編譯。其中界面編輯(生成*.opt工程文件)用于設(shè)計(jì)者根據(jù)人機(jī)界面功能添加/編輯各個(gè)顯示頁面及其中所包含的顯示元素,例如圖片、文本、幾何圖形。特別地,允許設(shè)置正常圖像與按下圖像,這主要是為了在人機(jī)界面中使用圖片作為觸摸按鍵時(shí)能更美觀、及時(shí)地反映按鍵彈起/按下的狀態(tài)。界面編譯部分對工程文件(*.otp)進(jìn)行整合打包,根據(jù)接口協(xié)議編譯生成資源文件(*.otpbin)。
如圖3所示,應(yīng)用RA8875組成的人機(jī)界面主要由7部分組成:RA8875、MCU、SPI-Flash、字庫、TFT數(shù)字屏、背光驅(qū)動(dòng)、4線電阻觸摸屏。圖4為RA8875與各部件連接的電路圖。
①雖然RA8875可以支持8位或16位的8080/6800系列數(shù)據(jù)總線接口以及I2C總線或3/4線的SPI串行接口,但是其BTE引擎功能僅對并行MCU接口開放[1],同時(shí)RA8875內(nèi)部均為8位寄存器,所以本設(shè)計(jì)采用了STM32F103VCT6[3]的8位FSMC功能來控制。
②RA8875雖能以DMA方式快速顯示預(yù)存在SPIFlash里的圖像數(shù)據(jù),但卻存在不能寫Flash的缺陷,必須將圖像取模數(shù)據(jù)預(yù)先保存在SPI-Flash中,以留待RA8875訪問。在軟件調(diào)試階段,可考慮將MCU的串口引出,通過MCU的SPI口訪問SPI-Flash,將*.otpbin文件下載至SPI-Flash中。在本設(shè)計(jì)的具體實(shí)現(xiàn)中采用了存儲(chǔ)容量為128Mb的SPI-Flash[4]保存資源文件(*.otpbin)及其他一些需要掉電保存的包括觸屏校準(zhǔn)信息在內(nèi)的系統(tǒng)數(shù)據(jù)。MCU、RA8875共用一組4線SPI總線訪問該SPI-Flash。為了避免因MCU未完全釋放SPI總線而導(dǎo)致RA8875不能正常讀取圖像數(shù)據(jù)的干擾問題,當(dāng)RA8875需要訪問SPI總線時(shí),MCU需要執(zhí)行圖5所示的程序流程。
圖4 RA8875的電路框圖
圖5 MCU流程圖
③RA8875支持5種集通字庫芯片[1],在本設(shè)計(jì)中采用了GT23L32S4W[5]。兩者搭配使用支持15×16、24×24、32×32點(diǎn)陣GB2312標(biāo)準(zhǔn)字符及8×16、12×24、16×32點(diǎn)陣ASCII字符。
④RA8875的TFT驅(qū)動(dòng)模塊用于驅(qū)動(dòng)TFT數(shù)字屏的信號,包括時(shí)鐘信號(PCLK)、有效信號(DE)、垂直同步信號(VSYNC)、水平同步信號(HSYNC)、數(shù)據(jù)信號(PDAT[15:0] )。通過使用STM32內(nèi)部的定時(shí)器中斷做精確計(jì)時(shí),得出各種像素的TFT數(shù)字屏的速度指標(biāo),如表1所列。
表1 速度指標(biāo)測試結(jié)果
隨著顯示屏分辨率的增加,其所需的處理時(shí)間相應(yīng)遞增,在480×272像素時(shí)能達(dá)到24幀以上的刷新速度,由于人的視覺滯留效應(yīng),在這種速度下更新顯示內(nèi)容沒有閃爍感,能被人肉眼所接受。速度指標(biāo)測試結(jié)果略——編者注。在本設(shè)計(jì)中,采用驅(qū)動(dòng)IC為OTA5180A的480(RGB)×272點(diǎn)陣TFT數(shù)字屏,圖6為該屏的接口定義及接線圖。
⑤如圖7所示,使用RT9293[6]作為背光WLED的驅(qū)動(dòng)芯片,通過RA8875的PWM1來調(diào)節(jié)反饋引腳(FB)的電壓,實(shí)現(xiàn)背光亮度調(diào)節(jié)。另外,RA8875帶有一個(gè)GPOX引腳,通過訪問RA8875的C7h寄存器可修改該引腳的輸出電平,在本設(shè)計(jì)中,將其連至RT9293的使能端(LED_EN),當(dāng)整個(gè)系統(tǒng)準(zhǔn)備就緒需打開顯示時(shí),再拉高電平使能背光。
⑥將RA8875的XN、YN、XP、YP連至4線電阻觸摸屏,系統(tǒng)就能不斷監(jiān)測觸摸事件,為了提升ADC轉(zhuǎn)換穩(wěn)定度,加10μF的電容到地。
圖6 TFT-LCD模組引腳定義及接線圖
圖7 背光電路圖
合理的資源文件接口協(xié)議是快捷地生成人機(jī)界面的關(guān)鍵。將PC端人機(jī)界面編輯軟件中的工程文件整合成緊湊的十六進(jìn)制字節(jié)流文件就是資源文件。這個(gè)資源文件實(shí)質(zhì)上就是由多個(gè)表(結(jié)構(gòu)體)、圖像取模數(shù)據(jù)、字符串?dāng)?shù)據(jù)組成。資源文件的第一個(gè)字節(jié)處開始存放資源表,該表所包含的重要信息有:頁面信息表的數(shù)目、頁面信息表的入口地址、圖像信息表的數(shù)目、圖像信息表的入口地址。根據(jù)接口協(xié)議,這個(gè)接口實(shí)際上是由多個(gè)表組成。
3.1.1 頁面信息表
頁面是指一屏顯示界面,里面可包含多種元素。這是根據(jù)RA8875的功能特性及一般的顯示需要而設(shè)的,包括顯示圖像、不同顏色的文本、線段、矩形、圓角矩形、橢圓等。
頁面信息表所登記的信息包括該頁面唯一標(biāo)識值、頁面元素個(gè)數(shù)、頁面元素表的地址。頁面元素表中存放的是上文提及的文本、線段、橢圓框、圖片等不同元素的屬性表。例如,對于橢圓框元素,其主要屬性為橢圓中心點(diǎn)、長短軸。MCU解析橢圓元素的屬性表內(nèi)容后,按流程驅(qū)動(dòng)RA8875顯示橢圓。
3.1.2 圖像信息表
圖像信息表中登記了一幅或多幅圖像的信息,包括圖像唯一的標(biāo)識符、尺寸、圖像取模數(shù)據(jù)。當(dāng)需要顯示或剪切顯示圖像時(shí),僅需操作RA8875的個(gè)別寄存器即可將顯示工作完全交由RA8875的DMA來完成。其操作流程如圖8所示。
圖8 操作RA8875完成圖像顯示的流程圖
RA8875在480×272像素下支持雙圖層顯示。在本設(shè)計(jì)中,將Layer2設(shè)置為顯示加載資源的圖層,Layer1設(shè)置為根據(jù)現(xiàn)場實(shí)際需要?jiǎng)討B(tài)顯示的圖層。Layge1以背景色(又可稱為透明色)透明的方式疊加顯示在Layer2之上,如圖2所示。從64K色中選取一種Layer1中不會(huì)用到的顏色作為透明色,當(dāng)現(xiàn)場數(shù)據(jù)需要更新時(shí),利用透明色局部清屏或作為文本底色,以達(dá)到現(xiàn)場數(shù)據(jù)直接疊加于人機(jī)界面上卻不破壞頁面的效果。圖9為對RA8875的操作流程圖。
在本設(shè)計(jì)中,使用128Mb Flash來存儲(chǔ)資源文件,可存儲(chǔ)64幅全屏圖像,若為不帶圖片的頁面,大多不足1KB/頁面的數(shù)據(jù)量,也可存放上萬頁面,這對一般的人機(jī)界面來說已經(jīng)夠用了。
由于SPI-Flash支持從任意地址連續(xù)讀取任意長度數(shù)據(jù),尤其是STM32所帶的SPI接口支持DMA功能,可以方便地加載各種資源表、信息表,因此不存在大量消耗內(nèi)存及長期占用CPU的情況,給MCU留有足夠的資源去處理嵌入式系統(tǒng)中其他更重要的實(shí)時(shí)性任務(wù)。
圖9 接口協(xié)議的執(zhí)行流程圖
本設(shè)計(jì)所用的PC端人機(jī)界面編輯軟件設(shè)計(jì)的界面圖略——編者注。
在充分利用RA8875特性的基礎(chǔ)上,借助PC機(jī)可視化編輯的優(yōu)勢,提出了一套完整的人機(jī)界面設(shè)計(jì)的方案,并已嵌入于不同的人機(jī)界面設(shè)計(jì)中。雖然前期加入了PC端開發(fā)的工作量,但這種僅占用MCU少量工作時(shí)間及代碼空間的方法十分適用于低成本地縮短產(chǎn)品研發(fā)周期場合。
本文為期刊縮略版,全文見本刊網(wǎng)站www.mesnet.com.cn。
[1] 瑞佑科技(RAiO).RA8875文字/圖形TFT LCD控制器規(guī)格書V1.3,2013.
[2] 宋學(xué)端,蔡子裕,段青青.觸摸屏數(shù)據(jù)處理算法[J] .工藝應(yīng)用技術(shù)與實(shí)現(xiàn),2008(12):255-257.
[3] ST.STM32F系列ARM內(nèi)核32位高性能微控制器參考手冊V10_1,2010.
[4] 華邦電子.W25Q128BV Reviosion E,2011.
[5] 上海集通公司.GT23L32S4W標(biāo)準(zhǔn)漢字字庫芯片簡要說明VER 4.0,2011.
[6] Richtek Technology Corporation.RT9293,2008.