楊志丹
(海裝天津局,北京,100076)
光電檢測技術廣泛應用在精確角度測量設備中,在對某型測角設備控制軟件測試中發(fā)現(xiàn),設備測試狀態(tài)下電零位應顯示0″,誤差應該在±2″范圍內(nèi),但實際使用中有時出現(xiàn)±6″的變化,超出了正常的零位變化范圍。本文對該問題進行了分析和解決。

該光電檢測設備的測角工作原理見圖1。
狹縫在物鏡焦面上,光源發(fā)出的光匯聚在狹縫上,經(jīng)立方鏡并通過主物鏡變成一束平行光。如果平面反光鏡法線與物鏡主光軸平行,平行光經(jīng)反光鏡原路返回會聚在物鏡焦點X0處。此時采集CCD的像素位置,作為設備的電零位。當平面反光鏡偏轉(zhuǎn)一個角度A時,平行光返回后會聚在物鏡焦面XL上。
根據(jù)光學原理,在A角較小時可采用公式(1):

如果我們精確地測量出此時光斑在CCD上的位置XL,就可以計數(shù)出偏移量L,從而根據(jù)公式(1)計算出反光鏡的偏轉(zhuǎn)角A,實現(xiàn)測角功能。
CCD(Charge Coupled Device)又稱為電荷耦合器件,是在半導體材料上精確刻度了光敏感像素,兩兩相鄰的像素具有相同的間距,象一把直尺上的刻線。每個像素都是一個光電敏感部件,它能將接收的光能量轉(zhuǎn)換成相應的電荷并存貯。在轉(zhuǎn)移時鐘的驅(qū)動下,CCD按照像素的排列順序依次輸出每個像素上存貯的電荷。所以CCD具有光電轉(zhuǎn)換、存貯和光電掃描的功能。可以根據(jù)每個像素輸出的信號,確定光斑在CCD上的像素位置。在使用時,要給它提供嚴格同步的時鐘驅(qū)動信號。
通過配置CPU的管腳輸出場同步信號、主時鐘信號,主時鐘信號通過計數(shù)器分頻后,得到CCD時鐘信號。A/D時鐘信號是通過分頻后得到的,與CCD時鐘嚴格同步。A/D轉(zhuǎn)換器設計成自動轉(zhuǎn)換模式,通過A/D時鐘觸發(fā),轉(zhuǎn)換后的A/D數(shù)據(jù)自動輸出。A/D時鐘和A/D數(shù)據(jù)與CCD驅(qū)動時鐘是對應關系。
通過分析和試驗驗證,確認是在程序初始化過程中,軟硬件的不協(xié)調(diào)性造成測角軟件零位不一致。
通過認真分析硬件測角電路,在初始化過程中,主時鐘信號在復位后為輸入狀態(tài),可造成計數(shù)器芯片的CLK口狀態(tài)的不確定性,且只發(fā)現(xiàn)設備加電后會偶然出現(xiàn)零位發(fā)生變化,而在隨后的測試過程中測角數(shù)據(jù)穩(wěn)定,沒有其它異常現(xiàn)象,可以排除測角電路故障的可能性;
通過筆錄儀監(jiān)測各個時鐘信號,發(fā)現(xiàn)在軟件啟動主時鐘信號時鐘前,若計數(shù)器的CLK管腳沒有異常變化,CCD測角零位正常;若計數(shù)器的CLK管腳有跳變,CCD測角零位變化約6″左右。
涉及CCD測角的軟件模塊共兩個:一個是初始化模塊;一個是讀CCD信號模塊。
初始化模塊涉及CCD部分的流程。設備開機或軟件復位后,首先置IOPC7管腳低電平,使計數(shù)器復位,即計數(shù)器所有輸出管腳均為低電平狀態(tài)。其次,配置場同步信號和主時鐘信號管腳為輸出可編程脈寬調(diào)制管腳,并使二者同步輸出,設置CPU內(nèi)部計數(shù)器T1、T2,使計數(shù)器周期和相位滿足要求。最后,同時啟動計數(shù)器T1、T2開始計數(shù),并對應選通場同步信號和主時鐘信號的輸出,給外部CCD芯片提供驅(qū)動時鐘。
讀CCD信號模塊的流程。軟件首先檢測場同步信號的下降沿,之后按照A/D時鐘的速率,以嚴格的程序執(zhí)行時間來讀取A/D轉(zhuǎn)換的數(shù)據(jù),像素計數(shù)器記錄對應于A/D轉(zhuǎn)換結(jié)果的CCD像素位置。讀CCD信號模塊實現(xiàn)的時序如圖7所示。圖中軟件讀數(shù)據(jù)時序(D0、D1、……,S1、S2、……S1024)與CCD信號輸出是一一對應的。

圖7 讀CCD信號時序
2.3.1 實現(xiàn)CCD測角的步驟
a.在軟件中配置時鐘管腳,同步啟動兩個時鐘信號(場同步和主時鐘);
b.主時鐘信號通過硬件電路分頻后得到CCD時鐘和A/D時鐘;
c.在軟件中檢測場同步信號,并依次讀取A/D轉(zhuǎn)換結(jié)果;
d.根據(jù)光斑在CCD像素上的成像位置,換算出角度數(shù)據(jù)。
2.3.2 導致測角零位變化的原因
a.CPU上電或復位后,其所有I/O口均被復位成輸入口。
b.當主時鐘信號口未被配置成輸出口時,對于主時鐘信號線上連接的CPU、計數(shù)器和反相器三個芯片的相應管腳,均為輸入管腳,該信號線上的狀態(tài)實際上是不確定的;
c.由軟件初始化模塊流程可知,在主時鐘信號口被配置成輸出口前,計數(shù)器已經(jīng)被復位,所有輸出均為低電平狀態(tài);
d.在主時鐘信號口被配置成輸出口前,如果主時鐘信號線上有高低電平的變化,則計數(shù)器的分頻輸出管腳將不再是全零狀態(tài),即使之后同時啟動場同步信號和計數(shù)器,實際上得到的場同步信號和CCD時鐘信號將不能嚴格同步;
e.場同步與CCD時鐘的相位變化如圖8所示,而軟件讀CCD信號模塊仍按照CCD信號模塊的讀流程讀取A/D結(jié)果,導致實際讀取的像素數(shù)據(jù)與軟件計數(shù)器中記錄的結(jié)果不一致,即如圖8所示,軟件中讀取的D0數(shù)據(jù),實際上已是D1的數(shù)據(jù),這樣導致軟件計算得到的光斑像素位置與實際情況有差別;

圖8 場同步與CCD時鐘的相位變化
f.從圖2中可以看到,每個CCD時鐘信號的跳變沿,CCD器件對應輸出一個像素信號,而場同步信號的高電平脈寬與CCD時鐘沿跳變周期相同(兩倍于主時鐘周期),故場同步信號與CCD時鐘信號相位相差最多1個主時鐘周期。故CCD測角零位的變化為一個像素,而一個像素對應的角度值一般在6″左右,所以測角零位變化在6″左右。
如上所述,造成零位變化的原因是場同步信號和CCD時鐘信號不能嚴格同步,為使場同步信號和CCD時鐘信號嚴格同步,可采取兩種措施:
a.對軟件的初始化部分進行調(diào)整,在復位計數(shù)器芯片前先將計數(shù)器管腳設置成輸出口,確保計數(shù)器的CLK口處于確定狀態(tài);
b.在計數(shù)器管腳與電源+5V之間連接一個10KΩ的上拉電阻,使計數(shù)器管腳在有信號輸出之前,始終為高電平, 確保計數(shù)器的CLK管腳處于高電平狀態(tài)。
經(jīng)分析和比較,選擇了上述的a條的方法,對軟件的初始化部分進行了調(diào)整,并對更改后的軟件進行了多次測試,通過筆錄儀對時鐘信號進行了監(jiān)測,未再出現(xiàn)測角零位變化的現(xiàn)象,證明軟件更改是有效的。
[1] 徐家驊,工程光學基礎,北京: 機械工業(yè)出版社,1988
[2] 《TOSHIBA CCD Linear Image Sense CCD TCD132D》1997 TOSHIBA Semiconductor
[3] 王慶有等著《CCD應用技術》天津大學精儀系 1992
[4] 《TMS320F/C240 DSP Controllers Refernce Guide Peripheral Library and Specific Devices》1999 TEXAS INSTRUMENTS
[5] 馮克誠、劉景生。紅外光學系統(tǒng),北京:兵器工業(yè)出版社,1994