基于CAN总线多点温度监测系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

基于CAN总线的多点温度监测系统XXX摘要:本文提出了一种基于CAN总线的多点温度监测系统。其中介绍了CAN总线和温度传感器(DS18B20)的工作原理,以及该系统的软件与硬件的设计方法。该系统实现对多点温度的实时性监控测量。它准确反映出温度信息在不同的环境中的变化;其系统具有广泛的应用前景。关键词:CAN总线温度传感器多点测温MonitoringSystemofMulti-pointTemperatureBasedonCANBusXXXAbstract:Thispaperpresentsamonitoringsystemofmulti-pointtemperaturebasedonCANbus.WhichitdescribestheCANbusandtemperaturesensors(DS18B20)workingtheory,aswellasthesystem'ssoftwareandhardwaredesignmethods.Thesystemismulti-pointtemperaturetoachievereal-timeperformancemonitoringmeasurements.Itaccuratelyreflectsthetemperatureinformationinadifferentenvironmentchanges;Whichthissystemhasbroadapplicationprospects.Keywords:CANbustemperaturesensorsmulti-pointtemperature前言在快速发展的当今社会,不管在工业或是农业和日常的生活中,温度的监测和控制已经成为一个重要的方面。多点温度的检测也变的相当的重要,并且应用于各个领域;空调系统的温度检测和电讯设备过热故障的预知检测,各种交通运输工具内部工作温度的检测,医疗和健珍的温度测试,粮仓和楼寓温度的检测。可见温度监测系统已经完全融入到我们的日常生活中了,并且有着十分广泛的应用。本文中设计用一台上位机(工业计算机),下位机(单片机)多点温度数据采集,组成几级分布多点温度测量检测系统[1]。此系统采用CAN总线通讯,在比较各种总线的优缺点之后决定使用最广泛和可靠性最高的CAN总线进行数据的传送,将各个温度采集节点挂接在CAN总线上,经过CAN总线传送到主控节点,送回主控机进行数据处理,并显示出各个点的温度值,使管理人员做出相应的处理。采用CAN通信,CAN总线具有极高的可靠性、独特灵活的设计和低廉的价格,CAN总线上的节点是网络上的数据接收和发送站,智能节点能够通过编程设置工作方式、ID地址、波特率等参数。它主要是有单片机以及CAN控制器和收发器构成。CAN控制器工作于多主方式,网络中的各节点都可根据总线访问优先权(取决于报文标识符)采用无损结构的逐位仲裁的方式竞争向总线发送数据,且CAN协议废除了站地址编码,取而代之对通信数据进行编码,这可使不同的节点同时接收到相同的数据,这些特点使得CAN总线构成的网络各节点之间的数据通信实时性强,并且容易构成冗余结构,提高系统的可靠性和系统的灵活性。下位机采用AT89S52[2],温度传感器选择DS18B20。DS18B20利用单总线的特点,方便的实现多点温度的测量,轻松便捷的组建传感器网络,系统的抗干扰性好、设计灵活、方便,而且适合于恶劣的环境下进行现场测温。此系统可以应用在大型工业民用等多点监测场合总体设计此多点测温系统以工控机为主体,还设计有其他模块:数据采集模块、数据传送模块、数据接受模块,主节点数据处理模块。通过CAN总线和基于单片机(AT89S52)的测温节点通讯。每个主机连接15个以内的节点。每个节点DS18B20采用外部供电方式,挂接20个以内的DS18B20温度传感器。注意单总线的长度不宜超过80M[3],不然会影响到数据的传输。主机发送命令控制节点工作,接受温度信息并处理然后显示出来。各功能模块的具体功能如下:1.数据采集模块:应用温度、湿度传感器采集到当前粮库的温度与湿度。2.数据传送模块:将采集到的数据进行处理,并传送到CAN总线上。3.数据接收模块:进行信息核对并将信息从CAN总线上取出。4.主节点数据处理模块:把分节点的数据进行再次的处理和分析从而做出相应的动作,并显示在各自的显示位置上CAN总线数据发送模块数据接收模块采集节点控制器显示节点控制器温度采集温度采集显示模块显示模块图一:系统总体结构图多点温度监测系统的硬件设计本文中所设计的CAN总线系统智能节点采用89S52作为节点的微处理器在CAN总线通信接口中采用PHILIPS公司的SJA1000和隔离CAN收发器模块。SJA1000是独立CAN,CTM系列模块是集成电源隔离、电气隔离、CAN收发器,CAN总线保护于一体的隔离CAN收发器模块。设计布线方案,连接成CAN网络。硬件电路的设计主要是CAN控制器SJA1000和微控制器的设计,CAN控制器是此设计中的核心,主要完成CAN的通信协议,而CAN收发器主要是提高CAN的通信距离,提高总线的瞬间抗干扰能力和保护总线降低射频干扰,实现热防护等。如图二,单片机的P0.0-P0.7分别与SJA1000的AD0-AD7端口连接,把单片机的ALE、RD、WR、INTO与SJA1000的相同端口分别相连。然后分别配置单片机与SJA1000的起振电路。把CTM1050的TXD、RXD与SJA1000的TX0与RX0连接。最后把CAN总线与CTM1050连接。以此来构建系统的硬件电路。图二:硬件电路CTM1050T高速CAN隔离收发器CTM1050是一款带隔离的高速CAN收发器芯片,该芯片内部集成了所有必需CAN隔离及CAN收发器件,这些都被集成不到3平方厘米的芯片上。[4]芯片的主要功是将CAN控制器的逻辑电平转换为CAN总线的差分电平并且具有DC2500V的隔离功能及ESD保护作用。该芯片符合ISO11898标准,因此,它可以和其他遵从ISO11898标准的CAN收发器产品互操作。CTM1050芯片主要功能:具有将CAN控制器逻辑电平转换为CAN总线的差动电平的功能,另外CTM1050还具有对CAN控制器与CAN总线之间的隔离作用。图三:CTM1050接口电路SJA1000简介SJA1000是一种独立控制器,用于移动目标和一般工业环境中的区域网络控制(CAN),它是PHILIPS半导体PCA82C200CAN控制器BasicCAN的替代产品而且它增加了一种新的工作模式PeliCAN,这种模式支持具有很多新特性的CAN2.0B协议.SJA1000作为通信模块接收来自其他节点的信息,当接收到数据帧的时候以中断的方式向P89C51发出信号。单片机将接收到的数据从接收缓冲区读出,按照协议规定好的帧结构对数据进行解析,根据控制参数要求做出相应的控制动作,并用数码管进行实时的显示。SJA1000的主要性能特点如下[5]1.引脚与PCA82C200独立CAN控制器兼容。2.电器特性与PCA82C200独立CAN控制器兼容3.具有BasicCAN模式4.有扩展的接收缓冲器64字节,先进先出(FIFO)。5.支持CAN2.0A/B协议6.支持11位(标准帧)和29位标识码(扩展帧)7.通信位速率最高可达1Mbps8.PeliCAN模式的扩展功能有-可读写访问的错误计数寄存器-可编程的错误报警限额寄存器-最近一次错误代码寄存器-对每一个CAN总线错误的中断-有具体位表示的仲裁丢失中断-单次发送(无重发)-只听模式(无确认、无激活的错误标志)-支持热插拔-验收滤波器的扩展-接收自身报文9.24MHz时钟频率10.输入电压:5.0VDC+/-5%11.可与不同的微处理器接口12.可编程的CAN输出驱动器配置13.温度适应范围:-40℃~+125℃SJA1000结构框图SJA1000引脚功能说明图四:SJA1000管脚图符号引脚功能AD0-AD72,1,2823地址/数据复用总线ALE3ALE信号INTEL方式或AS信号Motorola方式CS4片选输入低电平允许访问SJA1000RD5微控制器的读信号Intel方式或E信号Motorola式WR6微控制器的写信号Intel方式或读写信号Motorola方式CLKOUT7SJA1000产生的提供给微控制器的时钟输出信号此信号由内部振荡器经可编程分频器得到可编程禁止该引脚VSS18逻辑电路地XTAL19振荡放大器输入外部振荡放大器信号经此引脚输入XTAL210振荡放大器输出使用外部振荡信号时此引脚必须开路MODE11方式选择输入端1=Intel方式0=Motorola方式VDD312输出驱动器5V电源TX013由输出驱动器0至物理总线的输出端TX114由输出驱动器1至物理总线的输出端VSS315输出驱动器地INT16中断输出端用于向微控制器提供中断信号RST17复位输入端用于重新启动CAN接口低电平有效VDD218输入比较器5V电源RX0RX11920由物理总线至SJA1000输入比较器的输入端显性电平将唤醒处于睡眠方式的SJA1000当RX0高于RX1时读出为隐性电平否则为显性电平VSS221输入比较器地VDD122逻辑电路5V电源DS18B20简介DS18B20是美国DALLAS公司生产的单线数字温度传感器,它具有微型化、低功耗、高性能、抗干拢能力强、易配微处理器等优点,特别适合于构成多点温度测控系统,可直接将温度转化成串行数字信号这样便供微机处理,而且每片DS18B20都有唯一的产品号并可存入其ROM中,以便在构成大型温度测控系统时在单线上挂接任意多个DS18B20芯片。从DS18B20读出或写入DS1820信息仅需要一根口线,其读写及温度变换功率来源于数据总线,该总线本身也可向所挂接的DS18B20供电,而无需额处电源。DS18B20能提供九位温度读数,它无需任何外围硬件即可方便地构成温度检测系统。。DS18B20的硬件结构本文中DS18B20采用3脚PR-35封装,管脚排列如图所示。图中GND为地,I/O为数据输入/输出端(即单线总线),该脚为漏极开路输出,常态下呈高电平。VDD是外部+5V电源端,不用时应接地。DS18B20的内部框图有4个主要的数字部件:64位激光ROM;温度传感器;非易失性EEPROM存储器以及暂存器。64位激光ROM从高位到低位依次为8位CRC、48位序列号和8位家族代码(28H)组成,暂存器中2字节用于存储温度传感器测得的温度值,2字节用于存储上下限报警温度(当测得的温度值超过这个范围时就会竖起一个报警标记,用于对报警搜索命令产生响应),1字节用于配置寄存器。配置寄存器使用户可以按需要选择9、10、11、12位4种不同的分辨率(精度分别为0.5℃、0.25℃、0.125℃和0.0625℃)。TH、TL和配置寄存器中的数据可以存入非易失性EEPROM中,器件断电时数据不会丢失,下次上电时会自动复制到暂存器中。DS18B20的功能操作主要包括启动温度转换、读取供电模式以及对暂存器的读写和拷贝。DS18B20的测温原理当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后。对应的温度计算:当符号位S=0时温度为负,直接将二进制位转换为十进制;当S=1时温度为正,先将补码变为原码,再转换成十进制值。得到得十进制值除以2,既得到被测温度值。多点温度监测系统的软件设计本系统主程序调用了4个子程序,分别是数码管显示程序温度测试程序、中断控制程序、单片机与PC机串口通讯程序。温度测试程序:对DS18B20送过来的温度数据进行处理,进行判断和显示。数码管显示程序:向数码管传送显示的数值,控制系统的显示部分。中断控制程序:实现循环显示功能。串口通讯程序:实现PC机与单片机通讯,将温度数据传送给PC机。如下图为系统整体的流程图CPU初始化SJA1000初始化读温度值数码管显示开始定时到没?N发送温度值Y有中

1 / 10
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功