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