田小超+李忠科
摘 要: 針對線陣CCD器件的驅(qū)動和信號處理,使用了2片STC11F02單片機,一片產(chǎn)生CCD驅(qū)動時序信號,另一片負責測量控制及與上位機進行通信。采用硬件的方法對CCD輸出信號進行處理,直接得到光斑中心位置,不需要進行A/D轉(zhuǎn)換。試驗結果說明測量精度可達0.007 mm。該電路成本低,體積小,速度快,可廣泛應用于基于線陣CCD的非接觸式幾何量測量。
關鍵詞: 線陣CCD; 單片機驅(qū)動; STC11F02; 幾何量測量
中圖分類號: TN911?34; TP212.1 文獻標識碼: A 文章編號: 1004?373X(2014)20?0059?03
Linear array CCD drive and signal processing system based on double?SCM
TIAN Xiao?chao, LI Zhong?ke
(The Second Artillery Engineering College, Xian 710025, China)
Abstract: Two STC11F02 chips are used for the driving and signal processing of linear array CCD device. One generates CCD drive time?sequence signal, and another is responsible for measurement control and communication with the host computer. The CCD output signal is processed with the hardware method to directly obtain the center position of the light spot without A/D conversion. Experimental results show that the measurement precision can reach 0.007 mm. The circuit has the characteristics of low cost, small size, high speed, and can be widely used for non?contact geometry measurement based on linear array CCD.
Keywords: linear array CCD; SCM drive; STC11F02; geometry measurement
CCD(Charge Coupled Device)是一種完成光電轉(zhuǎn)換的圖像傳感器[1],廣泛應用于幾何量測量[2]、圖像傳感[3]、機器視覺等領域[4?5]。由于線陣CCD使用相對簡單,通常一個方位的像元數(shù)目遠多于面陣CCD,測量精度很高,故得到廣泛應用。在應用CCD傳感器時要解決的兩個主要問題是CCD驅(qū)動時序的產(chǎn)生和CCD 輸出信號的采集處理。目前常用的CCD驅(qū)動方法有數(shù)字電路直接驅(qū)動法[6]、單片機驅(qū)動法[7]、專用IC驅(qū)動方法等[8?9]。其中使用單片機驅(qū)動方法靈活方便,適用于各種場合,但通常驅(qū)動頻率較低。本文提出了一種新型的利用單片機驅(qū)動線陣CCD并采集處理信號的方案,此方案基于2片STC11F02單片機,一片對CCD進行高速、穩(wěn)定的驅(qū)動,另一片負責信號處理、測量控制與通信。
1 線陣CCD驅(qū)動設計
本設計選用的線陣CCD是日本東芝公司的TCDl501D圖像傳感器,它有5 000個光敏像元,驅(qū)動信號包括轉(zhuǎn)移脈沖(SH)、時鐘脈沖(Φ1,Φ2)、復位脈沖(RS)、采樣保持脈沖(SP)和門限脈沖(CP)[10]。
單片機選用宏晶公司的STC11F02,它是IT的8051單片機[3]。東芝系列線陣CCD驅(qū)動信號基于TTL電平,與51單片機I/O電平兼容,可直接將單片機I/O口與CCD驅(qū)動接口相連[11],如圖1所示。
圖1 線陣CCD接口示意圖
由于單片機P1.0、P1.2管腳對應CCD的Φ1,Φ2時鐘輸出,負載較重,故設為強推挽輸出。在程序中,將T0設置為16位定時器模式,每計數(shù)20 480個脈沖,產(chǎn)生一次定時器中斷。在中斷處理程序中,輸出一次SH脈沖波形。在每一次LOOP1循環(huán)中,輸出圖2所示的波形。在兩次輸出SH之間,執(zhí)行LOOP1循環(huán)5 000次以上,這樣就實現(xiàn)了TCD1501D所要求的各種驅(qū)動時鐘信號。核心程序如下:
LOOP1: ;驅(qū)動信號循環(huán)程序段
MOV P1,#01BH
MOV P1,#099H
MOV P1,#0D3H
MOV P1,#0DBH
MOV P1,#02EH
MOV P1,#0ACH
MOV P1,#0E6H
MOV P1,#0EEH
SJMP LOOP1
T0INT: ;轉(zhuǎn)移脈沖SH中斷處理程序
CLR TR0
CLR TF0
MOV P1,#0DBH
MOV P3,#10H
MOV P3,#20H
MOV R4,#100
DJNZ R4,$
MOV P3,#10H
MOV TH0,#0D7H
MOV TL0,#0FFH
SETB TR0
RETI
圖2 CCD驅(qū)動脈沖波形圖
2 線陣CCD信號處理
2.1 硬件電路與工作原理
本設計使用另一片單片機負責CCD信號的測量和與上位機的通信,電路圖如圖3所示。線陣CCD輸出的圖像信號OS和補償信號DOS經(jīng)過電壓比較器變成二值化信號,進入CPU2的P3.3和P3.4,其中P3.3是單片機的外部中斷輸入INT1。采用單片機的內(nèi)部T0定時器對CCD信號脈沖前沿進行測量計數(shù),用T1定時器對CCD信號脈沖寬度進行測量計數(shù)。系統(tǒng)工作時,首先檢測SH信號,當發(fā)現(xiàn)SH信號到達后,啟動T0計數(shù)。當CCD信號脈沖到達時,經(jīng)過電壓比較器產(chǎn)生一個負脈沖,該負脈沖的下跳沿產(chǎn)生INT1中斷請求,停止T0計數(shù)并啟動T1計數(shù),此時T0計數(shù)值即為脈沖前沿信息。通過軟件查詢P3.4上跳沿的方式判斷脈沖結束時刻,當發(fā)現(xiàn)P3.4電平上跳時停止T1計數(shù),此時T1計數(shù)值即為脈沖寬度信息。T0+[T12]即為測量結果。
圖3 電路圖
2.2 軟件設計
根據(jù)系統(tǒng)工作原理,系統(tǒng)軟件流程如圖4所示。主程序運行之后,SH、OS、DOS、PEK波形的相互關系見圖5。
圖4 系統(tǒng)軟件流程圖
3 系統(tǒng)測試
3.1 實驗設計
為驗證系統(tǒng)的工作速度和測量精度,利用該系統(tǒng)進行了橫向位移的測量實驗。實驗原理圖如圖6所示。
由LED發(fā)出的光受機械狹縫限制,形成一垂直于導軌運動方向的光刀,光刀厚度約0.1 mm,垂直照射在線陣CCD感光陣列上。當活動導軌與固定導軌相對運動時,光刀相對于CCD運動,照射在線陣CCD感光陣列不同的位置,得到不同的輸出。再經(jīng)過標定,即得到活動導軌的橫向位移。
圖5 輸出波形關系
圖6 實驗原理圖
3.2 實驗結果分析
在設計CCD驅(qū)動時,一個LOOP1循環(huán)占用27個機器周期(每個MOV指令和SJMP指令均需3個機器周期[3]),而定時器為12T模式,故每個循環(huán)內(nèi)定時器平均計2.25個數(shù),輸出2個像元值。把光刀依次置于若干點處,系統(tǒng)得到的測量值通過RS 232 串口上傳至計算機[12],得到的數(shù)據(jù)如表1所示。對于一個固定位置,系統(tǒng)多次測量之后的標準差不大于0.9,多次測量取平均值可使偏差減小到一個計數(shù)單。
表1 實驗測量結果
由于平均每計1.125個數(shù),對應1個像元,而TCDl501D像元尺寸為7 μm×7 μm,中心距亦為7 μm,故理論上系統(tǒng)經(jīng)標定后分辨率可達0.007 mm以內(nèi)。單片機采用22.118 4 MHz的晶振。原則上,定時器每計數(shù)超過5 000即可產(chǎn)生一個SH脈沖,即SH脈沖周期最小可達2.76 ms。但在實際應用中,每次測量之后需給上位機通信預留時間,故在本設計中,定時器每計數(shù)20 480產(chǎn)生一個SH脈沖,即大概每5.56 ms產(chǎn)生一次SH脈沖波形,再加上中斷處理時間,系統(tǒng)測量周期約為5.7 ms。
4 結 語
本文提供了一套完整的用單片機實現(xiàn)CCD驅(qū)動并處理CCD信號的方案。創(chuàng)新之處在于用硬件的方法獲得CCD輸出脈沖中心位置,具有結構簡單、速度快的優(yōu)點。經(jīng)反復測定,系統(tǒng)測量分辨率可達0.007 mm,測量周期約為5.7 ms,能滿足絕大多數(shù)應用場合的要求。目前,本設計已應用于國家“863”計劃課題“牙齒模型三維掃描系統(tǒng)”的平移軸行程傳感測量,取得良好效果。
參考文獻
[1] 王慶有.CCD應用技術[M].天津:天津大學出版社,2000.
[2] 于之靖,劉月林,諸葛晶昌.高精度雙線陣CCD非接觸直徑測量系統(tǒng)[J].傳感器與微系統(tǒng),2014(1):120?122.
[3] 秦剛,李韓.基于嵌入式技術的線陣 CCD 圖像采集系統(tǒng)[J].儀表技術與傳感器,2014(1):67?68,71.
[4] 陳平,李毅紅.基于線陣CCD的小物體掉落自動檢測系統(tǒng)[J].制造業(yè)自動化,2013(4):45?49.
[5] 劉恩超,鄒鵬,李新,等.基于線陣CCD的光斑定位電路系統(tǒng)設計[J].傳感器與微系統(tǒng),2013(1):85?87.
[6] 周建勇,陳紅兵,袁世順,等.一種CCD驅(qū)動時序參量化設計方法[J].半導體光電,2013(6):1055?1059.
[7] 唐亞軍,郭喜慶,楊敬嫻,等.基于51單片機的線陣CCD驅(qū)動設計[J].微型機與應用,2013,32(12):73?76.
[8] SAN Hong?li, FEI Jia. Design of linear CCD driving circuit based on SCM [J]. Procedia Engineering, 2012, 29: 165?169.
[9] 劉月林,諸葛晶昌.一種光積分時間可調(diào)的線陣CCD驅(qū)動設計[J].工業(yè)控制計算機,2013(12):100?101.
[10] TOSHIBA公司.TCDl501D數(shù)據(jù)手冊[M].東京:TOSHIBA公司,2001.
[11] 宏晶公司.STC11/10xx系列單片機器件手冊[M].深圳:宏晶公司,2008.
[12] 范逸之,陳立元.Visual Basic與RS?232串行通信控制[M].北京:清華大學出版社,2002.
SETB TR0
RETI
圖2 CCD驅(qū)動脈沖波形圖
2 線陣CCD信號處理
2.1 硬件電路與工作原理
本設計使用另一片單片機負責CCD信號的測量和與上位機的通信,電路圖如圖3所示。線陣CCD輸出的圖像信號OS和補償信號DOS經(jīng)過電壓比較器變成二值化信號,進入CPU2的P3.3和P3.4,其中P3.3是單片機的外部中斷輸入INT1。采用單片機的內(nèi)部T0定時器對CCD信號脈沖前沿進行測量計數(shù),用T1定時器對CCD信號脈沖寬度進行測量計數(shù)。系統(tǒng)工作時,首先檢測SH信號,當發(fā)現(xiàn)SH信號到達后,啟動T0計數(shù)。當CCD信號脈沖到達時,經(jīng)過電壓比較器產(chǎn)生一個負脈沖,該負脈沖的下跳沿產(chǎn)生INT1中斷請求,停止T0計數(shù)并啟動T1計數(shù),此時T0計數(shù)值即為脈沖前沿信息。通過軟件查詢P3.4上跳沿的方式判斷脈沖結束時刻,當發(fā)現(xiàn)P3.4電平上跳時停止T1計數(shù),此時T1計數(shù)值即為脈沖寬度信息。T0+[T12]即為測量結果。
圖3 電路圖
2.2 軟件設計
根據(jù)系統(tǒng)工作原理,系統(tǒng)軟件流程如圖4所示。主程序運行之后,SH、OS、DOS、PEK波形的相互關系見圖5。
圖4 系統(tǒng)軟件流程圖
3 系統(tǒng)測試
3.1 實驗設計
為驗證系統(tǒng)的工作速度和測量精度,利用該系統(tǒng)進行了橫向位移的測量實驗。實驗原理圖如圖6所示。
由LED發(fā)出的光受機械狹縫限制,形成一垂直于導軌運動方向的光刀,光刀厚度約0.1 mm,垂直照射在線陣CCD感光陣列上。當活動導軌與固定導軌相對運動時,光刀相對于CCD運動,照射在線陣CCD感光陣列不同的位置,得到不同的輸出。再經(jīng)過標定,即得到活動導軌的橫向位移。
圖5 輸出波形關系
圖6 實驗原理圖
3.2 實驗結果分析
在設計CCD驅(qū)動時,一個LOOP1循環(huán)占用27個機器周期(每個MOV指令和SJMP指令均需3個機器周期[3]),而定時器為12T模式,故每個循環(huán)內(nèi)定時器平均計2.25個數(shù),輸出2個像元值。把光刀依次置于若干點處,系統(tǒng)得到的測量值通過RS 232 串口上傳至計算機[12],得到的數(shù)據(jù)如表1所示。對于一個固定位置,系統(tǒng)多次測量之后的標準差不大于0.9,多次測量取平均值可使偏差減小到一個計數(shù)單。
表1 實驗測量結果
由于平均每計1.125個數(shù),對應1個像元,而TCDl501D像元尺寸為7 μm×7 μm,中心距亦為7 μm,故理論上系統(tǒng)經(jīng)標定后分辨率可達0.007 mm以內(nèi)。單片機采用22.118 4 MHz的晶振。原則上,定時器每計數(shù)超過5 000即可產(chǎn)生一個SH脈沖,即SH脈沖周期最小可達2.76 ms。但在實際應用中,每次測量之后需給上位機通信預留時間,故在本設計中,定時器每計數(shù)20 480產(chǎn)生一個SH脈沖,即大概每5.56 ms產(chǎn)生一次SH脈沖波形,再加上中斷處理時間,系統(tǒng)測量周期約為5.7 ms。
4 結 語
本文提供了一套完整的用單片機實現(xiàn)CCD驅(qū)動并處理CCD信號的方案。創(chuàng)新之處在于用硬件的方法獲得CCD輸出脈沖中心位置,具有結構簡單、速度快的優(yōu)點。經(jīng)反復測定,系統(tǒng)測量分辨率可達0.007 mm,測量周期約為5.7 ms,能滿足絕大多數(shù)應用場合的要求。目前,本設計已應用于國家“863”計劃課題“牙齒模型三維掃描系統(tǒng)”的平移軸行程傳感測量,取得良好效果。
參考文獻
[1] 王慶有.CCD應用技術[M].天津:天津大學出版社,2000.
[2] 于之靖,劉月林,諸葛晶昌.高精度雙線陣CCD非接觸直徑測量系統(tǒng)[J].傳感器與微系統(tǒng),2014(1):120?122.
[3] 秦剛,李韓.基于嵌入式技術的線陣 CCD 圖像采集系統(tǒng)[J].儀表技術與傳感器,2014(1):67?68,71.
[4] 陳平,李毅紅.基于線陣CCD的小物體掉落自動檢測系統(tǒng)[J].制造業(yè)自動化,2013(4):45?49.
[5] 劉恩超,鄒鵬,李新,等.基于線陣CCD的光斑定位電路系統(tǒng)設計[J].傳感器與微系統(tǒng),2013(1):85?87.
[6] 周建勇,陳紅兵,袁世順,等.一種CCD驅(qū)動時序參量化設計方法[J].半導體光電,2013(6):1055?1059.
[7] 唐亞軍,郭喜慶,楊敬嫻,等.基于51單片機的線陣CCD驅(qū)動設計[J].微型機與應用,2013,32(12):73?76.
[8] SAN Hong?li, FEI Jia. Design of linear CCD driving circuit based on SCM [J]. Procedia Engineering, 2012, 29: 165?169.
[9] 劉月林,諸葛晶昌.一種光積分時間可調(diào)的線陣CCD驅(qū)動設計[J].工業(yè)控制計算機,2013(12):100?101.
[10] TOSHIBA公司.TCDl501D數(shù)據(jù)手冊[M].東京:TOSHIBA公司,2001.
[11] 宏晶公司.STC11/10xx系列單片機器件手冊[M].深圳:宏晶公司,2008.
[12] 范逸之,陳立元.Visual Basic與RS?232串行通信控制[M].北京:清華大學出版社,2002.
SETB TR0
RETI
圖2 CCD驅(qū)動脈沖波形圖
2 線陣CCD信號處理
2.1 硬件電路與工作原理
本設計使用另一片單片機負責CCD信號的測量和與上位機的通信,電路圖如圖3所示。線陣CCD輸出的圖像信號OS和補償信號DOS經(jīng)過電壓比較器變成二值化信號,進入CPU2的P3.3和P3.4,其中P3.3是單片機的外部中斷輸入INT1。采用單片機的內(nèi)部T0定時器對CCD信號脈沖前沿進行測量計數(shù),用T1定時器對CCD信號脈沖寬度進行測量計數(shù)。系統(tǒng)工作時,首先檢測SH信號,當發(fā)現(xiàn)SH信號到達后,啟動T0計數(shù)。當CCD信號脈沖到達時,經(jīng)過電壓比較器產(chǎn)生一個負脈沖,該負脈沖的下跳沿產(chǎn)生INT1中斷請求,停止T0計數(shù)并啟動T1計數(shù),此時T0計數(shù)值即為脈沖前沿信息。通過軟件查詢P3.4上跳沿的方式判斷脈沖結束時刻,當發(fā)現(xiàn)P3.4電平上跳時停止T1計數(shù),此時T1計數(shù)值即為脈沖寬度信息。T0+[T12]即為測量結果。
圖3 電路圖
2.2 軟件設計
根據(jù)系統(tǒng)工作原理,系統(tǒng)軟件流程如圖4所示。主程序運行之后,SH、OS、DOS、PEK波形的相互關系見圖5。
圖4 系統(tǒng)軟件流程圖
3 系統(tǒng)測試
3.1 實驗設計
為驗證系統(tǒng)的工作速度和測量精度,利用該系統(tǒng)進行了橫向位移的測量實驗。實驗原理圖如圖6所示。
由LED發(fā)出的光受機械狹縫限制,形成一垂直于導軌運動方向的光刀,光刀厚度約0.1 mm,垂直照射在線陣CCD感光陣列上。當活動導軌與固定導軌相對運動時,光刀相對于CCD運動,照射在線陣CCD感光陣列不同的位置,得到不同的輸出。再經(jīng)過標定,即得到活動導軌的橫向位移。
圖5 輸出波形關系
圖6 實驗原理圖
3.2 實驗結果分析
在設計CCD驅(qū)動時,一個LOOP1循環(huán)占用27個機器周期(每個MOV指令和SJMP指令均需3個機器周期[3]),而定時器為12T模式,故每個循環(huán)內(nèi)定時器平均計2.25個數(shù),輸出2個像元值。把光刀依次置于若干點處,系統(tǒng)得到的測量值通過RS 232 串口上傳至計算機[12],得到的數(shù)據(jù)如表1所示。對于一個固定位置,系統(tǒng)多次測量之后的標準差不大于0.9,多次測量取平均值可使偏差減小到一個計數(shù)單。
表1 實驗測量結果
由于平均每計1.125個數(shù),對應1個像元,而TCDl501D像元尺寸為7 μm×7 μm,中心距亦為7 μm,故理論上系統(tǒng)經(jīng)標定后分辨率可達0.007 mm以內(nèi)。單片機采用22.118 4 MHz的晶振。原則上,定時器每計數(shù)超過5 000即可產(chǎn)生一個SH脈沖,即SH脈沖周期最小可達2.76 ms。但在實際應用中,每次測量之后需給上位機通信預留時間,故在本設計中,定時器每計數(shù)20 480產(chǎn)生一個SH脈沖,即大概每5.56 ms產(chǎn)生一次SH脈沖波形,再加上中斷處理時間,系統(tǒng)測量周期約為5.7 ms。
4 結 語
本文提供了一套完整的用單片機實現(xiàn)CCD驅(qū)動并處理CCD信號的方案。創(chuàng)新之處在于用硬件的方法獲得CCD輸出脈沖中心位置,具有結構簡單、速度快的優(yōu)點。經(jīng)反復測定,系統(tǒng)測量分辨率可達0.007 mm,測量周期約為5.7 ms,能滿足絕大多數(shù)應用場合的要求。目前,本設計已應用于國家“863”計劃課題“牙齒模型三維掃描系統(tǒng)”的平移軸行程傳感測量,取得良好效果。
參考文獻
[1] 王慶有.CCD應用技術[M].天津:天津大學出版社,2000.
[2] 于之靖,劉月林,諸葛晶昌.高精度雙線陣CCD非接觸直徑測量系統(tǒng)[J].傳感器與微系統(tǒng),2014(1):120?122.
[3] 秦剛,李韓.基于嵌入式技術的線陣 CCD 圖像采集系統(tǒng)[J].儀表技術與傳感器,2014(1):67?68,71.
[4] 陳平,李毅紅.基于線陣CCD的小物體掉落自動檢測系統(tǒng)[J].制造業(yè)自動化,2013(4):45?49.
[5] 劉恩超,鄒鵬,李新,等.基于線陣CCD的光斑定位電路系統(tǒng)設計[J].傳感器與微系統(tǒng),2013(1):85?87.
[6] 周建勇,陳紅兵,袁世順,等.一種CCD驅(qū)動時序參量化設計方法[J].半導體光電,2013(6):1055?1059.
[7] 唐亞軍,郭喜慶,楊敬嫻,等.基于51單片機的線陣CCD驅(qū)動設計[J].微型機與應用,2013,32(12):73?76.
[8] SAN Hong?li, FEI Jia. Design of linear CCD driving circuit based on SCM [J]. Procedia Engineering, 2012, 29: 165?169.
[9] 劉月林,諸葛晶昌.一種光積分時間可調(diào)的線陣CCD驅(qū)動設計[J].工業(yè)控制計算機,2013(12):100?101.
[10] TOSHIBA公司.TCDl501D數(shù)據(jù)手冊[M].東京:TOSHIBA公司,2001.
[11] 宏晶公司.STC11/10xx系列單片機器件手冊[M].深圳:宏晶公司,2008.
[12] 范逸之,陳立元.Visual Basic與RS?232串行通信控制[M].北京:清華大學出版社,2002.