基于DSP和FPGA的機(jī)器視覺系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
網(wǎng)絡(luò)圖像及控制信息的傳輸采用非面向連接的UDP協(xié)議,對(duì)于480*480大小的8位灰度的圖像,每秒可傳送20幅。
2.5 IO模塊與串行接口模塊
IO接口由FPGA控制,用于向機(jī)械部分、自動(dòng)控制部分發(fā)送控制信號(hào),并行IO接口有兩路,一路經(jīng)LV162245驅(qū)動(dòng)輸出,一路經(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實(shí)現(xiàn)圖像預(yù)處理算法
以FPGA實(shí)現(xiàn)3*3 Sobel邊緣檢測(cè)為例,介紹FPGA實(shí)現(xiàn)圖像預(yù)處理的方法。
首先,應(yīng)從視頻信號(hào)中提取出3*3 大小的圖像框。須使用三個(gè)FIFO,其大小與一行像素大小相同,將三個(gè)FIFO串行連接在一起。用視頻信號(hào)的前三行充滿三個(gè)FIFO,之后每來一個(gè)像素在寫入FIFO的同時(shí),從每個(gè)FIFO中讀出一個(gè)像素的亮度值,分別放入三個(gè)移位寄存器。如此,在三個(gè)像素點(diǎn)之后就得到一個(gè)3*3的矩形框。隨著視頻信號(hào)的不斷流入,矩形框?qū)⒈闅v整個(gè)圖像區(qū)域。
之后,就可以對(duì)提取出來的像素點(diǎn),進(jìn)行各種算法的處理。
以下是用Verilog語(yǔ)言描述的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]);
fpga相關(guān)文章:fpga是什么
評(píng)論