任 勇,张文平,王 涛,李小燕
(1.福田戴姆勒汽车有限公司,北京 怀柔 101400;2.北京石墨烯研究院,北京 海淀 100094)
由于汽车智能化、网联化的进一步发展,汽车车载网络容量需求已极大超过了CAN或FlexFile等传统汽车车载网络的能力范围,从而拥有更高传输速率的汽车以太网技术应运而生。汽车车载以太网是一种采用以太网连接车内电子单元的全新局域网技术,其标准[1-3]基于单对双绞线以太网的Broad R-Reach或OABR技术,最高能够完成1000 Mbit/s的传输速率,同时满足汽车行业高可靠性、低电磁辐射、低功耗及同步实时性等性能要求。因此,汽车车载以太网在车辆动力、智能驾驶、娱乐等整车网络领域的应用不断增加。
HIL测试系统实时运行整车模型,并利用接口板卡链接被测控制器硬件接口,模拟被测控制器的输入信息,收集控制器的输出和必要的输入信息,进行控制器对实时模型的闭环控制和HIL系统集成测试工作,完成对功能逻辑算法的验证与测试。目前,基于CAN/CANFD通信的HIL实时仿真测试平台,国内已有广泛研究[4-7],而利用MATLAB搭建支持车载以太网SOME/IP通信和CAN/CANFD通信的模型,同时支持DoIP通信的HIL实时仿真测试平台研究尚未见报道。
本文基于Dspace实时仿真平台,搭建同时支持车载以太网SOME/IP通信、CAN/CANFD通信和DoIP通信的HIL实时仿真测试平台,该平台成功应用于环网架构域控制器的HIL工作中。
车载以太网HIL实时仿真测试平台如图1所示。该平台主要由上位机电脑、HIL仿真台架、交换机、诊断上位机和被测控制器等组成。
车载以太网HIL实时仿真测试平台搭建过程大致如下:首先,按照图1连接HIL仿真台架、被测控制器、交换机和上位机电脑的物理接口;其次,解析车载以太网SOME/IP ARXML协议,根据服务接口搭建车载以太网通信模块,仿真车载以太网服务(Method和Event类型)信号,而后通过配置CANMM仿真CAN/CANFD信号,建立车载以太网信号与CAN/CANFD信号的交互;然后,根据功能规范,搭建HIL仿真模型,并将自动化环境模型加载至HIL仿真平台,并对HIL仿真平台进行接口配置,配置车载以太网信号通道、CAN/CANFD信号通道及I/O通道,编译仿真模型,生成SDF(System Description File,系统描述文件),上位机通过网线下载到下位机Real Time中运行;最后,配置车载以太网交换机,使车载以太网诊断上位机与被测控制器建立通信,形成具备测试车载以太网的HIL实时仿真平台。
1)上位机电脑。HIL仿真平台使用的工作站为上位机电脑,上位机电脑具有以下作用:①安装MATLAB软件,用于模型的开发及离线仿真;②安装ConfigurationDesk软件,将IO硬件配置与仿真模型搭建分开,用于硬件板卡与Simulink模型之间的关联配置;③安装ControlDesk软件,用于对模型进行手动控制并显示仿真的输出数据;④安装Wireshark软件,用于采集和分析车载以太网报文。
2)HIL仿真台架。HIL仿真台架由下位机实时仿真系统和板卡箱组成。实时仿真系统为RTI实时机,能够进行高可靠性强的实时检测,响应时间≤100μs。在实时仿真系统运行仿真模型来模拟车辆的运行状态,通过接收被测对象发送信号,并对被测对象接收信号进行仿真,仿真环境可与被测对象之间形成闭环,进而为HIL自动化测试提供必要的基础。板卡箱包括DS6101板卡(电阻输出信号通道、模拟输入输出通道、PWM输入输出通道、数字输入输出通道)、DS2671板卡(CAN/CANFD的通道)、DS6333板卡(车载以太网的通道)和负载板卡(用于配合DS6101板卡中的“数字输入”通道使用)。
3)诊断上位机。车载以太网诊断上位机为基于Python语言开发的诊断上位机,该诊断上位机通过PCAN与被测控制器连接,实现CAN/CANFD诊断;诊断上位机同时也可通过交换机与被测控制器相连,支持车载以太网DoIP诊断。
4)交换机。交换机为Technica的EES车载以太网交换机,支持多端口100/1000BASE-T1转换,报文延迟为<2μs,报文可带有时间戳40ns精度。上位机通过车载以太网交换机环境模型、车载以太网诊断上位机与控制器连接,可与各节点进行数据交互,并且可通过镜像方式,抓取各节点之间的通信报文。
5)被测控制器。本系统的被测控制器为采用SOA架构的域控制器,支持千兆以太网传输速率,支持SOME/IP通信和CAN/CANFD通信,通过DoIP进行诊断,属于HIL仿真测试对象。
基于车载以太网HIL仿真包括:多功能通信模块(支持车载以太网SOME/IP通信和CAN/CANFD通信)、电源控制模块、动力学模型、手动控制模块、输入模块、输出模块,见图2。环境模型的主要功能是提供给被测控制器工作所需的各种输入信号(I/O硬线信号、CAN/CANFD信号、车载以太网SOME/IP信号),并读取被测控制器的输出信号,进而验证被测控制器的各个功能。该系统环境模型的每一个单独输出信号(I/O硬线信号、CAN/CANFD信号、车载以太网SOME/IP信号)都有两种数据流方式,一是通过动力学模型进行仿真,二是通过手动设置。动力学仿真模式将被测控制器的输出信号及驾驶员输入信号传到模型中进行处理,形成了信号的闭环;而手动设置模式则是直接对被测控制器的输入进行设置,没有形成信号闭环。通过仿真模型进行某一信号的改变,可以验证该信号对于被测控制器相关联功能以及车辆模型其他关联参数的一系列影响,而通过手动设置模式向被测控制器输入信号,能便捷直接地验证被测控制器的直接关联功能,便于测试人员验证问题。
图2 仿真模型模块
电源控制模块包括4个信号,分别是:①设备低压程控电源开关控制信号,同时也是被测控制器低压开关控制信号;②设备保护电流设置;③设备远程操作允许设置,此设置允许在上位机对设备进行操作;④设备低压电源电压值设置。
动力学模型包括驾驶员模型、车辆动力学模型、OUTPORT模块及Plantmodeloutport等4个模块。分别为:①驾驶员模型的功能是模拟驾驶员对车辆的一些可操作设备的操作及外界环境对车辆的影响因素,作为动力学仿真模型必要的输入;②车辆动力学模型主要由电池模块、电机模块、变速器模块、车辆模块、DCDC模块、真空泵模块、能耗计算模块等子仿真模块构成;③OUTPORT模块作用主要是将驾驶员模型中的输入信号,分解或转化成相关控制器I/O通道的开关信号或模拟信号;④Plantmodeloutport,该模块的功能是为之前动力学模型没有进行仿真的信号赋值,保证模型能够产生被测控制器需要的所有外部信号。
手动控制模块的功能是提供人为设置Dspace任一输出信号的接口,包括I/O信号、CAN信号和车载以太网SOME/IP信号。
1)I/O信号手动控制模块:该模块的功能是提供Dspace设备向控制器输出的所有I/O信号的手动设置接口。与输入模块相同,每一个信号通道可以单独控制是否启用。对于每一个信号,其名称代表了控制器的管脚号。
2)总线信号手动控制模块:信号设置模块包括整车网络节点的所有总线信号(CAN信号和SOME/IP信号),每一个信号都有Value和Switch两个信号,一个用来对该总线信号进行数值设置,Switch信号用来进行手动设置值与模型仿真值的切换。信号触发模块的功能为向多功能通信模块提供触发信号,使Dspace设备按总线协议的要求发送相应的总线信号。
本模块主要包括了被测控制器的输出信号与HIL设备的接口模块,功能是HIL设备接收被测控制器的输出信号,并转化成易读格式。
本模块是HIL设备的输出信号与被测控制器的接口,功能是将被测控制器工作需要的输入信号通过HIL设备相应的硬件接口发送给被测控制器。
多功能通信模块包含车载以太网通信模块和CAN/CANFD通信模块,功能是发送与接收车载以太网SOME/IP信号和CAN/CANFD信号。其中,车载以太网通信模块具有以下技术指标:①该通信模块支持车载以太网协议中的UDP和TCP两种传输方式,支持TCP握手,Socket建立;②该通信模块支持发送车载以太网SOME/IP和SOME/IP SD报文,并可仿真事件通告、远程过程调用的使用场景,同时可仿真SOME/IP SD报文订阅过程;③该通信模块支持车载以太网E2E校验及故障注入,同时支持单播、多播和广播的网络通信方式。
基于车载以太网HIL实时仿真测试平台能够实现模拟驾驶测试、车载以太网服务订阅、SOME/IP通信测试、车载以太网DoIP诊断测试和故障注入测试。
HIL仿真系统通过模拟实车运行环境,可在实车测试前进行基本功能的驾驶测试仿真测试,同时可以覆盖实车上无法验证的测试场景(如极限工况测试等),为被测控制器软件功能性测试提供了极大便利。测试者可通过驾驶员仿真界面为HIL仿真系统输入ON电指令、油门开度、制动、换挡位置等信号。驾驶员仿真信号经过硬件在环仿真模拟器的处理后,将传感器I/O信号、CAN总线信号、车载以太网信号等传输到整车控制器,整车控制器底层接收处理后传输至整车控制器应用层,整车控制器应用层软件运算处理后发出执行器控制信号。图3为模拟驾驶测试界面。
图3 模拟驾驶测试界面
如图3所示,整车状态为12,行车模式,READY灯点亮,挡位为D挡。同时该界面也可仿真快慢充插枪使被测控制器进入快慢充模式,亦可仿真T-BOX逻辑使被测控制器进入远程模式。
采用基于SOME/IP协议通信的SOA架构的控制器根据各节点的功能需求的不同,可分为Client端(客户端)和Server端(服务端)。Server端为服务的提供者,可通过SOME/IP的服务接口向Clien端提供服务;Clien端为服务的消费者,可通过服务接口向Server端请求服务。SOME/IP通信主要功能可以划分为服务订阅和远程服务调用。
本文以被测控制器上ON电功能为例,仿真节点ECU1为服务端,被测控制器ECU2为客户端。具体上ON电流程如图4所示,当被测控制器收到制动踏板踩下信号后,就会识别钥匙位置是否在车内,若钥匙有效信号为有效,则被测控制器控制IG继电器吸合,成功上ON电。下文将依据该实例进行服务订阅和远程服务调用过程说明。
图4 上ON电流程
3.2.1 服务订阅
车载以太网的服务发现和订阅是通过SOME/IP SD协议来实现的,固定端口号为30490,其报文使用UDP传输方式传送。Client端可通过SOME/IP SD的Find Service报文发现服务实例,使用Subscribe报文订阅报文或调用的服务实例;同时Server端通过SOME/IP SD的Offer报文告知其它网络节点可提供的服务,通过SubscribeACK/SubscribeNACK告知客户端服务的可用性(比如服务出现错误时,则该服务不可用),见图5。
图5 服务订阅过程
SOME/IP SD 主要有以下优势:①车辆启动时,车内各ECU初始化时间各不相同,ECU 通过SOME/IP SD 就可以灵活发布其Service 的使用状态;②车辆变型时,可以更好适应功能/配置的变化,同时减少前期的配置工作;③Client端的Service出现问题时,SOME/IP SD可快速识别Service的不可用状态,Server端就可以迅速做出响应;④降低总线负载率,功能场景需要的时候才会提供/订阅服务,可降低总线负载率,减少能量消耗。
被测控制器ECU2服务订阅过程如下文描述。HIL系统启动后,给ECU2供电。ECU2订阅ECU1钥匙有效服务,实现服务的注册,其服务发现和订阅过程如图6所示。
图6 钥匙有效服务订阅过程
1)Client端以广播形式发出发现服务(Type=0x00,FindService)报文给各节点,钥匙有效服务Service ID为47105(源IP地址为192.168.61.7,目的IP地址为239.0.0.255)。
2)Server端收到该FindService报文后,通过单播发出提供服务(Type=0x01,OfferService)报文给Client端(源IP地址为192.168.61.4,目的IP地址为192.168.61.7)。
3)Client端收到该OfferService报文后,通过单播发出订阅服务(Type=0x06,SubscribeEventgroup)报文给Server端(源IP地址为192.168.61.7,目的IP地址为192.168.61.4)。
4)Server端收到该SubscribeEventgroup报文后,通过单播发出服务确认(Type=0x07,SubscribeEventgroupACK)报文给Client端(源IP地址为192.168.61.4,目的IP地址为192.168.61.7),此时服务订阅成功。
3.2.2 远程服务调用
车载以太网远程服务调用报文类型可分为Method类型和Event类型,如图7所示。Method类型又分为Request/Response(RR)和Fire&Forget(FF)两种通信方式。其中RR通信主要用于实现Clien端发送请求消息,Server端收到请求,处理后进行响应;FF是一种不需要Client端响应报文的请求通信。Event类型的通信主要用于实现Client端向Server 端订阅需要的事件组/事件,当事件被触发时,Server端需要向Client端发送更新的内容。
图7 Request/Response服务和Event服务
Event类型报文发送方式可分为Cycle、On change和事件值变化超过预定范围。图8为钥匙有效服务为On change触发,上文中该服务已被客户端订阅。当仿真节点服务端检测到制动踏板信号值变化时,就会触发仿真节点发出钥匙位置有效报文(Service ID=47105,Method ID=32769),同时被测控制器ECU2检测到仿真环境发送的制动踏板信号后,ECU2就会检测钥匙有效信号,当ECU2接收到钥匙位置有效信号为有效时,IG继电器吸合,ECU2上ON电。图8所示整车状态为12,整车模式为行车模式。
图8 成功上ON电界面和钥匙有效信号
DoIP的主要作用是实现外部诊断仪与车载网络节点之间的诊断连接,其通信采用TCP传输方式。本文利用自主开发的DoIP诊断仪用于被测控制器ECU2的下线电检测试。
3.3.1 连接过程
诊断仪与被测控制器ECU2建立网络连接过程如下文所述。首先,进行诊断仪与被测控制器的物理连接;其次,诊断仪请求被测控制器ECU2 打开 TCP_ DATA Socket,使诊断仪与被测控制器ECU2建立Socket(TCP 3次握手);随后,诊断仪向被测控制器ECU2发送路由激活请求,被测控制器收到路由激活指令后则进行路由激活处理,建立Socket,并对诊断仪的激活请求进行响应,从而完成路由激活连接,此时成功完成DoIP的连接。当结束诊断交互后,诊断仪主动请求关闭Socket(TCP 4次挥手),从而使诊断仪与被测控制器断开连接。DoIP连接和断开流程如图9所示。
图9 DoIP连接和断开流程
3.3.2 下线电检诊断
1)首先,诊断仪与被测控制器ECU2进行Socket连接和路由激活(诊断仪Source Address 为0x0E80,IP 为192.168.61.71;被测控制器ECU2 Target Address=0x0100,IP为192.168.61.36),如图10所示。
图10 DoIP连接示意图
2)诊断仪发送诊断报文到被测控制器ECU2,DoIP实体经过通用DoIP首部处理及DoIP诊断处理后,向诊断仪发送确认接收的诊断响应。如图11所示,诊断仪发送0x10 03,DoIP实体回复0x50 03 00 32 00 c8,则被测控制器ECU2进入扩展模式。
图11 DoIP诊断示意图
3)当DoIP断开连接时,首先进行TCP 4次挥手过程,而后关闭Socket接口,如图12所示。
图12 DoIP断开示意图
车载以太网E2E为端到端保护机制的简称,在整车通信系统中通过特定监测机制来保证信息在节点之间传输过程中的数据及时性、正确性和完整性。从功能安全的角度看,如果E2E接收方必须依赖于所接收信号的及时性、正确性和完整性,那么E2E发送端和接收端之间的通信即为安全相关的。本文定义以太总线网络使用Profile 4算法[5-7]。如图13所示,E2E Profile 4算法元素包括:Length、Counter、Data ID、CRC Checksum。
图13 E2E Header示意图
Counter,其初始化、累加、重置以及校验都由E2E Profile完成。对于发送端,初始化完成以后,第1次传输时,Counter值应该被初始化为0x0;每次发送后,Counter值递增0x1;当Counter值达到最大值0xFFFF后,下一次发送时,Counter值从0x0重新开始循环。Data ID,每一个被E2E保护的信号组都拥有一个特定的ID,长度为32bits。Data ID 配置为SOME/IP 的Message ID(ServiceID/MethodID)。Length用来指示车载以太网中报文数据的长度,长度为32bits。
CRC Checksum为循环冗余校验。被测控制器ECU2的CRC采用32-bit 0x1F4ACFB13多项式算法,具体参数设置见表1。
表1 32-bit 0xF4ACFB13算法元素值
车载以太网E2E校验测试前,需要把E2E Header的Length、Counter、Data ID和CRC Checksum算法导入HIL测试系统中。如需验证E2E校验的故障注入,可通过修改算法,使Length、Counter、Data ID和CRC Checksum其中之一错误即可。图14为加载E2E Profile 4算法仿真挡位信号(Service ID=14,Method ID=32769)的以太网E2E校验值,其中Length=0x00 1D,Counter=0x3B B3,Data ID=0x00 0E 80 01,CRC=0x4B E4 5E A6。
图14 E2E校验案例
本文基于Dspace实时仿真平台搭建具备测试车载以太网的HIL实时仿真测试平台及仿真测试。结果表明:该平台可以满足基本功能的驾驶仿真测试,同时支持CAN/CANFD通信和SOME/IP通信测试,并可以对车载以太网报文进行E2E校验;利用诊断上位机可以进行CAN/CANFD通信和DoIP通信的UDS诊断操作。综上所述,车载以太网的HIL实时仿真测试平台能够帮助提高基于车载以太网通信的域控制器应用软件测试效率,提升软件品质,节省开发成本,可以满足当前对于域控制器应用层软件快速开发、验证、测试的需求。