本文介绍对Autosar架构中Can模块理论知识的理解,本文参考:RH850从0搭建Autosar开发环境【5】- Davinci Configurator之CanIf模块配置详解(上)_autosar canif模块之vector configurator pro配置-CSDN博客
详细内容可参考大哥的文章。
写得很好,人也很好,认认真真教东西的一位大哥。
知识点一:CANIF的作用
、
CanIf即Can Interface,它属于BSW中的ECU Abstraction Layer,而我们知道ECUABL属于BSW三层架构中的中间层,那么CanIf的作用便是承上启下(这里的上指的是Mcal层,下指的是servive层,与图中的方向正好相反):将mcal层接收到的数据传递给服务层,然后服务层再提供给应用层程序使用(害,其实这也是最终目的,服务于应用层程序)。
知识点二:PDU相关概念
PDU是什么?其作用是什么?有什么组成?怎么传输?
首先介绍一下PDU的两个组成
SDU,Service Data Unit,服务数据单元。怎么说?它其实就是我们上层传递过来的数据,这里的上层,是指传输路线中的前边的一层。等我下层接收到了这个数据,下层就变成了下下层的上层,这个数据就变成了上层传递的数据。
PCI,Protocol Control Information,协议控制信息。这个怎么理解呢?每个协议都有它自己的规则,这个信息控制SDU在协议层的传递。PCI由传输侧的协议层添加,并在接受侧移除,但每一层即是接收侧又是传输侧,懂我的意思吧?每一层都会去掉之前的PCI加上自己的PCI,像狮群中的雄狮.....
PDU,Protocol Data Unit,协议数据单元。PDU就是SDU+PCI咯,但是注意,传入和传出的PDU的PCI不一样。
I-PDU,Interaction Layer PDU,交互层协议数据单元。交互层是哪一层?服务层吧?服务层和RTE最近。
N-PDU:NetWork Layer PDU,网络层协议数据单元。网络层是啥?想想网络的作用。是不是有了网络每个小帅都可以精确无误的找到自己的小美?TP不就是做这个工作的吗?
L-PDU:Data Link Layer PDU:数据链路层协议数据单元。这个就好理解了,就是和最初得到数据的Mcal层交互的那一层。