协议模型的最底层是_CAN通信协议栈(二) 之对ISO11898-1的理解
ISO11898主要定义了物理层和数据链路层,对比标准OSI通信模型,物理层和数据链路层属于最底层的两个层级。在详细讲ISO11898-1之前先来了解一下汽车CAN通信网络中常用的几个协议都处于OSI模型的什么位置。
物理层定义了比特流的一些性质及电气特性,不在本文讨论范围内故跳过。
数据链路层(Data Link Layer)
数据链路层(Data Link Layer)的作用主要是将物理层的数据比特流封装成帧,并控制帧在物理信道上的传输,还包含检错、调节传送速率等功能。
在ISO11898-1中,将数据链路层(Data Link Layer)分为两个子层:逻辑链路控制(Logical Link Control,LLC)和媒体访问控制(Medium Access Control,MAC)。
逻辑链路控制(LLC):数据链路层(Data Link Layer)的上层部分,DLL服务通过LLC为网络层提供统一接口。
媒体访问控制(Medium Access Control,MAC):定义了数据帧如何在介质上进行传输,我们知道CAN属于广播式的总线,MAC就分配了帧在信道上的使用权。
每一层都有都有各自定义的PDU(Protocol Data Uint),同层级之间的通信通过交换PDU来实现,两个上下层级通过SDU(Service Data Uint)来进行交互。
CAN的特点
1.基于多主优先级的总线访问
总线空闲时,任何节点都可以发送数据。当有多个节点同时发送时,就要根据ID值按位进行仲裁(ID值越小优先级越高),优先级高的获得总线访问权。
2.非破坏性仲裁机制
3.广播型
节点通过本地过滤接收自己所需的数据,不需要的就过滤掉。
4.配置灵活
可随意增减节点,不影响软硬件。节点数量理论上无限制,实际受电气负载限制。
5.系统范围内数据一致性
6.错误检测
7.自动重传仲裁或错误期间被破坏的数据
8.区分临时错误和永久性故障节点,自动关闭有缺陷节点
MAC子层
- 数据的打包/拆包
- 帧编码(填充/去填充)
- 错误检测及通知
- 串并行转换
MAC层有3种服务:
- 数据帧传输
- 远程帧传输
- 过载帧传输
MAC层帧结构:
1.数据帧
数据帧将数据从发送器传输到接收器。
标准格式:
扩展格式:
(1)帧起始
帧起始(SOF)标志数据帧和远程帧的起始,仅有一个显性位组成(0)。
(2)仲裁域
标准格式中,仲裁域由11位标识符和RTR位组成;扩展格式中,仲裁域由29位标识符和SRR位、IDE位、RTR位组成。
标识符(Identifier):在扩展帧中,有11位基本ID和18位扩展ID。
RTR位(Remote Transmission Request Bit):0表示数据帧,1表示远程帧。
SRR位(Subtitue Remote Request Bit):SRR位为0,当标准帧与扩展帧发生冲突,而扩展帧的的基本ID与标准帧的ID相同时,标准帧优先于扩展帧。
IDE位(Identifier Extension Bit):扩展格式里为隐性(1)。
(3)控制域
IDE位与r0组成保留位。
DLC有4位,表示数据长度,0 ~ 8 个字节。
(4)数据域
0 ~ 8 个字节的数据。
(5)循环冗余码(CRC)域
CRC序列里存计算出的CRC校验值。
CRC界定符包含1个隐性位(1)。
(6)应答场(ACK)
应答间隙:在发送器隐性位写一个显性位(0)表示收到匹配到正确CRC。
应答界定符:1位隐性位(1)。
(7)帧结束
帧结束(EOF)由7个隐性位(1)组成。
2.远程帧
节点发出远程帧,请求具有相同ID的数据帧。
远程帧也分标准格式和扩展格式,RTR位为1表示远程帧,相比数据帧少了数据域。
标准格式:
扩展格式:
3.错误帧
任何节点检测到总线错误就发出错误帧。
4.过载帧
过载帧用在相邻数据帧或者远程帧之间提供附加的延时。
5.帧间隔
LLC子层
- 本地过滤
- 过载通知
- 错误恢复管理
LLC层有2种服务:
- 数据帧传输
- 远程帧传输
LLC层帧结构:
1.数据帧
2.远程帧
MAC层对帧优先级进行了仲裁发送给LLC层,LLC层这时候只需把帧继续向网络层传输,所以帧的结构也发生了变化。
以上均是笔者自己的理解,如有错误欢迎指正。
协议模型的最底层是_CAN通信协议栈(二) 之对ISO11898-1的理解相关推荐
- ssh协议是osi_TCP/IP 协议模型
TCP/IP 与OSI 七层模型 以上为 网络OSI 七层协议模型 物理层 网络传输中最底层负责数据传输的物理硬件, 这里相当与以太网或者电话线等物理设备,可以模糊定义其为数据传输过程中的实际物理媒介 ...
- 【网络编程】一、如何记住OSI七层协议模型,看完还记不住的来打我。
学过计算机网络这门课的童鞋,一定都知道OSI七层协议模型. 那么现在闭上眼,能按顺序说出来的童鞋麻烦右上角点个赞,让博主看看有多少? 哇,0个赞,不是吧. 没关系,下面跟着博主的思路,看完本篇之后,我 ...
- AUTOSAR从入门到精通100讲(四十八)-Lin通信协议栈分析两步走-LinTrcvLIN Driver
LinTrcv 0.Lin通信协议栈简介: LIN通信服务是一组用于与LIN通信系统进行车辆网络通信的模块.提供统一的LIN网络接口.对应用层程序隐藏协议信息和消息属性的特性. Lin通信服务包括: ...
- AUTOSAR从入门到精通100讲(三十五)-Lin通信协议栈分析三部曲LinTrcv配置及代码分析
LinTrcv 0.Lin通信协议栈简介: LIN通信服务是一组用于与LIN通信系统进行车辆网络通信的模块.提供统一的LIN网络接口.对应用层程序隐藏协议信息和消息属性的特性. Lin通信服务包括: ...
- OSI七层协议模型和各自的功能
都知道OSI有七层协议,那么为什么有七层协议,这七层协议都是干什么的呢?我觉得应该在此做一个总结,来系统和易懂地来讲解各个部分. 首先,什么是协议?就像早晚班的交接,晚班的人A下班之后对接替他的人B说 ...
- 如何记住OSI七层协议模型,脑洞大开有木有?
学过计算机网络的各位,一定知道OSI七层协议模型.OSI七层协议模型(或简称OSI七层模型),是一个定义得非常好的协议规范,被认为是现代开放性通信系统互连互通的标准参考模型.OSI模型有7层结构,每层 ...
- 通信工程专业就业之------通信协议栈开发(LTE/NR)
通信工程专业-信息与通信工程学科的学生,就业可以选择做通信协议栈开发,在校期间大致要学习: 通信知识:信号与系统,数字信号处理,通信原理,移动通信原理,电路(数字,模拟,射频),电磁场与电磁波 编程知 ...
- TCP/IP篇(1)--协议模型
TCP/IP参考模型分为四个层次:应用层.传输层.网络互连层和主机到网络层. (1)主机到网络层:实际上TCP/IP参考模型没有真正描述这一层的实现,只是要求能够提供给其上层-网络互连层一个访问接口, ...
- AUTOSAR实战教程 - 通信协议栈CAN_CANIF_PDUR_CANTP_COM_XCP_ECUC配置一网打尽
通讯协议栈几乎是CP AUTOSAR中最庞杂的一块.由于其涉及的模块比较多(仅实现CAN信号的收发就需要ECUC/CAN/CANIF/CANTP/PDUR/COM/XCP这么多模块的协作!),且名词概 ...
最新文章
- HDU-1269 Tarjan求强连通分量,模板题
- 99%的人都不会的用户流失分析,到底应该怎么做?
- php100 swfupload,swfupload上传图片读取最大只有100*75
- 中国 IT 行业平均工资再次碾压金融业,意味着什么?
- python123词频统计之哈姆雷特_基于Yarn的Spark环境,统计哈姆雷特词频(1)-阿里云开发者社区...
- 强化学习: Q-learning实例python实现
- 产品笔试后不会知识点总结
- Android P GPS信号模拟
- 《诗经·邶风·击鼓》
- 拔丝芋头的Java学习日记--Day1
- 移除bable打包的use strict模式(vue2)
- C++11之decltype
- JS逆向:猿人学爬虫比赛第九题详细题解
- python 爬虫 关于requests的基础知识及常用的一些User-Agent
- Spring框架究竟是什么
- 看雪软件安全精选:二进制各种漏洞原理实战分析总结
- Token Bucket 令牌桶算法
- 陈伟霆,赵丽颖,李易峰,青云志,分析。
- CVE-2022-30190(follina):Microsoft诊断工具(MSDT)远程代码执行漏洞复现(超级详细)
- Linux开发工具vim篇