一、系统概述 1.1 CAN与CAN FD简介
CAN(Controller Area Network)是一种串行通信协议,广泛应用于汽车工业中,以实现不同ECU之间的数据交换。传统的CAN标准(ISO 11898-1)支持最高1Mbps的波特率,主要分为标准帧(11位ID)和扩展帧(29位ID)两种格式。随着汽车电子系统对数据传输速率和带宽需求的增加,CAN FD(Flexible Data-Rate)应运而生,它在保留原有CAN协议的基础上,提高了数据段的波特率,允许更长的数据字段传输,从而显著提升了网络性能。
source:the software Car: Building ICT Architectures for Future Electric Vehicles
1.2 双路CAN配置
CAN1:主要用于ECU之间的实时信息交互,如发动机参数、车速、制动状态等关键信息的传递。它依据预先定义的CAN通讯矩阵或数据库文件(DBC)进行开发,确保各ECU间能够准确无误地交换数据。
CAN2:专用于诊断和标定功能,便于开发人员在车辆研发、生产及后期维护过程中对ECU进行参数调整、故障诊断和性能监测。
仲裁段波特率:500Kbps,用于传输仲裁信息,包括帧ID和RTR(远程传输请求)位,确保在网络负载较高时能够快速确定发送优先级。
数据段波特率:2Mbps,用于传输实际数据,提高数据传输效率,适应大数据量传输需求。
采样点:均设置为80%,即在每个位时间的80%位置进行采样,以优化信号同步和减少误码率。
标准帧:适用于简单的通信需求,ID长度为11位。
扩展帧:用于更复杂的通信场景,ID长度为29位,提供了更丰富的寻址空间。
CAN1的开发需严格遵循已提供的CAN通讯矩阵或DBC文件,这些文件详细定义了每条报文的ID、发送周期、数据长度、数据含义及发送/接收节点等信息。开发过程中,需确保:
报文定义一致性:所有ECU对相同ID的报文应有统一的理解和处理逻辑。
时间同步:通过周期性发送时间同步报文,确保网络中各ECU的时间基准一致,便于事件记录和分析。
错误处理:设计合理的错误处理机制,如重发策略、错误计数及故障指示,以提高系统的鲁棒性。
source:CANFD an introduction, from Vector
特定帧报文唤醒:允许ECU在接收到特定ID的报文后从低功耗模式唤醒,进入正常工作状态。这要求ECU具备帧ID过滤和唤醒逻辑,确保仅对有效唤醒帧响应。
局部网络唤醒:在网络中部分ECU处于休眠状态时,通过特定报文唤醒指定区域的ECU,以减少整体网络功耗。实现这一功能需合理规划网络分区和唤醒策略,确保系统响应速度与能耗之间的平衡。
source:CAN_E: Data Frame (vector.com)
CAN2作为诊断通道,支持以下主要功能:
故障码读取与清除:通过特定诊断报文,ECU可以报告内部检测到的故障码,并允许清除已解决的故障码。
实时数据监控:诊断工具可通过CAN2实时请求并获取ECU的运行数据,用于性能分析和故障诊断。
远程编程与配置:支持对ECU软件进行远程更新或配置参数调整,以适应不同的车辆配置或优化性能。
标定是车辆开发过程中不可或缺的一环,通过CAN2可实现:
参数调整:允许标定工程师在线调整ECU内部参数,如控制算法中的阈值、增益等,以优化系统性能。
数据记录:ECU可通过CAN2将关键运行数据记录并发送到外部存储设备,便于后续分析和优化。
自动化测试:结合自动化测试设备,通过CAN2执行预设的测试脚本,验证ECU在不同条件下的表现。
模块化设计:将CAN1和CAN2的通信功能模块化,便于独立开发和测试。
接口统一:确保ECU内部各模块间通过统一的接口进行通信,简化系统集成。
资源分配:合理分配ECU资源,如内存、处理器时间等,确保双路CAN同时运行时不会相互影响。
功能测试:分别测试CAN1和CAN2的各项功能,确保符合设计要求。
兼容性测试:验证ECU在不同CAN网络配置下的兼容性,包括波特率、帧格式等。
性能测试:评估系统在高负载下的响应时间、错误率等关键指标。
耐久性测试:通过长时间运行测试,验证系统的稳定性和可靠性。
采用双路CAN(CAN1与CAN2)设计的ECU,不仅提高了车辆控制系统的灵活性和可靠性,还极大地便利了诊断和标定工作。通过合理配置CAN FD参数、严格遵循通讯矩阵/DBC进行开发,以及实施全面的系统集成与测试策略,可以确保ECU在网络通信、故障诊断、参数标定等方面均表现出色,满足现代汽车电子系统的高要求。未来,随着汽车智能化、网联化的不断发展,双路CAN设计将在汽车电子领域发挥更加重要的作用。