红外通信 存储器 I2C
摘要:本文首先介绍了二进制信号的调制解调以及CMOSens 技术的数字式温湿度传感器SHT75,然后着重讲述了以PIC 系列为微处理器的基于红外通信技术的温湿度一体化变送器的硬件设计以及各功能的软件实现。最后创造性地把一种强有力的数据传送错误检测技术—CRC 校验法成功应用在产品中,并经过计量证明该产品精度高、稳定性强。
1. 概述
在工农业生产、气象、环保、国防、科研、航天等部门经常需要对环境温度和湿度进行测量。随着科学技术的发展,人们越来越重视湿度和温度的检测及控制并进行了大量的研究工作,尤其是在现场环境恶劣的情况下,如何实时对温湿度进行准确有效的测量,显得尤为重要。因而,针对手持式的近距离测量以及长距离布线传送可操作性不高的状况,本文提出了利用红外通信技术,结合高精度的温湿度一体化传感器,设计出基于红外通信的温湿度一体化变送器。
红外通信是一种无线、非接触控制技术,具有抗干扰能力强,信息传输可靠,功耗低,成本低,易实现等显著优点,已被诸多电子设备广泛采用,并越来越多的应用到计算机系统中。
红外通信主要由发送和接收两个部分组成。发送端采用单片机将待发送的二进制信号编码调制为一系列的脉冲串信号,通过红外发射管发射红外信号。红外接收端接收红外信号,同时对信号进行放大、检波、整形后得到TTL电平的编码信号,再送给单片机,经单片机解码并做出相关处理。
2. 二进制信号的调制解调
红外通信发射的指令是用二进制数表示的,通常发射指令时都用方波载波信号将这些二进制数调制成一系列的脉冲串信号,常用的调制方法是脉冲宽度(PWM)调制和脉冲位置(PPM)调制两种。
本文采用PWM调制码,它的组成为9ms高电平和4ms低电平引导脉冲,16位系统识别码,8位数据正码和8位数据反码,我们要提取的就是数据码。一个PWM码的“0”是由一个0.58ms的低电平和一个0.58ms的高电平组成,“1”是由一个0.58ms的低电平地和一个1.58ms的高电平组成。
二进制信号的调制由红外发射电路的单片机来完成,它把编码后的二进制信号调制成频率为38KHz(本文选用HS0038作为红外接收头,接收频率为38kHz)的间断脉冲串,相当于用二进制信号的编码乘以频率为38KHz的脉冲信号得到的间断脉冲串,即是调制后用于红外发射二极管发送的信号。
二进制信号的解调由一体化红外接收头HS0038来完成,在输入有脉冲串时,输出端输出低电平,否则输出高电平。
二进制信号的解码由红外接收电路单片机来完成,它把红外接收头送来的二进制编码波形通过解码,还原出发送端发送的数据。
3.系统硬件设计
红外发射部分电路框图如图1所示,主要由单片机PIC16F73及外部电路构成。PIC16F73单片机是由美国Microchip公司生产的8位单片机,采用Harvard结构,这种结构使指令执行和取指操作可重叠进行,从而达到很高的执行速度。它只有35条单字节指令,除了跳转指令是2周期指令外,其它指令都是单周期指令。相对于其它的8位单片机节省了1/2的程序空间,并具有4:1的速度优势。
图1 红外发射电路
图1中SE303是红外发射二极管,当PB0 = 1时,三极管9013导通,SE303通电发射红外线,实际上发射的是频率为38KHz的脉冲串;反之,三极管9013截止,SE303截止,不发射。
图1中SHT75是瑞士Sensirion公司推出的基于CMOSens技术的新型温湿度传感器。它是一种全新的基于智能设计理念的传感器,该传感器将温度检测、湿度检测、信号处理、数字变换、串行数字通信接口、数字校准全部集成到一个高集成度、体积极小的芯片当中,利用它可以同时测量目标对象的温度和湿度,并实现数字式输出。
CMOSens技术不仅将温湿度传感器结合在一起,而且还将信号放大器、模/数转换器、校准数据存储器等电路全部集成在一个芯片内。由于将传感器与电路部分结合在一起,因此,该传感器具有比其它类型的湿度传感器优越得多的性能。首先是传感器信号强度的增加,增强了传感器的抗干扰性能,保证了传感器的长期稳定性,而A/D转换的同时完成,则降低了传感器对干扰的敏感程度。其次在传感器芯片内装载的校准数据保证了每一只湿度传感器都具有相同的功能,即具有100%的互换性。
图2 红外接收电路
红外接收部分电路框图如图2所示,在本系统中我们采用红外一体化接收头HS0038,HS0038是黑色环氧树脂封装,不受日光、荧光灯等光源干扰,内附磁屏蔽,功耗低,灵敏度高。在用小功率发射管发射信号情况下,其接收距离可达35m,它能与TTL、COMS电路兼容。HS0038为直立侧面收光型,它接收红外信号频率为38kHz,周期约26μs,同时能对信号进行放大、检波、整形,得到TTL 电平的编码信号。三个管脚分别是地、+5V电源、解调信号输出端。
PIC16F73经过解码得到SHT75的温度和湿度数据后,通过温湿度处理程序进行线性补偿等处理,随后将结果送LED显示,同时也将结果通过PWM以及硬件电路,输出工程上常用的4-20mA或者0-10V。
4.系统各部分功能的实现
系统软件用C语言编写,采用模块化设计方法。分为发射部分程序和接收部分程序。发射部分包括主程序、编码程序、发射程序等;接受部分包括主程序、解码程序、温湿度数据处理程序、LED显示程序、93C46读写程序、定时驱动程序、中断服务程序、PWM输出程序等。
主程序是控制和管理的核心。系统上电后首先进行系统初始化操作,初始化主要完成对芯片内部晶振的设定,所用芯片管脚的定义,双向管脚输入输出方向的设定,对定时器的初始化,PWM模块的初始化,中断的初始化等。对芯片管脚的定义要做到资源的合理调配,比如说每个IO在各个时间段用作什么功能要分配好,中断初始化是因为在主程序运行起来后就要随时等待中断信号,实现系统的各部分功能,中断初始化主要是定义中断的触发方式、中断形式、中断服务程序等。初始化完成后,系统开始正常运转,进行温湿度检测、编码、红外发射、接收、解码、转换、计算等,除此之外还要进行PWM输出等操作。
温湿度数据处理程序主要包括对温度值和湿度值的检测、计算、对结果进行线性补偿等。SHT75的相对湿度数字输出特性曲线如图3所示,由图3可以看出,湿度输出特性呈一定的非线性,因而要采用公式(1)进行修正,其中SORH 为传感器相对湿度测量值,各系数如表1所示。
表1 线性补偿系数
图3 湿度输出特性
湿度值还与当前温度值相关,因此还要对其进行温度补偿,补偿公式如公式(2)所示,各系数如表2所示。
表2 温度补偿系数
除此之外,温湿度处理程序还具有以下功能:一是设定温度湿度测量的分辨率,默认的测量分辨率分别为14bit(温度)、12bit(湿度),也可分别降至12bit和8bit,通常在高速或超低功耗的应用中采用该功能;二是“电量不足监测功能,该功能可监测到Vdd电压低于2.47V(SHT75正常工作电压范围是2.4V~5.5V)的状态,精度为±0.05V;三是可以通过程序控制芯片上集成的可通断加热元件,接通后可将SHT75的温度提高大约5℃(9℉),功耗增加8mA@5V,此功能主要为了比较加热前后的温度和湿度值,可以综合验证两个传感器元件的性能,在高湿(>95%RH)环境中,加热传感器还可以预防结露,同时缩短响应时间,提高精度。
LED共4位,每位8段,共占用12个IO通道。LED用于实时显示当前温度值或湿度值。4位LED中第一位用于区分温度值和湿度值,如果该位不显示或者是一个负号(-)就代表温度,如果该位显示(H)就代表湿度。后三位显示相应的数值,其中最后一位是小数。
结合93C46存储芯片修改温度和湿度上下限报警值。在测量过程中,如果温度值或者湿度值达到报警值,蜂鸣器就会发出声音。
5.CRC校验
在现代工业中,利用微控制器进行数据通讯的工业控制越来越广泛。由于传输距离、现场状况等诸多可能出现不确定因素的影响,微控制器与传感器之间的通讯数据常会发生难以预测的错误。为了保证数据传输的可靠性,SHT75内部集成了循环冗余校验(CRC-cyclicredundancy check)硬件电路。CRC是一种强有力的错误检测技术,在传送信息时,发送方根据所发送信息的具体内容计算出一个称为CRC的值,并连同信息串一起发送;而接收方则根据接收到的信息串用同样的方法生成一个CRC值,若与收到的CRC值一致,则可以认为信息传送正确。使用CRC虽然不能保证100%检测到错误,但它可以极大地增加发现错误的机会,而且它只需要极少的硬件消耗就能实现,所以CRC被广泛用作校验手段。
SHT75采用的CRC码(又称为多项式码)为,它能检测出下列错误:所有的双错、奇数位错、突发长度小于等于8的突发错、绝大部分突发长度较长的突发错。测量完温度(或湿度)后,根据测量的信息生成一个CRC值,然后一同发送到微控制器中去。微控制器根据接收到的信息按照同样的方法生成一个CRC值,若与接收到的CRC值一致,则可以认为信息传送正确;否则要求传感器重新测量数据然后再按同样的方式发送。
SHT75的CRC值生成算法是根据SHT75的硬件生成电路来模拟的,硬件生成电路结构如图4所示:
图4CRC值硬件生成电路
CRC算法如下:
(1)将CRC寄存器的值初始化为SHT75状态寄存器的值(0000 3 2 1 0 s s s s ),缺省值为00H;
(2)将每一位数据与bit7比较;
(3)如果该数据位与bit7相同,将CRC寄存器中的值向右移位,令bit0=‘0’;否则将CRC寄存器中的值向右移位,然后将bit4和bit5反相,再令bit0=‘1’;
(4)接收新的数据位,然后重复(2);
(5)SHT75生成的CRC值必须倒转(bit0=bit7,bit1=bit6,. . . ,bit7=bit0)后才能与最终计算结果对比。
6. 实验及结果
完成开发调试工作后,对产品进行了长时间的稳定性测试,对存在的问题进行了改进。为了该变送器能更好地应用在实际项目中,还将其送到赛宝计量检测中心进行计量。结果如表3 所示。
7. 结语和展望
该温湿度一体化变送器结构紧凑、性能稳定、测量精度高、输出信号线性度好、调试及标定方便、产品一致性好,经过了计量单位的计量认证,并且成功地应用在玻璃厂生产线上。基于以上特点,这种基于红外通信技术的温湿度一体化变送器具有非常广泛的应用前景。
在接下来的工作中,要不断完善、改进本产品。为了将实时采集的各点温湿度值保存下来,以便于对历史数据查阅和绘制出实时或历史温湿度值变化曲线,计划将93C46换成存储容量更大的FM24C256,该存储器容量为32Kbyte。另外,为了便于按采集的日期及时间保存温湿度值,可以扩展实时日历时钟芯片,可与FM24C256挂在同一条I 2 C总线上。
:
更多回帖