崔榮麗,王連明
(東北師范大學物理學院,吉林 長春 130024)
基于CCD的實時成像與微小尺寸測量系統的設計
崔榮麗,王連明
(東北師范大學物理學院,吉林 長春 130024)
設計了一種基于CCD的實時成像與微小尺寸測量系統,該系統由CCD攝像頭、視頻解碼芯片、FPGA、USB芯片和上位機組成.用FPGA控制視頻解碼芯片獲取CCD攝像頭采集的光學信號,通過USB傳給上位機,利用多線程技術實現控制命令的發送、圖像數據的接收、處理和顯示,以及微小尺寸的測量.結果表明:經過多次測量實驗得到系統誤差不超過3 μm,滿足測量精度要求;通過選用不同分辨率的CCD,可以實現不同精度的微小尺寸測量.此外還對雙棱鏡干涉實驗所形成的干涉條紋間距進行了測量,驗證了系統的功能.
CCD;FPGA;TVP5150;USB;實時成像; 微小尺寸測量
隨著科學技術的發展和社會的需求變化,零件生產領域對產品測量方面提出了更高的要求.傳統的測量中,大多測量人員是通過調節測微目鏡,利用人眼判讀干涉條紋間距,這種測量方法不僅效率低、費時、受人為因素影響大,且在低照度環境下測量,對人眼傷害極大,如全息干涉法[1-2]、散斑剪切干涉法[3]等.文獻[4]基于圖像處理的方法對精密零件尺寸的檢測進行了研究,檢測精度達到了0.1 μm,可以滿足檢測要求,但是計算速度相對比較慢;文獻[5]設計了基于機器視覺的螺紋參數檢測系統,該系統操作簡單,但是檢測精度不高;文獻[6]展開了對銜鐵零件相關參數的尺寸檢測研究,并取得了一定的成果,但是由于邊緣檢測和尺寸計算算法不是很完美,系統運行的速度不高.
為了滿足在低光照環境下進行實時成像采集的要求,本文采用具有集成度高、體積小、功耗低、分辨率高、可靠性高、圖像畸變小、尺寸重現性好、照度低等優點[7]的CCD(Charge-coupled Device)攝像機,設計了一種實時成像與微小尺寸測量系統,該系統具有實時成像、非接觸測量、測量范圍廣、測量精度高等優點,可以廣泛地應用于多種微小尺寸的精密測量場合,如生絲細度的測量[8]、零件尺寸的測量[9]、鋼板幾何尺寸的測量[10]、干涉條紋間距的測量[11]等,具有很高的應用價值.
實時成像與微小尺寸測量系統主要由CCD攝像頭、視頻解碼芯片、FPGA(Field-Programmable Gate Array)、USB(Universal Serial Bus)芯片和上位機軟件等5部分組成,如圖1所示.其中FPGA通過I2C總線(scl時鐘線,sda數據線)進行TVP5150芯片的配置,上位機通過USB向FPGA發送控制命令.光學系統產生的光學信號由于光強分布的不同,在CCD上呈現一幅與入射光強分布成正比的圖像,信號經過視頻解碼芯片TVP5150解碼后,以SCLK設定的頻率將圖像數據發送到FPGA,FPGA對數據進行處理后通過USB將處理后的CCD圖像數據實時傳輸到上位機.
系統整體工作分為控制命令發送過程、成像數據采集過程和測量過程.控制命令發送過程:用戶通過上位機軟件將采集圖像數量和類別的控制命令通過USB發送給FPGA,FPGA接收并保存控制命令.然后,通過點擊上位機的“開始預覽”按鈕啟動成像數據采集過程;FPGA將控制命令處理后的圖像數據通過USB發送給上位機,上位機實時處理接收到的數據并顯示,將其保存為BMP圖像;將存儲的圖像顯示在圖像顯示區,用戶任意選取圖像上的兩點,系統會根據該位置的坐標和CCD水平、垂直方向上的標定系數分別計算出兩點在水平、垂直方向上距離.

圖1 系統框架與硬件連接框圖
本文系統的攝像頭由0.85 cm的PAL制式CCD圖像傳感器芯片ICX673AK組成,其有效像素為976像素×582像素,具有照度低、靈敏度高、信號飽和度高、分辨率高、反曝光好等優點.[12-13]
視頻解碼芯片選用TI公司的TVP5150芯片,該芯片擁有8位數據總線,分別為8位4∶2∶2格式和8位4∶2∶2 ITU-R BT.656(同步嵌入數據頭)輸出格式,具有13.5和27 MHz頻率數據輸出.它將CCD攝像頭輸出的模擬視頻信號轉換成數字信號后傳給主控制器FPGA進行處理,支持PAL、NTSC、SECAM 3種格式的模擬信號解碼,具有操作簡易、功耗超低、封裝尺寸小的特點.[14-15]這些特點滿足了系統低功耗、小型化和集成化的要求.
為了實現快速數據傳輸,采用USB接口進行上位機和下位機的數據傳輸.系統選用Cypress公司的EZ-USB FX2系列的CY7C68013A芯片作為FPGA與上位機的接口芯片.該芯片有端口、GPIF和SLAVE FIFO接口方式,最高數據傳輸率可以達到480 MB/s,完全滿足視頻采集的速度要求.[16-18]系統設置USB在同步SLAVE FIFO模式下工作.
FPGA是下位機的控制核心,主要通過I2C總線配置TVP5150、視頻數據采集與處理、讀寫USB 3種功能實現.
TVP5150的配置是通過I2C(芯片間總線)接口實現的.I2C總線采用兩線制,由一根數據線sda和一根時鐘線scl實現全雙工同步的數據傳輸.數據通過數據線sda發送,sda數據線上的值在scl時鐘線為低電平時改變,在scl時鐘線為高電平時保持不變.本文實現了I2C控制器的構建,并通過I2C總線實現FPGA對 TVP5150的相關寄存器進行配置.具體步驟:(1)主機發送I2C的開始信號;(2)主機發送芯片地址0xBA;(3)從機應答;(4)主機發送TVP5150內部寄存器地址0x03;(5)從機應答;(6)主機向TVP5150內部0x03寄存器寫0x09;(7)從機應答;(8)主機I2C發送停止信號.
用Signal Tap Ⅱ抓取的FPGA配置TVP5150的I2C時序圖如圖2所示.配置完成后,數據以27 MHz 頻率按符合ITU-R BT.656標準8位4∶2∶2 YCbCr格式[18]串行輸出,且同步信號內嵌于數據流中.同時,FPGA以27 MB/s的速度采集視頻數據.

圖2 FPGA配置TVP5150 的I2C時序圖
根據上位機的控制命令和視頻數據的輸出格式,FPGA對視頻數據進行轉換和選擇性處理.視頻轉換的實現方式:采用一個16位的寄存器data_8_16,連續2次讀取視頻數據并輸入引腳data_out_5150[7∶0]的值,將得到的數據分別輸入到寄存器data_8_16的低8位和高8位上,并將寄存器data_8_16的值賦給FPGA的視頻數據輸出引腳data_inout[15∶0],最后數據經過USB傳送到上位機.根據功能要求,系統可選擇顯示和保存彩色、灰度或者黑白圖像.為了節約資源,提高傳輸效率,FPGA會根據控制命令選擇性的發送視頻數據.若控制命令為顯示和保存彩色圖像,則直接通過USB發送給上位機;若控制命令為顯示和保存灰度或黑白圖像,則經轉換后視頻數據進行選擇處理,即不發送Cb和Cr數據,而只將Y數據上傳.
FPGA通過狀態機和輔助使能信號完成USB的讀寫工作.FPGA 讀寫USB的狀態圖如圖3所示.系統通過設置寄存器rd_or_wr_en來控制讀寫USB,若寄存器rd_or_wr_en為“0”,表示使能FPGA讀取USB FIFO內來自上位機的數據,具體過程由State1至State4完成;反之,表示使能FPGA向USB FIFO中寫入需要上位機接收的數據,具體過程由State5至State8完成.

圖3 FPGA讀寫USB狀態圖
系統復位后,程序將寄存器rd_or_wr_en 賦值為“0”,進入狀態Idle并啟動讀事件.在State1下,FPGA將輸出引腳u_addr0,u_addr1均賦值為“0”,使FIFOADR[1∶0]指向USB的FIFO輸出緩沖區,然后進入State2.在State2下,將輸出引腳u_sloe賦值為“0”,使SLOE有效并通過檢測引腳u_flagc的值來判斷USB的FIFO輸出緩沖區是否為空(即EMPTY).若為“0”,則在State2等待,否則跳轉到State3.在State3下,將輸出引腳u_slrd賦值為“0”,使SLRD有效,持續一個IFCLK周期以遞增FIFO讀指針,讀取到上位機發送來的數據后進入狀態State4,判斷是否為控制命令數據,若是控制命令數據則將寄存器rd_or_wr_en賦值為“1”,然后進入狀態Idle并啟動寫事件,否則回到State2繼續讀取數據.
啟動寫事件后程序跳轉到State5,在State5下,將u_addr0賦值為“0”,u_addr1賦值為“1”使FIFOADR[1∶0]指向USB的FIFO輸入緩沖區,然后跳轉到State6.在State6下,通過檢測引腳u_flagb的值判斷USB的FIFO輸入緩沖區是否為滿(FULL).若為“0”,則在該狀態等待,否則進入State7.在State7下,驅動數據到數據線上并將u_slwr賦值為“0”,使SLWR有效,持續一個IFCLK周期后進入State8.如果需要傳輸更多的數據,則進入State6,否則進入End.
上位機是系統和用戶之間的橋梁,主要負責控制參數的配置、圖像采集的開始與結束、圖片的保存以及尺寸的測量.本文采用C++語言進行編寫上位機程序,使用Microsoft Visual C++作為軟件開發平臺,通過多線程調用的方式,實現了控制命令的發送、圖像數據的接收、圖像數據的處理和顯示以及微小尺寸測量.
在上位機軟件的設計中,共設置1個線程和3個輔助線程.1個主線程負責用戶界面,處于中樞地位,其生存周期是整個用戶程序的生存期.3個輔助線程的功能為:WriteThread線程負責配置數據的發送,ReadThread線程負責圖像數據的采集,DataThread線程負責數據的處理和顯示.輔助線程是在主線程運行過程中產生的,它的生存期就是線程函數本身,函數一旦return,線程結束.主機通過在bOpenDriver函數中調用CreateFile函數獲得USB設備的控制句柄并打開USB設備,hDevice為得到的設備句柄,程序退出時,需要調用CloseHandle(hDevice)函數釋放USB設備句柄.得到的設備句柄后調用DeviceIoControl函數實現對USB設備的讀寫數據操作.DataThread線程處理程序包括將YCbCr格式數據轉換成RGB格式,將轉換后的數據顯示在圖像顯示區,存儲為BMP圖像,自動計算閾值實現圖像二值化.尺寸測量是在實時數據采集結束后,在存儲圖像路徑下,選取合適的圖像顯示在圖像顯示區,并在顯示區域中利用鼠標先后按下兩點,進行間距測量.測量兩點間的水平所占像素數和垂直所占像素數,最后轉換成距離.

圖4 標定圖測試結果
視頻解碼芯片輸出的一幀圖像大小為864像素×625像素,其中一個像素代表2個字節,一幀圖像的大小為1.08 MB, TVP5150的數據傳輸速率為27 MB/s.該系統將USB設置為高速傳輸模式,采用13.5 MHz外部時鐘,具有16位數據線.經過測試,系統每秒鐘傳輸25幅圖像,滿足實時成像采集速度要求.
標定是指使用標準的計量儀器確定其準確度.本文選擇圖案尺寸6 mm×6 mm,方格尺寸0.25 mm 的棋盤格標定校準板進行系統標定,計算得出水平方向標定系數為6.55,垂直方向上標定系數為6.10.標定過程如圖4所示.經過多次測量實驗,得出系統測量誤差小于3 μm.
為驗證系統功能,本文系統對雙棱鏡形成干涉圖像的條紋間距進行實時測量,系統采集到的干涉條紋的彩色、灰度和黑白圖像見圖5.

圖5 系統采集的彩色、灰度和黑白圖像
條紋間距測量方法:通過鼠標選取圖像中水平方向比較清晰的2個條紋(選條紋中心),并通過圖像處理方法計算水平方向上2個條紋之間的間距個數Nh以及Nh個條紋間距所占的總像素數Mh.已知CCD的水平方向的標定系數Rh,根據
Sh=Rh*Mh
(1)
求出Nh個條紋間距對應的實際距離Sh.根據
Lh=Sh/Nh
(2)

圖6 測試圖像
求出水平方向上的平均條紋間距Lh.
對干涉圖像進行條紋間距測量的實驗結果如圖6所示.通過圖像處理可獲得水平方向10個條紋間距,即Nh=10,所占像素數為377,即Mh=377.已知CCD的水平方向的標定系數Rh為6.55,由公式(1)得出Sh=2 469.4 μm,由公式(2)得到Lh=246.9 μm.垂直方向的距離計算方法與水平方向的距離計算方法相同.
本文設計并實現了基于CCD的實時成像與微小尺寸測量系統,充分利用FPGA速度快、用戶定制電路配置靈活等優勢,搭配USB的高速數據傳輸模式實現了圖像數據的實時成像采集,傳輸速度可以達到25幀/s.通過對YCbCr格式圖像進行處理,實現了灰度、彩色、黑白的選擇性顯示或存儲,增加了系統的靈活性.系統實現了低照度環境下的光學信號采集和實時成像,并且根據標定得出的標定系數和待測微小尺寸所占像素個數,計算出待測微小尺寸的距離.該系統具有采集速度快、測量精度高、測量范圍廣、成本低且實用性強的優點,在光電測量領域具有非常廣闊的應用前景.
在系統測量微小距離過程,由于CCD成像畸變引起的系統誤差和手動選取測量點產生的人為誤差,使系統未能達到最佳精度.因此,使用圖像處理方法矯正畸變圖像,選取最優測量范圍并實現自動測距來提高系統精度是下一步的研究工作.
[1] 周燦林,亢一瀾.數字全息干涉法用于變形測量[J].光子學報,2004,33(2):171-173.
[2] 趙建林,譚海蘊.電子學全息干涉術用于溫度場測量[J].光學學報,2002,22(12):1447-1451.
[3] 朱中儒,張國平.數字散斑剪切干涉光學測距[J].華中師范大學學報(自然科學版),2001,35(3): 287-290.
[4] 楊光.基于機器視覺的精密零件尺寸檢測關鍵技術研究[D].沈陽:沈陽理工大學,2013.
[5] 楊益.基于圖像處理的機械零件幾何尺寸檢測方法研究[D].成都:西華大學,2011.
[6] 陳虹吉.基于圖像處理的機械零件尺寸檢測軟件設計[D].成都:電子科技大學,2013.
[7] 王忠立,劉佳音,賈云得.基于CCD與CMOS的圖像傳感技術[J].光學技術,2003,29(3):361-364.
[8] 劉鳳嬌,周望.生絲細度測量光學成像系統設計[J].激光雜志,2012,33(2):41-43.
[9] 苗世迪.基于計算機視覺的機械零件尺寸測量研究[D].哈爾濱:哈爾濱理工大學,2006.
[10] 郭偉.基于面陣CCD的鋼板幾何尺寸測量系統的研究[D].太原:太原科技大學,2013.
[11] 葛愛明,陳進榜,陳磊,等.量塊中心長度絕對測量中干涉條紋的自動判讀[J].南京理工大學學報, 2000,24(3):228-231.
[12] 吳福田,馮書文.CCD尺寸測量光學系統設計原理[J].應用光學,1994(5):20-24.
[13] 陳大勇.基于CCD的光學圖像采集處理研究[D].成都:電子科技大學,2010.
[14] 張新,張雯,賀云璐,等.TVP5150AM1芯片在視頻采集系統中的應用[J].西安郵電大學學報,2013, 18(4):51-54.
[15] TI TVP5150PBS.Ultralow-power NTSC/PAL encoder data manual [EB/OL].[2016-05-19].http://focus.ti.com/lit/ds/symlink/tvp5150.pdf.
[16] 馬俊濤,李振宇.Slave FIFO模式下CY7C68013和FPGA的數據通信[J].中國傳媒大學學報(自然科學版),2009,16(2):38-44.
[17] 吳磊,郭超平,申世濤.基于CY7C68013與FPGA的便攜式數據采集系統[J].計算機應用,2012,32(a01): 164-166.
[18] 孫軍文,肖金明,王中訓.基于FPGA的實時視頻信號處理平臺的設計[J].電子設計工程,2012,20(14): 163-165.
Designofreal-timeimagingandmicromagnitudemeasurementsystembasedonCCD
CUI Rong-li,WANG Lian-ming
(School of Physics,Northeast Normal University,Changchun 130024,China)
A real-time imaging acquisition and micromagnitude measurement system based on CCD is proposed in this paper.The system is composed of a CCD camera,a video decoder chip,a FPGA,a USB chip and a host computer.FPGA first controls video decoder chip to obtain the optical signal acquired by the CCD camera,and then sends it to the host computer through USB interface.By using multithread technology,the host computer achieves the transmission of control commands,the processing and display of the image data and the measurement of microstructures.The results show that the system error is no more than 3 μm after repeated measuring experiments.Moreover,the system can achieve micromagnitude measurement with different accuracy by using different CCD.Finally,by measuring the distance between interference fringes formed by double-prism interference,the function of the system is testified.
CCD;FPGA;TVP5150;USB;real-time imaging;micromagnitude measurement
1000-1832(2017)04-0049-05
10.16163/j.cnki.22-1123/n.2017.04.010
2016-05-19
國家自然科學基金資助項目(21227008);吉林省科技發展計劃項目(20130102028JC).
崔榮麗(1990—),女,碩士研究生;通信作者:王連明(1972—),男,博士,教授,主要從事智能信息處理及嵌入式系統領域研究.
TP 274.2學科代碼510·40
A
(責任編輯:石紹慶)