2024总结 - AUTOSAR CAN通讯开发2

文摘   2024-12-25 07:10   上海  
回顾即将过去的2024年,我竟然经历了除电子电气架构外,CAN通讯不同层级的工作。作为动力域通讯FO,对接EEA和各功能FO,负责CAN矩阵和网络管理;作为软件接口,对接系统确认CAN通讯需求,对接软件开发处理CAN通讯bug,也亲自做了很多CAN通讯的测试。所以回顾2024年分享的CAN通讯方面的内容,是多元的,也是接地气的。

首先要感谢为此提供弹药的朋友和同行,比如一片绿叶,嵌软小白呗,@汽车电控知识,@汽车基础与软件,@汽车电子与软件,@汽车电子嵌入式 ,@小昭debug,@嵌入式老林,@汽车电控研习室和@底层人的MCU底层开发等等。

下面就从汽车研发的几个层面来了解CAN通讯。
1 发展趋势
近几年CAN XL出现的频率越来越高,CAN XL是什么,CAN通讯的进一步升级,更高的传输速率,可以达到20 Mbit/s,更大的数据载荷,可达2048 字节等。当然现在的实际应用还是CAN/CAN FD,以此为基础,构建起了整车电子电气架构的通讯主干网络。

围绕电子电器架构所使用到的通讯总线,除了CAN通讯,也有分享Lin和以太网,如下所列。这样既可以更好地理解CAN通讯,还能了解其他通讯类型,尤其是以太网。

对CAN通讯有了一定的了解之后,那么可以从汽车研发视角的不同层级来了解CAN通讯的应用,以功能开发为起点,到ECU系统开发,最后到ECU软硬件开发。

2 功能层面

在功能层面,CAN通讯的发起点是功能,因功能控制需求而产生了控制器之间需要进行信号交互,为了保证信号传输的准确,实时和有序,使用CAN通讯矩阵或DBC来准确定义,最终以此为最终的交付物,向下传递,包括开发和测试等。基于这个逻辑,结合自身工作的认识和积累,因此输出了下列文章:

从技术角度来说,在功能层面,仅针对CAN通讯,已经比较够用了,如果你对此还想深入了解,那么需要花时间去研读自己公司在这方面的企标规范。

3 系统层面

在功能层面做好了CAN通讯方面的工作,就会往下传递到各个控制器,通常会输入给ECU系统,在系统层面,CAN通讯涉及的工作有:

第一,CAN通讯的实现方案,从CAN收发器到微控制器MCU。通常供应商都是基于已有的Base来适应来自OEM的需求,目前大多数公司都是由硬件来设计方案。


第二,CAN通讯需求解析,需要ECU系统工程师对CAN通讯的掌握程度较高,这样才能理解需求本身,以及合理分配给与需求相关的软硬件方。

基于这样的思考,分享下列文章,以此了解在ECU系统层面针对CAN通讯,需要了解什么,需要做什么,为什么要这样做。
总的来说,对于去澄清明确CAN通讯矩阵或DBC文件中的信号定义,是一个长期且重要的事情。因为从ECU角度,对于CAN通讯的测试验证与整车环境的测试验证存在一些差异,这使得很多时候需要在整车测试才会暴露一些问题,在ECU供应商的验证环节存在一些无法避免的缺失,这时需求需要再次讨论和明确。
4 软件层面

在软件层面,个人理解可以分为三个方面:

一是CAN通讯基础从源头了解你所需要控制的对象,以此可以建立CAN帧与软件各部分的联系,清楚自己在软件开发过程中自己在做什么。

二是基于AUTOSAR的CAN通讯对于基于CAN的通讯,诊断和标定,一条报文的接收或发送过程,它的控制流和数据流分别是怎样的。

source: Vector E-learning

三是基于AUTOSAR工具链的CAN配置,根据已有的AUTOSAR工具,怎么去配置CAN相关模块,以此实现预期的CAN通讯功能。

因此基于这样的背景,分享了很多CAN通讯方面的内容。对于CAN通讯实现,这里强调的都是基于AUTOSAR架构,因为现在做底层软件开发,主流都是AUTOSAR工具链开发。

当然CAN通讯不仅仅只是ECU底层软件的活,其最终目的地是ECU应用层软件,那么在ECU应用层软件需要对CAN通讯做什么,比如可能需要将报文数据解包和打包,以及可以进行ID检验、Timeout,Checksum校验和Counter检验等等。
以上就是关于CAN通讯在软件方面的内容,这块内容很庞大,2025年保持继续输出。
5 应用层面

CAN通讯应用的链路很长,从整车功能开发到ECU软件实现,从主机厂到供应商,每个环节不仅仅涉及开发,还涉及大量的测试验证,因此在这个层面接触到CAN通讯的人员众多,也许很多人只是需要接好总线,打开CAN采集设备录报文。但只要涉及到了就有可能会碰到问题,因此以实际与理论相结合角度,2024年开始输出了一些基础且实用的应用场景分析,使得大家能够明白你在做什么,为什么要这样做。


落地实践

到此不难发现,针对汽车研发环节所涉及到的CAN通讯都有分享,而且深度不浅,但是有一个唯一的缺憾:纸上得来终觉浅,觉知此事要躬行。我们是否有机会可以自己上手测一测,或者亲自开发一个Demo。

带着这样的一个想法,与朋友共同开发一款软硬件产品:

一整套 软件+硬件+工具+工程+环境+文档 = UDS + 开发学习


    • Stlink 调试器 一个 (二次开发的小伙伴可以 直接二次开发使用)
    • CAN盒一个 (带有隔离功能,可以项目使用,兼容TsMaster上位机)
    • stm32f1系列开发板一个 ( 带有CAN, LED, KEY, UART 外设),可以学习,开发自己想要的功能
    • 文档 若干( 出自真实有经验的工程师 )
    • 视频 若干(出自真实有经验的工程师)
    • 终端电子 一个 ( 直接使用)
    • CAN 测试工程 (实战工程) 基于同星上位机
    • 代码开发工程 (开发板工程)基于keil上位机 
       

若有需要,直接加wx联系~



创作不易,欢迎点赞再看收藏关注



汽车研发交流群,有兴趣的朋友请添加群主:prOmiseyes,备注:公司+职务入群。仅限汽车从业人员。

谦益行
分享汽车研发日常,助力你我共同成长。
 最新文章