基于DM642機器視覺系統(tǒng)的設計與實現(xiàn)
摘要:針對機器視覺算法中數(shù)據(jù)量大、高速傳輸、復雜運算及網(wǎng)絡化的實際需要,設計了以AD9200為視頻采集A/D,DSPsTMS320DM642為核心處理器,應用網(wǎng)絡技術進行圖像傳輸,并以FPGA控制輸出并實現(xiàn)圖像預處理功能的實時視頻處理系統(tǒng)。
關鍵詞:機器視覺、TMS320DM642、以太網(wǎng)
1、引言
機器視覺自起步發(fā)展到現(xiàn)在,已有15年的發(fā)展歷史。應該說機器視覺作為一種應用系統(tǒng),其功能特點是隨著工業(yè)自動化的發(fā)展而逐漸完善和發(fā)展的。
目前,國際上視覺系統(tǒng)的應用方興未艾,1998年的市場規(guī)模為46億美元。在國外,機器視覺的應用普及主要體現(xiàn)在半導體及電子行業(yè),其中大概40%-50%都集中在半導體行業(yè)。具體如PCB印刷電路。主要的機器視覺公司諸如德國克朗斯公司,美國的工業(yè)動力機械有限公司等等。
而在國內(nèi),工業(yè)視覺系統(tǒng)尚處于概念導入期,導致以上各行業(yè)的應用很少,即便是有,也只是低端方面的應用,大多數(shù)國內(nèi)公司多代理國外公司產(chǎn)品,自主研發(fā)的相對較少,這樣產(chǎn)品在國內(nèi)售價相對很高,導致很多工廠在權衡利弊之后,放棄了使用機器視覺的想法。
但隨著我國配套基礎建設的完善,技術、資金的積累,各行各業(yè)對采用圖像和機器視覺技術的工業(yè)自動化、智能化需求開始廣泛出現(xiàn),同時也由于視頻采集系統(tǒng)硬件產(chǎn)品的價格下降,國內(nèi)有關大專院校和研究所近兩年在圖像和機器視覺技術領域進行了積極思索和大膽的嘗試,逐步開始了工業(yè)現(xiàn)場的應用。另外,各行業(yè)的領先企業(yè)在解決了生產(chǎn)自動化的問題以后,已開始將目光轉向視覺測量自動化方面。這些應用大多集中在如藥品檢測分裝、印刷色彩檢測等。真正高端的應用還很少,因此,以上相關行業(yè)的應用空間還比較大。
嵌入式系統(tǒng)和網(wǎng)絡化是機器視覺系統(tǒng)發(fā)展的兩個趨勢:
1) 嵌入式系統(tǒng)使得數(shù)據(jù)采集、自動控制和圖像檢測集成得更加緊密,另外基于嵌入式系統(tǒng)的機器視覺系統(tǒng)具有極低的功耗。
2) 網(wǎng)絡化是嵌入式系統(tǒng)的發(fā)展趨勢,其在工業(yè)自動化領域的應用也越來越廣泛,機器視覺于網(wǎng)絡通信等先進技術的結合正在改變工業(yè)自動化生產(chǎn)的面貌。
當前,機器視覺與運動控制,網(wǎng)絡通訊等先進技術的結合正在改變工業(yè)自動化生產(chǎn)的面貌,而同時具備運動控制,機器視覺,網(wǎng)絡通訊幾方面技術背景的企業(yè)無疑將走在前列。
2、系統(tǒng)硬件設計
本次設計以啤酒瓶檢測為設計背景,結合機器視覺的這兩大發(fā)展趨勢,開發(fā)以TI公司TMS320DM642為核心的嵌入式系統(tǒng),并應用以太網(wǎng)技術進行圖像傳輸。
設計模塊示意圖:
2. 1視頻采集模塊
模擬視頻信號采用非標準制式,相機工作在外觸發(fā)方式下,由FPGA提供觸發(fā)信號,每觸發(fā)一次,相機傳送一場信號。進入電路板的視頻信號幅值為1V,先經(jīng)過視頻運算放大器EL4089放大并嵌位,使幅值升為2V.之后信號分兩路,一路送ISL59885視頻同步分離芯片產(chǎn)生行同步、場同步信號,一路經(jīng)AD9200進行模數(shù)轉換。將視頻信號解碼出行同步、場同步及8位的亮度信號送入FPGA模塊。
2. 2 FPGA模塊
Altera公司的EP1K100系列是性價比較高的可編程邏輯器件,它具有10萬等效系統(tǒng)門,核電壓為2.5V,端口電壓兼容5V、3.3V,工作頻率可達250MHz,可滿足本卡多電壓高頻率工作要求。
這一部分主要負責整個板卡的邏輯控制,時序調(diào)整。FPGA接收視頻的行、場同步及亮度信號,并在FPGA中進行圖像的預處理,可以在FPGA中進行二值化、sobel邊緣分割、中值濾波。將處理后的亮度信號送入DM642的視頻口。由于ISL59885產(chǎn)生的行同步信號每兩行分離出一個,為了正確的采集,F(xiàn)PGA須在每兩個行同步的中間加入一個行同步信號,送往DM642的視頻口。另外FPGA還負責視頻采集部分的采樣頻率、嵌位信號的產(chǎn)生,并行IO控制信號的產(chǎn)生,以及串行接口部分通信協(xié)議RS-232、RS-442的選擇等等。
2.3 DM642模塊與存儲模塊
2.3.1 TMS320DM642模塊:
DM642是TI公司新近推出的一款應用于視頻和圖像處理方面的芯片,他采用TMS320C64X系列DSPs的內(nèi)核,集成了一些面向視頻及圖像處理的外圍設備,例如集成了三個可配置的視頻口,10/100Mbps Ethernet MAC,多通道串行音頻接口(McASP)及66MHz32位PCI總線。TMS320DM642采用TI公司開發(fā)的第二代高性能超長指令字結構VelociT1.2TM,在每個時鐘周期內(nèi)可執(zhí)行2個16*16位的乘法或4個8*8位的乘法。TMS320DM642內(nèi)含6個算術邏輯單元,在每個時鐘周期內(nèi)都可執(zhí)行2個16位或4個8位的加減比較移動等運算。在600MHz的時鐘頻率下,DM642每秒可以進行24億次16位的乘累加或48億次8位的乘累加。這樣強大的運算能力,使得DM642可以進行實時的多視頻處理和圖像處理。
本設計利用視頻口進行圖像采集,用以太網(wǎng)接口實現(xiàn)圖像傳輸。
視頻口能夠支持BT.656、HDTV Y/C、MPEG-2 Transport stream input等多種格式的視頻數(shù)據(jù)的輸入輸出。本次設計采用逐行掃描且只采集亮度數(shù)據(jù),視頻口工作在YcbCr 4:2:2方式下。視頻口與DM642的EDMA結合,每采集一行圖像數(shù)據(jù)便啟動一次EDMA同步事件,將數(shù)據(jù)從接收FIFO中倒到SDRAM中暫存下來。一場圖像數(shù)據(jù)采集之后,采用EDMA鏈接自動重新配置EDMA參數(shù)。整個圖像采集只消耗極少的CPU時間,使CPU能夠把精力集中到后面的圖像處理工作中。
2.3.2 存儲器模塊
外擴了SDRAM及FLASH兩種存儲器。
1 )SDRAM存儲器
在CE0空間連接了64bit的SDRAM總線。選取2片48LCHM3282來構成SDRAM。這32M的SDRAM空間用來存儲程圖像數(shù)據(jù)和圖像處理中間結果等信息??偩€由外部PLL驅動設備控制,在133MHz的最佳運行狀態(tài)下運行。SDRAM的刷新由TMS320DM642自動控制。
2 )FLASH存儲器
本系統(tǒng)擴展了1M的FLASH,映射在CE1空間的低位。FLASH存儲器選用1M*8的MBM29DL800。FLASH存儲器主要用于DSPs程序的存儲。CE1空間被配置成8bit,異步接口,F(xiàn)LASH存儲器也是8bit。復位后的默認地址是000,并進行1K數(shù)據(jù)的上電自動引導。
2. 4 以太網(wǎng)模塊
DM642上的EMAC接口為DSP處理內(nèi)核與網(wǎng)絡提供了一個有效的接口。他支持10Base-T、100 Base-TX,可工作在10Mbits/second 和 100Mbits/second的速度下進行全雙工或半雙工傳輸。并提供硬件流量控制和QOS支持。
DM642的EMAC接口支持到計算機網(wǎng)絡協(xié)議的數(shù)據(jù)鏈路層,支持標準的MII接口(媒體無關接口)與物理層設備相連。物理層設備使用BROADCOM公司的BCM5221,加Pulse公司的1:1型隔離變壓器H1102。
網(wǎng)絡圖像及控制信息的傳輸采用非面向連接的UDP協(xié)議,對于480*480大小的8位灰度的圖像,每秒可傳送20幅。
2. 5 IO模塊與串行接口模塊
IO接口由FPGA控制,用于向機械部分、自動控制部分發(fā)送控制信號,并行IO接口有兩路,一路經(jīng)LV162245驅動輸出,一路經(jīng)光耦進行隔離輸出。
串行接口使用TI公司的TL16C752B UART,他與ST16C550 UART引腳兼容,并具有更大的發(fā)送、接收FIFO緩存(發(fā)送、接收各64Byte ),支持硬件、軟件流量控制。電平轉換采用MAXIM公司的MAX3160,RS-232、RS-485、RS-422等多種傳輸協(xié)議。
3、FPGA實現(xiàn)圖像預處理算法
以FPGA實現(xiàn)3*3 Sobel邊緣檢測為例,介紹FPGA實現(xiàn)圖像預處理的方法。
首先,應從視頻信號中提取出3*3 大小的圖像框。須使用三個FIFO,其大小與一行像素大小相同,將三個FIFO串行連接在一起。用視頻信號的前三行充滿三個FIFO,之后每來一個像素在寫入FIFO的同時,從每個FIFO中讀出一個像素的亮度值,分別放入三個移位寄存器。如此,在三個像素點之后就得到一個3*3的矩形框。隨著視頻信號的不斷流入,矩形框將遍歷整個圖像區(qū)域。
之后,就可以對提取出來的像素點,進行各種算法的處理。
以下是用Verilog語言描述的3*3 Sobel算子:
wire[10:0] temp1,temp2,temp3,temp4;
wire[7:0] sobel1,sobel2,sobel3,sobel4;
wire[7:0] dataout;
assign temp1 = temp[1] + temp[2] + temp[3];
assign temp2 = temp[7] + temp[8] + temp[9];
assign temp3 = temp[1] + temp[4] + temp[7];
assign temp4 = temp[3] + temp[6] + temp[9];
assign sobel1 = (temp1>temp2)?(temp1-temp2):0 ;
assign sobel2 = (temp3>temp4)?(temp3-temp4):0 ;
assign sobel3 = (sobel1>8’d 255) ? 8’d255 : sobel1;
assign sobel4 = (sobel2>8’d 255) ? 8’d255 : sobel2;
assign dataout[7:0] = ((sobel3 > sobel4)?sobel3[7:0]:sobel4[7:0]);
其中,考慮到了數(shù)據(jù)計算的溢出或結果為負值的情況,邊緣檢測效果良好。
4、結束語
本次設計為機器視覺系統(tǒng)搭建圖像處理部分的硬件平臺,結合機器視覺系統(tǒng)發(fā)展的兩大趨勢:嵌入式系統(tǒng)與網(wǎng)絡技術?;诿绹轮輧x器公司新近推出的6000系列DSPs芯片TMS320CDM642,利用TMS320DM642芯片上提供的Video Port和Ethernet Media Access Controller實現(xiàn)視頻采集與網(wǎng)絡技術的結合。利用在線可編程技術,在FPGA中實現(xiàn)必要的圖像預處理算法,減輕TMS320DM642的負擔,為后續(xù)的圖像實時檢測打下了良好的基礎。
本次設計實現(xiàn)了對于480*480的灰度圖像,通過以太網(wǎng)進行25 Frames/s的流暢的傳輸。
以下為FPGA實現(xiàn)的Sobel邊緣提取算法的效果:
圖3.原始圖像與Sobel邊緣提取后的圖像
創(chuàng)新觀點:
本文將機器視覺與網(wǎng)絡技術相結合,使用TI公司新近推出的6000系列DSPsTMS320DM642為核心,應用ALTERA公司的FPGA,用其實現(xiàn)圖像預處理,減輕了DSPs的負擔.應用網(wǎng)絡技術實現(xiàn)圖像傳輸.
參考文獻:
[1] 徐志軍,徐光輝.CPLD/FPGA的開發(fā)與應用. 北京:電子工業(yè)出版社,2002
[2]TI公司.TMS320DM642 Data Sheet.
[3]TI公司.TMS320C6000 DSP EMAC/MDIO Module Reference Guide.
[4]TI公司. TMS320C64x DSPVideo Port/VCXO Interpolated Control (VIC) Port Reference Guide.
[5]Samir Palnitkar. Verilog HDL數(shù)字設計與綜合(第二版).北京:電子工業(yè)出版社,2004
[6]李方慧,王飛,何佩琨.TMS320C6000系列DSPs原理與應用(第二版).北京:電子工業(yè)出版社,2003
[7]潘繼軍, C6000DSK的視頻處理系統(tǒng)設計,微計算機信息,2006年,第4-2期, P135-136
[8]王熹微,基于DM642的視頻編碼Cache優(yōu)化策略,微計算機信息,2005年,第9-2期