数字温度传感器将温度信号以12位数字量的方式输出,而编码器每次只可完成4位二进制资料信息的发送,当单片机接收到12位温度信号时,先将其拆分为高、中、低4位,然后给每位匹配以相应的地址信号,再送给编码器。采用这种分址传输的方法可有效地避免不同位信息传输混乱的问题。
有效作用距离是衡量采集发射端性能指标的一个重要参数。由于发射红外线时,其发射距离与发射功率成正比。当红外发射管工作于脉冲状态时,脉动光有效传送距离与脉冲的峰值电流成正比,所以提高峰值电流,便可增加红外光的发射距离。在不增加系统功耗的前提下,通过减小产生的载波脉冲占空比,可有效提高峰值电流,增加红外发射的作用距离。
监控接收端硬件设计
接收端的主要功能是接收红外信号并对其进行解码以及后续处理。监控接收系统主要由AT89C51单片机、HS0038A2红外接收头、MC145027解码器、MC14511数码驱动器、MAX232串口通讯芯片等构成,系统结构
接收解码红外信号采用查询方式进行,单片机先把事先约定好的对应地址信号送入解码器,解码器可对接收的串行数据进行校对、译码和纠错,然后从并行数据口输出。如果接收到的串行数据中包含的地址信息与本地地址信息不符,即视为无效数据。地址校验正确后,解码器才开始对数据进行译码,完成后接收数据有效输出端输出高电平,表示译码有效。当单片机查询到译码有效标志后再把下一组地址信号送入解码器。
在译码过程中采用了积分环节,即解码器并不直接对接收到的脉冲信号进行解码,而是将输入信号积分后进行解码。由于积分电路能滤除瞬间的尖脉冲干扰,因此解码器接收的编码信号即使受到某种程序的干扰,依然能够进行正确的解码,这对于环境复杂的工业现场尤为重要。
系统显示部分采用两种显示方式。一种方式是利用串行数据传输方式与上位PC机通讯,利用PC机丰富的图形界面显示出当前被测设备的温度;另一种方式是通过系统监控接收端的数码管显示温度。采用这种方法可同时满足现场和远程温度监测的要求。
软件设计
温度监测系统的软件由三部分组成。运行于AT89C2051片内FLASH中的温度采集以及发送程序;运行于AT89C51片内FLASH中的接收显示及串口发送程序;运行于远端PC机上的图形界面和串行接收程序。
温度采集发送程序用C51语言编写,主要完成如下几个功能:(1)DS18B20温度值的读取。由于DS18B20是一线式数字温度传感器,对时序及电特性参数要求较高,所以采集程序必须严格按照DS18B20的时序要求操作。(2)编码器地址和数据信号的匹配。由于数字温度传感器是以12位串行方式输出温度信号,而编码器每次只能传输4位信号,为了保证温度信号的正确性和完整性,采用分址方式编码,即每次温度信号中的高中低4位信号分别匹配不同的地址送入编码器,在接收端分配给译码器相应地址后,译码器就只能接收地址匹配的信号,从而保证了温度信号的正确性和完整性。(3)其他事件的处理。包括采集端电池电量不足以及被测设备温度超标报警。当上述事件发生时,单片机将发送与正常温度信号不同的报警约定代码,接收端在接收到代码后将做出相应的报警处理。
监控接收端程序也采用C51语言编写,主要任务是把译码器的输出信号还原成温度值并显示与板载数码管上,同时通过RS-232C串口总线传送到远端PC机。此外还可以对接收到的报警约定代码进行处理,触发各种不同的报警状态。将报警部分设置在接收板上的目的是为了降低发送板功耗,从而延长发射端电池更换周期。
PC机上的图形界面用户程序通过C++ Builder开发环境编写,采取端口中断的异步方式实现通信,每当端口检测到有新的字符到来,就通过中断函数从端口读取字符并利用C++ Builder的Tchart类及其子类实时显示温度图表数据,以供工作人员查看和监测。
结语
某厂齿轮箱周边环境恶劣,给施工和布线带来很大困难,因此设计方案中采用了前面所述的思路和结构。本系统采用红外无线方式传输数据,有效解决了温度数据传输困难的问题;限度的减少采集和发送部分的功耗,使得电池供电系统能满足有效运行工作时间的要求;配套的编码/译码芯片的应用保证了系统数据传输的有效性和完整性。整套系统能稳定工作在环境恶劣的系统中,实现简单,价格低廉,可靠性好,为复杂环境下的温度在线监测提供了一种新的监测方法。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。