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