基于CAN总线分布式控制系统智能节点的设计

发布者:笑脸猫最新更新时间:2015-01-29 来源: e-works关键字:CAN总线  分布式控制系统  智能节点的 手机看文章 扫描二维码
随时随地手机看文章

    前言
   
    现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。CAN(Controller AreaNetwork)属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络。较之目前许多RS-485基于R线构建的分布式控制系统而言,基于CAN总线的分布式控制系统在以下方面具有明显的优越性:

    首先,CAN控制器工作于多主方式,网络中的各节点都可根据总线访问优先权(取决于报文标识符)采用无损结构的逐位仲裁的方式竞争向总线发送数据,且CAN协议废除了站地址编码,而代之以对通信数据进行编码,这可使不同的节点同时接收到相同的数据,这些特点使得CAN总线构成的网络各节点之间的数据通信实时性强,并且容易构成冗余结构,提高系统的可靠性和系统的灵活性。而利用RS-485只能构成主从式结构系统,通信方式也只能以主站轮询的方式进行,系统的实时性、可靠性较差;

    其次,CAN总线通过CAN控制器接口芯片82C250的两个输出端CANH和CANL与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只能是低电平或悬浮状态。这就保证不会出现象在RS-485网络中,当系统有错误,出现多节点同时向总线发送数据时,导致总线呈现短路,从而损坏某些节点的现象。而且CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响,从而保证不会出现象在网络中,因个别节点出现问题,使得总线处于“死锁”状态。

    而且,CAN具有的完善的通信协议可由CAN控制器芯片及其接口芯片来实现,从而大大降低系统开发难度,缩短了开发周期,这些是只仅仅有电气协议的RS-485所无法比拟的。另外,与其它现场总线比较而言,CAN总线是具有通信速率高、容易实现、且性价比高等诸多特点的一种已形成国际标准的现场总线。这些也是目前 CAN总线应用于众多领域,具有强劲的市场竞争力的重要原因。

    硬件电路设计

    CAN遵循ISO的标准模型,分为数据链路层和物理层。在工程上,这两层通常由CAN控制器和收发器实现的。当前,市面上有两种CAN总线器件可供选择:一种是带有片上CAN的微控制器,如P8XC591/2、87C196CA/CB、MC68376、PowerPC555等,使用这种集成器件方便用户制作印制板,电路图也更紧凑;另外一种是独立的CAN控制器,如Philips SJA1000、Intel公司82526以及MCP2510(具有SPI接口,方便MCU连接)等, 使用独立的CAN控制器的潜在优势是,系统开发人员可以根据所需从众多种类的单片机中选择最理想的系统设计方案。    

    节点微控制器选用单片机80C196KC,CAN接口由独立控制器SJA1000和CAN控制器接口芯片82C250组成。SJA1000在软件上和引脚上都是与它的前款PCA82C200独立控制器兼容的,并增加了许多新功能:标准帧数据结构和扩展帧数据结构,并且这两种帧格作为式都具有单/双接收过滤器;64字节的接收FIFO;可读写访问的错误计数器和错误限制报警以及只听方式等等。

    SJA1000有两种工作模式:Basic CAN模式和PeliCAN模式,其中PeliCAN模式全面支持CAN2.0B协议。SJA1000作为微控制器的片外扩展芯片,其片选引脚CS接在微控制器的地址译码器上,从而决定了CAN控制器各寄存器的地址。SJA1000通过CAN控制器接口芯片82C250连接在物理总线上。82C250器件提供对总线的差动发送能力和对CAN控制器的差动接受能力,完全和“ISO11898”标准兼容。其引脚8允许选择三种不同的工作方式:高速、斜率控制和待机。在低速和总线长度较短时,一般采用斜率控制方式,限制上升和下降斜率,降低射频干扰,斜率可通过由引脚8至地连接的电阻进行控制。斜率正比于引脚8上的电流输出。为进一步提高系统抗干扰能力,在CAN控制器SJA1000和CAN控制器接口82C250之间加接6N137光电隔离芯片,并采用DC-DC变换器隔离电源。通信信号传输到导线的端点时会发生反射,反射信号会干扰正常信号的传输,因而总线两端接有终端电阻R1、R2,以消除反射信号,其阻值约等于传输电缆的特性阻抗。

    软件设计

    CAN总线节点要有效、实时地完成通信任务,软件的设计是关键,也是难点。它主要包括节点初始化程序、报文发送程序、报文接收程序 以及CAN总线出错处理程序等等。CAN控制器芯片SJA1000的内部寄存器是以作为微控制器的片外寄存器存在并作用的。微控制器和SJA1000之 间状态、控制和命令的交换都是通过在复位模式或工作模式下对这些寄存器的读写来完成的。在初始化CAN内部寄存器时注意使得各节点的位 速率必须一致,而且接、发双方必须同步。报文的接收主要有两种方式:中断和查询接收方式。[page]

    为提高通信的实时性,文中采用中断接收方式,而且这样也可保证接收缓存器不会出现数据溢出现象。SJA1000的Basic CAN工作模式是与其前一款PCA82C200独立控制器相兼容的模式, 而PeliCAN工作模式支持CAN协议中的更多功能,它的程序设计也与之有所不同。下面给出SJA1000工作在模PeliCAN式下的节点初始化、报文发送、报文接收的196汇编源程序。

    INITIALIZE:    初始化子程序
    LDB AL, #09H;  初始化模式寄存器进入复位模式
    STB AL, MODE;  选择单滤波方式
    LDB AL, #88H;  时钟分频器 
    STB AL, CDR;   选Peli CAN模式
    LDB AL, #00H
    STB AL, ACR0;  初始化接收代码寄存器
    LDB AL, #60H
    STB AL, ACR1
    LDB AL, #00H
    STB AL, AMR0;  初始化接屏蔽寄存器
    LDB AL, #3FH;  只接收标识符为2,3的报文
    STB AL, AMR1
    LDB AL, #8FH
    STB AL, IER;   中断使能寄存器
    LDB AL, #01H;  总线定时寄存器0、1的设置
    STB AL, BTR0;
    LDB AL, #1CH;  在16MHz晶振情况下
    STB AL, BTR1;  波特率设置为250
    LDB AL, #0AAH
    STB AL, OCR;   输出控制器寄存器设置
    LDB AL, #0H;   接收缓存器起始地址设为0
    STB AL, RBSA;
    LDB AL, #01H;
    ORB AL, MODE;
    STB AL, MODE;   返回工作模式
    RET TRANSMIT:; 发送子程序
    LDB AL, SR
    SRCVE: JBS AL,4, SRCVE;正接收?
    STRSV: JBC AL,3, STRSV;发送成功?
    STBF: JBC AL, 2, STBF; 发送缓存器锁定否
    WID: LDB AL, #08H
    LD BX, #TXB;           发送缓存的首址
    STB AL,[BX]+;          传送两个字节的标识符
    LDB AL,#ID0
    STB AL,[BX]+
    LDB AL,#ID1
    STB AL,[BX]+
    LDB COUT,#08H;         8个字节数据
    TDATA: LDB AL,[DATA]+   CPU内的发送数据缓存区首址
    STB AL,[BX]+;
    DJNZ COUT,TDATA;       8个字节发完否?
    LDB AL,#01H;
    STB AL,CMR;            发送
    RET
    RECEIVE:     ; 接收中断程序
    PUSHF;          保护现场
    LDB AL,IR
    JBC AL,0,OTHER; 接收中断否?
    LD BX,#RXB;     接收缓存器首址
    LDB AL,[BX]+
    JBC AL,6,RCDATA;标识符的RTR=1?
    LDB AL,#04H;    是远程帧,释放接收缓存区
    STB AL,CMR; 
    LCALL TRANSMIT; 相应远程帧,发送相应数据
    SJMP BACK
    RCDATA:
    ANDB AL,#0FH;   取低四位数据长度
    ADDB AL,#03H;
    STB AL,R1;      该报文含有的字节数
    LD BX,#RXB;     接收缓存器的首地址
    LD CX,#CRBF;    CPU内的接收数据缓存区首址
    RECE:
    LDB AL,[BX]+
    STB AL,[CX]+
    INCB R1
    DJNZ R1,RECE;   接收完否?
    LDB AL,#04H
    STB AL,CMR;     释放接收缓存区
    BACK;
    POPF
    RET

    结语

    CAN总线已被公认为是最有前途的几种现场总线之一。因其高性能价格比、实现简单等突出优点深得越来越多的研发人员的青睐。

关键字:CAN总线  分布式控制系统  智能节点的 引用地址:基于CAN总线分布式控制系统智能节点的设计

上一篇:以太网在成品库中的控制应用
下一篇:工业以太网在制丝线电控系统的应用

推荐阅读最新更新时间:2024-05-02 23:28

为什么CAN总线通讯需要采用隔离方案?
一、为什么要用隔离 从能源种类来看,目前公路上的车型主要可以分为两类,一类是使用传统汽油、柴油作为燃料的车辆,另一类是使用电池的新能源车。这两类车型的车载空调系统有什么区别呢?传统的燃油车辆,空调压缩机是由发动机直接将动能传递给空调压缩机,而新能源车的空调压缩机则是由车内的电池驱动的。 图1 动力电池 将新能源汽车的动力电池驱动压缩机需要几个步骤,首先要将直流电转化为交流电(逆变),然后调整交流电频率使其能稳定驱动压缩机中的电机,该部分的功能部件在车辆中以空调驱动单元存在。说到高压、逆变、变频、电机这些名词时,想必工程师们会立刻想到一个名词:干扰。 图2 新能源车空调系统 干扰的最终结果就是空调控制器与中控单
[嵌入式]
为什么<font color='red'>CAN总线</font>通讯需要采用隔离方案?
基于CAN总线交通信号灯动态调整系统设计
  国内红绿灯交通控制系统中红绿灯切换时间广泛采用固定或者分时段变化的时间间隔,或者由交通指挥中心根据交通状况调整时间间隔,不能够根据实际的交通状况进行动态切换,也不能够根据道路状况预先干预,防止交通恶化。在极端情况下,可能会出现有车的方向红灯禁行,没车的方向绿灯通行的现象。这种方式低效、严重依赖于交管部门的工作效率,且一般只能在交通恶化后才可能介入,不能提前预防。为此本文提出了一种基于CAN总线的红绿灯动态调整系统,它能够根据实际交通状况实时调整红绿灯时间,可以降低道路拥堵几率,保障交通畅通。 1 总体设计方案    总体设计方案如图1所示。图1(a)为每个路口的红绿灯控制器,其中环形线圈和红绿灯之间的虚线表示两者之问的联
[安防电子]
基于<font color='red'>CAN总线</font>交通信号灯动态调整系统<font color='red'>的</font>设计
说说如何利用万用表确定can总线系统引脚?
本篇文章我们接着来说说如何利用万用表确定CAN总线引脚,虽然我们先通过上篇测量电压的方法,排除一些大电压的总线,但我们依然无法准确的判断哪个是CAN总线,因为CAN总线在不同状态时电压不一样。 我们需要先测试一下标准CAN总线处于各种状态时的电压值,这里以USBCAN分析仪为例,这个设备是一个标准的CAN总线通信设备,以该设备举例CAN总线标准电压范围。 我们先对他进行CAN总线电压测试。 标准CAN总线电压如下图所示,我们先将设备的CAN总线置于隐性状态,即上电并初始化成功后,总线上没有任何数据,在隐性状态时CANH和CANL的对地电压是在2.5V左右,如图3所示。 差分信号电压波形 静默电压 之后我们将设备的CAN
[测试测量]
说说如何利用万用表确定<font color='red'>can总线</font>系统<font color='red'>的</font>引脚?
在LPC2131微控制器外部实现CAN总线通信设计
Philips公司的LPC213l是基于ARM7TDMI-S的高性能32位RISC微控制器。它具有ARM处理器的所有优点——低功耗、高性能和较为丰富的片上资源,但LPC2131内部没有集成CAN控制器,而无法利用CAN总线来进行通信。为了使得LPC2131能够利用CAN总线进行通信,可以通过外部扩展来实现其功能。目前,比较普通的方法是在LPC2131的外部采用CAN控制器设计CAN总线接口。LPC2131与CAN控制器的接口电路如图1所示。 这种方法中,LPC2131是通过GPIO口与CAN控制器SJA1000相连实现数据交互的。LPC2131通过寄存器IOSET/IOCLR来设定I/O口的高/低状态,虽然可以同时置位/拉低
[单片机]
在LPC2131微控制器外部实现<font color='red'>CAN总线</font>通信设计
CAN总线在停车场灯光智能控制系统应用
CAN(Controller达式Area Network--控制器局域网)是一种有效支持分布式控制和实时控制的串行通信网络,具有可靠性高、成本低、配置灵活、数据传输距离远、数据传输速率快等优点,已经成为国际上应用最广泛的现场总线之一。      目前大部分的地下停车场都需要大量的照明设备进行长期照明,采用传统的连续照明方式或声控照明方式很难实现照明的自动控制,且会造成巨大的能源浪费和设备损耗。国外虽然有类似的灯光智能控制系统,但价格很高,限制了它的广泛应用。本文提出了一种基于CAN总线技术开发的分布式停车场灯光智能控制系统,能够解决停车场内照明智能控制问题,降低停车场内的布线复杂度,减少安装费用并大大延长停车场内照明设备的使用寿
[工业控制]
<font color='red'>CAN总线</font>在停车场灯光<font color='red'>智能</font><font color='red'>控制系统</font>中<font color='red'>的</font>应用
基于DSP和CAN总线RTU设计
  远程测控终端(RTU) 作为体现“ 测控分散、管理集中” 思路的产品从20 世纪80 年代起介绍到中国并迅速得到广泛应用, 应用在变电站上的RTU 主要是实现现场电力参数的远程采集与控制命令的远程发布, 并将信息或结果组装成报文, 上送到控制中心或调度端。纵观国内外的RTU 产品, 逐步从集中式控制结构向模块化、分散式、开放性的系统控制结构发展。由于变电站的数据量和信息量大, 实时性要求高, 因此将具有强大、高效的运算能力和丰富外围接口电路的DSP 应用于RTU 的设计方案; 同时引入了开放性结构的CAN 现场总线引入, 运用于变电站现场数据的通信并由它组成了一个开放、可靠和实时的监控系统。    1 系统总体结构设计
[嵌入式]
CAN总线原理介绍
  CAN是Controller Area Network的缩写,即“局域网控制器”的意思,可以归属于工业现场总线的范畴,通常称为CAN BUS,即CAN总线,是目前国际上应用最为广泛的开放式现场总线之一。   CAN总线最早用在汽车电子领域,世界上一些著名的汽车制造厂商都采用CAN总线来实现汽车内部控制系统与各检测和执行机构间的数据通信。由于CAN总线在数据通信方面表现出来的高可靠性、实时性和灵活性,其应用领域已经成汽车电子领域扩展到自动控制、航空航天、航海、工业控制、医疗器械、安全防护等领域。   CAN总线规范从CAN1.2规范发展为兼容CAN1.2规范的CAN2.0规范(CAN2.0A为标准格式,CAN2.0B为扩展格式),
[嵌入式]
模糊控制在基于CAN总线数据采集与控制系统应用
  L.A.扎德教授于1965年创立的模糊集合理论(Fuzzy Sets)及模糊数学(Fuzzy Mathematics)为模糊逻辑控制的形成提供了理论基础。近年来,随着各企业生产规模的不断扩大,生产过程控制系统也变得越来越复杂。由于整个系统的非线性增强、时滞增大,而且不是系统中的每个环节都需要建立精确的数学模型,使得模糊逻辑控制在生产过程中的应用成为可能。随着模糊控制的迅速发展,不需要对控制对象建立精确数学模型的模糊控制方法已进入实用化的阶段,它主要是把对被控系统的熟练的操作经验转换成模糊规则。现场总线的出现,为复杂现场采用模糊控制技术进行直接控制提供了很好的途径,也使模糊控制算法可以利用现场总线的强大网络功能实现集中化管理,而对
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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