AUTOSAR CP--chapter7从CAN网络学习Autosar通信

2024-02-20 23:52

本文主要是介绍AUTOSAR CP--chapter7从CAN网络学习Autosar通信,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

从CAN网络学习Autosar通信

  • 前言
  • 缩写词
  • CAN通信在AUTOSAR架构中的传输
  • 上位机配置

第六章总结:学习了如何使用工具的自动配置功能,位我们生成系统描述中部分ecu的BSW模块配置,但是自动配置的功能虽然为我们提供了极大的便利,我们仍然需要学会如何去自己建立BSW中关于通信的配置。

前言

有关通信部分的BSW配置,因为日后工作中,有一部分功能需要我们灵活地进行组织,相关的功能模块才能够去实现,所以后面的几个章节,为大家详细介绍,如何手工对这部分功能进行配置,进一步的帮助大家去理解,autosar标准是如何实现网络通信的以及它的配置逻辑是什么,如何帮助我们建立更为直观的网络配置流程。

缩写词

在这里插入图片描述
更多缩写词参考《AUTOSAR_CP_SWS_CANInterface》中的第二章节Acronyms and Abbreviations

CAN通信在AUTOSAR架构中的传输

can模块完成can通信收发过程,封装和解析。
首先是com层CAN Driver模块也是BSW的底层,canif,那么BSW层可能会用到PDUR和com模块,也经过RTE层,最终到达我们的ASW层的应用层SWC中去。
在这里插入图片描述
autosar中CAN通信通过不同L-PDU并且使用了PDU Rounter把这些功能模块通过I-PDU连接在一起,那么才能构建一个完整的can收发的过程。

autosar进行can收发的一个流程以及数据传递的方式。
首先为信号(可以理解装载的数据有效值,不只一个信号,将多个信号封装成一个报文)进行封装,完成封装功能的是com模块(接收和发送的处理),要知晓信号的位置和信号的排列方式(摩托罗拉或Inter)。

com模块把上层RTE层传来的信号装到PDU中,然后去触发发送。
组成:CanIf模块由CAN 硬件独立任务组成,属于相应ECU的CAN通信设备驱动。这些功能执行一次,为了基础CAN设备驱动仅专注于对相应的特定CAN硬件设备的访问和控制。
功能:CanIf主要实现PDUR和上层AUTOSAR协议栈的通信模块的控制流和数据流的请求,比如:发送请求处理、传输信息、接收标志、错误通知、CAN控制器的开始和结束,从而唤醒和参与网络中。
实现:CanIf主要负责将BSW层处理的PDU转换成LPDU后,通过CAN控制器,通过发送mail将PDU发送到CAN线上;也负责将CAN总线上的CAN消息转换成LPDU,然后再转换成PDU回馈到BSW层。主要功能便是完成众多的PDU与CAN mail之间的映射,需要配置HOH以及buffer以及它与CAN控制器之间的映射关系。

首先看一下CANif整个模块它的结构
第一个配置文件夹主要配置的是与CAN控制器相关的部分,

不同报文的数据传输通道不一样。
autosar 通信基本模块:初始化通道,收发设置,busoff设置。

上位机配置

手动配置的思路:第一步我们需要认识到autosar标准组建一个功能,是需要通过不同的模块来协作完成的,这些模块之间能通过pdu来相互传递数据和共用配合去完成一个功能,所以我们在进行can通信配置时,我们首先需要明确与can通信相关需要哪些模块特别是BSW层的模块,第二步我们需要分析完成CAN通信的配置,需要几个IPDU来连接这三个主要的模块,以发送为例:首先我们需要一个com的PDUR的IPU,第二个我们需要一个pdur到CANif的IPDU,这就意味着我们完成一个信号的发送。需要建立com到pdur,pdur到canif这两个IPDU,接下来我们进行具体的配置
建立CAN接收或发送的过程

这篇关于AUTOSAR CP--chapter7从CAN网络学习Autosar通信的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/729952

相关文章

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

RabbitMQ工作模式中的RPC通信模式详解

《RabbitMQ工作模式中的RPC通信模式详解》在RabbitMQ中,RPC模式通过消息队列实现远程调用功能,这篇文章给大家介绍RabbitMQ工作模式之RPC通信模式,感兴趣的朋友一起看看吧... 目录RPC通信模式概述工作流程代码案例引入依赖常量类编写客户端代码编写服务端代码RPC通信模式概述在R

在Spring Boot中实现HTTPS加密通信及常见问题排查

《在SpringBoot中实现HTTPS加密通信及常见问题排查》HTTPS是HTTP的安全版本,通过SSL/TLS协议为通讯提供加密、身份验证和数据完整性保护,下面通过本文给大家介绍在SpringB... 目录一、HTTPS核心原理1.加密流程概述2.加密技术组合二、证书体系详解1、证书类型对比2. 证书获

Linux网络配置之网桥和虚拟网络的配置指南

《Linux网络配置之网桥和虚拟网络的配置指南》这篇文章主要为大家详细介绍了Linux中配置网桥和虚拟网络的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、网桥的配置在linux系统中配置一个新的网桥主要涉及以下几个步骤:1.为yum仓库做准备,安装组件epel-re

Python模拟串口通信的示例详解

《Python模拟串口通信的示例详解》pySerial是Python中用于操作串口的第三方模块,它支持Windows、Linux、OSX、BSD等多个平台,下面我们就来看看Python如何使用pySe... 目录1.win 下载虚www.chinasem.cn拟串口2、确定串口号3、配置串口4、串口通信示例5

python如何下载网络文件到本地指定文件夹

《python如何下载网络文件到本地指定文件夹》这篇文章主要为大家详细介绍了python如何实现下载网络文件到本地指定文件夹,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下...  在python中下载文件到本地指定文件夹可以通过以下步骤实现,使用requests库处理HTTP请求,并结合o

基于C#实现MQTT通信实战

《基于C#实现MQTT通信实战》MQTT消息队列遥测传输,在物联网领域应用的很广泛,它是基于Publish/Subscribe模式,具有简单易用,支持QoS,传输效率高的特点,下面我们就来看看C#实现... 目录1、连接主机2、订阅消息3、发布消息MQTT(Message Queueing Telemetr

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

Linux高并发场景下的网络参数调优实战指南

《Linux高并发场景下的网络参数调优实战指南》在高并发网络服务场景中,Linux内核的默认网络参数往往无法满足需求,导致性能瓶颈、连接超时甚至服务崩溃,本文基于真实案例分析,从参数解读、问题诊断到优... 目录一、问题背景:当并发连接遇上性能瓶颈1.1 案例环境1.2 初始参数分析二、深度诊断:连接状态与