【回眸】牛客网刷刷刷!嵌入式软件中也会遇到的嵌入式硬件,通讯,通讯协议专题(一)
前言
最近继续刷题,看看嵌入式软件还需要了解一些嵌入式硬件中的通讯协议和常用接口协议
比如说SPI CAN I2C
通讯协议专题
1.波特率
波特率= 每秒传送的字符数 * 字符位数。串口的工作模式为1个起始位,7个数据位,1个校验位,1个结束位,共10位,所以每秒传送的字符数为;:9600/10=960
2、CAN通讯下一些特定帧用途
CAN通信协议中,各种帧的用途如下:
数据帧 ,用于发送单元向接收单元传送数据的帧。
遥控帧 ,用于接收单元向具有相同 ID 的发送单元请求数据的帧。
错误帧 ,用于当检测出错误时向其它单元通知错误的帧。
过载帧 ,用于接收单元通知其尚未做好接收准备的帧。
帧间隔 ,用于将数据帧及遥控帧与前面的帧分离开来的帧。
3、在QSPI接口应用中,QSPI通过命令和FLASH通讯,命令包括:指令+地址+交替字节+空周期+数据五个阶段,命令的传输模式可以设置成
QSPI的传输模式可以设置为:
单线SPI模式:BK_IO0即SO,BK_IO1即SI,加上NCS和SCLK,类似于SPI模式。
双线SPI模式:BK_IO0和BK_IO1实现数据的双入双出。
四线SPI模式:BK_IO0,BK_IO1,BK_IO2,BK_IO3四根线实现数据的传输。
无指令传输模式
4、在实应用中,我们通过需要对QSPI接口进行配置,QSPI信号接口协议模式可以配置成
QSPI信号接口协议模式可以配置成:SDR 模式,DDR 模式,双闪存模式,单线模式,双线模式和四线模式。
5、CAN接口是目前应用非常广泛的现场总线接口之一,主要应用于汽车电子和工业领域,尤其是汽车领域,汽车上大量的传感器与模块都是通过 CAN总线连接起来的。
CAN总线具有很多其他总线不具备的特征,各个单元通过 CAN总线连接在一起,每个单元都是独立的 CAN节点。同一个 CAN网络中所有单元的通信速度必须一致,不同的网络之间通信速度可以不同。can网络的几点速度是可以控制的,在总线空闲时,所有单元都可以发送消息(多主控制),而两个以上的单元同时开始发送消息时,根据标识符决定优先级。 CAN 总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。但实际上可连接的单元数受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的单元数增加;提高通信速度,则可连接的单元数减少。
6、USB批量传输是实际应用中最常用的一种传输模式,需要注意点的是低速USB 设备不支持批量传输
7、RS-232是PC机与通信工业中应用最广泛的一种串行接口。RS-232被定义为一种在低速率串行通信中增加通讯距离的单端标准。RS-232采取不平衡传输方式,即所谓单端通讯方式。
RS-232对电器特性、逻辑电平和各种信号线功能都作了规定。
在TxD和RxD上:
逻辑1(MARK)=-3V~-15V
逻辑0(SPACE)=+3~+15V
在RTS、CTS、DSR、DTR和DCD等控制线上:
信号有效(接通,ON状态,正电压)=+3V~+15V
信号无效(断开,OFF状态,负电压)=-3V~-15V
8、在CAN总线通信协议中,帧间隔是用于分隔数据帧和遥控帧的帧。数据帧和遥控帧可通过插入帧间隔将本帧与前面的任何帧(数据帧、遥控帧、错误帧、过载帧)分开
过载帧在CAN协议中也是常见的一种帧,过载帧和错误帧前不能插入帧间隔。帧间隔由间隔,延迟传送,总线空闲3个段构成。
(1) 间隔
3 个位的隐性位。
(2) 总线空闲
隐性电平,无长度限制(0 亦可)。本状态下,可视为总线空闲,要发送的单元可开始访问总线。
(3) 延迟传送(发送暂时停止)
8 个位的隐性位。只在处于被动错误状态的单元刚发送一个消息后的帧间隔中包含的段。
9、在PCIE总线接口分层体系中,关于物理层的概述
物理层是PCIe总线的最底层,将PCIe设备连接在一起。PCIe总线的物理电气特性决定了PCIe链路只能使用端到端的连接方式。PCIe总线的物理层为PCIe设备间的数据通信提供传送介质,为数据传送提供可靠的物理环境。 PCIe总线的物理层还定义了一些专门的“序列”,这些序列用于同步PCIe链路,并进行链路管理。
PCIe总线标准比PCI总线有优势,采用双通道传输,全双工模式。
10、QSPI是是Motorola公司推出的SPI接口的扩展,QSPI接口协议比SPI应用更加广泛。针对QSPI外设接口
QSPI 使用 6 个信号连接Flash,分别是四个数据线BK1_IO0~BK1_IO3,一个时钟输出CLK,一个片选输出。相较于SPI ,QSPI增加了两根I/O线(SIO2,SIO3),目的是一个时钟内可以传输4个bit。QSPI协议主要通过发送命令来进行通讯,主机需要进行QSPI接口的配置。QSPI 通过命令与 FLASH通信,每条命令包括:指令、地址、交替字节、空指令和数据这五个阶段,任一阶段均可跳过,但至少要包含指令、地址、交替字节或数据阶段之一。
11、在实际工程项目应用中,SPI接口无法满足大容量和大吞吐量的情况,此时我们就需要使用QSPI接口,并配置成双闪存模式来满足扩容和增大吞吐量的需求,这也是我们最常用的模式之一,关于QSPI的双闪存模式
双闪存模式。即QSPI 使用两个外部四线 SPI Flash(FLASH 1 和 FLASH 2),在每个周期中发送/接收 8 位(在 DDR 模式下为16 位),能够有效地将吞吐量和容量扩大一倍。每个 Flash 使用同一个 CLK 并可选择使用同一个 nCS 信号,但其 IO0、IO1、IO2 和 IO3 信号是各自独立的。双闪存模式可与单比特模式、双比特模式以及四比特模式结合使用,也可与 SDR 或 DDR 模式相结合。在双闪存模式下读取 Flash 状态寄存器时,需要读取的字节数是单闪存模式下的 2 倍。在双闪存模式下,FLASH 1 接口信号的行为基本上与正常模式下相同。在指令、地址、交替字节以及空指令周期阶段,FLASH 2 接口信号具有与 FLASH 1 接口信号完全相同的波形。
11、目前绝大多数主流芯片内部自带了温度传感器,但是因为芯片温升较大 等问题,与实际温度差别较大,所以我们一般采取外部数字温度传感器来得到较为准确的环境温度。最常用的就是DS18B20温度传感器,该传感器采用单总线技术,即单总线接口
单总线接口是一种特殊的通信接口,具有简洁且经济的特点,可使用户轻松地组建传感器网络。
所有的单总线器件要求采用严格的信号时序,以保证数据的完整性。共有 6种信号类型:复位脉冲、应答脉冲、写 0、写 1、读 0和读 1。所有这些信号,除了应答脉冲以外都由主机发出同步信号。
单总线上的所有通信都是以初始化序列开始。主机输出低电平,保持低电平时间至少 480 us,,以产生复位脉冲。接着主机释放总线 ,4.7K的上拉电阻将单 总线拉高,延时 1560 us并进入接收模式 (Rx)。
12、在CAN接口协议中,被动错误状态是易引起错误的状态,需要了解
处于被动错误状态的单元虽能参加总线通信,但为不妨碍其它单元通信,接收时不能积极地发送错误通知。
处于被动错误状态的单元即使检测出错误,而其它处于主动错误状态的单元如果没发现错误,整个总线也被认为是没有错误的。
处于被动错误状态的单元检测出错误时,输出被动错误标志。另外,处于被动错误状态的单元在发送结束后不能马上再次开始发送。在开始下次发送前,在间隔帧期间内必须插入“延迟传送”(8 个位的隐性位)。
13、关于PCIE接口配置空间中的Capability结构
PCIE总线规范要求所有的设备必须支持Capability结构。在一个PCIE设备中,可能包含有多个Capability结构。每一个Capability结构都有唯一的ID号。每一个Capability寄存器都有一个指针,指向下一个Capability结构。
14、在USB接口协议体系中,从功能上来说,USB HUB 必须支持的连接行为不包括
从功能上来说,HUB 必须支持连接行为、电源管理、设备连接/移除检测、总线错误检测和恢复、高/全/低速设备支持。地址分配不在其范围内。
关于USB传输我们需要了解。
USB 采用小端字节顺序,在总线上先传输一个字节的最低有效位,最后传输最高有效位,采用NRZI 编码,若遇到连续的6 个1 要求进行为填充,即插入一个0。
所有的USB 包都由SYNC 开始,高速包的SYNC 宽度为32bit,全速/低速包的SYNC段度为8bit。实际接收到的SYNC 产度由于USB HUB 的关系,可能会小于该值。
控制传输是一种可靠的双向传输,一次控制传输可分为三个阶段。第一阶段为从HOST 到Device 的SETUP 事务传输,这个阶段指定了此次控制传输的请求类型;第二阶段为数据阶段,也有些请求没有数据阶段;第三阶段为状态阶段,通过一次IN/OUT 传输表明请求是否成功完成。
控制传输通过控制管道在应用软件和Device 的控制端点之间进行,控制传输过程中传输的数据是有格式定义的,USB 设备或主机可根据格式定义解析获得的数据含义。其他三种传输类型都没有格式定义。
控制传输对于最大包长度有固定的要求。对于高速设备该值为64Byte;对于低速设备该值为8。
在一帧内如果有多余的未用时间,并且没有同步和中断传输,可以用来进行控制传输。
但是控制传输在访问总线时也受到一些限制,如:
高速端点的控制传输不能占用超过20%的微帧,全速和低速的则不能超过10%。
在一帧内如果有多余的未用时间,并且没有同步和中断传输,可以用来进行控制传输。
15、在我们实际工作中,串口通信是最常用的接口协议之一,串口作为MCU的重要外部接口,同时也是软件开发重要的调试手段,其重要性不言而喻,串口的通信方式为
串口是一种异步,串行通信,全双工模式。
16、在CAN接口协议中,错误状态依靠发送错误计数和接收错误计数来管理,根据计数值决定进入何种状态。错误状态和计数值的关系正确的是
主动错误状态 :发送错误计数值(TEC)为0~127,且者接收错误计数值(REC)为0~127。
每个CAN节点都有发送错误计数器TEC和接收错误计数器,计数器会根据各种情况进行累加或缩减变动。所有节点正常工作时TEC和REC=0,所有节点均处于主动错误状态。
当节点检测到错误后会发送带主动错误标志的错误帧,当某个节点错误帧发送过多导致TEC或REC>127,该节点就会切换到被动错误状态。当总线恢复正常后,TEC和REC开始减少,直到≤127后,节点恢复到主动错误状态。
当TEC累积到>255后,该节点会进入总线关闭。当处于总线关闭状态的节点连续128次检测到11个隐性位后,TEC和REC置0,节点回复到主动错误状态。
17、RS-485通信接口是美国电子工业协会在1983年批准了一个新的平衡传输标准接口,相较于传统的RS232接口,RS485的接口特性有
RS485的特点包括:
① 接口电平低,不易损坏芯片。 RS485的电气特性:逻辑“ 1”以两线间的电压差为 +(2~6)V表示;逻辑“ 0”以两线 间的电压差为 --(2~6)V表示。接口信号电平比 RS232降低了,不易损坏接口电路的芯片,且该电平与 TTL电平兼容,可方便与 TTL 电路连接。
② 传输 速率高。 10米时, RS485的数据最高传输速率 可达 35Mbps,在 1200m时,传输速度可达 100Kbps。
③ 抗干扰能力强。 RS485接口是采用平衡驱动器和差分接收器的组合,抗共模干扰能力增强,即抗噪声干扰性好。 传输距离远,支持节点多。 RS485总线 最长可以传输 1200m以上(速率≤ 100Kbps
④ 一般最大支持 32个节点,如果使用特制的 485芯片,可以达到 128个或者 256个节点,最大的可以支持到 400个节点。
18、SDIO是我们常用接口协议之一,其应用非常广泛,如SD卡,WIFI ,BT等无线通信模块大部分都是使用SDIO接口连接
SDIO总线和USB总线类似,SDIO总线也有两端,其中一端是主机(HOST)端,另一端是设备端(DEVICE)。
所有的通信都是由HOST端发出命令开始的。
在DEVICE端只要能解溪HOST的命令,就可以同HOST进行通信了。
SDIO的HOST可以连接多个DEVICE。
19、SPI 串行外围设备接口。是,是一种高速的,全双工,同步的通信接口,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为 PCB的布局上节省空间,提供方便。关于SPI接口协议
针对SPI接口,我们重点了解SPI工作模式,SPI的四种工作模式通过CPOL和 CPHA分别控制,其中
CPOL=1代表上升沿采集数据,CPOL=0代表下降沿采集数据,CPHA=0代表第一个时钟跳变采集数据,CPHA=1代表第二个时钟跳变采集数据,SPI在驱动不同的器件时,必须注意其支持的工作 模式,需要设置合适的 SPI工作 模式,才可以正常通信。
20、使用RS232接口时,当通信距离较近时,可不需要调制解调器Modem,通信双方可以直接连接,这种情况下,只需使用少数几根信号线即可,最简单的情况,只需三根线便可实现全双工异步串行通信,这三根线分别是
在近距离通信(小于15m)时,最简单的情况,只需三根线发送线、接收线、信号地线便可实现全双工异步串行通信
21、在CAN接口协议中,每个节点错误检测功能·错误通知功能·错误恢复功能,所有的单元都可以检测错误。
CAN协议中,单元错误始终处于 3 种状态之一。
(1) 主动错误状态
主动错误状态是可以正常参加总线通信的状态。处于主动错误状态的单元检测出错误时,输出主动错误标志。
(2) 被动错误状态
被动错误状态是易引起错误的状态。处于被动错误状态的单元虽能参加总线通信,但为不妨碍其它单元通信,接收时不能积极地发送错误通知。处于被动错误状态的单元即使检测出错误,而其它处于主动错误状态的单元如果没发现错误,整个总线也被认为是没有错误的。处于被动错误状态的单元检测出错误时,输出被动错误标志。另外,处于被动错误状态的单元在发送结束后不能马上再次开始发送。在开始下次发送前,在间隔帧期间内必须插入“延迟传送”(8 个位的隐性位)。
(3) 总线关闭态
总线关闭态是不能参加总线上通信的状态。信息的接收和发送均被禁止。这些状态依靠发送错误计数和接收错误计数来管理,根据计数值决定进入何种状态。
总线可用属于正常状态。
22、RS485相比于232,最大的特点是可扩展性,RS485一般最大支持 32个节点,如果使用特制的 485芯片,可以达到 128个或者 256个节点,最大的可以支持到 400个节点。RS485通过这些节点构成一个内部网络,这些网络结构不能是
RS485使用在点对点网络,线型网络,总线型网络中,不能是星型或者环型网络。
23、在PCIe体系结构中,数据报文首先在设备的核心层中产生,然后再经过该设备的事务层、数据链路层和物理层,最终发送出去。关于PCIE事务层,不正确的是
事务层定义了PCIe总线使用总线事务,其中多数总线事务与PCI总线兼容。这些总线事务可以通过Switch等设备传送到其他PCIe设备或者RC。RC也可以使用这些总线事务访问PCIe设备。事务层接收来自PCIe设备核心层的数据,并将其封装为TLP后,发向数据链路层。此外事务层还可以从数据链路层中接收数据报文,然后转发至PCIe设备的核心层。事务层的一个重要工作是处理PCIe总线的“序”。在PCIe总线中,“序”的概念非常重要,也较难理解。在PCIe总线中,事务层传递报文时可以乱序,这为PCIe设备的设计制造了不小的麻烦。事务层还使用流量控制机制保证PCIe链路的使用效率。
24、随着现代处理器技术的发展,PCI总线已经无法满足传输速度的要求,进而衍生出了PCIE接口,PCIE是目前处理最常用的接口之一,关于PCIE与PCI的差别,描述正确的是
PCI总线使用并行总线结构,在同一条总线上的所有外部设备共享总线带宽,而PCIe总线使用了高速差分总线,并采用端到端的连接方式,因此在每一条PCIe链路中只能连接两个设备。这使得PCIe与PCI总线采用的拓扑结构有所不同。PCIe总线除了在连接方式上与PCI总线不同之外,还使用了一些在网络通信中使用的技术,如支持多种数据路由方式,基于多通路的数据传递方式,和基于报文的数据传送方式,并充分考虑了在数据传送中出现服务质量
25、在CAN接口协议中,关于错误帧的输出
位错误,填充错误,格式错误,ACK应答错误是从检测出错误后的下一位开始输出错误标志。而CRC校验错误是从ACK界定符后的下一位开始输出错误标志。
26、USB 体系在实现时采用分层的结构,在HSOT 端,应用软件不能直接访问USB 总线,而必须通过USB系统软件和USB主机控制器来访问USB 总线,在USB总线上和USB 设备进行通讯。从逻辑上可以分为功能层、设备层和总线接口层三个层次
在USB总线上和USB 设备进行通讯。从逻辑上可以分为功能层、设备层和总线接口层。功能层完成功能级的描述、定义和行为。设备层则完成从功能级到传输级的转换,把一次功能级的行为转换为一次一次的基本传输。USB 总线接口层则处理总线上的Bit 流,完成数据传输的物理层实现和总线管理,设备层和设备层之间不可以直接访问数据,需要透过总线接口层。
27、CAN总线通信是一种多主通信方式,每个节点通过竞争获得总线的使用权,关于总线优先级
CAN总线竞争优先级的策略如下:
在总线空闲态,最先开始发送消息的单元获得发送权。
多个单元同时开始发送时,各发送单元从仲裁段的第一位开始进行仲裁。连续输出显性电平最多的单元可继续发送。
具有相同 ID 的数据帧和遥控帧在总线上竞争时,仲裁段的最后一位(RTR)为显性位的数据帧具有优先权,可继续发送。
标准格式 ID 与具有相同ID 的遥控帧或者扩展格式的数据帧在总线上竞争时,标准格式的RTR 位为显性位的具有优先权,可继续发送。
28、相比较SPI,QSPI 使用四个数据线BK1_IO0~BK1_IO3来传递数据,关于这四个数据线接口
在QSPI接口中,BK1_IO0:在双线 / 四线模式中为双向 IO,单线模式中为串行输出,适用于FLASH 1。
BK1_IO1:在双线 / 四线模式中为双向 IO,单线模式中为串行输入,适用于FLASH 1。
BK1_IO2:在四线模式中为双向 IO,适用于 FLASH 1。不能用于单/双线模式。
BK1_IO3:在四线模式中为双向 IO,适用于 FLASH 1。不能用于单/双线模式。
29、CAN接口的主要特点有
CAN总线之所以应用广泛是因为具有以下特点:
①、多主控制:在总线空闲时,所有单元都可以发送消息(多主控制),而两个以上的单元同时开始发送消息时,根据标识符( ID)决定优先级。 ID 并不是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始发送消息时,对各消息 ID 的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作。
②、系统的柔软性:与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在总线上的其它单元的软硬件及应用层都不需要改变。
③、通信速度快,距离远;最高1Mbps(距离小于40M),最远可达10KM(速率低于5Kbps)。
④、具有错误检测、错误通知和错误恢复功能;所有单元都可以检测错误(错误检测功能),检测出错误的单元会立即同时通知其他所有单元(错误通知功能),正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送此消息直到成功发送为止(错误恢复功能)。
⑤、故障封闭功能;CAN 可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上隔离出去。
⑥、连接节点多;CAN 总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。但实际上可连接的单元数受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的单元数增加;提高通信速度,则可连接的单元数减少。
30、USB 设备通过管道和HOST 通信,在默认控制管道上接受并处理以下哪几种类型的请求
USB 设备通过管道和HOST 通信,在默认控制管道上接受并处理以下三种类型的请求:
标准请求
类请求
厂商请求
不包括用户请求。
31、在CAN总线接口协议中经常使用到位填充,位填充是为防止突发错误而设定的功能。关于位填充,下列描述不正确的是
位填充是为防止突发错误而设定的功能,当同样的电平持续 5 位时则添加一个位的反型数据。在发送数据帧和遥控帧时,SOF~CRC 段间的数据,相同电平如果持续5 位,在下一个位(第6 个位)则要插入1 位与前5 位反型的电平。在接收数据帧和遥控帧时,SOF~CRC 段间的数据,相同电平如果持续5 位,需要删除下一个位(第6 个位)再接收。如果这个第6 个位的电平与前5 位相同,将被视为错误并发送错误帧。只有数据帧中才会使用到位填充
32、USB 接口协议定义了好几种类型的传输,不包括异步传输
USB 是一种支持热插拔的高速串行传输总线,共支持控制传输,中断传输,批量传输,同步传输四种传输模式
33、相比于PCI总线,PCIE总线接口使用两种电源信号供电Vcc和Vaux,其额定电压为3.3V,使用Vaux的主要原因是
PCIe设备使用两种电源信号供电,分别是Vcc与Vaux,其额定电压为3.3V。其中Vcc为主电源,PCIe设备使用的主要逻辑模块均使用Vcc供电,而一些与电源管理相关的逻辑使用Vaux供电。在PCIe设备中,一些特殊的寄存器通常使用Vaux供电,如Sticky Register,此时即使PCIe设备的Vcc被移除,这些与电源管理相关的逻辑状态和这些特殊寄存器的内容也不会发生改变。在PCIe总线中,使用Vaux的主要原因是为了降低功耗和缩短系统恢复时间。因为Vaux在多数情况下并不会被移除,因此当PCIe设备的Vcc恢复后,该设备不用重新恢复使用Vaux供电的逻辑,从而设备可以很快地恢复到正常工作状状态。
34、在USB接口协议中,关于中断传输,描述不正确的是
ADC均是USB中断传输的特性,注意:除高速高带宽中断端点外,一个微帧内仅允许一次中断事务传输,高速高带宽端点最多可以在一个微帧内进行三次中断事务传输。
35、在CAN接口协议中,位错误可用于数据帧,遥控帧,过载帧,错误帧。不能用于帧间隔
在CAN接口协议中,位错误可用于数据帧,遥控帧,过载帧,错误帧。不能用于帧间隔
36、关于USB 接口协议定义的四种类型的传输,描述不正确的是 中断传输:用于对延迟要求严格、小量数据的可靠传输,如键盘、游戏手柄等,设备会先中断HOST,继而通知HOST 启动传输。
不同的传输类型在物理上并没有太大的区别,只是在传输机制、主机安排传输任务、可占用USB 带宽的限制以及最大包长度有一定的差异,根据这些特点,不同的传输类型应用于不同的场合。
控制传输:主要用于在设备连接时对设备进行枚举以及其他因设备而已的特定操作。
中断传输:用于对延迟要求严格、小量数据的可靠传输,如键盘、游戏手柄等。
批量传输:用于对延迟要求宽松,大量数据的可靠传输,如U 盘等。
同步传输:用于对可靠性要求不高的实时数据传输,如摄像头、USB 音响等。
需要注意的是:中断传输并不意味这传输过程中,设备会先中断HOST,继而通知HOST 启动传输。中断传输也是HOST 发起的传输,采用轮询的方式询问设备是否有数据发送,若有则传输数据,否则NAK 主机。
37、关于QSPI传输的 几个阶段
指令阶段:此 阶段 通过寄存器的 INSTRUCTION字段指定一个 8位指令发送到FLASH。注意,指令阶段,一般是通过 IO0单线发送,但是也可以配置为双线 /四线发送指令。
地址阶段:此阶段可以发送 1~4字节地址给 FLASH芯片,指示要操作的地址。地址阶段同样可以以单线 /双线 /四线模式发送。
交替字节(复用字节)阶段:此阶段可以发送1~4字节数据给 FLASH芯片,一般用于控制操作模式。 交替 字节 同样可以以单线 /双线 /四线模式发送。
空指令周期阶段:在空指令周期阶段,在给定的1~31个周期内不发送或接收任何数据,目的是当采用更高的时钟频率时,给 FLASH芯片留出准备数据阶段的时间。
数据阶段:此阶段可以从 FLASH读取 /写入任意字节数量的数据。数据阶段同样可以以单线 /双线 /四线模式发送。
38、在PCIE总线接口信号中,关于WAKE#信号
当PCIe设备进入休眠状态,主电源已经停止供电时,PCIe设备使用该信号向处理器系统提交唤醒请求,使处理器系统重新为该PCIe设备提供主电源Vcc。在PCIe总线中,WAKE#信号是可选的,因此使用WAKE#信号唤醒PCIe设备的机制也是可选的。值得注意的是产生该信号的硬件逻辑必须使用辅助电源Vaux供电。WAKE#是一个Open Drain信号,一个处理器的所有PCIe设备可以将WAKE#信号进行线与后,统一发送给处理器系统的电源控制器。当某个PCIe设备需要被唤醒时,该设备首先置WAKE#信号有效,然后在经过一段延时之后,处理器系统开始为该设备提供主电源Vcc,并使用PERST#信号对该设备进行复位操作。此时WAKE#信号需要始终保持为低,当主电源Vcc上电完成之后,PERST#信号也将置为无效并结束复位,WAKE#信号也将随之置为无效,结束整个唤醒过程。
39、在SDIO接口协议中,用来初始化SDIO卡设备的CMD是CMD5
在SDIO接口协议中,用来初始化SDIO卡设备的CMD是CMD5,CMD41 是用来初始化SD卡用的。CMD52和CMD53 是用来读写数据的命令。
40、在PCIE接口协议分层体系中,数据链层的主要工作是
数据链路层主要功能是保证来自发送端事务层的报文可以可靠、完整地发送到接收端的数据链路层。来自事务层的报文在通过数据链路层时,将被添加Sequence Number前缀和CRC后缀。数据链路层使用ACK/NAK协议保证报文的可靠传递。
相关文章:
【回眸】牛客网刷刷刷!嵌入式软件中也会遇到的嵌入式硬件,通讯,通讯协议专题(一)
前言 最近继续刷题,看看嵌入式软件还需要了解一些嵌入式硬件中的通讯协议和常用接口协议 比如说SPI CAN I2C 通讯协议专题 1.波特率 波特率 每秒传送的字符数 * 字符位数。串口的工作模式为1个起始位,7个数据位,1个校验位,1个…...
使用Vue展示数据(动态查询)
学习内容来源:视频P4 本篇文章进度接着之前的文章进行续写 精简前后端分离项目搭建 Vue基础容器使用 目录选择组件修改表格组件修改分页组件增加后端接口前端请求数据接口页面初始化请求数据点击页码请求数据选择组件 在官方文档中选择现成的组件,放在页…...
构建数据库测试数据——mysql
建表脚本 -- 建表 CREATE TABLE test_table (id INT(11) NOT NULL AUTO_INCREMENT,varchar_col VARCHAR(50),char_col CHAR(10),text_col TEXT,tinyint_col TINYINT(4),smallint_col SMALLINT(6),mediumint_col MEDIUMINT(9),int_col INT(11),bigint_col BIGINT(20),float_col…...
你想要的Android性能优化系列:启动优化 !
App启动优化为什么要做App的启动优化?网页端存在的一个定律叫8秒定律:即指用户访问一个网站时,如果等待打开的时间超过8秒,超过70%的用户将会放弃等待。同样的,移动端也有一个8秒定律:如果一个App的启动时间…...
python3的基础入门3:基本数据类型
基本数据类型 python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。 在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。 等号(&…...
消息队列原理与实战-学习笔记
消息队列:保存消息的一个容器,本质是个队列,但是需要支持高吞吐、高并发、高可用。 1 前世今生 1.1 业界消息队列对比 Kafka:分布式的、分区的、多副本的日志提交服务,在高吞吐场景下发挥较为出色RocketMQ:低延迟、强一致、高性…...
Linux权限相关知识(大量图文展示,及详细操作)
Linux权限相关概念 Linux下有两种用户:一种是超级用户(root)、一种是普通用户。 超级用户:可以在linux系统下做任何事情,不受限制 普通用户:在linux下做有限的事情。 超级用户的命令提示符是“#”…...
Ep_操作系统面试题-什么是协程
协程 是一种 比线程更加轻量级的存 在,一个线程可以拥有多个协程。是一个特殊的 函数 ,这个函数可以在某个地方挂起,并且可以重新在挂起处外继续运行。协程 不是被操作系统内核所管理 , 而完全是由程序所控制(也就是在…...
在C#中使用互斥量解决多线程访问共享资源的冲突问题
在阿里云上对互斥量的概述:互斥量的获取是完全互斥的,即同一时刻,互斥量只能被一个任务获取。而信号量按照起始的计数值的配置,可以存在多个任务获取同一信号量的情况,直到计数值减为0,则后续任务无法再获取…...
JavaEE进阶第六课:SpringBoot配置文件
上篇文章介绍了SpringBoot的创建和使用,这篇文章我们将会介绍SpringBoot配置文件 目录1.配置文件的作用2.配置文件的格式2.1 .properties语法2.1.1.properties的缺点2.2 .yml语法2.2.1优点分析2.2.2配置与读取对象2.2.3配置与读取集合2.2.4补充说明3.设置不同环境的…...
MySQL基础(一)SQL分类、导入、SELECT语句,运算符
目录 MySQL安装以及相关工具 SQL分类 导入数据 最基本的SELECT语句 SELECT FROM 列的别名 去除重复行 着重号 查询常数 描述表结构 过滤数据(重要) 运算符 算数运算符 比较运算符 符号运算符 非符号运算符 逻辑运算符 位运算符 MySQL安…...
反激与正激的区别
之前学习了正激开关电源,但是对于正激和反激一直不是很清楚,网上找了一篇,觉得感觉该可以,以此记录。正激和反激是两种不同的开关电源技术一、正激(1)概述正激式开关电源是指使用正激高频变压器隔离耦合能量…...
王道操作系统课代表 - 考研计算机 第四章 文件管理 究极精华总结笔记
本篇博客是考研期间学习王道课程 传送门 的笔记,以及一整年里对 操作系统 知识点的理解的总结。希望对新一届的计算机考研人提供帮助!!! 关于对 “文件管理” 章节知识点总结的十分全面,涵括了《操作系统》课程里的全部…...
前端开发规范,你真的了解吗?一起来学习一下前端开发规范,让你的代码高级起来!
代码规范 1 编码风格规范 1.1 使用ES6风格编码源码 定义变量使用let ,定义常量使用const 使用export ,import 模块化 1.2 组件 props 原子化 提供默认值 使用 type 属性校验类型 使用 props 之前先检查该 prop 是否存在 1.3 避免 this.$parent 1.4 谨慎使用 …...
Licode—基于webrtc的SFU/MCU实现
1. webrtc浅析webrtc的前世今生、编译方法、行业应用、最佳实践等技术与产业类的文章在网上卷帙浩繁,重复的内容我不再赘述。对我来讲,webrtc的概念可以有三个角度去解释:(1).一个W3C和IETF制定的标准,约定…...
开发运维工具推荐 --- 解决远程访问局域网服务的问题。开发调试推荐
一、FastNat 可为您解决的问题1. 没公网服务器,需要发布本地的站点或网络程序到公网上,供他人访问;此项功能大大方面开发人员进行远程调试,微信小程序等开发工作进行。2. 需要远程到在其他网络中的设备,但两处的网络不…...
【华为OD机试 】单词倒序(C++ Java JS Python)
文章目录 题目描述输入描述输出描述备注用例题目解析C++ 解法JavaScript算法源码Java算法源码Python解法题目描述 输入单行英文句子,里面包含英文字母,空格以及,.?三种标点符号,请将句子内每个单词进行倒序,并输出倒序后的语句。 输入描述 输入字符串S,S的长度 1 ≤ N…...
PLC 诊断故障的基本原理
(1)东欢坨选煤厂机电设备故障信号主要取自开关量信号,PLC 通过开关量的通和断对设备进行故障诊断。PLC 对开关量的识别是通过输入模块来实现的。PLC 控制设备运行时,设备中的温度、压力、急停、跑偏、速度、过热以及各种按钮和行程开关的传感器与 PLC 输入模块相连接,输入模块的…...
QT打开外部程序并嵌入Qt子窗口的缺点
首先可以参考如下文章: QT打开外部程序并嵌入Qt界面_qt界面嵌入外部应用程序_初学小白Lu的博客-CSDN博客 Qt嵌入外部程序界面初探_qt嵌入其他程序窗口_liming4675的博客-CSDN博客 QT 如何把外部程序嵌入到QT界面_qt嵌入其他程序窗口_hellokandy的博客-CSDN博客 Qt界…...
如何系统地学习 C++ 语言?
C作为具有广泛适用性的编程语言,学习C的人越来越多,但是如何系统地学习C还是个问题,下面我们一起来看一下C学习的方法有哪些吧。 首先,要学习C,最重要的就是掌握C的基础知识。 比如数据结构、算法、微积分等。这些都是…...
【数据结构】单链表
链表1.为什么存在链表2.链表的概念3.单链表的实现4.测试1.为什么存在链表 我们在学习顺序表的时候,了解到顺序表有一定的缺陷:(1)在中间插入数据和删除数据需要挪动数据,时间复杂度是O(N)&…...
Windows 右键菜单扩展容器 [开源]
今天给大家分享一个我做的小工具,可以自定义扩展右键菜单的功能来提高工作效率,效果图如下: 如上图,右键菜单多了几个我自定义的菜单: 复制文件路径 复制文件夹路径 我的工具箱 <走配置文件动态创建子菜单&#x…...
爆文制造机!小红书热榜3个方向,告诉你选题诀窍!
我们知道,不论是达人创作内容,还是品牌制定Brief,都需要提前调研筛选海量信息,这时候如果有一个自己的内容素材库,就省事多啦。按照内容需求,我们可以按3个角度划分小红书内容素材:笔记类型、竞…...
【Web安全社工篇】——水坑攻击
作者名:白昼安全主页面链接: 主页传送门创作初心: 以后赚大钱座右铭: 不要让时代的悲哀成为你的悲哀专研方向: web安全,后渗透技术每日鸡汤:努力赚钱不是因为爱钱“水坑攻击”,黑客攻…...
SpringBoot 整合 MongoDB 实现数据的增删改查!
一、介绍在 MongoDB 中有三个比较重要的名词:数据库、集合、文档!数据库(Database):和关系型数据库一样,每个数据库中有自己的用户权限,不同的项目组可以使用不同的数据库集合(Colle…...
VUE前端常问面试题
文章目录一、VUE前端常问面试题二、文档下载地址一、VUE前端常问面试题 1、MVC和MVVM 区别 MVC:MVC全名是 Model View Controller,即模型-视图-控制器的缩写,一种软件设计典范。 Model(模型):是用于处理应用程序数据逻辑部分。通…...
c++中map/unordered_map的不同遍历方式以及结构化绑定
文章目录方式一:值传递遍历方式二:引用传递遍历方式三:使用迭代器遍历方式四:结构化绑定(c17特性)结构化绑定示例(1)元组tuple结构化绑定(2)结构体结构化绑定(3ÿ…...
Kafka系列之:Kraft模式
Kafka系列之:Kraft模式 一、Kraft架构二、Kafka的Kraft集群部署三、初始化集群数据目录四、创建KafkaTopic五、查看Kafka Topic六、创建生产者七、创建消费者一、Kraft架构 Kafka元数据存储在zookeeper中,运行时动态选举controller,由controller进行Kafka集群管理。Kraft模式…...
动态规划:leetcode 139.单词拆分、多重背包问题
leetcode 139.单词拆分leetcode 139.单词拆分给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1&…...
Stable Diffusion原理详解
Stable Diffusion原理详解 最近AI图像生成异常火爆,听说鹅厂都开始用AI图像生成做前期设定了,小厂更是直接用AI替代了原画师的岗位。这一张张丰富细腻、风格各异、以假乱真的AI生成图像,背后离不开Stable Diffusion算法。 Stable Diffusion…...
珠海seo海网站建设/键词优化排名
操作系统:centos6.4X86_64数据库:oracle12cR1需要的安装包:rlwrap-0.37.tar.gz(网上可下载)readline-6.0-4.el6.x86_64.rpm(镜像包)readline-devel-6.0-4.el6.x86_64.rpm(镜像包&…...
做网站常规语言/seo推广网络
大家好,我是小马老师。 本文介绍lammps计算CNA的方法。 CNA(公共邻居分析)可用来分析原子周围局部晶体结构,如FCC、BCC、HCP以及晶体缺陷。 在ovito后处理软件中有CNA的计算,但这个计算在单个原子的体系比较准…...
早晨网站建设/网站推广多少钱
数据结构c语言员工信息管理系统今天多一份拼搏明天多几份欢笑。数据结构实习报告---信息管理学校 石家庄铁道大学指导老师 张翠肖班级 信0901-1班学号姓名 张洁院系 信息分院2011.07.05学生信息管理系统一、 需求分析本程序主要是执行链表的删除插入等功能根据程序提示我们可以…...
抖音代刷网站推广快速/nba最新消息新闻
2006-05-122.多元函数的值域是否为区间2.多元函2。多元函数的值域是否为区间【说是一个实数集更妥当,在大多数情形下,初等函数的值域是区间或若干个区间的并】3。一、详解一元函数为何:(1)可导←→可微【书上有专门的定理,并严格给出了证明】…...
单位网站维护 网站建设岗位/seo顾问服务咨询
一、开关电源的电路组成开关电源的主要电路是由输入电磁干扰滤波器(EMI)、整流滤波电路、功率变换电路、PWM控制器电路、输出整流滤波电路组成。辅助电路有输入过欠压保护电路、输出过欠压保护电路、输出过流保护电路、输出短路保护电路等。开关电源的电路组成方框图如下&#…...
龙岩网站制作/国内b2b十大平台排名
最近接了个美国的小项目,主要需求是把盘点机导出的数据(DBF格式)和另外的数据(csv格式)合并生成新的数据表,方便查询纠错。对方没有安装ms Access,考虑到对方使用方便,就采用了sqlite࿰…...