《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)ATmega16的CCD驅(qū)動(dòng)電路的設(shè)計(jì)
基于單片機(jī)ATmega16的CCD驅(qū)動(dòng)電路的設(shè)計(jì)
來源:微型機(jī)與應(yīng)用2010年第16期
韋曉茹, 居戩之
(蘇州大學(xué) 信息光學(xué)工程研究所, 江蘇 蘇州 215006)
摘要: 提出了一種驅(qū)動(dòng)線陣CCD工作的方法,給出了PWM模式的工作原理。采用單片機(jī)ATmega16的CTC模式及相位和頻率修正PWM模式產(chǎn)生CCD工作所需要的信號(hào),電路簡單,易于調(diào)試。
Abstract:
Key words :

摘  要: 提出了一種驅(qū)動(dòng)線陣CCD工作的方法,給出了PWM模式的工作原理。采用單片機(jī)ATmega16CTC模式及相位和頻率修正PWM模式產(chǎn)生CCD工作所需要的信號(hào),電路簡單,易于調(diào)試。
關(guān)鍵詞: CCD; ATmega16; 頻率和相位修正; CTC; 驅(qū)動(dòng)電路

    CCD是一種固體成像器件[1],應(yīng)用廣泛。CCD工作需要多路脈沖驅(qū)動(dòng),并且各路脈沖在時(shí)序上要嚴(yán)格對應(yīng)。對于CCD時(shí)序的設(shè)計(jì),通常采用CPLD和FPGA技術(shù),CPLD在低頻CCD時(shí)序設(shè)計(jì)中使用[2-4],F(xiàn)PGA則用在更為復(fù)雜的時(shí)序設(shè)計(jì)中[5]。對于驅(qū)動(dòng)比較簡單的線陣CCD沒有必要用這種成本比較高的電路。本文針對東芝公司的線陣CCD芯片TCD1304設(shè)計(jì)了基于單片機(jī)ATmega16的驅(qū)動(dòng)電路。采用ATmega16的定時(shí)器/計(jì)數(shù)器timer0的CTC(比較匹配時(shí)清零定時(shí)器)模式和timer1的相位與頻率修正PWM模式產(chǎn)生所需要的基本波形,可通過修改單片機(jī)程序中的參數(shù)來改變輸出波形的頻率和占空比,使得波形調(diào)整便捷。
1  ATmega16的CTC模式及相位與頻率修正PWM模式
 ATmega16的timer0的CTC模式可通過令控制寄存器TCCR0的WGM01=1和WGM00=0來設(shè)定。寄存器OCR0用于調(diào)節(jié)計(jì)數(shù)器的分辨率,當(dāng)計(jì)數(shù)器的數(shù)值TCNT0等于OCR0中的值時(shí)計(jì)數(shù)器清零,即OCR0定義了計(jì)數(shù)器的TOP值,亦即分辨率。這個(gè)模式使得用戶可以很容易地控制比較匹配輸出的頻率。CTC模式的時(shí)序圖如圖1所示。計(jì)數(shù)器數(shù)值TCNT0一直累加到TCNT0與OCR0匹配,然后TCNT0清零。

    為了在CTC模式下得到波形輸出,可以設(shè)置輸出腳OC0在每次比較匹配發(fā)生時(shí)改變邏輯電平,這可以通過設(shè)置COM01:0=1來完成。在期望獲得OC0輸出之前,首先要將其端口設(shè)置為輸出。波形發(fā)生器能夠產(chǎn)生的最大頻率由公式fOC0=fclk_I/O/2·N·(1+OCR0)來確定,變量N代表預(yù)分頻因子(1、8、64或1 024)。
 ATmega16的timer1的相位與頻率修正模式可通過令控制寄存器TCCR1A和TCCR1B中的WGM13:0=8或9來設(shè)定。該種模式可以產(chǎn)生高精度的、相位與頻率都準(zhǔn)確的PWM波形,其工作時(shí)序圖如圖2所示。這是一種雙斜坡操作的模式,計(jì)數(shù)器重復(fù)地從BOTTOM計(jì)數(shù)到TOP,然后又從TOP倒退回到BOTTOM。TOP的值可由ICR1(WGM13:0=8)或OCR1A(WGM13:0=9)來確定。在一般比較輸出模式下,當(dāng)TCNT1向TOP計(jì)數(shù)時(shí),若TCNT1與OCR1A相匹配,輸出腳OC1A(B)清零,并置為低電平;當(dāng)TCNT1向BOTTOM計(jì)數(shù)時(shí),若TCNT1與OCR1A相匹配時(shí),輸出腳OC1A(B)置為高電平,工作于反向輸出比較時(shí)正好相反。輸出的PWM波形的頻率由公式fOC1A(B)=fclk_I/O/2·N·TOP來確定,變量N代表預(yù)分頻因子(1、8、64或1 024)。通過改變ICR1及OCR1A兩個(gè)寄存器的值就可完成PWM波形占空比的調(diào)整。

2 線陣圖像傳感器TCD1304的時(shí)序分析
    CCD芯片TCD1304是一款高靈敏度、低暗電流的線陣圖像傳感器,其光電靈敏度的典型值可達(dá)到160 V/lx.s,可用于條碼掃描、光譜測量等場合。TCD1304有兩種工作方式:普通工作方式和電子快門工作方式,圖3為在普通工作方式下的時(shí)序圖。

    TCD1304工作時(shí)需要SH、ICG和ФM 3路驅(qū)動(dòng)信號(hào)。SH的周期表示光信號(hào)積累時(shí)間,即積分時(shí)間,ICG和SH是同步的,ФM是主脈沖,其典型值為2 MHz。OS表示信號(hào)輸出,每4個(gè)ФM脈沖周期對應(yīng)1位信號(hào)周期。可以看出,TCD1304工作時(shí)需要的驅(qū)動(dòng)信號(hào)比較簡單,完全可以用ATmega16來產(chǎn)生。
3 電路設(shè)計(jì)及實(shí)驗(yàn)結(jié)果
3.1 電路設(shè)計(jì)

 基于ATmega16的TCD1304的驅(qū)動(dòng)電路如圖4所示。  

 
    使用ATmega16的timer0的CTC工作模式產(chǎn)生2 MHz的方波,并由輸出腳OC0輸出,然后經(jīng)過施密特反向器整形后輸出作為ФM(即圖4中的FM);使用timer1的相位與頻率修正PWM模式產(chǎn)生一定周期的波形,由OC1A腳輸出,同樣經(jīng)過施密特反向器整形后輸出作為ICG;將ICG波形經(jīng)過延時(shí)和變窄處理后得到SH信號(hào)。圖4中還給出了ATmega16的復(fù)位電路。單片機(jī)工作時(shí)使用系統(tǒng)內(nèi)部時(shí)鐘8MHz,timer1采用8分頻(即1 MHz)作為時(shí)鐘輸入。部分的單片機(jī)程序如下:
  初始化部分:
  LDI   TEMP, $00
  OUT  TCCR0, TEMP
  OUT  TCNT0, TEMP  
  OUT  TCNT1L, TEMP
  OUT  TCNT1H, TEMP
  OUT  TIMSK, TEMP
  設(shè)置timer1和timer0的相關(guān)寄存器:
  LDI   TEMP, $80
  OUT  TCCR1A, TEMP
  LDI   TEMP, $00
  OUT  OCR1AH, TEMP
  LDI   TEMP, $04
  OUT  OCR1AL, TEMP
  LDI   TEMP, $0e
  OUT  ICR1H, TEMP
  LDI   TEMP, $74;
  OUT  ICR1L, TEMP
    
  LDI   TEMP, $02;
  OUT  OCR0, TEMP
  啟動(dòng)輸出:
  LDI   TEMP, $71
  OUT  TCCR0, TEMP
  NOP
  LDI    TEMP, $12
  OUT   TCCR1B, TEMP
 在程序中,由輸出腳OC0輸出的是2 MHz方波,通過寄存器OCR0和TCCR0來確定。輸出腳OC1A輸出的波形周期為T=7.4 ms(ICR1·2·1 μs),對應(yīng)CCD的最短積分時(shí)間。改變timer1的寄存器的設(shè)置就可以調(diào)整積分時(shí)間。
3.2 實(shí)驗(yàn)結(jié)果
 用示波器測量圖4所示電路產(chǎn)生的SH和ICG波形如圖5所示。通道1為SH波形,通道2為ICG波形,SH的高電平相對于ICG的低電平有一定的延時(shí)且寬度較窄。圖6為ICG和ФM的波形圖,通道1為ICG波形,圖中顯示出了上升沿部分,通道2為ФM波形。CCD的輸出信號(hào)波形和ICG如圖7所示,通道1為ICG波形,通道2為CCD波形。

    基于單片機(jī)ATmega16的CTC模式和相位與頻率修正的PWM工作模式,設(shè)計(jì)了CCD時(shí)序驅(qū)動(dòng)電路,結(jié)構(gòu)簡單,調(diào)試方便。另外兩種工作模式只使用了單片機(jī)很少一部分資源,后續(xù)的CCD信號(hào)處理部分(模數(shù)轉(zhuǎn)換、數(shù)據(jù)存儲(chǔ)等)可以充分利用單片機(jī)的現(xiàn)有資源。
參考文獻(xiàn)
[1]  王慶有,王晉疆,張存林,等. 光電技術(shù)[M]. 北京:電子工業(yè)出版社,2008.
[2]  許秀貞,李自田. 基于CPLD的可選輸出CCD驅(qū)動(dòng)時(shí)序設(shè)計(jì)[J]. 光子學(xué)報(bào),2004,33(12):1504-1507.
[3]  冉曉強(qiáng),汶德勝. 基于CPLD的空間面陣CCD相機(jī)驅(qū)動(dòng)時(shí)序發(fā)生器的設(shè)計(jì)與硬件實(shí)現(xiàn)[J]. 光子學(xué)報(bào),2007,36(2):364-367.
[4]  谷林,胡曉東,羅長州. 基于CPLD的線陣CCD光積分時(shí)間的自適應(yīng)調(diào)節(jié)[J]. 光子學(xué)報(bào),2003,31(12):1533-1537.
[5]  周建康,陳新華,周望,等.積分時(shí)間可調(diào)的CCD相機(jī)驅(qū)動(dòng)時(shí)序設(shè)計(jì)與實(shí)現(xiàn)[J]. 光子學(xué)報(bào),2008,37(11):2300-2304.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。