时间:2024-07-28
徐 榕 ,何首文 ,朱昌明
(1.上海交通大学 机械与动力工程学院,上海200240;2.长沙中联重工科技发展有限公司,湖南 长沙410013)
现场总线技术已成为当今工业自动化技术发展的热点。CAN(Controller Area Network)即控制器局域网,是国际上应用最广泛的现场总线之一。1991年9月,Philips Semiconductors公司制订并发布了CAN技术规范(V2.0),该规范包括A、B两部分。此后,1993年11月,ISO正式颁布了道路交通运载工具——数字信息交换——高速通信控制器局域网(CAN)国际标准ISO 11898。CAN是一种多主从方式的串行数据通信总线,传输速率高,抗电磁干扰性强,能检测通信错误。作为一种技术先进、可靠性高、功能完善、成本合理的网络通信控制方式已被广泛应用到各个自动化领域,如汽车工业、工程机械、航空工业,被公认为几种最有前途的现场总线之一[1]。
CAN总线网络系统的开发是在网络协议定义的框架下,对总线涉及的多个节点设备之间的数据交换的过程进行控制,涉及各个设备本身对数据交换的需求和响应,系统复杂,按照其功能可以划分为:总体设计、节点设计和测试验收。总体设计主要负责整个网络功能定义,传输协议的设计、仿真,系统节点模型的建立和仿真,提出各节点的功能描述,包括节点电气特性和功能特性,并交付各节点设计人员实现;节点设计则根据提出的节点功能描述进行网络节点设备的开发,包括硬件设计和软件开发,并协助其他开发人员完成对本节点设备的调试和测试。测试验收根据网络功能定义描述,制定网络功能测试流程,建立网络测试平台,对各节点进行测试验收和全网络系统平台实验。
统一的开放式平台使得CAN网络设计人员和其他开发人员(如软件工程师,测试工程师等)共享成果,减少了重复工作,加快了开发进度。此外,在节点设计之前,对整个网络的协议和各节点功能进行全网络仿真,可以在设计的最初阶段发现和纠正设计中的错误或者疏漏;在硬件平台搭建之前进行功能仿真,减少了节点设备开发阶段由于软件设计缺陷带来的时间和资源的浪费;软件仿真阶段的成果可以直接用于对节点设备的测试检查。在整个网络系统实体构建完成前,通过CAN总线接口设备和残余总线技术,对已经实现的节点进行实物仿真。
CAN总线节点位于传感器和执行机构所在的工业现场,完成现场数据采集、控制和通信功能。典型CAN节点一般包括总线收发器和协议控制器、主控制器,以及传感器和执行器,如图1所示。CAN协议通信由总线收发器和总线控制器完成,协议控制器完成CAN协议数据链路层(MAC)的报文分帧、仲裁应答、错误检测和标定,以及逻辑链路控制子层(LLC)的报文过滤、过载通知、恢复管理等具体服务;总线收发器完成CAN协议物理层功能,是CAN控制器和物理传输线路之间的接口。许多CAN节点采用了总线收发器(PCA82C250)、协议控制器(SJA1000)和主控制器(51系列单片机)方案,也有不少节点采用了内嵌协议控制器的微处理器(P8XC592/ARM)和数字信号处理器(TMS320F2407F)方案。
本文采用了Vector公司出品的CAN总线开发测试集成环境和工具构建了开放式开发测试平台,对由3个节点组成的CAN总线通信网络进行测试,优化总线参数,提高了CAN通信抗干扰能力。CAN总线测试网络由执行机构节点、远程传输节点、状态监测节点组成。执行机构节点控制器采用TMS320F2407(内嵌CAN控制器),驱动执行机构完成相应功能,发送电机转角编码和瞬时转矩电流信息报文;远程传输节点是一个CAN/GPRS的网关,功能是将报文信息转发至远程节点。状态监测节点则是一个基于PC和虚拟仪器(LabVIEW)的操作面板,转换并显示报文的物理量信息,同时控制执行机构的运行。
CAN总线测试环境和工具包括总线记录仪、总线干扰仪和开发测试仿真环境[2-4]。总线记录仪和总线干扰仪作为节点接入测试总线,如图2所示。其中总线记录仪(Vector CANcaseXL)接收、录制、存储和评估不同的CAN总线网络信号和报文,记录其工作状态和故障情况,便于在随后的回放中分析故障原因,提出优化改进的方法和措施;总线干扰仪(Vector CANStressDR)生成总线信号、总线物理属性和逻辑电位的各种干扰,在实验室环境下模拟实际工况中可能出现的断路、短路,模拟不同长度的传输电缆,也可对报文特定位进行干扰以检查总线的抗干扰能力;开发测试仿真环境 (Vector CANoe)集成了总线开发和测试,通过定义报文数据库,观测报文数据并换算为相应的物理量显示。通过仿真总线和实际总线的切换,不仅可以测试现场信号,还可对录制的信号进行回放分析,分析查找故障原因。
在CAN通信协议中,波特率、每个位周期的采样位置和个数都可以自行设定,CAN总线上不同节点之间通过约定的通信速率进行通信,通过调整位定时参数可以优化网络通信性能,例如,位周期内的采样位置偏后,能容忍较大的信号传输延迟,即总线传输距离可以延长;取样位置接近中间,则可以容忍CAN总线上节点间参考时钟的误差,显然两者是矛盾的,为了协调这种矛盾,必须对位定时参数进行优化设置。常用的通信速率有100 kb/s、125 kb/s、250 kb/s、500 kb/s和 1 Mb/s等,对于常用的波特率,在一些CAN总线通信测试软件中可以通过列表框进行选择,对一些特殊的波特率,如本实测网络采用了66.7 kb/s的通信速率,又或虽然是常用的波特率,但出于优化网络通信性能的需要,选择特定的位定时参数时,就要计算并通过总线时序寄存器设置位定时参数。
总线时序寄存器BTR0和BTR1定义如表1、表2所示。
表1 总线时序寄存器0(BTR0)定义
表2 总线时序寄存器 1(BTR1)定义
位定时参数按式(1)计算[5-6]:
其中:tbit为位周期长度,fbit为通信波特率,tSYNC_SEG为同步段周期,tTSEG1为相位缓冲段1周期,tTSEG2为相位缓冲段2周期,BRP为波特率预设值,NBT为位周期的标量值,fclk为参考时钟频率。
实测总线通信速率为fbit=66.7 kb/s,预设的位定时参数为:tSYNC_SEG=1,tTSEG1=9,tTSEG2=5,SJW=3,SAM=1,NBT=15,而BRP则由于节点的参考时钟频率不同而不同。位周期的标量值(NBT)取值区间为 3~25,在 1个采样点时,最小值一般取4;在 3个采样点时,最小值一般取5,实测网络取为NBT=15。当CAN总线控制器 SJA1000采用不同的参考时钟频率时,BTR0和BTR1取值也不同。例如,当时钟频率为24 MHz时,根据式(1)计算可得:
根据表1和表2的定义可知可得:BTR0=0x8b,BTR1=0xc8。同理,当参考时钟频率为16 MHz时,则:
首先利用开发测试仿真环境(CANoe)定义CAN总线测试网络,如图 3所示,其中 Door Controller表示执行机构节点,Performance Meter代表状态监测节点,Remote Gateway代表远程传输节点;系统则自动生成Basic CAN代表总线,以及Bus Scope总线记录仪和Replay Block总线回放“虚拟”节点。采用CANcaseXL记录运转过程中总线上的报文信息和总线负载,并在CANoe环境下进行回放、分析,如图4所示。
表3 不同终端电阻下差错率
CAN总线在不同的应用场合,其总线长度、总线负载、终端电阻、环境各不相同,导致无法针对实际工况进行优化,提高数据通信的可靠性。利用本文所述的测试工具和平台,可以对现场工况进行记录回放,或在实验室进行模拟测试,帮助开发人员和测试人员尽可能准确地定位故障,从而提高开发的效率。本文的模拟测试结果表明,电气和参数对CAN总线上通信性能影响较大,通过测试工具模拟发现,终端电阻对提高通信质量,降低报文差错影响较大。通过测试工具分别模拟了CAN总线短路、75 Ω、120 Ω、开路等终端电阻,通信过程中正确帧和错误帧速率测试数据如表3所示,可以看出终端电阻为120 Ω时通信差错率最小。
[1]邬宽明.CAN总线原理和应用系统设计[M].北京:北京航空航天大学出版社,1996.
[2]Vector Informatic GmbH.CANoe User manual,Version 4.1[S].
[3]Vector Informatic GmbH.CANcaseXL/log,Version 3.0[S],User Manual.
[4]Vector Informatic GmbH.CANStress Manual,Version 2.1[S].
[5]PHILIPS.Determination of bit timing parameters for the CAN Controller SJA1000[S],1997.
[6]吴永.CAN总线位定时参数的确定[J].单片机与嵌入式系统应用,2003(10):19-22.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!