精华内容
下载资源
问答
  • 以UDP包为例,总结了一下一个UDP协议的MAC帧是由什么组成的,如下图所示: 我们想要发送的数据,首先需要在其前面加上UDP报头,由于UDP协议属IP协议的一种,所以在UDP报头前需要加IP报头,形成IP段,在IP段的基础上...

    基于FPGA+RTL8201的UDP数据收发之MAC帧结构(三)

    以UDP包为例,总结了一下一个UDP协议的MAC帧是由什么组成的,如下图所示:
    UDP协议下的MAC帧结构

    我们想要发送的数据,首先需要在其前面加上UDP报头,由于UDP协议属IP协议的一种,所以在UDP报头前需要加IP报头,形成IP段,在IP段的基础上加上一些同步字节、开始字节、以太网首部以及在尾部加上校验序列,就构成了一个完整的可以发送给物理层芯片的帧序列。

    结合之前有关MII的介绍,我们在上图中均是按照字节来表示的,1个字节由8个bit组成,而MII的数据总线只有半个字节,即只有4个bit,因此要特别注意,在每发送1个字节时,先发1个字节的低四位,再发高四位,如下图所示:
    MII接口发送时序

    接下来总结下MAC帧中,每一个部分的含义:
    MAC组成

    剩余部分下一篇见,太晚了~~,欢迎大家批评指正哦…

    展开全文
  • 计算机网络——以太网帧结构/格式

    千次阅读 2020-05-31 17:53:55
    可以看到,以太网帧由6个字段组成: 目的地址 目标适配器的MAC地址 (即物理地址,也称为链路地址、MAC地址、LAN地址。关于它的详细介绍以及其他寻址方式的介绍可以看这篇博客:计算机网络知识点——寻址(物理地址、...

    格式如图所示:
    在这里插入图片描述
    可以看到,以太网帧由6个字段组成:

    目的地址

    目标适配器的MAC地址 (即物理地址,也称为链路地址、MAC地址、LAN地址。关于它的详细介绍以及其他寻址方式的介绍可以看这篇博客:计算机网络知识点——寻址(物理地址、逻辑地址、端口地址与专用地址))。

    源地址

    传输该帧到局域网上的适配器的MAC地址。

    类型字段

    用来标记上一层使用的是什么协议,以便把收到MAC帧的数据上交给上一层的这个协议。

    数据字段

    46~1500个字节,46是因为以太网MAC帧长不能小于64字节(最小帧长度保证有足够的传输时间用于以太网网络接口卡精确地检测冲突,这一最小时内间是根据网络的最大电缆长度和帧沿电缆长度传播所要求的时间确定的),1500是因为以太网的最大传输单元(MTU)是1500字节。当数据字段的长度小于46字节时,应在数据字段的后面加入整数字节的填充字段,当传输到网络层时,网络层使用IP数据报首部中的长度字段来去除填充部分。这个字段承载了IP数据报。

    这里可能有人要问了:为什么以太网规定最短有效帧长为64字节?答:以太网在发送数据时,如果帧的前64字节没有发生冲突,那么后续的数据就不会发生冲突。换句话说,就是如果发生冲突,就一定是在发送的前64字节之内。因为检测到冲突就停止发送,这时已经发送出去的数据一定小于64字节。只要长度小于64字节的帧都是由于冲突而异常中止的无效帧。收到这种无效帧就立即丢弃。

    FCS

    使得接收适配器能检测帧中是否引入了差错。

    前同步码

    8个字节,前7个都是10101010,最后一个是10101011;前7字节用于“唤醒”接收适配器,并将它们的时钟和发送方的时钟同步。第8个字节的最后两个比特(即两个‘1’)警告接收适配器重要的内容要来了。

    《数据通信与计算机网络》——佛罗赞
    《计算机网络——自顶向下方法》

    参考博客

    不点个赞👍再走吗~

    展开全文
  • 我们通过5篇文章来讲清楚这个问题~01错误帧的帧结构在发送和接收报文时,总线上的节点如果检测出了错误,那么该节点就会发送错误帧,通知总线上的节点,自己出错了。错误帧错误标志和错误界定符两个部分组成。主动...

    所谓错误帧,就是总线出错了。

    什么是错误帧呢?为什么会产生错误帧呢?出现错误帧该怎么办呢?我们通过5篇文章来讲清楚这个问题~

    01

    错误帧的帧结构

    在发送和接收报文时,总线上的节点如果检测出了错误,那么该节点就会发送错误帧,通知总线上的节点,自己出错了。

    错误帧由错误标志和错误界定符两个部分组成。c8d9cb57e9175e7d16d21f24d28afba9.png

    主动错误标志:6个连续的显性位;

    被动错误标志:6个连续的隐性位;

    错误界定符:8个连续的隐性位。

    可以看到在错误标志之后还有0~6位的错误标志重叠,这一段最低有0个位,最多有6个位,关于这一段是怎么形成的,将在下文中解释。

    02

    错误帧是怎么检测的

    2.1 位填充原则

    在了解CAN总线中的错误检测之前,首先需要了解什么是位填充。CAN协议中规定,当相同极性的电平持续五位时,则添加一个极性相反的位。

    0483f8474af2ce87420ace6f95853f8f.png

    对于发送节点而言:在发送数据帧和遥控帧时,对于SOF~CRC(除去CRC界定符) 之间的位流,相同极性的电平如果持续5位,那么在下一个位插入一个与之前5位反型的电平;对于接收节点而言:在接收数据帧和遥控帧时,对于**SOF~CRC(除去CRC界定符)**之间的位流,相同极性的电平如果持续5位,那么需要删除下一位再接收。5e3794f327c2e1b5c424318c4b4a97a3.pngTips: 注意:填充位的添加和删除是由发送节点和接收节点完成的,CAN-BUS只负责传输,不会操纵信号。

    03

    错误帧的种类

    在CAN总线通信中,一共有五种错误:
    • 位错误

    • ACK错误

    • 填充错误

    • CRC错误

    • 格式错误

    3.1 位错误(Bit Check Error)节点将自己发送到总线上的电平与同时从总线上回读到的电平进行比较,如果发现二者不一致,那么这个节点就会检测出一个位错误。实际上所谓“发出的电平与从总线上回读的电平不一致”,指的就是节点向总线发出隐性位,却从总线上回读到显性位或者节点向总线发出显性位,却从总线上回读到隐性位这两种情况。Tips: 有三种例外情况不属于位错误:在仲裁区,节点向总线发送隐性位却回读到显性位,不认为是位错误,这种情况表示该节点仲裁失败;在ACK槽,节点向总线发送隐性位却回读到显性位,不认为是位错误,这种情况表示,该节点当前发送的这一帧报文至少被一个其它节点正确接收;该节点发送被动错误标志,节点Node_A向总线发送连续六个隐性位(被动错误标志)却回读到显性位,不认为是位错误。因为被动错误标志是六个连续的隐性位,所以在总线上按照线与机制,有可能这六个连续隐性位被其它节点发送的显性电平“吃掉”;3.2 ACK错误(Acknowledgment Error)按照CAN协议的规定,在一帧报文(数据帧或者遥控帧)发出之后,如果接收节点Node_B成功接收了该帧报文,那么接收节点Node_B就要在该帧报文ACK槽对应的时间段内向总线上发送一个显性位来应答发送节点Node_A。这样发送节点Node_A就会在ACK槽时间段内从总线上回读到一个显性位。因此:当发送节点Node_A在ACK槽时间段内没有回读到显性位,那么发送节点Node_A就会检测到一个ACK应答错误。这表示没有一个节点成功接收该帧报文。

    573e81bb909555f6973ad44ff4cb1af1.png

    3.3 填充错误(Fill Error)在需要执行位填充原则的帧段(数据帧遥控帧的SOF~CRC序列),检测到连续六个同性位,则检测到一个填充错误。3.4 CRC错误发送节点Node_A在发送数据帧或者遥控帧时,会计算出该帧报文的CRC序列。接收节点Node_B在接收报文时也会执行相同的CRC算法,如果接收节点Node_B计算出的CRC序列值与发送节点Node_A发来的CRC序列值不一致,那么接收节点就检测到一个CRC错误。

    3cadc3a6c0e39bc8525a41d39624b18a.png

    3.5格式错误

    在一帧报文发送时,如果在必须发送预定值的区域内检测到了非法值,那么就检测到一个格式错误。CAN报文中,有预定值的区域包括:

    • 数据帧和遥控帧的CRC界定符、ACK界定符、EOF;

    • 错误帧界定符

    • 过载帧界定符

    04

    错误通知

    上一节中,讲到CAN通信中有五种错误,并且介绍了在什么情况下能够检测到这几种错误,在检测到错误之后,检测到错误的节点就要发送错误帧到总线上来通知总线上的其他节点。错误帧有的带有主动错误标志,有的带有被动错误标志,而且错误标志重叠部分的字节数也不一样,那么问题就来了:
    • 什么情况下发送带有主动错误标志的错误帧;

    • 什么情况下发送带有被动错误标志的错误帧;

    • 在哪个时间点发送错误帧;

    • 错误标志重叠部分是怎样形成的;

    4.1 节点错误状态

    按照CAN协议的规定,CAN总线上的节点始终处于以下三种状态之一。

    • 主动错误状态

    • 被动错误状态

    • 总关闭状态

    当满足一定的条件时,节点可以从一种状态转换为另外一种状态。

    5da835e9df18269e96d8f9df79680858.png

    1)主动错误状态节点处于主动错误状态可以正常通信;处于主动错误状态的节点(可能是接收节点也可能是发送节点)在检测出错误时,发出主动错误标志。2)被动错误状态节点处于被动错误状态可以正常通信;

    处于被动错误状态的节点(可能是接收节点也可能是发送节点)在检测出错误时,发出被动错误标志。

    Tips: 注意:这里说处于主动错误状态或被动错误状态的节点仍然可以正常通信,这里的正常通信指的是:节点仍然能够从总线上接收报文,也能够竞争总线获胜后向总线上发送报文。但是不代表接收的报文一定正确也不代表一定能正确的发送报文。

    3)总线关闭状态

    节点处于总线关闭状态,那么该节点不能收发报文;

    处于总线关闭状态的节点,只能一直等待,在满足一定条件的时候,再次进入到主动错误状态。

    4.2 错误状态的转换现在我们知道:处于主动错误状态的节点在检测到错误时会发送带有主动错误标志的错误帧;处于被动错误状态的节点在检测到错误时会发送带有被动错误标志的错误帧。那么一个CAN节点在什么情况下处于主动错误状态,什么情况下处于被动错误状态呢?根据CAN协议的规定,在CAN节点内,有两个计数器:发送错误计数器(TEC)接收错误计数器(REC)Tips: 需要注意的是:这两个计数器计得不是收发报文的数量,也不是收发错误帧的数量。TEC和RCE计数值的变化,是根据下表的规定来进行的

    6ef6f38fd371f0a1e6a0f6c2ffaa5c64.png

    CAN节点错误状态的转换,就是基于这两个计数器来进行的。

    c3edd74efd3ba9e8ead3908a71093bac.png

    可以看出,节点错误状态的转换就是一个“量变”到“质变”的过程:1) 主动错误状态最开始TCE和REC都小于127时**,就处于主动错误状态。在这一状态下,节点检测到一个错误就会发送带有主动错误标志的错误帧,因为主动错误标志是连续六个显性位,所以这个时候主动错误标志将会“覆盖”掉总线上其它节点的发送,而之前在CAN总线上传输的报文就被这“六个连续显性位”破坏掉了。如果发出主动错误帧的节点是发送节点,这个情况下就相当于:刚刚发送的那一帧报文我发错了,现在我破坏掉它(发送主动错误帧),你们不管收到什么都不算数;如果发出主动错误帧的节点是接收节点,这个情况就相当于:刚刚我收报文的时候发现了错误,不管你们有没有发现这个错误,我现在主动站出来告诉大家这个错误,并把这一帧报文破坏掉(发送主动错误帧),刚才你们收到的东西不管对错都不算数了。Tips: 处于主动错误状态,说明这个节点目前是比较可靠的,出现错误的原因可能不是它本身的问题,即刚刚检测到的错误可能不仅仅只有它自己遇到,正是因为这一点,整个总线才相信它报告的错误,允许它破坏掉发送中的报文,也就是将这一次的发送作废。2)被动错误状态如果某个节点发送错误帧的次数较多,必将使得TCE>127 或者 REC>127,那么该节点就处于被动错误状态。在这一状态下,节点Node_A检测到一个错误就会发送带有被动错误标志的错误帧,因为被动错误标志是连续六个隐性位,所以这个时候总线上正在传输的报文位流不会受到该被动错误帧的影响,其它的节点该发送的发送,该接收的接收,没人搭理这个发送被动错误帧的节点Node_A。如果发出被动错误帧的节点Node_A为报文的发送节点,那么在发送被动错误帧之后,刚刚正在发送的报文被破坏,并且Node_A不能在错误帧之后随着连续发送刚刚发送失败的那个报文。随之而来的是帧间隔,并且连带着8位隐性位的 “延迟传送” 段;这样总线电平就呈现出连续11位隐性位,总线上的其它节点就能判定总线处于空闲状态,就能参与总线竞争。此时如果Node_A能够竞争成功,那么它就能接着发送,如果竞争不能成功,那么就接着等待下一次竞争。这种机制的目的正是为了让其它正常节点(处于主动错误)优先使用总线。Tips: 处于被动错误状态,说明这个节点目前是不太可靠的,出现错误的原因可能是它本身的问题,即刚刚检测到的错误可能仅仅只有它自己遇到,正是因为这一点,整个总线才不信任它报告的错误,从而只允许它发送六个连续的隐性位,这样它才不会拖累别人。3)总线关闭状态如果一个处于被动错误状态的节点,仍然多次发送被动错误帧,那么势必导致TEC > 255,这样就处于总线关闭状态。在总线关闭状态下的节点Node_A不能向总线上发送报文,也不能从总线上接收报文,整个节点脱离总线。等到检测到128次11个连续的隐性位时,TEC和REC置0,重新回到主动错误状态。按照我的理解这个所谓“检测到128次11个连续隐性位”其实就是让这个节点隔离一段时间冷静下,因为它一旦处于总线关闭状态,就不会和总线有任何的联系,这个时候只要它计算时间等于达到传送128次11个连续隐性位所用的时间,就可以重新连到总线上。Tips: 处于总线关闭状态说明,这个节点目前挂掉了,总线先把它踢开,这样它才不会拖累别人,等到它冷静一段时间之后再回到总线上。

    3.3 错误帧的发送

    在检测到错误之后,什么时候发送错误帧呢?按照CAN协议的规定:

    • 位错误、填充错误、格式错误、ACK错误。在错误产生的那一位的下一位开始发送错误帧。

    • CRC错误紧随ACK界定符后的位发送错误帧

    例子1:

    116d8a563da7b69badc0f2dabb431dfa.png

    (1)发送节点Node_A发送一个显性位,但是却从总线上听到一个隐形位,于是Node_A节点就会检测到一个位错误;(2)Node_A检测到位错误之后,立即在下一位开始发送主动错误帧:6个连续显性位的主动错误标志+8个连续隐性位的错误界定符;(3)对应Node_A发出的主动错误标志,总线上电平为6个连续显性位;(4)接收节点Node_B和Node_C从总线上听到连续6个显性位,那么就会检测到一个填充错误,于是这两个节点都会发送主动错误帧;(5)对应Node_B和Node_C发出的主动错误标志,总线电平又有6个连续显性电平,对应Node_B和Node_C发出的错误界定符,总线电平有8个连续的隐性电平。(6)在间歇场之后,Node_A节点重新发送刚刚出错的报文。例子2:

    4dc0f13451ba448a7a27f94902cb4756.png

    从上图中可以看出错误帧之中,错误标志重叠部分是怎样形成的,这个例子中,位错误的错误标志与填充错误的错误标志重叠两位,剩下的部分还有四位:

    83a6dccf0517aec48bdbf866a17721dc.png

    (本文结束)

    【推荐阅读】HIL43讲,Matlab也有强大的实时平台,在上海熠速和SpeedGoat43b4c1776e62ea54096050a46e1ee3c9.png

    HIL48讲,ADAS测试的两种类型,白马王子和草民的故事

    HIL53讲,评测NI的无人驾驶测试方案HIL55讲,无人驾驶基本原理及其测试技术

    dc35a059fee02b924eb9b0e64487a740.png

    HIL31讲,零基础教程,自动化测试的方法原理及应用演示HIL56讲,德国人是怎么做测试的

    总线架构26讲,被无人驾驶“拯救”的车载以太网和域控制器

    总线架构27讲,博世留下的遗憾,我们来填补内部展示如下所示:
    展开全文
  • 数据链路层定义了一个同步的帧结构,包含基本帧和超帧(256个基本帧组成),数据在L2层中,通过CPRI固定的帧结构形式进行相应的成帧和解帧处理。 基带处理单元(BBU)和射频拉远单元(RRU)之间可以通过一条或多条CPR.....

    CPRI协议定义了两个协议层。两个协议层为物理层(L1)和数据链路层(L2)。在物理层中,将上层接入点的传输数据进行复/分接,并采用8B/10B编解码,通过光模块串行收发数据。数据链路层定义了一个同步的帧结构,包含基本帧和超帧(由256个基本帧组成),数据在L2层中,通过CPRI固定的帧结构形式进行相应的成帧和解帧处理。


    基带处理单元(BBU)和射频拉远单元(RRU)之间可以通过一条或多条CPRI数据链路来连接,每条CPRI数据链路支持614.4Mbps、1228.8M-bps和2457.6Mbps三种比特率高速串行传输。当前工业界,通过将四条并行CPRI数据链路进行相应串行化处理,可实现BBU与RRU之间通过光纤以近10Gbps(即4X2457.6 Mbps)速率超高速传输。

     

    转载于:https://www.cnblogs.com/mway/p/6938604.html

    展开全文
  • 根据 3GPP TS 36.211的定义,TDD-LTE 系统帧结构如图1 所示。一个10ms 帧被分为两个5ms 半帧,每个半帧4 个数据子帧和1 个特殊子帧构成。每个子帧分为两个0.5ms时隙,每个时隙又可分为7 个OFDM 符号。特殊子帧则...
  • 什么是VLAN

    2013-10-23 09:59:12
    而在交换网络中,广播域可以有一组任意选定的第二层网络地址(MAC地址)组成的虚拟网段。这样,网络中工作组的划分可以突破共享网络中的地理位置限制,而完全根据管理功能来划分。这种基于工作流的分组模式,大大...
  • 控制部分就是CPU中央处理系统、输入电路(键盘)、输出电路(数码管)、双音多频DTMF检测电路、用户环路状态检测电路、自动交换网络驱动电路与交换网络转换电路、扩展电路、信号音控制电路等电路组成。 下面简要...
  • 物理层负责将比特流转换成信号,并传递给线缆。既不知道信号会发往何处,也不在意某一位是否会在某处丢失。 数据链路层提供了一种能够正确且稳定地传输比特流的结构。 在数据链路层会把数据进行...MAC地址是由48位组
  • 帧结构包含帧头:目标MAC,源MAC和类型,上三层数据,以及帧尾:FCS帧校验序列,那么随着对OSI模型和TCP/IP的深入分析,现在开始讨论上三层数据中的IP包头,它在传输过程中,都有哪些元素组成,这些元素是由多少字节...
  • MP3是大家所熟悉的一种音乐播放格式,它其实是mpeg标准中的mpeg1的layer3编码,这个是和压缩技术相关的... MP3中有一个关键词就是:,MP3是由若干个帧组成。 1、Mp3的文件结构  MP3文件大体分为三部分:TAG_V2...
  • 为何不依靠神经网络的固定结构,为什么不让它通过遗传算法进化呢? 整洁一种遗传算法。 神经网络参数: 输入: 鸟的位置 鸟到管道的距离1 鸟到管道的距离2 输出: 跳 不跳 激活函数:tanH()(将值压缩在-1...
  • FlowNet论文阅读

    2021-04-22 15:29:31
    输入为两张图像,他们分别第 t 以及第 t+1 的图像,它们首先通过一个卷积层组成的收缩部分,用以提取各自的特征图,但是这样会使图片缩小,因此需要再通过一个扩大层,将其扩展到原图大小,进行光流预测。...
  • 很强的ccna教程

    2013-12-02 15:02:54
    在外面看来一般是由一致的路由选择协议或由一致的路由策略的路由器组成 是一个16位的编号,从1至65536 美国Internet数字注册机构(ARIN)是为每个AS分配编号的管理员 3、管理距离 管理距离是路由选择进程用来从多种...
  • [HTTP] HTTP消息

    2020-08-09 15:27:48
    HTTP消息是什么 HTTP消息是什么 HTTP报文,又称为HTTP消息,服务器和客户端之间交换数据的模块。有两种类型的消息:请求,客户端发送用来触发...HTTP请求消息和响应消息具有相似的结构以下部分组成: start line
  • MP3格式解析

    2012-07-28 17:39:09
    MP3 文件是由帧(frame)构成的,是MP3 文件最小的组成单位。MP3 的全称应为MPEG1 Layer-3 音频文件,MPEG(Moving Picture Experts Group)在汉语中译为活动图像专家组,特指活动影音压缩标准,MPEG 音频文件是MPEG1 ...
  • NAS(Network Attached Storage,网络附加存储)的典型组成是使用TCP/IP协议的以太网文件服务器,一种专用数据存储服务器。可以把NAS存储设备附加在已经存在的太网上。NAS作为一种概念1996年从美国硅谷提出的,...
  • 网络中传输的数据包两部分组成:一部分协议所要用到的首部,另一部分上一层传过来的数据。首部的结构由协议的具体规范详细定义。在数据包的首部,明确标明了协议应该如何读取数据。反过来说,看到首部,也就...
  • H264码流分层 NAL层,视频数据网络抽象层,作用... H264码流可以分为两层,VCL层和NAL层,NAL的全称Network abstraction layer,叫网络抽象层,它保存了H264相关的参数信息和图像信息,NAL层多个单元NALU组成...
  • modbus通信协议

    热门讨论 2010-08-06 15:26:22
    根据网络传输模式,这可以是由一对ASCII字符组成或由一RTU字符组成。 从主设备发给从设备消息的数据域包含附加的信息:从设备必须用于进行执行由功能代码所定义的所为。这包括了象不连续的寄存器地址,要处理项的...
  • 9.分别说明什么是集中型、分配型、扩散型交换单元?什么是有向交换单元和无向交换单 元? 答 集中型:入线数大于出线数〔AM) 分配型:入线数等于出线数〔MN) 扩散型:入线数小于出线数(MN) 有向交换单元:信忘经过交换单元...
  • 2.1.5 堆栈溢出一般是由什么原因导致的? 2.1.6 什么函数不能声明为虚函数? 2.1.7 冒泡排序算法的时间复杂度是什么? 2.1.8 写出float x 与“零值”比较的if语句 2.1.9 Internet采用哪种网络协议?该协议的主要...
  • Windows CE工程实践完全解析(pdf)

    热门讨论 2011-11-12 18:59:56
    1.3 bootloader并不基于windows ce的嵌入式软件系统的必不可少的组成部分  第2章 windows ce bootloader的软件框架和支持库 2.1 以eboot为实例学习windows ce bootloader的软件框架 2.2 blcommon支持库 2.3 eboot...
  • 因此通常在谈到“互连”时,就已经暗示这些相互连接的计算机可以进行通信的,也就是说,从功能上和逻辑上看,这些计算机网络已经组成了一个大型的计算机网络,或称为互联网络,也可简称为互联网、互连网。...
  • 1.3 bootloader并不基于windows ce的嵌入式软件系统的必不可少的组成部分  第2章 windows ce bootloader的软件框架和支持库 2.1 以eboot为实例学习windows ce bootloader的软件框架 2.2 blcommon支持库 2.3 eboot...
  • 经典的一阶段框架,主干网络、FPN结构、和两个分别用于回归物体位置和预测物体类别的子网络组成。在训练过程中使用 Focal Loss,解决了传统一阶段检测器存在前景背景类别不平衡的问题,进一步提高了一阶段检测器的...

空空如也

空空如也

1 2 3
收藏数 51
精华内容 20
关键字:

帧结构是由什么组成的