劉 亮
(南京國電南自城鄉(xiāng)電網(wǎng)自動化工程有限公司,江蘇 南京210032)
EDP系列繼電保護(hù)裝置的人機界面(MMI)組件采用LCD 控制器芯片S1D13505 作為液晶顯示驅(qū)動器,該芯片外接EDO DRAM 作為顯存。EDO DRAM 屬于很多年前的設(shè)計,其供貨量有限,經(jīng)常出現(xiàn)采購困難的情況[1],對MMI組件的生產(chǎn)造成了嚴(yán)重影響。為保證工業(yè)生產(chǎn)的持續(xù)性,需要對MMI組件的硬件電路進(jìn)行升級,使用新的LCD 控制模塊。
采用其他的商用專業(yè)LCD 控制器芯片進(jìn)行硬件電路升級并不是一個很好的解決方案。首先,商用專業(yè)芯片成本較高,且容易受到器件斷檔的影響[2];其次,現(xiàn)有LCD 控制器的驅(qū)動軟件和EDP裝置的應(yīng)用程序聯(lián)系比較緊密,使用專業(yè)芯片進(jìn)行升級往往需要開發(fā)新的底層驅(qū)動,需要對裝置的軟件系統(tǒng)進(jìn)行較大規(guī)模修改,大大增加了方案實施的復(fù)雜度。
使用FPGA 自主實現(xiàn)LCD 控制器則可避免上述問題。首先,F(xiàn)PGA 是市場上成熟的主流芯片[3],價格比專用LCD 控制器芯片低很多。FPGA 可以實現(xiàn)各種硬件邏輯,能夠很好支持多種主流顯存芯片和液晶顯示模塊,可以有效避免硬件成本高和芯片供貨短缺等問題;其次,F(xiàn)PGA 具有數(shù)量眾多的通用管腳,可以很方便地復(fù)制MMI組件上處理器和S1D13505之間的硬件連線,保持LCD 控制器的地址空間、中斷向量、控制信號等資源分配不受電路升級的影響,通過合理的內(nèi)部邏輯開發(fā),可以兼容原驅(qū)動程序,使不改動軟件系統(tǒng)的同時實現(xiàn)硬件電路升級成為可能。
MMI組件硬件升級方案的物理結(jié)構(gòu)如圖1所示。FPGA 所實現(xiàn)的LCD 控制器和處理器之間的連線與原MMI組件的對應(yīng)部分相同;FPGA本身存儲容量有限,選擇搭配作為市場主流顯存芯片的SDRAM 來存儲圖像數(shù)據(jù);FPGA 還負(fù)責(zé)為TFT-LCD提供控制和數(shù)據(jù)信號,將圖像數(shù)據(jù)轉(zhuǎn)換為液晶模塊對應(yīng)的RGB管腳信號后,通過掃描方式進(jìn)行展現(xiàn)。
圖1 MMI組件硬件升級的物理結(jié)構(gòu)Fig.1 Physical architecture of MMI hardware update
由圖1可以看出,硬件升級后,F(xiàn)PGA 需要實現(xiàn)和處理器、SDRAM 以及TFT-LCD 模塊之間的數(shù)據(jù)通信,對應(yīng)的邏輯業(yè)務(wù)包括驅(qū)動程序響應(yīng)、SDRAM 訪問控制和TFT-LCD 液晶驅(qū)動。
驅(qū)動程序響應(yīng)負(fù)責(zé)模擬S1D13505 芯片,向處理器提供寄存器空間和顯示緩沖區(qū)的訪問。顯示緩沖區(qū)被FPGA 映射到顯存中,寄存器空間則位于FPGA 內(nèi)部。驅(qū)動程序通過寄存器空間訪問來獲取或設(shè)定LCD 控制器的配置,通過顯示緩沖區(qū)的訪問將圖像數(shù)據(jù)寫入顯存。
SDRAM 訪問控制功能負(fù)責(zé)產(chǎn)生符合SDRAM 芯片規(guī)格說明書(datasheet)的讀、寫和自刷新操作信號。
TFT-LCD液晶驅(qū)動功能負(fù)責(zé)產(chǎn)生液晶屏所需的控制信號和數(shù)據(jù)信號。
LCD 控制器的內(nèi)部邏輯采用模塊化設(shè)計,可分解為圖2所示的功能模塊。各功能模塊對特定的輸入進(jìn)行響應(yīng),產(chǎn)生特定的輸出。功能模塊通過互聯(lián),在FPGA 外部管腳上產(chǎn)生特定規(guī)律的信號,實現(xiàn)LCD 控制器的邏輯業(yè)務(wù)。
圖2 LCD 控制器的功能模塊Fig.2 Function blocks of the LCD controller
圖2 所示的設(shè)計中,hclk 為處理器總線時鐘,pclk 為液晶屏的像素時鐘,sclk 為SDRAM的工作時鐘。功能模塊的工作時鐘及其他時鐘信號由時鐘發(fā)生器模塊(CLK)根據(jù)倍頻模塊(PLL)提供的原始時鐘產(chǎn)生;主機端接口模塊(HIF)負(fù)責(zé)與處理器進(jìn)行信息交互,將讀寫請求進(jìn)行分發(fā);寄存器模塊(REG)負(fù)責(zé)模擬S1D13505的寄存器空間,對驅(qū)動程序命令進(jìn)行解析,實現(xiàn)芯片標(biāo)識讀取、顯示模式設(shè)定等工作;色彩查找表模塊(LUT)負(fù)責(zé)把顯存中的圖像數(shù)據(jù)轉(zhuǎn)換為對應(yīng)的RGB 信號數(shù)據(jù);訪問仲裁模塊(ARB)負(fù)責(zé)對SDRAM 芯片的操作進(jìn)行優(yōu)先級仲裁和訪問排序,防止訪問沖突;顯存控制模塊(RC)負(fù)責(zé)產(chǎn)生對外部SDRAM 芯片的控制信號及數(shù)據(jù)讀寫;寫緩沖模塊(WFIFO)對要寫入顯存的圖像信息進(jìn)行緩存,解決處理器和SDRAM 工作時鐘的異步問題;讀緩沖模塊(RFIFO)對顯存中取出的圖像數(shù)據(jù)進(jìn)行緩存,解決SDRAM 和TFT-LCD 工作時鐘的異步問題。
有限狀態(tài)機建模是解決復(fù)雜邏輯的有效方法,也是FPGA 開發(fā)中常用的方法。一個有限狀態(tài)機對應(yīng)一個特定時鐘域的邏輯,在Verilog程序中對應(yīng)一個always語句塊。方案采用了有限狀態(tài)機方法對LCD 控制器的各功能子模塊進(jìn)行建模編程,然后將子模塊互聯(lián),進(jìn)行時序測試調(diào)整,實現(xiàn)所期望的LCD 控制器業(yè)務(wù)邏輯。
通用TFT-LCD驅(qū)動的關(guān)鍵是提供符合標(biāo)準(zhǔn)的控制信號??刂菩盘栔饕感型叫盘朒SYN、場同步信號VSYN 以及數(shù)據(jù)有效信號DE[4]??刂菩盘栃枰c時鐘信號、數(shù)據(jù)信號滿足特定的時序關(guān)系,如圖3所示。
對于不同分辨率的TFT-LCD 模塊,控制信號時序關(guān)系都符合圖3 所示規(guī)律,參數(shù)的取值(THm和TVn)都有標(biāo)準(zhǔn)值可 遵循[2]。編程實現(xiàn)進(jìn)行參數(shù)化配置,使用常量來定義不同的參數(shù),可以很方便地產(chǎn)生多種顯示模式所需的控制信號。控制信號對應(yīng)的有限狀態(tài)機模型如圖4所示。其中,HSYN 和DE的基準(zhǔn)時鐘為PCLK,VSYN 的基準(zhǔn)時鐘為HSYN。
圖3 TFT-LCD信號時序圖Fig.3 Signal sequence diagram of TFT-LCD
圖4 TFT-LCD控制信號的有限狀態(tài)機Fig.4 FSM of TFT-LCD control signals
RC 模塊負(fù)責(zé)產(chǎn)生標(biāo)準(zhǔn)的SDRAM 控制信號、地址信號和數(shù)據(jù)信號,實現(xiàn)SDRAM 的訪問業(yè)務(wù),包括SDRAM 初始化、圖像數(shù)據(jù)寫入、自刷新和圖像數(shù)據(jù)讀出。SDRAM 管腳信號的定義、操作命令的信號時序及RC模塊的有限狀態(tài)機模型可以參見相關(guān)文檔[5]。
SDRAM 芯片是單口RAM,只能同時支持一種操作。在同一時刻,對SDRAM 的操作請求有可能來自于不同的發(fā)起者,例如,處理器寫圖像數(shù)據(jù)時候,若FPGA 的定時器模塊觸發(fā)了刷新操作,就會產(chǎn)生顯存訪問沖突。解決訪問沖突問題需要總線仲裁,該功能通過ARB模塊控制RC模塊的信號產(chǎn)生來實現(xiàn)。考慮到數(shù)據(jù)完整性和用戶體驗,方案所設(shè)計的ARB 模塊在實現(xiàn)時按照刷新請求高于寫請求、寫請求高于讀請求的次序進(jìn)行優(yōu)先級排序。ARB 模塊的有限狀態(tài)機模型如圖5所示。
圖5 ARB模塊狀態(tài)機Fig.5 FSM of the ARB block
MMI組件的處理器、SDRAM 芯片和TFTLCD 模塊的工作時鐘各不相同,數(shù)據(jù)接口的字長也不相同。LCD 控制器的一些特定業(yè)務(wù),例如圖像的保存和顯示,需要在這些元件之間傳遞信息,從而在功能子模塊之間產(chǎn)生數(shù)據(jù)通信同步問題。為此,方案引入了WFIFO 和RFIFO 模塊。
WFIFO 和RFIFO 都是雙口環(huán)形緩沖區(qū),其讀寫操作基于不同的工作時鐘,可以同時進(jìn)行。WFIFO 和RFIFO 的實現(xiàn)采用了基于Gray碼的異步FIFO 算法[6]。WFIFO 以單字節(jié)方式接收處理器發(fā)送過來的圖像數(shù)據(jù),再以4字節(jié)的Burst訪問方式寫入SDRAM;RFIFO 以4 字節(jié)的Burst訪問方式將SDRAM 中的圖像數(shù)據(jù)讀出,再以單字節(jié)長度向LUT 模塊輸出。
樣本電路的LCD 控制器采用Lattice公司的LFXP2-5E-5FT256I 芯 片,SDRAM 顯 存 采 用Micron公司的MT48LC4M32B2芯片,處理器為freescale公司的產(chǎn)品MPC 8247。樣本電路采用25MHz晶振,LCD 控制器通過內(nèi)部的PLL 模塊提供150 MHz的系統(tǒng)工作時鐘。SDRAM 工作在150 MHz時鐘下,采用4字節(jié)突發(fā)訪問模式。
測 試 的 TFT-LCD 液 晶 模 塊 采 用 的 是STCG057QVLAK(320×240,像 素 時 鐘6.25 MHz)。樣本電路上所設(shè)計的LCD 控制器的實驗顯示效果如圖6 所示,圖像清晰無抖動,無閃屏、錯行等現(xiàn)象。
圖6 實驗顯示效果Fig.6 Display effect of the experiment
為解決MMI組件在生產(chǎn)上所面臨的芯片供應(yīng)短缺問題,本文提出了基于FPGA 開發(fā)兼容原MMI驅(qū)動軟件的LCD 控制器、對MMI組件進(jìn)行相關(guān)硬件升級的解決方案,并對該LCD 控制器的設(shè)計實現(xiàn)進(jìn)行了描述。方案運用了模塊化思想來分解LCD 控制器的業(yè)務(wù)邏輯,各功能子模塊以有限狀態(tài)機方法進(jìn)行建模,采用了參數(shù)化的配置,在實現(xiàn)上以Verilog語言進(jìn)行編程開發(fā),充分保證了所開發(fā)LCD 控制器的功能可配置性、模塊可復(fù)用性和代碼可移植性。實際測試表明,方案所設(shè)計的LCD 控制器能夠滿足MMI組件對顯示模式的需求,可以實現(xiàn)無需改動軟件系統(tǒng)的硬件電路升級,保證了裝置生產(chǎn)的持續(xù)性,為類似問題的解決提供了一種有效的思路。
[1] 愛普生(中國)有限公司.S1D13505/13506外接EDO DRAM 說明[EB/OL].[2014-03-12].http://www.epson.com.cn/ed/lcdc/q_a.html.EPSON China,Limited.The explanation of the external EDO DRAM for S1D13505/13506[EB/OL].[2014-03-12].http://www.epson.com.cn/ed/lcdc/q_a.html.(in Chinese)
[2] 王鳴浩,吳小霞.基于FPGA 的通用液晶顯示控制器的設(shè)計和實現(xiàn)[J].液晶與顯示,2012,27(1):87-92.Wang M H,Wu X X.Design and realization of general LCD controller based on FPGA [J].Chinese Journal of Liquid Crystals and Displays,2012,27(1):87-92.(in Chinese)
[3] 王海力.中國FPGA 產(chǎn)業(yè)如何在市場上占有一席之地[J].世界電子元器件,2012(9):72-73.Wang H L.How to have a place in the market for Chinese FPGA industry[J].Global Electronics China,2012(9):72-73.(in Chinese)
[4] 唐 徐 立,黃君凱,劉 明 峰,等.基 于FPGA 的TFT-LCD 控制器設(shè) 計 與 實 現(xiàn)[J].半 導(dǎo) 體 技 術(shù),2010,35(11):1134-1137.Tang X L,Huang J K,Liu M F,et al.Design and REalization of the TFT-LCD CONTROLLER Based on FPGA[J].Semiconductor Technology,2010,35(11):1134-1137.(in Chinese)
[5] Lattice Semiconductor.SDR SDRAM controller-reference design RD1010[EB/OL].[2014-04-08].http://www.latticesemi.com/~/media/Documents/ReferenceDesigns/1D/AdvancedSDRSDRAMController-DesignDocumentation.PDF.
[6] 汪東,馬劍武,陳書明.基于Gray碼的異步FIFO 接口計數(shù)及其應(yīng)用[J].計算機工程與科學(xué),2005,27(1):58-60.Wang D,Ma J W,Chen S M.The interface technology of asynchronous FIFOs based on gray code and its application[J].Computer Engineering and Science,2005,27(1):58-60.(in Chinese)