摘 要: 通過STC89C52單片機(jī)平臺,以4路驅(qū)動信號的TCD1208AP和6路驅(qū)動信號的TCD1501D為例,,采用分割法對驅(qū)動信號進(jìn)行了分析與編碼,。根據(jù)線陣CCD驅(qū)動信號數(shù)量的不同,分別采用單周期和雙周期指令完成了驅(qū)動時序的編程實現(xiàn)和實驗驗證,。該方法應(yīng)用高執(zhí)行效率的51匯編指令,,驅(qū)動信號頻率高、穩(wěn)定性好,,充分發(fā)揮了單片機(jī)和線陣CCD的綜合性能,。
關(guān)鍵詞: 線陣CCD;單片機(jī)驅(qū)動,;分割法,;STC89C52;TCD1208AP,;TCD1501D
近年來,,隨著半導(dǎo)體技術(shù)和大規(guī)模集成電路的發(fā)展,CCD圖像傳感器在功耗,、分辨率和動態(tài)范圍等方面取得了巨大的進(jìn)步,。目前,CCD圖像傳感器非接觸式測量技術(shù)已廣泛應(yīng)用于尺寸測量,、圖像傳感,、機(jī)器視覺、文字掃描等領(lǐng)域[1],。
線陣CCD驅(qū)動信號是一組關(guān)系復(fù)雜的周期性脈沖信號,,它是決定信號積分時間、信噪比的關(guān)鍵因素。目前,,線陣CCD的驅(qū)動電路主要包括專用集成電路驅(qū)動,、EPROM驅(qū)動、可編程邏輯器件驅(qū)動,、單片機(jī)驅(qū)動等[2],。基于單片機(jī)的線陣CCD驅(qū)動擴(kuò)展性強(qiáng),、功耗小,、應(yīng)用成本低,應(yīng)用前景廣闊,。單片機(jī)驅(qū)動設(shè)計中,,難免要使用轉(zhuǎn)移指令,但是由于單片機(jī)的轉(zhuǎn)移指令,、位操作和端口賦值指令的指令周期不同及驅(qū)動信號的復(fù)雜性,如果驅(qū)動時序設(shè)計不當(dāng),,將難以滿足CCD驅(qū)動時序的高頻率和穩(wěn)定性要求,。因此,關(guān)于單片機(jī)線陣CCD驅(qū)動時序分析和設(shè)計方法的研究具有深刻的意義,。
1 線陣CCD驅(qū)動設(shè)計
51系列單片機(jī)具有低功耗,、擴(kuò)展靈活、控制穩(wěn)定等特點,,是目前應(yīng)用最廣泛的單片機(jī),。因此,本文將利用STC89C52單片機(jī)進(jìn)行線陣CCD驅(qū)動設(shè)計的研究,。
CCD圖像傳感器采用光電效應(yīng),,以感應(yīng)電荷為信號,在特定驅(qū)動脈沖作用下,,實現(xiàn)信號電荷的存儲和定向轉(zhuǎn)移[3],。線陣CCD驅(qū)動設(shè)計中,所采用指令的指令周期決定了線陣CCD的驅(qū)動頻率的大小,。具體采用單周期指令還是多周期指令取決于線陣CCD驅(qū)動信號的路數(shù)和驅(qū)動信號間的關(guān)系,。
1.1 線陣CCD的驅(qū)動信號
線陣CCD在驅(qū)動時序作用下完成了信號電荷的存儲、轉(zhuǎn)移和輸出,。線陣CCD的驅(qū)動信號包括轉(zhuǎn)移脈沖(SH),、時鐘脈沖(Q1,Q2),、復(fù)位脈沖(RS),,部分線陣CCD還包括采樣保持脈沖(SP)和門限脈沖(CP)。本文以東芝4驅(qū)動TCD1208AP和6驅(qū)動TCD1501D線陣 CCD為例,研究基于51單片機(jī)的線陣CCD的驅(qū)動設(shè)計,。
TCD1208AP采用幀輸出方式,,每幀信號對應(yīng)1 106個時鐘脈沖。利用51單片機(jī)計數(shù)器對時鐘脈沖Q2的下降沿計數(shù),,當(dāng)計數(shù)達(dá)到1 106時,,利用中斷方式產(chǎn)生轉(zhuǎn)移脈沖SH。單片機(jī)與TCD1208AP間的接口關(guān)系如圖1所示,。圖4是TCD1208AP 4路驅(qū)動信號的狀態(tài)轉(zhuǎn)換圖,。
由圖4可知,除去SH中斷狀態(tài)外,,TCD1208AP驅(qū)動信號共有8種狀態(tài),。Q1和Q2相位相反,周期是RS的2倍,,SH由計數(shù)中斷產(chǎn)生,。程序設(shè)計中,采用位操作指令和自加自減指令實現(xiàn)信號間轉(zhuǎn)換,;驅(qū)動信號的周期切換采用JBC跳轉(zhuǎn)指令通過RS信號的檢測實現(xiàn)循環(huán),。JBC指令尋址位為1轉(zhuǎn)移,選擇RS為檢測位,,需對狀態(tài)轉(zhuǎn)移圖中的信號編碼進(jìn)行取反操作,。這樣實現(xiàn)了驅(qū)動信號的轉(zhuǎn)換均在單周期指令操作,與雙周期指令相比,,驅(qū)動頻率提高了一倍,。核心程序如下:
MOV P1,#0xFA ;驅(qū)動信號的初始狀態(tài)
LOOP: ,;驅(qū)動信號8狀態(tài)間的循環(huán)程序段
SETB P1^2
DEC P1
NOP
CLR P1^2
SETB P1^2
INC P1
JBC P1^2,LOOP
CT0: ,;轉(zhuǎn)移脈沖SH中斷處理程序
CLR P1^3
MOV TH0,#0xFB ;TH0=(65536-2538)/256
MOV TL0,#0xAE ,;TL0=(65536-2538)%256
SETB P1^3
RETI
TCD1501D驅(qū)動信號設(shè)計中,,采用分割法,在保持RS占空比為1:4的條件下,,8等分分割TCD1501的電荷轉(zhuǎn)移脈沖信號Q1和Q2,,形成驅(qū)動信號間的關(guān)系如圖6所示。
由圖7可知,,TCD1501D增加了兩路信號CP和SP,,驅(qū)動信號間的變換至少包含兩路信號的變換,無法再僅采用單周期自加自減指令和位操作指令控制單片機(jī)I/O口產(chǎn)生驅(qū)動信號,,只能選擇雙周期的I/O端口數(shù)據(jù)傳送指令進(jìn)行TCD1501D驅(qū)動設(shè)計,,核心程序如下:
LOOP: ;驅(qū)動信號8狀態(tài)間的循環(huán)程序段
MOV P1,0xD9
MOV P1,0xD5
MOV P1,0xDE
MOV P1,0xCE
MOV P1,0xDA
MOV P1,0xD6
MOV P1,0xDD
JBC P1^4,LOOP
CT0: ;轉(zhuǎn)移脈沖SH中斷處理程序
SETB P1^5
MOV TH0,#0xF6 ,;TH0=(65536-2538)/256
MOV TL0,#0x14 ,;TL0=(65536-2538)%256
CLR P1^5
RETI
當(dāng)晶振頻率相同時,與TCD1208AP相比,,TCD1501D的驅(qū)動頻率降低一半,,但這不影響多數(shù)非接觸式測量的應(yīng)用要求。由上述兩例驅(qū)動設(shè)計過程可知,,根據(jù)CCD驅(qū)動信號數(shù)量的不同和驅(qū)動信號的時序關(guān)系設(shè)計驅(qū)動程序,,能最大限度地提高信號的驅(qū)動頻率,充分發(fā)揮單片機(jī)驅(qū)動的優(yōu)勢,。
2 實驗結(jié)果分析
STC89C52是 51單片機(jī)中性價比極高的一款單片機(jī),,最高工作頻率為35 MHz,6T/12T雙工模式可選,,作為線陣CCD驅(qū)動,,其能滿足應(yīng)用對象對高速度、低功耗的要求,。
本文選擇STC89C52單片機(jī)作為試驗平臺,,采用keil C51平臺驗證所設(shè)計的時序的正確性。試驗中,,采用24 MHz晶振作為STC89C52外部晶振,選用6T雙倍速工作模式,,內(nèi)部機(jī)器周期0.25 ?滋s,。該條件下,TCD1208AP和TCD1501D的時鐘脈沖頻率分別達(dá)到了0.5 MHz和0.25 MHz的正常工作要求,。圖8和圖9是實際測量的時序圖,。
由圖8和圖9可知,當(dāng)轉(zhuǎn)移脈沖計數(shù)發(fā)生中斷時,,轉(zhuǎn)移脈沖SH發(fā)生跳變,,說明采集完一幀圖像數(shù)據(jù)。注意,,SH的高電平保持時間必須小于Q1高電平保持時間,。實際應(yīng)用中,CCD各信號需滿足特定的時間參數(shù)要求,。表1和表2是TCD1208AP和TCD1501D理論時間參數(shù)和實驗測量參數(shù)的對照表,,表中時間符號分別與圖2和圖5中的時間符號相對應(yīng)。
可以看出,,實測參數(shù)均滿足理論值要求,。TCD1501D的RS脈沖寬度是TCD1208AP的RS脈沖寬度的2倍,充分說明驅(qū)動信號單周期指令運(yùn)行速度是雙周期指令的2倍。因此,,根據(jù)線陣CCD驅(qū)動信號數(shù)量的不同和驅(qū)動信號的關(guān)系,,合理采用分割法對信號進(jìn)行分析和編碼,科學(xué)選擇單周期指令和雙周期指令,,能充分發(fā)揮單片機(jī)和線陣CCD的綜合性能,,提高驅(qū)動信號的頻率和穩(wěn)定性。目前該設(shè)計方法在某型號精密位置校正裝置的CCD模塊中得到成功應(yīng)用,。
本文采用51單片機(jī)作為線陣CCD的驅(qū)動控制器,,很好地滿足了CCD驅(qū)動強(qiáng)擴(kuò)展性、高速度,、低功耗的應(yīng)用要求,。設(shè)計中,根據(jù)線陣CCD驅(qū)動信號數(shù)量和信號關(guān)系的不同,,采用分割法對驅(qū)動時序進(jìn)行了分析和編碼,,利用51匯編指令完成驅(qū)動時序的科學(xué)編程,完成線陣CCD驅(qū)動時序的設(shè)計,。利用STC89C52單片機(jī),,以4路和6路線陣CCD驅(qū)動設(shè)計為例,提出了多路驅(qū)動信號線陣CCD驅(qū)動設(shè)計的具體方法,。本文對驅(qū)動時序進(jìn)行了測試,,驗證了實測參數(shù)的正確性。該方法得到的驅(qū)動時序頻率很好地滿足了線陣CCD的工作要求,,穩(wěn)定性好,,為后續(xù)CCD驅(qū)動開發(fā)指明了方向。
參考文獻(xiàn)
[1] 王慶有.圖像傳感器應(yīng)用技術(shù)[M].北京:電子工業(yè)出版社,,2003.
[2] 曾維友,,趙江,羅時軍,,等.基于C51的線陣CCD驅(qū)動設(shè)計[J].湖北汽車工業(yè)學(xué)院學(xué)報,,2009,23(1):62-64.
[3] 盧陽.TDI/CCD圖像傳感器脈沖驅(qū)動電路研究及小型可見光CCD攝像機(jī)組件設(shè)計[D].重慶:重慶交通大學(xué),,
2006.
[4] TOSHIBA公司.TCD1208AP數(shù)據(jù)手冊[S].東京:TOSHIBA公司,,2001.
[5] 崔巖,吳國興,,殷美琳,,等.基于FPGA的線陣驅(qū)動設(shè)計[J].現(xiàn)代電子技術(shù),2011,,34(10):206-210.
[6] TOSHIBA公司.TCD1501D數(shù)據(jù)手冊[S].東京:TOSHIBA公司,,2001.