AUTOSAR CAN通信全过程

news2024/11/17 6:19:11

1、CAN通信概略图和基本概念介绍

应用层APPL、RTE(实时运行环境 Runtime Environment)

交互层:
IPDU multiplexer:协议数据单元复用模块
COM:COMMUNICATION 通信模块
DCM: 诊断通信管理模块(Diagnostic Communication Manager)
PDUR:Protocol Data Unit Router 协议数据单元(PDU)路由器

网络层:
CAN TP: CAN Transport Layer CAN传输层
CAN TP提供的服务包括:传输方向的数据分割、接收方向的数据重组、 数据流控制、检测分割会话中的错误、传输取消、接收取消
J1939 TP:基于J1939协议的CAN TP,J1939Tp模块实现了SAEJ1939标准中的两种数据传输方式BAM和CMDT

数据链路层:
CAN Interface:CAN 接口层(CanIf)是访问CAN总线的标准接口

物理层:
CAN Driver: CAN 驱动,可以实现对CAN控制器的初始化、发送/接收CAN报文、对接收报文的指示与对发送报文的确认、唤醒检测、溢出和错误处理等功能。
CAN Controller: CAN控制器;
CAN Transceiver Driver: CAN收发器驱动程序抽象了CAN收发器硬件。它为较高层提供了一个独立于硬件的接口。它利用MCAL层的api从ECU布局中抽象出来,访问CAN收发硬件

硬件部分:
CANTransceiver:CAN收发器,是一种硬件设备,可将CAN总线上使用的信号电平调整为微控制器识别的逻辑(数字)信号电平。此外,收发器还能够检测电气故障,例如布线问题,接地偏移或长主导信号的传输。根据与微控制器的接口,它们会标记由单个端口引脚汇总的检测到的错误或由SPI非常详细地标记出来
CAN High: CAN总线高电平;
CAN Low: CAN总线低电平;
CAN network:AUTOSAR CAN网络管理是一个独立于硬件的协议,只能在CAN上使用。其主要目的是协调网络从正常运行到总线休眠模式的过渡。

传输数据类型:
signals:信号
PDU:Protocol Data Unit 协议数据单元,PDU 由 SDU 和 PCI 组成
信号分配装置(Signal Distribution Unit) 外部控制器接口(Peripheral Component Interconnect)
I-PDU:Interaction Layer PDU,由 data、length、I-PDU ID 组成。
N-PDU:Network Layer PDU,或 I-PDU Segment,由传输协议模块使用,对 I-PDU 进行分段
L-PDU:Data Link Layer PDU,或 Large PDU,一个或多个 I-PDU 被打包成 L-PDU,L-PDU
是基于总线的,例如 CAN 总线的 L-PDU 就是 CAN 帧;
Message:报文

2、通信模块介绍


首先,从AUTOSAR架构上来说,一个完整的CAN通信的过程涉及到了包括硬件、AUTOSAR中间件和上层应用层软件;在硬件部分来说,涉及到的是CAN 总线和CAN的收发器;软件部分的话,涉及到的概念是MCAL(微控制器抽象层)、BSW(基础软件层)、RTE(实时运行环境)、APPL(应用层)等;
其中MCAL部分用到了通信驱动模块,而BSW部分使用到了通信服务模块和通信硬件抽象模块

3、CAN通信从软件到硬件过程详解


3.1、自上到下,数据的传递过程是:
应用层–>RTE–>COM–>PDUR–>CAN TP–>CAN Interface–>CAN Driver–>CAN Controller–>CAN Transceiver–>CAN BUS Line

①Com模块获取应用层的信号(Signal),经一定处理封装为IPDU(Interaction Layer Protocol Data Unit)发送到PduR模块;

②PduR根据路由协议中所指定的I-PDU目标接收模块,将接收到的I-PDU经一定处理后发送给CanIf;PduR也可以将部分I-PDU发送给CAN TP模块,处理之后再发送给CANIf;

③CanIf将信号以L-PDU(Data Link Layer Protocol Data Unit)的形式发送给CAN驱动模块;

④CAN 驱动模块将Message 报文发送给CAN controller;

⑤CAN controller 与外部硬件的CAN transceiver(CAN收发器)进行CAN 报文的收发;

⑥外部硬件CAN收发器–CAN Transceiver Hardware主要工作内容为:接收CAN bus上的网络信息(通常叫做CAN Frame)相关的信号并将其转化为逻辑信号转发给CAN Controller,接收从CAN Controller传输过来的逻辑电平信息并将其转化为信号电平传从到CAN bus上。CAN Transceiver有两条线,一条连CAN总线的高电平,一条低电平;

解释:CAN接口模块(Can If)位于底层CAN驱动(Can Drv)、CAN收发器(Can Trcv)和上层通信服务层(CanSm、CanNm)、CAN传输协议(CanTp/Transport Layer)、PDU路由器(PduR)
CAN状态管理器(CAN State Manager,CanSM) Can网络管理(CAN Network Manager,CanNM)


3.2、一些补充


CAN transceiver部分通过拉脚,部分通过SPI来控制CAN收发器;
简单的判断方法是:脚多的使用SPI控制,传输模式命令。脚少的使用一根线来控制模式;
CAN transceiver driver 可以走SPI发送控制数据,但一般还是用CAN控制器和CAN收发器来通信的,不要搞不清主次!;如果芯片支持,SPI可以配置成DMA模式,使用DMA来搬运数据;
收发器和控制器可以一对多,具体的情况有待研究;

CAN Transceiver

Can Transceiver Hardware主要功能

 CAN收发器(CAN Transceiver Hardware)是一种硬件设备,可将CAN总线上使用的信号电平调整为微控制器识别的逻辑(数字)信号电平。此外,收发器还能够检测电气故障,例如布线问题,接地偏移或长主导信号的传输。根据与微控制器的接口,它们会标记由单个端口引脚汇总的检测到的错误或由SPI非常详细地标记出来。

在汽车环境中,主要使用三种不同的CAN总线物理方法。它们是用于高速CAN(最高1Mbits / s)的ISO11898,用于低速CAN(最高125Kbits / s)的ISO11519和用于单线CAN的SAE J2411(AUTOSAR不支持此方法)。

  CAN Transceiver Hardware在汽车环境中连接在控制器区域网络(Controller Area Network,简称CAN bus)上。控制器区域网络(Controller Area Network,简称CAN bus)特点是允许网络上的多个微控制器或设备直接互相通讯,网络上不需要主机(Host)控制通信,并且提供高安全等级及有效率的即时控制。更具备了侦错和优先权判别的机制,网络信息的传输变的更为可靠而有效率。

  CAN Transceiver Hardware主要工作内容为,接收CAN bus上的网络信息(通常叫做CAN Frame)相关的信号电平并将其转化为逻辑信息电平转发给CAN Controller,接收从CAN Controller传输过来的逻辑电平信息并将其转化为信号电平传从到CAN bus上。

CAN 网络拓扑如图

汽车环境中连接在控制器区域网络(Controller Area Network,简称CAN bus)上的CAN Transceiver Hardware拥有以下三种Mode(模式):

  NORMAL MODE:完整的CAN bus总线通信。 CAN Transceiver Hardware处于可接收,传送CAN bus上的网络信息状态。

  STANDBY MODE:无法进行通讯。CAN Transceiver Hardware处于无法接收传送CAN bus上的网络信息状态。是NORMAL MODE过渡到SLEEP MODE的中间模式。可通过CAN bus总线唤醒网络信息(通常称为Wakeup Event)或本地本地唤醒事件唤醒,将模式转换到NORMAL MODE。

  SLEEP MODE:无法进行通讯。CAN Transceiver Hardware处于无法接收传送CAN bus上的网络信息状态,与STANDBY MODE相比电源损耗更低。可通过CAN bus总线唤醒网络信息(通常称为Wakeup Event)或本地本地唤醒事件唤醒,将模式转换到NORMAL MODE。

  CAN transceiver Hardware唤醒类型分为以下三种:

  Scenario 1:

●MCU未上电。

●包括CAN收发器硬件在内的ECU部件均已通电。

●所考虑的CAN收发器处于休眠模式。

●CAN收发器硬件检测到CAN总线上的唤醒事件。

●CAN收发器硬件导致MCU上电。

   Scenario2:

●MCU处于低功耗模式。

●包括CAN收发器硬件在内的ECU部件均已通电。

●所考虑的CAN收发器处于待机模式。

●CAN收发器硬件检测到CAN总线上的唤醒事件。

●CAN收发器硬件引发SW中断以进行唤醒。

   Scenario3:

●MCU处于全功率模式。

●ECU的至少一部分,包括CAN收发器硬件,都已通电。

●所考虑的CAN收发器处于待机模式。

●CAN唤醒事件由CAN收发器硬件检测到。

●CAN收发器硬件会引发SW中断以进行唤醒,或者会定期轮询以了解唤醒事件。

Can Trcv主要功能

   CAN Trcv属于,AUTOSAR架构图中的ECU Abstraction Layer(ECU抽象层)子模块组的Communication Hardware Abstraction(通信硬件抽象)。

   ECU Abstraction Layer(ECU抽象层)所在位置如下:

CAN Trcv模块主要用于接收/传送CAN Transceiver Hardware逻辑(数字)信号电平,根据ECU以及CAN 网络信息的需要变更CAN Transceiver Hardware模式。

   CAN Trcv模块必须为配置的每个收发器单独实现以下所示的相位图。

从“正常”切换到“睡眠”时,通常称为“进入睡眠”的模式是一种临时模式。 驱动程序将这种临时模式封装在CAN收发器驱动程序软件状态之一内。 此外,CAN收发器驱动程序首先从“正常”切换到“待机”,然后再从“待机”切换到“睡眠”。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1077033.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多项目并行管理:优化协调策略提高效率

多项目同时进行已然是大部分项目管理者面临的现状了。相比于单项目管理,多项目管理可能会出现项目资源分配不均,项目进度监控难以及沟通协作复杂等问题。 可以通过一款灵活高效得项目管理工具,来帮助您进行多项目管理,比如 Zoho …

SSL证书如何提升网站的安全性和信任度

在今天的数字时代,随着网络攻击的日益增多,确保网站和用户数据的安全变得至关重要。SSL(Secure Sockets Layer)证书是一个有效的安全解决方案,可以为您的网站提供加密通信通道,并提升其安全性和信任度。下面…

南昌新颜|AIGC艺术之光,历史的魅力与未来的探索

在这个本来稀松平常的周一,我们坐在电脑前,回顾着刚刚过去的两天,仿佛经历了“反方向的钟”。前两天的上班日子,究竟是周几呢?答案不再是简单的星期几,而是“周负二”和“周负一”。因为,我们把…

三、WebGPU Uniforms

三、WebGPU Uniforms Uniform有点像着色器的全局变量。你可以在执行着色器之前设置它们的值,着色器的每次迭代都会有这些值。你可以在下一次请求GPU执行着色器时将它们设置为其他值。我们将再次从第一篇文章中的三角形示例开始,并对其进行修改以使用一些…

Go 字符串操作实战

1. 引言 在现代编程中,字符串处理是不可或缺的一部分。无论是简单的用户界面,还是复杂的数据处理,字符串都扮演着关键的角色。Go语言,作为一个现代的、性能优越的编程语言,为字符串处理提供了一系列强大的工具和功能。…

通过后台系统添加一段div,在div中写一个<style></style>标签来修改div外面的元素的深层元素的样式

先看图 btn元素就是通过后台系统加上的元素,现在需要通过在btn里面写一个style标签来修改grid-nine里面的head元素的高度.开始想通过style来修改,但是不知道怎么去获取这个div外面的元素,想通过js方法去修改,写了script标签加了js代码,但不生效,后面问了才知道,这个项目是vue打…

深度学习笔记之优化算法(六)RMSprop算法的简单认识

深度学习笔记之优化算法——RMSProp算法的简单认识 引言回顾:AdaGrad算法AdaGrad算法与动量法的优化方式区别AdaGrad算法的缺陷 RMProp算法关于AdaGrad问题的优化方式RMSProp的算法过程描述 RMSProp示例代码 引言 上一节对 AdaGrad \text{AdaGrad} AdaGrad算法进行…

重载和重写的区别

方法重载: (1)在同一个类中 (2)方法名必须相同 (3)形参列表必须不同(形参类型或个数或顺序,至少有一样不同,参数名无要求) (4&…

基于SpringBoot的校园社团信息管理系统

目录 前言 一、技术栈 二、系统功能介绍 学生管理 社长管理 社团信息管理 社团新闻管理 社团添加 社团活动 加入社团 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术…

Linux---进程(1)

操作系统 传统的计算机系统资源分为硬件资源和软件资源。硬件资源包括中央处理器,存储器,输入设备,输出设备等物理设备;软件资源是以文件形式保存在存储器上的成熟和数据等信息。 操作系统就是计算机系统资源的管理者。 如果你的计…

GEO生信数据挖掘(七)差异基因分析

上节,我们使用结核病基因数据,做了一个数据预处理的实操案例。例子中结核类型,包括结核,潜隐进展,对照和潜隐,四个类别。本节延续上个数据,进行了差异分析。 差异分析 计算差异指标step12 加载…

销售小白如何写客户拜访记录?

销售小白如何写客户拜访记录?10年客户管理经验,接下来我说的,都是实实在在的经验,小白能用到其中的40%,你的客户成单率会大大提升! 首先,客户拜访记录的哪些信息是重要的? 答案是&…

【ccf-csp题解】第7次csp认证-第二题-俄罗斯方块-简单碰撞检测算法

题目描述 思路讲解 本题的主要思路是实现一个draw函数,这个函数可以绘制每一个状态的画布。然后从第一个状态往后遍历,当绘制到某一个状态发生碰撞时,答案就是上一个状态的画布。 此处的状态x实际就是在原来的15*10画布上的第x行开始画我们…

深度优先搜索详解

目录 前言 一、工作原理 二、模板 函数模板: 准备工作 三、主要应用 (一)寻找全部路径 题目描述 输入格式 输出格式 样例输入 样例输出 参考代码 思路 原题链接:1213: 走迷宫 (二)统计连通块…

哪款洗地机更好用?2023年最好用的洗地机

随着科技的发展和生活质量的提高,人们对洗地机的关注也越来越频繁,但是市场上洗地机品牌众多,消费者在选择时常常会感到困惑。那么,究竟哪个品牌的洗地机更好用呢? 我们在购买洗地机的时候,都要关注洗地机的哪些方面…

如何下载IEEE Journal/Conference/Magazine的LaTeX/Word模板

当你准备撰写一篇学术论文或会议论文时,使用IEEE(电气和电子工程师协会)的LaTeX或Word模板是一种非常有效的方式,它可以帮助你确保你的文稿符合IEEE出版的要求。无论你是一名研究生生或一名资深学者,本教程将向你介绍如…

深度学习问答题(更新中)

1. 各个激活函数的优缺点? 2. 为什么ReLU常用于神经网络的激活函数? 在前向传播和反向传播过程中,ReLU相比于Sigmoid等激活函数计算量小;避免梯度消失问题。对于深层网络,Sigmoid函数反向传播时,很容易就…

读懂MCU产品选型表

读懂MCU产品选型表 产品状态 MP:Mass Production(大规模生产) - 这表示产品已经进入了大规模生产阶段,可以大量生产并提供给市场。UD:Under Development(开发中) - 这表示产品目前正在开发阶段…

嵌入式音频软件开发之协议时序图分析方法

是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?加我微信hezkz17, 本群提供音频技术答疑服务 1 TCP/IP 三次握手协议-时序图 序列号是随机数,但是对方回应则是序列号1 ,同步1使能,ACK1使能该功能 2 iAP2 授权交互时序…

如何优化敏捷需求管理流程,敏捷需求如何管理。

优化敏捷需求管理流程的方法可以参照如下: 明确需求 。在项目开始时,要确保清楚地理解客户需求,明确项目的目标和范围,以便能够在敏捷迭代中快速响应需求变更。 使用用户故事 。采用用户故事的方式,让客户和开发团队…