0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于FPGA的GigE Vision相機(jī)圖像采集方案設(shè)計(jì)

FPGA設(shè)計(jì)論壇 ? 來(lái)源:FPGA設(shè)計(jì)論壇 ? 2025-01-07 09:34 ? 次閱讀

1 概述

GigE Vision是一個(gè)比較復(fù)雜的協(xié)議,要在FPGA中完全實(shí)現(xiàn)具有較大的難度。如果FPGA作為接收端希望實(shí)現(xiàn)GigE Vision相機(jī)的配置和圖像采集功能,則只需要實(shí)現(xiàn)其中小部分功能即可。本文對(duì)原有GigE Vision協(xié)議的結(jié)構(gòu)進(jìn)行了裁剪,僅保留設(shè)備搜索、寄存器配置和圖像采集三個(gè)主要功能。并在FPGA中成功實(shí)現(xiàn)了對(duì)Basler GIGE相機(jī)的配置和圖像實(shí)時(shí)采集。

2 GigE Vision協(xié)議

GigE Vision協(xié)議包含GVCP(GigE Vision Control Protocol)和GVSP(GigE Vision Streaming Protocol)兩部分。其中,GVCP負(fù)責(zé)對(duì)相機(jī)進(jìn)行配置,GVSP負(fù)責(zé)控制圖像數(shù)據(jù)的傳輸。

2.1 GVCP協(xié)議

GVCP協(xié)議規(guī)定了應(yīng)用程序通過(guò)以太網(wǎng)配置和控制外部設(shè)備的準(zhǔn)則,設(shè)備的配置過(guò)程采用了指令(CMD)和應(yīng)答(ACK)的方式。以外部主機(jī)和相機(jī)為例,首先,主機(jī)通過(guò)以太網(wǎng)向相機(jī)發(fā)送指令包,然后等待相機(jī)返回當(dāng)前指令的應(yīng)答包;相機(jī)接收到指令包后執(zhí)行相應(yīng)的操作,而后向主機(jī)返回應(yīng)答包。主機(jī)收到應(yīng)答包后,根據(jù)應(yīng)答包中的狀態(tài)信息判斷指令是否執(zhí)行成功,若執(zhí)行成功則繼續(xù)發(fā)送下一個(gè)指令包,否則重新發(fā)送當(dāng)前指令包。該方式彌補(bǔ)了UDP協(xié)議面向無(wú)連接的缺點(diǎn),保證了數(shù)據(jù)傳輸?shù)耐暾院涂煽啃浴?/p>

GVCP包含兩種格式的數(shù)據(jù)包:指令包和應(yīng)答包,指令包首部為:

6a0234c6-cbe5-11ef-9310-92fbcf53809c.png

在指令包首部中,0x42為GVCP指令包的固定字段,flag字段包含了不同指令的特定信息,command字段代表指令的類型,length字段代表指令包中除首部外,載荷數(shù)據(jù)的長(zhǎng)度(單位:字節(jié)),req_id代表指令包的序號(hào)。

應(yīng)答包首部為:

6a13e180-cbe5-11ef-9310-92fbcf53809c.png

在應(yīng)答包首部中,status字段代表指令包的執(zhí)行狀態(tài),acknowledge字段代表應(yīng)答包的類型,length字段代表應(yīng)答包中除首部外,載荷數(shù)據(jù)的長(zhǎng)度(單位:字節(jié)),ack_id代表應(yīng)答包的序號(hào)。

設(shè)計(jì)中使用了兩種指令包:設(shè)備搜索(DISCOVERY)和寫寄存器(WRITEREG)。

2.1.1 設(shè)備搜索(DISCOVERY)

設(shè)備搜索指令用于接收端(FPGA)尋找所在的子網(wǎng)中的GIGE發(fā)送設(shè)備(相機(jī))。通過(guò)搜索指令DISCOVERY_CMD實(shí)現(xiàn)。

搜索指令包格式:

6a2908b2-cbe5-11ef-9310-92fbcf53809c.png

設(shè)計(jì)中的搜索指令包格式為:

6a33bfd2-cbe5-11ef-9310-92fbcf53809c.png

對(duì)應(yīng)的搜索應(yīng)答包DISCOVERY_ACK為格式:

6a43a848-cbe5-11ef-9310-92fbcf53809c.png

在搜索應(yīng)答包中,包含了相機(jī)的各個(gè)主要參數(shù),包括相機(jī)的生產(chǎn)商、版本、名稱、序列號(hào)、IP地址、MAC地址等信息,載荷數(shù)據(jù)的長(zhǎng)度為248字節(jié)。設(shè)計(jì)中所關(guān)心的是相機(jī)的IP地址和MAC地址信息,其中MAC地址位于載荷數(shù)據(jù)的第11~16字節(jié)部分,IP地址位于第37~40字節(jié)部分。

2.1.2 寫寄存器(WRITEREG)

寫寄存器指令用于配置相機(jī)的參數(shù),通過(guò)WRITEREG_CMD指令實(shí)現(xiàn)。

寫寄存器指令包格式:

6a60623a-cbe5-11ef-9310-92fbcf53809c.png

在寫寄存器指令包中,register_address字段代表32位的寄存器地址,register_data字段代表所要寫入的32位寄存器值。在設(shè)計(jì)中,每次只配置一個(gè)寄存器,因此只包含一個(gè)register_address和register_data字段。

因此,設(shè)計(jì)中的寫寄存器包格式如下:

6a67be5e-cbe5-11ef-9310-92fbcf53809c.png

對(duì)應(yīng)的寫寄存器應(yīng)答包WRITEREG_ACK格式:

6a77c1dc-cbe5-11ef-9310-92fbcf53809c.png

在應(yīng)答包中,status字段的值為0x0000,代表寫寄存器指令執(zhí)行成功,index字段代表配置成功的寄存器個(gè)數(shù),對(duì)于每次配置1個(gè)寄存器而言,該字段的值為0x0001。

因此,設(shè)計(jì)中的寫寄存器應(yīng)答包格式如下:

6a8c1a2e-cbe5-11ef-9310-92fbcf53809c.png

2.2 GVSP協(xié)議

GVSP協(xié)議規(guī)定了GVSP發(fā)送方向GVSP接收方傳輸圖像數(shù)據(jù)和圖像信息的一系列準(zhǔn)則。GVSP協(xié)議以數(shù)據(jù)塊(Data Block)為單位進(jìn)行數(shù)據(jù)傳輸,通常使用標(biāo)準(zhǔn)傳輸模式。該模式包含3種格式的數(shù)據(jù)包:頭數(shù)據(jù)包(Data Leader Packet)、載荷數(shù)據(jù)包(Data Payload Packet)和尾數(shù)據(jù)包(Data Trailer Packet),頭數(shù)據(jù)包和尾數(shù)據(jù)包作為每個(gè)數(shù)據(jù)塊的首尾界定,不包含圖像數(shù)據(jù);載荷數(shù)據(jù)包則作為數(shù)據(jù)塊中數(shù)據(jù)的傳輸載體,包含了有效的圖像數(shù)據(jù)。

6a9e1e72-cbe5-11ef-9310-92fbcf53809c.png

3種數(shù)據(jù)包具有相同的GVSP首部,格式如下:

6aaba52e-cbe5-11ef-9310-92fbcf53809c.png

在GVSP首部中,status字段代表數(shù)據(jù)包的狀態(tài),block_id代表數(shù)據(jù)塊的序號(hào),packet_id代表當(dāng)前數(shù)據(jù)塊中數(shù)據(jù)包的序號(hào)(頭數(shù)據(jù)包的packet_id總為0),packet_format字段代表數(shù)據(jù)包的類型(頭數(shù)據(jù)包、載荷數(shù)據(jù)包、尾數(shù)據(jù)包)。EI字段代表擴(kuò)展block_id和packet_id的標(biāo)志位,當(dāng)EI=0時(shí),block_id為16bit,packet_id為24bit,此時(shí)的首部長(zhǎng)度為8字節(jié);當(dāng)EI=1時(shí),block_id為64bit,packet_id為32bit,此時(shí)的首部長(zhǎng)度為20字節(jié)。

設(shè)計(jì)中不對(duì)頭數(shù)據(jù)包和尾數(shù)據(jù)包進(jìn)行處理,僅根據(jù)packet_format字段從數(shù)據(jù)流中提取包含圖像數(shù)據(jù)的載荷數(shù)據(jù)包,并由EI位判斷首部的長(zhǎng)度,準(zhǔn)確剝除載荷數(shù)據(jù)包的首部后,便可得到有效的圖像數(shù)據(jù)。為了保證圖像傳輸?shù)膶?shí)時(shí)性,不對(duì)status字段進(jìn)行判斷,對(duì)于傳輸錯(cuò)誤的圖像數(shù)據(jù)仍作為有效數(shù)據(jù)輸出。

3 UDP IP協(xié)議

GigE Vision是基于UDP協(xié)議進(jìn)行數(shù)據(jù)傳輸?shù)?。因此,要?shí)現(xiàn)FPGA與相機(jī)間的GVCP和GVSP通信,還需要設(shè)計(jì)網(wǎng)絡(luò)通信協(xié)議。按照GigE Vision協(xié)議的要求,需要設(shè)計(jì)的網(wǎng)絡(luò)協(xié)議還是比較多的。從FPGA與相機(jī)之間實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)數(shù)據(jù)傳輸?shù)慕嵌瘸霭l(fā),只要實(shí)現(xiàn)基本的UDP 、IP和MAC三種協(xié)議即可。由于相機(jī)可以設(shè)置為固定IP地址,而且相機(jī)的IP地址和MAC地址都可以通過(guò)FPGA發(fā)送DISCOVERY指令獲取。所以ARP協(xié)議可以不在FPGA中實(shí)現(xiàn)。

對(duì)于UDP和IP協(xié)議,只需要實(shí)現(xiàn)UDP和IP首部的添加和移除功能,其他功能可以不做。MAC協(xié)議在FPGA廠商的開(kāi)發(fā)環(huán)境中均提供了IP。當(dāng)然自己也可以設(shè)計(jì)一個(gè)MAC,只需要實(shí)現(xiàn)基本的MAC首部移除、添加以及CRC32校驗(yàn)功能即可。

4 FPGA工作流程

從相機(jī)的配置到圖像的采集整個(gè)流程為:

6abb1298-cbe5-11ef-9310-92fbcf53809c.png

可分為5個(gè)步驟,具體過(guò)程如下:

(1)FPGA向其所屬子網(wǎng)發(fā)送UDP廣播包搜尋所連接的相機(jī)。GVCP的UDP端口號(hào)為3956,除此之外,F(xiàn)PGA和相機(jī)的IP地址必須屬于同一個(gè)子網(wǎng)段,否則相機(jī)將無(wú)法應(yīng)答搜索包。

(2)FPGA等待相機(jī)返回應(yīng)答包,并從中提取相機(jī)的IP地址和MAC地址,作為發(fā)送數(shù)據(jù)包的IP首部和MAC首部中的目的地址。

(3)FPGA發(fā)送寫寄存器指令包,依次配置相機(jī)的各功能寄存器,對(duì)其工作參數(shù)進(jìn)行設(shè)置。

(4)FPGA發(fā)送寫采集使能寄存器指令包,觸發(fā)相機(jī)進(jìn)行圖像采集和傳輸。

(5)FPGA從相機(jī)接收GVSP數(shù)據(jù)包,從中提取出有效的圖像數(shù)據(jù)。

原文鏈接:

https://gitcode.csdn.net/66c6dc510bfad230b8ae756b.html

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1629

    文章

    21754

    瀏覽量

    604221
  • 圖像采集
    +關(guān)注

    關(guān)注

    2

    文章

    301

    瀏覽量

    41295
  • 相機(jī)
    +關(guān)注

    關(guān)注

    4

    文章

    1358

    瀏覽量

    53703
  • Vision
    +關(guān)注

    關(guān)注

    1

    文章

    199

    瀏覽量

    18209

原文標(biāo)題:基于FPGA的GigE Vision相機(jī)圖像采集方案設(shè)計(jì)

文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    GMSL相機(jī)GigE Vision相機(jī)最有力的替代方案嗎?

    GigE Vision是基于以太網(wǎng)基礎(chǔ)架構(gòu)和協(xié)議的網(wǎng)絡(luò)相機(jī)接口標(biāo)準(zhǔn)。它廣泛用于工業(yè)領(lǐng)域。ADI公司的 GMSL 是一種專門用于視頻數(shù)據(jù)傳輸?shù)狞c(diǎn)對(duì)點(diǎn)串行鏈路技術(shù),最初是為汽車攝像頭和顯示應(yīng)用而設(shè)計(jì)的。
    的頭像 發(fā)表于 12-21 18:21 ?1459次閱讀

    基于FPGA的機(jī)器視覺(jué)設(shè)計(jì)

    Vision使用了一個(gè)標(biāo)準(zhǔn)的千兆以太網(wǎng)連接同其高帶寬(1 Gb/s)實(shí)現(xiàn)了未經(jīng)壓縮圖像和數(shù)據(jù)的實(shí)時(shí)傳輸。使用Gige Vision IP是實(shí)現(xiàn)高性能機(jī)器視覺(jué)應(yīng)用的理想解決
    發(fā)表于 09-04 12:14

    FPGAGigE相機(jī)的遵循GigE Vision標(biāo)準(zhǔn)的通信

    現(xiàn)在需要在FPGA上做圖像處理,首先是FPGA與千兆以太網(wǎng)相機(jī)GigE相機(jī))通訊,獲取
    發(fā)表于 01-12 12:33

    普通SDI輸出相機(jī)圖像采集

    我想采集一款輸出是SDI的相機(jī)圖像,我已經(jīng)安裝了VIsion可以采集電腦攝像頭的,如果采集這款
    發(fā)表于 04-13 10:29

    關(guān)于6678與gigE vision 相機(jī)的連接問(wèn)題

    請(qǐng)問(wèn):6678評(píng)估板上的的千兆網(wǎng)口能否與gigE vision 相機(jī)連接?gigE vision相機(jī)
    發(fā)表于 06-21 13:13

    創(chuàng)龍C66x平臺(tái)GigE工業(yè)相機(jī)圖像采集案例

    acA640-120gm;?采集幀率:30fps。 2 GigE Vision簡(jiǎn)介千兆網(wǎng)(GigE)是目前工業(yè)數(shù)字相機(jī)中發(fā)展最快的接口,同
    發(fā)表于 10-23 15:19

    FPGA為核心的機(jī)器視覺(jué)系統(tǒng)設(shè)計(jì)方案

    使用了一個(gè)標(biāo)準(zhǔn)的千兆以太網(wǎng)連接同其高帶寬(1 Gb/s)實(shí)現(xiàn)了未經(jīng)壓縮圖像和數(shù)據(jù)的實(shí)時(shí)傳輸。使用Gige Vision IP是實(shí)現(xiàn)高性能機(jī)器視覺(jué)應(yīng)用的理想解決方案。一個(gè)吉比特以太網(wǎng)
    發(fā)表于 05-05 08:30

    vision acquisition采集圖像速度很低

    硬件:大華500W面陣相機(jī)運(yùn)用labview自帶的vision acquisition采集圖像,獲取速度很慢,設(shè)置是默認(rèn),生成VI后點(diǎn)擊運(yùn)行大概2S才
    發(fā)表于 08-13 16:55

    基于Nios Ⅱ和GigE Vision圖像采集系統(tǒng)

    基于嵌入式環(huán)境的圖像采集系統(tǒng),介紹了。提出了采用Ahera的FPGA作為控制芯片,通過(guò)在FPGA中植入軟核處理器Nios II以采集千兆以太
    發(fā)表于 05-03 14:23 ?7次下載

    基于FPGA和MVD1024E相機(jī)圖像采集系統(tǒng)

    基于FPGA和MVD1024E相機(jī)圖像采集系統(tǒng)
    發(fā)表于 09-22 12:27 ?19次下載

    基于AM57x的GigE工業(yè)相機(jī)圖像采集案例的詳細(xì)中文資料詳細(xì)概述

    本文檔是廣州創(chuàng)龍基于TL5728-EasyEVM 開(kāi)發(fā)板的GigE工業(yè)相機(jī)圖像采集案例, 涉及到PylonViewerApp例程、Grap例程、GigEViewApp
    發(fā)表于 07-04 08:00 ?47次下載

    基于ZynqArtix-7實(shí)現(xiàn)GigE Vision協(xié)議的機(jī)器視覺(jué)攝像頭方案

    GigE Vision是一個(gè)基于以外網(wǎng)技術(shù)的標(biāo)準(zhǔn)化視頻應(yīng)用通信協(xié)議,可以輕松實(shí)現(xiàn)GigE Vision設(shè)備與TCP/IP協(xié)議的PC進(jìn)行互聯(lián)。本視頻將向您演示由Sensor to Ima
    的頭像 發(fā)表于 07-02 10:27 ?6438次閱讀

    GigE Vision 2.0的使用說(shuō)明書(shū)

    GigE Vision 是一種通信介面標(biāo)準(zhǔn),可用于各種網(wǎng)路拓?fù)渖系囊曈X(jué)軟體與視頻流設(shè)備間的交互。該標(biāo)準(zhǔn)是基于UDP/IP協(xié)議體系,并構(gòu)成了Gige Vision 協(xié)議(工作在應(yīng)用層,包
    發(fā)表于 11-09 08:00 ?19次下載

    探索10G高速圖像采集卡在視覺(jué)檢測(cè)方案背后的作用與原理

    圖像采集卡作為工控機(jī)連接工業(yè)相機(jī)的關(guān)鍵部件,穩(wěn)定運(yùn)行不丟幀成為其關(guān)鍵要素。而巨型幀對(duì)于GigE Vision設(shè)備運(yùn)行有很大的影響。
    的頭像 發(fā)表于 07-12 17:41 ?678次閱讀
    探索10G高速<b class='flag-5'>圖像</b><b class='flag-5'>采集</b>卡在視覺(jué)檢測(cè)<b class='flag-5'>方案</b>背后的作用與原理

    一鍵解鎖:將任意圖像設(shè)備秒變GigE Vision設(shè)備的終極秘訣

    ?物聯(lián)網(wǎng)發(fā)展正在走向輕便和低成本。友思特eBUS Edge軟件方案,可將任意圖像設(shè)備一鍵升級(jí)為GigE Vision設(shè)備,讓機(jī)器視覺(jué)便捷處理更進(jìn)一步。
    的頭像 發(fā)表于 03-13 17:20 ?758次閱讀
    一鍵解鎖:將任意<b class='flag-5'>圖像</b>設(shè)備秒變<b class='flag-5'>GigE</b> <b class='flag-5'>Vision</b>設(shè)備的終極秘訣