《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 高精度星敏感器溫度測量系統(tǒng)設計與實現(xiàn)
高精度星敏感器溫度測量系統(tǒng)設計與實現(xiàn)
來源:電子技術應用2012年第9期
李 平1,2,魏仲慧1,何 昕1,何家維1,2
1.中國科學院長春光學精密機械與物理研究所,吉林 長春 130033, 2. 中國科學院研究生院,北京100039
摘要: 針對環(huán)境溫度對高精度星敏感器測量精度的影響,設計了基于FPGA和AD7416的星敏感器溫度測量控制系統(tǒng)。以FPGA作為主控制器,通過I2C總線控制溫度傳感器AD7416采集溫度并控制制冷系統(tǒng)對星敏感器進行制冷,使其工作在-20℃~0℃范圍內(nèi)。實驗結果表明,該系統(tǒng)測量速度快,測量精度高,提高了星敏感器的成像質(zhì)量和測量精度,可滿足星敏感器系統(tǒng)要求。
中圖分類號: TP274
文獻標識碼: B
文章編號: 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)測量儀器,通過探測天球上不同位置的恒星并進行解運算,來確定航天器的姿態(tài),其工作的可靠性對航天器姿態(tài)的測量和控制起著重要作用??臻g環(huán)境溫度和太陽光熱效應的變化對星敏感器的光學系統(tǒng)成像質(zhì)量有很大影響,會造成恒星成像光斑偏移和成像光斑能量分布變化[1];光學系統(tǒng)中的CCD組件對星敏感器探測精度影響比較大,光電子的熱運動會導致暗電流噪聲,且暗電流噪聲對溫度非常敏感,溫度每升高15℃,噪聲會增加一個量級[2];此外會造成鏡筒的熱變形,從而導致透鏡幾何位置偏離原來固定的安裝位置,透鏡的曲率和折射率也會隨著溫度的變化而變化[3]。因此,星敏感器環(huán)境溫度的測量和控制對提高星敏感器的測量起著重要作用。有研究人員提出用熱敏電阻加模數(shù)轉換器對CCD溫度進行測量[2],但熱敏電阻感溫時間長,不適合溫度的實時測量。本文利用ADI公司推出的10位高精度數(shù)字溫度傳感器AD7416,與可編程邏輯器件FPGA構成了星敏感器的溫度測量控制系統(tǒng),再通過芯片內(nèi)部的10位模數(shù)轉換器將采集到的溫度值轉換為數(shù)字量,通過FPGA內(nèi)部的判斷邏輯,對星敏感器的溫度進行調(diào)節(jié)。AD7416高精度測量和FPGA對數(shù)據(jù)的高速并行處理滿足系統(tǒng)溫度快速測量和控制的要求。

1 系統(tǒng)硬件方案設計
    由于星敏感器的光學系統(tǒng)對溫度的變化非常敏感,因此,選擇高精度溫度傳感器對星敏感器的成像質(zhì)量和工作穩(wěn)定性具有重要意義。本系統(tǒng)中所使用的CCD工作在-200℃~0℃范圍內(nèi)時,星敏感器測量誤差最小,對溫度傳感器的感溫時間要求較高,本文選用AD7416溫度傳感器作為CCD溫度測量器件。AD7416[4]是一款多功能溫度傳感器,內(nèi)部采用10位逐次逼近型模數(shù)轉換器,典型的溫度轉換時間為400 ?滋s,分辨率可達0.25℃,測量范圍為-40℃~+125℃,最低功耗可達1.2 ?滋W,采用I2C總線進行數(shù)據(jù)傳輸,并且具有過溫保護和采樣防錯機制。由于AD7416內(nèi)部采用I2C總線接口,使得它很容易和其他器件組成溫度測量系統(tǒng)。目前基于AD7416的溫度測量系統(tǒng)大多數(shù)采用的是單片機作為主控制器[5-6],其結構簡單,容易編程,在工業(yè)控制領域得到了廣泛應用。由于單片機資源有限,外部可用的I/O接口有限,工作穩(wěn)定性不好,程序編寫依靠具體的器件,不具有可移植性。為了滿足系統(tǒng)實時性要求,能在復雜環(huán)境下穩(wěn)定工作,本系統(tǒng)采用資源更為豐富、可靠性更高的FPGA作為AD7416的主控制器。Xilinx公司Spartan-3系列的FPGA器件XC3S400具有豐富的內(nèi)部邏輯資源和外部接口資源,最大I/O數(shù)可達264, 內(nèi)部的RAM塊為288 KB,廣泛應用于控制領域。利用FPGA作為主控制器,AD7416作為從設備,構成了星敏感器的溫度測量控制系統(tǒng),AD7416和FPGA之間采用的是I2C通信協(xié)議,當溫度高于0℃時,啟動制冷系統(tǒng)對星敏感器制冷,使其工作在0℃以下。為了驗證程序的正確性,通過RS232接口將采集到的溫度值傳送給計算機,并通過上位機軟件來觀察采集到的溫度值和當前制冷器的工作狀態(tài)。系統(tǒng)的組成和測試框圖如圖1所示。

    采用Verilog HDL設計AD7416的控制程序。由于Verilog HDL是IEEE的標準,能應用于各種型號的FPGA和CPLD,因此,程序具有可移植性,且FPGA的執(zhí)行效率更高,程序運行穩(wěn)定性更好,滿足星敏感器實時溫控的要求。
2 系統(tǒng)功能模塊及時序設計
2.1    硬件功能模塊設計

    圖2是系統(tǒng)具體的硬件連接圖,由外部50 MHz晶振作為系統(tǒng)輸入時鐘, FPGA與AD7416之間采用I2C通信,AD7416將溫度轉換為數(shù)字量后通過SDA數(shù)據(jù)線串行傳送到FPGA內(nèi)部緩存器中,F(xiàn)PGA將采集到的溫度值轉換為并行數(shù)據(jù),輸出給顯示設備或作為其他控制邏輯的輸入;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ù)轉換為并行數(shù)據(jù)輸出,同時根據(jù)溫度值來輸出制冷器的控制信號,F(xiàn)PGA功能模塊設計如圖3所示。

2.2 系統(tǒng)控制程序設計
    溫度傳感器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)生一個響應,主機每讀取一個字節(jié),也要向從機發(fā)送一個響應。
    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,配置寄存器的高三位缺省設置為000;D3~D4設置錯誤序列的長度,表示檢測到多少個錯誤序列后OTI輸出有效,缺省為01,表示檢測到一個錯誤序列后OTI輸出有效;D2設置OTI輸出的極性;D1設置AD7416是處于比較模式(=0)還是中斷模式(=1);D0設置工作方式為正常工作方式(=0,缺省設置)或低功耗方式(=1),本系統(tǒng)中錯誤序列計數(shù)器采用缺省配置,器件工作在比較模式,采用正常工作模式,因此配置寄存器的配置數(shù)據(jù)為04H。
    對AD7416的讀/寫時序如圖4所示。

 

 

    從讀寫時序可以看出,每讀或寫1 B需要9個時鐘周期,因此采用有限狀態(tài)機來設計讀寫控制程序。為了滿足I2C時序要求,避免在時鐘高電平期間數(shù)據(jù)線上的數(shù)據(jù)跳變,設計時鐘時采用不同的跳變沿觸發(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)機設計,將起始、停止和讀1 B、寫1 B設計成task子程序,方便在讀、寫操作時調(diào)用。
3 實驗結果
    利用示波器觀察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由低電平跳變到高電平即結束數(shù)據(jù)傳送。圖5(b)中SDA上傳送的是串行地址91H,表示此后將讀取AD7416轉換的溫度值,仿真結果表明程序符合I2C協(xié)議要求。

    將AD7416固定在CCD傳感器背面,對星敏感器進行環(huán)境實驗,將所測得到的溫度值通過RS232接口傳送給計算機。為了實時觀測CCD溫度值,利用VC編寫了的溫控數(shù)據(jù)接收軟件。實驗結果表明,星敏感器工作在正常狀態(tài),其測量誤差在允許范圍內(nèi)。
    本文在研究環(huán)境溫度對星敏感器測量精度影響的基礎上,利用高精度溫度傳感器AD7416與FPGA設計了星敏感器的溫度測量系統(tǒng),對星敏感器的環(huán)境溫度進行測量和控制。對系統(tǒng)進行了時序仿真和硬件平臺仿真。實驗仿真結果表明,本系統(tǒng)能快速測量環(huán)境溫度,使星敏感器工作在-20℃~0℃的穩(wěn)定范圍內(nèi),減小了環(huán)境溫度對星敏感器光學系統(tǒng)結構和成像質(zhì)量的影響,提高了星敏感器的測量精度。
參考文獻
[1] 劉海波,黃水花,譚吉春,等. 熱-光效應對星敏感器測量準確度地影響[J]. 光子學報, 2009,38(7):1835-1839.
[2] 王辰,王宏強,陳明華,等. 星敏感器成像電路噪聲分析及降噪處理[J]. 激光與紅外,2008,38(7):692-696.
[3] 劉海波,譚吉春,沈本劍. 星敏感器光學系統(tǒng)的熱/結構/光分析[J]. 宇航學報, 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].湖北第二師范學院學報,2010,27(2):80-83.
[6] 李學海,董丹,李建良. 用AD7416+PIC16F84+PC機構建的測溫系統(tǒng)[J]. 單片機與嵌入式系統(tǒng)應用,2004(11): 65-68.

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