预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

适用于汽车性能检测系统的CAN总线应用层协议设计与实现* 谢东坡,周亮,颜永福 (重庆车辆检测研究院国家客车质量监督检验中心重庆,401122) 摘要:借鉴其它CAN总线应用层协议的优点,设计适用于汽车性能检测系统应用的CAN总线应用层协议—xCAN。主要从报文定义、数据通信和网络管理三个方面进行讨论,并给出了一个应用实例,结果表明xCAN协议应用于汽车性能检测系统是可行的。 关键词:CAN总线,应用层协议,汽车性能检测系统 ResearchandRealizationofCANBusApplicationLayerProtocolforVehiclePerformancesTestingSystem XieDongpo,ZhouLiang,YanYongfu (ChongqingVehicleTest&ResearchInstitute NationalAutoQualityTestCenter,NationalMotorcycleQualityTestCenter,ChongQing,401122) Abstract:referencingotherCANapplicationlayerprotocol’sadvantages,AnewCANbusapplicationlayerprotocolnamedxCANforvehicleperformancestestingsystemwasdesigned.Theprotocolwasdiscussedinthreeparts:theassignmentofmessage,thedatacommunicationandthenetworkmanagement.Thenatypicalapplicationwasintroduced,andtheresultsprovexCANisapplicableforvehicleperformancestestingsystem. Keywords:CANbus,Applicationlayerprotocol,vehicleperformancestestingsystem 1引言 CAN总线已经成为全球范围内最重要的现场总线之一,甚至领导着串行总线的发展。虽然CAN具有诸多优点,但CAN本身并非一个完整的协议,只包括物理层和数据链路层两个底层协议,要进行高效率的通信还需要进一步开发应用层协议。目前,比较流行的CAN总线应用层协议有:主要有DeviceNet和CANopen两种,但由于这两种协议是基于通用性的,其标准结构复杂、开发难度较大且价格不菲,对于一些并不复杂的基于CAN总线的测控网络不太适合[1-3]。本文针对一个基于CAN总线的汽车综合性能测试系统,参考DeviceNet、CANopen和iCAN协议,提出一种适用于汽车检测系统开发的应用层通信协议—xCAN。 2汽车性能检测系统用CAN总线应用层协议的设计 基于CAN总线的汽车综合性能测试系统的结构框图如图2.1所示。 主控模块 汽车性能 参数获取 模块1 汽车性能 参数获取 模块2 CAN网络 匹配电阻 匹配电阻 Internet 人机交互 汽车性能 参数获取 模块N …… 图2.1:汽车综合性能测试系统 系统中有一个主控模块和多个汽车性能参数获取模块,各个模块间以CAN总线连接,为一主多子节点结构。其基本工作原理是:各个子节点完成多种汽车参数的获取,并将参数通过CAN总线发送给主控节点,主控节点对来自各个子节点的数据进行相关处理后,通过以太网实时发送给上位机,以实现对汽车参数的实时监测,这就要求CAN总线通信系统具有较高的可靠性。为了设计一套简洁可靠的应用层协议,主要考虑一下几个方面:(1)CAN报文的定义:规定CAN报文中标识符以及数据部分使用的规则具体意义;(2)数据通信的实现:规定了网络中报文数据传输的规则;(3)网络管理:对于网络中设备的控制以及运行状态的监控。下面将就以上几个方面进行详细讨论。 2.1xCAN报文的定义 对CAN报文格式进行合适的定义,可以使CAN报文组成元素具有其特定的功能和意义,CAN报文格式定义包括报文标识符和报文数据部分的分配两方面。需要说明的是:在xCAN中只使用了扩展帧的CAN报文格式,对标准帧格式的报文并无定义和使用。 因错位帧和超载帧有硬件自动发送,设计中直接面临的是数据帧和远程帧,而汽车性能检测系统中远程帧使用较少,因此仅介绍与设计密切相关的数据帧表示符的定义。CAN扩展帧共有29位标识符,包含功能ID、目标节点ID、源节点ID、帧总数ID和帧编号ID,其具体定义如表2.1所示。 表2.1(a):11位标准标识符定义 ID10ID9ID8ID7ID6ID5ID4ID3ID2ID1ID0功能ID目标节点ID