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