基于FPGA的數字和模擬信號合成的彩色液晶顯示器
0 引言
FPGA 技術作為一種新興的技術, 具有靜態可重復編程的特性, 芯片上包含的資源豐富, 能夠將龐大的、滿足各種需求的、復雜的數字電路以及高性能微處理器整合到一塊芯片上實現片上系統(SoC), 使得系統的開發周期更短、可靠性更高。
這款同時顯示數字和模擬信號的彩色液晶顯示器可以將多種字體的彩色中西文、直方圖、自由曲線等數字信號和視頻模擬信號以疊加的方式顯示;將固定顯示的內容預先在微機上進行編制,然后將其作為“預置畫面”送入機內Flash( 閃存) 中。另外, 開放了與BMP、JPEG 等格式圖像文件顯示與操作相關的命令,極大地提高了二次開發的效率,使顯示效果得到更完美的體現。
1 系統概述
1.1 液晶顯示器概述
液晶顯示器作為科技時代的智慧結晶,為生產生活提供了極大的便利。液晶顯示器將各種信號及場景直觀地顯示在屏幕上,縮短了顯示到現場的距離,更能體現信號的各種細節,方便直觀地為設計人員的開發提供了更加詳細的數據支撐。本文介紹一種新型的液晶顯示器,可以根據功能需要顯示不同的數字或視頻信息,體現出細節信息,將遠程的數字或視頻信息近距離地顯示在眼前,具有很大的實用性。
1.2 FPGA概述
FPGA 全稱現場可編程門陣列,是一種集成電路芯片,相當于把一個計算機系統集成在一個小的芯片上。本系統采用的FPGA 芯片為京微齊力科技有限公司自主研發設計的CME-M5 芯片。該芯片功能強大,既具備并行執行程序的特點,又集成了增強型8051 MCU,使得FPGA 的硬件性能大幅提高。采用FPGA 邏輯設計的外設可以確保電路系統穩定高速運行,嵌入式的8051 MCU 又可以為編程開發人員的設計帶來便利,非常適合用作液晶顯示器的主控芯片[1-2]。
2 系統設計
智能型彩色液晶顯示器主要組成部分包括:電源模塊、液晶顯示模塊、RSM232 隔離通信模塊以及視頻轉換模塊等。如圖1 所示,加電工作時,首先啟動FPGA內的配置程序分配資源,明確兩片FPGA(M5)的工作任務。由其中一片FPGA(1)擔負解析數字信號指令,負責切換分配顯示內存等工作任務。由另一片FPGA(2)處理視頻(ADV7810)解碼后的數據,根據指令送入FPGA(1)分配的顯示內存中,實現視頻在指定窗口的顯示。
2.1 電源模塊
電源系統設計如圖2 所示,顯示器采用外部12 V或24 V 電源供電, 經過LT3995 轉換為DC 5 V,DC 5 V 用來驅動7 英寸液晶屏的背光模塊,并經過LM1085 轉換為DC 3V3;DC 3V3 通過TPS71711 轉換為DC 1V1,然后DC 3V3 和DC 1V1 共同驅動FPGA 芯片。本系統用到兩個同一型號的FPGA 模塊,FPGA_A用來處理視頻信息,FPGA_D 用來處理數字信息,兩個芯片協同工作保證顯示器穩定高效地運行;DC 3V3經過LM1117-1V8 轉換為DC 1V8, 然后DC 3V3 和DC 1V1 共同驅動ADV7180 進行模擬視頻信號的轉換工作[3]。
2.2 基于RSM232的隔離通信模塊
數字信號的通信使用致遠RSM232,如圖3 所示,其中C82、C94 作為隔離電容使用。R6、R7 是防止通信線路串入強干擾所加磁珠或電阻[4]。
2.3 基于ADV7180的模擬視頻信號轉換模塊
視頻轉換模塊如圖4 所示,IN1、IN2 和IN3 為模擬視頻信號的輸入端,通過sma 外接模擬攝像頭;BF_PPIx、BF_TMRx 和LLC_CLK 為ADV7180 的輸出信號,連接到FPGA_A 做進一步的信號處理;BF_PFx為IIC 總線,連接至FPGA_D 用來配置ADV7180[5]。
2.4 顯示模塊
系統采用群創7 英寸液晶屏作為顯示終端,分辨率為800×480,采用RGB565 信號驅動液晶屏顯示。
3 系統軟件設計
系統軟件的主要任務是實現數字信號以及視頻模擬信號在顯示屏上的正常顯示。上電之后首先進行設備初始化工作,包括液晶顯示屏模塊、串口模塊以及ADV7180 視頻轉換模塊的初始化設置;隨后進入串口處理數據模塊,根據指定通信協議判斷串口是否接收到有效數據,如果未接收到有效數據則返回串口數據處理模塊,如果接收到有效數據則判斷顯示模式;根據顯示模式來切換液晶顯示屏的視頻或數字界面,并將串口接收的數據進行必要的處理后顯示在界面上的指定位置,到此本次處理結束,開啟下一次處理以保證顯示信息的實時性[6]。
3.1 ADV7180的初始化
系統上電后,FPGA 通過IIC 總線對ADV7180 進行初始化。初始化模塊主要分為IIC 控制模塊,IIC 命令模塊,ROM 模塊。IIC 控制核心是完成數據的串并轉換以及將命令轉換為IIC 總線的SCL/SDA 信號線的啟動、停止、寫、應答等具體的時序關系;IIC 命令模塊是指IIC 接口間狀態的轉換以及從ROM 模塊中將配置好的數據輸出給IIC 控制模塊,ROM 模塊存儲的是FPGA 配置好的ADV7180 的數據。當啟動IIC 開始配置時,從ROM 中讀取配置的內容送出即可。初始化代碼如下:UINT8 adv7180_init(void)
{
UINT8 i;
UINT8 * pdate= ADV7180Config;
I2CIoctl(CLOCK_DIVIDE_BY_960);
for(i=0;i<sizeof(ADV7180Config)/2;i++)
{
I2COpen();
i f ( I 2 C M a s t e r W r i t e ( A D V 7 1 8 0 _
ADDRESS,pdate,2)!=I2C_OK)
{
return i+1;
}
I2CClose();
pdate+=2;
}
return 0;
}
3.2 數據的處理
采用中斷方式進行串口接收處理,接收到的數據存放在一個256 B 的數據緩沖區中。在處理緩沖區數據時采用狀態機的原理,只有當前一個狀態完成時才進入下一個狀態。緩沖區內經過判斷正確的數據放入一個數組中,顯示模塊調用該數組的內容,這樣做可以保證界面信息的實時性,也有效降低了不同模塊之間的關聯性,增加了程序的穩定性。串口接收,中斷處理的流程如圖6。
3.3 數字信號和模擬信號疊加處理
模擬信號通過ADV7180 芯片和FPGA 芯片的協同工作,將其轉換為RGB 信號保存到SDRAM 中,過程如下:首先ADV7180 將攝像頭輸出的視頻信號解碼后轉換為RBT656 信號發送給FPGA 芯片,進入芯片后首先將RBT656 信號解碼,同時為了減少視頻信號中的干擾,將RBT656 信號中的Y 信號濾波,濾波后將Cb、Cr 和Y 信號轉換為RGB 信號,最后根據解碼后的行信號和奇偶場信號將RGB 信號通過存儲器調度模塊寫入SDRAM 保存起來,完成視頻信號的解碼過程。根據輸入的數字顯示信號中的行、場和時鐘信號生成地址和讀取信號,從SDRAM 中讀取保存的視頻數據,通過疊加模塊同數字顯示數據疊加后輸出,實現顯示。按彩色液晶屏像素的排列格式處理完成后的整屏RGB像素數據,可以直接送入液晶屏,實現顯示。這一部分在FPGA 中完成[1],部分源代碼如下:
assign va_s_o = vcount;
assign ha_s_o = hcount;
assign de_s_o = de_m_i;
assign clk_s_o = clk_m_i;
assign clk_o = clk_m_i;
assign de_o = de_m_i;
assign vs_o = vs_m_i;
assign hs_o = hs_m_i;
assign rgb_o = ( rgb_m_i!=16’h8410)?rgb_m_
i:rgb_s_i;
always @(posedge clk_m_i or negedge rst_n) begin
if (!rst_n)
vcount <=10’b0;
else
if(vsmf)
vcount <= 10’b0;
else
if(demb)
vcount <= vcount+1;
else
vcount <= vcount;
end
always @(posedge clk_m_i or negedge rst_n) begin
if (!rst_n)
hcount <=10’h0;
else
if(de_m_i)
hcount <= hcount+1;
else
hcount <=10’h0;
end
4 實驗及結果分析
對本系統的硬件和軟件模塊調試成功后,對系統進行整體功能性測試。本文設計的液晶顯示器需要實現的功能是:上電后即按照通信協議將接收到的數據包進行解析后按照幀定義進行顯示,并可以根據通信協議自動進行數據刷新或者畫面切換。實驗測試包含數字界面能否正常刷新,數字和視頻界面能否正常切換,視頻和數字的疊加是否正常和系統運行是否穩定等。表1 的數據是系統測試200 次的結果以及運行24 h 的穩定性結果[1-4,6]。
5 結語
本文提出了一種采用雙FPGA 處理器、通信模塊加ADV7810 視頻轉換的能同時實時顯示數字和模擬信號的彩色液晶顯示器。該顯示器能夠實現畫面的高速更新,且互不干擾,可以直接使用攝像頭,真實還原攝像頭的信號,在很多空間狹小不方便進去人員的場合都可以使用。
參考文獻:
[1] 魏麗玲,朱平,石永亮.基于FPGA的圖像采集與存儲系統設計[J].電子技術應用,2015,41(10): 67-69.
[2] 曾聲奎.可靠性設計與分析[M].北京:國防工業出版社,2011.
[3] 王兆安,黃俊.電力電子技術[M].北京:機械工業出版社,2003.
[4] 羅映紅,張博.傳輸線端接阻抗對線間串擾的影響研究[J].鄭州大學學報(工學版),2009,30(4):120-122.
[5] 朱珍民,沈燕飛,何哲.視頻信號處理技術及應用[J].電子技術應用,2008,34(10).
[6] 陸民燕.軟件可靠性工程[M].北京:國防工業出版社,2015.
(本文來源于《電子產品世界》2021年4月期)
評論