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