AUTOSAR初了解_autosar岗位很少写代码吧,2024年最新最新Golang面试合集

\4. Application的SWC设计

三、最后

说起来简单,但现实很残酷,虽然你只需要仅仅深入关注某一方面,但没有一个人给你指引入门,其实是很难学会的。

现实工作单位中有两种接受知识方式:

一种是比较稳定型的单位,比如汽车电子行业大多数企业,老员工通常不会把自己掌握的知识和技能无私传授给新进的员工,新进的员工通常需要在项目中自己积累,这种知识积累相对比较慢,通常需要好几年时间才会有些许积累。

另一种是竞争非常激烈的单位,如金融行业,企业一旦招了新员工,需要短时间类胜任工作,那么就需要把知识系统地在短时间类传授给新员工。针对汽车电子行业,就吹笙了很多专业的培训机构,聘请专业有相关的经验的专业,把相关的知识和经验在短时间类传授给学员,这样学员就可以在短时间入门,成长自己。


本文主要以普及CAN通信基本原理为目的,如有从事相关领域或者有意从事车载嵌入式开发的读友们欢迎留言探讨。

本文为「AUTOSAR CAN Communication/AUTOSAR CAN通信」的基础篇。

嵌入式攻城狮:AUTOSAR CAN Communication/AUTOSAR CAN通信10 赞同 · 3 评论文章img

本文含有关键字如下。

CAN通信应用,CAN的概要规格,CAN特征,CAN数据通信机制,CAN数据帧

CAN通信应用

CAN是Controller Area Network(控制器区域网络)的缩写,它是一种串行总线协议,旨在代替用于连接组成车载应用程序的系统和传感器的传统多线配置方法。 CAN于1986年在SAE世界代表大会上正式发布,此后于2008年被要求在美国销售的车辆上使用CAN。 在开发CAN时,请记住,车载微控制器和设备可以在不通过主机的情况下进行通信。 单线或双线网络数据总线用于组件间通信,并且最高可以达到1 Mbps的通信速度。

CAN网络由多个ECU(电子控制器单元)组成并且通过事先在ECU中写好的代码与所定义好的ECU进行互动并且实现汽车制造商所定义好的某一类功能(如汽车上的仪表盘就是通过多个ECU互动将信息反映在仪表盘上)。车辆内部CAN参考图如下。

img图1 CAN通信应用参考图

CAN的概要规格

常用到的高速CAN(HighSpeed CAN)在ISO11898-2中的定义如下。

网络配置多主竞争式(CSMA/CA方式)
通信速度MAX1Mbps
传输类型2线制
链接方式总线类型
传输方式半双工通信
同步方式Recessive→Dominant时,所有节点同步
其他特征● 系统灵活性(易于添加和删除节点) ● 错误检测/通知/恢复功能 ● 内置控制器的通用MCU,收发器数量多,开发工具丰富
适用范围用作独立系统间耦合、车辆运动控制系统等汽车核心单元的主网络

CAN特征

连接到网络的通信设备一般称为节点,但在CAN中,它是电子控制单元(ECU)。通信线路称为总线,向总线传输数据称为总线访问。

img图2 线型总拓扑概念图

ECU(电子控制器单元)是由微控制单元(Microcontroller Unit;MCU) 与收发器(Transceiver)组成。ECU使用电子控制控制器不仅控制发动机和底盘控制之类的核心,而且还控制诸如前灯,汽车音响和空调之类的电气设备,从而为汽车的电气化和自动化提供支持。

电子控制单元(ECU)一般由MCU和CAN收发器组成,CAN收发器向CAN总线或者MCU负责传输和接收CAN帧(CAN Frame),MCU则按照CAN通信协议进行进一步处理。

img图3 ECU组成概念图

CAN的特性如下所示。

1. 线型总线拓扑

连接多个节点的网络拓扑结构(对网络的形状进行建模)有环型、星型和线型,但CAN采用线型。 它具有简单的结构,可以轻松添加和删除节点以及设计网络。

img图4 CAN线型总拓扑概念图

2. 多主竞争式总线结构,其中所有电子控制单元 (ECU) 都充当主站

只要总线空闲,就可以从任何单元开始通信。

无需指定电子控制单元(ECU)即可发送,任何电子控制单元(ECU)都可以成为主站。

3. 通过 CSMA/CA 方法根据优先级访问总线

提前访问总线的单元可以获得发送权。

如果多个单元同时开始发送,则发送优先级高(ID值较小)的报文的电子控制单元(ECU)获得发送权。在CSMA/CA方式中,尽量避免在使用总线的同时从其他节点传输数据,但现实中存在多个节点同时传输数据而发生冲突的情况。CAN 具有确定其优先级的通信仲裁机制。

4. 使用差分电压传输提高抗噪性能

通过两条通信线(双绞线)产生的电压差传输数据。

CAN 使用称为 CANH / CANL 的通信线路执行传输和接收。没有电位差的信号称为隐性(Recessive)信号,其逻辑值为1。具有电位差的信号称为显性(Dominant)信号,其逻辑值0。如果通信总线上发生显性和隐性(Recessive)冲突,则显性(Dominant)优先。

由于从外部施加的噪声是相同的,因此不会产生电压差,即使产生噪声也不易受到影响。

img图5 CAN差分电压原理图

5. 错误检测和处理

所有电子控制单元(ECU)都可以检测到错误。

检测到错误的电子控制单元(ECU)立即将错误通知所有其他电子控制单元(ECU)。当发送消息的电子控制单元(ECU)检测到错误时,它会强制终止传输并重复传输,直到消息正常传输为止。

CAN数据通信机制

CAN 通信以称为帧(Frame)的单位进行。

每个祯(Frame)的作用如下所示。

  • 数据帧(Data Frame)

发送单元向接收单元发送数据的帧。

  • 远程帧(Remote Frame)

接收单元请求发送单元发送数据的帧。

  • 错误帧(Error Frame)

当在传输/接收过程中检测到某些错误时,用于通知其他单元错误的帧。

  • 超载帧(Overload Frame)

接收单元通知它未准备好接收的帧。

在CAN中,通过从需要数据的 ECU 发送远程帧并从具有该数据的 ECU 返回数据帧来建立通信。 排除数据帧中的控制位,实际可传输的最大数据量为 8 个字节(CAN FD 最多 64 个字节)。

近年来,各个ECU之间的信息交换量变得非常大,因此为了降低总线占用率,很少使用远程帧,常见的是周期性地向各个ECU传输数据帧的方法。

CAN数据帧

数据帧有两种帧格式:标准格式(Standard Format)和扩展格式(Extended Format)。

在扩展格式中,在Base ID 11bit的基础上增加了ID Extension 18bit,可以表示一个总长度为29bit的ID。

如果标准格式和扩展格式同时发送相同的ID,则标准格式优先。

  • 标准格式(Standard Format):

img图6 标准格式(Standard Format)数据帧

SOF(Start Of Frame),是一个 1 位显性区,用于通知数据帧的开始。

Arbitration Field(仲裁领域),判断帧优先级的区域。

Base ID:设置标准 ID 11 位

RTR:区分数据帧和远程帧

Control Field(控制领域),由IDE、FDF、DLC组成的区域。

IDE:区分标准格式和扩展格式

FDF:区分CAN和CAN FD的位

DLC:代表数据长度

Data Field(数据字段),储存数据的区域。

CRC Field(CRC字段),判断帧传输错误的区域。

ACK Field(确认字段),表示正常接收信号的区域。

EOF(End Of Frame),用于通知数据帧结束的区域。

  • 扩展格式(Extended Format) :

img图7 扩展格式(Extended Format)数据帧

仲裁字段和控制字段在扩展格式上不同于标准格式,其余部分与标准格式相同。

扩展格式是一种常用于公共汽车和卡车等大型车辆的CAN通信的格式。

Arbitration Field(仲裁领域),判断帧优先级的区域。

Base ID:设置标准的 11 位 ID

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Go语言工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Go语言全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Golang知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Go)
img

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Go)
[外链图片转存中…(img-qPNbENLr-1712954935055)]

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 30
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值