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