劉 亮
(南京國電南自城鄉電網自動化工程有限公司,江蘇 南京210032)
EDP系列繼電保護裝置的人機界面(MMI)組件采用LCD 控制器芯片S1D13505 作為液晶顯示驅動器,該芯片外接EDO DRAM 作為顯存。EDO DRAM 屬于很多年前的設計,其供貨量有限,經常出現采購困難的情況[1],對MMI組件的生產造成了嚴重影響。為保證工業生產的持續性,需要對MMI組件的硬件電路進行升級,使用新的LCD 控制模塊。
采用其他的商用專業LCD 控制器芯片進行硬件電路升級并不是一個很好的解決方案。首先,商用專業芯片成本較高,且容易受到器件斷檔的影響[2];其次,現有LCD 控制器的驅動軟件和EDP裝置的應用程序聯系比較緊密,使用專業芯片進行升級往往需要開發新的底層驅動,需要對裝置的軟件系統進行較大規模修改,大大增加了方案實施的復雜度。
使用FPGA 自主實現LCD 控制器則可避免上述問題。首先,FPGA 是市場上成熟的主流芯片[3],價格比專用LCD 控制器芯片低很多。FPGA 可以實現各種硬件邏輯,能夠很好支持多種主流顯存芯片和液晶顯示模塊,可以有效避免硬件成本高和芯片供貨短缺等問題;其次,FPGA 具有數量眾多的通用管腳,可以很方便地復制MMI組件上處理器和S1D13505之間的硬件連線,保持LCD 控制器的地址空間、中斷向量、控制信號等資源分配不受電路升級的影響,通過合理的內部邏輯開發,可以兼容原驅動程序,使不改動軟件系統的同時實現硬件電路升級成為可能。
MMI組件硬件升級方案的物理結構如圖1所示。FPGA 所實現的LCD 控制器和處理器之間的連線與原MMI組件的對應部分相同;FPGA本身存儲容量有限,選擇搭配作為市場主流顯存芯片的SDRAM 來存儲圖像數據;FPGA 還負責為TFT-LCD提供控制和數據信號,將圖像數據轉換為液晶模塊對應的RGB管腳信號后,通過掃描方式進行展現。

圖1 MMI組件硬件升級的物理結構Fig.1 Physical architecture of MMI hardware update
由圖1可以看出,硬件升級后,FPGA 需要實現和處理器、SDRAM 以及TFT-LCD 模塊之間的數據通信,對應的邏輯業務包括驅動程序響應、SDRAM 訪問控制和TFT-LCD 液晶驅動。
驅動程序響應負責模擬S1D13505 芯片,向處理器提供寄存器空間和顯示緩沖區的訪問。顯示緩沖區被FPGA 映射到顯存中,寄存器空間則位于FPGA 內部。驅動程序通過寄存器空間訪問來獲取或設定LCD 控制器的配置,通過顯示緩沖區的訪問將圖像數據寫入顯存。
SDRAM 訪問控制功能負責產生符合SDRAM 芯片規格說明書(datasheet)的讀、寫和自刷新操作信號。
TFT-LCD液晶驅動功能負責產生液晶屏所需的控制信號和數據信號。
LCD 控制器的內部邏輯采用模塊化設計,可分解為圖2所示的功能模塊。各功能模塊對特定的輸入進行響應,產生特定的輸出。功能模塊通過互聯,在FPGA 外部管腳上產生特定規律的信號,實現LCD 控制器的邏輯業務。

圖2 LCD 控制器的功能模塊Fig.2 Function blocks of the LCD controller
圖2 所示的設計中,hclk 為處理器總線時鐘,pclk 為液晶屏的像素時鐘,sclk 為SDRAM的工作時鐘。功能模塊的工作時鐘及其他時鐘信號由時鐘發生器模塊(CLK)根據倍頻模塊(PLL)提供的原始時鐘產生;主機端接口模塊(HIF)負責與處理器進行信息交互,將讀寫請求進行分發;寄存器模塊(REG)負責模擬S1D13505的寄存器空間,對驅動程序命令進行解析,實現芯片標識讀取、顯示模式設定等工作;色彩查找表模塊(LUT)負責把顯存中的圖像數據轉換為對應的RGB 信號數據;訪問仲裁模塊(ARB)負責對SDRAM 芯片的操作進行優先級仲裁和訪問排序,防止訪問沖突;顯存控制模塊(RC)負責產生對外部SDRAM 芯片的控制信號及數據讀寫;寫緩沖模塊(WFIFO)對要寫入顯存的圖像信息進行緩存,解決處理器和SDRAM 工作時鐘的異步問題;讀緩沖模塊(RFIFO)對顯存中取出的圖像數據進行緩存,解決SDRAM 和TFT-LCD 工作時鐘的異步問題。
有限狀態機建模是解決復雜邏輯的有效方法,也是FPGA 開發中常用的方法。一個有限狀態機對應一個特定時鐘域的邏輯,在Verilog程序中對應一個always語句塊。方案采用了有限狀態機方法對LCD 控制器的各功能子模塊進行建模編程,然后將子模塊互聯,進行時序測試調整,實現所期望的LCD 控制器業務邏輯。
通用TFT-LCD驅動的關鍵是提供符合標準的控制信號。控制信號主要指行同步信號HSYN、場同步信號VSYN 以及數據有效信號DE[4]。控制信號需要與時鐘信號、數據信號滿足特定的時序關系,如圖3所示。
對于不同分辨率的TFT-LCD 模塊,控制信號時序關系都符合圖3 所示規律,參數的取值(THm和TVn)都有標準值可 遵循[2]。編程實現進行參數化配置,使用常量來定義不同的參數,可以很方便地產生多種顯示模式所需的控制信號。控制信號對應的有限狀態機模型如圖4所示。其中,HSYN 和DE的基準時鐘為PCLK,VSYN 的基準時鐘為HSYN。

圖3 TFT-LCD信號時序圖Fig.3 Signal sequence diagram of TFT-LCD

圖4 TFT-LCD控制信號的有限狀態機Fig.4 FSM of TFT-LCD control signals
RC 模塊負責產生標準的SDRAM 控制信號、地址信號和數據信號,實現SDRAM 的訪問業務,包括SDRAM 初始化、圖像數據寫入、自刷新和圖像數據讀出。SDRAM 管腳信號的定義、操作命令的信號時序及RC模塊的有限狀態機模型可以參見相關文檔[5]。
SDRAM 芯片是單口RAM,只能同時支持一種操作。在同一時刻,對SDRAM 的操作請求有可能來自于不同的發起者,例如,處理器寫圖像數據時候,若FPGA 的定時器模塊觸發了刷新操作,就會產生顯存訪問沖突。解決訪問沖突問題需要總線仲裁,該功能通過ARB模塊控制RC模塊的信號產生來實現。考慮到數據完整性和用戶體驗,方案所設計的ARB 模塊在實現時按照刷新請求高于寫請求、寫請求高于讀請求的次序進行優先級排序。ARB 模塊的有限狀態機模型如圖5所示。

圖5 ARB模塊狀態機Fig.5 FSM of the ARB block
MMI組件的處理器、SDRAM 芯片和TFTLCD 模塊的工作時鐘各不相同,數據接口的字長也不相同。LCD 控制器的一些特定業務,例如圖像的保存和顯示,需要在這些元件之間傳遞信息,從而在功能子模塊之間產生數據通信同步問題。為此,方案引入了WFIFO 和RFIFO 模塊。
WFIFO 和RFIFO 都是雙口環形緩沖區,其讀寫操作基于不同的工作時鐘,可以同時進行。WFIFO 和RFIFO 的實現采用了基于Gray碼的異步FIFO 算法[6]。WFIFO 以單字節方式接收處理器發送過來的圖像數據,再以4字節的Burst訪問方式寫入SDRAM;RFIFO 以4 字節的Burst訪問方式將SDRAM 中的圖像數據讀出,再以單字節長度向LUT 模塊輸出。
樣本電路的LCD 控制器采用Lattice公司的LFXP2-5E-5FT256I 芯 片,SDRAM 顯 存 采 用Micron公司的MT48LC4M32B2芯片,處理器為freescale公司的產品MPC 8247。樣本電路采用25MHz晶振,LCD 控制器通過內部的PLL 模塊提供150 MHz的系統工作時鐘。SDRAM 工作在150 MHz時鐘下,采用4字節突發訪問模式。
測 試 的 TFT-LCD 液 晶 模 塊 采 用 的 是STCG057QVLAK(320×240,像 素 時 鐘6.25 MHz)。樣本電路上所設計的LCD 控制器的實驗顯示效果如圖6 所示,圖像清晰無抖動,無閃屏、錯行等現象。

圖6 實驗顯示效果Fig.6 Display effect of the experiment
為解決MMI組件在生產上所面臨的芯片供應短缺問題,本文提出了基于FPGA 開發兼容原MMI驅動軟件的LCD 控制器、對MMI組件進行相關硬件升級的解決方案,并對該LCD 控制器的設計實現進行了描述。方案運用了模塊化思想來分解LCD 控制器的業務邏輯,各功能子模塊以有限狀態機方法進行建模,采用了參數化的配置,在實現上以Verilog語言進行編程開發,充分保證了所開發LCD 控制器的功能可配置性、模塊可復用性和代碼可移植性。實際測試表明,方案所設計的LCD 控制器能夠滿足MMI組件對顯示模式的需求,可以實現無需改動軟件系統的硬件電路升級,保證了裝置生產的持續性,為類似問題的解決提供了一種有效的思路。
[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 的通用液晶顯示控制器的設計和實現[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 產業如何在市場上占有一席之地[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 控制器設 計 與 實 現[J].半 導 體 技 術,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 接口計數及其應用[J].計算機工程與科學,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)