0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于MCS-51单片机和CAN总线控制器实现总线节点的设计

电子设计 来源:微计算机信息 作者:胡光永 2020-04-12 07:48 次阅读

CAN(Controller Area Network)即控制器局域网络。由于其具有较强的抗干扰能力、通讯中没有地址的概念及节点数不受限制等优点,已经被广泛应用于汽车、数控机床、仪器仪表、现场总线控制等领域。在CAN总线的节点设计中,目前应用较多的是通过单片机的控制来实现。有的单片机已经嵌入了CAN控制器的功能,比如Philips的P8XC592,Motorola的68HC05X4等,但这类单片机的应用并不普及,而且价格相对较高。对于目前应用最为普及、价格也很便宜的MCS-51系列单片机,本身并不嵌有CAN控制器的功能。下面就给出一种基于MCS-51单片机和SJA1000的CAN总线节点设计方法。

1、 CAN总线简介

CAN 总线是现场总线的一种,它是德国Bosch 公司在1986 年为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通讯总线。它与其它总线最大的区别是两个节点之间传送信息时报文中没有地址信息,而是对不同性质的数据加以标识。在通讯时,以全网广播为基础,各接收节点根据报文中反映数据性质的标识符过滤报文,该收的收下,不该收的弃而不用。虽然CAN总线最初是为在汽车行业应用而开发的,但由于其具有很强的纠错能力,支持差分收发,因而适合高噪声环境,而且传输距离比较远。另外,象Philips,Motorola,Intel半导体制造商相继开发出了支持CAN协议的集成芯片,更是推动了CAN总线的应用。目前,CAN总线在数控机床、医疗设备、工业控制等领域也取得了广泛的应用。1993年,国际标准化组织正式颁布了CAN总线的国际标准ISO11898。其具体特性如下:

(1)CAN网络上的节点信息可以分成不同的优先级,用来满足不同的实时要求。

(2)CAN为多主工作方式,网络上任一节点均可在任意时刻主动地向网络上的其他节点发送信息,而不分主从。

(3)当多个节点同时向总线发送信息时,CAN采用非破坏性总线仲裁技术,低优先级的节点会依此退出发送,而最高优先级的节点正常发送,不会受到任何影响,极大地节省了总线冲突仲裁时间。

(4)发送期间若丢失仲裁或由于出错而遭破坏的帧可自动重发送。

(5)CAN的直接通讯距离最远可达到10km(速率5kbps以下),通讯速率最高可以达到1Mbps(此时通讯距离最长为40m)。

(6)CAN的每帧信息都有CRC校验及其它检错措施,保证了出错率很低。

(7)CAN节点在错误严重的情况下具有自动关闭,退出总线的功能,从而使总线上的其它接点不受影响。SOC开发平台360元 单片机开发系统498元 单片机学习板138 无线nRF-9E5模块100元 51单片机试验开发板238元 Genius NSP通用编程器260元 Mini ARM Debugger330元 LABTOOL-48UXP2800元 S3C2410 ARM9开发板800

2、 SJA1000的介绍

SJA1000是Philips生产的独立CAN总线控制器,它是早期的PCA82C200的替代产品。它与PCA82C200在管脚、电气特性上完全兼容,不仅有和PCA82C200一样的基本CAN(BasicCAN)工作模式,而且新增加了增强CAN(PeliCAN)工作模式,这种模式支持具有很多新特性的CAN2.0B协议。经过简单连接和正确设置的SJA1000,能自动完成CAN总线物理层和数据链路层的所有功能,对于单片机来说,只要把它看成一个基本的I/O设备即可,使用非常简单、方便。SJA1000的主要特性如下:

(1)扩展的接受缓冲器(64字节,先进先出FIFO)。

(2)和CAN2.0B协议兼容。

(3)同时支持11位和29位识别码。

(4)位速率最高可达1Mbits/s。

(5)支持多种微处理器接口

(6)增强的温度适应性。

3、 节点硬件电路设计说明

目前广泛流行的CAN器件分两大类,一类是独立的CAN控制器,如PCA82C200、SJA1000等,另一类就是带有CAN功能的微控制器,如Philips的P8XC592,Motorola的68HC05X4等。考虑芯片的市场普及程度、开发工具及成本等因素,在这次设计中选用单片机AT89C51为核心,SJA1000为CAN控制器,同时还使用了PCA82C250,它是CAN控制器的接口芯片。从功能上来分,SJA1000主要完成CAN的通讯协议,实现报文的装配和拆分、接收信息的过滤和校验等。PCA82C250则是实现CAN控制器和通讯线路的物理连接,提高CAN总线的驱动能力和可靠性。具体电路如下图所示,虽然整个电路比较简单,但结合本人设计、现场调试的体会,给出下面几点说明。

基于MCS-51单片机和CAN总线控制器实现总线节点的设计

(1)SJA1000并没有和单片机共用复位电路,而是通过单片机的一I/O口来控制,这样,SJA1000的复位就可以方便地由单片机通过软件来控制。

(2)SJA1000的地址/数据端和单片机的P0口相连时,不需要再加锁存器,因为它内部已经有地址锁存功能。

(3)SJA1000 的TX1 脚悬空, RX1 引脚的电位必须维持在约0.5VCC上, 否则将不能形成CAN 协议所要求的逻辑电平。

(4)总线上电阻R3、R4一定不能省略,它们对匹配总线阻抗起着相当重要的作用,如果去掉它们,系统通讯的可靠性和抗干扰能力就会大大降低,甚至不能正常工作。

4 、 软件设计

和硬件电路相比,软件的设计相对来说要复杂的多。而且,其中还涉及到有关通讯协议的问题,对于不同的控制系统、不同的功能要求,CAN总线通讯软件的差别很大,在此不可能一一列出。但是,对于基于SJA1000的CAN总线系统,它们开始时都必须对SJA1000进行初始化,而这种初始化的流程是基本一致的。下面给出用汇编语言编制的SJA1000的初始化程序,假设SJA1000的首地址为0100H,其中设置波特率的有关参数是针对晶振为12M,波特率为500Kbit/s计算出来的。另外,在整个CAN总线系统中,所有节点设置的波特率必须一致,否则,系统就不能正常工作。

MODE EQU 0100H

BTR0 EQU MODE+6

BTR1 EQU MODE+7

ACR0 EQU MODE+16

AMR0 EQU MODE+20

OCR EQU MODE+8

RBSA EQU MODE+30

CDR EQU MODE+31

MOV A,#01H

MOV DPTR,#MODE

MOVX @DPTR,A

MOV A,#0C0H

MOV DPTR,# CDR

MOVX @DPTR,A

MOV A,#1AH

MOV DPTR,# OCR

MOVX @DPTR,A

MOV A,#85H

MOV DPTR,# BTR0

MOVX @DPTR,A

MOV A,#0B4H

MOV DPTR,# BTR1

MOVX @DPTR,A

MOV A,#00H

MOV DPTR,# RBSA

MOVX @DPTR,A

MOV A,#0FFH

MOV DPTR,# AMR0

MOV R0,#04H

BEGIN10:MOVX @DPTR,A

INC DPTR

DJNZ R0,BEGIN10

MOV A,#00H

MOV DPTR,#MODE

MOVX @DPTR,A

5、 结束语

CAN 具有较强的纠错能力,适用于高噪声环境, 并具有较远的传输距离, 现已广泛应用于许多领域,该设计作为CAN总线节点的一个模块,能够和仪器仪表等设备相结合,使其具有网络通讯的能力,有着广阔的应用前景。

责任编辑:gt


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6035

    文章

    44554

    浏览量

    634660
  • 控制器
    +关注

    关注

    112

    文章

    16332

    浏览量

    177812
  • CAN总线
    +关注

    关注

    145

    文章

    1946

    浏览量

    130727
收藏 人收藏

    评论

    相关推荐

    CAN总线通信系统的研究与设计

    MCS-51单片机组成CAN通信系统需要扩展CAN控制器,本系统采用的CAN
    的头像 发表于 01-09 08:23 6232次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b>通信系统的研究与设计

    MCS-51单片机基本原理

    MCS-51单片机基本原理[学习要求] 掌握MCS-51单片机的基本概念和基本原理。[重点与难点]重点:单片机的基本原理与内部结构。难点:
    发表于 03-19 16:39

    PIC单片机MCS-51系列单片机的区别

    PIC单片机MCS-51系列单片机的区别(1)总线结构:MCS-51单片机
    发表于 08-26 14:23

    MCS-51系列单片机结构和原理

    Intel公司推出的MCS-51系列单片机以其典型的结构、完善的总线、特殊功能寄存的集中管理方式、位操作系统和面向控制的指令系统,为
    发表于 11-17 06:37

    新编MCS-51单片机应用设计

    新编MCS-51单片机应用设计
    发表于 03-21 22:03 576次下载

    mcs-51单片机应用教程

    mcs-51单片机应用教程以MCS-51系列单片机为主线,从实用的角度出发,通过介绍大量单片机技能训练实例和应用实例,指导读者学习和使用
    发表于 10-28 16:21 77次下载
    <b class='flag-5'>mcs-51</b><b class='flag-5'>单片机</b>应用教程

    MCS-51单片机系统扩展技术

    1 MCS-51单片机系统扩展的基本概念2 程序存储扩展技术3 数据存储扩展4 输入/输出口扩展技术MCS-51
    发表于 12-01 14:39 65次下载
    <b class='flag-5'>MCS-51</b><b class='flag-5'>单片机</b>系统扩展技术

    MCS-51 单片机基本原理

    [学习要求] 掌握MCS-51单片机的基本概念和基本原理。[重点与难点]重点:单片机的基本原理与内部结构。难点:MCS-51单片机存储
    发表于 03-18 22:05 67次下载

    MCS-51单片机硬件结构

    教学内容:2.1  MCS-51单片机的基本结构2.2  MCS-51单片机的引脚及片外总线结构教学方法: 
    发表于 07-07 15:43 38次下载

    基于MCS-51单片机的定时报警电路原理图

    选用MCS-51系列AT89S51单片机作为微控制器,选择两个四联的共阴极数码管组成8位显示模块,由于 AT89S51
    发表于 05-21 16:11 3411次阅读
    基于<b class='flag-5'>MCS-51</b><b class='flag-5'>单片机</b>的定时报警<b class='flag-5'>器</b>电路原理图

    MCS-51单片机应用设计

    本书从应用的角度,详细地介绍了MCS-51单片机的硬件结构、指令系统、各种硬件接口设计、各种常用的数据运算和处理程序及接口驱动程序的设计以及MCS-51单片机应用系统的设计,并对
    发表于 10-28 10:06 84次下载
    <b class='flag-5'>MCS-51</b><b class='flag-5'>单片机</b>应用设计

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

    应用51单片机控制核心结合其他的器件设计了一种能连接于CAN总线上的智能节点。通过
    发表于 01-10 16:54 120次下载

    MCS-51单片机的结构和原理

    MCS-51单片机的结构和原理
    发表于 12-11 23:41 0次下载

    MCS-51单片机的温度控制系统

    MCS-51单片机的温度控制系统
    发表于 09-21 13:50 25次下载
    <b class='flag-5'>MCS-51</b><b class='flag-5'>单片机</b>的温度<b class='flag-5'>控制</b>系统

    MCS-51单片机应用设计

    MCS-51单片机应用设计说明。
    发表于 05-24 14:27 48次下载