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