企业简介

作为中国自动化领域的权威旗舰网络媒体,控制网创立于1999年7月,是中国举行的第十四届IFAC (International Federation of Automatic Control)大会的中国官方组织机构的唯一指定网站。控制网是中国自动化学会专家咨询工作 委员会(ECC)的秘书处常设之地。是北京自控在线文化传播有限公司开设的网站。

  • 公司类型:其他

联系方式
  • 控制网
  • 地址:北京市海淀区上地十街辉煌国际2号楼1504室
  • 邮编:100085
  • 电话:010-57116291 / 59813326
  • 传真:010-59813329
  • 网址:http://www.kongzhi.net
  • Email:mahongliang@kongzhi.net
  • 联系人:市场部
案例详细
标题CAN总线在智能仪表中的应用
技术领域PLC&PAC
行业
简介主要介绍了CAN总线在智能仪表中的应用,介绍了CAN总线系统节点的构成和软件设计,以及设计中需注意的问题。
内容



1  前言

    随着通信技术的发展,CAN总线已广泛应用于各行各业的工业现场,根据不同的需要或以主从方式,或以多主方式工作,CAN总线使用的通信介质为双绞线及其他电缆,传输速率可达1Mbps。鉴于其极高的可靠性和独特的设计以及高速率,传输距离较长的特点,特别适合工业现场监控设备的互联。概括起来,它具有如下特点:

    可建立1 024条虚拟链路,CAN控制器的ID号共有11位,其中1位作为优先级,其余作为数据标识符,其主链路可在任意两点之间或一点至任意多个节点之间建立。

    数据长度有两种形式:小于8字节的数据可选用单页Page格式,大于8字节的数据可选用数据块Block格式。

    发送时将需要发送的数据填入发送信箱中,并在信息中置发送标志,CAN驱动程序循环查询此标志,带有发送标志的信箱会自动发送出去,接受时经硬件滤波后,从信箱中取出信箱号与本节点的接受箱号逐一比较,相符即把信件放入接受信箱中。

    数据优先级根据信箱号而定,信箱号越小,优先级越高,同时还提供发送紧急数据的优先级。

2  CAN总线系节点的构成

    该系统节点由CAN控制器和CAN驱动器组成。

    本文所设计的CAN总线系统智能节点,采用89c51作为节点的微处理器,在CAN总线通信接口中,采用PHILIPS公司的SJA1000和82c250芯片,SJA1000是独立的CAN通信控制器,82c250为高性能CAN总线收发器。图1为总体
框图;图2为CAN总线系统智能节点硬件电路原理图。



图1  总体框图



 


图2  CAN总线系统智能节点硬件电路原理图




    从图2中可以看出电路主要由四部分构成,微控制器89c51,独立CAN通信控制器SJA1000,CAN总线收发器82c250和高速光电耦合器6N137。微处理器89c51负责SJA1000的初始化,通过控制SJA1000实现数据的接受和发送等通信任务。
硬件电路的设计并不是太困难,但有几点应引起注意:

    (1)  为了增强CAN总线节点的抗干扰能力,SJA1000的TX0和RX0并不是直接与82c250的TXD和RXD相连,而是通过高速光电耦合器6N137后与82c250相连,这样就很好地实现了总线上各CAN节点之间的电气隔离。不过需特别说明的是光耦部分电路所采用的两个电源Vcc和VDD必须完全隔离,否则采用光耦也就失去了意义。

    (2)  82c250与CAN总线的接口部分也采取了一定的安全和抗干扰措施。82c250的CANH和CANL引脚各自通过1个5Ω的电阻与CAN总线相连,电阻可起到一定的限流作用,保护82c250免受过流的冲击;CANH和CANL与地之间并联了2个30pF的小电容,可以起到滤除总线上的高频干扰和一定的防电磁辐射的作用;另外在两根CAN总线接入端与地之间分别反接了一个保护二极管,当CAN总线有较高的负电压时,通过二极管的短路可起到一定的过压保护作用。82c250的Rs脚上与地之间的电阻Rs称为斜率电阻,它的取值决定了系统处于高速工作方式还是斜率控制方式,把该引脚直接与地相连,系统将处于高速工作方式,在这种方式下,为避免射频干扰,建议使用屏蔽电缆作总线;而在波特率较低,总线较短时,一般采用斜率控制方式,上升及下降的斜率取决于Rs的阻值,实验数据表明15~200kΩ为Rs的较理想的取值范围,在这种方式下,可以使用平行线或双绞线作总线。

    (3)  总线两端应接有两个120Ω的电阻,对于匹配总线阻抗起着相当重要的作用,忽略掉它们,会使数据通信的抗干扰及可靠性大大降低,甚至无法通信。

3  软件设计

    CAN总线节点的软件设计主要包括:CAN节点初始化,信息的接受和发送,熟悉这两个方面的程序设计,就能编写出利用CAN总线进行通信的一般应用程序。当然,要将CAN总线应用于通信任务比较复杂的系统中,还需详细了解有关CAN总线错误处理、总线脱离处理、接受滤波处理、波特率参数的设置和自动检测以及CAN总线通信距离和节点数的计算等方面的内容。下面仅就前面提到的两部分程序设计流程作个描述。

3.1  初始化子程序

    SJA1000的初始化只有在复位模式下才可以进行,初始化包括工作方式的设置,接受滤波方式的设置,接受屏蔽寄存器AMR和接受代码寄存器ACR的设置,波特率参数设置和中断允许寄存器IER的设置等,流程图如图3所示。



图3  SJA1000的初始化流程图




3.2  信息接受和发送子程序

流程图如图4所示。

4  设计中需注意的问题

4.1  SJA1000的工作模式

    SJA1000有Basicmode和Pelimode两种工作模式,两种模式的底层都遵守CAN协议,如数据编码、错误处理等,不同之处在于高层,如数据过滤、与MPU的接口部分等。



图4  发送/接受中断服务程序流程图




    SJA1000上电复位后自动进入Basicmode模式,在此模式下,SJA1000有复位(reset)和运行(operating)两种状态,在复位状态下完成对SJA1000某些寄存器的初始化工作,上电复位,SJA1000退出总线(Bus-off)和软件置位复位请求都能引起SJA1000进入复位状态。

4.2  总线定时寄存器BTR1和BTR0的初始化

    总线定时寄存器的设置极大地影响了CAN性能的发挥,一般来说,若硬件连接无误,通信失败的主要原因在于总线定时寄存器的设置不当。

4.3  接受码寄存器和接受屏蔽寄存器的初始化

    接受码寄存器和接受屏蔽寄存器构成硬件过滤,CAN控制节点通过它来决定是否接受总线上的报文,是否置CAN的接受中断,极大的提高了系统的灵活性,为此,在对报文进行编码时,需使每个节点所要接受的报文标识符中有尽可能多的共同位,这样可以减少总线上无关报文对该节点的干扰。

4.4  状态寄存器的处理

    可以通过CAN控制器的状态寄存器了解数据传输状况,为了保证数据的正常收发,需要对状态寄存器各状态位作出相应处理,这里可以采用查询或中断方式进行。

4.5  SJA1000的自我测试功能

    SJA1000的Pelican模式可提供自我测试功能,这种功能在进行硬件设计时很有用,特别在只有一个CAN节点时也可以进行测试。

5  CAN总线在智能仪表中的应用及前景

    现场总线技术以其独有的技术优势和特点,在现代分布式测量与控制技术领域中的应用越来越广泛。各种现场总线的主控制器一般都内嵌有相当完善的、开放式的互连通信协议,它具有速度快、误码率低、开放设计简单以及网络使用维护方便等诸多特点,是实现网络化现场测量与控制技术的一个发展方向。但目前在许多现场已投入使用的测量与控制系统中,各仪器设备或装置之间通信所使用的仍是传统的RS-485或RS-422总线。在不断投入新型现场总线系统的同时,要在短期内改造或淘汰那些旧系统是不现实的,但CAN总线广泛应用是大势所趋,特别是在智能仪表方面的应用中。

    CAN总线具有高性能、高可靠性、高性价比、连接方便、实时性好以及独特的设计等特点,CAN总线广泛应用于控制系统中的各检测和执行机构之间的数据通信。本文在pH测试仪的基础上进行不断的更新,利用已经投入的智能仪表进一步改造,利用CAN总线负载能力大,上位机程序简单易开发,上位机界面易处理等特点,逐步改进智能仪表的通信,并将其逐渐推广。而在此之前,笔者已经进行了pH测试仪的研究,实现了其在现场中的应用。本文是在pH测试仪基础上的更新,使其功能进一步完善,实现网络化,能够完成现场总线在厂矿通信方面的应用,替代RS-485等通信方式,突出现场总线在通信中易操作、成本低等优点,达到产品的实用和推广,笔者探讨的前景是逐步实现CAN总线网络化的普及,令使用范围扩大化,最大限度的发挥其功效。