引言
它同時集成軟硬件,能夠自動地從所采集到的圖像中獲取信息或者產生控制動作。自起步發展到現在,機器視覺已有15年的歷史,主要經歷了數字電路組成、PC機和輸出設備組成、嵌入式三個階段,其中,嵌入式機器視覺系統依托專業計算機技術,具有實時多任務操作系統、高效壓縮芯片和功能強大的微處理器,可將視頻壓縮、傳輸與處理工作全部內置到芯片上,通過內部處理后可以直接連入以太網或廣域網,完成網絡實時遠程監控,是目前的研究熱點之一。
在國內外研究中,嵌入式機器視覺系統實現方式主要有三種:
(1)基于標準總線,采用DSP作為運算和控制處理器的系統。DSP芯片雖然能夠處理大量信息和高速運行,但其I/O接口單一,不易擴展,控制能力較弱,尚存在一定局限性。
(2)基于DSP+FPGA 的機器視覺系統。FPGA 與DSP的結合,可實現寬帶信號處理,大大提高信號處理速度,但FPGA 使用的是硬件描述語言,其算法開發具有很大的難度,功能實現由硬件控制,系統受環境影響較大。
(3)采用ARM微處理器或采用ARM+DSP構建方式的機器視覺系統,這種構建方式人機交互功能強大,集成度高、實時性好、支持多任務,但該系統中ARM 與DSP的數據交換方法仍采用外部電路連接,增加了系統的不穩定性。
綜合上述技術方案的優點和缺點,本文提出了一種新型機器視覺系統,實現圖像信息的高速采集與存儲。
其核心芯片選取TI公司最新生產的先進的雙核嵌入式芯片,將ARM處理器和DSP處理器集成在一個芯片中,通過軟件編程即完成ARM與DSP的協調工作。由該芯片構建開發的機器視覺處理系統,憑借植入Linux系統的ARM 處理器的優異的控制性能,配合DSP 的強大運算處理能力將保證系統擁有良好的實時性和穩定性,可以為機器視覺的研究和應用提供很好的視頻采集與處理硬件平臺。
1 系統功能
本系統為一高速圖像數據采集存儲系統,通過軟硬件設計能夠實現:兩路分辨率640×480,幀頻60 f/s,12 b/pixel;一路分辨率1 024×1 024,幀頻60 f/s,12 b/pixel三路輸入信號實時采集。實時無壓縮存儲。
如圖1所示,系統通過串口控制圖像傳感器,使三路圖像數據信號、時鐘以及各種同步信號按要求輸入,系統依次進行圖像信號的采集、數據處理、存儲。系統利用自帶的接口可實現顯示、上位機通信、鍵盤控制等更多的功能,能夠實現友好的人機對話。
2 硬件設計
本系統選取TI 公司達芬奇系列最新的TMS320DM8168 芯片。此芯片集成了1 GHz ARMCortex-A8、1 GHz TI C674x 浮點DSP、若干二代可編程高清視頻影像協處理器、一個創新型高清視頻處理子系統(HDVPSS)以及綜合編解碼器,支持包括高清分辨率的H.264、MPEG-4 以及VC1.并且包含千兆以太網、PCI Express、SATA2、DDR2、DDR3、USB 2.0、MMC/SD、HDMI以及DVI等多種接口,可支持更多功能的擴展和復雜應用。
利用該芯片設計并實現兩路或三路不同分辨率的圖像信號的采集、處理與顯示,硬件原理圖如圖2 所示。實現該系統的開發與設計所涉及的硬件模塊有:圖像采集接口模塊、圖像采集模塊、圖像存儲模塊、外圍接口模塊。
2.1 圖像采集接口模塊
作為圖像傳感器和高速采集系統的連接模塊,該模塊可對USB接口相機或Camera Link接口相機進行圖像采集與控制。USB 接口連接十分方便,由于系統具有USB 外圍接口,按照USB 標準協議連接即可。CameraLink接口具有開放式的接口協議,使得不同廠家既能保持產品的差異性,又能互相兼容,因此系統中的圖像采集接口模塊采用了Camera Link接口協議。該模塊分別使用了DS90CR288A 、DS90LV049、DS90LV047 完成圖像傳感器的控制、圖像信息的采集及圖像傳感器與圖像采集系統的雙向通信。
2.2 圖像采集模塊
TMS320DM8168 的HDVPSS(HD Video ProcessingSubsystem)提供了視頻輸入接口和視頻輸出接口。視頻輸入接口提供了外部圖像設備(如圖像傳感器、視頻解碼器等)的接入。
HDVPSS可支持高達3 個60 f/s的1080p通道、同時支持16 個通道的CIF 數據流的H.264 高畫質D1 編碼與8通道D1解碼;支持2個獨立的視頻捕捉輸入端口,每個視頻輸入端口支持縮放、像素格式轉換。兩個視頻輸入捕捉端口均能以1個16 b輸入通道(帶分離的Y和Cb/Cr輸入),或2個時鐘獨立的8 b輸入通道操作(帶交織的Y/C數據輸入)。第一個視頻輸入端口能以24 b模式操作以支持RGB捕捉。所有采集模式捕捉時鐘高達165 MHz,可滿足高速率的圖像采集。
高清視頻處理子系統(HDVPSS)有兩個獨立視頻捕捉輸入端口VIP0與VIP1.VIP0可配置成24 b、16 b、和兩個獨立的8 b 模式,VIP1 可配置成16 b、和兩個獨立的8 b.從捕捉頻率和各種配置模式可看出,針對不同的流量,可以有多種實現方法。為了存儲設計簡單,本方案將VIP0配置為24 b進行采集。在此模式下,最高流量為165M × 24 8 = 495 MB/s,可以滿足流量要求。
從最高捕捉時鐘可知,每次采集間隔在1 165M,約為6.1 ns.經計算,也為了設計方便,擬采用三個幀頻均為200 f/s的Base配置的Camera Link相機,幀頻控制均為外部觸發方式,該Camera Link相機一次輸出兩個像素,每像素12 b,即2×12 b,剛好可以和VIP0的24 b匹配采集。以三路信號分時采集為例,如圖3所示,3路信號的采集方法為3個相機輪流采集,即一個循環內每個相機各采一幀,這就需要實現3路分時采集的時序信號。由定時器產生一個1/200 s的脈寬,經延時環節使幀頻高電平分時分路送入三個相機;3路采集信號時序關系為一個相機不進行延時,一個相機延時1/200 s,最后一個延時2/200 s.
相機通過DS90LV047A收到指令后,將拍攝到的圖像數據分為4路LVDS數據信號和1路LVDS時鐘信號,通過接口連接器MDR26 傳輸到DS90CR288A;DS90CR288A 將串行數據轉換成28 路并行信號和1 路隨路時鐘信號,并傳送至TMS320DM8168視頻捕捉端口VIP0進行采集。
2.3 圖像存儲模塊
從上述設計方案,系統存儲速率約為160 MB/s,數據量較大,可選擇大容量、高速的固態硬盤,通過其SATA2接口寫入。
數據采集結束后,通過配置HDVPSS子系統將數據送入VPDMA,最后轉入DDR 內存,當DDR 內存的數據量達到設定的數據量時產生中斷,中斷發生后,根據存放地址啟動內存和固態硬盤之間的DMA 傳輸,將采集的圖像通過SATA2接口存儲在SSD上,實現數據存儲。
然后啟動定時器產生下一個幀頻脈沖,開始下一周期的數據采集。
外部擴展存儲器選取系統支持的DDR3(1 600)存儲器。按照系統存儲控制器位寬32 b 來算,內存速率可達32/8×1 600M=6.4 GB/s.在該模式下,采集和存儲可并行處理。緩存所采集的數據移動到DDR3內存,其速率遠高于端口采集的每秒數據量。因為該方案的采集方式是每幀輪流采集,并且幀內數據已按順序緊湊排列,可大幅減少數據的重排工作,僅需去除一些輔助數據。采集系統將其余相關信號全部置成一幀一行的形式,讓相機的時鐘信號與系統采集端口的時鐘信號通信,圖像信號前有少量的輔助數據,設置DMA起始地址時直接跳過輔助數據。所以在本系統幾乎不運行程序的情況下,固態硬盤可以最少有80%的時間占據DMA控制權進行內存圖像數據的存儲。按所選取的硬盤的持續寫入速率250 MB/s 來算,250×0.8=200 MB/s 大于160 MB/s,所以1 s采集的數據可以進行實時存儲。數據上傳后,可以選擇清除原有數據,釋放硬盤空間。
2.4 外圍接口模塊
基于TMS320DM8168芯片豐富的外設接口,本系統能夠靈活的進行外部接口設計來控制外圍設備,并實現與外部處理器的通信功能。根據需求可供選取的接口有:2 個具有GMII 和MDIO 接口的千兆位以太網MAC(10 Mb/s,100 Mb/s,1 000 Mb/s);2個具有集成2.0 PHY的USB端口;雙DDR2/3 SDRAM接口等,可參考圖2.
TMS320DM8168 的兩個USB 口可滿足將采集的圖像數據上傳給上位機時連接鍵盤鼠標,LCD、VGA 接口可用來直接顯示圖像。串口亦可用來同上位機進行通信,且可用來控制本設計方案用到的Camera Link 相機。千兆網接口以其超高的速率可滿足圖像數據的高速傳輸。
上述技術的實現主要通過軟件編程驅動外設接口來實現,具體方案見軟件設計。
3 軟件設計
本系統采用Linux操作系統,帶有友好的界面,使操作更加靈活自如,能運行多任務。可以通過界面進行相機控制、圖像的采集、停止、顯示、圖像上傳等。這部分的開發可由兩部分組成,移植和自主開發。軟件設計如圖4所示。
3.1 移植的程序
移植的程序包括Linux內核、網卡驅動、USB 2.0驅動、LCD驅動、串口驅動、VGA驅動、SATA2驅動。在這個方面,TI 公司提供了很好的支持,有專門針對DM8168的Linux操作系統,版本為Linux 2.6.37,可以通過TI公司提供的Linux EZ 軟件開發套件(EZ SDK)進行開發。
3.2 自主開發的程序
3.2.1 驅動程序
為了規范地在Linux操作系統下操作,圖像采集的電路部分需要圖像采集應用程序相關的驅動程序進行支持。采集電路可分為多個功能模塊分別進行驅動程序的編寫,其中包括相機采集驅動(相應于VIP0進入數據后的操作);控制驅動(相應于對Timer進行控制);如果要根據外界環境改變相機工作狀態,還需該部分驅動支持。采集驅動實現open,close 方法。控制部分實現open,close,ioctl 方法。自適應速率調整要實現open、close、ioctl、read 方法。在/DEV 目錄下分別建立設備節點,然后應用程序通過對設備節點進行操作。
3.2.2 應用程序
應用程序的開發擬采用QT開發工具。應用程序擬設計成一個多線程程序,一個主線程,一個自適應調節參數線程,應用程序主要實現采集程序,停止,顯示,配置,上傳程序,分別對應于相應按鈕。
采集按鈕相應程序調用設備節點的open方法,open方法中對相應硬件進行配置,注冊中斷程序,啟動Timer開始采集。流程如圖5所示。
因為系統已經帶有串口驅動,配置程序可以直接對串口編程。自適應環境速率調整程序由主界面程序開啟一個新線程,該線程通過相應設備節點讀取數據,判斷是否調整,如需調整,通過上面所述串口設備節點或者控制設備節點進行重設。
4 結語
本文所構建的機器視覺系統是一個具有操作系統的獨立、可控制的小型多功能系統,通過硬件設計和軟件設計兩部分實現,其功能模塊包括視頻圖像采集與處理、視頻圖像存儲、視頻圖像通信和視頻圖像顯示等模塊。采用先進的雙內核嵌入式處理器,將多路圖像傳感器獲取的視頻圖像信號高速并行采集,并根據需要進行圖像無損壓縮和圖像融合,數據可大容量實時存儲,并通過多種接口與上位機通信,具有友好的人機交互界面,可驅動多種顯示屏幕完成高清顯示和信息回放等功能。
由于該平臺具有Linux操作系統,無需上位機即可完成系統參數設置、功能選擇等操作。該系統可為機載、彈載、車載光電系統完成高速掃描、快速探測、主動識別、精確跟蹤任務提供所需要的高清目標信息,并有望在平安城市、安防行業、工業控制、醫療教育、物流管理、電網運行、智能家居、智能汽車、食品安全等多領域得到應用。
-
芯片
+關注
關注
456文章
50936瀏覽量
424671 -
嵌入式
+關注
關注
5086文章
19143瀏覽量
306093 -
機器視覺
+關注
關注
162文章
4388瀏覽量
120434
發布評論請先 登錄
相關推薦
評論