AUTOSAR ComM模块配置以及代码

2023-12-17 21:52

本文主要是介绍AUTOSAR ComM模块配置以及代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ComM模块配置以及代码执行流程

1、基本的一个通道的配置列表

在这里插入图片描述
ComMNmVariant 概念的个人理解:
FULL: 完全按照AUTOSAR NM方式进行调用
LIGHT :设置一个超时时间,在请求停止通信的时候开始计时,超时之后才会进入FULLCOM_ReadySleep状态。
NONE:设置一个超时时间,通常设置成很小的一个数,这个代码的实现我理解是ECU上电的一个时间,如果设置成10分钟,那在ECU上电初始化后的10分钟以内请求NOCOM是无效的,所以正常情况下用不到这个就不用设置那么大。

2、生成的对应的通道的代码
ComMNmVariant_en = FULL
NmLightTimeout_u32 = 200
TMinFullComModeDuration_u16 = 1
在这里插入图片描述
3、ComM_RequestComMode
在这里插入图片描述
在这个函数里面读取原来的用户的模式请求,并且存储当前的用户模式请求,如果用户模式发生了变化,就会更新成当前的请求。
在这里插入图片描述

4、ComM_Prv_UpdateUserRequest
如果是 COMM_FULL_COMMUNICATION,则RequestCounter++;
如果是COMM_NO_COMMUNICATION,则 RequestCounter–;
而且这两个要按对使用。 ,否则会报DET错误。
在这里插入图片描述
5、ComM_Prv_ChannelMainFunction
ComM对应的通道的主函数
在这里插入图片描述
初始化时

在这里插入图片描述

channelState_en = channelRamPtr_pst->ChannelState_e = COMM_NO_COM_NO_PENDING_REQUEST;

channelMode_tu8 = channelRamPtr_pst->ChannelMode_u8 = COMM_NO_COMMUNICATION ;busSmMode_tu8 = channelRamPtr_pst->BusSmMode_u8 = COMM_NO_COMMUNICATION;previousstate_en = channelState_en;

在这里插入图片描述
6、ComM_Prv_ModeHandling
第一次调用entryToMode_b = FALSE
获取当前busSM状态,如果不一致产生RequestBusSm请求,第一次时都属于NOCOM状态,不执行任何东西,第一次正常退出。
在这里插入图片描述
在这里插入图片描述
7、ComM_Prv_NoComNoPending_StateHandling
channelState_en = COMM_NO_COM_REQUEST_PENDING

在这里插入图片描述

在这里插入图片描述
8、ComM_Prv_NoComPending_StateHandling
假设已经在allow之后,channelState_en = COMM_FULL_COM_NETWORK_REQUESTED
在这里插入图片描述
9、ComM_Prv_FullComNetworkReq_StateHandling
如果ComM为FULL通道,这个时候发起网络其请求,如果时NONE,才存储当前的TMinFullComModeDuration_u16时间。
在这里插入图片描述
10、切换到FULLCOM
在这里插入图片描述
11、请求BusSm进入FullCom状态
ComM_Prv_ModeHandling
在这里插入图片描述

这篇关于AUTOSAR ComM模块配置以及代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

HTML5实现的移动端购物车自动结算功能示例代码

《HTML5实现的移动端购物车自动结算功能示例代码》本文介绍HTML5实现移动端购物车自动结算,通过WebStorage、事件监听、DOM操作等技术,确保实时更新与数据同步,优化性能及无障碍性,提升用... 目录1. 移动端购物车自动结算概述2. 数据存储与状态保存机制2.1 浏览器端的数据存储方式2.1.

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,

Nginx 重写与重定向配置方法

《Nginx重写与重定向配置方法》Nginx重写与重定向区别:重写修改路径(客户端无感知),重定向跳转新URL(客户端感知),try_files检查文件/目录存在性,return301直接返回永久重... 目录一.try_files指令二.return指令三.rewrite指令区分重写与重定向重写: 请求

Python如何去除图片干扰代码示例

《Python如何去除图片干扰代码示例》图片降噪是一个广泛应用于图像处理的技术,可以提高图像质量和相关应用的效果,:本文主要介绍Python如何去除图片干扰的相关资料,文中通过代码介绍的非常详细,... 目录一、噪声去除1. 高斯噪声(像素值正态分布扰动)2. 椒盐噪声(随机黑白像素点)3. 复杂噪声(如伪

Java Spring ApplicationEvent 代码示例解析

《JavaSpringApplicationEvent代码示例解析》本文解析了Spring事件机制,涵盖核心概念(发布-订阅/观察者模式)、代码实现(事件定义、发布、监听)及高级应用(异步处理、... 目录一、Spring 事件机制核心概念1. 事件驱动架构模型2. 核心组件二、代码示例解析1. 事件定义

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指

一文深入详解Python的secrets模块

《一文深入详解Python的secrets模块》在构建涉及用户身份认证、权限管理、加密通信等系统时,开发者最不能忽视的一个问题就是“安全性”,Python在3.6版本中引入了专门面向安全用途的secr... 目录引言一、背景与动机:为什么需要 secrets 模块?二、secrets 模块的核心功能1. 基

Redis Cluster模式配置

《RedisCluster模式配置》:本文主要介绍RedisCluster模式配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录分片 一、分片的本质与核心价值二、分片实现方案对比 ‌三、分片算法详解1. ‌范围分片(顺序分片)‌2. ‌哈希分片3. ‌虚