CAN总线多点温度采集节点硬件设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

CAN总线多点温度采集节点硬件设计

【摘要】随着科学技术的发展,温度监控系统的应用越来越广泛,本文阐述了一种基于CAN总线的多点温度采集系统,可以实现温度实时监测,该系统能应用于工农业生产的诸多场合。系统以AT89C52单片机为微处理器,外接数字式温度传感器DS18B20获得现场环境的温度信号。通过CAN总线控制器SJA1000和CAN总线驱动器PCA82C250将数据发送到CAN总线上,从而实现对温度的采集。

【关键词】CAN总线;节点;温度采集

0 概述

现场总线是安装在生产制造过程中的装置与控制室内的控制装置之间的一种数字式、串行、多点通信的数据线。应用现场总线技术不仅可以降低系统的布线成本,还具有设计简单、调试方便等优点。同时,由于现场总线本身还提供了灵活且功能强大的协议,这就使得用户对系统配置,设备选型具有强大的自主权,可以任意的将多种功能模块组合起来扩充系统的功能。在众多的现场工业总线中。随着温度控制技术在各个领域得到广泛地推广和应用,相关行业对温度控制技术的要求与日俱增。目前市场上也有一些温度控制系统,但是这些系统在传送数据时实时性能实现的不是很好,而CAN总线的实时性强、成本低,而且还具备可靠性高、抗干扰强等特点。综合多方面因素考虑,我们能够利用CAN总线的特点和优势设计温度控制系统。

1 设计方案

1.1 系统功能要求

系统能够接受数字式温度传感器DS18B20的温度信号,将温度信号传给单片机,完成单片机最小系统设计,并把此系统作为CAN的节点,节点的硬件包括AT89C52单片机、CAN总线驱动器PCA82C250、CAN总线控制器SJA1000、单片机的时钟和复位电路。主要研究基于AT89C52单片机与DS18B20数字温度传感器的多点温度测量系统。完成数字式温度传感器与CAN总线节点的接口设计及电路设计,实现具有数字式串行温度采集功能的CAN总线节点的硬件设计。应用CAN总线控制器SJA1000及其总线收发器的工作原理,完成数字式温度传感器与CAN总线节点的接口设计。

1.2 硬件功能模块

该系统主要由现场数据采集模块和总线发送模块构成。现场数据的采集是以AT89C52单片机为核心控制单元,外接数字传感器DS18B20,从而获得现场环境的温度信号。通过CAN总线控制器SJA1000和CAN总线驱动器PCA82C250将数据发送到CAN总线上。CAN节点由微处理器、CAN控制器SJA1000、CAN

驱动器PCA82C250构成。CAN控制器SJA1000执行在CAN规范中规定的完整的CAN协议,用于报文的缓冲和验收过滤,负责与微控制器进行状态、控制和命令等信息交换;在SJA1000下层是CAN收发器PCA82C250,是CAN控制器和总线接口,用于控制从CAN控制器到总线物理层或相反的逻辑电平信号,提供对总线的差动发送和对CAN控制器差动接收功能。

系统总体框图如图1所示。

2 硬件电路设计

硬件电路的设计主要是对CAN总线控制器SJA1000和微处理器AT89C52之间以及CAN总线驱动器PCA82C250和物理总线之间接口的电路设计。CAN 控制器SJA1000是CAN总线接口电路的核心,它主要用来完成CAN的通信协议,而CAN总线驱动器PCA82C250的主要功能是增加通信距离、提高系统瞬间抗干扰能力、保护总线、实现差分电压输出等。

温度采集电路运用的是数字式温度传感器DS18B20,它将接收到温度信号以数字量形式传送至单片机。系统主要包括微处理器AT89C52、CAN总线控制器SJA1000、CAN总线驱动器PCA82C250和数字式温度传感器DS18B20。电路原理图如图2所示。

3 温度传感器DS18B20工作原理

数字式温度传感器DS18B20中低温度系数晶振的振荡频率受温度影响起伏不大,它将产生的固定频率的脉冲信号传送给计数器1。而高温度系数晶振的振荡频率受温度变化而明显改变,它将产生的固定频率的脉冲信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值。计数器的作用是对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,才停止温度寄存器值的累加,此时温度寄存器中的数值就是被测温度。

数字式温度传感器DS18B20可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S 为符号位。这是将测量的12位信号转化后得到的12位数据,存储在DS18B20的两个8比特的片内随机存取数据中。二进制中的前面5位是符号位,如果测得的温度大于0,这5位符号位为0,将测量的数值乘以0.0625就可以得到实际温度;如果温度小于0,这5位符号位为1,将测量的数值取反加1后再乘以0.0625就可以得到实际温度。如+125℃的数字输出07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H……最后CPU向传感器读取温度并加以处理。

4 系统调试

4.1 单片机AT89C52的调试

在硬件进行上电调试之前,应先检查电源与地之间是否存在短路或断路的现象,如果检查结果正常才可以上电。硬件的调试应该逐个模块地进行,因为单片机是整个系统的核心,检测其是否正常工作也比较容易,所以可以先从此入手,再对其他外围器件进行调试。

判断单片机AT89C52是否工作正常很容易,我们可以不先对其相关电路进行检测,而是直接运行一些简单的测试程序,如:点亮和熄灭一个发光二极管,再让其闪烁,如果结果正常,则说明该单片机可以正常运行,如果运行不正常,则对单片机的电源、复位、时钟等各个电路的连线和相关工作模式的输入脚设置进行检查,直到单片机能正常工作为止。通过上述的简单方法可以充分的对单片机进行调试并证明本系统使用的AT89C52单片机能正常工作。4.2 CAN总线控制器和驱动器的调试

本系统的重点和难点是CAN总线控制器SJA1000和驱动器PCA82C250的设计,所以对这两部分的调试要分多个步骤进行。第一,确定AT89C52单片机可以对CAN控制器SJA1000中RAM和寄存器进行正常地读写操作。先编写一个简单的测试程序,给CAN总线控制器SJA1000的RAM或一个可读写的寄存器进行写操作,然后去读RAM或寄存器中的内容,如果读出来的数据与写入数据一致,再反复对不同的地址进行此操作,读写数据仍一致,就说明AT89C52单片机可以对CAN总线控制器SJA1000进行正常地读写操作。第二,测试CAN 总线控制器SJA1000和驱动器PCA82C250硬件电路的设计与实现并不是太难,基本按照它们的典型接法绘制就可以了。CAN控制器SJA1000有一种自测模式,即在数据发送时,即使没有应答也可以发送成功,所以我现用CAN总线自测模式进行调试,来检测CAN总线控制器SJA1000和驱动器PCA82C250的连线是否正确和其能否正常工作。以这个方法为根据,若系统能发送数据,并且CAN 控制器SJA1000的状态寄存器可以接受到相应的数据,故能进行下一步的调试。第三,当CAN总线控制器SJA1000和驱动器PCA82C250都通过自测模式调试后,就可对它们之间的通信进行调试,这里的调试程序要采用系统软件程序,并且将逐步的调试看成是整个系统程序的调试,如果它们之间的调试通过。那么整个系统的功能基本完成。

4.3 CAN总线控制器和驱动器的调试

由于数字式传感器DS18B20的通信方式比较独特,所以本系统采用该传感器测温。用它构建的系统具有很多优点:硬件连线较为简单,省去了使用模拟传感器要进行放大、A/D转换等工作。因为它的级联功能,一条总线在不同位置可挂接多个传感器进行测温,每个数字式温度传感器DS18B20都有唯一的序号,以此来识别不同传感器在各自位置上的温度。要特别注意的是,在系统安装及工作之前,要将主机依次与DS1820进行挂接,从而读出其序列号。另外现场温度直接以“一线总线”的数字方式进行传输,每一个自带地址都大大减少了系统的电缆数并且提高了系统的稳定性和抗干扰性。

相关文档
最新文档