《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 高精度星敏感器溫度測量系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
高精度星敏感器溫度測量系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
來源:電子技術(shù)應(yīng)用2012年第9期
李 平1,2,魏仲慧1,何 昕1,何家維1,2
1.中國科學(xué)院長春光學(xué)精密機(jī)械與物理研究所,吉林 長春 130033, 2. 中國科學(xué)院研究生院,北京100039
摘要: 針對(duì)環(huán)境溫度對(duì)高精度星敏感器測量精度的影響,設(shè)計(jì)了基于FPGA和AD7416的星敏感器溫度測量控制系統(tǒng)。以FPGA作為主控制器,通過I2C總線控制溫度傳感器AD7416采集溫度并控制制冷系統(tǒng)對(duì)星敏感器進(jìn)行制冷,使其工作在-20℃~0℃范圍內(nèi)。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)測量速度快,測量精度高,提高了星敏感器的成像質(zhì)量和測量精度,可滿足星敏感器系統(tǒng)要求。
關(guān)鍵詞: 星敏感器 溫度測量 I2C AD7416 FPGA
中圖分類號(hào): TP274
文獻(xiàn)標(biāo)識(shí)碼: B
文章編號(hào): 0258-7998(2012)09-0082-03
Design and implementation of temperature measuring and controlling system for high-precision star sensor
Li Ping1,2, Wei Zhonghui1, He Xin1, He Jiawei1,2
1. Changchun Institute of Optics, Fine Mechanics and Physics, Chinese Academy of Sciences, Changchun 130033, China; 2. Graduate School of the Chinese Academy of Science, Beijing 100039, China
Abstract: For the impact of ambient temperature to the high-precision star sensor, it designed temperature measuring and controlling system based on FPGA and AD7416. FPGA dominates the temperature sensor AD7416 to extract temperature and control refrigeration system cooling star sensor by I2C bus, and ensure temperature in the range of -20℃~0℃ to star sensor. Experiments show that the system can improve the imaging quality and measuring precision of star sensor with rapidly measuring and high precise and meet the requirements of star sensor system.
Key words : star sensor; temperature measuring; I2C; FPGA; AD7416

    星敏感器是一種高精度的航天器姿態(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.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。