基于CPLD的線陣CCD數(shù)據(jù)采集系統(tǒng)的開發(fā)
本文結(jié)合實際應(yīng)用需要,設(shè)計了基于復(fù)雜可編程邏輯器件(CPLD)的線陣CCD數(shù)據(jù)采集系統(tǒng)。著重介紹了數(shù)據(jù)采集的特點及該系統(tǒng)軟、硬件設(shè)計和最后的性能評價。
線陣CCD(Charge Coupled Device)越來越廣泛地被應(yīng)用到工業(yè)、軍事、民用行業(yè)。采用CCD數(shù)據(jù)采集卡和微機相結(jié)合,對被測圖像信息進行快速采樣、存儲及數(shù)據(jù)處理,是線陣CCD數(shù)據(jù)采集發(fā)展的新方向。配以適當?shù)墓鈱W系統(tǒng),可以實現(xiàn)光-機-電-算一體化設(shè)計。
時序發(fā)生器(用于產(chǎn)生CCD驅(qū)動時序和視頻信號處理控制時序及I/O接口工作控制時序)的設(shè)計,是CCD數(shù)據(jù)采集電路設(shè)計的關(guān)鍵,也是CCD應(yīng)用的關(guān)鍵。隨著CCD的飛速發(fā)展,傳統(tǒng)的時序發(fā)生器實現(xiàn)方法(如小規(guī)模集成電路實現(xiàn)、用EPROM實現(xiàn)、基于單片機實現(xiàn)等)已經(jīng)不能夠很好地滿足CCD應(yīng)用向高速、小型化、智能化發(fā)展的需要。同時,簡單的二值化數(shù)據(jù)處理
方法更無法滿足CCD數(shù)據(jù)采集系統(tǒng)所需要的高精度、高分辨率的要求。因此,結(jié)合實際應(yīng)用需要,設(shè)計了基于復(fù)雜可編程邏輯器件(CPLD)的線陣CCD數(shù)據(jù)采集系統(tǒng)。該系統(tǒng)采用高速半閃速結(jié)構(gòu)A/D轉(zhuǎn)換器對視頻信號進行硬件處理;在此基礎(chǔ)上,將數(shù)據(jù)采集卡與PC機相結(jié)合,把數(shù)據(jù)采集卡采集到的數(shù)據(jù)經(jīng)計算機并口送至PC機;并采用直線擬合最小二乘法對采集到的圖像信息進行高精度處理,實現(xiàn)最終的設(shè)計目的。本設(shè)計被用于卷煙煙支長度、直徑智能在線檢測儀中。
1 數(shù)據(jù)采集系統(tǒng)的特點
本數(shù)據(jù)采集系統(tǒng)的特點主要有:
(1) 采用高集成度的EPM7064SLC44產(chǎn)生系統(tǒng)所需的驅(qū)動和控制時序邏輯;
(2) 由外部PC機控制CCD積分時間的大小及數(shù)據(jù)采集卡的工作過程,實現(xiàn)智能化控制;
(3) 應(yīng)用了內(nèi)帶采樣保持的8位高速并行輸出A/D芯片(TLC5510);
(4) 通過計算機并口高速傳輸數(shù)據(jù)信息;
(5) 采用直線擬合最小二乘法高精度定位CCD圖像的邊緣點。
2 數(shù)據(jù)采集系統(tǒng)的硬件電路設(shè)計
在本系統(tǒng)中,選定TCD142D線陣CCD作為圖像傳感器。本系統(tǒng)硬件電路主要由四部分構(gòu)成:①時序發(fā)生器;②CCD驅(qū)動電路;③CCD視頻信號處理;④I/O接口。在此設(shè)計中,TCD142D的工作頻率為1MHz。
2.1 系統(tǒng)時序發(fā)生器的設(shè)計1~2?
時序發(fā)生器主要產(chǎn)生驅(qū)動CCD工作的各驅(qū)動時序及CCD視頻信號處理所需的控制時序。TCD142D的工作時序如圖1所示。
圖1 TCD 142 D 工作時序圖
在本設(shè)計中,時序發(fā)生器產(chǎn)生的所有驅(qū)動和控制時序信號都是在MAX+PLUSⅡ開發(fā)環(huán)境下設(shè)計完成并經(jīng)編譯、校驗后在線下載到CPLD器件內(nèi)部的。合適的CPLD是根據(jù)實際需要在實驗過程中選定的。在該數(shù)據(jù)采集卡的設(shè)計中,選用一片MAX7000S系列芯片EPM7064SLC44來實現(xiàn)時序發(fā)生器的功能。該系列芯片是ALTERA公司典型的可通過JTAG在線編程的CPLD器件?;贓PM7064SLC44的時序發(fā)生器的工作原理框圖如圖2所示。外部時鐘信號作為CPLD時序發(fā)生器的基準信號,所有時序信號的產(chǎn)生都是以此為基礎(chǔ)的。EPM7064SLC44芯片內(nèi)部分為兩部分:一部分是視頻信號處理控制時序發(fā)生器,它為CCD視頻信號處理(如A/D轉(zhuǎn)換、數(shù)字信號存取等)提供各種同步控制時序;另一部分是CCD驅(qū)動時序發(fā)生器,它根據(jù)TCD142D的具體驅(qū)動時序邏輯的要求,產(chǎn)生CCD工作所需的四路驅(qū)動信號(RS、SH、φ1、φ2),并通過積分控制信號設(shè)定不同的CCD積分周期(積分周期可變范圍為4ms~64ms,變化步長為4ms;或2ms~32ms,變化步長為2ms),同時它還為視頻信號處理控制時序的產(chǎn)生提供時鐘控制信號。圖中操作控制命令主要用來控制數(shù)據(jù)采集系統(tǒng)的工作過程,該數(shù)據(jù)采集系統(tǒng)有三種工作狀態(tài):①數(shù)據(jù)采集系統(tǒng)初始化;②數(shù)據(jù)采集過程;③PC機讀取視頻信號過程。
.
圖2 時序發(fā)生器電路原理框圖
由圖2可以看出,一片CPLD可以替代原來的幾十個分立元件來實現(xiàn)CCD數(shù)據(jù)采集系統(tǒng)中各種驅(qū)動和控制時序邏輯,而且CPLD還允許設(shè)計編程保密位。采用CPLD有利于減小系統(tǒng)電路板的面積、提高系統(tǒng)的安全保密性、降低系統(tǒng)功耗和保證產(chǎn)品的質(zhì)量。總之,時序發(fā)生器的可編程特性使其能夠最大程度地滿足用戶的不同要求。
2.2 TCD142D驅(qū)動電路的設(shè)計
從EPM7064SLC44輸出的脈沖波形RS、SH、φ1和φ2是由基本TTL電路產(chǎn)生的,正邏輯為5V,負邏輯為0V,而TCD142D要求上述信號高電平為10~12V,低電平為0V;此外,CCD為電容性負載,工作頻率高時有一定的功耗,因此需對RS、SH、φ1和φ2進行電平轉(zhuǎn)換和驅(qū)動放大。在從CPLD的輸出引腳獲得上述邏輯時序后,通過集成驅(qū)動芯片DS0026將RS、SH、φ1、φ1這四路驅(qū)動脈沖驅(qū)動放大送至TCD142D的相應(yīng)輸入端以驅(qū)動CCD工作。這樣,在CCD的輸出端將得到與入射光強相對應(yīng)的模擬視頻信號,并且視頻信號的輸出得到了相應(yīng)的補償。
2.3 TCD142D視頻信號處理電路的設(shè)計
視頻信號處理電路的結(jié)構(gòu)框圖如圖3所示。
圖3 視頻信號處理框圖
由TCD142D輸出端OS輸出的視頻信號有以下特點:
負極性信號;
包含有周期性的復(fù)位脈沖串擾;
有效信號幅值較小,約為500 mV ;
CCD輸出視頻信號的上述特點決定了它不能夠直接送入PC機進行軟件處理,必須先從硬件上對其進行量化處理。模擬視頻信號在進行A/D轉(zhuǎn)換之前先要進行一系列的預(yù)處理,消除視頻信號中的驅(qū)動脈沖(主要是復(fù)位脈沖)及噪聲等所造成的干擾,將微弱的負極性視頻信號反向、放大。在電路設(shè)計中,選用了一片AD8031運算放大器,將視頻信號及其補償輸出分別送至差動放大器的反相和同相輸出端,在進行視頻信號放大的同時消除復(fù)位脈沖所造成的干擾,并將負極性視頻信號轉(zhuǎn)換成正極性。在AD8031的輸出端接一級RC濾波器,進一步濾除噪聲。經(jīng)過上述處理后的視頻信號被送入A/D轉(zhuǎn)換器進行量化。在該數(shù)據(jù)采集卡的設(shè)計中,選用8位、高速、并行、半閃速結(jié)構(gòu)ADC-TLC5510芯片完成A/D轉(zhuǎn)換工作,其內(nèi)部自帶采樣保持電路,這在一定程度上簡化了外圍電路的設(shè)計。只要設(shè)計合理,TLC5510的轉(zhuǎn)換速率(最小為20 MHz)完全可以滿足CCD(1 MHz)的工作要求。利用A/D轉(zhuǎn)換技術(shù)將視頻信號轉(zhuǎn)換成與之對應(yīng)的、能夠反映圖像灰度變化的數(shù)字量,提高了測量精度和分辨率;當TLC 5510的輸出使能有效時,就可以將A/D轉(zhuǎn)換結(jié)果送至8位數(shù)據(jù)線上。在數(shù)據(jù)存儲器(CY 6264)寫允許及地址有效的前提下,將8位A/D轉(zhuǎn)換結(jié)果實時地存入數(shù)據(jù)存儲器中。
2.4 I/O接口電路的設(shè)計
I/O接口電路的主要功能就是將數(shù)據(jù)采集卡與PC機有機地統(tǒng)一起來。在本系統(tǒng)中,采用16腳的插座作為兩者之間的接口。兩者的通訊主要包括:接收PC機發(fā)送的各種控制命令;發(fā)送數(shù)據(jù)采集卡的各種狀態(tài)信號給PC機;接收PC機發(fā)送的數(shù)據(jù)采集卡積分時間設(shè)定命令;傳輸數(shù)據(jù)給PC機等。
3 數(shù)據(jù)采集系統(tǒng)軟件的設(shè)計
數(shù)據(jù)采集系統(tǒng)的軟件主要完成的功能有:①PC機與數(shù)據(jù)采集卡之間的通訊驅(qū)動;②CCD圖像處理,實現(xiàn)最終的設(shè)計目的。
3.1 通訊驅(qū)動軟件的設(shè)計
數(shù)據(jù)采集卡的I/O接口與PC機的打印機并口相連接,通過通訊驅(qū)動軟件的驅(qū)動,基于CPLD的線陣CCD數(shù)據(jù)采集卡可以直接接收來自PC機的控制命令,或?qū)?shù)據(jù)(或狀態(tài))經(jīng)并口傳入PC機,不需外加其它輔助電路。
該數(shù)據(jù)采集系統(tǒng)的通訊驅(qū)動軟件是用C語言設(shè)計完成的,調(diào)用基本的并行接口操作函數(shù)。用戶可以通過PC機并口完成如下工作:(1)將PC機發(fā)出的控制字寫入可編程邏輯器件,控制CCD數(shù)據(jù)采集卡的工作狀態(tài);(2)將數(shù)據(jù)采集卡當
前的狀態(tài)字讀入PC機;(3)判斷數(shù)據(jù)采集卡工作狀態(tài)位,在允許PC機讀取數(shù)據(jù)的前提下讀取外部數(shù)據(jù)存儲器中的數(shù)據(jù)。因采用標準并行打印機適配器,所以一個字節(jié)的數(shù)據(jù)要分兩次進行讀取,先讀低4位,再讀高4位,然后將兩部分合并,所得結(jié)果存入數(shù)據(jù)文件。通過I/O驅(qū)動軟件控制,PC機可以改變和設(shè)定CCD當前的積分時間及CCD當前所處狀態(tài)。
3.2 數(shù)據(jù)處理軟件的設(shè)計
數(shù)據(jù)處理軟件的主要目的就是設(shè)計恰當?shù)乃惴?,對圖像信息進行處理,提取圖像的邊緣特征并以此為基礎(chǔ)進行高層次的處理,如:特征描述、識別和理解。圖像的邊緣特征是圖像信息最重要的特征,在對CCD圖像進行處理時,首先要解決好圖像的邊緣問題。邊緣定位精度將直接影響測量結(jié)果的精度。
傳統(tǒng)的邊緣檢測算法是考察圖像的每個象素在某個鄰域內(nèi)灰度的變化,利用邊緣鄰近一階或二階導(dǎo)數(shù)的變化規(guī)律來檢測邊緣。但利用這種方法進行數(shù)據(jù)處理時?由于受到CCD自身的制造工藝和工作原理的影響?其分辨率只能達到一個光敏元大小。故為了進一步提高CCD的測量精度和分辨率,選用了直線擬合最小二乘法來確定圖像的邊緣點。以圖像邊緣斜坡段梯度最大點為中心,對稱地選取斜坡段的2n+1個點進行直線擬合,以此來提高整個CCD數(shù)據(jù)采集系統(tǒng)的測量精度。采用空間擬合法確定圖像邊緣點對于減小隨機性測量誤差是非常有利的。
4 數(shù)據(jù)采集系統(tǒng)的性能評價
在對數(shù)據(jù)采集系統(tǒng)軟硬件設(shè)計和測試成功后,將該數(shù)據(jù)采集系統(tǒng)配以合適的光學成像系統(tǒng),以直徑為8.00mm(由千分尺測得)的卷煙標準棒為被測物,調(diào)整合適的積分時間和光照強度,對卷煙標準棒的直徑進行了驗證性測量。在同一段時間內(nèi)對同一被測物進行了10次測量,其實驗結(jié)果如圖4所示。
圖4 實驗測量結(jié)果
實驗結(jié)果表明,該數(shù)據(jù)采集系統(tǒng)的測量精度在0.05mm之內(nèi),變異系數(shù)不超過1%,說明該數(shù)據(jù)采集系統(tǒng)的測量精度高、重復(fù)性好。