楊志丹
(海裝天津局,北京,100076)
光電檢測(cè)技術(shù)廣泛應(yīng)用在精確角度測(cè)量設(shè)備中,在對(duì)某型測(cè)角設(shè)備控制軟件測(cè)試中發(fā)現(xiàn),設(shè)備測(cè)試狀態(tài)下電零位應(yīng)顯示0″,誤差應(yīng)該在±2″范圍內(nèi),但實(shí)際使用中有時(shí)出現(xiàn)±6″的變化,超出了正常的零位變化范圍。本文對(duì)該問(wèn)題進(jìn)行了分析和解決。
該光電檢測(cè)設(shè)備的測(cè)角工作原理見(jiàn)圖1。
狹縫在物鏡焦面上,光源發(fā)出的光匯聚在狹縫上,經(jīng)立方鏡并通過(guò)主物鏡變成一束平行光。如果平面反光鏡法線(xiàn)與物鏡主光軸平行,平行光經(jīng)反光鏡原路返回會(huì)聚在物鏡焦點(diǎn)X0處。此時(shí)采集CCD的像素位置,作為設(shè)備的電零位。當(dāng)平面反光鏡偏轉(zhuǎn)一個(gè)角度A時(shí),平行光返回后會(huì)聚在物鏡焦面XL上。
根據(jù)光學(xué)原理,在A角較小時(shí)可采用公式(1):
如果我們精確地測(cè)量出此時(shí)光斑在CCD上的位置XL,就可以計(jì)數(shù)出偏移量L,從而根據(jù)公式(1)計(jì)算出反光鏡的偏轉(zhuǎn)角A,實(shí)現(xiàn)測(cè)角功能。
CCD(Charge Coupled Device)又稱(chēng)為電荷耦合器件,是在半導(dǎo)體材料上精確刻度了光敏感像素,兩兩相鄰的像素具有相同的間距,象一把直尺上的刻線(xiàn)。每個(gè)像素都是一個(gè)光電敏感部件,它能將接收的光能量轉(zhuǎn)換成相應(yīng)的電荷并存貯。在轉(zhuǎn)移時(shí)鐘的驅(qū)動(dòng)下,CCD按照像素的排列順序依次輸出每個(gè)像素上存貯的電荷。所以CCD具有光電轉(zhuǎn)換、存貯和光電掃描的功能??梢愿鶕?jù)每個(gè)像素輸出的信號(hào),確定光斑在CCD上的像素位置。在使用時(shí),要給它提供嚴(yán)格同步的時(shí)鐘驅(qū)動(dòng)信號(hào)。
通過(guò)配置CPU的管腳輸出場(chǎng)同步信號(hào)、主時(shí)鐘信號(hào),主時(shí)鐘信號(hào)通過(guò)計(jì)數(shù)器分頻后,得到CCD時(shí)鐘信號(hào)。A/D時(shí)鐘信號(hào)是通過(guò)分頻后得到的,與CCD時(shí)鐘嚴(yán)格同步。A/D轉(zhuǎn)換器設(shè)計(jì)成自動(dòng)轉(zhuǎn)換模式,通過(guò)A/D時(shí)鐘觸發(fā),轉(zhuǎn)換后的A/D數(shù)據(jù)自動(dòng)輸出。A/D時(shí)鐘和A/D數(shù)據(jù)與CCD驅(qū)動(dòng)時(shí)鐘是對(duì)應(yīng)關(guān)系。
通過(guò)分析和試驗(yàn)驗(yàn)證,確認(rèn)是在程序初始化過(guò)程中,軟硬件的不協(xié)調(diào)性造成測(cè)角軟件零位不一致。
通過(guò)認(rèn)真分析硬件測(cè)角電路,在初始化過(guò)程中,主時(shí)鐘信號(hào)在復(fù)位后為輸入狀態(tài),可造成計(jì)數(shù)器芯片的CLK口狀態(tài)的不確定性,且只發(fā)現(xiàn)設(shè)備加電后會(huì)偶然出現(xiàn)零位發(fā)生變化,而在隨后的測(cè)試過(guò)程中測(cè)角數(shù)據(jù)穩(wěn)定,沒(méi)有其它異?,F(xiàn)象,可以排除測(cè)角電路故障的可能性;
通過(guò)筆錄儀監(jiān)測(cè)各個(gè)時(shí)鐘信號(hào),發(fā)現(xiàn)在軟件啟動(dòng)主時(shí)鐘信號(hào)時(shí)鐘前,若計(jì)數(shù)器的CLK管腳沒(méi)有異常變化,CCD測(cè)角零位正常;若計(jì)數(shù)器的CLK管腳有跳變,CCD測(cè)角零位變化約6″左右。
涉及CCD測(cè)角的軟件模塊共兩個(gè):一個(gè)是初始化模塊;一個(gè)是讀CCD信號(hào)模塊。
初始化模塊涉及CCD部分的流程。設(shè)備開(kāi)機(jī)或軟件復(fù)位后,首先置IOPC7管腳低電平,使計(jì)數(shù)器復(fù)位,即計(jì)數(shù)器所有輸出管腳均為低電平狀態(tài)。其次,配置場(chǎng)同步信號(hào)和主時(shí)鐘信號(hào)管腳為輸出可編程脈寬調(diào)制管腳,并使二者同步輸出,設(shè)置CPU內(nèi)部計(jì)數(shù)器T1、T2,使計(jì)數(shù)器周期和相位滿(mǎn)足要求。最后,同時(shí)啟動(dòng)計(jì)數(shù)器T1、T2開(kāi)始計(jì)數(shù),并對(duì)應(yīng)選通場(chǎng)同步信號(hào)和主時(shí)鐘信號(hào)的輸出,給外部CCD芯片提供驅(qū)動(dòng)時(shí)鐘。
讀CCD信號(hào)模塊的流程。軟件首先檢測(cè)場(chǎng)同步信號(hào)的下降沿,之后按照A/D時(shí)鐘的速率,以嚴(yán)格的程序執(zhí)行時(shí)間來(lái)讀取A/D轉(zhuǎn)換的數(shù)據(jù),像素計(jì)數(shù)器記錄對(duì)應(yīng)于A/D轉(zhuǎn)換結(jié)果的CCD像素位置。讀CCD信號(hào)模塊實(shí)現(xiàn)的時(shí)序如圖7所示。圖中軟件讀數(shù)據(jù)時(shí)序(D0、D1、……,S1、S2、……S1024)與CCD信號(hào)輸出是一一對(duì)應(yīng)的。
圖7 讀CCD信號(hào)時(shí)序
2.3.1 實(shí)現(xiàn)CCD測(cè)角的步驟
a.在軟件中配置時(shí)鐘管腳,同步啟動(dòng)兩個(gè)時(shí)鐘信號(hào)(場(chǎng)同步和主時(shí)鐘);
b.主時(shí)鐘信號(hào)通過(guò)硬件電路分頻后得到CCD時(shí)鐘和A/D時(shí)鐘;
c.在軟件中檢測(cè)場(chǎng)同步信號(hào),并依次讀取A/D轉(zhuǎn)換結(jié)果;
d.根據(jù)光斑在CCD像素上的成像位置,換算出角度數(shù)據(jù)。
2.3.2 導(dǎo)致測(cè)角零位變化的原因
a.CPU上電或復(fù)位后,其所有I/O口均被復(fù)位成輸入口。
b.當(dāng)主時(shí)鐘信號(hào)口未被配置成輸出口時(shí),對(duì)于主時(shí)鐘信號(hào)線(xiàn)上連接的CPU、計(jì)數(shù)器和反相器三個(gè)芯片的相應(yīng)管腳,均為輸入管腳,該信號(hào)線(xiàn)上的狀態(tài)實(shí)際上是不確定的;
c.由軟件初始化模塊流程可知,在主時(shí)鐘信號(hào)口被配置成輸出口前,計(jì)數(shù)器已經(jīng)被復(fù)位,所有輸出均為低電平狀態(tài);
d.在主時(shí)鐘信號(hào)口被配置成輸出口前,如果主時(shí)鐘信號(hào)線(xiàn)上有高低電平的變化,則計(jì)數(shù)器的分頻輸出管腳將不再是全零狀態(tài),即使之后同時(shí)啟動(dòng)場(chǎng)同步信號(hào)和計(jì)數(shù)器,實(shí)際上得到的場(chǎng)同步信號(hào)和CCD時(shí)鐘信號(hào)將不能?chē)?yán)格同步;
e.場(chǎng)同步與CCD時(shí)鐘的相位變化如圖8所示,而軟件讀CCD信號(hào)模塊仍按照CCD信號(hào)模塊的讀流程讀取A/D結(jié)果,導(dǎo)致實(shí)際讀取的像素?cái)?shù)據(jù)與軟件計(jì)數(shù)器中記錄的結(jié)果不一致,即如圖8所示,軟件中讀取的D0數(shù)據(jù),實(shí)際上已是D1的數(shù)據(jù),這樣導(dǎo)致軟件計(jì)算得到的光斑像素位置與實(shí)際情況有差別;
圖8 場(chǎng)同步與CCD時(shí)鐘的相位變化
f.從圖2中可以看到,每個(gè)CCD時(shí)鐘信號(hào)的跳變沿,CCD器件對(duì)應(yīng)輸出一個(gè)像素信號(hào),而場(chǎng)同步信號(hào)的高電平脈寬與CCD時(shí)鐘沿跳變周期相同(兩倍于主時(shí)鐘周期),故場(chǎng)同步信號(hào)與CCD時(shí)鐘信號(hào)相位相差最多1個(gè)主時(shí)鐘周期。故CCD測(cè)角零位的變化為一個(gè)像素,而一個(gè)像素對(duì)應(yīng)的角度值一般在6″左右,所以測(cè)角零位變化在6″左右。
如上所述,造成零位變化的原因是場(chǎng)同步信號(hào)和CCD時(shí)鐘信號(hào)不能?chē)?yán)格同步,為使場(chǎng)同步信號(hào)和CCD時(shí)鐘信號(hào)嚴(yán)格同步,可采取兩種措施:
a.對(duì)軟件的初始化部分進(jìn)行調(diào)整,在復(fù)位計(jì)數(shù)器芯片前先將計(jì)數(shù)器管腳設(shè)置成輸出口,確保計(jì)數(shù)器的CLK口處于確定狀態(tài);
b.在計(jì)數(shù)器管腳與電源+5V之間連接一個(gè)10KΩ的上拉電阻,使計(jì)數(shù)器管腳在有信號(hào)輸出之前,始終為高電平, 確保計(jì)數(shù)器的CLK管腳處于高電平狀態(tài)。
經(jīng)分析和比較,選擇了上述的a條的方法,對(duì)軟件的初始化部分進(jìn)行了調(diào)整,并對(duì)更改后的軟件進(jìn)行了多次測(cè)試,通過(guò)筆錄儀對(duì)時(shí)鐘信號(hào)進(jìn)行了監(jiān)測(cè),未再出現(xiàn)測(cè)角零位變化的現(xiàn)象,證明軟件更改是有效的。
[1] 徐家驊,工程光學(xué)基礎(chǔ),北京: 機(jī)械工業(yè)出版社,1988
[2] 《TOSHIBA CCD Linear Image Sense CCD TCD132D》1997 TOSHIBA Semiconductor
[3] 王慶有等著《CCD應(yīng)用技術(shù)》天津大學(xué)精儀系 1992
[4] 《TMS320F/C240 DSP Controllers Refernce Guide Peripheral Library and Specific Devices》1999 TEXAS INSTRUMENTS
[5] 馮克誠(chéng)、劉景生。紅外光學(xué)系統(tǒng),北京:兵器工業(yè)出版社,1994