首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

《AUTOSAR谱系分解(ETAS工具链)》之ComM

  • 23-11-14 08:42
  • 3170
  • 5451
blog.csdn.net

《AUTOSAR谱系分解(ETAS工具链)》之ComM

文章目录

  • 《AUTOSAR谱系分解(ETAS工具链)》之ComM
    • 1. ComM简介
    • 2. 和其他模块的依赖关系
    • 3. ComM通道状态机
    • 4. ComM状态请求
    • 5. ComM中的PNC
    • 《AUTOSAR谱系分解(ETAS工具链)》之总目录

1. ComM简介

通信管理模块(COM Manager, 下称ComM),是AUTOSAR BSW中的一个模块。

作为资源管理者,ComM封装了下层的通信服务。ComM收集来自通信请求方(AUTOSAR中称之为User)的总线通信访问请求,然后来协调这些请求。

ComM模块的目的主要有:

  • 简化用户对于总线通信协议栈的使用方式,包括简化后的网络管理处理。用户(即User,后文默认这两种说法代表同一个含义)不需要知道任何硬件细节,例如应当使用哪个channel。对于用户来说,只需要请求“通信模式”,ComM模块会切换对应的通信channel的开启或关闭。

  • 提供API以禁用信号的发送功能,防止(主动)唤醒总线上其他ECU。

  • 每一路channel都有各自的状态机,ComM可以控制多个channel,将请求的通信模式给到CanSM, EthSM等,由她们来控制对应总线的状态。

  • 提供API以强制让ECU进入No Communication的状态

  • 为请求的通信模式分配足够的资源,来简化资源管理。在用户请求Full Communication模式时,判断是否允许通信,或者在通信状态下防止ECU进入shutdown的状态。

  • 另外,PNC扩展,也即“部分网络管理”,允许用户请求并将某一网络上被分到同一个逻辑分组的ECU保持唤醒状态,PNC gateway允许将不同物理总线和网络进行逻辑上的区分。

2. 和其他模块的依赖关系

在这里插入图片描述

每个模块和ComM的主要交互功能如下:
RTE:每个用户都可以请求通信模式。RTE传播用户向通信模块发出请求,并将来自ComM的通知告诉APP。
EcuM:负责验证唤醒事件,然后发送指示到ComM,ComM切换到COM模式。ECU通讯的允许和关闭是由EcuM和BswM一起完成。
BswM:配置Com相关的Action和Rules,从而控制相关的通信,同时通信状态的改变也会报告给BswM,在EcuM Flex下,BswM也会将Com允许通信的功能告
诉ComM。
NvM:负责处理与ComM相关的Nv Data操作。
xxxSM:包括了具体的通信媒介的状态管理,如CanSM、LINSM、EthSM、FrSM等,控制实际的总线状态,ComM请求xxxSM进行相关的状态转换,并传递
到总线上。
NM:同步整个Ecu总线的开关。DCM:执行和诊断相关的ComM请求。
Com:通过Com信号区分PNC的状态信息。
DET:用于在开发中追溯ComM开发相关的错误。

3. ComM通道状态机

ComM通道状态机包含三种:

  • COMM_NO_COMMUNICATION
  • COMM_SILENT_COMMUNICATION
  • COMM_FULL_COMMUNICATION

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4. ComM状态请求

ComM_RequestComMode进行CAN状态的切换:

            /*under voltage(<=6.5v) is checked*/
            if(IoHwAb_ADC_GetBufferedValue(M_VBAT_P_F_AI) <= 6.5)
            {
                can_underst_counter++;
                /*<=6.5v keeps 500ms*/
                if(can_underst_counter>=50)
                {
                    PwrM.PwrM_data->CAN_VoltSt = CeVBATT_UNDER_VOLTAGE;
                    can_underst_counter = 0;
                    /*disable CAN communication*/
					ComM_RequestComMode(ComMConf_ComMChannel_ComMChannel_Can_Network_0_Channel, COMM_NO_COMMUNICATION);
					ComM_RequestComMode(ComMConf_ComMChannel_ComMChannel_Can_Network_FMR_Channel, COMM_NO_COMMUNICATION);
					ComM_RequestComMode(ComMConf_ComMChannel_ComMChannel_Can_Network_SLR_Channel, COMM_NO_COMMUNICATION);
					ComM_RequestComMode(ComMConf_ComMChannel_ComMChannel_Can_Network_SRF_Channel, COMM_NO_COMMUNICATION);
					ComM_RequestComMode(ComMConf_ComMChannel_ComMChannel_Eth_Network_0_Channel, COMM_NO_COMMUNICATION);
                }
            }
            /*over voltage(>=18.5) is checked*/
            else if(IoHwAb_ADC_GetBufferedValue(M_VBAT_P_F_AI) >= 18.5)
            {
                can_overst_counter++;
                /*>=18.5v keeps 500ms*/
                if(can_overst_counter>=50)
                {
                    PwrM.PwrM_data->CAN_VoltSt = CeVBATT_OVER_VOLTAGE;
                    can_overst_counter = 0;
                    /*disable CAN communication*/
                    ComM_RequestComMode(ComMConf_ComMChannel_ComMChannel_Can_Network_0_Channel, COMM_NO_COMMUNICATION);
					ComM_RequestComMode(ComMConf_ComMChannel_ComMChannel_Can_Network_FMR_Channel, COMM_NO_COMMUNICATION);
					ComM_RequestComMode(ComMConf_ComMChannel_ComMChannel_Can_Network_SLR_Channel, COMM_NO_COMMUNICATION);
					ComM_RequestComMode(ComMConf_ComMChannel_ComMChannel_Can_Network_SRF_Channel, COMM_NO_COMMUNICATION);
					ComM_RequestComMode(ComMConf_ComMChannel_ComMChannel_Eth_Network_0_Channel, COMM_NO_COMMUNICATION);
                }
            }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

CanSM状态进入到CanSM_CommFullCommunication状态时,会调用ComM_BusSM_ModeIndication()进行通知。

5. ComM中的PNC

ComM主要是对通信协议栈进行服务控制的模块,在通信网络中和通信控制密切相关的功能主要会结合网络管理进行控制和使用,ComM模块对网络管理中每
一个PNC(partial network cluster)实现了一个状态控制,能够请求和释放一个PNC的网络通信进行通信的控制。
在CAN和FR通信模式下,ComM的User会根据需要在主动唤醒模式下将NM报文中的UserData中对应的Bit设置为1,如果不请求特定的PNC,那么将该Bit设置
为0,同时xxxNM模块会将对应的Bit通过COM中信号传递到ComM模块。每个PNC的状态切换如下所示:

在这里插入图片描述

《AUTOSAR谱系分解(ETAS工具链)》之总目录

《AUTOSAR谱系分解(ETAS工具链)》之总目录

注:本文转载自blog.csdn.net的PlutoZuo的文章"https://blog.csdn.net/PlutoZuo/article/details/132766472"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top