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