电动汽车CAN总线网络通信结构的设计外文翻译资料

 2022-08-29 11:08

英语原文共 100 页,剩余内容已隐藏,支付完成后下载完整资料


电动汽车CAN总线网络通信结构的设计

摘要:为了研究电动公交客车上CAN总线网络节点信息的实时性及可靠性问题,依据CAN总线网络通讯协议技术的特点,研究并设计了一种电动公交客车的CAN总线 网络通讯结构,并给出了适用于电动公交客车的SAE J1939应用层协议及汽车CAN总线网络的硬件接口模块,软件模块采用了基于优先权竞争的模式,通过CAN总线网络和基于优先权模式的方法,实现了实时 采集、分析、处理电动公交客车的各个数据节点的信息和数据.最后,在路况测试中通过对实际数据的采集,验证了电动公交客车CAN总线网络通讯结构的硬件、 软件模块设计合理,具有实际的学术价值和应用前景.

关键词:CAN总线;通信结构;SAE J1939 ; 电动公交客车

1. 绪论

CAN总线是德国BOSCH公司从20世纪80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,它是一种多主总线,通信介质可以是双绞线同轴电缆或光导纤维。通信速率可达1MBPS。总线通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充数据块编码循环冗余检验优先级判别等项工作。CAN协议特点是对通信数据块进行编码.数据段长度最多为8个字节,可满足电动公交车上的控制命令工作状态及测试数据的一般要求。同时,8个字节不会占用总线时间过长,从而保证了通信的实时性.

CAN协议采用CRC检验并可提供相应的错误处理功能,保证了数据通信的可靠性.如今,CAN总线技术已经成为电动公交车中广泛采用的通讯方式.本文根据电动公交客车CAN总线网络的通讯结构,制订了符合系统功能要求的SAEJ1939应用层协议,并对系统进行了软件硬件设计。

2. CAN总线通讯网络节点的设计

2.1 CAN总线电气特性

CAN的传输介质由两部分组成,其一被称为高层次传输线路,也就是CAN_H;其二被称为低层次传输线路,也就是CAN_L。这两根线的接地电压分别是VCANH和VCANL,它们之间的区别就是差分电压VDiff。

2.2 CAN总线层次结构

根据CAN总线的网络结构,其层次可以划分为如下图1所示的五层结构。

图1 CAN 总线分层结构

2.3 CAN总线报文传输和帧类型

CAN总线使用帧作为传输的最小单位。在CAN协议中,2.0B的协议特性也可以在标准格式数据帧中提供。在规定的两种不同格式的2.0B帧格式中,不同之处是它们的标识符的长度。有11位标识符的帧称为标准数据帧,有29位标识符的帧称为扩展数据帧。在传输报文中,有以下四种不同类型的帧:数据帧、错误帧、过载帧和远程帧。

2.4 CAN 总线位定时及节点同步技术

CAN控制器石英晶体振荡器的最大振荡器容差为1.58%。在同一个CAN网络内,为了确保每个节点可以正常的通信,报文的时序都必须做出相应的调整。CAN位速率分成四个部分:同步字段,数据交流字段,相位缓冲字段1和相位缓冲字段2。同步段用于同步总线上不同的节点,它被规定为一个时间量程。交流字段用于补偿网络内的物理延时时间。相位缓冲段用于补偿边沿阶段的误差。

2.5 CAN总线工作节点设计

电动公交客车CAN总线系统包括主控节点,灯光节点,空调节点,车门节点,仪表节点等。电动公交车的CAN总线拓扑图如图2所示。主控节点是整个车身控制系统的中枢,负责和其他各个节点进行数据通讯并作消息处理,并接受来自驾驶员的开关输入信号。各子节点将检测到的各种量如开关量和模拟量,打包处理成含有各种所需信息的报文即消息发送给主节点,主节点根据报文所含的信息作相应处理,再打包成消息发送给子节点执行。

图2 电动公交客车CAN 总线系统拓扑图

3. SAEJ1939应用层设计

3.1 SAEJ1939应用层协议的特点

SAE J1939(以下简称J1939)是美国汽车工程协会(SAE)的推荐标准,用于为中重型道路车辆上电子部件间的通讯提供标准的体系结构。J1939协议传输功能是数据链路层的一部分,其具有两大主要功能:消息封装和重组连接管理。为了使每个单独发送的帧能在接收节点处正确地重组,数据域的第一个字节被定义为封装的序列号,为1~255。序列号从1开始顺序编号直到消息被打包结束并顺序发送出去。对于多封装特定目标的消息而言,传输节点在每个包间的延时最大时间不超过200ms。每一个数据包都必须包括原始消息中的7个字节,而最后那一个数据包含有8个字节,其中有一个字节的序列号,至少一个字节是和参数组相关的数据,剩余的都设为FF。每个数据包顺序传到接收端,按序列号排列组成长数据,并交由节点使用。

3.2 SAEJ1939应用层协议的设计

系统的总线通讯速率为250kbps。CAN总线的网络报文结构图如图3所示。

图3 CAN总线网络报文结构图

本协议采用29位扩展帧,根据电动公交客车的具体情况,制订了符合SAEJ1939协议的应用层协议,其CAN总线网络节点ID信息分配表如表1所示。

其中,优先级为3位,可以有8个优先级;R一般固定为0;DP现固定为0;8位的PF为报文的代码;8位的PS为目标地址或组扩展;8位的SA为发送此报文的源地址。数据页位DP用来做数据页选择。在页0中包含了目前定义的所有消息,而页1用于将来扩展,本协议中DP定义为0。若PF域的值在0到239之间(PDU1),PS域中包含的是目的地址。若PF域的值在240到255之间(PDU2),PS域中包含的是PF的群扩展[9]

表1 CAN总线网络节点功能描述及部分ID信息分配表

3.3 CAN总线接口模块设计

CAN总线允许多个设备同时连接到总线上且在逻辑上没有数目上的限制。然而由于延迟和负载能力的限制,实际可连接得设备还是有限制的,可以通过降低通讯速度来增加连接的设备个数。相反,如果连接的设备少,通讯的速度可以增加。

CAN总线接口电路的构成主要由CAN通信控制器SJA1000高速光耦6N137和CAN总线驱动器82C250组成。通过对片内寄存器的读写操作,主控制器单片机能够设置CAN总线通信模式,实现数据的发送与接收。驱动收发器采用PCA82C250,它是CAN控制器和物理传输线路之间的接口,可以用高达1Mb/s的位速率实现在两条差动电压总线电缆上的数据传输。82C250的CANH和CANL引脚各自通过一热敏电阻与CAN总线相连,当过流时电阻发热阻值变大,保护82C250免受过流的冲击。SJA1000在逻辑上实现了传输数据的编码和解码,借助总线驱动器82C250增强CAN总线的差动发送和接收驱动能力。SJA1000的TX和RX通过高速光耦6N137后再与82C250相连以增强CAN总线节点的抗干扰能力,防止线路间串扰。另外,CAN总线驱动器采用带隔离的DC/DC模块单独供电,实现了通信控制器与CAN总线的隔离,增强系统的抗干扰能力和可靠性[10]。控制器的其他外围电路还有电源模块EEP-ROM存储器时钟保持电路LED指示灯和看门狗电路通信和系统通信故障的指示电路等,以方便系统的调试和对控制器运行状况的监测。图4给出了CAN总线系统硬件电路原理图。

图4 CAN总线系统硬件电路原理图

3.4 CAN总线网络的软件设计

软件部分主要程序单元分为:CAN初始化单元、报文发送单元、报文接收单元和中断服务单元。通讯模块的功能主要负责整车CAN总线网络各个节点之间的数据通讯与交换,以及一些开关信号模拟信号的通讯处理。通讯模块的软件如何能够做到稳定可靠实时无误成为软件编写过程中的首要任务。控制器初始化CAN控制器初始化主要是对它的一些内部寄存器进行设置,如对位定时器进行设置及对邮箱进行初始化。在对单片机的CAN寄存器初始化的时候,系统上电后立即对读写缓冲区清零,对时钟分频寄存器接收发送代码的寄存器等进行配置,当初始化设置完成后,单片机进入正常通讯状态,准备工作。初始化程序代码如下:

void canCirBufInit ( CANCIRBUF * ptCanCirBuf,

TCAN - DATA * ptCanFrameBuf,unsigned char uc-

Length)

{

ptCanCirBuf - > ulWriteIndex = 0; ptCanCirBuf -

> ulReadIndex = 0; /* Buffer[] 读 写下标清零* /

ptCanCirBuf - > bIsFull = false; /* 循环队列不满* /

ptCanCirBuf - > ulLength = ucLength; /* 记录长度, 此值不允再许更改* /

ptCanCirBuf - > ptCanFramBuf = ptCanFrame-Buf; /* 指向数据缓存区首地址* /

for ( unsigned int i = 0; i < ucLength; i )

{

ptCanCirBuf - > ptCanFramBuf[i] . isExt = 1; /*初始化未标准数据帧* /

ptCanCirBuf - > ptCanFramBuf[ i] . rxRTR = 0;

ptCanCirBuf - > ptCanFramBuf[i] . dlc = 0; /*数据场长度* /

ptCanCirBuf - > ptCanFramBuf[i] . id = 0; /*CAN 报文 ID* /

for ( unsigned int j = 0; j < 8; j )

{

ptCanCirBuf - > ptCanFramBuf[i] . data[j]=

0; /* 报文数据场* /

}

}

}

3.4.1 CAN报文的发送

在CAN协议中,所有发送的信息要满足预先定义的格式。当总线没有被占用的时候,连接在总线上的任何设备都能起动新信息的传输,如果两个或更多个设备在同时刻启动信息的传输,通过ID来决定优先级。ID并不是指明信息发送的目的地,而是指示信息的优先级。如果2个或者更多的设备在同一时刻启动信息的传输,在总线上按照信息所包含的ID的每一位来竞争,赢得竞争的设备(也就是具有最高优先级的信息)能够继续发送,而失败者则立刻停止发送并进入接收操作。

当初始化完成后,单片机系统进入工作模式,CAN报文的发送采取查询方式,大约每20ms检测发送数据缓冲区是否有发送命令包,如果没有,返回主程序等待下一次查询,如果有命令包,那么CAN控制器开启发送状态,向CANBUS发送缓冲区数据,程序设计的流程如图5所示。

图5 CAN报文的接收程序流程图

3.4.2 CAN报文的接收

接收报文有两种方式:查询方式和中断方式。本次设计采用中断方式。QY9263K系统的单片机通过等待中断标志来检测状态寄存器,当中断产生时,检查接收缓冲器状态标志RBS,查看是否有新的报文。当RBS为0时,表示没有收到新的报文,继续等待。当RBS为1时,表示接收到新的报文,单片机释放接收缓冲器读取报文。其接收程序流程图如图6所示。

图6 CAN报文的发送程序设计流程图

4 设计验证

整车CAN总线网络的软件硬件设计完成后,对系统功能的稳定性可靠性和数据传输一致性进行验证。在系统上电后,选取了电动公交客车车体上的一个电池组模块,每隔1秒记录一次电池组模块的电压信息,累计记录了电动公交客车运行时约6000组数据,数据来源于CAN总线的接收缓冲区。并将采集结果记录如下表2。同时采用CAN总线分析仪将总线上的数据同步记录下来。表电动公交客车运行时单包电池电压部分数据

表2 采集结果记录

将总线分析仪的采集结果与CAN总线接收数据缓冲区内的数据同步对比,如图7所示,车辆CAN节点实时发送的大量报文信息准确稳定,没有发生丢数丢帧串数等通讯异常现象。系统功能的稳定性可靠性和数据传输一致性均符合要求。

图 7 总线接收的数据和实际数据对比

5 结语

CAN总线技术以其高实时性高可靠性和高灵活性,在汽车网络通讯领域成为了重要的网络通讯技术之一。本文通过对CAN总线技术的分析,设计了基于电动公交客车的CAN总线工作节点并依此进行了SAEJ1939应用层设计,同时给出了CAN总线网络的软件硬件的基本实现方案。最后,通过试验测试表明,电动公交客车CAN总线网络通讯结构的硬件电路稳定,软件设计合理,实现了本文设计目标。

参考文献

[1]付亮,李伟.CAN总线控制器SJA1000的开发与设计[J].现代交通技术,2007,4(2):81-83。[2]周杨.基于Petri网的CAN总线性能分析与评估[J].哈尔滨理工大学学报,2009,14(3):46-50。

[3]PINHOLM,VASQUESF.Timing Analysis of Reliable Real-time Conmmunication in CAN Networks[C]IEEE in Digital Object Identifier,2001:79-86.

[4]陈显奎.CAN总线在大中型客车中的应用[J].电子技术应用设计,2009,10(4):52-63.

[5]SHENGMC,MENGW.Analysis of Schedule ability of CAN Based on RM Algorithm[C

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[146765],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。