摘 要:介紹了CCD驅(qū)動電路的4種常用方式及其優(yōu)缺點(diǎn),詳細(xì)闡述了基于高速超微型" title="超微型">超微型單片機(jī)C8051F300的CCD驅(qū)動電路設(shè)計,包括內(nèi)部CCD驅(qū)動時序和外部輸出同步信號" title="同步信號">同步信號的產(chǎn)生、像素輸出電壓的簡單處理以及通過RS232接口在線調(diào)整" title="在線調(diào)整">在線調(diào)整CCD驅(qū)動頻率等。系統(tǒng)克服了目前單片機(jī)方式在CCD驅(qū)動應(yīng)用中存在的一些缺點(diǎn)。
關(guān)鍵詞: C8051F300 CCD TCD1206 可編程" title="可編程">可編程計數(shù)器陣列
CCD作為一種光電轉(zhuǎn)換器件,由于其具有精度高、分辨率好、性能穩(wěn)定等特點(diǎn),目前廣泛應(yīng)用于圖像傳感和非接觸式測量領(lǐng)域。在CCD應(yīng)用技術(shù)中,最關(guān)鍵的兩個問題是CCD驅(qū)動時序的產(chǎn)生和CCD輸出信號的處理。對于CCD輸出信號,可以根據(jù)CCD像素頻率和輸出信號幅值來選擇合適的片外或片內(nèi)模數(shù)轉(zhuǎn)換器;而對于CCD驅(qū)動時序,則有幾類常用的產(chǎn)生方法。
1 常用的CCD驅(qū)動時序產(chǎn)生方法
CCD廠家眾多,型號各異,其驅(qū)動時序的產(chǎn)生方法也多種多樣,一般有以下4種:
(1) 數(shù)字電路驅(qū)動方法" title="驅(qū)動方法">驅(qū)動方法
這種方法是利用數(shù)字門電路及時序電路直接構(gòu)建驅(qū)動時序電路,其核心是一個時鐘發(fā)生器和幾路時鐘分頻器,各分頻器對同一時鐘進(jìn)行分頻以產(chǎn)生所需的各路脈沖。該方法的特點(diǎn)是可以獲得穩(wěn)定的高速驅(qū)動脈沖,但邏輯設(shè)計和調(diào)試比較復(fù)雜,所用集成芯片較多,無法在線調(diào)整驅(qū)動頻率。
(2) EPROM 驅(qū)動方法
這種驅(qū)動電路一般在EPROM中事先存放所有的CCD 時序信號數(shù)據(jù),并由計數(shù)電路產(chǎn)生EPROM 的地址使之輸出相應(yīng)的驅(qū)動時序。該方法結(jié)構(gòu)相對簡單、運(yùn)行可靠,但仍需地址產(chǎn)生硬件電路,所需EPROM 容量較大,同樣也無法在線調(diào)整驅(qū)動頻率。
(3) 微處理器驅(qū)動方法
這種方法利用單片機(jī)或DSP通過程序直接在I/O口上輸出所需的各路驅(qū)動脈沖,硬件簡單、調(diào)試方便、可在線調(diào)整驅(qū)動頻率。但由于是依靠程序來產(chǎn)生時序,如果程序設(shè)計不合理,會造成時序不均勻;而且往往會造成微處理器資源浪費(fèi);通常驅(qū)動頻率不高,除非采用高速微處理器。
(4) 可編程邏輯器件驅(qū)動方法
這種設(shè)計方法就是利用CPLD、FPGA等可編程邏輯器件來產(chǎn)生時序驅(qū)動信號,硬件簡單、調(diào)試方便、可靠性好,而且可以得到較高的驅(qū)動頻率,同樣也可在線調(diào)整驅(qū)動頻率。電路設(shè)計完成以后,如果想更改驅(qū)動時序,只需將器件內(nèi)部邏輯重新編程即可。
以上4類方法中目前常用的是微處理器驅(qū)動方法(通常又稱為“軟件驅(qū)動”法)和可編程邏輯器件驅(qū)動方法(又稱“硬件驅(qū)動”法)。由于在CCD應(yīng)用系統(tǒng)中,一般都要用到微處理器,所以若采用“軟件驅(qū)動”法,則無需增加硬件,在電路結(jié)構(gòu)上最為簡單,系統(tǒng)成本也最低,因此,只要能克服其驅(qū)動頻率低、資源浪費(fèi)多、時序不均勻等缺點(diǎn),無疑是一種理想的驅(qū)動方法。本文結(jié)合Toshiba 公司的TCD1206 線陣CCD,介紹如何利用C8051F300來產(chǎn)生其要求的驅(qū)動時序。
2 硬件設(shè)計
如圖1所示,虛線框內(nèi)的電路構(gòu)成CCD驅(qū)動處理板,安裝在CCD相機(jī)內(nèi)部。系統(tǒng)處理器采用美國Silabs公司推出的超微型高速8位單片機(jī)C8051F300 [1],CCD采用Toshiba公司的高靈敏度線陣CCD圖像傳感器芯片TCD1206[2],雙電壓供電的總線驅(qū)動器 LVC4245 [ 3]解決了單片機(jī)(3.3V)和CCD(5V)二者之間的電平匹配。CCD驅(qū)動脈沖由C8051F300提供,其像素輸出電壓經(jīng)高速運(yùn)放AD8031[4]處理,由Uo引腳引到外部,同時向外部提供像素同步信號PS和行同步信號FS(由P0.6、P0.7經(jīng)LVT245總線驅(qū)動器[5]所得)。
Uo、PS、FS這3個信號供外部處理器采集CCD像元輸出。另外,有時可能要在線調(diào)整CCD的某些參數(shù)(如驅(qū)動頻率、積分時間等),為此設(shè)置了RS232串口與外部處理器進(jìn)行通信。
2.1 TCD1206
TCD1206是Toshiba 公司生產(chǎn)的高靈敏度二相雙溝道線陣CCD圖像傳感器芯片,2160個有效像素點(diǎn),像素頻率為0.3~2MHz(本系統(tǒng)為1MHz),其驅(qū)動時序波形如圖2所示。
圖2中:Φ1、Φ2為像素脈沖,兩者互為反相,RS為復(fù)位脈沖,SH為光積分脈沖,OS為像元輸出,DOS為像元補(bǔ)償輸出。當(dāng)SH為低電平時,在Φ1、Φ2交變后,OS輸出像元電壓信號,隨后發(fā)RS脈沖,以便去掉信號輸出緩沖中的殘余電荷,為下一點(diǎn)像素電壓輸出做準(zhǔn)備。各脈沖具體時序關(guān)系可參見參考文獻(xiàn)[2]。
2.2 C8051F300
C8051F系列單片機(jī)其CPU內(nèi)核采用流水線結(jié)構(gòu),機(jī)器周期由標(biāo)準(zhǔn)8051的12個系統(tǒng)時鐘周期降為1個系統(tǒng)時鐘周期,使其執(zhí)行速度在相同晶振下是標(biāo)準(zhǔn)8051的12倍,處理能力大大提高,大部分C8051F單片機(jī)的峰值處理速度是25MIPS,而C8051F12X、13X系列的峰值處理速度則達(dá)到了100MIPS。C8051F系列單片機(jī)功能齊全,性能優(yōu)異,其整體性能超過很多目前的16位單片機(jī),甚至在一些低端應(yīng)用中可取代低速的16位DSP器件,目前在儀器儀表、工業(yè)控制、嵌入式產(chǎn)品等領(lǐng)域日益得到廣泛應(yīng)用。
C8051F300是C8051F系列中的超微型高速混合系統(tǒng)級單片機(jī),是目前世界上最小封裝的8位單片機(jī),11個引腳,封裝在面積為3mm×3mm的芯片上。內(nèi)部集成了3個16位定時器、3個可編程捕捉/比較模塊、1個UART串口、1個I2C串口、1個8通道500KSPS采樣率的8位ADC、8KB的Flash程序存儲器、256B的內(nèi)部RAM、8個I/O口,系統(tǒng)內(nèi)部振蕩時鐘為24.5MHz(±2%)、最大峰值處理速度可達(dá)25MIPS。
由圖2可見,在4路CCD驅(qū)動脈沖中,對時序要求嚴(yán)格的是Φ1、Φ2和RS,為此,利用C8051F300的可編程計數(shù)器陣列模塊的2個可編程捕捉/比較模塊輸出口(CEX0、CEX1)自動產(chǎn)生Φ1、Φ2,以CEX0為基準(zhǔn)點(diǎn),再產(chǎn)生RS和其他脈沖。
2.3 可編程計數(shù)器陣列(PCA)
PCA提供增強(qiáng)的定時器功能,由一個專用的16位計數(shù)器/定時器和3個16位捕捉/比較模塊組成,每個捕捉/比較模塊有其自己的I/O口(CEXn,n=1,2,3)。計數(shù)器/定時器的時基信號可在6個時鐘源中選擇:系統(tǒng)時鐘、系統(tǒng)時鐘/4、系統(tǒng)時鐘/12、外部振蕩器時鐘/8、定時器0溢出或ECI輸入引腳上的外部時鐘信號。而每個捕捉/比較模塊都可以被獨(dú)立配置為6種工作方式之一:邊沿觸發(fā)捕捉、軟件定時器、高速輸出、頻率輸出、8位PWM和16位PWM。
由于Φ1、Φ2(對應(yīng)CEX0、CEX1)是占空比為50%的方波,所以捕捉/比較模塊0、1工作在頻率輸出方式,這種工作方式可在CEXn引腳產(chǎn)生可編程頻率的方波,其工作原理圖如圖3所示。當(dāng)PCA計數(shù)器低字節(jié)與捕捉/比較寄存器低字節(jié)相同即PCA0L=PCA0CPLn時,稱為“比較匹配”,此時CEXn引腳電平翻轉(zhuǎn),同時捕捉/比較寄存器高字節(jié)即PCA0L與PCA0CPHn相加后的結(jié)果送入PCA0CPLn,以便下一次比較用。顯然,只要改變PCA0CPHn的值,便可在CEXn引腳上得到頻率可調(diào)、占空比為50%的方波,其頻率由下式定義:
fCEXn = fPCA/(2×PCA0CPHn),
其中:fPCA是PCA計數(shù)器/定時器的時鐘頻率。
3 軟件設(shè)計
為了得到時序嚴(yán)格的CCD驅(qū)動脈沖和外部輸出同步脈沖,程序不是靠軟件延時來達(dá)到合適寬度的脈沖,而是利用PCA模塊本身強(qiáng)大的功能,用中斷程序來完成各路脈沖,即開放捕捉/比較模塊0的“比較匹配”中斷作為同步信號,并以此為基準(zhǔn)點(diǎn)完成相應(yīng)脈沖的每一次變化。
3.1 CCD驅(qū)動脈沖
PCA的2個捕捉/比較模塊工作方式設(shè)置為如圖4所示的頻率輸出方式。其輸出引腳CEX0、CEX1的初始電平設(shè)置為1、0,當(dāng)PCA0L與PCA0CPLn(n=0、1)“比較匹配”時,電平翻轉(zhuǎn),由此形成反相的Φ1、Φ2脈沖;而RS脈沖的產(chǎn)生,則是在捕捉/比較模塊0 的“比較匹配”中斷程序中,即先對RS(P0.2)置1,隨后清零,這樣就可產(chǎn)生80ns的RS脈沖(SETB bit指令周期為2個時鐘周期,即80ns)。
3.2 外部輸出同步脈沖及像素電壓
行同步信號FS、像素同步信號PS均設(shè)置為低電平有效,CCD時序中Φ1、Φ2交變后直到像素電壓輸出有一個延遲時間tdly(典型值為150ns),但由于捕捉/比較模塊0“比較匹配”時,一方面CEX0(Φ1)翻轉(zhuǎn),一方面向CPU請求中斷,而中斷響應(yīng)時間需5個時鐘周期(200ns),顯然大于tdly,所以進(jìn)入中斷后,不必考慮tdly,可直接對PS(P0.6)清零,待合適的時間后再將PS置1,這樣就產(chǎn)生一個低電平有效的PS信號。
CCD像素輸出OS、DOS經(jīng)高速運(yùn)放AD8031處理后,其外部輸出像素電壓Uo時序如圖4所示。
針對單片機(jī)在CCD時序驅(qū)動應(yīng)用中存在的優(yōu)缺點(diǎn),選用新型高速C8051F單片機(jī),實(shí)現(xiàn)CCD驅(qū)動電路,克服了單片機(jī)驅(qū)動方式存在的驅(qū)動頻率低、系統(tǒng)資源浪費(fèi)、時序間隔不均勻等缺點(diǎn);具有硬件結(jié)構(gòu)簡單、調(diào)試編程方便、可在線調(diào)整驅(qū)動頻率等優(yōu)點(diǎn)。本文所介紹的驅(qū)動電路己應(yīng)用于TCD1206,超微型的封裝結(jié)構(gòu)使其很容易與其他芯片一起嵌入在CCD相機(jī)中,系統(tǒng)運(yùn)行可靠。
參考文獻(xiàn)
1 C8051F300/1/2/3/4/5 Mixed-signal ISP flash MCU family.Silicon Laboratories,2003
2 Toshiba CCD linear image sensor TCD1206 data manual.Toshiba,2001
3 SN74LVC4245 Octal bus transceiver and 3.3V to 5V shifter data manual.Texas Instruments,1997
4 AD8031/8032 Data manual.Analog Device,1999
5 SN74LVT245 Octal bus transceiver data manual. Texas Ins-truments,1998
6 潘琢金,施國君.C8051FXXX高速SOC單片機(jī)原理及應(yīng)用.
北京:北京航空航天大學(xué)出版社,2002
7 潘琢金,孫德龍.C8051F單片機(jī)應(yīng)用解析.北京:北京航空航天大學(xué)出版社,2002
8王慶有.CCD應(yīng)用技術(shù).天津:天津大學(xué)出版社,2000