當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件

摘 要:基于FPGA開發(fā)的機(jī)器人VGA視頻監(jiān)視系統(tǒng)。該系統(tǒng)可將經(jīng)模擬攝像頭得到的數(shù)據(jù)通過處理后直接送到顯示器,節(jié)省了計(jì)算機(jī)的處理過程;系統(tǒng)預(yù)留出外部接口和程序空間,有很好的再開發(fā)性。根據(jù)輸入視頻信號(hào)和輸出視頻信號(hào)的不同格式,討論了用Verilog硬件描述語言設(shè)計(jì)從YcrCb到RGB格式的轉(zhuǎn)換器的方法。
關(guān)鍵詞:可編程器件 硬件描述語言 實(shí)時(shí)圖像 VGA顯示器

工業(yè)機(jī)器人往往在無人現(xiàn)場(chǎng)監(jiān)視的情況下工作,這就要求工作人員能在控制室中實(shí)時(shí)監(jiān)視機(jī)器人的運(yùn)動(dòng)狀態(tài),了解機(jī)器人周圍的工作環(huán)境,及時(shí)發(fā)現(xiàn)機(jī)器人運(yùn)動(dòng)時(shí)出現(xiàn)的故障。最好的監(jiān)視手段就是實(shí)時(shí)視頻監(jiān)視。隨著計(jì)算機(jī)、多媒體和集成電路等技術(shù)的發(fā)展,各種大規(guī)模集成電路的出現(xiàn)為視頻信號(hào)數(shù)字化處理提供了有效手段。利用可編程器件FPGA實(shí)現(xiàn)的VGA彩色顯示控制器已有很多的實(shí)際應(yīng)用。本設(shè)計(jì)采用先進(jìn)的FPGA芯片,通過硬件描述語言Verilog設(shè)計(jì)模塊控制器實(shí)現(xiàn)各個(gè)系統(tǒng)模塊間的通信及控制,通過Modelsim軟件對(duì)系統(tǒng)功能模塊進(jìn)行仿真綜合,在VGA顯示器上得到十分清晰的圖像。系統(tǒng)預(yù)留出一定的程序空間,可根據(jù)不同現(xiàn)場(chǎng)需要對(duì)圖像進(jìn)行諸如小波變換、圖像增強(qiáng)等處理。
1 系統(tǒng)整體結(jié)構(gòu)
系統(tǒng)整體結(jié)構(gòu)框圖如圖1所示。


目前數(shù)字監(jiān)視系統(tǒng)已在某些領(lǐng)域取代了模擬監(jiān)視系統(tǒng),但與數(shù)字?jǐn)z像頭相比,模擬攝像頭在高分辨率和變焦方面仍占有優(yōu)勢(shì)。根據(jù)機(jī)器人實(shí)際工作情況,本設(shè)計(jì)選用高性能的模擬攝像頭來采集視頻信號(hào)。
模擬攝像頭輸出的視頻信號(hào)中除了圖像信號(hào)外,還有場(chǎng)同步、行同步、開槽脈沖等信號(hào),它們和圖像信號(hào)混合在一起,所以不能直接對(duì)其進(jìn)行A/D轉(zhuǎn)換。要得到圖像數(shù)據(jù),就要對(duì)視頻信號(hào)進(jìn)行必要的同步分離。本系統(tǒng)采用Philips公司的增強(qiáng)型可編程視頻解碼器SAA7113,通過FPGA配置其寄存器,使其輸出標(biāo)準(zhǔn)ITU 656 YUV4:2:2格式(8位)VPO數(shù)據(jù);通過Verilog語言設(shè)計(jì)的I2C總線控制器,控制兩個(gè)多功能實(shí)時(shí)輸出端口,并可以用來校驗(yàn)是否寫入操作正確;通過I2C總線對(duì)地址02H進(jìn)行配置可以得到想要的片內(nèi)信號(hào)源[1][2]。
系統(tǒng)選用EP1C20為FPGA主芯片,作為Cyclone系列芯片中功能最強(qiáng)大的芯片,其運(yùn)算速度快,具有20 060個(gè)邏輯單元,F(xiàn)PGA內(nèi)部有PLL,可以用50MHz的時(shí)鐘產(chǎn)生SRAM及VGA控制器所需要的時(shí)鐘。FPGA內(nèi)部結(jié)構(gòu)非常適合數(shù)字視頻處理,同時(shí)技術(shù)成熟,完全可以用來實(shí)現(xiàn)對(duì)機(jī)器人運(yùn)動(dòng)的視頻監(jiān)視。
幀存是圖像處理器與顯示設(shè)備之間的數(shù)據(jù)通道,因此要顯示的圖像數(shù)據(jù)首先存放在幀存中,然后再輸出顯示。幀存的設(shè)計(jì)是圖形顯示系統(tǒng)設(shè)計(jì)的關(guān)鍵。采集的一幀圖像是800×600像素,每像素用2字節(jié)表示,每幀圖像800×600×16bit=7500kbit,分成奇數(shù)場(chǎng)和偶數(shù)場(chǎng)分別存儲(chǔ)在兩片SRAM中,則每片SRAM存儲(chǔ)3750kbit的圖像數(shù)據(jù),因此選用兩片256K×16bit=4Mbit的靜態(tài)存儲(chǔ)器(SRAM)ISSI IS61LV25616-10T芯片作為圖像幀存,并用FPGA設(shè)計(jì)幀存控制器,從而大大減小電路板的尺寸,增加系統(tǒng)的可靠性和設(shè)計(jì)靈活性。FPGA作為邏輯控制芯片, 負(fù)責(zé)識(shí)別源信號(hào), 將圖像數(shù)據(jù)按照一定的格式寫入幀緩存, 同時(shí)以固定的速率從幀緩存中讀出數(shù)據(jù)并產(chǎn)生相應(yīng)的同步信號(hào),一同送往DAC。
視頻輸出模塊采用ADI公司的VGA DAC ADV7125KST50,其與FPGA間的接口為標(biāo)準(zhǔn)的數(shù)字VGA信號(hào),同時(shí)可配置為8位輸入。ADV7125KST50包括三路8位D/A轉(zhuǎn)換器并與RS-343A/RS-170接口輸出兼容。
ADV7125KST50在本系統(tǒng)中的硬件設(shè)計(jì)如圖2。


2 系統(tǒng)功能模塊
2.1 各功能模塊設(shè)計(jì)
系統(tǒng)通過Verilog硬件描述語言設(shè)計(jì)的I2C總線控制器與SAA7113芯片完成原始圖像的處理與傳輸。I2C控制核的設(shè)計(jì)采用自頂而下的方法,分為三個(gè)模塊:I2C_top模塊是頂層管理模塊,用來生成當(dāng)前I2C控制核的工作狀態(tài),把命令字信號(hào)送到I2C_cmd模塊;I2C_cmd模塊的核心部分是命令狀態(tài)機(jī),該模塊的主要功能有兩個(gè):一是把I2C_top模塊發(fā)送的start、write、read、stop四個(gè)命令信號(hào)轉(zhuǎn)化命令碼發(fā)送到I2C_controller模塊,二是實(shí)現(xiàn)接收數(shù)據(jù)的串并轉(zhuǎn)換;I2C_controller模塊負(fù)責(zé)I2C接口,最終實(shí)現(xiàn)I2C總線信號(hào)SCL和SDA的啟動(dòng)、停止、讀、寫、確認(rèn)等具體操作的時(shí)序關(guān)系[5]
SRAM控制器完成對(duì)幀存的數(shù)據(jù)存儲(chǔ)和讀取,SRAM控制器的結(jié)構(gòu)包括系統(tǒng)控制接口模塊、CMD命令解析模塊、命令響應(yīng)模塊、數(shù)據(jù)通路模塊共四個(gè)模塊。系統(tǒng)控制接口模塊用于接收系統(tǒng)的控制信號(hào),進(jìn)而產(chǎn)生不同的CMD命令組合;CMD命令解析模塊用于接收CMD命令并解碼生成操作指令;命令響應(yīng)模塊用于接收操作指令并產(chǎn)生SRAM的操作動(dòng)作;數(shù)據(jù)通路模塊則用于控制數(shù)據(jù)的有效輸入輸出。
當(dāng)FPGA向SRAM存儲(chǔ)數(shù)字視頻信號(hào)時(shí),用SAA7113的LLC2作為FPGA內(nèi)部同步時(shí)鐘信號(hào);當(dāng)FPGA傳輸數(shù)字視頻信號(hào)時(shí),讀選通信號(hào)Clk作為內(nèi)部同步時(shí)鐘信號(hào)。當(dāng)有VS上升沿時(shí),如果RTS0為低電平,則表明奇數(shù)場(chǎng)即將到來,產(chǎn)生Pin高電平信號(hào),對(duì)Pin取反作為SRAM(ODD)的寫信號(hào)WE1;如果RTS0為高電平,則表明偶數(shù)場(chǎng)即將到來,產(chǎn)生PinEven高電平信號(hào),對(duì)PinEven取反后作為SRAM(Even)的寫信號(hào)WE2,WE1和WE2經(jīng)過與門后產(chǎn)生兩個(gè)SRAM的寫選通信號(hào)WE。此外,由Pin和PinEven產(chǎn)生PinAll信號(hào)作為選擇內(nèi)部同步時(shí)鐘的控制信號(hào)。由FPGA芯片產(chǎn)生的Ramodd(OE1)和RamEven(OE2)信號(hào),分別用作SRAM(ODD)和SRAM(EVEN)的讀信號(hào),OE1和OE2經(jīng)過與門后產(chǎn)生兩個(gè)SRAM讀選通信號(hào)OE。當(dāng)PinAll為高電平時(shí),表示FPGA正在向SRAM存儲(chǔ)數(shù)據(jù),此時(shí)用WE1作為SRAM(ODD)的片選信號(hào)CE1,用WE2作為SRAM(EVEN)的片選信號(hào)CE2;當(dāng)Pin為低電平時(shí),表示正在從SRAM讀取數(shù)據(jù),此時(shí)用OE1作為SRAM(ODD)的片選信號(hào)CE1,用OE2作為SRAM(EVEN)的片選信號(hào)CE2。
VGA控制器實(shí)現(xiàn)視頻信號(hào)的處理,并將圖像顯示在VGA顯示器上。在VGA中,水平同步脈沖在光柵掃描線需要回到水平開始位置,即在屏幕左邊時(shí)插入,垂直同步脈沖在光柵掃描線需要回到垂直開始位置,即在屏幕上方時(shí)插入。復(fù)合同步脈沖是水平同步脈沖和垂直同步脈沖的組合。RGB為像素?cái)?shù)據(jù),當(dāng)消隱有效時(shí),RGB信號(hào)無效。VGA主要參數(shù)的工業(yè)標(biāo)準(zhǔn)為:像素輸出頻率為25.175MHz;行頻(線頻率)為31.469kHz;場(chǎng)頻(刷新率)為59.941Hz[4]。圖3是VGA行掃描、場(chǎng)掃描的時(shí)序圖。


2.2 YCrCb到RGB格式的轉(zhuǎn)換器設(shè)計(jì)
在SAA7113 所提供的多種數(shù)據(jù)輸出格式中,ITU656 格式在8位輸出管腳上直接輸出與像素時(shí)鐘相對(duì)應(yīng)的像素灰度值。由于SAA7113是YUV輸出,而目前所有的顯示器都采用RGB 值驅(qū)動(dòng),這就要求在顯示每個(gè)像素之前,必須把彩色分量值轉(zhuǎn)換成RGB 值。根據(jù)SAA7113數(shù)據(jù)手冊(cè)的輸入標(biāo)準(zhǔn)以及系統(tǒng)的時(shí)鐘,需要對(duì)輸入的數(shù)據(jù)做一個(gè)延時(shí),調(diào)整Y、Cb、Cr的順序,有效視頻信號(hào)延遲一個(gè)周期,而對(duì)準(zhǔn)信號(hào)要延遲兩個(gè)周期。本系統(tǒng)通過Verilog語言設(shè)計(jì)了一個(gè)從YCrCb到RGB格式的轉(zhuǎn)換器。
YCrCb轉(zhuǎn)換到RGB(注意到0.299+0.587+0.114=1.0,三原色的系數(shù)之所以不同是因?yàn)槿说难劬?duì)不同波長(zhǎng)的顏色有不同的敏感度):
Y=0.299R+0.587G+0.114B
CB=-0.1687R-0.3313G+0.5B
CR=0.5R-0.4187-0.0813
RGB轉(zhuǎn)換回YCRCB:
R=Y+1.402CR
G=Y-0.34414CB-0.71414CR
B=Y+1.772CB
2.2.1 YcbCr到RGB 變換器接口說明
module yuvrgb(
clk,//時(shí)鐘輸入
rst,//復(fù)位輸入
y_in,//變換前Y分量輸入
cb_in,//變換前Cb分量輸入
cr_in,//變換前Cr分量輸入
ena_in,//待變換數(shù)據(jù)使能,當(dāng)它為高時(shí),輸入數(shù)據(jù)有效
R_out,//變換后R分量輸出
G_out,//變換后G分量輸出
B_out,//變換后B分量輸出
ena_out//變換后數(shù)據(jù)使能輸出
);
2.2.2 YcbCr到RGB變換器測(cè)試方法
在Quartus Ⅱ下通過調(diào)用Modelsim軟件對(duì)該變換器進(jìn)行仿真,將YCbCr 輸入轉(zhuǎn)換成RGB 輸出,時(shí)序圖如圖4所示。


在Quartus Ⅱ下調(diào)用Modelsim的方法簡(jiǎn)單、直觀,并且易于修改。根據(jù)得到的仿真結(jié)果,可以看到變換器滿足時(shí)序要求。
本文設(shè)計(jì)開發(fā)了一套基于FPGA的機(jī)器人圖像監(jiān)視系統(tǒng),該系統(tǒng)成功地應(yīng)用于對(duì)機(jī)器人的視頻圖像傳輸,并可通過Verilog硬件描述語言設(shè)計(jì)各種控制模塊并實(shí)現(xiàn)模塊間的通信。這個(gè)平臺(tái)可以對(duì)視頻信號(hào)進(jìn)行高質(zhì)量的傳輸,還可以根據(jù)現(xiàn)場(chǎng)需要在今后的設(shè)計(jì)中對(duì)視頻信號(hào)進(jìn)行一系列的圖像處理,具有很好的再開發(fā)性。
參考文獻(xiàn)
[1] 張曉健.視頻解碼芯片SAA7113的初始化與控制[J].電子設(shè)計(jì)應(yīng)用,2003,(8).
[2] PHILIPS Corporation.SAA7113 DATA SHEET[Z].1999-7-1.
[3] 陳海燕.I2C串行通訊的軟件實(shí)現(xiàn)[I].國(guó)防科技大學(xué)學(xué)報(bào),1996,(4).
[4] ROBIN M,POULIN M.視頻和音頻系統(tǒng)的設(shè)計(jì)與安裝.人民郵電出版社,2003.

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉