劉繁明, 王振鵬, 張孟禹
哈爾濱工程大學(xué) 自動(dòng)化學(xué)院,黑龍江 哈爾濱 150001
SSD1963驅(qū)動(dòng)RGB接口LCD的設(shè)計(jì)與實(shí)現(xiàn)
劉繁明, 王振鵬, 張孟禹
哈爾濱工程大學(xué) 自動(dòng)化學(xué)院,黑龍江 哈爾濱 150001
為了解決RGB接口LCD與微控制器相連時(shí)的驅(qū)動(dòng)問題,提出了一種基于SSD1963硬件電路設(shè)計(jì)方案。通過與單片機(jī)LM3S9B96進(jìn)行通信調(diào)試,并對(duì)底層驅(qū)動(dòng)軟件進(jìn)行了設(shè)計(jì)。實(shí)際測(cè)試中,利用LM3S9B96控制板和SSD1963驅(qū)動(dòng)板順利實(shí)現(xiàn)了圖文顯示。測(cè)試結(jié)果表明,硬件設(shè)計(jì)和軟件驅(qū)動(dòng)設(shè)計(jì)都能滿足實(shí)際需求,并且工作穩(wěn)定。另外,該設(shè)計(jì)方案已經(jīng)在總體方案中得到應(yīng)用,降低了購(gòu)買帶LCD控制器的成本。
SSD1963;TI圖形庫(kù);LCD驅(qū)動(dòng);LM3S9B96;RG
隨著科技的進(jìn)步,帶觸摸屏的TFT-LCD模組在系統(tǒng)應(yīng)用中不僅能為人機(jī)界面提供高質(zhì)量的畫面顯示,而且能提供更直觀、方便的交互性[1]。液晶顯示則具備了穩(wěn)定可靠、成本低、功耗小、控制驅(qū)動(dòng)方便、接口簡(jiǎn)單易用、模塊化結(jié)構(gòu)緊湊等優(yōu)點(diǎn)。近年來(lái),國(guó)內(nèi)許多廠商,如紫晶、冀雅、晶華、信利、蓬遠(yuǎn)等已經(jīng)能夠滿足各種定制液晶顯示的需求;很多著名半導(dǎo)體廠商,如Hitachi、Seiko Epson、Toshiba、Holtek、Solomon、Samsung等也相繼推出了許多LCD控制驅(qū)動(dòng)器件[2]。
然而,在一些工業(yè)控制的人機(jī)界面設(shè)計(jì)中,會(huì)遇到微控制器(MCU)與RGB接口TFT-LCD之間的通信問題?,F(xiàn)階段,為液晶屏提供時(shí)序信號(hào)可通過FPGA、CPLD等可編程器件實(shí)現(xiàn)。由于可編程器件面積較大、成本較高,因而通常只在需要對(duì)電路進(jìn)行靈活配置的情況下才使用[1]。另外,市場(chǎng)上很多設(shè)備采用專用的顯示控制芯片來(lái)完成顯示控制,該方案硬件設(shè)計(jì)簡(jiǎn)單,其性能完全由控制芯片決定,不受設(shè)計(jì)影響,因此性能穩(wěn)定,但采用專用的控制芯片易受供貨周期影響[3]。
基于實(shí)驗(yàn)室現(xiàn)有條件考慮,文中以現(xiàn)有的專用控制驅(qū)動(dòng)器SSD1963和液晶顯示器TM070RDH13如何構(gòu)成結(jié)構(gòu)緊湊、成本低廉、簡(jiǎn)單易用、性能優(yōu)良的人機(jī)界面的設(shè)計(jì)進(jìn)行綜合闡述。
根據(jù)MCU是否集成LCD控制器,可設(shè)計(jì)為2種不同的方案,下面將對(duì)這兩種方案進(jìn)行詳細(xì)說(shuō)明。
1.1 方案1 MCU集成LCD控制器
目前,部分功能比較全面的單片機(jī)本身集成LCD控制器,如NXP公司的LPC1788等。對(duì)于此,MCU驅(qū)動(dòng)RGB接口TFT-LCD方案如圖1所示。圖中,外部擴(kuò)展RAM作為L(zhǎng)CD控制器幀緩存,LCD控制器通過LCD DMA控制器訪問幀緩存數(shù)據(jù),LCD控制器的配置寄存器與CPU系統(tǒng)總線相連。
圖1 集成LCD控制器的MCU驅(qū)動(dòng)TFT-LCD結(jié)構(gòu)
方案1在硬件方面雖不需要額外附加LCD控制器,但是仍然需要外部擴(kuò)展RAM作為數(shù)據(jù)幀緩存。從而呈現(xiàn)出內(nèi)置LCD控制器對(duì)內(nèi)存帶寬的高占用的缺點(diǎn)[1]。從軟件方面來(lái)看,RAM和LCD控制器進(jìn)行數(shù)據(jù)傳輸無(wú)疑占用了微控制器時(shí)間資源。另外,該方案只針對(duì)集成LCD控制器的MCU,而目前常用的工業(yè)用單片機(jī)(TI、NXP等公司)只有少數(shù)集成LCD控制器,因此該方案不具有普遍性。
1.2 方案2 MCU不集成LCD控制器
MCU不集成LCD控制器,則必須選擇合適的LCD控制器解決MCU與顯示控制接口時(shí)序問題。下面以SSD1963 LCD驅(qū)動(dòng)器為例對(duì)該方案進(jìn)行詳細(xì)闡述。
整體設(shè)計(jì)方案如圖2所示。微處理器可以通過不同寬度的總線或者I/O口與LCD驅(qū)動(dòng)控制器建立連接,以傳送圖片或者命令數(shù)據(jù)。圖片數(shù)據(jù)經(jīng)LCD顯示驅(qū)動(dòng)器SSD1963處理,轉(zhuǎn)換為相應(yīng)的像素?cái)?shù)據(jù),最后輸出至TFT-LCD進(jìn)行顯示。另外,LCD驅(qū)動(dòng)器SSD1963內(nèi)部集成1 215K的幀緩沖器[3],支持高達(dá)864×480像素點(diǎn)的24位真彩色圖片的顯示。與方案1對(duì)比具有以下優(yōu)勢(shì):
1)硬件設(shè)計(jì)簡(jiǎn)單。由于SSD1963內(nèi)部有1215K幀緩沖器,因此不必如方案1一樣,必須外部擴(kuò)展足夠大的RAM區(qū)作為幀緩存區(qū),從而硬件設(shè)計(jì)得到了簡(jiǎn)化。
2)對(duì)MCU要求低。SSD1963驅(qū)動(dòng)器可通過不同寬度接口與MCU互連。只要MCU的IO引腳數(shù)或者總線能夠滿足接口寬度,就可以實(shí)現(xiàn)MCU對(duì)液晶屏的顯示控制。接口寬度最低至8位,對(duì)于目前使用的8/16/32位MCU,很容易滿足接口寬度。
3)通用性強(qiáng)。實(shí)際應(yīng)用中,當(dāng)確定了使用的RGB接口LCD型號(hào)后,除了對(duì)TFT-LCD所必需的電源做相應(yīng)處理外,無(wú)需改變其他硬件設(shè)計(jì)。
圖2 SSD1963 驅(qū)動(dòng)TFT-LCD結(jié)構(gòu)
2.1 SSD1963特性及結(jié)構(gòu)
SSD1963顯示驅(qū)動(dòng)器是Solomon Systech公司生產(chǎn)的一款TFT真彩色液晶屏顯示控制器,內(nèi)部集成1 215 KB的幀緩沖器,支持864×480像素點(diǎn)的24位真彩色圖片的顯示。芯片支持不同總線寬度的微處理器并行接口用以接收來(lái)自微處理器的圖片數(shù)據(jù)和命令。它支持與普通的RGB TFT-LCD直接互連,色彩深度達(dá)到每像素點(diǎn)24位[3]。其具體特性如下:集成1 215K幀緩存RAM;支持TFT18/24位RGB的LCD接口;集成PWM調(diào)節(jié)背光亮度;可編程亮度、對(duì)比度和飽和度;可通過不同寬度接口與MCU進(jìn)行連接,寬度可以為8/9/16/18/位;內(nèi)部集成時(shí)鐘發(fā)生器;4個(gè)GPIO,可以模擬不同的接口;內(nèi)核電壓+1.2 V,并可工作在睡眠模式;I/O和LCD供電電壓為1.65~3.6 V。
芯片內(nèi)部結(jié)構(gòu)如圖3所示。MCU接口主要完成與微控制器通信、傳輸控制信息和圖像數(shù)據(jù);幀緩沖區(qū)對(duì)正在或即將顯示的圖像數(shù)據(jù)進(jìn)行存儲(chǔ);LCD控制器用來(lái)圖像數(shù)據(jù)處理,與RGB接口的TFT-LCD進(jìn)行數(shù)據(jù)傳輸。
圖3 SSD1963內(nèi)部結(jié)構(gòu)
圖4 SSD1963電路原理
2.2 顯示驅(qū)動(dòng)器外圍電路
圖4為該芯片實(shí)際連接的電路圖。SSD1963分為80引腳的BGA封裝和128引腳的LQFP封裝2種芯片類型,本設(shè)計(jì)選擇后者。
SSD1963與MCU接口采用16位寬度總線連接,也可以根據(jù)不同需要,選擇其他寬度總線接口方式。在實(shí)際測(cè)試中,驅(qū)動(dòng)器與MCU的IO口相連,使用IO口模仿讀寫時(shí)序;驅(qū)動(dòng)器的MCU接口有2種工作模式:6800模式和8080模式。CONF引腳用來(lái)選擇工作模式。當(dāng)CONF接低電平時(shí),MCU接口工作在6800模式;當(dāng)CONF接高電平(3.3 V)時(shí),接口工作在8080模式。本設(shè)計(jì)選擇后者,即8080模式。另外,時(shí)鐘輸入方式有2種選擇,可以是有源晶振輸入至CLK引腳,也可以使用時(shí)鐘振蕩器。如果使用時(shí)鐘振蕩器,一定要把CLK引腳接地,因?yàn)樵撘_和時(shí)鐘振蕩器的引腳是由或門連接的。本設(shè)計(jì)采用10 M的晶體振蕩器,經(jīng)PLL倍頻后,使系統(tǒng)工作時(shí)鐘為100 MHz。當(dāng)PLL寄存器配置并使能后,必須等待100 ms使PLL進(jìn)入鎖定狀態(tài)。另外,引腳TE是LCD控制器給MCU的反饋信息,它能夠顯示控制器的狀態(tài)。當(dāng)在非顯示時(shí)期,該引腳為高電平,通知微處理器可以傳輸數(shù)據(jù)到緩沖區(qū),從而避免了顯示數(shù)據(jù)被打斷。由于SSD1963工作速度高于實(shí)際應(yīng)用的MCU速度,此處懸空,不使用該功能。引腳D/C#引腳用來(lái)說(shuō)明輸入的是圖像數(shù)據(jù)還是命令數(shù)據(jù)。引腳高電平傳輸圖像數(shù)據(jù),引腳為低電平傳輸?shù)氖敲顢?shù)據(jù)[3]。
在實(shí)際應(yīng)用中,TFT-LCD選擇使用TIANMA公司的TM070RDH13,分辨率為800×480[4],通過24位RGB信號(hào)和一些控制信號(hào)與顯示驅(qū)動(dòng)器相連。SSD1963與LCD接口電路在此不多述,詳細(xì)信息參考應(yīng)用手冊(cè)[4]。
2.3 電源設(shè)計(jì)
SSD1963正常工作時(shí),所需電壓分別為VDDIO、VDDD、VDDPLL和VDDLCD,其中,VDDIO為IO口供電電源,其范圍1.65~3.6V,選擇為3.3 V;VDDD和VDDPLL為內(nèi)核工作電壓,為1.2 V;VDDLCD為L(zhǎng)CD提供的接口電壓,其范圍為1.65~3.6 V,選擇為3.3 V,因此芯片正常工作只需要3.3 V和1.2 V電壓即可。兩電壓實(shí)現(xiàn)可采用專用電壓接口芯片,本設(shè)計(jì)采用的電壓芯片分別為AMS1117系列芯片,輸出固定為3.3 V和1.2 V[5]。3.3 V電路如圖5所示,與3.3V電路相比,1.2V的電路圖只是芯片不同。
另外,TM070RDH13型號(hào)的LCD工作時(shí),需要其他3個(gè)電壓:+10.4 V、+16 V和-7 V[4]。這些電壓均可由MC34063電源芯片獲得,該芯片輸出電壓可調(diào),最大輸出電流為1.5 A[6],具體設(shè)計(jì)參考手冊(cè)[6]。
另外,LCD背光需要DC/DC驅(qū)動(dòng)芯片,芯片輸入端接顯示驅(qū)動(dòng)器PWM,輸出端接LCD背光引腳即可,本設(shè)計(jì)使用的驅(qū)動(dòng)芯片型號(hào)為CAT4101,具體設(shè)計(jì)參考手冊(cè)[7]。由于篇幅限制,電源設(shè)計(jì)在此不多述。
圖5 3.3V電源原理
在實(shí)際應(yīng)用中,MCU使用的是TI公司的Cortex-m3內(nèi)核的單片機(jī)LM3S9B96,具體參數(shù)可參見手冊(cè)[8]。為了縮短客戶的產(chǎn)品開發(fā)時(shí)間,TI推出了相配套的驅(qū)動(dòng)庫(kù),其中就包括圖形驅(qū)動(dòng)庫(kù)(graphics library),該庫(kù)除了少部分必須用匯編編寫的地方外,其余所有代碼完全用C語(yǔ)言編寫,容易理解,方便移植,可以支持任何尺寸的圖形顯示器,提供了獨(dú)立于硬件的圖形用戶接口。圖形庫(kù)分層如圖6所示,整個(gè)圖形層共分為3層,其中控件層和基本圖形層與硬件無(wú)關(guān)[7],它們分別實(shí)現(xiàn)控件操作和基本圖形或字體功能的軟件代碼實(shí)現(xiàn),這兩層的功能實(shí)現(xiàn)都是以顯示驅(qū)動(dòng)層為基礎(chǔ)的。
圖6 TI圖形庫(kù)分層
軟件驅(qū)動(dòng)層跟硬件聯(lián)系緊密。其驅(qū)動(dòng)層的軟件流程如圖7所示。在硬件設(shè)計(jì)中,SSD1963的MCU接口直接接到單片機(jī)的IO口,因此寫入圖像數(shù)據(jù)和命令數(shù)據(jù)時(shí),都需要使用IO口模仿寫時(shí)序,于是可得到2個(gè)函數(shù),WriteData和WriteCommand函數(shù),下面以WriteCommand函數(shù)代碼為例。
圖7 驅(qū)動(dòng)層軟件流程
完成寫命令和寫數(shù)據(jù)函數(shù)之后,就可以開始對(duì)SSD1963進(jìn)行初始化配置,在初始化函數(shù)中需要配置PLL、PWM、背光控制和顯示信息。由于篇幅限制,下面只對(duì)PLL的頻率進(jìn)行簡(jiǎn)單配置,其他配置參考手冊(cè)[3]。
由硬件設(shè)計(jì)SSD1963振蕩器輸入為10 M,要使系統(tǒng)時(shí)鐘為100 M,即為10M*(m+1)/(n+1)等于100 M,因此PLL頻率配置信息如下:
另外,軟件驅(qū)動(dòng)層還需要實(shí)現(xiàn)整個(gè)圖形庫(kù)中最基本的幾個(gè)顯示函數(shù)[10]:
函數(shù)依次實(shí)現(xiàn)的功能為:畫一個(gè)像素點(diǎn)、畫水平序列的像素、畫一條水平線、畫一條垂線、畫一個(gè)矩形和清除緩存中圖形數(shù)據(jù)。除了編寫圖形庫(kù)所必須的這幾個(gè)函數(shù)外,背光開關(guān)設(shè)置等,也需要自己編寫。
在上述工作完成之后,把底層函數(shù)移植到驅(qū)動(dòng)庫(kù)的底層,作為圖形庫(kù)與硬件之間的接口,應(yīng)用程序就可以直接調(diào)用基本圖形層和控件層函數(shù),以實(shí)現(xiàn)更多更復(fù)雜的顯示功能。
4.1 功能測(cè)試
功能測(cè)試分為硬件測(cè)試和軟件測(cè)試。硬件測(cè)試主要包括虛焊和短路檢測(cè)、LCD工作電壓測(cè)試調(diào)整以及電源功率檢測(cè);軟件測(cè)試主要包括底層驅(qū)動(dòng)函數(shù)測(cè)試,如線顯示、矩形框顯示以及背光亮度控制等。
1)硬件測(cè)試。
硬件測(cè)試旨在排除電路板在焊接過程中可能存在的虛焊和短路。方法:電路板在通電之前,用萬(wàn)用表檢測(cè)一下驅(qū)動(dòng)板的電源和地之間電阻大小。若電阻很小,則可能存在短路,仔細(xì)檢查可能存在的引腳短接。確保電路板不存在短路現(xiàn)象后,外接+5 V穩(wěn)壓電源,用萬(wàn)用表測(cè)試LCD工作所需電壓,即VGH、VGL和AVDD。經(jīng)測(cè)試,其對(duì)應(yīng)電壓依次為15.9、-7.05和10.45 V,滿足設(shè)計(jì)要求。由于總電源的功率主要消耗在LCD背光顯示上,因此電源功率測(cè)試需要配合軟件開關(guān)背光。背光亮度由SSD1963 PWM輸出引腳控制調(diào)節(jié)。通過改變SSD1963中寄存器的數(shù)值,控制PWM方波占空比來(lái)改變背光亮度變化。背光燈亮度級(jí)別共分為256級(jí),寄存器賦值0xFF時(shí),亮度最高,PWM占空比為100%;賦值0x00時(shí),背光燈變暗。
2)軟件測(cè)試。
軟件測(cè)試主要對(duì)底層驅(qū)動(dòng)函數(shù)和圖形控件層進(jìn)行測(cè)試,如畫點(diǎn)、畫線、畫矩形框和背光開關(guān)等函數(shù)。
首先,對(duì)圖形庫(kù)底層函數(shù)進(jìn)行測(cè)試。在主函數(shù)中依次調(diào)用像素點(diǎn)、直線、矩形框等子函數(shù),觀察LCD顯示屏顯示效果,實(shí)驗(yàn)表明底層函數(shù)達(dá)到了期望的效果。然后,對(duì)圖形庫(kù)中的圖形層以及控件層進(jìn)行測(cè)試,保證底層驅(qū)動(dòng)與高層的接口函數(shù)正確,就能直接調(diào)用圖形層和控件層函數(shù)。如圖8為SSD1963驅(qū)動(dòng)板驅(qū)動(dòng)LCD點(diǎn)、線、圓形等底層驅(qū)動(dòng)函數(shù)顯示效果。
圖8 SSD1963驅(qū)動(dòng)板底層函數(shù)顯示效果
4.2 結(jié)果分析
為了說(shuō)明SSD1963驅(qū)動(dòng)方案的優(yōu)點(diǎn),使用上述2種方案分別驅(qū)動(dòng)同一塊RGB接口的LCD—TM070RDH13。其中對(duì)應(yīng)方案1使用LPC1788單片機(jī)。LPC1788是NXP公司的一款單片機(jī),該單片機(jī)自帶LCD控制器,使用32 MB的SDRAM作為幀緩存,符合方案1要求。另外,2種方案均使用像素點(diǎn)24位色彩深度。
1)性能和穩(wěn)定性。
長(zhǎng)時(shí)間點(diǎn)亮液晶屏,并觀察如圖9顯示效果。
圖9 顯示效果對(duì)比
圖9(a)中SSD1963驅(qū)動(dòng)方案顯示圖片比較平滑,對(duì)比度和背光亮度較適中。另外,觀察圖9(b),顯示一段時(shí)間后,有很明顯的條紋狀波動(dòng)。由于使用同一塊LCD,排除了LCD本身的原因。初步斷定,由于長(zhǎng)時(shí)間運(yùn)行,芯片溫度升高,LPC1788自帶LCD控制器熱穩(wěn)定性不好。從而,說(shuō)明SSD1963驅(qū)動(dòng)方案顯示出較強(qiáng)的穩(wěn)定性。
2)圖片幀數(shù)據(jù)刷新速度。
分別使用LPC1788自帶的LCD控制器和SSD1963(MCU使用LM3S9B96)驅(qū)動(dòng)TM070RDH13,循環(huán)顯示圖9所示圖片。通過測(cè)試,前者10 s能夠刷新顯示22次,而SSD1963驅(qū)動(dòng)顯示相同的圖片且在相同的時(shí)間內(nèi)可以刷新27次。即對(duì)于相同的像素?cái)?shù)據(jù),SSD1963幀存取速度更快一些。這是由于LPC1788驅(qū)動(dòng)LCD時(shí),其緩存數(shù)據(jù)需要從SDRAM存取,因此,在存取時(shí)間上相對(duì)SSD1963略慢。
3)為了突出SSD1963通用性和靈活性的特點(diǎn),使用不同系列MCU控制SSD1963驅(qū)動(dòng)板,對(duì)另一型號(hào)液晶屏-AT043TN24進(jìn)行了顯示控制,如圖10為8051MCU驅(qū)動(dòng)顯示效果。
圖10 8051 MCU控制驅(qū)動(dòng)板顯示效果
采用以SSD1963驅(qū)動(dòng)芯片為核心的TFT-LCD驅(qū)動(dòng)板,從硬件設(shè)計(jì)和軟件調(diào)試結(jié)果看,其工作可靠,效果良好。既能夠滿足整個(gè)項(xiàng)目要求,又節(jié)省了成本。實(shí)際應(yīng)用表明,該系統(tǒng)具有可靠性強(qiáng),工作穩(wěn)定等特點(diǎn),能夠滿足項(xiàng)目需求,具有一定的使用價(jià)值。但也有不足之處,由于SSD1963內(nèi)部緩存只有1 MB多,對(duì)于復(fù)雜顯示界面的設(shè)計(jì)可能無(wú)法勝任。
[1] 紀(jì)寧寧, 孫靈燕. 3C2440A驅(qū)動(dòng)RGB接口TFTLCD的研究[J]. 液晶與顯示, 2008, 23(1): 96-97.
[2] 怯肇乾. 人機(jī)界面中的LCD控制驅(qū)動(dòng)與接口設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用, 2004, 10(3):9-10.
[3] Solomon Systech. SSD1963 technical data[EB/OL]. [2012-09-13]. http://www.solomon-systech.com.
[4] ShangHai Avic Optoelectronics. TM070RDH13 product specification version 2.0[EB/OL]. [2012-10-08]. http://www. zlgmcu.com/tianma/.
[5] Advanced Monolithic System. AMS1117 datasheet[EB/OL]. [2012-10-22]. http://wenku.baidu.com.
[6] Motorola. MC34063 datasheet[EB/OL]. [2012-10-22]. http:// www.icpdf.com.
[7] On Semiconductor. CAT4101 datasheet[EB/OL]. [2012-11-15]. http://www.alldatasheet.com.
[8] Texas Instruments. Stellaris LM3S9B96 microcontroller datasheet[EB/OL]. [2012-11-15]. http://www.ti.com.cn.
[9] Texas Instruments. LM3S9B96 development kit users manual[EB/OL]. [2012-11-21]. http://www.ti.com.cn.
[10] 廣州周立功單片機(jī)發(fā)展有限公司. Stellaris外設(shè)驅(qū)動(dòng)庫(kù)用戶指南[EB/OL]. [2012-11-21]. http://www.zlgmcu.com.
Design and realization of the RGB interface LCD driver based on SSD1963
LIU Fanming, WANG Zhenpeng, ZHANG Mengyu
College of Automation, Harbin Engineering University, Harbin 150001, China
In order to solve the problem of RGB interface LCD connecting with MCU, a hardware design based on SSD1963 is proposed. By communicating and debugging using the MCU LM3S9B96, underlying software driver program is also successfully designed. In the actual test, SSD1963 driver board connecting with the LM3S9B96 control panel has achieved the display of graph and text. The test results show that both hardware and software designs are congruent with the expectation. In addition, the design has been employed in the whole program, which has reduced the cost of the LCD with other driver board.
SSD1963; graphics library; LCD driver; LM3S9B96; RGB
TN409
A
1009-671X(2014)01-0016-06
10.3969/j.issn.1009-671X.201301017
2013-01-15.
劉繁明(1963-), 男,教授,博士;.王振鵬(1986-), 男,學(xué)生,碩士.
王振鵬, E-mail: wzpstudy@126.com.