首先要感谢为此提供弹药的朋友和同行,比如一片绿叶,嵌软小白呗,@汽车电控知识,@汽车基础与软件,@汽车电子与软件,@汽车电子嵌入式 ,@小昭debug,@嵌入式老林,@汽车电控研习室和@底层人的MCU底层开发等等。
围绕电子电器架构所使用到的通讯总线,除了CAN通讯,也有分享Lin和以太网,如下所列。这样既可以更好地理解CAN通讯,还能了解其他通讯类型,尤其是以太网。
对CAN通讯有了一定的了解之后,那么可以从汽车研发视角的不同层级来了解CAN通讯的应用,以功能开发为起点,到ECU系统开发,最后到ECU软硬件开发。
2 功能层面
在功能层面,CAN通讯的发起点是功能,因功能控制需求而产生了控制器之间需要进行信号交互,为了保证信号传输的准确,实时和有序,使用CAN通讯矩阵或DBC来准确定义,最终以此为最终的交付物,向下传递,包括开发和测试等。基于这个逻辑,结合自身工作的认识和积累,因此输出了下列文章:
一文了解CAN矩阵与DBC文件 (qq.com) CAN矩阵和DBC里有哪些隐藏信息?(qq.com) 你知道CAN报文的发送类型有哪些吗?(qq.com) 一文了解CAN DBC文件 (qq.com) CAN通讯系列21- 很有价值的网络管理小结 (qq.com)
3 系统层面
第一,CAN通讯的实现方案,从CAN收发器到微控制器MCU。通常供应商都是基于已有的Base来适应来自OEM的需求,目前大多数公司都是由硬件来设计方案。
第二,CAN通讯需求解析,需要ECU系统工程师对CAN通讯的掌握程度较高,这样才能理解需求本身,以及合理分配给与需求相关的软硬件方。
汽车ECU系统层级的CAN通讯解析 (qq.com) CAN报文的最佳CP:Checksum&Counter (qq.com) 一文俩了解CAN的诊断帧与通信帧的区别 (qq.com) CAN通讯系列28- 我们能用CAN报文做什么?(qq.com)
在软件层面,个人理解可以分为三个方面:
一是CAN通讯基础,从源头了解你所需要控制的对象,以此可以建立CAN帧与软件各部分的联系,清楚自己在软件开发过程中自己在做什么。
二是基于AUTOSAR的CAN通讯,对于基于CAN的通讯,诊断和标定,一条报文的接收或发送过程,它的控制流和数据流分别是怎样的。
source: Vector E-learning
三是基于AUTOSAR工具链的CAN配置,根据已有的AUTOSAR工具,怎么去配置CAN相关模块,以此实现预期的CAN通讯功能。
因此基于这样的背景,分享了很多CAN通讯方面的内容。对于CAN通讯实现,这里强调的都是基于AUTOSAR架构,因为现在做底层软件开发,主流都是AUTOSAR工具链开发。
CAN通讯应用的链路很长,从整车功能开发到ECU软件实现,从主机厂到供应商,每个环节不仅仅涉及开发,还涉及大量的测试验证,因此在这个层面接触到CAN通讯的人员众多,也许很多人只是需要接好总线,打开CAN采集设备录报文。但只要涉及到了就有可能会碰到问题,因此以实际与理论相结合角度,2024年开始输出了一些基础且实用的应用场景分析,使得大家能够明白你在做什么,为什么要这样做。
到此不难发现,针对汽车研发环节所涉及到的CAN通讯都有分享,而且深度不浅,但是有一个唯一的缺憾:纸上得来终觉浅,觉知此事要躬行。我们是否有机会可以自己上手测一测,或者亲自开发一个Demo。
带着这样的一个想法,与朋友共同开发一款软硬件产品:
Stlink 调试器 一个 (二次开发的小伙伴可以 直接二次开发使用) CAN盒一个 (带有隔离功能,可以项目使用,兼容TsMaster上位机) stm32f1系列开发板一个 ( 带有CAN, LED, KEY, UART 外设),可以学习,开发自己想要的功能 文档 若干( 出自真实有经验的工程师 ) 视频 若干(出自真实有经验的工程师) 终端电子 一个 ( 直接使用) CAN 测试工程 (实战工程) 基于同星上位机 代码开发工程 (开发板工程)基于keil上位机
若有需要,直接加wx联系~
创作不易,欢迎点赞再看收藏关注!
汽车研发交流群,有兴趣的朋友请添加群主:prOmiseyes,备注:公司+职务入群。仅限汽车从业人员。