文獻(xiàn)標(biāo)識(shí)碼: B
文章編號(hào): 0258-7998(2012)09-0082-03
星敏感器是一種高精度的航天器姿態(tài)測(cè)量?jī)x器,,通過探測(cè)天球上不同位置的恒星并進(jìn)行解運(yùn)算,,來確定航天器的姿態(tài),其工作的可靠性對(duì)航天器姿態(tài)的測(cè)量和控制起著重要作用,??臻g環(huán)境溫度和太陽光熱效應(yīng)的變化對(duì)星敏感器的光學(xué)系統(tǒng)成像質(zhì)量有很大影響,會(huì)造成恒星成像光斑偏移和成像光斑能量分布變化[1],;光學(xué)系統(tǒng)中的CCD組件對(duì)星敏感器探測(cè)精度影響比較大,,光電子的熱運(yùn)動(dòng)會(huì)導(dǎo)致暗電流噪聲,且暗電流噪聲對(duì)溫度非常敏感,,溫度每升高15℃,,噪聲會(huì)增加一個(gè)量級(jí)[2];此外會(huì)造成鏡筒的熱變形,,從而導(dǎo)致透鏡幾何位置偏離原來固定的安裝位置,,透鏡的曲率和折射率也會(huì)隨著溫度的變化而變化[3]。因此,,星敏感器環(huán)境溫度的測(cè)量和控制對(duì)提高星敏感器的測(cè)量起著重要作用,。有研究人員提出用熱敏電阻加模數(shù)轉(zhuǎn)換器對(duì)CCD溫度進(jìn)行測(cè)量[2],但熱敏電阻感溫時(shí)間長(zhǎng),,不適合溫度的實(shí)時(shí)測(cè)量,。本文利用ADI公司推出的10位高精度數(shù)字溫度傳感器AD7416,與可編程邏輯器件FPGA構(gòu)成了星敏感器的溫度測(cè)量控制系統(tǒng),,再通過芯片內(nèi)部的10位模數(shù)轉(zhuǎn)換器將采集到的溫度值轉(zhuǎn)換為數(shù)字量,,通過FPGA內(nèi)部的判斷邏輯,對(duì)星敏感器的溫度進(jìn)行調(diào)節(jié)。AD7416高精度測(cè)量和FPGA對(duì)數(shù)據(jù)的高速并行處理滿足系統(tǒng)溫度快速測(cè)量和控制的要求,。
1 系統(tǒng)硬件方案設(shè)計(jì)
由于星敏感器的光學(xué)系統(tǒng)對(duì)溫度的變化非常敏感,,因此,選擇高精度溫度傳感器對(duì)星敏感器的成像質(zhì)量和工作穩(wěn)定性具有重要意義,。本系統(tǒng)中所使用的CCD工作在-200℃~0℃范圍內(nèi)時(shí),,星敏感器測(cè)量誤差最小,對(duì)溫度傳感器的感溫時(shí)間要求較高,,本文選用AD7416溫度傳感器作為CCD溫度測(cè)量器件,。AD7416[4]是一款多功能溫度傳感器,內(nèi)部采用10位逐次逼近型模數(shù)轉(zhuǎn)換器,,典型的溫度轉(zhuǎn)換時(shí)間為400 ?滋s,分辨率可達(dá)0.25℃,測(cè)量范圍為-40℃~+125℃,,最低功耗可達(dá)1.2 ?滋W,采用I2C總線進(jìn)行數(shù)據(jù)傳輸,,并且具有過溫保護(hù)和采樣防錯(cuò)機(jī)制,。由于AD7416內(nèi)部采用I2C總線接口,使得它很容易和其他器件組成溫度測(cè)量系統(tǒng),。目前基于AD7416的溫度測(cè)量系統(tǒng)大多數(shù)采用的是單片機(jī)作為主控制器[5-6],,其結(jié)構(gòu)簡(jiǎn)單,容易編程,,在工業(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)成了星敏感器的溫度測(cè)量控制系統(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)的組成和測(cè)試框圖如圖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ò)誤序列的長(zhǎng)度,表示檢測(cè)到多少個(gè)錯(cuò)誤序列后OTI輸出有效,,缺省為01,,表示檢測(cè)到一個(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),,將所測(cè)得到的溫度值通過RS232接口傳送給計(jì)算機(jī),。為了實(shí)時(shí)觀測(cè)CCD溫度值,利用VC編寫了的溫控?cái)?shù)據(jù)接收軟件,。實(shí)驗(yàn)結(jié)果表明,,星敏感器工作在正常狀態(tài),其測(cè)量誤差在允許范圍內(nèi),。
本文在研究環(huán)境溫度對(duì)星敏感器測(cè)量精度影響的基礎(chǔ)上,,利用高精度溫度傳感器AD7416與FPGA設(shè)計(jì)了星敏感器的溫度測(cè)量系統(tǒng),對(duì)星敏感器的環(huán)境溫度進(jìn)行測(cè)量和控制,。對(duì)系統(tǒng)進(jìn)行了時(shí)序仿真和硬件平臺(tái)仿真,。實(shí)驗(yàn)仿真結(jié)果表明,本系統(tǒng)能快速測(cè)量環(huán)境溫度,,使星敏感器工作在-20℃~0℃的穩(wěn)定范圍內(nèi),,減小了環(huán)境溫度對(duì)星敏感器光學(xué)系統(tǒng)結(jié)構(gòu)和成像質(zhì)量的影響,提高了星敏感器的測(cè)量精度,。
參考文獻(xiàn)
[1] 劉海波,,黃水花,譚吉春,等. 熱-光效應(yīng)對(duì)星敏感器測(cè)量準(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)溫度測(cè)量系統(tǒng)的實(shí)現(xiàn)[J].湖北第二師范學(xué)院學(xué)報(bào),,2010,27(2):80-83.
[6] 李學(xué)海,,董丹,李建良. 用AD7416+PIC16F84+PC機(jī)構(gòu)建的測(cè)溫系統(tǒng)[J]. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2004(11): 65-68.