本原創(chuàng)教程由芯驛電子科技(上海)有限公司(ALINX)創(chuàng)作,版權(quán)歸本公司所有,如需轉(zhuǎn)載,需授權(quán)并注明出處(http://www.alinx.com)。
適用于板卡型號(hào):
PGL22G
1. 簡(jiǎn)介
本實(shí)驗(yàn)將實(shí)現(xiàn)視頻圖像的以太網(wǎng)傳輸,也相當(dāng)于用 FPGA 來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)攝像頭的功能。這里采用黑金的 500 萬(wàn)攝像頭 AN5642 模組,通過配置 OV5640 的寄存器實(shí)現(xiàn) JPEG 視頻壓縮的圖像輸出。以太網(wǎng)傳輸用 Ethernet UDP 通信協(xié)議,達(dá)到視頻圖像數(shù)據(jù)的快速傳輸。上位機(jī)通過接收網(wǎng)口的 UDP 數(shù)據(jù)包,提取 JPEG 的圖像數(shù)據(jù)顯示在電腦上。 在 FPGA 內(nèi)部,我們使用一個(gè) FIFO 模塊用于存儲(chǔ)攝像頭 OV5640 采集的 JPG 圖像數(shù)據(jù),當(dāng) FIFO 數(shù)據(jù)的數(shù)量達(dá)到一個(gè) UDP 數(shù)據(jù)包的長(zhǎng)度時(shí),觸發(fā)一次 UDP 的數(shù)據(jù)包發(fā)送。實(shí)現(xiàn)的邏輯框圖如下:
![o4YBAGBuap-AY3csAAAnrJdtZow982.jpg](https://file.elecfans.com//web1/M00/E9/59/o4YBAGBuap-AY3csAAAnrJdtZow982.jpg)
注意:在做此實(shí)驗(yàn)之前,首先要學(xué)習(xí)之前的例程,OV5640的攝像頭顯示例程以及千兆以太網(wǎng)傳輸實(shí)驗(yàn)。如果此實(shí)驗(yàn)遇到問題,建議溫習(xí)前面的例程。
2. 程序設(shè)計(jì)
2.1 攝像頭參數(shù)設(shè)置
我們對(duì)ov5640寄存器配置做了修改,在寄存器表里,將分辨率改成了800*600。并且選擇了JPEG模式。
![pIYBAGBuap-AQLsIAACKZbl9NTk801.jpg](https://file.elecfans.com//web1/M00/E9/D5/pIYBAGBuap-AQLsIAACKZbl9NTk801.jpg)
這里需要注意,JPEG 格式輸出的視頻圖像的每一幀的數(shù)據(jù)大小是不一樣的,JPEG 輸出的
數(shù)據(jù)模式有 6 種,我們程序中設(shè)置為 JPEG 模式 2,即每行的長(zhǎng)度是固定的,每幀會(huì)有不同的
行數(shù),最后一行的數(shù)據(jù)沒有達(dá)到固定的長(zhǎng)度的話,會(huì)補(bǔ)充 dummy 數(shù)據(jù)。具體大家看一下
OV5640 的 datasheet。
![o4YBAGBuaqCAT60gAACDG6Dzdlo070.jpg](https://file.elecfans.com//web1/M00/E9/59/o4YBAGBuaqCAT60gAACDG6Dzdlo070.jpg)
每行的長(zhǎng)度由以下的寄存器配置,這里我們程序中并沒有設(shè)置,默認(rèn)參數(shù)為 0x400,也就
是每行的數(shù)據(jù)長(zhǎng)度為 1024.
![pIYBAGBuaqCAAfMHAACGWe5wSH4527.jpg](https://file.elecfans.com//web1/M00/E9/D5/pIYBAGBuaqCAAfMHAACGWe5wSH4527.jpg)
2.2 以太網(wǎng)設(shè)置
在例化mac_test.v時(shí),將UDP發(fā)送數(shù)據(jù)長(zhǎng)度設(shè)置為1024字節(jié)。并對(duì)以太網(wǎng)做了上電復(fù)位處理,利用power_on_rst.v上電延遲100ms復(fù)位以太網(wǎng)模塊。在udp_tx.v文件中,去掉了UDP數(shù)據(jù)的校驗(yàn)和計(jì)算,節(jié)省時(shí)間。在mac_test.v的狀態(tài)機(jī)中,加入了CHECK_FIFO狀態(tài),由于以太網(wǎng)首部發(fā)送也要一定時(shí)間,因此提前判斷fifo中的可讀數(shù)據(jù)數(shù)量是否大于1000,啟動(dòng)UDP數(shù)據(jù)發(fā)送。
![o4YBAGBuaqGAI1QbAAASap3XWBM674.jpg](https://file.elecfans.com//web1/M00/E9/59/o4YBAGBuaqGAI1QbAAASap3XWBM674.jpg)
3. 下載和實(shí)驗(yàn)
注意:在做實(shí)驗(yàn)之前一定要確保OV5640攝像頭顯示沒有問題,可結(jié)合OV5640攝像頭顯示例程確認(rèn)。
3.1 開發(fā)板連接
1)將AN5642攝像頭模組插入開發(fā)板,模塊依次接入AX7035/AX050的擴(kuò)展口J9、J8。保證1腳對(duì)齊,1腳在焊盤形狀和其他引腳是有明顯區(qū)別的,是方形的;
2)使用網(wǎng)線連接PC和開發(fā)板的以太網(wǎng)口,這里的PC網(wǎng)卡需要千兆網(wǎng)卡和千兆網(wǎng)線,切換攝像頭視頻時(shí)需按KEY2鍵。
3.2 PC端IP設(shè)置
設(shè)置PC端的IP地址為192.168.0.3,如下圖:
![pIYBAGBuaqKAJKh3AABr-JThEjk813.jpg](https://file.elecfans.com//web1/M00/E9/D5/pIYBAGBuaqKAJKh3AABr-JThEjk813.jpg)
3.3 程序下載
下載FPGA程序,在打開上位機(jī)軟件之前,首先檢查網(wǎng)絡(luò)是否連通,可在CMD窗口
ping 192.168.0.2查看連通情況。
![o4YBAGBuaqKARyd9AABXIjOKj0o701.jpg](https://file.elecfans.com//web1/M00/E9/59/o4YBAGBuaqKARyd9AABXIjOKj0o701.jpg)
3.4 上位機(jī)軟件
打開“CD\07_軟件工具及驅(qū)動(dòng)\以太網(wǎng)視頻傳輸軟件”文件夾中的video.exe
![pIYBAGBuaqOAcEcSAAA3tAwSbtM672.jpg](https://file.elecfans.com//web1/M00/E9/D5/pIYBAGBuaqOAcEcSAAA3tAwSbtM672.jpg)
之后軟件就可以顯示圖像,效果如下:
3.5 視頻截圖
在軟件顯示窗口,點(diǎn)擊鼠標(biāo)左鍵按住不放,可以保存圖片及視頻,松開即可停止保存。出現(xiàn)jpg_save文件,圖片和視頻保存在里面。
![pIYBAGBuaqSAZ7cWAAFFbpUAIg4450.jpg](https://file.elecfans.com//web1/M00/E9/D5/pIYBAGBuaqSAZ7cWAAFFbpUAIg4450.jpg)
打開文件夾,可以看到保存的圖片和視頻,注意要控制保存的時(shí)間,否則會(huì)很占用磁盤空間。每一張圖片表示一幀圖像。
![o4YBAGBuaqSAOg7tAACzhUqwt0c194.jpg](https://file.elecfans.com//web1/M00/E9/59/o4YBAGBuaqSAOg7tAACzhUqwt0c194.jpg)
4. 常見問題
4.1 等待板卡連接
在打開軟件后,如果出現(xiàn)以下情況,可能原因是攝像頭或網(wǎng)線沒有插好,請(qǐng)檢查攝像頭及網(wǎng)線連接情況。之后重新打開軟件。
![pIYBAGBuaqWAW5UZAAA6pFr6IE0356.jpg](https://file.elecfans.com//web1/M00/E9/D5/pIYBAGBuaqWAW5UZAAA6pFr6IE0356.jpg)
4.2 數(shù)據(jù)異常
如果出現(xiàn)以下情況,可能原因是攝像頭配置不正常,有數(shù)據(jù)發(fā)送,但上位機(jī)無(wú)法解析,建議先用攝像頭顯示例程檢查攝像頭是否能正常使用或者重新插好攝像頭。之后重新打開軟件。
![o4YBAGBuaqWAGpCJAABGI9T9AqY882.jpg](https://file.elecfans.com//web1/M00/E9/59/o4YBAGBuaqWAGpCJAABGI9T9AqY882.jpg)
4.3 IP地址未配置
如果出現(xiàn)以下情況,表示沒有設(shè)置IP地址,請(qǐng)確認(rèn)設(shè)置好IP后重新打開軟件。
![pIYBAGBuaqaAfjSzAABIcrTVEwM722.jpg](https://file.elecfans.com//web1/M00/E9/D5/pIYBAGBuaqaAfjSzAABIcrTVEwM722.jpg)
5. 總結(jié)
到此為止,以太網(wǎng)傳輸視頻的實(shí)驗(yàn)就做完了,程序比較簡(jiǎn)單,僅在原有的實(shí)驗(yàn)基礎(chǔ)上做了擴(kuò)展,理解起來(lái)相對(duì)容易些。
-
FPGA
+關(guān)注
關(guān)注
1630文章
21803瀏覽量
606439 -
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5465瀏覽量
172842 -
攝像頭
+關(guān)注
關(guān)注
60文章
4871瀏覽量
96405 -
fifo
+關(guān)注
關(guān)注
3文章
390瀏覽量
43901 -
紫光同創(chuàng)
+關(guān)注
關(guān)注
5文章
89瀏覽量
27579
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
【紫光同創(chuàng)國(guó)產(chǎn)FPGA教程】【第二十三章】千兆以太網(wǎng)傳輸實(shí)驗(yàn)
![【<b class='flag-5'>紫光</b><b class='flag-5'>同創(chuàng)</b><b class='flag-5'>國(guó)產(chǎn)</b><b class='flag-5'>FPGA</b>教程】【<b class='flag-5'>第二十</b>三章】<b class='flag-5'>千兆</b><b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>傳輸</b><b class='flag-5'>實(shí)驗(yàn)</b>](https://file.elecfans.com/web1/M00/E9/30/o4YBAGBtJe2AIha4AAGUwAmCtBg901.png)
【紫光同創(chuàng)國(guó)產(chǎn)FPGA教程】【第二十四章】AD9238以太網(wǎng)傳輸
![【<b class='flag-5'>紫光</b><b class='flag-5'>同創(chuàng)</b><b class='flag-5'>國(guó)產(chǎn)</b><b class='flag-5'>FPGA</b>教程】【<b class='flag-5'>第二十</b>四章】AD9238<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>傳輸</b>](https://file.elecfans.com//web1/M00/E9/D0/pIYBAGBuWM-ADyAOAABSb9ku1jY348.jpg)
【紫光同創(chuàng)國(guó)產(chǎn)FPGA教程】【第二十五章】AD7606以太網(wǎng)傳輸
![【<b class='flag-5'>紫光</b><b class='flag-5'>同創(chuàng)</b><b class='flag-5'>國(guó)產(chǎn)</b><b class='flag-5'>FPGA</b>教程】【<b class='flag-5'>第二十五章</b>】AD7606<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>傳輸</b>](https://file.elecfans.com/web1/M00/E9/B7/o4YBAGBvxOWALSbqAAAR3t-kUIc983.png)
【紫光同創(chuàng)國(guó)產(chǎn)FPGA教程】【第二十六章】AD9280以太網(wǎng)傳輸
![【<b class='flag-5'>紫光</b><b class='flag-5'>同創(chuàng)</b><b class='flag-5'>國(guó)產(chǎn)</b><b class='flag-5'>FPGA</b>教程】【<b class='flag-5'>第二十</b>六章】AD9280<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>傳輸</b>](https://file.elecfans.com/web1/M00/EA/49/o4YBAGB1RPiAJoiLAAAQ9U6ykc8220.png)
國(guó)產(chǎn)FPGA介紹-紫光同創(chuàng)
![](https://file1.elecfans.com/web2/M00/AD/7B/wKgZomVBf0mAPpJNAAsd2hTqaMw786.png)
【正點(diǎn)原子FPGA連載】第二十七章gpio子系統(tǒng)下的LED驅(qū)動(dòng)實(shí)驗(yàn)-領(lǐng)航者ZYNQ之linux開發(fā)指南
基于FPGA的以太網(wǎng)視頻廣播接收系統(tǒng)的設(shè)計(jì)
第二十七講 同步時(shí)序邏輯電路的設(shè)計(jì)
![<b class='flag-5'>第二十七</b>講 同步時(shí)序邏輯電路的設(shè)計(jì)](https://file1.elecfans.com//web2/M00/A4/AE/wKgZomUMNUKAdSv5AAAReAVTiVo430.gif)
模擬電路網(wǎng)絡(luò)課件 第二十七節(jié):集成電路運(yùn)算放大器
【正點(diǎn)原子FPGA連載】第二十五章HDMI方塊移動(dòng)實(shí)驗(yàn) -摘自【正點(diǎn)原子】新起點(diǎn)之FPGA開發(fā)指南_V2.1
![【正點(diǎn)原子<b class='flag-5'>FPGA</b>連載】<b class='flag-5'>第二十五章</b>HDMI方塊移動(dòng)<b class='flag-5'>實(shí)驗(yàn)</b> -摘自【正點(diǎn)原子】新起點(diǎn)之<b class='flag-5'>FPGA</b>開發(fā)指南_V2.1](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
【正點(diǎn)原子FPGA連載】第二十七章DS18B20數(shù)字溫度傳感器實(shí)驗(yàn) -摘自【正點(diǎn)原子】新起點(diǎn)之FPGA開發(fā)指南_V2.1
![【正點(diǎn)原子<b class='flag-5'>FPGA</b>連載】<b class='flag-5'>第二十七章</b>DS18B20數(shù)字溫度傳感器<b class='flag-5'>實(shí)驗(yàn)</b> -摘自【正點(diǎn)原子】新起點(diǎn)之<b class='flag-5'>FPGA</b>開發(fā)指南_V2.1](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
【正點(diǎn)原子FPGA連載】第三十七章雙路高速AD實(shí)驗(yàn) -摘自【正點(diǎn)原子】新起點(diǎn)之FPGA開發(fā)指南_V2.1
![【正點(diǎn)原子<b class='flag-5'>FPGA</b>連載】第三<b class='flag-5'>十七章</b>雙路高速AD<b class='flag-5'>實(shí)驗(yàn)</b> -摘自【正點(diǎn)原子】新起點(diǎn)之<b class='flag-5'>FPGA</b>開發(fā)指南_V2.1](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
晶能光電亮相第二十七屆廣州國(guó)際照明展覽會(huì)
姍姍來(lái)遲!第二十七屆電壓敏學(xué)術(shù)年會(huì)在成都成功召開
![姍姍來(lái)遲!<b class='flag-5'>第二十七</b>屆電壓敏學(xué)術(shù)年會(huì)在成都成功召開](https://file1.elecfans.com/web2/M00/A5/B2/wKgaomUNQIuAN_m4AAKH6WsI_Ts871.png)
評(píng)論