AUTOSAR架构的CAN通讯学习(二)——CAN Driver

编程入门 行业动态 更新时间:2024-10-08 00:33:00

AUTOSAR<a href=https://www.elefans.com/category/jswz/34/1771112.html style=架构的CAN通讯学习(二)——CAN Driver"/>

AUTOSAR架构的CAN通讯学习(二)——CAN Driver

本文是针对如下链接文章的学习笔记:
=MzUyODA2MjkyNA==&mid=2247490064&idx=1&sn=638103e9fe5f073f636e84ba71b1a3f1&chksm=fa775ab3cd00d3a5615ddf74864ee5b22851c0f4b3758bb870358186272397d1a94d98a4ee47&scene=178&cur_album_id=1584282669947912193#rd

1、协议数据单元(Protocol Data Unit, PDU)
PDU包括协议控制信息(Protocol Control Information,PCI)和服务数据单元(Service Data Unit, SDU)。

PDU不仅仅是数据(SDU),还携带了来自哪要去哪的信息(PCI);每到哪都会删掉之前的信息,添加这是哪要去哪的信息(不同层的PCI更新)

2、L-PDU
如图1,针对OSI参考模型,会根据不同的OSI层相应地给PDU添加前缀,在CAN模块中,数据链路层的PDU就叫L-PDU。

图1

知识点补充:
ISO 11898-1定义了CAN的数据链路层和部分物理层,如图2。数据链路层具体可分为逻辑链路控制、媒介访问控制

图2 ISO 11898的定位

如图3,其中LLC(逻辑链路控制)包括接受过滤、过载通知以及恢复管理;MAC层包括数据封装与解封、帧编码、介质访问管理、错误检测、序列及反序列。

图3 ISO 11898包含的规范

在CAN的四个核心模块:CAN Driver模块、CAN Interface模块、PDUR模块、COM模块中,只有CAN Driver模块能够访问或配置硬件,其他模块均不能。它们之间将通过数据协议单元(PDU)形式实现数据传输,如图4。

图4

3、Hth、Hrh:
针对写数据操作,CAN Interface模块调用Can_Write函数,其定义如图5:
图5
该函数中,参数Hth的定义:
用来存储写入数据的硬件对象就叫Hth;
(用来存储接收数据的硬件对象就叫Hrh)

每一个硬件对象都由ID,DLC和 SDU三部分组成,如图6。
图6
所以不难理解,Can_Write的输入参数Hth其实就是硬件对象的编号(id),而且实际上是已经定义好了硬件对象的编号与CAN ID的映射关系,比如图7所示,如果想发送CAN ID 为0x001的数据,那么调用Can_Write函数的输入参数Hth应该为4。

图7

4、CAN Driver相关函数(部分):
Can_SetControllerMode()
Can_Init()
Can_MainFunction_Write()
Can_MainFunction_Read()
Can_Write()

更多推荐

AUTOSAR架构的CAN通讯学习(二)——CAN Driver

本文发布于:2024-02-13 23:37:13,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1761045.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:架构   通讯   AUTOSAR   Driver

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!