- CAN
- CAN网络应用
- 简单案例
- 典型汽车网络拓扑结构
-
- 动力CAN(1)
- 负责车辆动力和必须实时响应的安全相关ECU接入这条CAN
- 底盘动态CAN(2)
- 负责底盘动态控制和辅助相关的功能的ECU接入到这条CAN
- 信息CAN(3)
- 负责仪表、中控相关的ECU
- 车体CAN(4)
- 负责车辆上和驾驶无关的一些车门、车窗、天窗、空调、电动座椅的控制相关的ECU接入到这条CAN
- 诊断CAN(7)
- 负责全车检测和ECU升级通道
- 典型汽车网络拓扑结构
- 实际开发中一定是根据功能组来定义报文优先级,同一个网段发送的报文可能被网关转换成各种不同优先级的报文甚至由网关来拆分,功能越是复杂的整车网络,网关的设计就会越复杂,所以网关才是CAN网络的实际中心枢纽。
- 诊断CAN上的报文必须遵照UDS协议,它是固定的,也不存在网关转发时转换优先级的问题,因为它本来就是优先级最低的报文了。
- 简单案例
- CAN软件设计
- CAN的传输速率和同步参数
- 传输速率
- 系统时钟
- 位电平采样点位置
- 分频系数
- 时序寄存器
- 接收端报文过滤器
- 把ECU需要的报文ID写入到CAN控制器的接收ID寄存器里
- 节点在Bus Off时的行为
- 自动退出Bus Off
- 软件干预节点
- 进入Bus Off状态后一直维持至软件控制退出Bus Off
- 进入Bus Off状态后仍可硬件根据协议自动退出Bus Off状态,但在退出前可以被软件阻止退出
- 数据收发处理
- 接收
- 软件轮询/操作系统调度
- 需确定接收处理的调度周期和接收FIFO深度
- 软件轮询/操作系统调度
- 发送
- 时间触发/周期触发
- 软件可以通过操作系统调度或消息队列等形式统一处理
- 周期触发
- 可通过配置MCU的计时器中断或者用轮询的方式确定发送时间点
- 时间触发/周期触发
- 接收
- 错误处理
- 由软件干预Bus Off退出行为时,如果不使用Bus Off中断,而使用轮询Bus Off状态标志寄存器来作为进入Bus Off处理条件时,在一些控制器上Bus Off状态寄存器是不锁存的,也有一些控制器是有锁存和不锁存两种寄存器同时存在的。
- 因为ACK错误不会使节点进入Bus Off状态,所以如果ECU设计要求对全错误类型都要做软件干预处理的话,则需要在特别发送处理后关注错误状态寄存器和错误类型寄存器。当错误状态寄存器置起且错误类型寄存器为ACK错误时,要单独的进入ACK错误处理流程
- CAN的传输速率和同步参数
- CANoe软件页面介绍
- CANoe软件页面
- File:文件处理
- 新建文件
- File这个菜单可以新建各个各样的模板,比如CAN、LIN、以太网模板,例如: CAN 500kBaud 1ch代表CAN总线模板、波特率500k、一个通道(波特率和通道后续可修改)
- Save
- Save可以储存当前的CANoe工程cfg文件Save as可以储存之前版本的文件,CANoe支持高版本打开低版本
- Sample Configurations
- 这里边Vector带了很多的Demo示例,包含仿真系统、CAPL函数、面板控件等
- Options
- 这里边可进行配置,值得注意的一点就是数据历史,如果测试的数据庞大,数据中会出现丢失,数据曲线可能只录了一小段。原因就是配置中没有把缓存调大。
- 新建文件
- Home:主运行窗口
- Analysis:分析
- Simulation:仿真
- Test:测试
- Diagnostics:诊断
- Environment:外部变量
- Hardware:硬件配置
- Tool:工具编辑器
- Window:窗口配置
- File:文件处理
- CANoe软件页面
- CANoe测试环境搭建
- 界面介绍
- Simulation Setup
- Measurement Setup
- 附加工具
- CAPL Browser
- CANdb++ Editor
- CANoe相关文件格式
- .cfg
- CANoe项目配置文件,可以理解为工程文件
- .dbc
- CAN数据库文件
- .can
- 仿真节点程序源代码,编译后生成.cbf
- .cfg
- 简易工作流程
- 使用File> New Configuration>CAN 500k Baud 1ch> Create Configuration新建一个CANoe项目配置文件
- 打开Simulation Setup窗口, 为仿真网络添加CAN数据库
- 在Simulation Setup内添加仿真节点
- 为仿真节点编写程序,语言可以使用CAPL
- 选择全仿真网络 (Simulated bus) 或者真实网络 (Real bus),半仿真同样使用Real bus;6、运行CANoe,开始仿真或者分析
- 通过Measurement Setup打开各个窗口观察CAN网络,通过Write窗口观察仿真程序的输出
- 结束
- CAN数据库
- CAN数据库编辑工具
- CANdb++ Editor
- CAN数据库结构
- 报文信号
- 报文
- 网络节点
- 网关
- 环境变量
- ECU
- 网络
- CAN信号格式
- Motorola格式
- Intel格式
- CAN数据库的设计
- 新建.dbc文件
- 建立网络节点
- 建立报文
- 建立信号
- 编辑报文信号
- 建立环境变量
- CAN数据库编辑工具
- 配置仿真设置
- 利用CAPL添加节点说明
- 开始仿真
- PANEL的使用
- 界面介绍
- CAN FD基础
- CAN FD与CAN2.0的区别
- 为什么是CAN FD
- 该协议能够支持更高的速率,可以更快的刷写ECU
- 在单个数据帧内传送率可达64字节,避免了经常发生的数据分拆传输的状况
- 对汽车行业而言, CAN-FD协议显得非常重要, CAN线束和其他物理层面元件可重新再利用
- 更高的带宽,在电动车以及今后的动力CAN上应用更有优势>上层应用层架构不需要改变,在原来基础上扩展即可
- 非ISO CAN FD与ISO CAN FD不兼容
- 关于CAN FD的波特率
- SAE标准
- CIA标准
- 位时间配置建议
- 设置tqA=tqD(可减少量化误差)
- 使tqA尽可能短(可最小化量化误差)
- 选择最高可用的CAN时钟频率(例如80MHz)
- 在仲裁场和数据场中,所有节点应分别具有完全一致的采样点位置,但仲裁场和数据场的采样点位置是可以不同的
- 设置SJWA和SJWD尽可能大(可使网络更坚固)
- 当数据场的比特率为1Mbit/s或更高时,开启发送器环路延时补偿功能(TDC)
- CAN FD不再支持远程帧
- 控制场
- EDF
- 可变数据波特率格式
- BRS
- 波特率切换,隐性表示转换可变速率
- ESI
- 错误状态指示,隐性表示发送节点处于被动错误状态
- res
- 保留位
- EDF
- 为什么是CAN FD
- CAN与CAN FD网络兼容性的问题
- 通讯速率和数据长度不同的冲突
- 传统CAN节点以1Mbit/s 传输数据到CAN FD:直接通过 (CAN FD向下兼容)
- CAN FD设备以8Mbit/s传输数据到传统CAN:采用CAN FD路由器:先将传统CAN FD的速率自动降为1Mbit/s再转出去
- 传统CAN节点向 CAN FD节点传输8字节的数据:直接通过(CAN FD向下兼容)
- CAN FD节点向传统CAN节点传输64字节的数据:采用可编程CAN FD路由器:预先编程并下载到路由器,CAN FD的数据通过路由器后可以按照预先设置的程序将数据做拆包等处理再转成8字节转发出去给传统CAN设备
- 非ISO CAN FD与ISO CAN FD设备的通讯问题
- 采用Router FD可以实现两种CAN FD机制的转换
- 多个设备交叉通讯的问题,多个切换的问题,如何解决一个设备需要同时与CAN FD节点和传统CAN节点通讯的切换问题
- 未来的CAN网络,较长时间内都会存在着传统CAN与CAN FD并存的情况。部分亟需解决速率问题的节点会率先采用CAN FD技术。其他对实时要求不高的节点仍然会保存原有技术并存在着。
- 如何解决测试平台共用的问题?(如针对非通讯状态下的:疲劳测试,寿命测试,环境测试等,共用平台)
- 采用Router FD可以将同一个待测的CAN FD设备连入不同的测试平台中,最终完成各项测试任务
- 通讯速率和数据长度不同的冲突
- CAN FD与CAN2.0的区别
- CAN-FD核心技术简介
- 在保证CAN总线上非相关节点软硬件基本不动的前提下(硬件上只需更换收发器),CAN-FD是一种性价比最好的方法
- CAN FD核心技术
- 提高CAN时钟源频率的前提下依然保证误差容许范围不超过9000ppm(由CPU制造商保证)
- 自动测量隐性到显性的传播延迟时间Tloop,结合不同波特率下隐性到显性传播延迟时间的期望值,在第二采样点SSP做补偿就可以
- 当总线上所有节点都升级到CAN-FD功能后,网络波特率最大被限制2MHz。要想在5MHz范围内保证网络通信的可靠性,就要用更好的线束,收发器,而这又是一笔不小的成本
- CAN网络应用