文獻(xiàn)標(biāo)識(shí)碼: B
文章編號(hào): 0258-7998(2012)09-0082-03
星敏感器是一種高精度的航天器姿態(tài)測量儀器,通過探測天球上不同位置的恒星并進(jìn)行解運(yùn)算,來確定航天器的姿態(tài),其工作的可靠性對(duì)航天器姿態(tài)的測量和控制起著重要作用??臻g環(huán)境溫度和太陽光熱效應(yīng)的變化對(duì)星敏感器的光學(xué)系統(tǒng)成像質(zhì)量有很大影響,會(huì)造成恒星成像光斑偏移和成像光斑能量分布變化[1];光學(xué)系統(tǒng)中的CCD組件對(duì)星敏感器探測精度影響比較大,光電子的熱運(yùn)動(dòng)會(huì)導(dǎo)致暗電流噪聲,且暗電流噪聲對(duì)溫度非常敏感,溫度每升高15℃,噪聲會(huì)增加一個(gè)量級(jí)[2];此外會(huì)造成鏡筒的熱變形,從而導(dǎo)致透鏡幾何位置偏離原來固定的安裝位置,透鏡的曲率和折射率也會(huì)隨著溫度的變化而變化[3]。因此,星敏感器環(huán)境溫度的測量和控制對(duì)提高星敏感器的測量起著重要作用。有研究人員提出用熱敏電阻加模數(shù)轉(zhuǎn)換器對(duì)CCD溫度進(jìn)行測量[2],但熱敏電阻感溫時(shí)間長,不適合溫度的實(shí)時(shí)測量。本文利用ADI公司推出的10位高精度數(shù)字溫度傳感器AD7416,與可編程邏輯器件FPGA構(gòu)成了星敏感器的溫度測量控制系統(tǒng),再通過芯片內(nèi)部的10位模數(shù)轉(zhuǎn)換器將采集到的溫度值轉(zhuǎn)換為數(shù)字量,通過FPGA內(nèi)部的判斷邏輯,對(duì)星敏感器的溫度進(jìn)行調(diào)節(jié)。AD7416高精度測量和FPGA對(duì)數(shù)據(jù)的高速并行處理滿足系統(tǒng)溫度快速測量和控制的要求。
1 系統(tǒng)硬件方案設(shè)計(jì)
由于星敏感器的光學(xué)系統(tǒng)對(duì)溫度的變化非常敏感,因此,選擇高精度溫度傳感器對(duì)星敏感器的成像質(zhì)量和工作穩(wěn)定性具有重要意義。本系統(tǒng)中所使用的CCD工作在-200℃~0℃范圍內(nèi)時(shí),星敏感器測量誤差最小,對(duì)溫度傳感器的感溫時(shí)間要求較高,本文選用AD7416溫度傳感器作為CCD溫度測量器件。AD7416[4]是一款多功能溫度傳感器,內(nèi)部采用10位逐次逼近型模數(shù)轉(zhuǎn)換器,典型的溫度轉(zhuǎn)換時(shí)間為400 ?滋s,分辨率可達(dá)0.25℃,測量范圍為-40℃~+125℃,最低功耗可達(dá)1.2 ?滋W,采用I2C總線進(jìn)行數(shù)據(jù)傳輸,并且具有過溫保護(hù)和采樣防錯(cuò)機(jī)制。由于AD7416內(nèi)部采用I2C總線接口,使得它很容易和其他器件組成溫度測量系統(tǒng)。目前基于AD7416的溫度測量系統(tǒng)大多數(shù)采用的是單片機(jī)作為主控制器[5-6],其結(jié)構(gòu)簡單,容易編程,在工業(yè)控制領(lǐng)域得到了廣泛應(yīng)用。由于單片機(jī)資源有限,外部可用的I/O接口有限,工作穩(wěn)定性不好,程序編寫依靠具體的器件,不具有可移植性。為了滿足系統(tǒng)實(shí)時(shí)性要求,能在復(fù)雜環(huán)境下穩(wěn)定工作,本系統(tǒng)采用資源更為豐富、可靠性更高的FPGA作為AD7416的主控制器。Xilinx公司Spartan-3系列的FPGA器件XC3S400具有豐富的內(nèi)部邏輯資源和外部接口資源,最大I/O數(shù)可達(dá)264, 內(nèi)部的RAM塊為288 KB,廣泛應(yīng)用于控制領(lǐng)域。利用FPGA作為主控制器,AD7416作為從設(shè)備,構(gòu)成了星敏感器的溫度測量控制系統(tǒng),AD7416和FPGA之間采用的是I2C通信協(xié)議,當(dāng)溫度高于0℃時(shí),啟動(dòng)制冷系統(tǒng)對(duì)星敏感器制冷,使其工作在0℃以下。為了驗(yàn)證程序的正確性,通過RS232接口將采集到的溫度值傳送給計(jì)算機(jī),并通過上位機(jī)軟件來觀察采集到的溫度值和當(dāng)前制冷器的工作狀態(tài)。系統(tǒng)的組成和測試框圖如圖1所示。
采用Verilog HDL設(shè)計(jì)AD7416的控制程序。由于Verilog HDL是IEEE的標(biāo)準(zhǔn),能應(yīng)用于各種型號(hào)的FPGA和CPLD,因此,程序具有可移植性,且FPGA的執(zhí)行效率更高,程序運(yùn)行穩(wěn)定性更好,滿足星敏感器實(shí)時(shí)溫控的要求。
2 系統(tǒng)功能模塊及時(shí)序設(shè)計(jì)
2.1 硬件功能模塊設(shè)計(jì)
圖2是系統(tǒng)具體的硬件連接圖,由外部50 MHz晶振作為系統(tǒng)輸入時(shí)鐘, FPGA與AD7416之間采用I2C通信,AD7416將溫度轉(zhuǎn)換為數(shù)字量后通過SDA數(shù)據(jù)線串行傳送到FPGA內(nèi)部緩存器中,F(xiàn)PGA將采集到的溫度值轉(zhuǎn)換為并行數(shù)據(jù),輸出給顯示設(shè)備或作為其他控制邏輯的輸入;FLAG是星敏感器制冷控制信號(hào)。
AD7416采用串行總線進(jìn)行數(shù)據(jù)傳輸,時(shí)鐘周期最小為25 ?滋s,即時(shí)鐘頻率最高為400 kHz,在FPGA內(nèi)需要對(duì)輸入50 MHz的晶振進(jìn)行分頻,本系統(tǒng)中采用125 kHz時(shí)鐘對(duì)AD7416進(jìn)行讀寫操作,讀寫的時(shí)序符合I2C時(shí)序要求;溫度傳感器輸出的數(shù)據(jù)是串行輸出的,而且是高10位有效,低6位無效,F(xiàn)PGA需要將串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)輸出,同時(shí)根據(jù)溫度值來輸出制冷器的控制信號(hào),F(xiàn)PGA功能模塊設(shè)計(jì)如圖3所示。
2.2 系統(tǒng)控制程序設(shè)計(jì)
溫度傳感器AD7416采用I2C總線接口。I2C總線是PHILIPS公司推出的一種串行總線,是具備多主機(jī)系統(tǒng)所需的包括總線裁決和高低速器件同步功能的高性能串行總線,其傳輸速率在標(biāo)準(zhǔn)模式下可達(dá)100 kb/s,在快速模式下可達(dá)400 kb/s,在高速模式下可達(dá)3.4 Mb/s。I2C總線只有兩根雙向信號(hào)線:數(shù)據(jù)線SDA和時(shí)鐘線SCL;I2C總線通過上拉電阻接正電源,在總線空閑時(shí)均保持高電平。當(dāng)連接到總線上的任一器件輸出低電平時(shí),總線信號(hào)將被拉低。連接到I2C總線上的器件都有唯一地址,因此可以有多個(gè)器件同時(shí)連接到I2C總線上,通過不同地址片選來確定當(dāng)前工作的器件。I2C協(xié)議規(guī)定SDA上的數(shù)據(jù)必須在時(shí)鐘的高電平期間保持穩(wěn)定,數(shù)據(jù)的變化只能發(fā)生在時(shí)鐘的低電平期,因?yàn)樵跁r(shí)鐘高電平期間數(shù)據(jù)線上由高電平跳變到低電平被認(rèn)為是起始信號(hào),由低電平跳變到高電平被認(rèn)為是停止信號(hào)。主機(jī)每發(fā)送一個(gè)字節(jié)給從機(jī),從機(jī)會(huì)產(chǎn)生一個(gè)響應(yīng),主機(jī)每讀取一個(gè)字節(jié),也要向從機(jī)發(fā)送一個(gè)響應(yīng)。
AD7416中的I2C總線接口與標(biāo)準(zhǔn)的I2C協(xié)議略有不同,其時(shí)鐘線SCL是單向傳送,SDA是雙向傳送,數(shù)據(jù)的傳送符合標(biāo)準(zhǔn)的I2C協(xié)議。AD7416串行地址的前4位是固定的,為1001,后三位串行地址由A2~A0確定,原理圖中將A2~A0直接接地,因此, AD7416的串行地址為90 H。AD7416內(nèi)部有4個(gè)數(shù)據(jù)寄存器,數(shù)據(jù)寄存器的地址由內(nèi)部的地址寄存器指定,前5位固定為0, 低兩位(P1和P0)表示四個(gè)數(shù)據(jù)寄存器地址,其地址分配如表1所示。
對(duì)于AD7416,配置寄存器的高三位缺省設(shè)置為000;D3~D4設(shè)置錯(cuò)誤序列的長度,表示檢測到多少個(gè)錯(cuò)誤序列后OTI輸出有效,缺省為01,表示檢測到一個(gè)錯(cuò)誤序列后OTI輸出有效;D2設(shè)置OTI輸出的極性;D1設(shè)置AD7416是處于比較模式(=0)還是中斷模式(=1);D0設(shè)置工作方式為正常工作方式(=0,缺省設(shè)置)或低功耗方式(=1),本系統(tǒng)中錯(cuò)誤序列計(jì)數(shù)器采用缺省配置,器件工作在比較模式,采用正常工作模式,因此配置寄存器的配置數(shù)據(jù)為04H。
對(duì)AD7416的讀/寫時(shí)序如圖4所示。
從讀寫時(shí)序可以看出,每讀或?qū)? B需要9個(gè)時(shí)鐘周期,因此采用有限狀態(tài)機(jī)來設(shè)計(jì)讀寫控制程序。為了滿足I2C時(shí)序要求,避免在時(shí)鐘高電平期間數(shù)據(jù)線上的數(shù)據(jù)跳變,設(shè)計(jì)時(shí)鐘時(shí)采用不同的跳變沿觸發(fā)。分頻后得到的時(shí)鐘作為狀態(tài)機(jī)的工作時(shí)鐘,在其上升沿觸發(fā);AD7416的SCL時(shí)鐘在分頻時(shí)鐘的下降沿觸發(fā),對(duì)其進(jìn)行二分頻得到SCL時(shí)鐘信號(hào)。因此,狀態(tài)機(jī)工作時(shí)鐘的上升沿發(fā)生在SCL的高電平期和低電平期,而不會(huì)在SCL的跳變沿發(fā)生,通過對(duì)此時(shí)SCL的狀態(tài)(低電平/高電平)的判斷來改變或保持?jǐn)?shù)據(jù),避免了數(shù)據(jù)的混亂,滿足I2C數(shù)據(jù)傳輸協(xié)議的要求。
讀寫控制模塊和起始、停止信號(hào)均用有限狀態(tài)機(jī)設(shè)計(jì),將起始、停止和讀1 B、寫1 B設(shè)計(jì)成task子程序,方便在讀、寫操作時(shí)調(diào)用。
3 實(shí)驗(yàn)結(jié)果
利用示波器觀察SDA和SCL上的波形,驗(yàn)證其是否符合I2C時(shí)序要求。圖5為示波器觀察到的波形圖,從圖中可以看出程序符合I2C協(xié)議,在SCL高電平期間,SDA從高電平跳變到低電平為起始信號(hào),表明從下一個(gè)時(shí)鐘周期開始傳送數(shù)據(jù)。從圖5(a)中可以看出,起始信號(hào)后,SDA傳送的是AD7416串行地址90H,表示此時(shí)對(duì)AD7416進(jìn)行寫操作,且數(shù)據(jù)的變化發(fā)生在SCL低電平期,在SCL高電平期間數(shù)據(jù)是保持穩(wěn)定的,在SCL高電平期間,SDA由低電平跳變到高電平即結(jié)束數(shù)據(jù)傳送。圖5(b)中SDA上傳送的是串行地址91H,表示此后將讀取AD7416轉(zhuǎn)換的溫度值,仿真結(jié)果表明程序符合I2C協(xié)議要求。
將AD7416固定在CCD傳感器背面,對(duì)星敏感器進(jìn)行環(huán)境實(shí)驗(yàn),將所測得到的溫度值通過RS232接口傳送給計(jì)算機(jī)。為了實(shí)時(shí)觀測CCD溫度值,利用VC編寫了的溫控?cái)?shù)據(jù)接收軟件。實(shí)驗(yàn)結(jié)果表明,星敏感器工作在正常狀態(tài),其測量誤差在允許范圍內(nèi)。
本文在研究環(huán)境溫度對(duì)星敏感器測量精度影響的基礎(chǔ)上,利用高精度溫度傳感器AD7416與FPGA設(shè)計(jì)了星敏感器的溫度測量系統(tǒng),對(duì)星敏感器的環(huán)境溫度進(jìn)行測量和控制。對(duì)系統(tǒng)進(jìn)行了時(shí)序仿真和硬件平臺(tái)仿真。實(shí)驗(yàn)仿真結(jié)果表明,本系統(tǒng)能快速測量環(huán)境溫度,使星敏感器工作在-20℃~0℃的穩(wěn)定范圍內(nèi),減小了環(huán)境溫度對(duì)星敏感器光學(xué)系統(tǒng)結(jié)構(gòu)和成像質(zhì)量的影響,提高了星敏感器的測量精度。
參考文獻(xiàn)
[1] 劉海波,黃水花,譚吉春,等. 熱-光效應(yīng)對(duì)星敏感器測量準(zhǔn)確度地影響[J]. 光子學(xué)報(bào), 2009,38(7):1835-1839.
[2] 王辰,王宏強(qiáng),陳明華,等. 星敏感器成像電路噪聲分析及降噪處理[J]. 激光與紅外,2008,38(7):692-696.
[3] 劉海波,譚吉春,沈本劍. 星敏感器光學(xué)系統(tǒng)的熱/結(jié)構(gòu)/光分析[J]. 宇航學(xué)報(bào), 2010,31(3):875-879.
[4] 10-Bit Digital Temperature Sensor (AD7416) and Four Single-Channel ADCs (AD7417/AD7418).
[5] 唐宏亮. 基于AD7416多點(diǎn)溫度測量系統(tǒng)的實(shí)現(xiàn)[J].湖北第二師范學(xué)院學(xué)報(bào),2010,27(2):80-83.
[6] 李學(xué)海,董丹,李建良. 用AD7416+PIC16F84+PC機(jī)構(gòu)建的測溫系統(tǒng)[J]. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2004(11): 65-68.