CAN总线最早是德国的BOSCH公司为解决汽车的监测,控制系统而设计的。现在,已由汽车行业扩展到过程工业,机械工业,机器人和楼宇自动化等领域。总结各个领域中的应用实例,CAN通信设计的关键在于各个通信模块的设计与实现。通信信号一般有模拟量输入/输出(电压电流采集模块),开关量输入\输出,数字量输入\输出(如计数器模块)等。本文重点就模拟量输入模块和开关量输入模块的设计,采用具有CAN接口的C8051F550单片机作为系统设计的从节点,用来采集模拟量和开关量,实现与上位机中央控制器的通信。
1 CAN总线通信网络系统
如图1所示,本设计中通过带有终端器(120欧电阻)的通信介质(双绞线)将上位机和底层模块连接起来。实验中,终端电阻和双绞线阻抗的匹配确保了数据信号不会在总线的两端反射。上位机(主节点)采用USB—CAN接口适配器(型号GYB507),使PC机直接通过USB接口就可连入CAN总线网络,成为一个标准的CAN节点。配合总线通信测试软件CANtool的使用,可直接配置PC机的发送与接收状态,通信速率和报文滤波功能等。同时,还可实时监测显示网络中各从节点与PC机的数据通信,应用简单、方便。
图1 CAN总线通信网络结构
2 智能节点硬件设计
传统的从节点设计是将CPU与CAN总线控制器和总线收发器相连后再连入总线网络,这样使CPU外围电路复杂化,整个系统受外部影响较大。为了解决这一问题,很多单片机厂商都将CAN控制器集成在单片机上。本文中选用C8051F550该单片机,它是内部集成的CAN控制器,完全按照BoshchCAN全功能的CAN模块实现,符合CAN2.0B协议,工作位速率可达1Mpbs。控制器包含有一个CAN内核,消息缓冲区,报文处理状态机和CAN控制寄存器。通信控制器有32个消息对象,可以配置为发送或接收数据。输入数据,消息对象及其标识符存储在CAN消息缓冲区中,能实现CAN协议的数据链路层的全部功能及物理层大部分功能。CIP-51CPU可通过特殊功能寄存器直接或间接访问CAN控制寄存器(CANOCN),测试寄存器(CANOTST)和状态寄存器(CANOSTA)。所有其它寄存器只能通过CANOADR,CANODATH和CANOTAL寄存器以地址索引方式间接访问。
CAN总线的驱动器采用隔离CAN总线收发器CTM1050,通信速率1Mbps,至少可连接110个节点。内部集成的电气输入级隔离电路,可隔离高达2 500V的直流电压。输入级兼容3.3V和5V的CAN控制器,输出级驱动具有温度保护,内部TVS管可防止总线过压功能。与传统的PCA82C250总线收发器相比,主要优点是无需外加光耦可直接使用,外围电路简单,安全,可满足工业现场恶劣条件的使用。图2所示为C805117550与CTM1050的接口电路。
图2 C805F550与CTM1050的接口电路
3 智能节点软件设计
图1中三个节点与上位机的通信方式采用的是节点1、3与上位机实现点对点通信工作方式。节点1、3的微处理器C8051F550上电复位后,自动采集模拟电压信号,通过C8051F550内部集成的12位A/D转换,将数字量发送到上位机。上位机实时进行数据监控,如果收到的数据出现错误,可以通过CANtool软件,发送自定义的错误数据标识给两个节点,两节点收到该数据后,停止A/D采样工作。节点1、3与节点2是主从工作方式。当节点2的开关量有按键按下时,1、3节点将实时采集到的数据在发送给节点2,并在节点2的LCD上显示。[page]
3.1 初始化CAN控制器
C8051F550上电复位后,控制寄存器CANOCN的INIT位和CCE位置‘1’。允许寄存器初始化并写入设置信息。需要写入的寄存器主要包括位定时寄存器和扩展寄存器,命令掩码寄存器。主要完成时序参数的配置和消息对象的初始化。本设计中,使用晶振频率为11.05MHz,位定时设置为996.65~1000ns。初始化程序如下:
3.2 CAN中断服务程序
C8051F550的CAN支持的中断方式有状态中断和模块中断。状态中断方式是在报文成功传输或检测到CAN总线出错时发生的。模块中断也称消息中断。CAN控制器允许用户按需求配置消息对象成为中断源。通过设置消息控制寄存器的中断悬挂位可实现此功能。在CAN中断寄存器中以最高优先级来指向这些挂起的中断,而不考虑时序。状态中断有最高优先级,读取状态寄存器会自动清除状态中断值(8000h)。消息中断优先级是随消息编号的增加而减小。消息中断是由清除消息对象的INTPND位来清除的。中断服务流程图如图3所示。
图3 中断服务流程
4 结束语
本系统的总线通信网络已实现三个节点与上位机的连调,系统软件采用结构化程序设计方案,使其具有较好的模块化和可移植性,对于不同的系统功能或不同的应用环境,可以方便地进行编程重组。
本文设计的CAN总线通信网络中的主从智能节点经过试验调试,硬件电路工作正常,在总线数据采集系统中抗干扰能力强。软件部分实时性强,准确率高。从节点可以实时地将信息传送给主节点,以便主节点实时监控。整个节点通信系统工作稳定,可以满足现场环境要求。
在设计过程中,认识到目前基于CAN2.0B协议的CAN控制器无法为实时和非实时性数据动态分配优先权,基于事件触发模式的访问机制无法满足众多节点的实时访问。
关键字:CAN总线 智能节点 通信系统
引用地址:
基于C8051F550的智能节点的设计
推荐阅读最新更新时间:2024-03-16 13:50
基于CAN总线的分布式蓄电池在线监控系统设计
引言
一般电源设备只能对电池组的整体输出电压和电流进行测量,对于单块电池不能进行在线测量。而电池组的失效又往往是从单块电池失效开始的一种恶性循环,尤其对于使用时间较长但又不超过使用期限的电池组,单纯依靠维护人员的日常维护很难发现问题。因此,对于单块电池的运行参数进行在线监控,及时发现问题就变得极为重要。
单块电池的损坏首先表现在端电压在充电时过高而在放电时又迅速下降,电池体温升高,负载能力下降等异常现象。可以通过对电池的端电压、体温等参数的在线测量及时发现故障电池。
早期的蓄电池在线监控采用集中监控方法,或是基于RS-232(或RS-485)总线的分散采集、集中监控的分布式测量方法。这些方法只能采用主从式系统结构,以轮
[嵌入式]
PIC单片机车载仪表带CAN总线通讯源代码
单片机源程序如下: ;****************************************************************************** ; * ; Filename: FB_ZHU_JI_PIC16LF1947.ASM * ; Date: 2012.01.6 * ; File Version: 1.0 * ;
[单片机]
单线CAN总线收发器芯片AU5790
摘要: AU5790是飞利浦公司推出的单线CAN总线收发器芯片。可用于汽车电子系统的多路传输系统。该总线在挂接32个节点时,其总线速度可达33.3kbps。文中介绍了AU5790的内部结构、工作原理及特性,最后给出了它的应用电路。 关键词: CAN总线 收发器 AU5790 1 概述 AU5790是飞利浦公司推出的用于由地构成回路的单总线CAN总线收发器芯片,主要用于汽车的多路传输应用方面。它为CAN总线控制器之间的数据传输提供一单线的物理接口,当总线上挂接32节点时,总线速度可达33.3kbps。AU5790能提供先进的睡眠/唤醒功能,当汽车停用时,可减少芯片供电电源的消耗,但仍能提供所需的网络控制功能。在高速
[网络通信]
CAN总线的数据采集与处理系统的设计
1 引言 现场总线及其应用技术日益成为国际自动控制领域关注的一个焦点。CAN总线是目前公认的几种最有前途的现场总线之一。通信介质可以是双绞线、同轴电缆和光纤,其通信速率可达1mbps。can国际标准的制定更加推动了它的发展和应用,基于can总线的工业应用系统业大量涌现。其主要应用领域包括大型仪器设备、传感器技术及数据采集系统和工业现场监控系统等 。本文结合can总线的特点,介绍了基于can总线的数据采集与处理的一种设计方法。
2 系统设计
2.1 can系统概要
图1 结构简图
本系统由两个cpu通过双口 ram相互连接组成,一片cpu(p87c591)负责can信号
[嵌入式]
CAN总线优点
CAN总线优点及特点 ① 组网自由,扩展性强;② 自动错误界定,简化了电控单元对通信的操作;③ 可根据数据内容确定优先权,解决通信的实时性问题。
CAN(Controller Area Network)总线,也称控制器局部网,属于现场总线的范畴,它是一种有效支持分布控制或实时控制的串行通信网络。由于采用了许多新技术及独特的设计,CAN总线与一般的通信总线相比,它的数据通信具有突出的可靠性、实时性和灵活性。 其特点如下:
CAN为多主工作方式,网络上任何一个节点均可在任意时刻主动地向 网络上其它节点发送信息,而不分主从。
在报文标识符上,CAN上的节点分成不同的优先级,可满足不同的实时要求,优先级高的数据最多可在134us
[嵌入式]
基于CAN的电源控制系统设计
CAN总线是一种能有效支持分布式控制系统的串行通信网络,一方面,其通信方式灵活,可实现多主方式工作,还可实现点对点、点对多点等多种数据收发方式;另一方面,他能在相对较大的距离间进行较高位速率的数据通信,例如在3.3 km的距离内其传输速率可达20 kb/s。我们的系统是由上位机对多台并列的单电源控制系统进行控制管理,单电源的间距在100 m左右,且其必须置于较高的位置,系统之间要进行快速的数据传输,CAN总线能很好的满足该系统的要求。
1 系统总体结构
图1是该集散电源控制系统的结构示意图。
本系统用的是C51单片机,外接CAN控制器SJA1000,他对下面多台下位机传送控制定值,并且在收集下位机送来数据后对其进行分
[嵌入式]
基于短距无线通信及CAN总线的照明光源控制研究
1.前言目前我国照明用电量占建筑用电的20%-30%,智能照明电气公司生产的场景控制器和调光产品基本上都采用开环控制,根据区域要求打开光源并调节光的输出,这样很难达到该环境最合理的照度,通常调节好一个照度水平后,不会再根据该环境的光线强度来改变照度.这种不合理的控制光源方法,增加了用电量,造成大量污染.无线传感器网络技术是本世纪最具影响力的技术之一,如果将无线传感技术应用到照明控制系统中,不仅会大大减少成本,而且节约资源,避免不必要的浪费.
本文提出的照明控制系统主要利用短距离无线通信和CAN总线技术,应用于小环境光源照明控制,由无线通信基站.无线通信从站和终端节点组成.本方案适合小环境光源控制,克服了自动化程度低.管
[嵌入式]
基于ZigBee与CAN总线技术的井下无线通信系统设计
0 引言 该系统是基于CAN和ZigBee技术的井下无线通信系统。主要作用是使矿山井下作业人员能较方便的进行双向无线通信,并辅助实时人员跟踪,便于企业合理的调度和管理,特别是矿难发生时,在原有线通信系统损害的情况下,对救援受困人员起很大的作用。 ZigBee是一种新兴的基于IEEE 802.15.4短距离,低功耗的无线通信技术,主要适用于自动控制和远程控制领域,可以嵌入到各种设备中,ZigBee技术可以用很少的能量在数千个微小的节点之间相互协调实现通信,以接力的方式通过无线电波数据从一个网络节点传到另一个节点,通信效率非常高。 CAN(Controller Area Network,CAN)是ISO国际标准化的串行通信协议,由19
[嵌入式]