来源 | 中国第一汽车股份有限公司智能网联开发院
作者 | 孙建蕾、陈博、尹荣彬
知圈 | 进“底盘社群”请加微yanzhi-6,备注底盘
传统的车载can总线最高支持500 kbit/s的传输速率,每帧只能承载8 bytes的数据,由于传输速率和数据长度的限制,在自动驾驶和智能网联对网络通信的高要求背景下,使用传统 can 通信势必会导致总线负载率过高从而导致网络拥堵,传统can总线通信的瓶颈逐渐凸显。
2011年,为满足带宽和可靠性的需求,bosch首次发布了 can-fd(can with flexible data-rate)方案,can-fd继承了传统can总线的主要特性,使用改动较小的物理层,双线串行通信协议,依然基于非破坏性仲裁技术,分布式实时控制,可靠的错误处理和检测机制,在此基础上对带宽和数据长度进行优化,将逐步取代传统can成为下一代主流汽车总线系统,与车载以太网搭配构建未来汽车的网络骨架。
1. can-fd概述
1.1 基于osi参考模型的can-fd 协议分层
can-fd 的协议架构(网络分层)与传统 can 保持一致,故后文中对协议架构部分的说明将不对can与can-fd进行区分。
can 协议也是基于 iso/iec 7498-1 中规定的开放系统互联(osi)基本参考模型,该模型将通信系统结构划分为 7 层。自上而下分别为应用层(层 7)、表示层、会话层、传输层、网络层、数据链路层和物理层(层 1)。
考虑到 can 作为工业测控底层网络,其信息传输量相对较少,信息传输的实时性要求较高,网络连接方式相对较简单,因此,can 总线网络底层只采用了 osi 7 层通信模型的最低 2 层,即物理层和数据链路层,而在高层只有应用层。can 的数据链路层又分为逻辑链路控制(llc)子层和媒体访问控制(mac)子层。物理层定义信号怎样传输,完成电气连接,实现驱动器/接收器特性;mac 子层是实现can 协议的核心,它的功能主要是传送规则,即控制帧结构、执行仲裁、错误检测、出错标定和故障界定;llc子层的功能主要是报文滤波、超载通知和恢复管理。
物理层和数据链路层的功能可由 can 接口器件来完成。应用层的功能是由微处理器完成的。在iso 11898中对 can 协议层级与 osi模型层级的关系进行了说明,图 1 描述了 can 协议中数据链路层和物理层与 osi模型的关系。
图1 can分层结构与osi模型对比
1.2 can-fd优势分析
can-fd相比传统can总线,其优势主要有以下3点。
(1)传输速率更快
fd全称是 flexible data-rate,顾名思义,表示can-fd 的帧报文具有数据场波特率可变的特性,即仲裁场合数据控制场使用标准的通信波特率,而到数据场就会切换为更高的通信波特率,车端常用的为2mbit/s和5mbit/s,从而达到提高通信速率的目的。
图2 can标准帧结构
图3 can-fd标准帧结构(数据长度最大为16 bytes)
图4 can-fd标准帧结构(数据长度为20~64 bytes)
(2)有效数据场更长
传统can报文标准帧的有效数据场只有8bytes,每帧携带的数据量很少,can-fd 对有效数据场的长度进行了很大的扩充,标准帧的有效数据场最大可达到64bytes,大大提高了每帧报文中所能携带的数据量。
(3)更小的改动
can-fd保留了传统can总线协议的核心特征,这使得在ecu和收发器等硬件层面上相较于车载以太网更易实现和应用,且由于can-fd与传统can对物理层的要求基本一致,can-fd的 ecu 和收发器对传统can兼容,oem不论是采用直接升级为can fd总线的方案还是在切换过渡的阶段先采用混网的方案,在技术实现和开发成本控制层面都可以达到预期。
2. can-fd在产品车型上的应用
以某车型为例,该项目已对 can-fd网络进行了量产化应用,该项目基于电子电气功能架构搭建了集合多种车载网络协议的网络架构,集信息域、互联域、自动驾驶域、底盘动力域的多域融合的一汽新一代整车网络架构,该架构具备支持拓展 l2 级自动驾驶和整车级 ota 技术的能力,具有高功能安全、高信息安全的技术优势。
2.1 功能定义
本车型can-fd部分主要实现adas自动驾驶和动力车控等功能,adas 功能分为驾驶智能辅助功能和自动驾驶功能,包括拨杆换道、自动换道、自适应巡航、高速代驾、拥堵跟车、自动泊车等基本或高阶的功能,涉及到 adas 域控制器与感知传感器、底盘、动力等执行控制器的控制交互。
2.2 方案设计
对于 2.1 章节所描述的功能需求,在以往项目设计时多采用 can 总线进行传输相关报文,但随着adas 功能水平升级,这些 adas 功能的实现对网络通信有着更高性能、低时延、高带宽及asil b 的功能安全要求,传统can通信已无法满足。一汽红旗在本车型上首次应用 can-fd 搭建 adas 等域的网络架构,实现 adas 域控制器与感知控制器及执行控制器之间的高实时性和稳定性的通信传输。
在本车型网络架构设计中,将 adas 功能相关的报文分为 2类,控制类和感知类。再根据每个单元功能的功能安全asil等级确定每条报文和信号的asil等级,进而制定每条信号的e2e校验策略。由于舒适娱乐采用传统can的网络骨架,所以在中央网关中做了 can 转 can-fd(can-fd 转 can)的功能设计,并对网关做了功能安全冗余设计,网关功能安全设计内容在此不做赘述。
2.3 设计实现
2.3.1 车型can-fd节点拓扑结构设计
在本车型项目中,can-fd 节点主要有网关控制器、adas 域控制器、adas 感知控制器、动力域控制器、底盘域控制器(图 5)。
图5 车型can-fd节点拓扑
其中网关主要实现 pducan-fd 路由功能、can-canfd 路由功能;adas 域控制器实现 adas 规划决策功能;adas 感知控制器实现环境感知和定位功能;动力域控制器实现动力分配和控制功能;底盘域控制器实现制动和转向功能。
2.3.2 路由策略设计
从 can 到 can-fd 的路由,考虑到传输效率,网关将接收到的多个 can 报文打包到一个 can-fd 报文中进行发送,为保证报文矩阵的可扩展性和打包解析的便利性,can-fd中每8个bytes与传统can报文相对应,每连续的8 bytes中至少预留32 bits用于未来功能的扩展。can-fd报文数据部分设计为如图6。
图6 can-fd路由can-fd报文数据场结构
网关的报文路由形式分为can-can路由,cancanfd 路由和 canfd-can 路由 3 种,can-can 路由遵循传统 can 路由原则,在此不做赘述,后文主要对后2种路由形式进行详细说明。
can-canfd路由:
网关可以将多条报文进行组包后转发,也可以不组包单报文转发;单报文转发仅改变源网段报文的id和报文类型(帧结构和传输速率),但不改变数据场里信号的位置和数据场长度(dlc),这种转发形式称为报文路由。直接路由可以通过底层软件自己完成,不需要上层软件的参与,路由时间延迟低,一般可控制器在2 ms以内。
图7 报文路由过程示例
canfd-can路由:
can-fd到can总线的消息转发需要将dlc长达64 bytes的can-fd的消息帧拆分为多个dlc最长为8 bytes的can消息帧,需要数据场中的信号拆分重组,改变报文的id、报文类型、dlc长度以及信号位置,这种路由方式称为信号路由。信号路由过程需要上层软件的参与,路由时延相比报文路由要高一些,想实现功能安全,网关也需要做更多的安全冗余设计工作。
2.4 can-fd通信性能验证
针对本项目设计,搭建了台架对 can-fd相关节点进行了一致性测试和硬件在环(hardware in the loop,hil)验证,在网络的关键性能指标如总线负载率、吞吐量、平均时延和峰值时延、网络利用率和网络效率都得出了不错的结果数据。
图8 信号路由过程示例
3. 基于can-fd的新一代汽车网络架构
车联网、v2x 和自动驾驶对汽车网络高带宽、低延迟的高要求,使得以传统can为骨架的汽车网络架构已逐步退出历史舞台。车载以太网技术的发展为高带宽提供了可能性,但车载以太网由于其点对点通信和非实时的协议特性使其无法满足车控功能对高实时性和一对多通信的需求,而 can-fd 基于传统can 的核心特征,继承了总线仲裁和广播通信特性,非常适用于车控信息的交互。利用 can-fd 与车载以太网的协议特征,主机厂已构建出以can-fd和车载以太网为网络骨架的新一代智能汽车的网络架构。
车载以太网在一汽的量产车型上也已得到应用,用于实现了安全防护、车况查询、远程控制、手机泊车、移动网络、wifi 功能、定位导航、信息推送方面功能。在该车型上,以车载以太网和 can-fd 为主干网络,研发工程师搭建了面向服务的集信息域、互联域、自动驾驶域、底盘域的多域融合的新一代整车网络架构。