大型望远镜环境温湿度监测系统设计

张斌+栾红民+李玉霞+杨晓霞++王帅+吴庆林



摘 要: 环境温湿度对大型望远镜的成像质量有非常大的影响。主要论述了大型望远镜温湿度监测系统的设计与实现,该系统采用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.