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