凡亿助教-小美
凡事用心,一起进步
打开APP
公司名片
凡亿专栏 | CAN总线仿真工程开发流程及策略
CAN总线仿真工程开发流程及策略

本文将基于实际项目经验,对总线仿真工程的开发流程进行详细优化,并提出相应的开发策略,以确保仿真环境能够满足不同项目的需求。


1


总线仿真工程开发流程

总线仿真工程开发涉及到多个环节,涵盖了从需求输入到仿真测试和解析的全过程。


48f4e3ffc30890680e52e05f0656ce.jpg


具体流程如下:


1. 整车输入

整车输入阶段是整个仿真工程的基础。


在此阶段,开发人员需要对整车厂提供的网络拓扑结构进行分析,明确系统中所有关键模块、总线协议以及通信架构。


通过了解整车技术规范要求,能够为后续的仿真工作奠定坚实的基础。


2. 创建DBC文件

DBC(Database CAN)文件是定义CAN总线协议的关键文件,它包含了车辆通信中的报文定义、信号定义、节点信息等。


创建DBC文件时,需要确保包含所有相关的报文和信号信息,以便仿真工具能够正确识别和处理。


在复杂系统中,DBC文件需要覆盖所有相关设备和模块,以确保数据交换的准确性。


3. 导入DBC到CANoe仿真工具中

将DBC文件导入到CANoe仿真工具中,是仿真系统构建的重要一步。


开发人员需要确保仿真工具的设置与整车系统的网络架构保持一致,特别是在报文优先级、信号周期性等参数的设置上,这些将直接影响仿真数据的传输和验证精度。


4. 网络测试需求分析

网络测试需求分析阶段,开发人员需要深入分析项目中的网络功能,明确每个节点的功能、报文传输时序和错误处理机制等。


通过对系统负载、数据流量、节点间通信等的分析,可以评估仿真系统在不同条件下的表现,确保其能够高效、稳定地运行。


5. 修改或添加节点

在仿真网络中,可能需要添加或修改节点的设置。


在此阶段,开发人员需要根据需求,调整仿真网络拓扑结构,确保新增或修改的节点功能能够正确实现。


对于关键节点,确保其在仿真中能够独立运行,避免出现与其他节点功能冲突的情况。


6. 添加系统变量

系统变量的定义和配置对仿真结果的准确性至关重要。


在此阶段,需要为每个节点配置相关的系统变量,包括信号、报文等,以确保数据交换和状态变化的同步性。


特别是对于周期性较强或依赖性较高的信号,系统变量的配置需要格外细致。


7. 添加仿真面板设计

仿真面板设计是仿真环境可视化的关键部分。


设计时应考虑到用户需求,确保测试人员能够直观地查看每个节点的状态和数据交换情况。


在复杂的测试场景中,面板的布局应简洁、易操作,便于快速定位和排查问题。


8. 添加CAPL代码

CAPL(CANoe Programming Language)代码是CANoe仿真工具中的一种编程语言,它可以用来编写节点间的通信逻辑、故障模拟、数据验证等。


在此阶段,需要根据项目需求,编写相应的CAPL代码,确保能够准确模拟各类报文和节点间的交互。


9. 添加图形化分析窗口和Logging功能

图形化分析窗口和Logging功能用于实时监控和记录仿真数据。


这两个功能能够帮助测试人员在仿真过程中实时查看数据流量、通信时延等关键指标,及时发现并解决问题。


此外,Logging功能可以帮助开发团队追踪问题的根源,为后期分析提供详细记录。


10. 添加测试用例和测试模块

测试用例和测试模块的设计是确保仿真覆盖所有需求场景的关键。


设计时,需要根据需求文档编写测试用例,确保所有的功能和异常场景均能得到验证。


通过将测试模块集成到仿真工具中,可以提高测试的自动化水平和效率。


11. 添加CDD文件和诊断功能

CDD(CANoe Diagnostic Description)文件用于定义诊断过程中的报文和响应。


为确保仿真环境能够全面验证ECU的诊断功能,开发人员需要将相关诊断功能集成到仿真系统中,以便模拟故障诊断过程中的报文交互和错误响应。


12. 添加其他辅助功能

除了核心仿真功能外,还可以根据项目需求添加其他辅助功能,如网络通信分析、ECU软件升级、故障注入等。


这些辅助功能有助于全面验证ECU在不同工作场景下的表现,并确保系统的可靠性。


13. 仿真工程测试和解析

仿真工程的最后一步是进行全面的测试和解析,确保所有功能模块的仿真结果与实际系统相符。


在此阶段,测试人员需要结合测试结果进行调优,解决潜在问题,并对仿真过程中的数据进行记录和分析,以便进行后期优化。


2


总线仿真工程开发策略

为了确保总线仿真工程能够满足项目需求,开发人员需要根据项目的具体情况制定合理的开发策略。以下是几个关键策略:


1. 力争获得原始DBC文件

原始的DBC文件是总线仿真工程中最重要的参考资料之一。


获取准确的DBC文件不仅可以节省大量的开发时间,还能确保仿真环境的准确性。


因此,开发团队应尽可能争取获取整车厂提供的原始文件。


2. 仔细分析产品开发文档

在开发仿真环境之前,开发团队应详细分析前期产品的技术文档,找出与网络相关的功能、报文和节点。


这些信息将帮助开发团队准确地构建仿真环境,避免遗漏关键功能或报文。


3. 听取项目团队的需求

项目中不同角色的团队成员(如软件开发人员、功能测试人员、网络测试人员等)往往有不同的需求。


开发人员应与各方沟通,确保仿真环境能够满足所有需求,特别是在复杂系统中,需要考虑不同测试场景下的需求差异。


4. 了解节点切换计划

在开发过程中,需要明确哪些关键节点需要仿真,哪些节点可以使用真实ECU进行测试。


对于关键节点,力争获取ECU模块样品,以减少仿真替代的风险。


5. 确保仿真系统的模块化和可扩展性

为了确保仿真环境的高效性,仿真系统应具备模块化设计,方便后期的拓展和调整。


对于每个节点和模块,开发团队需要确保它们能够独立运行,并根据项目需求灵活切换。


6. 发布前做好版本控制和文档管理

发布仿真工程时,除了确保功能的完整性外,还需要附带详细的版本控制和文档,便于后期的维护和更新。


这能够确保项目中每个团队的协作顺畅,避免因版本问题导致的误操作或误解。


通过精细化的仿真测试,能够帮助开发团队提前发现潜在问题,避免在后期测试和验证阶段出现重大失误,从而确保整个开发流程的顺利进行。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。
相关阅读
进入分区查看更多精彩内容>
精彩评论

暂无评论