基于AT89C51的CAN总线智能节点设计

发布者:eaff86最新更新时间:2014-02-17 来源: elecfans关键字:AT89C51  CAN总线  智能节点 手机看文章 扫描二维码
随时随地手机看文章

  1 引言

  CAN(Controller Area Network)是控制器局域网,主要用于各种设备检测及控制的现场总线。CAN总线是德国BOSCH公司20世纪80年代初为解决汽车中众多控制与测试仪器间的数据交换而开发的串行数据通信协议。这是一种多主总线,无论是在高速网络还是在低成本的节点系统,应用都很广泛。由于采用了许多新技术及独特的设计,与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性,其主要特点如下:

  ●通信方式灵活,可以多主方式工作,网络上任意一个节点均可以在任意时刻主动向网络上的其他节点发送信息,不分主从。

  ●CAN节点只需对报文的标识符滤波即可实现点对点、点对多点及全局广播方式发送和接收数据,其节点可分成不同的优先级,节点的优先级可通过报文标识符进行设置,优先级高的数据最多可在134μs内传输,可以满足不同的实时要求。

  ●CAN总线通信格式采用短帧格式,每帧字节数量多为8个字节,可满足一般工业领域中控制命令、工作状态及测试数据的要求,同时,8个字节不会占用总线时间过长,保证了通信的实时性。

  ●采用非破坏性总线仲裁技术,当多个节点同时向总线发送信息出现冲突时,优先级低的节点会主动退出数据发送,而优先级高的节点可不受影响地继续传输数据,大大节省了总线冲突仲裁时间,在网络重载的情况下也不会出现网络瘫痪。

  ●直接通信距离最大可达10 km (速率在5 kb/s以下),最高通信速率可达1 Mb/s (此时距离最长为40 m);节点数可达110个,通信介质可以是双绞线、同轴电缆或光导纤维。

  ●CAN总线采用CRC检验并可提供相应的错误处理功能,保证数据通信的可靠性,其节点在错误严重的情况下具有自动关闭输出功能,使总线上其他节点的操作不受影响。

  2 CAN总线系统结构

  由于CAN总线采用多主方式工作,所以具有与DCS(分布式控制系统)不一样的拓扑结构。其控制系统由计算机和智能节点组成,如图1所示。该系统最大的特点是所有的节点都能以平等的地位挂接在总线上。1个总线节点通常至少包括3部分:控制节点任务的单片机、总线控制器及总线驱动器。本文主要介绍CAN总线智能节点的简单设计。智能节点由89C5l型单片机、SJA1000型总线控制器、82C250型总线驱动器及PC构成。在实际应用中可以连接不同的传感器件,完成数据的采集和传输。

  控制系统由计算机和智能节点组成

  3 硬件电路设计

  笔者设计的CAN总线系统智能节点采用Intel公司的AT89C51型单片机作为节点的微处理器。AT89C51具有64KB的寻址空间。本身不带CAN控制器,所以要实现与CAN总线之间的通信需外加CAN控制器和CAN驱动器。在本设计中采用SJAl000型CAN总线通信控制器和AT82C250型总线驱动器。

  CAN总线系统智能节点硬件电路如图2所示。从图2可以看出,硬件电路主要由AT89C51、SJAl000、AT82C250、6N137型高速光电耦合器和MAX202型电平转换器件组成。AT89C51负责SJAl000的初始化,控制SJAl000实现数据的接收和发送等通信任务。MAX202用于TTL电平与RS232电平的相互转换,可以将接收的数据显示在PC上。SJAl000的ADO-AD7连接到AT89C51的P0口,CS连接到AT89C51的P2.7。P2.7为0时,CPU片外存储器地址可选中SJA1000,CPU通过这些地址可对SJAl000执行相应的读/写操作。SJAl000的RD、WR、ALE分别与AT89C51的相应引脚相连,SJAl000的INT接AT89C51的INTl,AT89C51也可通过中断方式访问SJA1000。

  CAN总线系统智能节点硬件电路

  为了增强总线节点的抗干扰能力,SJAl000的TX0和RX0并不直接与82C250的TXD和RXD相接,而是通过6N137与AT82C250相接,这样,很好地实现了总线上各节点间的电气隔离。不过,光耦电路用的2个电源VCC和VDD必须隔离。电源的完全隔离可采用小功率电源隔离模块实现。这虽然增加了接口电路的复杂性,但却提高了节点的稳定性和安全性。

  AT82C250与总线的接口也采取了一定的安全和抗干扰措施。AT82C250的CANH引脚和CANL引脚各自通过1只5 Ω的电阻器与总线相连,电阻器可起到一定的限流作用,保护AT82C250免受过电流冲击。CANH和CANL与地之间并联了2只30pF的小电容器,可以滤除总线上的高频干扰并具有一定的防电磁辐射能力。另外,在2条CAN总线输入端与地之间分别接了1个防雷击管,当2个输入端与地之间出现瞬变干扰时,防雷击管的放电起到一定的保护作用。AT82C250的RS引脚接1只斜率电阻器,其阻值的大小可根据总线通信速度适当调整,一般在16 kΩ~140 kΩ之间。[page]

  4 软件设计

  4.1  网络通信规则

  CAN总线为多主工作方式,网络上任一节点均可在任意时刻主动向网络上其他节点发送信息而不分主从,通信方式灵活。为禁止总线冲突,CAN总线采用非破坏性总线仲裁技术,根据需要将各个节点设定为不同的优先级,并以标识符ID标定,其值越小,优先级越高。总线的节点之间可以进行实时相互通信,当1个节点需要接收另1个节点的数据时,只需把其代码寄存器的内容设置成和另1节点的标识符一致即可。如果对于标识符和其代码寄存器的内容设置不一致,则节点所发的数据不予理会。

  4.2  SJAl000的工作模式设置

  SJAl000有二种工作模式:复位模式和工作模式。在复位模式下可对接收代码、接收屏蔽、总线时序寄存器O和1及输出控制寄存器进行设置。一般在CAN初始化时完成对以上寄存器的设置,当CAN进入工作模式后,它们的值就不再变化。在工作模式下可进行数据的发送和接收。特别要注意的是:当硬件复位或控制器掉线时会自动进入复位模式,这样就不能进行正常的CAN通信,这就要求对复位位进行监控。当发生硬件复位或控制器掉线而进入复位模式时,要求把复位位置为0并进入工作模式,这样CAN就能进行正常发送和接收。

  4.3  基于C语言的软件编程

  系统软件的设计思想是系统上电后首先对AT89C51和SJAl000进行初始化,以确定工作主频、波特率、输出特性等。其中任一智能节点可以利用查询方式通过SJAl000从CAN总线上获取所需的数据并把该数据传送到PC上显示,同时可以向总线上发送数据以供其他智能节点接收显示。以下是具体实现程序。

  程序

  程序

  以上就是进行试验的程序,其中reg51.h是为AT89C52主控制器专门编写的库函数,它在Keil软件中是现成的,只要用#include语句包括进来即可;intrins.h是为以后调用空函数_nop_()作准备,它里面包括了类似于汇编语言的NOP语句;CAN_TOUWENJIAN.h是头文件,用于对相关寄存器的定义。Tx_DATA_CAN()函数用于向总线发送数据,REC_DATA_CAN()函数用于从总线接收数据,SERIAL()用于PC与智能节点间的相互通信。限于篇幅,发送子程序和接收子程序没有具体给出。

  5 结束语

  在CAN总线的开发试验过程中,笔者掌握了CAN总线智能节点的设计,并在实践中进行了应用。通过应用证明,CAN总线具有以下优点:组网自由,扩展性强;自动错误界定,简化了通信的操作;可根据数据内容确定优先权,解决通信的实时性问题。此外,CAN网络已在众多工业控制系统中应用,尤其在传输速率较高而且对实时性及可靠性要求高的场合,CAN总线将有广阔的应用前景。

关键字:AT89C51  CAN总线  智能节点 引用地址:基于AT89C51的CAN总线智能节点设计

上一篇:基于AT89S52的温湿度检测与智能化控制
下一篇:基于CAN总线的车灯控制系统设计

推荐阅读最新更新时间:2024-03-16 13:35

AT89C51单片机性能介绍
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 1.主要特性: ·与MCS-51 兼容 ·4K字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年 ·全静态工作:0Hz-24
[单片机]
基于CAN总线的计算机与PLC通信
     1 引言   在现代工业中,PLC 之间或PLC 与计算机之间的通信联网应用日益广泛。PLC 的联网功能越来越强。以欧姆龙CP1、CJ1 和CS1 系列PLC 为例,配合使用各种模块,可以支持工业以太网、Controller Link 等现场总线通信联网功能。但是,应用广泛的CPM1A、CPM2A等中小型PLC 的通信联网一般只能采用工业总线的物理层形式(如RS232 或RS485),通信的稳定性与抗干扰能力并不是很强。   本文选用欧姆龙的CPM2A 机型,配合使用RS232-CAN 适配器,实现了计算机与PLC 的通信联网,方法简单, 实用性强。   2 CAN 总线简介   CAN 总线由德国BOS
[嵌入式]
stm32f103 c6t6 CAN总线的配置
KEIl5 环境下 中文显示复制过来有问题又懒得打字
[单片机]
stm32f103 c6t6 <font color='red'>CAN总线</font>的配置
采用can总线技术解决电动汽车充电机模块间的通信问题
1、 引言 电动汽车(ev)是由电机驱动前进的,而电机的动力则是来自可循环充电的 电池 ,并且电动汽车对电池的工作特性的要求远超过了传统的电池系统,因此电动汽车电池系统电压高而且 电流 大,所以对电动汽车充电机的要求比较高。 电动汽车充电机需要能够在以分钟计算的时间内完成对电池的充电,而不是通常的以小时来计算。以一个电池容量为30kwh的电动汽车蓄电池来计算,如果在15分钟内将它充满,那么充电功率将达到120kw,假设电动汽车的充电电压在200~400v,那么相应的他的充电电流将会达到300a。如此大的充电电流,如果仅用单一的 电源模块 很难实现。面对充电机的日益大容量化,并联均流是一个很好的解决方法。因为软件均流具有成本
[汽车电子]
采用<font color='red'>can总线</font>技术解决电动汽车充电机模块间的通信问题
CAN总线系统测试技术
引 言 随着汽车电子技术的发展,汽车上所用的电控单元不断增多,电控单元之间信息交换的需求促进了车用总线技术的发展。CAN总线即控制器局域网总线,由Bosch公司于1981年制定,主要目的为用作汽车的高速动力总线、中速车身总线等。由于CAN总线具有可靠性高、实时性好、成本合理等优点,逐渐被广泛应用于其他领域中,例如船舶、航天、工业测控、工业自动化、电力系统、楼宇监控等,成为了广泛使用的现场总线之一。基于CAN总线协议,还发展出CANopen、J1939、DeviceNet等多种上层总线协议。 CAN是一种开放式多主站线性结构的总线,使用双绞线作为连接介质连接所有节点,最高传输速率为1Mbit/s。 CAN总线使用
[测试测量]
<font color='red'>CAN总线</font>系统测试技术
RTL8139如何改制AT89C51编程器
  想玩89C51,但没有编程器,于是便想自制编程器,找了很多自制的资料,大多都是使用89C51做控制逻辑,需要有编程器才能制作,电路一般也比较复杂(最ez的也要30个元件),再看看不需要编程器的,一看我就放弃,太复杂了,我手头甚至连一块74LS373那样的锁存器都没有一块,可用到的元件又没多少。   天无绝人之路,充分利用计算机硬件软件,作出了这款编程器,所有的数据地址和控制信号线都需要由计算机提供,我借来一块rtl8139网卡(非常常见的PCI百兆网卡,一块新的rtl8139C才40元,如果有,更是这样省了不少米)引用它的EEPROM的地址线和数据线,因为rtl8139的EEPROM地址线和数据线是由一个32位寄存器提供,
[单片机]
RTL8139如何改制<font color='red'>AT89C51</font>编程器
AT89C51单片机显示倒计时程序
;可设定时间的倒计时定时器,可选择5/15/20/30/35/45/50分钟倒计时 ;倒计时时间由四位拨码开关的2/3/4位来控制, ;第2位表示5分钟,第3位表示15分钟,第4位表示30分钟, ;通过不同的组合可以产生5/15/20/30/35/45/50分钟倒计时 ;P1.0口的外接的发光二极管为状态LED,定时未开始时LED常亮,定时过程中LED闪烁 ;K1为开始按钮,K2为停止按钮 适用STM8S/STM8L/STM8A N76E003 脱机编程器/烧录器/下载器/SP_00【包邮】 m.tb.cn/h.UlXVKiO a_bit equ 20h ;数码管个位数存放内存位置 b_bit equ 21h ;数码管
[单片机]
基于MSP430系列单片机的CAN总线接口转换卡设计
1 引言 控制器局域网(Controller Area Network,简称CAN)是德国奔驰公司20世纪80年代为解决汽车众多控制设备与仪器仪表之间的数据交换开发的一种串行通信协议。它作为现场总线的一种广泛应用于各种工业现场,根据不同的需要或以主从方式、或以多主方式工作。CAN总线使用的通信介质为双绞线或其他电缆,传输速率可达lMb/s。 CAN总线与其他通信网的不同之处有二:一是报文传送中不包含目标地址,它是以全网广播为基础,各接收站根据报文中反映数据性质的标识符过滤报文,该收的收下,不该收的弃而不用。其好处是可在线上网下网、即插即用和多站接收;二是特别强化了对数据安全性的关注,满足控制系统及其他较高数据要求的系统需求。鉴
[单片机]
基于MSP430系列单片机的<font color='red'>CAN总线</font>接口转换卡设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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