基于CAN总线的远程温度采集系统

发布者:星光小狐狸最新更新时间:2015-10-15 来源: 21ic关键字:温度采集  STC89C52  SJA1000  CAN总线 手机看文章 扫描二维码
随时随地手机看文章
温度测量是人们日常生活中经常遇到的问题,在工农业生产、地质勘探、国防科研等领域扮演着重要的角色,对温度进行准确的测量显得尤为重要,而在人工操作不便的偏远地区、气候恶略地带,需要使用自动测温系统进行温度的测量。

控制器局域网络(Controller Area Network,CAN)是一种串行双向通信的总线。它采用多主工作方式,能够支持分布控制和实时控制。CAN总线能在远距离传输上保持较高的通信速率,其网络节点可达110个。CAN总线协议建立在OSI模型基础上的,已成为国际化标准并在工业测控和工业自动化领域广泛应用。

本文实现了一种远程温度采集系统。该系统含有多个智能的测温模块,在每个节点位置上的测温模块不仅可以独立的进行温度测量采集,而且它们还可通过CAN总线连接起来集中的管理和监控。

1 系统总体结构

温度采集系统总体结构如图1所示。位于现场的智能节点构成单个温度采集模块,诸多温度采集模块构成了整个温度采集系统,系统通过CAN总线对各节点的数据进行实时地采集和传输,发送到CAN总线上的数据可传送到上位计算机,通过上位计算机实现集中监控和管理。

基于CAN总线的远程温度采集系统

2 系统硬件设计

系统的智能节点由STC89C52微控制器和其外围电路组成。外围电路包含测温电路、CAN总线接口电路、LCD显示模块等部分。下面就主要部分进行详细地介绍。

2.1 微处理器

本系统采用能够兼容8051的STC系列中的STC89C52微处理器。STC89C52微处理器集成了微处理器模块、存储器模块和输入/输出接口模块的8位嵌入式微控制器芯片。其存储器模块包含8 kB内部程序存储器、512数据存储器以及内置4KB的EEPROM;输入/输出接口模块包含4个8位并行的I/O端口、32个可编程的I/O引脚。

2. 2 测温电路

测温电路采用单总线器件DS18B20实现。DS18B20内部集成了温度传感器和模数转换器,其温度测量范围包含在-55℃+125℃与之间。它在一定的温度范围其精度可达0.5℃ DS18B20采用单一总线方式传输,接线方式经济灵活,既降低了硬件的成本又提高了系统的可靠性。DS18B20通过位片序列号,可实现将多个 DS18B20挂接在一根单总线上,因此可以将该温度传感器放在不同的地方,进行多节点温度的采集。STC89C52可按照DS18B20的序列号得到不同节点上的温度值。这是本文实现远程温度采集系统的关键。DS18B20与STC 89C252的连接如图2所示。数字输入输出端DQ与单片机的P2.3口相连。

基于CAN总线的远程温度采集系统

2.3 CAN总线接口电路

本系统采用了CAN总线通信技术,以便于数据及时而有效的传输。CAN总线接口电路由CAN总线控制器SJA1000和CAN总线收发器82C50两部分组成。其结构如图3所示。

基于CAN总线的远程温度采集系统

CAN总线控制器芯片SJA1000是一种独立控制器。其具有完成CAN通信协议所要求的全部特性。CAN总线收发控制器82C50是CAN总线控制器与物理总线之间的接口。其具有差动发送和差动接收能力。CAN总线通信协议由CAN控制器芯片和接口芯片共同作用实现,本系统在C语言编程设计中采用的是 BasicCAN协议模式。[page]

3 系统软件设计

本远程温度采集系统的软件设计主要包括两部分:CAN总线接口软件部分和温度采集软件部分。CAN总线接口软件设计包括:SJA1000的初始化、CAN总线数据的发送和温度的接收。系统软件设计是在STC系列单片机的C语言编程环境下编写的。

3.1 CAN控制器SJA1000的初始化

CAN总线节点的软件设计首先要进行CAN控制器SJA1000初始化。SJA1000初始化是在复位情况下默认的BasicCAN模式下进行的。其主要包括设置CAN模式位选择工作模式,设置相应的寄存器定义接收滤波方式和总线定时器。另外还有中断允许寄存器和输出模式的设置等。

首先SJA1000在上电复位进入默认BasicCAN模式,设置总线定时寄存器BTR0和BTRl值。所有节点的这两个总线定时寄存器设置都应相同,否则系统可能无法通信。通过设置这两个寄存器从而确定系统的通信波特率和同步跳转宽度。在复位模式中总线定时寄存器可被读/写访问。验收滤波器通过验收代码寄存器ACR和验收屏蔽寄存器AMR来设置。其次设置OCR确定CAN控制器输出方式。SJA1000初始化完毕,系统即可成功传输报文。
 

3.2 CAN总线数据发送/接收子程序

CAN总线发送子程序完成报文的发送。CAN总线数据发送子程序流程图如图4所示。程序先把待发送的信息按照要求的格式组成单帧报文,并将其写入SJA1000的发送缓存寄存器。将SJA1000的命令寄存器CMR第0位置1提出发送请求,开始发送报文。

基于CAN总线的远程温度采集系统

CAN总线数据接收子程序完成报文的接收。CAN总线接收子程序流程图如图5所示。接收数据采用中断方式。当SJA1000收到一帧报文时,将报文滤波后存放在接收缓冲器内,再释放接收缓冲区,等待下面的报文接收。程序在接收报文时,还要处理单片机中断关闭、错误警告、数据溢出等各种情况。具体来讲,首先将CPU关中断,判断状态寄存器的RBS位是否为1,如果为1,就可以接收数据;接收完之后释放缓冲寄存器,开放CPU中断。

3.3 温度采集软件

根据DS18B20的通信协议,单片机STC89C52控制DS18B20完成温度采集。温度采集软件流程图如图6所示。读写前要对DS18B20进行初始化,初始化成功后发送温度转化指令。由此方可对DS18B20进行预定的操作。主机使用时隙来读写DS18B20的数据位和写命令字的位。

基于CAN总线的远程温度采集系统

4 结束语

本文介绍了该系统的硬软件设计及其实现过程。其使用STC89C52作为主控芯片,配合DS18820温度传感器、CAN总线电路,实现基于CAN总线协议的远程温度采集。实验表明,该温度采集系统可采集多个远程温度采集模块的数据,每一温度采集模块都可对各个节点的数据进行远程采集、远距离传输和数字显示,系统通过CAN总线对其进行实时地的监控和管理。

关键字:温度采集  STC89C52  SJA1000  CAN总线 引用地址:基于CAN总线的远程温度采集系统

上一篇:基于单片机的电梯自动控制系统的设计与实现
下一篇:关于51单片机模拟IIC总线的程序

推荐阅读最新更新时间:2024-03-16 14:36

CAN总线位定时参数的确定
引言 CAN总线是一种有效支持分布式控制和实时控制的、多主的异步串行通信网络。由于CAN总线具有较强的纠错能力,支持差分收发,适合高噪声环境,具有较远的传输距离,并且Philips和Intel等半导体公司都有支持CAN通信协议的集成器件。CAN总线已经在各个领域中得到了广泛应用。 在CAN通信协议中规定,通信波特率、每个位周期的取样位置和个数,都可以自行设定。这样的设计理念,为用户在自己的应用中,优化网络通讯性能提供了空间。为了通过设定位定时参数来优化网络通信性能,必须清楚位定时参数与参考时钟误差和系统内信号延迟的关系。如果位周期内的取样位置偏后,将能够容忍较大的信号传输延迟,相应的,总线传输距离可以延长;而如果周期内的取样位置
[嵌入式]
用CAN/LIN总线实现车门分布式控制系统
  引言   随着各种传感器的出现和芯片技术的飞速发展,汽车的安全性和智能化程度日益提高。   汽车电子控制单元(ECU)的功能和ECU间的信息交互日益增加,汽车生产商开发了多种总线技术,提供可靠而低成本的连接,按照安全性、智能性的不同要求实现相应的网络结构 ,满足单元间不同要求的数据交换。对车门区域的控制而言,要实现的功能较多,包括车窗升降、后视镜的位置调整、门锁开关、开关量的检测等,针对不同的目标客户群,可选择实现的智能也较多,包括车窗防夹,后视镜折叠和加热等,笔者采用低速CAN总线和LIN总线实现了车门分布式控制系统,选择性地实现了部分智能,该系统同时可以迅速修改和升级,而不需要太大的设计变动。本文讲述下系统结构的确定和
[嵌入式]
一种基于CAN总线的DSP程序加载技术
摘要:为灵活方便地调试磁悬浮列车上众多基于DSP芯片的控制系统,介绍了一种基于CAN总线的DSP程序加载技术。该技术使对DSP芯片程序的加载可以脱离仿真器而直接受控于列车的主控机。该技术可靠性高、使用灵活方便,具有很强的实用性。 关键词:CAN总线 单片机 DSP HPI ISA 磁悬浮列车上有很多基于DSP芯片的模块和系统。目前, DSP芯片程序的加载与运行都主要依赖于仿真器,而DSP仿真器价格高、体积大,这使得磁悬浮列车系统的调试很不灵活方便;且这些基于DSP芯片的系统一旦脱离仿真器就只能运行事前载入的单一的程序,也使系统的灵活性受到了很大的限制。 本文研究了DSP芯片程序加载的基本原理,并根据这些原理,基于CAN总线,实现了
[嵌入式]
基于STC89C51的CAN总线点对点通信模块设计
   0 引言   现场总线是应用在生产最底层的一种总线型拓扑网络,是可用做现场控制系统直接与所有受控设备节点串行相连的通信网络。在工业自动化方面,其控制的现场范围可以从一台家电设备到一个车间、一个工厂。一般情况下,受控设备和网络所处的环境可能很特殊,对信号的干扰往往也是多方面的。但要求控制则必须实时性很强,这就决定了现场总线有别于一般的网络特点。此外,由于现场总线的设备通常是标准化和功能模块化,因而还具有设计简单、易于重构等特点。    1 CAN总线概述   CAN (Controller Area Network)即控制器局域网络,最初是由德国Bosch公司为汽车检测和控制系统而设计的。与一般的通信总线相比,CA
[嵌入式]
TDK5110与TlDA5220的无线温度采集系统
随着科学技术的发展,简单、方便、实用的东西越来越受到人们的喜爱。无线通信技术的发展为人们的生活、生产带来了极大的改变,节省了大量的人力、物力资源。现在,无线通信技术已经应用到生活的方方面面。在一些不利于有线通信的场所,无线通信技术更是起到了不可替代的作用。小到对讲机,大到移动通信网络,它们无疑在改变着人们的生活方式。比如在生产环境恶劣的生产车间,工作人员不能长时间停留在现场观察设备是否运行正常,就需要将采集到的数据传输到一个环境相对好的控制室内,工作人员可以在这里观察整个生产线的一举一动。由于厂房大、监测点多等原因,需要传输的数据多,使用传统的有线数据传输方式就需要铺设很多很长的线缆,浪费资源,占用空间,可操作性差,出现错误时
[单片机]
TDK5110与TlDA5220的无线<font color='red'>温度采集</font>系统
基于CAN总线的机械手控制系统
  1 引言        机械手可在空间抓放物体,动作灵活多样,适用于可变换生产品种的中、小批量自动化生产,广泛应用于柔性自动线。我们开发的用于热处理淬火加工的物料搬运机械手,是一种按预先设定的程序进行工件分拣、搬运和淬火加工的自动化装置,可部分代替人工在高温和危险的作业区进行单调持久的作业,并可根据工件的变化以及淬火工艺的要求随时更改相关控制参数。由于目前许多商品化的工业机器人(或机械手)大都采用封闭结构的专用控制系统,一般采用专用计算机(如PUMA工业机器人使用PDP-11)作为上层主控计算机,使用专用机器人语言(如VAL)作为离线编程工具,采用专用微处理器,并将控制算法固化在EPROM中 ,这种专用系统很难进行扩展
[嵌入式]
汽车电子CAN总线分布式控制系统应用方案
CAN总线是一种用于实时应用的串行通讯协议总线,为汽车行业而开发,以此取代昂贵而笨重的配电线束。 自出现以来,CAN总线在车辆的各个领域有着广泛的应用,包括货车、客车、火车、缆车、叉车和许多其它车辆。因为其实现了复杂的故障限制机制和控制算法,CAN协议如今是车辆内部网络通信的技术标准,而CAN总线是能够实现整车各电子控制装置之间的通讯数据转发的智能电控设备,也是所有车辆类型中汽车控制网络的灵活性强且性价比较高的解决方案。 CAN总线分布式控制系统 传统油车 主要使用CAN进行连接的电子控制模块包括引擎管理、悬置装置、巡航控制、传输、点火、HVAC、远距离信息技术和后照明等。汽车方面的应用包括两个类别:车身控制(针对乘客舒适
[嵌入式]
基于CAN总线的分布式水下航行器控制器的设计方法
本文提出了一种基于 CAN 总线的分布式水下航行器控制器的设计方法,主要描述了其硬件总体设计方案和实现办法。控制器作为分布式控制系统的一个节点,与其他节点之间以CAN总线连接并形成网络,相互传输数据和控制命令,每个节点都有主控计算机,以实现计算任务的分散化。控制器以基于ARM架构的MCU为控制计算机,搭载隔离模块、CAN控制器和收发器、数据存储模块、I/O接口模块、RS232模块等 电路 。该控制器的特点是体积和功耗小,通讯功能强,可实现智能控制、数据采集处理,故障发现等控制功能。 水下自主航行器是可移动水下探测和水下作业工程装备的统称,是进行海洋考察与开发的重要工具。它能够完成水下地形勘探、侦测、水下危险环境作业等任务。
[单片机]
基于<font color='red'>CAN总线</font>的分布式水下航行器控制器的设计方法
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved