【回眸】牛客网刷刷刷!嵌入式软件中也会遇到的嵌入式硬件,通讯,通讯协议专题(二)
创始人
2024-06-02 22:31:05
0

前言

最近的工作是对接硬件工程师把测试给搞定,但人家一上来说测试I2C、测试QSPI,有点招架不住。后来了解到是一些test的一部分。包括初始化,CAN bus 等等。
因为不太了解,导致现在在牛客恶补一些通讯协议。

通讯协议专题

续(一)的40

41、在CAN总线通信中,错误的种类共有 5 种:位错误, 填充错误, CRC 错误,格式错误, ACK 错误。多种错误可能同时发生

在CAN总线通信中,错误的种类正确分类为:

位错误:比较输出电平和总线电平(不含填充位),当两电平不一样时所检测到的错误。

填充错误:在需要位填充的段内,连续检测到 6位相同的电平时所检测到的错误。

CRC 错误:从接收到的数据计算出的 CRC 结果与接收到的CRC 顺序不同时所检测到的错误。

格式错误:检测出与固定格式的位段相反的格式时所检测到的错误。

ACK 错误:发送单元在ACK槽(ACK Slot)中检测出隐性电平时所检测到的错误(ACK没被传送过来时所检测到的错误)

42、对于RS485通信的特点

RS-485能够进行远距离传输主要得益于使用差分信号进行传输,当有噪声干扰时仍可以使用线路上两者差值进行判断,使传输数据不受噪声干扰。
RS-485总线上的驱动器和接收器最大数量取决于它们的负载特性。驱动器和接收器的负载都是相对单位负载而衡量的。485标准规定一根传输总线上最多可以挂接32个单位负载。
为避免信号反射,当线缆长度很长时数据传输线必须有终点,并且分支长度尽可能的短。正确的终端需要终端电阻RT匹配,其值为传输线的特性阻抗。
使用高数据速率时,只能使用较短线缆。使用低数据速率时,可以使用较长的线缆。对应低速率应用,电缆的直流电阻通过在电缆压降增加了噪声裕量,限制了电缆长度。使用高速率应用时,电缆的交流效应限制了信号质量,限制电缆长度。

43、CAN接口协议准要针对OSI七层协议中的数据链路层。数据链路层的功能是将物理层收到的信号组织成有意义的消息,并提供传送错误控制等传输控制的流程。CAN接口协议将数据链路层分为两层:MAC层和LLC层,每层都定义了相应的事项,下列事项是LLC层的是

错误恢复事项属于LLC层功能,其他均属于MAC功能,LLC层主要包括:接收消息的过滤,过载通知,错误恢复功能。

44、USB 设备连接到 HOST 时,HOST 必须通过默认的控制管道对其进行枚举,完成获得其设备描述、进行地址分配、获得其配置描述、进行配置等操作方可正常使用。当设备连接到主机时需要按照一定的顺序进行枚举

当设备连接到主机时,按照以下顺序进行枚举:

  1. 连接了设备的 HUB 在 HOST 查询其状态改变端点时返回对应的 bitmap,告知HOST 某个PORT 状态发生了改变。
  2. 主机向HUB 查询该PORT 的状态,得知有设备连接,并知道了该设备的基本特性。
  3. 主机等待(至少100mS)设备上电稳定,然后向HUB 发送请求,复位并使能该PORT。
  4. HUB 执行PORT 复位操作,复位完成后该PORT 就使能了。现在设备进入到defalut状态,可以从Vbus 获取不超过100mA 的电流。主机可以通过0 地址与其通讯。
  5. 主机通过0 地址向该设备发送get_device_descriptor 标准请求,获取设备的描述符。
  6. 主机再次向HUB 发送请求,复位该PORT。
  7. 主机通过标准请求set_address 给设备分配地址。
  8. 主机通过新地址向设备发送get_device_descriptor 标准请求,获取设备的描述符。
  9. 主机通过新地址向设备发送其他get_configuration 请求,获取设备的配置描述符。
  10. 根据配置信息,主机选择合适配置,通过set_configuration 请求对设备而进行配置。这时设备方可正常使用。

45、关于QSPI的间接模式

关于QSPI的间接模式,我们需要了解:

在间接模式下,通过写入 QUADSPI 寄存器来触发命令;并通过读写数据寄存器来传输数据,就如同对待其他通信外设那样。

若 FMODE = 00,则 QUADSPI 处于间接写入模式,字节在数据阶段中发送到 Flash。

若 FMODE = 01,则 QUADSPI 处于间接读取模式,在数据阶段中从 Flash 接收字节。

在间接写入模式下,固件写入数据 时,将在 FIFO 中增加数据。

在间接读出模式下,固件写入数据 时,将在 FIFO 中移除数据。

46、关于使用USB接口协议传输数据的描述

USB 采用轮询的广播机制传输数据,所有的传输都由主机发起,任何时刻整个 USB 体系内仅允许一个数据包的传输,即不同物理传输线上看到的数据包都是同一被广播的数据
包。USB 采用“令牌包”-“数据包”-“握手包”的传输机制,在令牌包中指定数据包去向或者来源的设备地址和端点(Endpoint),从而保证了只有一个设备对被广播的数据包/令牌包作出响应。握手包表示了传输的成功与否。管道是主机和设备端点之间数据传输的模型,共有两种类型的管道:无格式的流管道(Stream Pipe)和有格式的信息管道(Message Pipe)。任何USB 设备一旦上电就存在一个信息管道,即默认的控制管道,USB 主机通过该管道来获取设备的描述、配置、状态,并对设备进行配置。USB 设备连接到 HOST 时,HOST 必须通过默认的控制管道对其进行枚举,完成获得其设备描述、进行地址分配、获得其配置描述、进行配置等操作方可正常使用。USB 设备的即插即用特性即依赖于此。

47、在SDIO接口协议中,如果想要一次性读取多个字节或者多个块,需要使用哪个CMD

CMD5和CMD41是用来初始化设备的CMD,CMD52和CMD53是用来读取数据的,但是CMD52一次只能读一个字节,CMD53可以一次读取多个字节或者多个块。

48、在USB接口协议中,数据包按照PID可以分为哪几类

USB协议使用PID 表征了数据包的类型,分为令牌(Token)、数据(Data)、握手(Handshacke)以及特殊包4 大类,共16 种类型的PID。

49、CAN 协议按照帧格式进行交互,CAN协议帧的种类分为

CAN通信是通过以下5种类型的帧进行的:
数据帧,遥控帧,错误帧,过载帧,帧间隔

50、PCI接口协议规定所有的PCI设备都必须支持基本的配置空间,这个配置空间的大小为

所有PCI设备必须支持基本的配置空间地址范围为0x00-0x3f,共64个字节。

51、CAN 接口使用两根线来连接各个单元:CAN_H 和CAN_L,CAN 控制器通过判断这两根线上的电位差来得到总线电平,关于CAN电平描述,正确的是

CAN总线电气特性规定:

显性电平表示逻辑“0”,此时CAN_H 电平比CAN_L 高。隐形电平表示,逻辑“1”,此时CAN_H 和CAN_L 电位差为0。CAN 总线上没有节点传输数据的时候一直处于隐性状态。

总线上只要有1个节点驱动为显性,则总线表现为显性位电平,逻辑解析为“0”。只有总线上的各节点都不将总线驱动成显性电平,总线才表现为隐形位对应的电平,逻辑解析为“1”

52、在CAN总线接口协议中,错误状态可分为三种,主动错误,被动错误和总线关闭,关于这三种状态

主动错误状态是可以正常参加总线通信的状态。
处于被动错误状态是可以正常参加总线通信的状态。处于被动错误状态的单元即使检测出错误,而其它处于主动错误状态的单元如果没发现错误,整个总线也被认为是没有错误的。
总线关闭态是不可以参加总线上通信的状态。信息的接收和发送均被禁止。

53、PCIe接口协议采用了串行连接方式,并使用数据包(Packet)进行数据传输,数据报文在接收和发送过程中,需要通过多个层次

PCIe总线采用了串行连接方式,并使用数据包(Packet)进行数据传输,采用这种结构有效去除了在PCI总线中存在的一些边带信号,如INTx和PME#等信号。在PCIe总线中,数据报文在接收和发送过程中,需要通过多个层次,包括事务层、数据链路层和物理层。

54、在CAN接口协议中,接收单元通过硬件同步或者再同步的方法调整时序进行接收,硬件同步和再同步需要遵从哪些规则

硬件同步和再同步遵从如下规则
(1) 1 个位中只进行一次同步调整。
(2) 只有当上次采样点的总线值和边沿后的总线值不同时,该边沿才能用于调整同步。
(3) 在总线空闲且存在隐性电平到显性电平的边沿时,则一定要进行硬件同步。
(4) 在总线非空闲时检测到的隐性电平到显性电平的边沿如果满足条件(1)和(2),将进行再同步。但还要满足下面条件。
(5) 发送单元观测到自身输出的显性电平有延迟时不进行再同步。
(6) 发送单元在帧起始到仲裁段有多个单元同时发送的情况下,对延迟边沿不进行再同步。

55、在CAN通信协议中,数据帧数据帧由 7 个段构成。帧起始, 仲裁段,控制段,数据段, CRC 段, ACK 段, 帧结束。

数据帧是can通信实际应用中最多的帧,数据帧的每段作用如下:
帧起始:标准、扩展格式相同,表示帧开始的段。1 个位的显性位。
仲裁段:表示数据的优先级的段。标准格式和扩展格式在此的构成有所不同。
控制段:控制段由 6 个位构成,表示数据段的字节数。标准格式和扩展格式的构成有所不同。
数据段:标准、扩展格式相同,数据段可包含 0~8 个字节的数据。从MSB(最高位)开始输出。
CRC 段:标准/扩展格式相同,CRC 段是检查帧传输错误的帧。由15 个位的CRC 顺序*1 和1 个位的CRC 界定符(用于分隔的位)构成。
ACK 段:ACK 段用来确认是否正常接收。由ACK 槽(ACK Slot)和ACK 界定符2 个位构成。
帧结束:帧结束是表示该该帧的结束的段。由 7 个位的隐性位构成。

56、SDIO总线接口中,SDIO的总线有以下几根: CLK信号线,CMD信号线,DAT0-DAT3 信号线,VDD信号线,VSS1,VSS2:电源地信号线。

SDIO总线的几根线:

  1.  CLK信号:HOST给DEVICE的时钟信号.2.  CMD信号:双向的信号,用于传送命令和反应。3.  DAT0-DAT3 信号:四条用于传送的数据线。4.  VDD信号:电源信号。5.  VSS1,VSS2:电源地信号。

在SDIO总线定义中,DAT1信号线复用为中断线。在SDIO的1BIT模式下DAT0用来传输数据,DAT1用作中断线。在SDIO的4BIT模式下DAT0-DAT3用来传输数据,其中DAT1复用作中断线

57、USB协议使用PID 表征了数据包的类型,分为令牌(Token)、数据(Data)、握手(Handshacke)以及特殊包4 大类。

PID 表征了数据包的类型,分为令牌(Token)、数据(Data)、握手(Handshacke)以及特殊包4 大类,共16 种类型的PID。
对于令牌包来说,PID 之后是7 位的地址和4 位的端点号。令牌包没有数据域,以5 位的CRC 校验和结束。SOF 是一类特殊的令牌包,PID 后跟的是11 位的帧编号。
对于数据包来说,PID 之后直接跟数据域,数据域的长度为N 字节,数据域后以16 位的CRC 校验和结束。
握手包仅有PID 域,没有数据也没有校验和。
特殊的包一般用于分离传输中。

58、当PCIE总线中接入一个PCIE设备,我们往往需要先获取这个设备的物理属性,我们可以通过哪个寄存器来获取设备属性

PMCR寄存器用来获取连接设备的物理属性,PMCSR寄存器完成电源状态迁移,Link Status寄存器查看PCIE链路状态,Link Capability寄存器描述PCIE链路的属性。

59、由于RS485具有传输距离远、传输速度 快、支持节点多和抗干扰能力更强 等特点,所以RS485有很广泛的应用。在RS485接口设计中,我们通常需要 2个终端匹配电阻,其阻值要求等于传输电缆的特性阻抗。这样做的原因是

RS485需要 2个终端匹配电阻,其阻值要求等于传输电缆的特性阻抗(一般为 120Ω)。没有特性阻抗的话,当所有的设备都静止或者没有能量的时候就会产生噪 声,而且线移需要双端的电压差。没有终接电阻的话,会使得较快速的发送端产生多个数据信号的边缘,导致数据传输出错。接口电平是物理电气特性,和匹配电阻没关系,扩展节点数和芯片能力相关,和匹配电阻无关

60、IIC总线是一种由 PHILIPS公司开发的两线式串行总线,用于连接微控 制器及其外围设备。它是由数据线 SDA和时钟 SCL构成的串行总线,可发送和接收数据。关于IIC接口协议

考察IIC协议对接口电平时序的理解,开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。在IIC通信中,起始信号是必须的,结束信号和应答信号都不是必需的。

61、在CAN通信协议中。遥控帧是接收单元向发送单元请求发送数据所用的帧。其作用仅次于数据帧,关于遥控帧

遥控帧和数据帧是不同的。
遥控帧由 6 个段组成。遥控帧没有数据帧的数据段。没有数据段的数据帧和遥控帧是有区别的,遥控帧的RTR 位为隐性位,没有数据段, 没有数据段的数据帧和遥控帧可通过RTR 位区别开来。遥控帧的数据长度码以所请求数据帧的数据长度码表示。没有数据段的数据帧可用于各单元的定期连接确认/应答、或仲裁段本身带有实质性信息的情况下。

62、CAN总线接口大多数用于汽车行业,在实际应用中,汽车 CAN接口协议按照通信协议可分为四类,Class A,Class B,Class C和Class D,关于这几类描述

在汽车行业开发中,各大汽车厂商遵循以下标准:
Class A:通信速度10kbps,主要应用于车身系统,包括灯光类、电动窗、门锁、电动椅、遥控门锁等,属于低速CAN。
Class B:通信速度10-125kbps,主要用于状态信息系统,包括电子仪表、驾驶信息、自动空调、故障诊断等,属于高速CAN。
Class B:通信速度125kbps-1Mbps,主要用于实时控制系统,包括发动机控制、变速器控制、刹车控制、悬挂控制、ABS等,属于高速CAN。
Class D:通信速度5Mbps以上,主要用于 多媒体。属于高速CAN。

63、PCIE接口协议在PCI接口上扩展了0x40-0xff这段配置空间,这段配置空间主要存放的是

这段配置空间shi PCIE 总线非常重要的一段配置空间,主要存放MSI中断机制和电源管理相关的Capability结构.

64、在CAN接口协议中

关于位错误,需要注意:
位错误由向总线上输出数据帧、遥控帧、错误帧、过载帧的单元和输出ACK 的单元、输出错误的单元来检测。
在仲裁段输出隐性电平,但检测出显性电平时,将被视为仲裁失利,而不是位错误。
在仲裁段作为填充位输出隐性电平时,但检测出显性电平时,将不视为位错误,而是填充错误。
发送单元在ACK 段输出隐性电平,但检测到显性电平时,将被判断为其它单元的ACK 应答,而非位错误。
输出被动错误标志(6 个位隐性位)但检测出显性电平时,将遵从错误标志的结束条件,等待检测出连续相同6 个位的值(显性或隐性),并不视为位错误。

65、CAN通信协议中,错误帧用于在接收和发送消息时检测出错误通知错误的帧。错误帧由错误标志和错误界定符构成

关于错误帧,基本概念如下:
错误标志包括主动错误标志和被动错误标志两种, 主动错误标志由6 个位的显性位构成。
错误标志包括主动错误标志和被动错误标志两种, 被动错误标志由6 个位的隐性位构成。
错误界定符由 8 个位的隐性位构成。
处于主动错误状态的单元检测出错误时输出主错误标志,处于被动错误状态的单元检测出错误时输出被动错误标志

66、QSPI接口协议规定QSPI通过配置,可以工作在几种不同的工作模式

QSPI接口协议规定该接口可以在以下三种模式下工作:
① 间接模式:使用 QSPI 寄存器执行全部操作;
② 状态轮询模式:周期性读取外部 Flash 状态寄存器,而且标志位置 1 时会产生中断(如擦除或烧写完成,会产生中断);
③ 内存映射模式:外部 Flash 映射到微控制器地址空间,从而系统将其视作内部存储器;

67、在PCIE接口协议实际使用中,峰值带宽是我们评估总线速度的参考标准之一,假如PCIE总线频率为2.5GHz,数据宽位为32位,此时的峰值带宽为

PCIE总线上的峰值带宽计算公式为总线频率 * 数据位宽 * 2,所以总线带宽为2.5322=160 GT/s

68、USB接口是我们常见的接口之一,目前USB接口协议已经跟新到USB4.0,应用非常广泛,关于USB接口描述

关于USB,USB 是一种支持热插拔的高速串行传输总线,它使用差分信号来传输数据。USB 支持“总线供电”和“自供电”两种供电模式。在总线供电模式下,设备最多可以获得500mA 的电流。USB 体系包括“主机”、“设备”以及“物理连接”三个部分,一个USB 系统中仅有一个USB 主机。USB 体系采用分层的星型拓扑来连接所有USB 设备。

69、在CAN通信协议中,过载帧是用于接收单元通知其尚未完成接收准备的帧。过载帧由过载标志和过载界定符构成。关于过载帧下列描述正确的是

过载帧的主要特性如下:
过载标志由6 个位的显性位构成。过载标志的构成与主动错误标志的构成相同。
过载界定符由8 个位的隐性位构成。过载界定符的构成与错误界定符的构成相同。

70、在CAN接口协议中,由发送单元在非同步的情况下发送的每秒钟的位数称为位速率。一个位可分为 4 段。 同步段(SS),传播时间段(PTS),相位缓冲段1(PBS1), 相位缓冲段2(PBS2),关于这四个段的作用

同步段:多个连接在总线上的单元通过此段实现时序调整,同步进行接收和发送的工作。由隐性电平到显性电平的边沿或由显性电平到隐性电平边沿最好出现在此段中。
传播时间段:用于吸收网络上的物理延迟的段。所谓的网络的物理延迟指发送单元的输出延迟、总线上信号的传播延迟、接收单元的输入延迟。这个段的时间为以上各延迟时间的和的两倍。
相位缓冲段1和相位缓冲段2作用是一样的:当信号边沿不能被包含于SS 段中时,可在此段进行补偿。由于各单元以各自独立的时钟工作,细微的时钟误差会累积起来,该段可用于吸收误差。因时钟频率偏差、传送延迟等,各单元有同步误差。再同步补偿宽度 为补偿此误差的最大值。

相关内容

热门资讯

122.(leaflet篇)l... 听老人家说:多看美女会长寿 地图之家总目录(订阅之前建议先查看该博客) 文章末尾处提供保证可运行...
育碧GDC2018程序化大世界... 1.传统手动绘制森林的问题 采用手动绘制的方法的话,每次迭代地形都要手动再绘制森林。这...
育碧GDC2018程序化大世界... 1.传统手动绘制森林的问题 采用手动绘制的方法的话,每次迭代地形都要手动再绘制森林。这...
Vue使用pdf-lib为文件... 之前也写过两篇预览pdf的,但是没有加水印,这是链接:Vu...
PyQt5数据库开发1 4.1... 文章目录 前言 步骤/方法 1 使用windows身份登录 2 启用混合登录模式 3 允许远程连接服...
Android studio ... 解决 Android studio 出现“The emulator process for AVD ...
Linux基础命令大全(上) ♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维...
再谈解决“因为文件包含病毒或潜... 前面出了一篇博文专门来解决“因为文件包含病毒或潜在的垃圾软件”的问题,其中第二种方法有...
南京邮电大学通达学院2023c... 题目展示 一.问题描述 实验题目1 定义一个学生类,其中包括如下内容: (1)私有数据成员 ①年龄 ...
PageObject 六大原则 PageObject六大原则: 1.封装服务的方法 2.不要暴露页面的细节 3.通过r...
【Linux网络编程】01:S... Socket多进程 OVERVIEWSocket多进程1.Server2.Client3.bug&...
数据结构刷题(二十五):122... 1.122. 买卖股票的最佳时机 II思路:贪心。把利润分解为每天为单位的维度,然后收...
浏览器事件循环 事件循环 浏览器的进程模型 何为进程? 程序运行需要有它自己专属的内存空间࿰...
8个免费图片/照片压缩工具帮您... 继续查看一些最好的图像压缩工具,以提升用户体验和存储空间以及网站使用支持。 无数图像压...
计算机二级Python备考(2... 目录  一、选择题 1.在Python语言中: 2.知识点 二、基本操作题 1. j...
端电压 相电压 线电压 记得刚接触矢量控制的时候,拿到板子,就赶紧去测各种波形,结...
如何使用Python检测和识别... 车牌检测与识别技术用途广泛,可以用于道路系统、无票停车场、车辆门禁等。这项技术结合了计...
带环链表详解 目录 一、什么是环形链表 二、判断是否为环形链表 2.1 具体题目 2.2 具体思路 2.3 思路的...
【C语言进阶:刨根究底字符串函... 本节重点内容: 深入理解strcpy函数的使用学会strcpy函数的模拟实现⚡strc...
Django web开发(一)... 文章目录前端开发1.快速开发网站2.标签2.1 编码2.2 title2.3 标题2.4 div和s...