丁 銳,虞尚智,周 奇,鄭木彬
(1中山火炬職業技術學院 廣東 中山 528400)
(2珠海海奇半導體有限公司 廣東 珠海 519000)
在圖像顯示領域常用的數據接口有高清晰度多媒體接口(HDMI)、三原色視頻輸入接口(RGB接口)及Intel 8080總線接口。Intel 8080總線全稱為8080并口總線協議,8080總線接口憑借接口簡單、控制方便、無需同步時鐘和同步信號等優勢在中小尺寸LCD/OLED顯示領域得到了大量的使用。Intel 8080總線接口的顯示設備需由帶有Intel 8080接口的MCU主控芯片驅動。夏云超[1]設計并實現了基于FPGA的8080總線通信協議接口。黃克亞[2]設計了基于FSMC總線實現8080總線時序。郭利霞[3]設計了基于AMBA總線的8080接口控制IP。
使用8080總線接口的屏幕一般自帶驅動芯片,驅動芯片自帶顯存,上位機只需要把顯示數據發送給驅動芯片,驅動芯片首先把數據保存到顯存中,再把顯存中的數據顯示到屏幕上。使用8080總線接口的屏幕的優點是控制簡單方便,無需時鐘和同步信號,無需上位機提供顯存,可省掉存儲器,適用于小尺寸屏幕的應用。例如240×320尺寸,采用RGB565模式(16 bit/像素),加上部分空白區域,20幀的刷新率所需時鐘速度大概在3 MHz。對于自帶硬件8080總線接口的上位機來說實現起來并不困難,比如STM32[4],但是對于沒有硬件8080總線接口的上位機,如果通過GPIO模擬的方式實現,速度只能達到2 MHz,且會消耗大量的CPU資源,效率較低。
通過研究發現,RGB接口和8080總線接口的時序具有一定的相似性,本文設計了一種基于RGB接口硬件模塊來模擬Intel 8080總線接口的方法及電路,以解決現有技術中不帶8080接口的主控芯片用于驅動8080總線接口的顯示設備需通過GPIO口模擬,速度慢、效率低的問題。
圖1描述了8080總線接口的時序圖,具體信號描述如下。
D:數據總線;RESX:復位信號,低電平有效;CSX:片選信號,低電平有效;DCX:命令使能,低電平有效;WRX:寫使能,上升沿觸發有效;RDX:讀使能,上升沿觸發有效。
RGB接口是紅綠藍三原色視頻輸入接口,是一種常見的LCD視頻輸入接口。李鋼[5]基于STM32處理器的FSM接口掛載RGB接口數字屏并結合DMA傳輸的方式設計出了一種驅動RGB數字屏的方法。
圖2描述了RGB接口的時序,具體信號描述如下。VSYNC:幀同步信號,代表一幀畫面的起始同步信號,高電平有效;HSYNC:行同步信號,代表一幀畫面中每一行的起始同步信號,高電平有效;VDEN:簡稱DE(data enable),數據使能信號,高電平有效;VCLK:時鐘信號;VD:數據總線。
本文的技術方案分為3個部分,針對命令部分采用GPIO模擬的方式,針對并行數據和寫使能分別采用RGB的數據和時鐘信號代替,片選信號則由簡單外圍電路配合使用。
本文設計了以下幾種方案可供選擇。
方案一針對主控模塊的RGB數據使能信號DE可以配置為低電平有效,那么DE信號可以直接與LCD的CSX信號連接,電路連接如圖3所示:
本文設計采用主控模塊自帶的RGB接口中的數據使能端輸出的數據使能信號模擬8080接口時序中數據模式下的片選信號;RGB接口中的時鐘信號端輸出的時鐘信號模擬8080接口時序中的數據模式下的寫使能信號;RGB數據總線接口DATA1[15:0]與顯示設備的8080接口的數據總線端DATA0[15:0]直連,發送并行數據信號;同時,分別采用3個IO口模擬8080接口時序中命令模式下的片選信號、命令模式下的寫使能信號及命令指示信號。主控模塊采用自帶的RGB接口及IO口模擬8080接口時序,無需全部采用IO模擬,節省了CPU資源,提高了數據傳輸速度及效率。
主控模塊1的GPIO3用于DCX連接,并向顯示設備2發送命令指示信號;其中,命令指示信號用于指示顯示設備2工作在命令模式或數據模式下;主控模塊1的GPIO1用于CSX連接,并向顯示設備2發送命令模式下的片選信號;主控模塊1的GPIO2用于寫使能端WRX連接,并發送命令模式下的寫使能信號;
主控模塊1的模擬片選接口CSX0用于CSX連接,并發送數據模式下的片選信號;其中,數據模式下的片選信號與主控模塊1的RGB接口中的數據使能端輸出的信號反相;主控模塊1的RGB接口中的時鐘信號端CLK1用于的寫使能端WRX連接,并發送數據模式下的寫使能信號;主控模塊1的數據總線接口DATA1[15:0]用于數據總線端DATA0[15:0]連接,并發送并行數據信號。
電路連接如圖4所示。方案二可以理解為方案一的變種,在主控芯片的數據使能信號DE外部加一個反相器后再連接顯示設備的CSX信號。
電路連接如圖5所示。方案三是方案二基礎上的變種,不同之處在于方案三的RGB接口的時鐘和數據使能信號可以復用為通用IO口。主控芯片內置2個切換電路,分別用于切換命令模式下的GPIO4與數據模式的DE2,以及命令模式的GPIO5與數據模式的CLK2信號。
方案四采用外圍輔助單元實現數據使能信號DE的反向以及信號切換功能,電路連接如圖6所示。
主控芯片13的GPIO7與輔助單元14的輸入端CSX_GPIO連接,主控芯片13的GPIO8與輔助單元14的輸入端WRX_GPIO連接,主控芯片13的RGB接口中的數據使能端DE3與輔助單元14的輸入端CSX_DE連接,主控芯片13的RGB接口中的時鐘信號端CLK3與輔助單元14的輸入端WRX_DE連接,主控芯片13的GPIO9與主控模塊1的GPIO3連接,主控芯片13的數據總線接口DATA3[15:0]與主控模塊1的數據總線接口DATA1[15:0]連接。
輔助單元14的輸出端CSX_OUT用于片選端CSX連接,并發送命令模式下的片選信號及數據模式下的片選信號;輔助單元14的輸出端WRX_OUT用于寫使能端WRX連接,并發送命令模式下的寫使能信號及數據模式下的寫使能信號,見圖7。
輔助單元14包括:單刀雙擲模擬開關U1、單刀雙擲模擬開關U2、NPN型三極管Q1、電阻R1及電阻R2。
本文設計方案通過三極管Q1對數據使能信號取反,同時結合兩個單刀雙擲模擬開關將命令模式下的片選信號與數據模式下的片選信號結合到一個端輸出,同時將命令模式下的寫使能信號和數據模式下的寫使能信號結合到一個端輸出。主控模塊1僅保留四個輸出端子,與外部的顯示設備2直連,便于生產及應用。
當U1的使能端為低電平時,U1的A1輸入端與輸出端之間選通;當U1的使能端為高電平時,U1的A2輸入端與輸出端之間選通。RGB接口中的幀同步信號端VSYNC_OUT與GPIO10連接,用于向主控模塊1發送中斷信號。
圖8為方案四對應的時序圖。CLK:RGB接口的時鐘信號;VSYNC:RGB接口的幀同步信號;DE: RGB接口的數據使能信號,低電平有效;DCX:主控利用通用IO口驅動的DCX信號;CSX_GPIO:主控切換電路輸入端用于控制CSX的通用IO口信號;CSX_DE:主控切換電路輸入端用于控制數據模式下的CSX信號(RGB接口的DE信號);CSX:顯示設備斷的CSX信號;WRX_GPIO:主控切換電路輸入端用于控制WRX的通用IO口信號;WRX_DE:主控切換電路輸入端用于數據模式下的WRX信號(RGB時鐘信號);WRX: 顯示設備斷的WRX信號;DATAX:顯示設備斷的數據信號;
針對方案四的時序圖,下面本文描述一下基于該方案的模擬8080總線接口的軟件流程。首先本文定義兩個工作模式:通用IO控制模式和RGB接口控制模式。
通用IO控制模式指通過GPIO模擬CSX/DCX/WRX以及16位并行數據總線,DB[15:0]用于模擬8080總線接口命令數據;RGB接口控制模式指利用主控芯片硬件RGB電路的DE模式輸出DE/CLK/DB[15:0]信號,用于8080總線數據輸出。
具體軟件流程如下:
(1)主控芯片切換至通用IO控制模式,驅動GPIO9模擬命令指示信號(高電平),驅動主控芯片的數據總線接口DATA3[15:0]模擬CASET/ RASET的命令,用于設置屏幕顯示的起始位置和顯示區域(一般設置成整屏區域范圍)。
(2)等待幀同步信號的上升沿,當檢測到幀同步信號的上升沿中斷時,主控芯片切換至通用IO控制模式,拉低命令指示信號(GPIO9),進入命令模式;驅動主控芯片的GPIO7模擬命令模式下的片選信號、GPIO8模擬命令模式下的寫使能信號、數據總線接口DATA3[15:0]模擬RAMWR的命令。
(3)完成寫命令后,主控芯片配置內部RGB硬件電路,將內部RGB硬件電路需要輸出的RGB數據準備好,拉高命令指示信號(GPIO9),進入數據模式。
(4)主控芯片切換至RGB接口控制模式,啟動硬件驅動RGB接口中的數據使能端DE3輸出數據使能信號、時鐘信號端CLK3輸出時鐘信號及數據總線接口DATA3[15:0]輸出并行數據信號,主控芯片13持續一幀輸出RGB數據。
(5)一幀數據傳輸完成后,重復執行步驟2。
本文設計了基于硬件RGB接口模擬Intel 8080總線接口多種場景下的硬件連接方案,以及相應基于硬件連接方案的時序圖和完整軟件流程。本文設計的方案已經在HCSEMI B200芯片上得到驗證。HCSEMI B200是具備硬件RGB接口的多媒體主控芯片,原本用GPIO模擬對接8080接口240×320大小的LCD只能達到10幀的刷新率,播放視頻時明顯卡頓。在采用本方案后可以達到40幀的刷新率,完全可以滿足LCD的流暢播放視頻的顯示性能要求。