V2X测试系列——CANoe.Car2x(V14)尝鲜

在上一篇推文《V2X测试系列——V2X应用场景仿真及开发流程》中,我们已经介绍了什么是V2X(Vehicle to Everything)以及用场景仿真软件对国标中定义的典型V2X场景进行建模的效果。对于V2X仿真测试, Vector家族产品CANoe中的插件Car2x从名字也能看出是专门为V2X而生,利用Vector家族工具链,它可以完整覆盖V2X从场景仿真到测试验证的全流程。2020年推出的CANoe V14版本中,Car2x的功能更加完善,让我们一起来看看吧。

 

CANoe.Car2x(V14)简介

 

《打开V2X的神秘大门-CANoe.Car2x之场景创建》一文中,曾详细解读过如何利用CANoe.Car2x的场景编辑器创建V2X交通场景。在最新的版本CANoe.Car2x (V14)中,C-V2X应用层消息集针对标准《基于LTE的车联网无线通信技术消息层技术要求》(YD/T 3709-2020)进行了更新(包括BSM、MAP、SPAT 等),该消息集在国标《合作式智能运输系统车用通信系统应用层及应用数据交互标准 第二阶段》(T/CSAE 157-2020)中也被采用。比较贴心的是,新版本CANoe.Car2x参照国标(T/CSAE 53-2017)中定义的16种C-V2X场景(近场支付场景除外)给出了场景案例(如图1),用户可以参照示例或以其为基础进行仿真开发或平台测试。

 

V2X测试系列——CANoe.Car2x(V14)尝鲜_第1张图片

图 1 Car2x V2X国标定义场景示例

 

接下来,我们简单介绍如何利用Car2x进行C-V2X仿真。

 

CANoe.Car2x C-V2X场景案例

 

V2I(Vehicle to Infrastructure)应用场景:

功能:闯红灯预警(RLVW: Red Light Violation Warning)是指,主车(HV)经过有信号控制的交叉口(车道),车辆存在不按信号灯规定或指示行驶的风险时,RLVW应用对驾驶员进行预警。本应用适用于城市道路、郊区道路和公路的交叉路口、环道的出入口、可控车道、高速路入口、隧道等有信号控制的车道。

 

目的:RLVW应用辅助驾驶员安全通过信号灯路口,提高信号灯路口的通行安全。

 

过程描述:当前方有大车遮挡视线(如图2所示)、恶劣天气影响视线或由于其他原因,使HV无法对当前红灯或即将到来的红灯做出正确判断时,RLVW检测HV当前所处位置速度等信息,通过计算预测车头经过路口停止线时信号灯的状态,并向驾驶员进行预警。

 

V2X测试系列——CANoe.Car2x(V14)尝鲜_第2张图片

图 2 闯红灯预警(RLVW)

 

CANoe工程的基本配置如下:

 

V2X测试系列——CANoe.Car2x(V14)尝鲜_第3张图片

图 3 CANoe工程配置

 

数据库设置如上图所示,网络包含HV和RV两个节点:HV循环广播BSM信息,RSU循环广播MAP和SPAT信息。利用CANoe.Car2x Option选项中的证书管理页面可以快捷的为C-V2X消息生成证书,如下图所示:

 

V2X测试系列——CANoe.Car2x(V14)尝鲜_第4张图片

图 5 数据库网络节点配置

 

V2X测试系列——CANoe.Car2x(V14)尝鲜_第5张图片

图 6 证书管理器生成证书

 

接下来,利用场景编辑器Scenario Editor编辑交通场景,设置HV和RSU的位置、路径以及速度剖面,如图7所示:

 

V2X测试系列——CANoe.Car2x(V14)尝鲜_第6张图片

图 7 Scenario Editor设置站点和速度剖面

 

本例子中RSU广播的MAP和SPAT消息的具体设置需要由CAPL脚本实现,具体如图7所示,C2X_IL.dll提供了相当丰富的API用来获取和操作C-V2X报文以及场景信息,通常在发送前通过自定义函数完成某些赋值操作以满足场景需求。

 

V2X测试系列——CANoe.Car2x(V14)尝鲜_第7张图片

图 8 CAPL脚本实现V2X消息自定义

 

CANoe.Car2x 国标报文解析

 

CANoe.Car2x支持的协议栈目前已支持欧标、美标以及国标三种V2X协议栈标准,由于CANoe.Car2x自带ASN.1编码和解码工具,在Trace窗口可以看到报文解析后的结果随时间变化如下图所示,配合Map Window的地图、车辆轨迹、交通事件显示,仿真过程可读性非常高。

 

V2X测试系列——CANoe.Car2x(V14)尝鲜_第8张图片

图 10 CANoe Option Car2X支持的协议标准(图片源自Vector)

 

V2X测试系列——CANoe.Car2x(V14)尝鲜_第9张图片

图 11 V2X国标SPAT消息示例

 

参考国标C-V2X协议栈层级,对上图中Trace窗口的SPAT报文进行解读(如图12所示),一个完整的数据包由数据链路层报头、C-V2X层报头、适配层报头、DSMP层报头、安全层报头以及应用层数据报组成。图中“00 00 01 FF FF FF”为数据连接层报头,其中“00 00 01”为源MAC地址,“FF FF FF”(广播模式)为目的地MAC地址。

 

V2X测试系列——CANoe.Car2x(V14)尝鲜_第10张图片

图 12 C-V2X国标BSM报文解读

 

各个协议层报文的具体含义可以参考Vector help文档进行详细查看。举例来说,对于C-V2X 层报头和适配层报头,help文档解释如图13-14所示,可知对于国标,C-V2X数据包的第7和第8个字节都应该是“04”。

 

V2X测试系列——CANoe.Car2x(V14)尝鲜_第11张图片

图 13 C-V2X层报头解释(图片源自Vector)

 

V2X测试系列——CANoe.Car2x(V14)尝鲜_第12张图片

图 14 适配层报头解释(图片源自Vector)

 

那么应用层数据报文该怎么解读呢?不用着急,国标(T/CSAE 53-2017)中已经规定了BSM,MAP和SPAT等消息的ASN.1原语,并指出应该按照UPER方式编码,因此,只需要利用ASN.1编解码工具就可以完成应用层数据解析,CANoe.Car2x自带该工具,当然也可以用开源的Python库如asn1tools完成编码和解码。最新标准(YD/T 3709-2020)更新了应用层消息集原语,但是编码和解码方式并没有改变。

 

本文简单介绍了新版本CANoe.Car2x的功能,基于C-V2X国标进行场景仿真以及C-V2X数据包的报文解析。下一篇,我们会和大家聊一聊C-V2X HIL测试相关的内容,希望大家持续关注!

 

 

 

你可能感兴趣的:(CANoe,仿真测试,仿真软件)