2013年以前pc网站建设,软件开发工程师绩效考核指标,网站策划的基本过程,宁波网络营销公司有哪些1.引言
在汽车行业向软件定义汽车#xff08;SDV#xff09;转型的过程中#xff0c;传统硬件在环#xff08;HIL#xff09;测试方案因难以适应新的技术架构与需求#xff0c;其局限性日益凸显。传统HIL对硬件依赖性强#xff0c;扩展性差#xff0c;更换ECU或传感器…1.引言
在汽车行业向软件定义汽车SDV转型的过程中传统硬件在环HIL测试方案因难以适应新的技术架构与需求其局限性日益凸显。传统HIL对硬件依赖性强扩展性差更换ECU或传感器需额外硬件支持成本高且周期长、难以协调多供应商的异构模型通信协议之间转换复杂、对实时场景支持有限如μs级响应且难以保证分布式系统的全局时间同步。而以上这些问题痛点通过软件在环SIL依托仿真中间件都可以迎刃而解。所谓“在环”指的是将待测软硬件置于一个模拟的闭环系统中进行测试和验证好像被“圈”在一个由输入、处理和输出构成的环路中不断地与模拟环境进行交互以验证各种情况下的功能和性能是否正确和稳定。而软件在环就是这基础上将待测试的嵌入式软件从硬件环境中抽象出来在完全虚拟环境中进行运行和测试。 2.仿真中间件SIL KIT的应用生态
SIL仿真中间件通过虚拟化、标准化通信和分布式架构可有效解决传统HIL在扩展性、复杂性和成本方面的局限性。尤其在新型电子架构和自动驾驶开发中逐渐成为不可替代的测试验证手段。借助仿真中间件SIL KIT可以实现以下功能
通过SIL KIT可创建虚拟ECU节点无需物理硬件即可模拟各类控制器功能支持虚拟 CAN、LIN 和以太网提供标准化通信层如SOME/IP兼容多种工具链提供全局仿真时钟精度可达±100μs支持确定性调度SILKIT可优化大数据传输如激光雷达点云
SIL KIT的设计目标之一是实现轻松连接不同的工具并在算法开发的初期阶段进行功能验证。SIL KIT提供抽象通信服务、虚拟车辆网络、虚拟时间同步和生命周期管理服务。可与虚拟以太网和 CAN 网络、Linux 虚拟输入 / 输出设备、功能模型接口FMI标准实现互操作并支持流行的系统仿真器 QEMU。目前越来越多的第三方软件工具支持SIL KIT。这种灵活性与高性能相结合使 SIL Kit 成为软件定义汽车SDV架构下 SIL 测试的完美基础。 图 1 SIL KIT生态图
2.1 FMU导入器
SIL KIT可以通过FMI标准接口将FMU作为仿真的一个节点进行访问通过YAML配置文件进行FMU和SIL KIT仿真之间的数据和时间同步设置。SIL KIT提供了Synchronized时间同步模式使得FMU通过SIL KIT的虚拟时间同步与其他SIL KIT参与者同步。可确保在处理下一个仿真步骤之前FMU接收到来自虚拟时间中先前时间点的所有数据并立即执行 FMU 的仿真步骤。 图 2 SIL KIT与FMU集成
多个FMU之间数据的mapping可以通过配置VariableMapping来快速实现在序列化数据之前将数据进行交换和共享以及类型转化。
图 3 多个FMU之间的数据mapping
2.2 SIL KIT 网络模拟器
SIL KIT 网络模拟器可在网络层面实现通信行为模拟。它支持 CAN、CAN FD、CAN XL、LIN、FlexRay 和以太网并将特定总线行为集成到 SIL Kit 仿真环境中。
可模拟带宽和网络延迟等基本参数可确保准确模拟特定总线行为如 CAN 网络中的仲裁或 FlexRay 集群中的调度由网络模拟器赋能的 SIL Kit 仿真能够进行更精细的分析并使仿真结果更具实际意义能在早期阶段评估网络设计包含在过载条件下 图 4 网络模拟阶段图
2.3 SIL KIT 监测器
SIL KIT检测器是用来收集、存储并展示来自SIL KIT系统的信息。它是SIL KIT库的多功能扩展包含数据库后端和轻量级 Web 客户端。通过其Web界面用户可以评估已结束的仿真并监控正在运行的仿真的实时视图有助于对仿真进行详细分析提供全面的统计数据并帮助识别配置错误和系统异常行为。 图 5监测器界面 3.仿真中间件SILKIT示例
综上所述SIL KIT很适合用于自动驾驶算法测试接下来我们将以自动驾驶ACC功能为例了解SIL KIT是如何将基于VTD的毫米波雷达数据以CANFD的形式、摄像头数据以以太网的形式与ACC算法相连接形成闭环并触发ACC功能的。 图 6 ACC Demo数据流
3.1 CAN FD的模拟
SIL KIT经过二次开发支持导入并解析DBC文件可根据信号长度、初始值、Offset、Factor、Layout等构建CAN或CAN FD报文以原始数据形式发出或对接收到的Message进行解析。如图 7为原始DBC文件及图 8解析后的DBC文件。 图7 原始DBC文件 图 8 解析后的DBC文件
基于SIL KIT源码编写CanWriter、CanReader程序其中CanWriter建立新线程用于读取RDB_OBJECT_STATE_t信息通过vehicle_state_canfd_vehicle_state_pack函数将传感器数据打包成Message随后通过SendFrame函数发布信息到SilKit-Can总线上。
启动CanWriter、CanReader程序后在CANoe端激活SIL KIT并在CAN节点中添加对应DBC文件在CanWriter、CanReader程序、CANoe Trace中可以观测到SIL KIT总线上发布的Message如图 9、图 10所示。 图 9 CanWriter、CanReader终端 图 10 CANoe Trace CAN报文
3.2 以太网的模拟
在VTD中配置传感器同时基于SIL KIT源码编写 EthernetWriter、EthernetReader程序在EthernetWriter中利用SerializeSensorObjectMsg函数将传感器数据序列化至payload同时利用SendFrame函数将payload中的传感器数据发布至SilKit-Ethernet总线上。对源码进行编译前确认CMakeLists.txt中确认已包含所需头文件的路径或源文件如RDBHandler.cc、RDBHandler.hh等。
启动程序后在EthernetWriter、EthernetReader程序、CANoe Trace窗口可监控到以太网数据如图 11、图 12、图 13所示。 图 11 EthernetWriter终端 图 12 EthernetReader终端 图 13 CANoe Trace Ethernet报文
3.3 算法搭建
ACC DEMO算法采用Simulink搭建生成为C代码后导入SIL KIT算法作为一个SIL KIT总线节点接入来获取SIL KIT总线上发布的传感器数据作为函数输入根据当前车速、前车速度与前车的距离等车辆状态信息算出本车的加速度图 14为算法节点数据流。 图 14 算法节点数据流
算法计算出的车辆控制信号通过指针推入到初始化过得RDBHandler消息中指定的内存块通过TCP发送到TaskControl并在parseRDBMessageEntry中调用本函数来不断覆盖VTD 的DRIVER_CTRL信息实现对VTD中本车的控制。
3.4 集成与闭环效果
SIL KIT使用 YAML 配置文件来定义仿真环境和参与者的参数图 15YAML配置文件里定义了仿真环境的注册地址和启用了日志追踪。 图15 YAML配置文件
在 SIL KIT的仿真场景中往往存在多个参与者。sil-kit-registry则作为集中式的协调中心负责管理和协调这些参与者之间的通信与交互。记录了所有参与者的信息像参与者的名称、连接的网络端点等。当一个新的参与者启动并尝试加入仿真环境时需向sil-kit-registry进行注册。sil-kit-registry接收这个注册请求并将该参与者的信息添加到注册表中。同时会把其他已注册参与者的信息提供给新加入的参与者这样新参与者就能知道在仿真环境中还有哪些其他参与者并与它们建立通信图 16为sil-kit-registry注册列表图。 图 16 sil-kit-registry终端
完成注册后运行源码编译后的可执行文件进而可实现不同抽象层次的通信并执行ACC算法场景中添加ACC算法后的Ego车可根据前车的速度和相对距离等实时调整本车速度达到跟车效果如图 17所示。 图 17 仿真结果 4.总结
软件定义汽车SDV正引领汽车行业的变革其强调软件在汽车功能实现与创新中的核心地位。在SDV的复杂开发与测试流程里软件在环SIL仿真技术至关重要软件在环测试无需实际的硬件设备只需在计算机上运行软件和模拟模型可大大减少硬件采购、维护和更新的成本。而仿真中间件SIL KIT在软件在环中更是扮演着不可或缺的角色它为SDV生态系统中的各类组件与工具搭建起互联互通的桥梁有力推动着汽车软件开发的高效迭代与创新。SIL KIT为自动驾驶算法的开发与测试提供了丰富的资源与环境。开发人员能借助SIL KIT连接自动驾驶算法仿真模块与高精度地图仿真、车辆动力学仿真、传感器仿真等多个模块。验证算法在复杂场景下的准确性与可靠性加速算法迭代优化。下一期内容将介绍虚拟ECU的开发深入探讨基于Vector的vVIRTUALtarget的vECU生成以及在SIL中的应用。