• 530查看
  • 0回复

[Autosar] CAN通讯系列26- AUTOSAR架构的COM模块

[复制链接]


该用户从未签到

发表于 20-1-2024 11:33:58 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


COM模块来源于ISO17356-4,若要深入理解COM模块,可以去参考ISO17356 part1-6。


CAN通讯系列26- AUTOSAR架构的COM模块w1.jpg

CAN通讯系列26- AUTOSAR架构的COM模块w2.jpg

1 COM

1.1 接收操作

PduR模块向上路由接收通知,将COM的调用Com_RxIndication函数,其调用逻辑下图1。   

CAN通讯系列26- AUTOSAR架构的COM模块w3.jpg
图1 接收通知逻辑,引自[1]Com_RxIndication函数定义如下:
CAN通讯系列26- AUTOSAR架构的COM模块w4.jpg

图2 Com_RxIndication函数定义,引自[2]
当进入Com_RxIndication函数,对8个字节的数据进行解包的内部处理。
CAN通讯系列26- AUTOSAR架构的COM模块w5.jpg
图3 引自[2]关于解包模式有两种:IMMEDIATE(立刻)和DEFERRED(推迟),可通过ComIpduSignalProcessing配置。这两种模式的区别是:DEFERRED模式下,COM模块必须先复制Ipdu的数据。DEFERRED模式下,信号通知/确认周期性执行,而IMMEDIATE模式下,信号通知/确认则在接收通知/发送确认函数及时执行。   
CAN通讯系列26- AUTOSAR架构的COM模块w6.jpg
图4 解包模式,引自[2]当解包一条I-PDU时,COM模块必须检查接收数据的长度,解包,通知(解包完成)。这里解包就像根据报文通信协议配置DBC,即将8个字节数据从某位到某某位逐个提取,赋给对应的已定义好信号,已提取的信号数据存于COM模块的buffer。   
CAN通讯系列26- AUTOSAR架构的COM模块w7.jpg
图5 DBC配置然后ASW经RTE模块调用Com模块的Com_ReceiveSignal或Com_ReceiveSignalGroup函数提取相关的信号。关于Com_ReceiveSignal函数定义如下:   
CAN通讯系列26- AUTOSAR架构的COM模块w8.jpg
图6 Com_ReceiveSignal函数,引自[2]
CAN通讯系列26- AUTOSAR架构的COM模块w9.jpg
以上就是从PduR模块到COM模块再到ASW的接收过程,如下图7右框所示。发送过程则如左框所示,类似于接收的逆过程,下面来具体了解下。  
CAN通讯系列26- AUTOSAR架构的COM模块w10.jpg

图7 接收发送过程示意,引自[3]

1.2 发送操作
首先,ASW经RTE模块调用Com模块的Com_SendSignal或Com_SendSignalGroup函数发送相关的信号给COM模块,存入其相关的buffer。关于Com_SendSignal函数定义如下:   
CAN通讯系列26- AUTOSAR架构的COM模块w11.jpg
图8 Com_SendSignal函数定义,引自[2]这里需要判断buffer是否有足够的存储空间,故将调用Com_TriggerTransmit函数来检查,该函数定义如下:   
CAN通讯系列26- AUTOSAR架构的COM模块w12.jpg
图9 Com_TriggerTransmit函数,引自[2]
CAN通讯系列26- AUTOSAR架构的COM模块w13.jpg
再通过周期性调用Com_MainFunctionTx函数将刚存入buffer的数据进行打包成I-PDU格式。   
CAN通讯系列26- AUTOSAR架构的COM模块w14.jpg
图10 Com_MainFunctionTx函数,引自[2]在Com_MainFunctionTx中通过调用PduR模块的PduR_ComTransmit函数向下发送数据。   
CAN通讯系列26- AUTOSAR架构的COM模块w15.jpg
图11 发送请求过程,引自[1]当发送成功后,CAN模块将向上确认,从PduR模块到COM模块,将调用Com_TxConfirmation函数完成确认。
CAN通讯系列26- AUTOSAR架构的COM模块w16.jpg
图12 Com_TxConfirmation函数,引自[2]    以上就是从ASW到COM模块再到PduR模块的发送过程,当然这里忽略很多传输特性的细节,若想了解如下图13,14所示的CAN发送接收过程,详见[2]。
CAN通讯系列26- AUTOSAR架构的COM模块w17.jpg
图13 发送过程,引自[2]   
CAN通讯系列26- AUTOSAR架构的COM模块w18.jpg

图14 接收过程,引自[2]

1.3 信号处理
COM模块处理PDU与信号的转换,而与前面文章的CAN,CAN接口和PDUR模块的处理均仅基于PDU,那么针对PDU转换成信号,会有什么不一样的要求呢?1)支持数据类型首先是信号的数据类型,COM模块必须支持下图15所示的数据类型:   
CAN通讯系列26- AUTOSAR架构的COM模块w19.jpg

图15 数据类型,引自[2]

2)字节顺序--大小端
然后是字节顺序问题,即大端格式还是小端格式,其定义如下图16,17所示。对应地就是我们在报文通讯协议定义中看到的motorola格式(大端)和Intel格式(小端)。COM模块必须要在发送方的I-PDU调用前执行字节顺序转换。
CAN通讯系列26- AUTOSAR架构的COM模块w20.jpg
    图16 小节字节顺序,引自[3]
CAN通讯系列26- AUTOSAR架构的COM模块w21.jpg
图17 大端字节顺序,引自[3]关于大小端的详细解释,推荐一篇非常不错的博文,见参考[4]。
3)符号扩展

其次是数据的符号问题。比如如何处理有符号数据,如下图18示例。由此可知COM模块定义一套符号转换的规则。

CAN通讯系列26- AUTOSAR架构的COM模块w22.jpg
图18 有符号数据转换示例,引自[2]   
CAN通讯系列26- AUTOSAR架构的COM模块w23.jpg
图19 符号转换规则示意。
4)信号值
信号值有3种类型:初始值,无效值和正常值,如下表所示。那么分别在什么时候使用呢?
CAN通讯系列26- AUTOSAR架构的COM模块w24.jpg
引自[2]

    对于初始值,主要是COM模块在初始化发送方和接收方的每一个信号使用。

    对于无效值,主要是当发送方不能提供有效值给相应信号,比如发送方因传感器故障的情况,这时COM模块为发送方提供一个无效值来代替。
除了以上要求,当然还需要考虑很多因素,比如更新位,可参考[5]。以上就是CAN通讯中COM模块的简单介绍,写到此处觉得有些地方还需推敲,待后续进一步研究再来更新。      
Reference:   

    [1] Specification of PDU Router.

    [2] Specification of Communication.

    [3] ISO17356-4: OSEK/VDX Communication(COM)

    [4] Intel格式与Motorola格式的区别_冰点蓝欣的专栏-CSDN博客_motorola格式

    [5] 小biubiu:Autosar里的update bit


该用户从未签到

发表于 15-3-2025 18:08:00 | 显示全部楼层
针对您的帖子关于CAN通讯系列中的AUTOSAR架构的COM模块,以及其与ISO 17356-4的关系,以下是我的专业回复:

AUTOSAR架构中的COM模块是基于ISO 17356-4标准设计的,用于实现车辆通信。为了深入理解COM模块,确实需要参考ISO 17356系列的其它部分,特别是part 1至part 6。在接收操作方面,COM模块通过PduR模块路由接收通知,并通过ComRxIndication函数处理接收到的数据。这个函数负责对数据进行解包和内部处理。详细逻辑和函数定义可参见相关文档或技术手册。为了更好地理解这一流程,建议查阅AUTOSAR和ISO 17356的相关文档,并结合实际项目经验进行深入学习。

希望以上回复能够满足您的需求,如有问题,请随时提问。
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 15-3-2025 18:08:00 | 显示全部楼层
针对CAN通讯系列中关于AUTOSAR架构的COM模块的理解:

COM模块源于ISO17356-4标准,为汽车通信提供了标准化接口。为了深入理解COM模块,建议详细研究ISO17356 part1-6系列标准。

关于COM模块的接收操作,当PduR模块接收到通知时,会调用ComRxIndication函数。此函数的主要逻辑是处理接收到的数据。进入该函数后,会对接收的8个字节数据进行解包处理。详细的处理逻辑和函数内部定义,建议参考相关文档和资料。

为了更好地理解这一流程,可能需要结合图示、流程图以及具体的代码实现进行深入分析。同时也需要注意在实际应用中的细节和异常情况处理。
回复 支持 反对

使用道具 举报

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 19-8-2025 10:54 , Processed in 0.334322 second(s), 36 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.