CAN总线数据通讯功能设计

(整期优先)网络出版时间:2022-07-14
/ 2

CAN总线数据通讯功能设计

马洲

山东厚植人力资源有限公司   山东济南  250014

摘要:近年来,社会进步迅速,我国的智能化建设的发展也有了改善。CAN(ControllerAreaNtework)即控制器局域网络,最初是由德国的BOSCH公司为汽车监测、控制系统而设计的。现代汽车越来越多采用电子装置控制,如发动机的定时、注油控制、加速、刹车、自动泊车、倒车雷达及复杂的制动防抱死系统(ABS)等。这些电子装置的控制需实时检测及交换大量的数据,仅使用传统点对点的连接方式来实现子系统之间的随机通信,不但繁琐、昂贵,且难以解决问题。采用CAN总线上述问题就能得以很好的解决。因为CAN总线为多主站总线,各节点可在任意时刻向网络上的其他节点发送信息,不分主次,通信灵活;采用短帧结构,数据传输时间短,最大传输数率可达1Mbps(通信距离小于40m)。CAN总线技术由于高性能、高可靠性及其独特的设计备受人们的重视,经过十几年的发展,该技术已成为所有车载电子控制系统互联、互通的标准,广泛应用于汽车电子监测系统。

关键词:CAN总线;数据通讯;功能设计

引言

随着汽车的普及,人们对汽车舒适度要求越来越高,使得汽车电子技术发展迅速,越来越多的汽车电子控制单元(ElectronicControlUnit,ECU)被应用于汽车控制。诊断功能的实现是ECU开发过程中的重要部分,对诊断功能进行集成测试是为了验证功能实现与设计规范的一致性。

1方案的实现

电路主要由四个部分构成:微控制器、独立CAN通信控制器、CAN总线收发器、高速光耦。微控制器负责CAN通信控制器的初始化。CAN通信控制器有发送和接收两端,它能够同时读写总线,这个功能对于错误检测与总线仲裁都很重要,因此通过控制CAN通信控制器实现数据的接收和发送通讯任务。CAN通信控制器要通过CAN总线收发器上的线驱动器和总线接口进行总线的读写,总线是通过典型的双绞线传输差分电压信号,处理CAN总线两端的节点应设置跨接在两根双绞线间的终端匹配电阻。常用的CAN总线分为:单线CAN、低速容错CAN、高速CAN。这三种总线的区别主要在物理层面上。而以传输介质和线的数量来论——单线CAN只有一条导线,低速容错CAN和高速CAN通过双绞线传输。单线CAN常用的有MC33897系列的收发器。该系列收发器提供了在单线介质上,实现了以通信为目的物理层,该物理层使用载波监听多路存储/冲突检测操作。MC33897系列收发器,由12V的车载系统等宽范围的直流电源供电。它能正常工作的数据传输率范围是33.33kbps-83.33kbps。它具有高压唤醒特性,用于支持单片机或者其他逻辑需求。该设备有一个控制终端,它用于控制模块调整器进入睡眠状态。当总线上出现唤醒电压时,将重新激活控制线路,打开调节器和系统。低速容错CAN常用TJA1054A收发器。该收发器用于控制协议和控制局域网之间的接口,其最开始的目的适配乘用车上的125kbps数据传输率的低速应用。该设备具备差分接收和传输的能力,且当发送或者接收传输出错的情况下,自动转换成单线传输。它的数据传输最高可达125kbps,总线上最多能挂载32个节点。高速CAN常用TJA1040A收发器。该收发器的目标主要是用于数据传输速度达到1Mbps的高速应用。该设备具备差分接收和传输的能力,与ISO11891标准完全兼容。在同一高速CAN网段中,可同时挂载110个节点。高速CAN同样可以使用低速CAN的波特率(单线CAN的波特率一般为33.3KHz),而且在实际应用中也不会有问题。但低速CAN使用高速CAN的波特率就会出现问题,这个问题不是纯粹由波特率引起的,而是由收发器引起的,因为在电平转换效率方面,低速CAN的收发器明显比高速CAN的收发器低。CAN总线的这些物理特性直接反映在收发器上。无论是哪种CAN总线,经过收发器后与微控制器的接口(TXD和RXD引脚)都是一样的,这时的电平逻辑也会变得一致。现在有很多单片机内部集成了CAN模块,还有各种收发器可以方便的转换,CAN总线的应用更多地变成了上层协议的事情。它们的位传输时序、位仲裁、错误、校验、帧结构等等(即所谓的数据链路层),数据链路层以上的诸如传送层、网络层、会话层、应用层等的协议,都是人为规定的,这些都不是它们的区别。

2自动化测试系统实现

2.1 CANdelaStudio技术简介

CANdelaStudio是Vector公司推出的诊断协议开发平台,用于定义ECU的诊断功能,并且生成诊断数据库(CDD文件)来优化整个诊断开发以及测试过程。CANdelaStudio支持文档模板,可同时满足不同厂商对同一个标准工具的各种特殊要求。在内容上一个文档模板对应于一种诊断规范,包含了对ECU所有允许的基本服务和在每个ECU中都必需实现的强制功能的正式描述[7]。对于汽车厂商提供的模板,ECU供应商可加入特定的诊断需求,形成针对特定ECU的诊断功能描述文档,便于上位机对不同诊断功能ECU测试数据进行解析。CANdelaStudio支持导入和导出各种数据格式(ODX、CSV、RTF、A2L、XML及CDI);支持多种标准(KWP2000、UDS、WWH-OBD及DoIP)同时也可以在不同文件中导入或导出DTC故障代码。

2.2 UDS诊断协议开发与移植

诊断功能的实现是基于问答模式的框架,外部Tester发送请求,以直接通信方式发送给ECU,ECU收到请求后,基于请求给予响应(否定响应或肯定响应),每一个功能实现的逻辑,都依据不同的诊断服务。CANdelaStudio作为诊断协议开发框架,包含了UDS协议中所有诊断请求服务,其在数据库中是一个总分结构,Variant作为总的层面,BaseVariant和ECUVariant作为分的层面。基于某款车型对其中高档车型的需求规范编辑BaseVariant,对于中、低档车型,只需对BaseVariant中多余的内容进行删除,另存为ECUVariant,可实现一个数据库文件里包含多个不同车型诊断需求数据的管理。每个Variant里面包含一个Class类,从需求规范选择所支持的类,并对每个服务下所包含的子服务及其属性参数进行定义,便于在接收到仪表请求响应之后对数据进行解析。新建DID(DataIdentifierDocument),并对其命名和进行DataType关联,便于进一步解析出报文的实际物理意义,进而进行响应结果的判定。对于不同诊断服务,定义会话模式状态机和安全访问状态机来赋予不同服务的执行权限。使用CANdelaStudio诊断协议开发平台,减少了协议开发时间,极大地简化了测试平台开发流程。开发完诊断协议之后生成CDD数据库,将其移至到pa平台,并在生成用例过程中加载安全算法dll文件,同时进行测试用例时间参数的设置,如用例间的时间间隔、复位等待时间等。数据库移植完成后系统将从中提取与应用相关的信息自动生成验证传输值合理性的测试用例,例如对节点丢失产生故障码的时间范围的验证等。CANoe.pa涵盖用户界面、测试用例生成器以及扩展CANoe测试功能的运行时间库。根据开发的ECU诊断数据库文件(CDD)自动生成CANoe测试模块,测试单个ECU的功能和物理寻址内容,包括协议定时、诊断协议格式数据内容、ECU应用程序诊断接口、会话和安全等级等。对比传统测试方法,诊断协议开发和移植实现了测试用例自动生成,避免了手动生成用例的时间消耗。

结语

在硬件方案设计中,采用MC9S12DP256型号的飞思卡尔单片机作为控制器,结合TJA1041A作为CAN总线独立的收发器,两者相互配合,构成嵌入式系统实时通信的智能节点,保证控制局域网络(CAN)工作的稳定性、可靠性和实时性;在硬件系统中的控制器和收发器之间的通信线路上进行了光电隔离,提高了系统的安全性和可靠性。该嵌入式系统能够在医疗、汽车、农业、工厂等许多场合应用,其应用范围广,推广价值高。

参考文献

[1]饶云涛,邹继军,郑勇芸.现场CAN总线原理与应用技术[M].北京:北京航空航天大学出版,2003.

[2]徐木水,刘金国.基于DSP的相机控制器CAN总线通信系统[J].计算机测量与控制,2011,19(2):439-441.

[3]翟海庆,孙冬,魏勇.浅谈CAN总线的位定时参数[J].科技信息,2007,31:85-99.