基于CAN总线的高精度温湿度监控系统
引言
一个高效的温湿度自动监控系统对各行业进行科学有效的管理,保障工作环境温湿度恒定,降低能源损耗是非常必要的。传统的温湿度远程监控系统如RS一485总线在数据传输过程中存在着数据传输速率低、实时性差,对所采集的实时数据不能进行分析、节点加入或者离开网络要重新配置等问题,而温湿度传感器检测过程中湿度受温度影响而导致测量误差大、校准和标定复杂、互换性和长期稳定性差等。
因此,本文提出一种基于CAN总线高精度温湿度监控系统,不仅可以提高系统的传输速率和实时性,而且也可以提升系统温湿度采集的准确度。
1 系统的整体结构
图1 温湿度监控系统的总线分布式结构
CAN—Bus(Controller Area NetworU即控制器局域网,是国际上应用最广泛的开放式现场总线之一,它是一种无破坏性的总线仲裁机制。当总线数据传输出现冲突时,最高优先权访问的节点不受影响,从而提高了总线仲裁时间和实时性。系统的结构如图l所示,在每个检定实验室装一个温湿度采集器,通过CAN桥连接在两根双绞屏蔽线上,组成分布式网络,而主控制器与上位机连接组成控制台。在各个采集器之间采用双绞线进行数据传输过程中,用双绞两端连接匹配电阻可以消除长线反射所引起的干扰,从而提高接收器的共模抑制比及数据通信的抗干扰能力,采用这种具有优先级的分布式网络结构方便系统的后续扩展。
系统利用PC机作为管理主机,各个智能节点通过局域网CAN总线纳入系统,实现对各个节点的控制。PC机能很好保存测控制节点的采集数据,并可以数据进行统计分析,系统参数设定等,对数据的发送、数据请求、节点查询、中断接收数据管理等功能。
CAN—RS232转换器主要是完成PC机与CAN总线数据通信的任务,负责把总线的数据传送到PC机,同时把PC机的命令转发到各个节点。
总线上的各个温湿度采集节点,主要是实现温湿度数据采集与CAN总线通信的功能。各个节点的通过能实现报文的发送和接收,还能进行帧数据地址滤波、错误处理与自动纠错等功能。实现把节点采集的信息打包成帧数据发送给主机,当主机接接收到命令之后,可通过智能控制开关实现对工作房间的空调、除温机等的控制。
2 硬件设计
图2 温湿数据采集器的硬件结构
温湿度监控系统的各个子节点通过CAN总线的进行数据通信,具有温湿度采集及控制功能,同时兼有液晶显示及上下限温湿度报警功能。其硬件结构如图2所示,主要包括核心控制芯片、温湿度传感器、CAN总线通信接口、固态继电器及时钟芯片等。
(1)主控制芯片采用MICROCHIP公司生产nanoWattXLPTM超低功耗技术单片机PIC16f1937作为主控制芯片,该芯片内置具有LCD驱动模块,可以减少系统成本及电路板布线等优点。
(2)CAN总线通信模块如图3所示,主要是由。讲总线控制器MCP2515、CAN总线的收发电路MCP2551及光耦隔离电路等组成。MCP2515支持CAN V2.0B技术规范、通讯速率为1Mb/S的CAN总线控制器,它可以通过独立SPI接口与MCU通信。MCP2551是一个具有容错的高速CAN协议控制器的物理总线接口。
图3 CAN总线模块电路
CAN总线主要用于远距离的数据通讯,因而系统必须具有一定的防雷击的能力。在MCP2515和收发器MCP2551之间必须采用高速的光耦进行完全的电气隔离,做—个低通滤波器与抑制电压瞬态变化电路提高节点的抗干扰性能。从而大大提高节点的稳定性与安全性。
(3)各个节点采用高精度温湿度传感器SHT75进行数据采集。它是一款含有已校准的两线串行数据通信的相对湿度和温度传感器,实现了温湿度直接数字量的输出,从而大大简化各节点的电路,保证采集数据的精度。其性能如表l所示。
表1 SHT75芯片性能
3 软件设计
系统的软件设计中,上位机软件采用基于面向对象的Visual Basic 6.0开发平台设计系统的控制和显示界面,提供一个良好的人机操作界面。其主要包括上位机与CAN—RS232转换器的通信设置模块、CAN总线通信模块、节点发送的数据的接收和显示模块、后台数据库的调用模块、数据处理、数据保存及数据查询等。
温湿数据采集节点软件分成若干相对独立的驱动程序,各个驱动程序在监控程序的总调度下协调工作。其软件驱动程序主要由温湿度数据程序、实时时钟芯片程序、液晶显示程序、继电器控制输出程序、键盘输入程序、LED显示程序及CAN总线通信程序等组成。其中为了使总线节点有效、实时地完成通信任务,通信模块的设计是关键,也是难点。
CAN总线通信模块在系统的监控程序调用下完成仪表的数据发送及命令接收任务,其程序可看成由各个相对独立的程序模块组成,
CAN总线高精度温湿度监控系 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)