基于SJA1000的CAN总线控制系统的设计与实现

2011-05-16 08:48:13来源: 互联网 关键字:控制系统  设计  实现

0 引言

    CAN-bus(Controller Area Network)即控制器局域网是国际上应用最广泛的现场总线之一。最初CAN-bus被设计作为汽车环境中的微控制器通讯工具,用于在车载各电子控制装置ECU之间交换信息,从而形成汽车电子控制网络。如今,CAN-bus作为一种技术先进、可靠性高、功能完善、成本合理的远程网络通讯控制方式,已被广泛应用到各个自动化控制系统中。而且CAN-bus总线在通信能力、可靠性、实时性、灵活性、易用性、传输距离等方面较RS-485总线有着明显的优势。因而用CAN总线取代RS-485总线将是大势所趋。

1 CAN总线的主要特性

CAN总线与其它通信网的不同之处有二:一是报文传送中不包含目标地址,它是以全网广播为基础,各接收站根据报文中反映数据性质的标识符来过滤报文,该收的收下,不该收的弃而不用。其好处是可在线上网下网、即插即用和多站接收;二是特别强化数据安全,可满足控制系统及其它较高数据要求的系统需求。CAN具有以下主要技术特性:

(1)CAN遵从ISO模型,采用了其中的物理层、数据链路层与应用层。采用双绞线,通信速率最高可达到1 Mbps/40 m,直接传输距离最远可达10 kin/5 kbps。同一段总线内最多可挂接110个设备。

(2)CAN的信号传输采用短帧结构,每一帧有效字节数为8个。因而传输时间短,受干扰的概率低。当节点发生严重错误时,CAN可自动关闭该节点,同时切断与总线的联系,以使总线上其它节点不受影响,因此CAN总线具有很强的抗干扰能力。

(3)CAN可支持多主工作方式,网络上任一节点在任何时候均可主动向其它节点发送信息,同时也支持点对点、一点对多点和全局广播方式来接收/发送数据。处于优先级低的节点会主动停止发送,以此来避免总线冲突。

2 CAN总线接口硬件电路的设计

硬件电路的设计主要是CAN通信控制器与微处理器之间和CAN总线收发器与物理总线之间的接口电路的设计。CAN通信控制器是CAN总线接口电路的核心,主要完成CAN的通信协议,而CAN总线收发器的主要功能是增大通信距离,提高系统的瞬间抗干扰能力,保护总线,降低射频干扰(RFI),实现热防护等。

2.1 CAN总线接口电路

SJA1000硬件接口原理图如图l所示。图中,CAN总线控制器SJA1000的ADO-AD7连接到AT89C51的P0口。片选端CS取反后连接到AT89C51的P2.7,当P2.7为1时,CPU片外存储器地址可选中SJA1000。CPU通过这些地址可对SJA1000执行相应的读/写操作(即:SJA1000首地址为8000H)。SJA1000的RD、WR、ALE分别与AT89C51的对应引脚相连。由于SJA1000是低电平复位,而AT89C51是高电平复位,所以两者的复位端接法不同。另外,当SJA1000的11脚MODE接高电平时,可选择Intel二分频模式。SJA1000的16脚(INT)是中断信号输出端,在中断允许的情况下,有中断发生时,16脚会输出由高电平到低电平的跳变,因此将AT89C51的外部中断输入脚(INT0)与该脚相连接,即可通过中断方式来访问SJA1000。为了增强CAN总线节点的抗干扰能力,本设计采用SJA1000的具有光电隔离的CAN总线接口。SJA1000的发送输出端TX0与接收输入端RXO、RX1分别经高速集成光电耦合器6N137隔离后,与CAN总线接口驱动芯片82C250的TXD和RXD相连,82C250直接与CAN物理总线相连。CAN总线驱动器PCA82C250是CAN控制器和物理总线之间的接口,具有可向总线的差动发送数据和CAN控制器的差动接收数据的功能。


2.2设计注意事项

在进行电路设计时应注意以下几点:

(1)总线两端必须接两个终端匹配电阻Rs,若忽略掉它们,会使数据通信的抗干扰性及可靠性大大降低。

(3)SJA1000的TX1脚悬空时,RX1引脚的电位必须维持在约0.5Vcc上,否则,将不能形成CAN协议所要求的电平逻辑。因本系统传输距离近,环境干扰小,可以不用电流隔离,这样可以直接把82C250的Vref端(约为0.5 Vcc)与SJA1000的RX1相连,从而简化了电路设计。

(4)设计时将SJA1000的CLOCKOUT的时钟信号接至AT89C51的时钟电路输入端,来作为AT89C51的外部时钟输入,从而解决了时钟同步问题:同时将SJA1000中断输出信号/INT接至AT89C51的/INT0端,通过中断方式与AT89C51进行通信。

3系统软件设计

系统上电后首先对82C250和SJA1000进行初始化。以确定工作主频、波特率、输出特性等,然后通过查询方式获取模数转换采样值,并把该值通过SJA1000传送到CAN总线上由上位PC机来进行显示控制。而对来自CAN总线上的信息则采用中断方式处理,系统每接收到一帧信息,便产生一次中断以触发微处理器进入中断模式,然后在中断服务程序中读取该帧信息并传送到现场。SJA1000的初始化程序如下:

    MOV DPTR,#CR:控制寄存器CR的地址送DPTR
    MOVA,#01H
    MOVX@DPTR,A:进入复位模式
    MOV DPTR,#CDR
    MOVA,#00H
    MOVX@DPTR,A:选择BASIC CAN模式、时钟不输出
    MOV A,#NODECODE
    MOVX @DPTR,A;节点号NODECODE写入ACR
    MOVX DPTR,#AMR
    MOV A,#00H
    MOV @DPTR,A;AMR置为0,当且仅当RXID0=ACR时接收数据
    MOV DPTR,#BTR0;设定总线时序寄存器BTR0,系统采用12 MHz晶振
    MOV A,#85H;分频后总线时钟频率为2MHz
    MOVX @DPTR,A;同步跳转宽度为3tscl
    MOV DPTR,#BTR1;设定总线时序寄存器BTR1
    MOV A,#OB4H:位同步时间为1个tsc1,采样开始位置TSEG1=5tsc1
    MOVX @DPTR,A;TSEG2=4tsc1,每一位时间10tsc1(200 kHz),每位采样3次
    MOV DPTR,#OCR;设置输出控制寄存器
    MOV A,#1AH:数据从TX0按正常输出模式同极性输出
    MOV @DPTR,A;TX1不用
    MOV DPTR,#CR;初始化完成,使控制器退出复位模式,进入工作模式工作。
    MOV A,#06H
    MOV @DPTR,A

SJA1000在经过初始化后便开始接收或发送数据,其程序流程分别如图2和图3所示。



4结束语

该接口电路在经DP-51H单片机通讯仿真实验仪的调试后,结果表明它能模拟实现通信功能,且其抗干扰性能优良,通信速率较高,电路也比较简单,是开发与应用其它CAN总线产品的基础。

关键字:控制系统  设计  实现

编辑:eeleader 引用地址:http://www.eeworld.com.cn/gykz/2011/0516/article_5975.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:基于DM9000的以太网藏文信息控制平台
下一篇:基于CAN总线技术实现的船舶电站自动控制系统

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利
推荐阅读
全部
控制系统
设计
实现

小广播

独家专题更多

东芝在线展会——芯科技智社会创未来
东芝在线展会——芯科技智社会创未来
2017东芝PCIM在线展会
2017东芝PCIM在线展会
TI车载信息娱乐系统的音视频解决方案
TI车载信息娱乐系统的音视频解决方案
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2017 EEWORLD.com.cn, Inc. All rights reserved