張斌+欒紅民+李玉霞+楊曉霞++王帥+吳慶林



摘 要: 環境溫濕度對大型望遠鏡的成像質量有非常大的影響。主要論述了大型望遠鏡溫濕度監測系統的設計與實現,該系統采用SI7006?20A作為溫濕度傳感器,以STM32F103單片機作為處理器,通過CAN總線與上位機組網,實現環境溫濕度的測量與顯示。系統設計完成后,進行試驗驗證,結果表明,該系統能夠對環境溫濕度進行準確監測,可以為主動光學系統中的溫濕度補償與控制提供依據。
關鍵詞: 望遠鏡; 溫濕度; STM32F103; CAN總線; SI7006?20A
中圖分類號: TN02?34 文獻標識碼: A 文章編號: 1004?373X(2017)09?0121?04
Abstract: The environmental temperature and humidity have a great impact on the imaging quality of the large telescope. The design and realization of the environmental temperature and humidity monitoring system for large telescope are discussed. The system adopts the SI7006?20A as the temperature and humidity sensor, and STM32F103 as the processor. The environmental temperature and humidity are detected and displayed by networking the CAN bus and upper computer. The designed system was verified with experiment. The results show that the system can monitor the environmental temperature and humidity accurately, and provide the basis for humiture compensation and control in the active optical system.
Keywords: telescope; humiture; STM32F103; CAN bus; SI7006?20A
0 引 言
望遠鏡是天文觀測的重要工具,其口徑越大,角分辨能力越強[1]。隨著口徑的增大,望遠鏡系統受到環境因素的影響也越來越大。尤其是環境溫濕度所引起的主鏡視寧度的現象[2]以及主鏡鏡面的溫度不均勻分布引起主鏡的面形變化[3],都會影響成像質量,造成望遠鏡的指向誤差,從而難以實現對深空中天體的精確定位。因此,必須對望遠鏡的鏡室環境溫濕度與主鏡鏡面的溫度分布實時監測,為望遠鏡主動光學系統中對溫度進行補償與控制提供依據。在當今的大型望遠鏡設計中,環境溫濕度監測系統已經成為不可或缺的部分。
本文針對環境溫濕度對望遠鏡系統產生的影響,采用SI7006?20A溫濕度傳感器芯片與STM32F103單片機設計了望遠鏡環境溫度監測系統,并通過CAN總線將分布式溫濕度采集模塊與上位機軟件組網,實現對望遠鏡的鏡室環境溫濕度與主鏡鏡面的溫度分布實時監測與顯示。
1 方案設計
望遠鏡環境溫濕度監測系統主要包括溫濕度采集模塊以及上位機軟件。為了對鏡室內不同位置的環境溫濕度與主鏡鏡面不同位置的溫度進行監測,需要在不同的區域分別放置溫濕度采集模塊并組網,這些模塊與上位機進行數據交互,將采集到的溫濕度信息傳輸給上位機進行處理與顯示。
溫濕度傳感器芯片是溫濕度采集模塊中的核心器件,直接決定了溫濕度監測系統的性能。文獻[4]使用AD公司的AD590電流型溫濕度傳感器;AD590具有線性優良、性能穩定、靈敏度高、抗干擾能力強且使用方便等優點,但是需要更多的外圍器件實現溫度的轉換,如放大器、濾波器、ADC等,不但設計難度增加,而且需要在PCB上占用更多的面積,不利于本文所述的溫濕度采集模塊的小型化設計,此外還需要另行設計濕度采集模塊。文獻[5]使用廣州奧松公司生產的DHT11溫濕度傳感器;DHT11內部使用數字模塊采集技術和溫濕度傳感技術,具有較高的可靠性與穩定性,但是其傳感元件為一個電阻式感濕元件和一個NTC測溫元件,實際是將分立式電阻式溫、濕度傳感元件集成在一起,在溫度范圍和使用周期中存在精度差、變化率高、顯著的滯后和嚴重的感應漂移等問題,無法滿足大型望遠鏡溫濕度監測的要求。文獻[6]使用了Sensirion公司的SHT15溫濕度傳感器;該傳感器采用CMOSens技術,包括一個電容性聚合體測濕性敏感元件和一個用能隙材料制成的測溫元件,并與信號處理電路集成在一塊微型PCB板上,經過內部校準輸出數字信號,使其具有響應迅速、抗干擾能力強、可靠性高等優點;然而,由于其數字信號輸出接口并非標準的總線接口,需要采用虛擬總線技術實現傳感器通信,不但加大了工作量與維護的難度,而且軟件可靠性難以得到保證。經過調研,本文采用了silicon labs公司推出的SI7006?20A型號的數字溫濕度傳感器。該傳感器把相對濕度和溫度傳感器直接集成到單芯片CMOS?IC中,通過晶圓表面上的高分子聚合物薄膜測量濕度,通過片上二極管的帶隙電路測量溫度,除具有SHT1X系列溫濕度傳感器的優點外,其數字輸出接口為標準的I2C接口,使其開發簡單、可靠,而且還有薄型疏水性/疏油性薄膜作為保護蓋,使該傳感器在開發、調試與使用中避免液體和粉塵帶來的侵害,而測量的靈敏度也不會受到保護蓋的影響[7]。
應用于望遠鏡的溫濕度監測系統不僅要求采集精度高、模塊化、體積小,還要能夠實現分布式采集模塊的組網。本文主要分析了三種組網方案:以太網(Ethernet)、RS 485以及CAN(Controller Area Network)。以太網支持TCP/IP的一系列協議,其中的TCP協議與UDP協議設計成熟,使用廣泛,可以10 Mb/s的速率使用多種電纜進行數據傳輸,并且TCP協議能夠糾錯檢錯從而保證可靠性。但是TCP協議傳輸的每條信息都會附加至少70個字節的幀頭,而在望遠鏡溫濕度監測系統中大部分信息都在2~8個字節之間,使得使用TCP協議進行組網的數據傳輸效率非常低下;并且TCP軟件只能應用于以太網網卡[8]。RS 485總線實質依然是RS 232串行總線協議,但是采用差分格式傳輸信息,使得通信距離長,支持多點通信。RS 485總線一般采用屏蔽雙絞線進行傳輸,沒有標準的通信協議與糾錯檢錯機制,需要設計者自定義,所以可靠性不高;而且由于RS 485采用主機輪詢、下位機應答的機制解決數據沖突的問題,實時性不高,效率較低[9?10]。CAN總線又稱局域控制網,其節點不分主從,采用優先級方式仲裁總線,自帶校驗檢錯功能,一般使用雙絞線進行傳輸,布線簡單而且可靠性高,其最高速率可達1 Mb/s,實時性比較高[6,11]。綜合考慮,相對于以太網與RS 485總線,CAN總線更適合于望遠鏡溫濕度監測系統,所以,本文采用CAN總線進行組網設計,CAN局域網結構如圖1所示。
處理器是監測、控制系統的靈魂。考慮到望遠鏡溫濕度監測系統中沒有復雜的算法與特大量的數據處理,對實時性也不是極度嚴格,單片機是理想的選擇方案。目前,單片機的種類繁多,從8位、16位到32位,應有盡有,應用比較廣泛的是MCS51擴展系列(如C8051F060)的8位機以及基于ARM核的32位機。其中,MCS51擴展系列的8位單片機內核簡單,抗靜電干擾能力強,具有位操作,適合做控制應用;而32位單片機運行速度快,更適合于做計算;至于外設、存儲等方面的性能二者已經不相上下。根據望遠鏡溫濕度監測系統對控制無需求,而對數據處理需求相對較高的特點,選擇32位單片機STM32F103作為溫濕度監測模塊的處理器。
2 硬件設計
2.1 原理圖設計
望遠鏡環境溫濕度監測系統的硬件設計主要指溫濕度采集模塊設計,包括STM32F103單片機、SI7006?A20溫濕度傳感器、10位撥碼開關、RS 422接口芯片ADM3490、CAN總線接口芯片SN65HVD230以及電源芯片LMR14206等,如圖2所示。
RS 422串口主要在調試階段用來與上位機通信,調試完成后,再利用CAN總線進行組網。10位撥碼開關中的2位用來設置傳感器數據采集頻率,共有0.1 Hz,0.2 Hz,0.5 Hz以及1 Hz四種選擇,能夠滿足不同采集頻率要求;另外8位用來設置CAN網絡數據傳輸時報文的優先級,并利用報文的優先級表征CAN網絡節點的地址編號,可見共支持256級優先級的報文信息,能夠滿足望遠鏡溫濕度監測系統當前應用要求以及后續升級要求。單片機通過I2C接口讀取溫濕度傳感器采集的數據,并通過RS 422串口或者CAN接口傳輸給上位機。LMR14206是TI公司推出的寬輸入電源芯片,輸入電壓范圍為4.5~42 V,合理配置外圍器件后,輸出3.3 V直流電壓,使溫濕度采集模塊的適用能力更強。
2.2 PCB設計
為了保證溫濕度傳感器采集數據的準確性,必須對其在PCB上的布局與布線進行精心設計。PCB采用4層板進行布局布線,將溫濕度傳感器芯片放置于PCB的背面邊緣處,而其他芯片放置于PCB的正面,使傳感器盡可能遠離單片機、電源等發熱量較大的芯片,并且傳感器所在區域不做鋪銅處理,從而將傳感器受到PCB上其他器件的熱傳導的影響降到最低。為了測量外界溫度,在產品包裝時將溫濕度傳感器裸露在包裝盒外。
此外,10位的撥碼開關也放置在PCB的背面,在產品包裝時也裸露在包裝盒外,以便在使用時根據需要隨時調整CAN網絡節點報文的優先級與溫濕度傳感器的數據采集頻率,提高溫濕度監測系統工作的靈活性。
為了布線簡單,所有接口均通過VGA連接器引出,同時,將JTAG調試接口也通過該連接器引出,以備軟件后續升級與維護之用。
圖3為溫濕度采集模塊電路板。
3 軟件設計
3.1 單片機軟件設計
單片機的軟件通過搭建前后臺系統,主要實現三個核心功能:通過I2C接口與溫濕度傳感器芯片進行通信;通過RS 422接口和CAN接口將采集到的溫濕度數據發送給上位機;周期性復位看門狗,如圖4所示。
初始化程序包括I2C接口初始化、RS 422接口初始化、CAN總線接口初始化、溫濕度傳感器配置初始化以及看門狗初始化。其中,CAN接口初始化時需要通過讀取撥碼開關確定各溫濕度采集模塊發送報文的優先級。
采用定時器進行定時,對傳感器數據進行周期性的采集與發送,定時周期需要通過讀取撥碼開關確定。
同時,為了保證與上位機通信的可靠性,對RS 422接口與CAN接口進行周期性的初始化。
溫濕度傳感器配置流程與采集數據流程如圖5所示。為了保證溫濕度傳感器配置成功,配置過后,通過周期性的將配置信息讀回進行確認;在每次讀取采集數據之前,對I2C接口進行重新初始化,并且對溫濕度傳感器是否空閑進行查詢,以提高I2C接口通信的可靠性。
看門狗使用STM32F103內部的窗口看門狗。窗口看門狗通常被用來監測由外部干擾或者不可預見的邏輯條件造成的應用程序背離正常的運行序列而產生的軟件故障[12]。相對于獨立看門狗,窗口看門狗更能檢測出程序沒有按照正常的路徑運行,非正常的跳過了某些程序段的情況。為了保證軟件的可靠性與自恢復能力,不在定時器中斷內喂狗,而是通過定時器產生使能信號,在主程序中喂狗。
3.2 上位機軟件設計
上位機軟件使用PyQt進行界面開發,使用python語言在Eclipse集成環境中進行功能設計[13],初步實現以下功能:接收溫濕度采集模塊發送的原始信息數據并解算為實際的溫濕度信息;通過選擇配置將某一節點的溫濕度信息以實時曲線的形式顯示出來;將接收到的節點的溫濕度數據存儲在Excel中,用作后續查證。圖6為溫濕度檢測系統上位機的軟件界面。
上位機軟件接收到傳感器采集數據后,需要根據接收到的數據計算出實際的溫濕度值。
由濕度數據輸出解算出實際相對濕度數據:
由溫度數據輸出解算出實際溫度值:
相對濕度的溫度補償已經在溫濕度傳感器內部做過處理,不需要上位機軟件再做補償。
上位機與溫濕度采集模塊之間的CAN接口通過周立功公司的USBCAN適配器實現;上位機軟件的相關功能皆使用python各模塊中的庫函數實現,如xlrd模塊(讀寫excel文件)、pyUSB模塊(讀寫USB接口)、pySerial模塊(讀寫RS 232接口)等。
4 測試結果
系統調試完成后,在實驗室中進行測試,得到如圖7所示的溫度曲線與濕度曲線,采集周期為5 s。由圖7可見,溫度和濕度在一個穩定的范圍內波動,并且與實驗室內溫度計和濕度計測量的示數吻合,說明該系統能夠準確地測量環境溫濕度,可以滿足實際工作需要。
5 結 語
經過比較與評估,本文選擇Si7006?20A數字溫濕度傳感器與STM32F103單片機設計溫濕度采集模塊,并利用CAN總線實現分布式采集模塊的組網,與上位機軟件形成大型望遠鏡溫濕度監測系統。經過測試,該系統能夠對環境溫濕度進行良好的監測,將其運用在大型望遠鏡主動光學系統中,可以為環境溫濕度的補償與控制提供依據。
參考文獻
[1] 程景全.天文望遠鏡原理和設計[M].北京:中國科學技術出版社,2002.
[2] 張俊,鮮浩,賀元興,等.望遠鏡主鏡溫度場理論計算及主鏡視寧度分析[J].光學學報,2012,32(10):1?7.
[3] 馮樹龍.地基望遠鏡力學、溫度場特性對光學性能影響研究[D].長春:中國科學院長春光學精密機械與物理研究所,2005.
[4] 韓立昌,徐欣圻.大型天文望遠鏡環境溫度數據采集系統的設計[J].計算機工程,2006,32(6):283?285.
[5] 李長有,王文華.基于DHT11溫濕度測控系統設計[J].機床與液壓,2013,41(13):107?108.
[6] 孔令波,孟浩然,張斌,等.基于CAN總線的大型光電望遠鏡溫濕度采集系統[J].計算機測量與控制,2015,23(11):3777?3779.
[7] Silicon Laboratories Inc. SI7006?20A I2C humidity and tempe?rature sensor datasheet [R]. Austin: Silicon Laboratories Inc., 2015.
[8] 劉彬.工業以太網性能測試與組網優化[D].杭州:浙江大學,2010.
[9] 張小貝,周鳳星.基于嵌入式控制器和RS 485的智能家居系統[J].電子測量技術,2012,35(8):62?65.
[10] 秦宗錦,王永杰.基于RS 485總線照明電路系統設計[J].數字技術與應用,2012(7):148?149.
[11] 張昊,崔永俊,沈三民,等.基于CAN總線的傳感器網絡設計[J].計算機測量與控制,2013,21(11):3103?3106.
[12] 沈建良,賈玉坤,周芬芬,等.ARM微控制器入門與提高[M].北京:北京航空航天大學出版社,2013.
[13] 邱霞,段渭軍,黃亮,等.基于PyQt無線傳感器網絡監控軟件開發[J].現代電子技術,2014,37(16):65?67.