趙冬青 孟宇航
(中北大學電子測試技術國家重點實驗室 太原 030051)
隨著電子技術的快速發展,機器視覺技術在目標檢測、尺寸測量、PCB 缺陷檢測等領域發揮著越來越重要的作用[1~4]。圖像采集系統為機器視覺系統提供了圖像來源,而且正在向高速度和高實時性的趨勢發展[5]。為滿足機器視覺系統進行圖像處理時對實時采集清晰圖像的需求,根據CMOS 圖像傳感器功耗低、速度快、噪聲低的優勢[6~8]和FPGA速度快、邏輯資源多、編程靈活、并行性高的特點[9~11],設計了一種高性能圖像傳輸采集傳輸系統。綜合考慮機器視覺系統在圖像處理時對實時性和分辨率的要求,系統需滿足圖像采集速率為90fps、圖像分辨率1280×1024的指標。
系統工作過程為上電復位后,FPGA 通過SPI接口配置圖像傳感器的工作模式、數據輸出通道數量等;配置完成后,傳感器開始采集圖像數據,經過FIFO 緩存后寫入DDR 進行緩存[12],最后讀出DDR中的數據并通過以太網傳輸至上位機中。因此,系統可分為主控、圖像采集、DDR 控制、網絡傳輸等模塊。圖像采集模塊使用PYTHON1300 作為圖像采集前端。由主控模塊通過SPI 接口配置傳感器內部寄存器,令傳感器內部時鐘頻率為72MHz,輸出圖像同步信號、同步時鐘信號和10 位圖像數據;DDR 控制模塊負責接收圖像同步信號和圖像數據,接收完成后對圖像數據添加以太網包信息,根據圖像同步信號控制DDR 緩存圖像數據,并控制DDR 將圖像數據輸出至網絡傳輸模塊,同時根據主控模塊發出的重傳地址重新傳輸圖像數據;主控模塊接收網絡傳輸模塊的配置命令并以此控制圖像傳感器,同時接收網絡傳輸模塊發送的重傳命令,將命令解碼后得到的需重傳圖像地址輸出至DDR 控制模塊;網絡傳輸模塊將打包后的圖像數據通過千兆以太網傳輸至上位機進行顯示,同時接收上位機傳送的增益、分辨率、曝光等配置命令并傳給主控模塊。若上位機接收數據時發生錯誤,則網絡傳輸模塊會接收上位機下發的重傳命令并輸出至主控模塊[13]。圖像采集傳輸系統總體設計如圖1所示。

圖1 圖像采集傳輸系統總體方案設計
為便于控制圖像采集的時序,采用傳感器的觸發快門模式,通過控制TRIGGER0來控制傳感器對圖像數據的采集和輸出。當檢測到TRIGGER0 上升沿時,傳感器開始采集圖像、轉換成數據并通過LVDS數據通道輸出。
傳感器輸出圖像數據之前首先通過sync 通道輸出IMG 信號,此時FPGA 開始讀取圖像數據并緩存至FIFO 中。傳感器輸出像素的順序為從左上到右下。輸出圖像以核為單位,一個核由水平方向的從左到右8 個像素組成,每個數據通道輸出屬于核的兩個相鄰像素。當輸出圖像時,若為奇數核,則輸出從核的右側到左側的像素,若為偶數核,則輸出從左側到右側的像素。因此,需要先調用FPGA的片內RAM 對接收到的像素進行排序再存入DDR3 中。首先將采集到的圖像數據保存到RAM中,保存8 個像素之后,將像素按圖像數據的順序依次輸出。
由于DDR3 的寫入時鐘頻率和數據位寬與圖像傳感器的發送數據時鐘和數據輸出接口位寬均不同,因此先用FPGA的內部FIFO緩存數據再寫入DDR3[14]。
當FIFO 不為空時,通過向DDR 傳輸寫命令將FIFO中的圖像數據存入DDR3中,在寫入數據的同時計數;當FIFO 中沒有數據時則停止寫操作,根據計數結果判斷寫操作是否完成。當FPGA 發出讀取信號時,根據圖像在DDR 中的地址向DDR 寫入讀命令讀取圖像數據,由于DDR 和網絡傳輸模塊的輸入接口位寬和工作時鐘頻率都不相同,所以先使用FIFO 緩存讀取的圖像數據,再輸出至網絡傳輸模塊[15]。圖2為圖像緩存的邏輯設計圖。

圖2 圖像緩存的邏輯設計圖
由于圖像傳感器的分辨率為1280×1024,配置的幀速率為90fps,所以采集一副圖像需要11ms,像素深度為8 位,每秒可以采集112.5MB 的數據。DDR3 實際數據吞吐量約為640MB/s,讀取一幅圖像消耗時間為2ms。采集的圖像如圖3所示。系統輸出的圖像數據可正常顯示且無明顯時滯。

圖3 上位機顯示的傳感器采集的圖像
本設計使用了高速、小體積、低功耗的PYTHON1300 圖像傳感器采集圖像,利用速度快、資源多的FPGA 控制系統運行,采用傳輸速度快、穩定性好的千兆以太網傳輸數據及命令。系統功耗低、數據準確且不易丟失,體積小,可移植性好且占用空間小,采集和傳輸圖像速度快,達到項目設計要求。