[CP_AUTOSAR]_分层软件架构_接口之通信模块交互介绍

目录

  在前面 《关于接口的一些说明》 以及  《Memory软件模块接口说明》 中,简要介绍了CP_AUTOSAR分层软件接口的常用规范,以及内存模块的接口使用说明,本文以通信软件模块为例,介绍通信模块的接口交互。

1、协议数据单元(PDU)传输

  一些术语的解释说明:

  1、SDU,Service Data Unit,服务数据单元。在上层收到传输数据的请求时,被上层传输的数据是属于当前层的SDU。下层完成接收之后提取出的数据也是SDU,SDU是PDU的一部分。

  2、PCI,Protocol Control Information,协议控制信息。将SDU从特定协议层的一个实例传递到另一个实例时需要此信息。例如,PCI可能会包含源和目标信息。PCI由发送方的协议层添加,由接收方去除。

  3、PDU,Protocol Data Unit,协议数据单元,其包含了PCI 和 SDU。在发送方,PDU由上层传递到下层,并且PDU也作为了下层的SDU。

  下图是PDU传输过程的示意图。由图可知,N + 1层往 N 层发送PDU,对于N + 1层来说,该数据单元属于PDU,而对于N层来说,则是属于SDU。在N层中,SDU添加上PCI信息,则变为了N层的PDU,向N - 1层发送完成时,PDU变为了SDU。

2、通信模块的案例

2.1、SDU、 PCI & PDU

  SDU 和 PDU命名规范:

  PDU:<bus prefix> <layer prefix> - PDU

  SDU:<bus prefix> <layer prefix> - SDU

  bus prefix 和 layer prefix的描述详见下表:

  来自于数据链路层(对应AUTOSAR架构中的驱动以及接口模块)的协议数据单元为CAN L-PDU,其中,layer prefix 为 L,bus prefix 为 CAN。

  来自于网络层(对应AUTOSAR架构中的Tp层)的协议数据单元为CAN FF N-PDU,其中,layer prefix 为N,bus prefix 为 CAN FF,其中SF,Single Frame,表示单帧;其中FF,First Frame,表示首帧;其中CF,Consecutive Frame,表示连续帧;其中FC,Flow Control,表示流控帧;《更多关于CAN Tp层中的帧信息,可点击跳转》。

  来自于展示层(对应AUTOSAR架构中的COM/DCM/PDU router模块)的协议数据单元为I-PDU,其中,layer prefix 为 I,bus prefix 无。

2.2、通信模块构成

  1、PDU Router:

   -> 在上层和不同的抽象的通讯控制器之间,提供PDUs的路由功能;

   -> 路由的规模需要根据ECU通信来定;

   -> 提供即时的TP路由。

  2、COM:

   -> 在不同的I-PDUs之间提供单个信号或组信号的路由;

  3、NM Coordinator:

   -> 通过网络协调器处理的网络管理,同步连接到ECU的不同通信通道的网络状态;

  4、Communication State Managers:

   -> 通过接口去启动和关闭通信系统的硬件单元;

   -> 控制PDU组。

  内部通信路径如下图所示:

  由上图可知,由CAN Driver发往CAN Interface的数据为I-PDU,经过CAN Inteface处理之后,发往CAN Tp为N-PDU,由PDU Router路由转发发往服务层中AUTOSAR COM为I-PDU。

  以太网协议栈内部的通信路径如下图所示:

  使用CAN XL的以太网和CAN通信,通信路径如下图所示:

2.3、从数据传输的角度看Communication

  下图展示了数据流向图,SW-C 发送配置好的数据到远程ECU上,此数据不在就地缓存空间处理。

  以下描述了传递流程:

   -> RTE 会回调 SOME/IP transformer模块来传输来自于SW-C的数据,SOME/IP transformer作为传输链路上的第一道转换。

   -> SOME/IP transformer执行转换,并将输出结果写入到RTE提供的Buffer1空间中;

   -> 之后,RTE执行了Safety transformer,其作为传输链路上的第二道转换,Safety transformer的输入就是SOME/IP transformer的输出。

   ->E2E Transformer保护了数据,并将其输出结果写入到RTE提供的Buffer2空间中。此过程增加了一个新的Buffer空间,因为in-place buffer处理未被使用。

   -> 最后,RTE传出最后的输出结果到AUTOSAR COM模块中。

2.4、Communication中的接口

  架构描述:

  RTE使用了位于BSW中的系统服务层中的转换器:SOME/IP transformer、E2E Transformer。

  接口描述:

c 复制代码
	SomeIpXf_SOMEIP_Signal1
	(
		uint8 *buffer1,
		uint16 *buffer1Length,
		<type> data
	)
c 复制代码
	SafetyXf_Safety_Signal1
	(
		uint8 *buffer2,
		uint16 *buffer2Length,
		uint8 *buffer1,
		uint16 buffer1Length
	)

  由上图所示,RTE层调用了 SomeIpXf_SOMEIP_Signal1 接口函数,将来自于SW-C数据进行转换,转换完成之后,保存到buffer1Length中(即图中的Buffer1);随后RE回调了SafetyXf_Safety_Signal1 接口函数,借助于E2E Transformer对数据进行保护处理,转换完成之后,保存到buffer2Length中(即图中的Buffer2);最后,调用Com_SendDynSignal接口函数,将输出结果传递到AUTOSAR COM层中。

   更多内容可点击返回参考 CP_AUTOSAR_总目录

相关推荐
李永奉1 天前
杰理可视化SDK开发-【BUG】AC7006F8芯片开启一拖二和双麦通话语音算法后,设置触摸音在唤醒语音助手和通话时触摸音没作用问题
单片机·嵌入式硬件·mcu·物联网·电脑·bug
硅基手札2 天前
SPI技术系列 12 · SPI 设备驱动实战
linux·驱动开发·单片机·嵌入式硬件·mcu·性能优化·系统架构
国科安芯2 天前
开放指令集的空间之路:RISC-V微控制器在商业航天中的生态价值与自主性评述
嵌入式硬件·mcu·risc-v·低轨卫星·商业航天·抗辐射
意法半导体STM322 天前
【官方原创】LAT6041 STM32MP1x USB OTG FIFO设置
stm32·单片机·嵌入式硬件·mcu·fifo·stm32mp1x
国科安芯2 天前
四重证据,一条逻辑链:商业航天级微控制器MCU抗辐射验证方法学综述——以国科安芯AS32S601为例
人工智能·单片机·嵌入式硬件·mcu·安全·抗辐射
笨笨饿3 天前
144_Codex变慢的解决办法
stm32·单片机·嵌入式硬件·mcu·物联网·51单片机·proteus
硅基手札4 天前
SPI技术系列 08 · SPI 控制器寄存器与 IP 架构
驱动开发·stm32·单片机·嵌入式硬件·mcu·架构·计算机外设
Brilliantwxx5 天前
【STM32】 RTC 实时时钟详解:从概念到预分频器
stm32·单片机·嵌入式硬件·mcu·bash
霖霖7146 天前
【ESP32笔记】I2S的音频录制与播放
笔记·单片机·mcu·音视频
硅基手札7 天前
【Linux 内核专栏 17】进程间通信 IPC(上)— 管道·信号·System V IPC·mmap·文件锁
linux·运维·服务器·stm32·单片机·mcu