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