中文信息在车载网络CAN总线中的传输研究

2019-08-27 00:40杜贵锋王远波郭惊宇
汽车电器 2019年8期
关键词:字节总线编码

杜贵锋,李 锐,王远波,郭惊宇,王 龙

(陕西重型汽车有限公司汽车工程研究院,陕西 西安 710200)

随着汽车智能化、网联化的发展,人与车、人与后台之间进行实时信息交互的应用需求变得越来越多,这种信息交互是通过文字信息、图形信息或音频视频信息进行的,因此,研究文字信息,特别是中文文字信息在车载网络中的传输具有非常重要的现实意义[1]。

中文文字信息在车载网络中的传输,主要涉及中文文字信息编码类型,以及大块的文本信息 (CAN总线中指数据长度大于8个字节)通过传输协议进行传输两部分内容。

1 中文信息文字编码

文字信息的传输和存储基础是标准字符集,字符集也叫字库或语言编码,常用的语言编码有UTF-8和GBK。UTF-8是国际编码,俗称万国码,几乎包含全世界所有国家需要用到的语言编码 (相当于一个大字库),比如日文、韩文等都可以用,具有很好的通用性;GBK编码是中国制订的,是汉字国标GB2312-80标准的扩展。GBK编码共收录汉字和图形符号21886个,其中汉字 (包括部首和构件)21003个,图形符号883个。

GBK与UTF-8编码方式不同,GBK的文字编码是用双字节来表示的,即不论中、英文字符均使用双字节来表示,只不过为区分中文,将其最高位都定成1,其编码范围:8140-FEFE;而UTF-8编码,它对英文使用8位 (即一个字节),中文使用24位 (3个字节)来编码。对于使用中文较多的情况下使用GBK可以节省空间,而对于英文字符较多的使用场景则用UTF-8资源配置更加合理[2]。

主机厂可根据车辆的市场定位、销售区域,使用不同的编码。如果车辆为面向国际的销售,采用UTF-8编码较为合适;如果国内是主销,则GKB节约资源。或者在平台设计时两种编码都配备,根据车辆最终用户情况,在车辆下线时进行配置,选定使用文字编码的类型。具体采用哪种方式,如何配置,应在构建整车电子电器EE架构平台时进行规划设定。

2 CAN总线传输协议

当前车载骨干网络为CAN总线,CAN采用短帧结构,适用于控制信息的传输,实时性强,可靠性高。如果要传输超过8个字节的数据信息,则需要通过传输协议进行。传输协议的主要功能就是在发送端将大块数据拆分成若干小段,从而满足CAN总线每帧只能传输8个字节的要求,一般称为拆包;接收端收到数据后,按传输协议将数据组合还原,也称为组包。

常用的CAN总线传输协议,主要有两种:一是SEA J1939标准中在数据链路层J1939-21定义了多包传输协议,另一个是UDS标准中在网络层ISO15765-2中实现多包传输的功能。SEA J1939用于常规数据通信,也用于SEA J1939诊断,ISO 15765-2主要用于UDS诊断。

2.1 J1939传输协议

SEA J1939协议定义了一个专用的PGN参数组 (60610(00EB0016))来传输拆分后的数据,数据传送报文TP.DT的参数组中,数据域的第1个字节用作消息帧的序号,后7个字节用来存放有效数据。单次可以发送255×7=1785个字节的数据。协议定义了点对点传输和广播传输两种形式。

1)点对点传输。发送节点和接收节点之间虚拟连接的建立与关闭,传输协议包含的帧格式大致分为2类:TP.CM和TP.DT。在TP.CM中定义了5种帧格式:发送请求帧 (TP.CM_RTS),准备发送帧 (TP.CM_CTS),结束应答帧 (TP.EndofMsgACK),连接失败帧 (TP.Conn_Abort)以及用来全局接收的广播帧 (TP.CM_BAM)。TP.DT用于具体数据传送。发送请求帧 (TP.CM_RTS)用于发送节点 (A节点)向目的节点 (B节点)发送请求与之建立通信连接,准备发送帧(TP.CM_CTS)是B节点向A节点表示已答应其请求并做好了数据接收准备,至此A、B节点之间的通信连接建立完毕,接下来A节点就通过数据帧TP.DT向B节点持续发送数据帧,在最后一帧信息发送完毕后,A节点会发送一个消息结束应答信息 (TP.EndofMsgACK),然后在一定时间后A、B节点会断开连接;若发送双方在传输过程中任一方出现故障(超时、故障、资源不足等)均可发送连接失败帧 (TP.Conn_Abort)来断开连接。

2)广播传输。如果消息是发送到多个节点或者是全局,则不需要数据流控制和关闭的管理功能,只需要通过广播消息来通知消息的发送即可。SEA J1939-21定义了一个专用的PGN参数组 (60416(00EC0016))用于多包传输的连接管理。该报文中,数据域的首字节为控制字节,通过改变控制字节的数据可以实现不同的控制功能,完成数据传输过程的连接管理。发送节点首先要发送一条广播公告消息TP.CM_BAM,向其他节点申明自己要发送多包消息,之后直接开始发送数据,而不必等待接收节点的响应,数据发送完毕后也不关闭连接[3]。J1939多帧传输如图1所示。

图1 J1939多帧传输

2.2 ISO 15765传输协议

通过ISO 15765的网络传输协议也可实现对大块数据的传输。该协议是通过一个控制信息PCI(Protocol control information传输控制协议)来完成大块数据的拆分、组装的,通过PCI将数据分为单帧 (SF)、第1帧 (FF)、连续帧 (CF)和流控制帧 (FC)4种类型的消息帧,通过数据域的PCI区别帧功能类型,其数据结构见表1。

表1中:如果CAN消息的数据域的第1个字节的7-4位为0,即N_PCItype=0,则为单帧 (SF);如果CAN消息的数据域的第1个字节的7-4位为1,即N_PCItype=1,则为首帧(FF);如果CAN消息的数据域的第1个字节的7-4位为2,即N_PCItype=2,则为连续帧 (CF);如果CAN消息的数据域的第1个字节的7-4位为3,即N_PCItype=3,则为流控帧 (FC)。

流控帧就是告诉发送节点如何发送剩下的数据,FS为数据流传输的状态信息,当FS=0时,代表接收方已经准备就绪,发送方可以发送序列帧;当FS=1时,发送方继续等待流控帧且复位N_BS的超时定时器;当FS=2时,代表接收方的内存不够,发送方须结束数据传输。BS为接收方发送一个流控帧后可以接收连续帧的数量,当BS=0时,接收方不再发送流控帧,发送方可以持续发送直到数据传输完成。ST为连续发送连续帧的最小时间间隔[4]。ISO 15765单帧传输与多帧传输如图2所示。

图2 15765单帧传输与多帧传输

3 中文信息在CAN总线系统中传输

一般来讲,人机、人与后台之间的信息交互,大段的文字信息数量较少,类似短信、微信量级的居多。大段中文文字传输应用场景,一般在FOTA时升级或后台进行资讯推送时可以用到,在FOTA升级中,特别是在商用车中,FOTA还是个新鲜事物,车主们难免会对远程升级FOTA心存顾虑,因此,FOTA升级前需要将升级原因等相关资讯的信息全面、完整地推送给车主,有利于驾驶员进行积极配合,获取升级授权,使得FOTA升级得以顺利进行。全面、完整的升级资讯传输,势必需要大段的文字信息来进行表述[5]。

3.1 车载网络CAN总线中文信息传输时间以及对总线负载的影响

信息传输时间,按GBK编码,每个汉字占2个字节,按推送500字提示信息计,传输总数据量为1 000字节,按每帧传输7个字节计,需要传输的帧数=1 000/7+1=144帧,如果定义连续帧之间的传输时间间隔为50 ms,所需的传输时间为:144×50=7 200 ms=7.5 s,传输1 000字的提示信息需要15 s。CAN总线波特率按照500k计,传输时总线的负载约增加0.6%左右,对于250 k的波特率,负载增加也不会超过1.5%,对总线负载影响很小。如果选择在整车15下电后,车载终端启动对多媒体进行传输,相当于将整车的休眠时间推迟15 s。

3.2 传输协议选择

两种多包传输协议虽然在实现方式、最大传输数据量、超时、错误处理等方面存在着较大的差异,但是二者基于对数据拆包、组包及连接控制的核心思想都是相通的,都是为了实现多包传输功能。ISO 15765-2一般应用在乘用车领域;而SEA J1939-21主要应用于中大型货车和客车。SEA J1939-21传输协议在传输模式、实现策略上更为复杂,对于主机厂、供应商等开发应用者来说更难于理解、应用。ISO 15765-2定义的数据结构相比更为紧凑,对数据域的利用率也更高,在传输同等数据量的情况下,传输效率更高。ISO 15765-2支持的最大数据长度为4095B,优于SEA J1939-21的1785B。从技术角度分析,ISO 15765-2的传输协议优于SEA J1939-21定义的传输协议[6]。

对于乘用车,一般较少使用SEA J1939协议,因此采用ISO 15765-2网络层传输协议进行文字的传输是最经济的选择。

对于商用车,基本采用的是SEA J1939协议,UDS用于离线诊断,因此,中文信息的传输可以采用SEA J1939-21传输协议,也可以采用ISO 15765-2协议进行。一般对于类似短信、微信级别的文字信息传输,可以用SEA J1939协议进行传输。对大块的文字传输,如FOTA前的信息交互提示,因为传输的时间等因素,建议采用ISO 15765-2协议,在车辆下电情况下进行传输。

4 结束语

中文信息传输的实现,可显著提高车辆人机交互的主观感受,提升车辆的智能化水平。文中就传统汽车网络CAN总线上实现中文信息的传输,特别是大块的中文信息,在E-E架构设计时,所涉及的传输协议、文字编码、传输时机的选择以及对总线负载的影响进行了分析。研究表明,大块的中文信息在车载网络CAN总线中传输是切实可行的。

猜你喜欢
字节总线编码
HEVC对偶编码单元划分优化算法
No.11 字节跳动计划自研芯片:仅供内部使用
住院病案首页ICD编码质量在DRG付费中的应用
生活中的编码
No.8 字节跳动将推出独立出口电商APP
关于CAN总线的地铁屏蔽门控制思路论述
论纪录片影像中的组合编码运用
人类进入“泽它时代”
Q&A热线
PCI9030及其PCI总线接口电路设计