文獻標識碼: B
文章編號: 0258-7998(2012)09-0082-03
星敏感器是一種高精度的航天器姿態(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.