CAN总线远程传输可靠性的设计方法和实现

发布者:不加糖的302最新更新时间:2016-07-11 来源: eefocus关键字:CAN总线  远程传输 手机看文章 扫描二维码
随时随地手机看文章
O 引言

    现场总线能同时满足过程控制和制造业自动化的需求,成为工业数据总线领域最为活跃的技术之一。CAN(Controller Area Network,即控制器局域网)现场总线以其多主方式,报文自动过滤重发、极低的误码率和高通讯速率等特点,在各种低成本、高抗干扰的多机远程监控系统中得到广泛应用。
    CAN总线属于总线式带同步位的串行通信网络,由于采用了许多新技术以及独特的设计,与一般的通信总线相比,CAN总线在远距离数据通信上具有突出的可靠性、实时性和灵活性。CAN的直接通信距离最远可达lOkm(通信速率5Kbps以下),通信速率最高可达lMbps(通信距离最长40m)。但在实际的远程传输过程中,通信数据受许多因素的影响,致使传输的波形失真,达不到预期的效果。本文针对CAN总线远程传输的可靠性进行了设计与分析。


1 远程CAN总线传输可靠性的主要影响因素
    (1)工作环境电磁干扰的影响。
    (2)传输介质分布电容和电阻的影响。
    (3)远近端阻抗不匹配的影响。
    (4)接收同步位端的相位变化和幅值变化的影响。
    (5)传送波特率位时钟设计的影响。
    (6)没有发送和接收帧的节点之问高阻状态性的漏电对CAN总线的影响。
    (7)对总线短路和断路监测处理的影响。


2 远程CAN总线传输可靠性的设计方法
    系统运行在复杂的电磁空问里,有外界的各种电磁场变化,也有系统内部各个元器件之间的电磁干扰。尤其工作现场的电磁场环境是最容易干扰系统的可靠性。因此系统数据传输过程采用屏蔽双绞线,它综合了屏蔽线和双绞线两者的优点,是较理想的信号传输线,即可以抑制静电干扰,也可以抑制电磁感应干扰,从而提高系统的可靠性。
    元器件是构成系统的基础,选择集成化程度高,抗干扰能力强,功耗又小的电子元器件尤为重要。选择合适的MCU是CAN总线控制系统设计成功的关键。在综合比较了当前业界流行的几款MCU最终选择了Silicon Laboratories公司的C8051F040这款8位单片机作为CAN总线控制系统的控制核心。
    C8051F040(以下简称F040)单片机是完全集成的混合信号系统级芯片,具有与MCS一5l完全兼容的指令内核。由于采用了流水线处理技术,大大提高了指令执行效率。F040还采用了Flash ROM技术,集成了JTAG,实现了真正的在线编程和片上调试。它比SJAl000等片外CAN总线控制器具有更好的可靠性和集成度高的特点。F040的CAN控制器完全硬件化,解决了CPU与CAN,总线控制器之间的竞争矛盾。
    在主机CAN节点中,如图1所示,选择Silicon Laboratories公司的USB转UART桥接芯片CP2101,内部自带512B收发缓冲器,进一步从芯片本身上解决了数据冲突的问题。它还有300bps至921.6Kbps的波特率变化范围,满足高速通讯要求,外围电路十分简单;另外,CP2101还集成了5V转3V电压调节器,可以由USB总线来对整个主机节点供电,这样整个电路就只需一根USB连线即可实现与PC机通讯,无需额外电源,即插即用,十分方便。
    图1主机CAN节点的硬件连接图(参见下页)

ADuMl20l是ADI公司生产的隔离器,采用平面磁场专利隔离技术,取消了光电耦合器中的光电转换过程。因此ADuMl201具有优于光电隔离器的优点:速度更高(最高速率达到25 Mbps)、功耗更低(最小工作电流为0.8mA)、性能更高、体积更小、价格更便宜、应用更灵活(多通道数字隔离器能在同一芯片内提供发送和接收通道)。选择ADuMl201用来实现CAN控制器和CAN驱动器之问的电气隔离,增强系统的稳定性,提高了系统的抗干扰能力。
    为了进一步提高系统的远程通讯可靠性,选择TI公司生产的芯片SN65HVD251作为CAN总线收发器。SN65HVD251能以高达1Mbps的速度提供到总线的差动传输功能,以及到CAN控制器的差动接收功能。具有差分收发能力、高抗电磁干扰、超小封装、低功耗性能。与F040配合使用,可使外围电路更加简洁,如图2所示。


 

CAN收发器SN65HVD251在CANH和CANL输出引脚间并联一个电阻,作为CAN总线的终端电阻,在本节点作CAN总线终端节点时,闭合跳线片JPl,使终端电阻工作。终端电阻值R6等于传输电缆的特性阻抗,一般取值120Ω在文献中有详细的讨论,解决了远近端阻抗不匹配的影响。SN65HVD25l的Rs引脚为斜率电阻输入引脚,可以改变收发器工作的方式。在CANH和CANL上各自串联电阻R2、R3限流,再通过一组上下拉电阻R4、R5,有效抑制反射波干扰,保持总线处于高阻态时,接收端收到的始终是“l”电平,这样拉高信号的幅度,减少误码率。另外在CANH年NCANL之间并联一对方向相反的瞬态二极管Dl、D2,可防雷击,以及防止其他总线上的瞬变干扰。


3 整体系统设计
    依据以上器件组建一个可靠的CAN总线远程控制系统网络平台。本系统由一个主机CAN节点通过USB接口与上位PC机相连,主节点采用总线方式与下面各个功能节点连接,如图3所示,其中主机CAN节点主要用来发送远程控制广播命令,收集所有节点传来的数据,并上传给上位机软件进行识别分类和统计,它实现了总线侦听、网络监控和上位机接口功能。而底层节点则控制系统中的底层设备,发送包含节点信息的8字节数据CAN总线报文,并侦听主机节点的网络广播指令,调整节点功能。
    图3 CAN总线控制系统多机测试平台

4 实验分析
4.1 不同公里数通讯结果分析
    将系统总线与模拟的1公里一5公里远程网络相连。为了更好分析CAN总线可靠性,使示波器更好的观察报文波形。将示波器CHl两端与距主节点0公里处相连,CH2两端与距主节点5公里处相连,如图4所示。这样,可以观察到相对主机CAN节点5公里通讯的近端(CHl)和远端(CH2)的通讯报文波形。

CHl测试出来的波形位于上端,CH2测试的波形位于下端。CHl端标识为1的一段波形是主节点发出的报文,2是位于CH2端底层节点接收到的报文,4是底层节点发出的数据报文,3是主机CAN节点接收到的数据,称1和2、3和4为一组报文。每帧数据的最后一位是应答位。每两帧报文之间有时间间隙,其中一段是主机CAN节点和上位PC机处理数据的时间,另外一段是底层测量节点处理数据的时间。
    经过观察,近端发送的1报文经过5公里距离到远端接收到的2报文的幅值发生了衰减;同样近端收到的3报文也在远端4报文的幅值基础上发生衰减。分别测试1公里到4公里通讯的波形图,可以发现通讯距离越长,幅值衰减得越多。
    在其他条件不变的情况下,分别对1公里一5公里做实验,发现远程通讯距离的变化会对报文传输速率有影响但很小,将得出的数据制表如表1。


 

由表1可见,1公里处传输速率最大,每秒传输13.2972I帧,即0.0752秒传输一帧数据,所谓一帧实际一次发送,一次接收,对于CAN总线实际是2帧。随着传输距离的增大,传输速率稍有减小的趋势,说明远程传输有一定的网络时延, 但是在低波特率下影响不大。
4.2 相同公里数不同测试点通讯结果
    接下来以通讯5公里距离为例,观察将CHl两端连接到0公里处的测试点,CH2两端连接到1公里、2公里、3公里、4公里、5公里处的测试点,可以看到报文波形幅值发生了相应的变化。经过1公里的衰减,同一组报文幅值降低了约O.2V;2公里距离的通讯会造成同一组报文幅值上发生约0.4V的变化;同理3公里、4公里、5公里传输同一组报文分别发生了0.6V、0.8V和lV的幅值衰减。因此可以得出结论:同一组报文每经过l公里距离通讯,报文信号的幅值即发生0.2V的衰减。
4.3 CAN收发器SN65FIVD251工作电压的影响
    在实验的过程中,观察到SN65HVD251工作电压VCC端的大小对于传输距离的影响很大,经过大量的实验,得出1-5公里距离成功通讯的VCC临界电压值(精确到O.1V),所谓临界电压值是在确定距离内能正常传送数据的最小值。如表2所示。

从表中可以得出,保证l公里成功通讯的前提是VCC端电压大于等于3.6V。VCC端电压越高,可以通讯的距离越远,在1-5公里实验中,每增加1公里,VCC端电压相应提高了约0.3V。最高VCC不能高过SN65HVD251的最高工作电压7V。
    远程通讯距离对于报文信号的幅值有比较大的影响,每公里约衰减O.2V;同时CAN收发器SN65HVD251的输入电压对于远程通讯距离有一定的影响,确保在电压正常范围内的高电压输入可以提高系统的远程通讯距离。电源电压每提高0.3V可延长1公里,而增加1公里损耗0.2V,余下的0.1V由驱动芯片内部所消耗了。


5 CAN总线远程控制网络的性能总结
    CAN总线传输距离在驱动芯片工作电压和传送波特率确定之后,主要决定如下二个因素:(1) 发送端的应答位的隐性电压和接收端把隐形变成显性电平以后又传送到发送端时的电平差值;(2)发送端发的应答位到接收端被确认后又发回到发送端时该位相位变化。前者电平差值为0.6V,后者不能滞后每位的时间的一半。0.6V电平差比RS485、RS422识别“l”和“0”差值100mv要大很多。这也就是说同样传送条件下,RS485比CAN总线传送距离远。同样RS485、RS422因阈值过小,易受干扰。另外CAN总线其他性能优于RS485和RS422,如CRC硬化,可以多主通讯机构,以及多层已硬化的上层协议等。RS485的误码率10—7,CAN总线误码率可达2×10一ll。因此要提高远程传送可靠性可以采取如下方法:
    (1)增加驱动芯片的工作电压。
    (2)降低发送的波特率,减少相位滞后的影响。
    (3)使用更粗双绞线,减小通讯导线电阻,从而减少传送损耗。
    (4)用两个驱动芯片并联驱动,减少驱动芯片的内阻,提高驱动电流,即减少0.1V内部损耗。
    (5)选用分布电容较小的双绞线,降低分布电容对同步位相位的影响。
    总体来说, 本文设计的CAN总线控制系统无论从可靠性,还是从其他性能指标上来分析,都达到了很好的效果。并且在拉西瓦水电站边坡监测系统中承担数据采集通讯的任务。


关键字:CAN总线  远程传输 引用地址:CAN总线远程传输可靠性的设计方法和实现

上一篇:基于CAN总线通信协议的设计与实现
下一篇:CAN总线通信程序

推荐阅读最新更新时间:2024-05-03 00:30

LPC2000系列32位ARM微控制器内嵌的CAN总线验收滤波器应用
CAN(Controller Area NetWork)总线,即控制器局域网总线,是由德国Bosch公司于1982年开发和推出的最早用于汽车内部测量与执行部件之间的数据通信协议。在20多年的历史中,CAN总线在许多领域得到了应用,是到目前为止唯一有国际标准的现场总线。 CAN现场总线按照国际标准化组织ISO提出的"开放系统互联(OSI)"参考模式,实现其中的物理层、数据链路层和应用层。CAN控制器用来实现CAN总线协议。CAN控制器芯片分为两类:一类是独立的控制器芯片,如SJA1000;另一类是和微控制器做在一起,如Philips公司的LPC2000系列32位ARM微控制器。两类控制器都提供了报文标识过滤的验收滤波器。但独立CA
[单片机]
LPC2000系列32位ARM微控制器内嵌的<font color='red'>CAN总线</font>验收滤波器应用
基于K线/CAN总线的KWP2000协议分析及协议栈的开发测试
1 前言 在汽车故障诊断领域,针对诊断设备和汽车ECU之间的数据交换,各大汽车公司几乎都制订了相关的标准和协议。其中,欧洲汽车领域广泛使用的一种车载诊断协议标准是KWP2000(Keyword Protocol 2000),该协议实现了一套完整的车载诊断服务,并且满足E-OBD(European On Board Diagnose)标准。KWP2000最初是基于K线的诊断协议,由于K线物理层和数据链路层在网络管理和通讯速率上的局限性,使得K线无法满足日趋复杂的车载诊断网络的需求。而CAN网络(Controller Area Network)由于其非破坏性的网络仲裁机制、较高的通讯速率(可达1M bps)和灵活可靠的通讯方式,在车
[测试测量]
基于K线/<font color='red'>CAN总线</font>的KWP2000协议分析及协议栈的开发测试
CAN总线通信硬件原理图
CAN总线通信硬件原理图(采用TJA1050T CAN总线驱动器) F040中内置CAN总线协议 控制器 ,只要外接总线驱动芯片和适当的抗干扰电路就可以很方便地建立一个CAN总线智能测控节点。本设计中采用PHILIP公司的TJA1050T CAN总线驱动器。 CAN总线通信硬件原理图如图3所示。 图中F040 的CAN信号接收引脚RX和发送引脚TX并不直接连接到TJA1050T的RXD和TXD端,而是经由高速光耦6N137进行连接,这样做的目的是为了实现CAN总线各节点的电气隔离。为了实现真正意义上完全的电气隔离,光耦部分的VA和VB必须通过DC-DC模块或者是带有多个隔离输出的开关电源模块进行隔离。为防止过流冲击,TJA
[嵌入式]
CAN总线在发动机测试系统中的应用
   引 言   现场的总线控制系统(FCS)将是新世纪自动控制系统发展的主流,是继DCS后新一代的控制系统。现场总线是综合自动化发展的需要,同时智能仪器仪表则为现场总线的出现奠定了基础。   CAN(Controller Area Network)是现场总线的一种,最早是德国Bosch公司在上世纪80年代推出的,主要应用于汽车内部检测以及控制系统间的数据通信。CAN总线通信协议充分考虑了工业现场环境,采用了ISO-OSI模型中的三层,即物理层,数据层和应用层。CAN总线规范已被国际标准化组织制订为国际标准ISO11898,并得到了多家著名半导体器件生产商的支持,推出了各种集成CAN协议的芯片产品。CAN总线目前已经被广泛应用
[测试测量]
<font color='red'>CAN总线</font>在发动机测试系统中的应用
CAN总线学习笔记|CAN盒测试STM32的CAN中断接收
CAN基础知识介绍文中介绍了CAN协议相关的基础知识,以及STM32F4芯片的CAN控制器相关知识,下面将通过实例,利用STM32CubeMX图形化配置工具,并配合CAN盒,来实现CAN通讯的中断收发测试 1. STM32CubeMX配置 CAN是挂载在APB1总线上,设置PCLK1时钟频率到最大45MHz 激活CAN1,配置位时序参数,其他基本参数以及工作模式(此处设置为Normal普通模式) CAN波特率的计算公式:只需要知道BS1和BS2的设置,以及APB1的时钟频率,就可以方便的计算出波特率。比如设置TS1=8、TS2=6和BRP=6,在APB1频率为45Mhz的条件下,即可得到CAN通信的波特率=45000/6
[单片机]
<font color='red'>CAN总线</font>学习笔记|CAN盒测试STM32的CAN中断接收
PIC单片机can总线协议收发编程
//该程序运行在pic单片机p18f458上实现发送缓冲器0向接收缓冲器0发送数据的自测试模式,其中接收采用中断方式 //发送采用查询方式 #include "p18f458.h" int CAN_FLAG; //定义标志寄存器 //**************初始化子程序*************** // http://www.51hei.com单片机网提供有问题请联系我们 void initcan() { TRISB=(TRISB|0X08)&0XFB; //设置CANRX/RB3为输入,CANTX/RB2为输出 //设置CAN的波特率为125K,在Fosc=4M时,Tbit=8us,假设BRP=01h //则TQ= /
[单片机]
基于PIC的CAN总线超声波测距智能节点设计
1 引言 移动机器人要实现在不确定环境下运行,必须具备自动导航和避障功能。在移动机器人的导航系统中,传感器起着举足轻重的作用。视觉、激光、红外、超声传感器等都在实际系统中得到了广泛的应用。其中,超声波传感器以其信息处理简单、速度快和价格低,被广泛用作移动机器人的测距传感器,以实现避障、定位、环境建模和导航等功能。本文介绍的CAN总线智能节点的设计以Microchip公司的PIC18F2580控制核心。由于PIC18F2580有片上自带的CAN控制器并且为CAN的应用提供了许多专用的硬件功能,因此又将它作为了系统的CAN总线控制器,大大节省了主控系统的资源。CAN总线的收发器采用TJAl040。系统总体结构框图如图1所示。
[单片机]
基于CAN总线通信协议的设计与实现
1 前言 控制器局域网(CAN-Controller Area Network)属于现场总线(Fieldbus)的范畴,是众多的属于现场总线标准之一,它适用于工业控制系统,具有通信速率高、可靠性强、连接方便、性能价格比高等诸多特点。它是一种有效支持分布式控制或实时控制的串行通信网络,以其短报文帧及CSMA/CD-AMP(带有信息优先权及冲突检测的载波监听多路访问)的MAC(媒介访问控制)方式而倍受工业自动化领域中设备互连的厚爱。CAN的应用范围遍及从高速网络到低成本的多线路网络,它可以应用于汽车系统、机械、技术设备和工业自动化里几乎任何类型的数据通信。CAN具有如一下优点: 1)使用简单方便。许多CAN控制器实现了CAN物理层及数
[嵌入式]
小广播
热门活动
换一批
更多
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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