一種圖像采集過程中的數據傳輸方法、系統及相關裝置與流程

文檔序號:18160816發布日期:2019-07-13 09:19
一種圖像采集過程中的數據傳輸方法、系統及相關裝置與流程

本申請涉及計算機視覺領域,特別涉及一種圖像采集過程中的數據傳輸方法、系統及相關裝置。



背景技術:

隨著機器視覺領域的發展,工業相機在該領域的深入應用越來越多,一般此類相機采用純FPGA平臺對圖像進行采集并通過千兆以太網實現UDP的傳輸機制,這里傳輸的機制是基于FPGA的實現方式;隨著新型智能相機系統的需求出現,需要運行算法等系統的支持,純粹的FPGA系統已經無法滿足當下機器視覺的應用需求,另外多數情況下,在ARM,cortex等單核,多核系統中,由于系統還需要擔負其他處理任務,實現UDP機制的千兆網(1000Mbps)存在一定的難度,并且存在不穩定、丟包嚴重等情況,難以平衡。



技術實現要素:

本申請的目的是提供一種圖像采集過程中的數據傳輸方法、系統、一種計算機可讀存儲介質和一種終端,解決了現有工業相機在進行圖像數據傳輸時不穩定的問題。

為解決上述技術問題,本申請提供一種圖像采集過程中的數據傳輸方法,具體技術方案如下:

獲取吉比特以太網控制器的數據信息;

根據所述數據信息接管并重構網絡傳輸管理隊列表;

將所述網絡傳輸管理隊列表的地址信息賦值至所述吉比特以太網控制器;

在組包線程生成數據包后,利用獨立發送線程控制所述吉比特以太網控制器傳輸所述數據包。

其中,所述組包線程生成數據包包括:

搜索當前圖片的內存地址信息;

根據所述當前圖片的圖像行長,在圖像像素每行初始化時預留的內存空間內,填入UDP協議頭格式和自定義數據協議格式,或者將所述當前圖片整包打包為GIGE協議格式。

其中,所述數據信息包括發送緩沖區列表;所述發送緩沖區列表包括待發送報文緩存的字節地址和所述待發送報文緩存的長度信息。

其中,所述利用獨立發送線程控制所述吉比特以太網控制器傳輸所述數據包時,還包括:

將每個所述數據包的描述符都寫入所述發送緩沖區列表,并按照寫入量計算發送時間。

其中,所述利用獨立發送線程控制所述吉比特以太網控制器傳輸所述數據包包括:

利用獨立發送線程控制所述吉比特以太網控制器以巨幀模式傳輸所述數據包。

本申請還提供一種圖像采集過程中的數據傳輸系統,具體技術方案如下:

獲取模塊,用于獲取吉比特以太網控制器的數據信息;

重構模塊,用于根據所述數據信息接管并重構網絡傳輸管理隊列表;

賦值模塊,用于將所述網絡傳輸管理隊列表的地址信息賦值至所述吉比特以太網控制器;

組包發送模塊,用于在組包線程生成數據包后,利用獨立發送線程控制所述吉比特以太網控制器傳輸所述數據包。

其中,還包括:

時間計算模塊,用于將每個所述數據包的描述符都寫入所述發送緩沖區列表,并按照寫入量計算發送時間。

其中,所述組包發送模塊包括:

發送單元,用于利用獨立發送線程控制所述吉比特以太網控制器以巨幀模式傳輸所述數據包。

本申請還提供一種計算機可讀存儲介質,其上存儲有計算機程序,所述計算機程序被處理器執行時實現如上所述的數據傳輸方法的步驟。

本申請還提供一種終端,包括存儲器和處理器,所述存儲器中存有計算機程序,所述處理器調用所述存儲器中的計算機程序時實現如上所述的數據傳輸方法的步驟。

本申請所提供的一種圖像采集過程中的數據傳輸方法,包括:獲取吉比特以太網控制器的數據信息;根據所述數據信息接管并重構網絡傳輸管理隊列表;將所述網絡傳輸管理隊列表的地址信息賦值至所述吉比特以太網控制器;在組包線程生成數據包后,利用獨立發送線程控制所述吉比特以太網控制器傳輸所述數據包。

本申請通過采用獨立的進程接管系統底層網絡驅動的傳輸管理,單獨由該進程管理芯片自帶的千兆網控制器,實現真正千兆網數據量的傳輸,并對系統其他的執行無任何影響,提高了數據傳輸質量和效率。本申請還提供一種圖像采集過程中的數據傳輸系統、一種計算機可讀存儲介質和一種終端,具有上述有益效果,此處不再贅述。

附圖說明

為了更清楚地說明本申請實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。

圖1為本申請實施例所提供的一種圖像采集過程中的數據傳輸方法的流程圖;

圖2為本申請實施例所提供的一種圖像采集過程中的數據傳輸系統結構示意圖。

具體實施方式

為使本申請實施例的目的、技術方案和優點更加清楚,下面將結合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├?,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護的范圍。

請參考圖1,圖1為本申請實施例所提供的一種圖像采集過程中的數據傳輸方法的流程圖,該數據傳輸方法包括:

S101:獲取吉比特以太網控制器的數據信息;

本步驟旨在獲取吉比特以太網控制器(英文名稱為Gigabit Ethernet Controller,又稱GEM)中的數據信息。吉比特以太網即千兆以太網。換句話中,本步驟是需要獲取網絡中控制器的數據信息。該數據信息主要指的是發送緩沖區列表,發送緩沖區列表包括待發送報文緩存的字節地址和所述待發送報文緩存的長度信息,待發送報文緩存的字節地址也即待發送的數據緩存區物理地址。當然,還可以包括其他描述符等。目前芯片含有的千兆網控制器,都自帶硬件發送緩沖區列表,此列表含有一定數量的描述符,一個描述符代表一個網絡報文需要發送的數據。系統所需要發送的數據,最終都需要通過配置描述符來說明發送地址和長度,以及管理發送狀態。參見表1,表1為一種優選的發送緩沖區列表中的內容及相應功能對照表。容易理解的是,本領域技術人員可以參考表1在吉比特以太網控制器中建立包含相同數據內容或起到相同作用的數據,均應在本申請的保護范圍內。

表1發送緩沖區列表中的內容及相應功能對照表

表1是吉比特以太網控制器的發送緩沖區列表中描述符的內容及相應功能對照表,該控制器可以最大支持256個描述符,這些描述符必須連續8字節對齊。此外,每次啟動發送就從當前的描述符開始發送數據,發送完畢后會立即檢測下一個描述符,依次類推,并且均不需要占用CPU資源,直接由DMA(DMA,Direct Memory Access,直接內存存取)操作,該描述符單元主要有以下幾個特性:

(1)每個緩沖區描述符長度是8個字節,8個字節關鍵位分布如表1所示;

(2)標志控制器擁有所有列表的入口并且標識了列表中的最后一個描述符,以便于獲取當前網絡的實際發送狀態。

(3)將發送緩沖區列表的基地址記錄在吉比特以太網控制器中,所以可以輕松獲得系統啟動后網絡驅動端描述符列表的地址信息,以便于指定列表信息,管理發送緩沖區列表。

S102:根據所述數據信息接管并重構網絡傳輸管理隊列表;

本步驟旨在根據S101中獲取的數據信息創建新的管理隊列表,即重構網絡傳輸管理隊列表。需要注意的是,先利用吉比特以太網控制器的數據信息接管系統底層的網絡傳輸管理隊列表,然后構建新的網絡傳輸管理隊列表。具體而言,根據數據信息結合原有的網絡傳輸管理隊列表即可實現重構網絡傳輸管理隊列表。

利用網絡傳輸管理隊列表使得數據流發送進程可以獨立操作吉比特以太網控制器,不跟linux或者qnx等系統的底層驅動網絡管理沖突,并且方便下一步將要發送的數據信息填入該網絡傳輸管理隊列表。

此外,得到新的網絡傳輸管理隊列表后,還需要關閉吉比特控制器的發送使能,意即暫停其網絡發送功能。通過對特定的共享內存區間寫入標識符,讓系統網絡驅動底層檢測到網絡傳輸管理隊列表被接管后放棄調用物理傳輸操作。

S103:將所述網絡傳輸管理隊列表的地址信息賦值至所述吉比特以太網控制器;

由于步驟S102中重構了網絡傳輸管理隊列表,因此本步驟中還需要將重構后的網絡傳輸管理隊列表中的地址信息賦值至吉比特以太網控制器,才能在步驟S104中利用吉比特以太網控制器根據該地址信息傳輸數據包。

S104:在組包線程生成數據包后,利用獨立發送線程控制所述吉比特以太網控制器傳輸所述數據包。

本步驟實際上分為兩個部分,一是利用組包線程進行組包,而是組包后利用獨立發送線程進行數據包發送。

組包線程生成數據包過程可以如下:搜索當前圖片的內存地址信息;根據所述當前圖片的圖像行長,在圖像像素每行初始化時預留的內存空間內,填入UDP協議頭格式和自定義數據協議格式,或者將所述當前圖片整包打包為GIGE協議格式。

圖像行長指的是圖像分辨率的長,意即對當前圖片組包時,需要考慮圖像分辨率。容易理解的是,上述打包格式等均為本申請實施例提供的一種優選的打包格式,在實際圖像打包過程中,應由本領域技術人員根據實際處理需和傳輸求作相應的設定,在此不作具體限定。

需要說明的是,組包線程是循環過程,只要有新的圖片,就需要對該圖片按照上述過程組包處理。

而在數據包發送過程中,可以先讀取已經按UDP協議組包好的網絡幀信息,在將準備就緒的幀地址信息按256幀一次寫入新的發送緩沖區列表,然后利用吉比特以太網控制器對應的寄存器啟動發送。一旦數據包發送完成,可以清空圖片管理結構體。

需要注意的是,本申請實施例適用于雙核+FPGA模式的片上硬件系統,讓上述實施例對應的進程SMP模式下的獨立內核,例如可以為LINUX系統和QNX系統的SMP模式下的獨立內核。

所以在初始化過程中,只要對該進程的管理內容進行初始化,系統以及硬件的其他初始化功能全部由另外一個運行系統的核管理,該進程在SMP(對稱多處理技術,Symmetrical Multi-Processing,是指在一個計算機上匯集了一組處理器或多個CPU,各CPU之間共享內存子系統以及總線結構)模式下就相當于系統管理的一個獨立運行的進程。整個軟件基于在獲取了網絡當前的緩沖區列表描述符單元的信息后,為了提高運行效率,充分利用線程切換管理機制,采用兩個線程UDP幀傳輸格式組建線程與網絡發送管理線程。

特別地,在UDP幀傳輸格式組建線程中需要注意的是關于存放數據與組建數據之間的物理內存地址與虛擬地址之間的轉換。另外還涉及網絡的可配置性,需要實時獲取共享內存區間的目的IP、源IP的信息等,以在應用中可以靈活配置網絡傳輸。

本申請實施例通過采用獨立的進程接管系統底層網絡驅動的傳輸管理,單獨由該進程管理芯片自帶的千兆網控制器,實現真正千兆網數據量的傳輸,并對系統其他的執行無任何影響,提高了數據傳輸質量和效率。在大數據流傳輸過程中通過合理的釋放系統占用機制,降低CPU占用率,同時達到降低功耗等需求。

基于上述實施例,作為優選的實施例,步驟S104中可以利用獨立發送線程控制所述吉比特以太網控制器以巨幀模式傳輸所述數據包。

在網絡發送管理線程中,由于應用在智能相機的大數據量傳輸中,不能一直占用CPU資源只執行傳輸功能,為此針對智能相機的應用,引入了降低CPU占有率機制,該機制的具體實施如下:

圖片組幀完畢后,將每包數據的描述符都寫入描述符列表,最大寫入量256,按照寫入量來計算以太網發送的時間。

計算依據如:

L:代表單包發送的字節長度(包含UDP幀格式協議頭,自定義協議格式,圖像的源數據);

D:代表一次要網絡發送管理的網絡報文數(最大256);

T:整體需要發送的時間T等于D*L*8納秒;

這里不考慮以太網的前導碼和最低空閑時間。等待函數采用具備系統調度的系統函數如delay、usleep,考慮到系統調度等問題,實際使用時將T在理論基礎上減少了一些,實際采用計算值的0.8,即實際值變成了T=0.8*D*L*8;

這里T值越大,此進程的CPU占用率越小,所以需要提高L,采用巨幀模式傳輸數據表。在此對于網絡報文的單包大小不作具體限定,例如網絡報文的數據量發送單包可達到4K。

下面對本申請實施例提供的一種圖像采集過程中的數據傳輸系統進行介紹,下文描述的數據傳輸系統與上文描述的數據傳輸方法可相互對應參照。

參見圖2,圖2為本申請實施例所提供的一種圖像采集過程中的數據傳輸系統結構示意圖,本申請還提供一種圖像采集過程中的數據傳輸系統,包括:

獲取模塊100,用于獲取吉比特以太網控制器的數據信息;

重構模塊200,用于根據所述數據信息接管并重構網絡傳輸管理隊列表;

賦值模塊303,用于將所述網絡傳輸管理隊列表的地址信息賦值至所述吉比特以太網控制器;

組包發送模塊400,用于在組包線程生成數據包后,利用獨立發送線程控制所述吉比特以太網控制器傳輸所述數據包。

基于上述實施例,作為優選的實施例,所述組包發送模塊400可以包括:

發送單元,用于利用獨立發送線程控制所述吉比特以太網控制器以巨幀模式傳輸所述數據包。

本申請還提供了一種計算機可讀存儲介質,其上存有計算機程序,該計算機程序被執行時可以實現上述實施例所提供的步驟。該存儲介質可以包括:U盤、移動硬盤、只讀存儲器(Read-Only Memory,ROM)、隨機存取存儲器(Random Access Memory,RAM)、磁碟或者光盤等各種可以存儲程序代碼的介質。

本申請還提供了一種終端,可以包括存儲器和處理器,所述存儲器中存有計算機程序,所述處理器調用所述存儲器中的計算機程序時,可以實現上述實施例所提供的步驟。當然所述終端還可以包括各種網絡接口,電源等組件。

說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例提供的系統而言,由于其與實施例提供的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。

本文中應用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本申請的方法及其核心思想。應當指出,對于本技術領域的普通技術人員來說,在不脫離本申請原理的前提下,還可以對本申請進行若干改進和修飾,這些改進和修飾也落入本申請權利要求的保護范圍內。

還需要說明的是,在本說明書中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。

再多了解一些
當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
做爱视频