AUTOSAR CAN通信全过程

news/2024/5/17 19:30:01/文章来源:https://blog.csdn.net/xxdw1992/article/details/133749959

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.luyixian.cn/news_show_558461.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 在window对exe、注册表、bat、系统服务操作等实例讲解

目录 前言: 1、python准备工作 具体操作实例 实例1:调用exe文件 实例2:调用bat批处理文件 实例3:调用mis安装文件 实例4: 操作注册表 实例5: window系统服务的操作 完整代码 前言&#xf…

C语言基础 C++

C语言基础 C 嘿,你想起点C基础知识,这是一个很好的开始!C是一种通用的编程语言,被广泛用于开发各种应用程序,从简单的控制台程序到复杂的桌面应用和游戏开发。现在让我带你进入C的奇妙世界,看看它有什么特…

使用 Splashtop 驾驭未来媒体和娱乐

在当今时代,数字转型不再是可选项,而是必选项。如今,媒体与娱乐业处于关键时刻,正在错综复杂的创意、技术和远程协作迷宫之中摸索前进。过去几年发生的全球事件影响了我们的日常生活,不可逆转地改变了行业的运作方式&a…

Maven 环境配置

Maven 是一个基于 Java 的工具,所以要做的第一件事情就是安装 JDK。 系统要求 项目 要求 JDK Maven 3.3 要求 JDK 1.7 或以上 Maven 3.2 要求 JDK 1.6 或以上 Maven 3.0/3.1 要求 JDK 1.5 或以上 内存 没有最低要求 磁盘 Maven 自身安装需要大约 10 MB 空间…

433/315无线接收芯片XL710,适合各种低功耗要求的设备等

XL710是一款高集成度、低功耗的单片ASK/OOK射频接收芯片。高频信号接收功能全部集成于片内以达到用最少的外围器件和最低的成本获得最可靠的接收效果。因此它是真正意义.上的“无线高频调制信号输入,数字解调信号输出”的单片接收器件。 XL710为SOP8封装&#xff0…

基于SpringBoot的音乐网站

目录 前言 一、技术栈 二、系统功能介绍 用户信息管理 歌曲分类管理 歌曲信息管理 轮播图管理 歌曲信息 歌曲评论 用户注册 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施…

SonarQube学习笔记三:直接使用sonar-scanner扫描器

目录 1.安装Sanner扫描器2.环境变量配置3.创建项目3.1 登录并创建项目3.2 输入项目名称信息3.3 选择分析仓库类型3.4 创建令牌3.5 保存令牌(非必须)3.6 选择构建技术方案3.6.1 .Net类项目3.6.2 Java类项目 3.7 获取Sonar检查结果3.8 在页面查看检查结果或…

触控笔有必要买吗?便宜好用的手写笔推荐

电容笔不仅可以用于学习上,还能用于工作上,可见它的重要性。自从苹果发布了一款适合ipad使用的电容笔之后,这款电容笔立即就火遍了整个市面,只不过由于Apple Pencil的售价太高,大部分人都买不起。于是,市面…

ThreeJS-3D教学八-OBJLoader模型加载+动画

先看效果图: 本篇给大家介绍下模型加载的知识,用到了OBJLoader对应的模型,为了增加趣味性,花了些时间,利用new THREE.Points获取到模型上的点,做了一个动画效果,其实就是操作 Y轴上的点&#x…

JavaScript 编写一个 数值转换函数 万以后简化 例如1000000 展示为 100万 万以下原来数值返回

很多时候 我们看一些系统 能够比较只能的展示过大的数值 例如 到万了 他就能展示出 多少 多少万 看着很奇妙 但实现确实非常的基础 我们只需要一个这样的函数 //数值转换函数 convertNumberToString(num) {//如果传入的数值 不是数字 且也无法转为数字 直接扔0回去if (!parse…

在asp.net中,实现类似安卓界面toast的方法(附更多弹窗样式)

目录 一、背景 二、操作方法 2.1修改前 2.2修改后 三、总结 附:参考文章: 一、背景 最近在以前的asp.net网页中,每次点击确定都弹窗,然后还要弹窗点击确认,太麻烦了,这次想升级一下,实现…

10分钟深入探讨带你彻底理解浅拷贝与深拷贝

🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 📝 个人网站 :《 江城开朗的豌豆🫛 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 📘 引言 📘 1. 深拷贝…

vue3+ts项目04-国际化

yarn add vue-i18n yarn add js-cookie yarn add types/js-cookiesrc下新建i18n文件夹,该文件夹下新建lang和pages文件夹, lang文件夹下新建en.ts // 定义内容 export default {router: {home: home,system: {system: system,menu: systemMenu,role: sy…

Pymol做B因子图

分子动力学模拟结束后,获得蛋白的平均结构, 比如获得的平均结构为WT-average.pdb 然后将平均结构导入到Pymol 中,可以得到B因子图。 gmx rmsf -f md_0_100_noPBC.xtc -s md_0_100.tpr -o rmsf-per-residue.xvg -ox average.pdb -oq bfactors…

Android App备案获取公钥、签名MD5值

1.生成签名文件 keytool -genkey -alias 别名XXX -keypass 密码XXX -keyalg RSA -keysize 2048 -validity 36500 -keystore D:\XXX.keystore -storepass 密码XXX2.查看签名MD5值 keytool -list -v -keystore D:\XXX.keystore3.查看公钥 导出证书XXX.cer keytool -export -a…

vue接入高德地图获取经纬度

&#x1f90d;step1:高德地图开放平台&#xff0c;根据指引注册成为高德开放平台开发者&#xff0c;并申请 web 平台&#xff08;JS API&#xff09;的 key 和安全密钥; &#x1f90d;step2:在html引入安全密钥&#xff08;获取经纬度用&#xff0c;不然会报错&#xff09; <…

uniapp上echarts地图钻取

1: 预期效果 通过切换地图 , 实现地图的钻取效果 2: 实现原理以及核心方法/参数 一开始是想利用更换地图数据的形式进行地图钻取 , 这就意味着我们需要准备全国30多个省份的地图数据 , 由于一开始考虑需要适配小程序端 , 如此多的地图文件增加了程序的体积 , 如果使用接口调…

spring 事务源码阅读之实现原理

开启事务 使用EnableTransactionManagement注解开启事务 该注解会引入TransactionManagementConfigurationSelector类&#xff0c;然后该类导入两个类AutoProxyRegistrar和ProxyTransactionManagementConfiguration。 1、添加bean后置处理器 AutoProxyRegistrar类的作用是注…

大数据学习(2)Hadoop-分布式资源计算hive(1)

&&大数据学习&& &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 承认自己的无知&#xff0c;乃是开启智慧的大门 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一下博>主哦&#x…

前端uniapp生成海报并保存相册

uiapp插件 目录 图片qrcode.vue源码完整版封装源码qrcodeSwiper.vue最后 图片 qrcode.vue源码完整版 <template><view class"qrcode"><div class"qrcode_swiper SourceHanSansSC-Normal"><!-- <cc-scroolCard :dataInfo"dat…