7 增强型ShockBurst™模式外文翻译资料

 2022-11-04 04:11

7 增强型ShockBursttrade;模式

增强型ShockBursttrade;是一种基于数据链路层的数据包,具有自动封包、定时、自动确认和重传数据包的特性。增强型ShockBursttrade;可实现与低成本主控制器的超低功耗和高性能通信。增强型ShockBursttrade;功能可以显着提高双向和单向系统的功率效率,而不会增加主控制器端的复杂性。

7.1 特性

增强型ShockBursttrade;的主要特性有:

bull;bull;1到32字节动态载荷长

bull;自动包处理

bull;自动包事务处理

△自动带载应答

△自动重发

bull;1:6星型网络的6数据通道MultiCeivertrade;

7.2 增强型ShockBursttrade;概述

增强型ShockBursttrade;使用ShockBursttrade;进行自动的包处理和定时。在传输期间,ShockBursttrade;组装数据包并记录位数以用于发送。在接收期间,ShockBursttrade;持续地在解调信号中寻找一个有效地址。当ShockBursttrade;发现一个有效地址,它会处理剩余的数据包,并进行CRC验证。如果这个包是有效的,那么载荷就被移动到RX FIFOs的一个空槽里。所有的高速处理和计时都是由ShockBursttrade;控制。

增强型ShockBursttrade;的自动包事务处理特性可以方便地用于可靠的双向数据链路。增强型ShockBursttrade;包事务是两个收发器之间的数据包交换,其中一个收发器为主接收机(PRX),另一个收发器为主发射机(PTX)。一个增强型ShockBursttrade;包事务总是从PTX发送数据包开始,到PTX收到应答包(ACK包)结束。PRX可以将用户数据附加到ACK包中,从而支持双向数据链路。

自动包事务处理工作过程如下:

1.你可以通过从PTX发送一个数据包到PRX来开始事务。增强型ShockBursttrade;会自动设置PTX为接收模式来等待ACK包。

2.如果PRX接收到了数据包,那么在返回接收模式之前,增强型ShockBursttrade;会自动组装并发送一个确认包(ACK包)给PTX。

3.如果PTX没有立即收到ACK包,那么在一个可编程的延迟后,增强型ShockBursttrade;就会自动重发原始数据包,并设置PTX为接收模式等待ACK包。

在增强型ShockBursttrade;模式中,很多参数是可以配置的,如重发的最大数量,发送与重发之间的延时。所有自动处理都是在没有MCU参与的情况下完成的。

7.3增强型ShockBursttrade;数据包格式

这一节中描述增强型ShockBursttrade;数据包的格式。增强型ShockBursttrade;数据包包含一个报头,地址,数据包控制字段、载荷和CRC字段。图5.列出了数据包的格式,其中MSB在左端。

报头 1字节

地址 3-5字节

数据包控制字段 9位

载荷 0-32字节

CRC 1-2字节

图5. 增强型Shockbursttrade;带有载荷(0-32字节)的数据包

7.3.1报头

报头是一个使接收机的解调器与即将收到的位数据流相同步的位序列。报头的长度是1字节,要么是01010101,要么是10101010。如果地址的第一位是1,那么报头会自动设置为10101010;如果地址的第一位是0,那么报头自动设置为01010101。这样做是为了确保在报头中有足够的变化以稳定接收机。

7.3.2地址

这是接收机的地址。地址用以确保数据包被正确的接收机检测和接收,防止多个nRF24L01 系统之间的意外串扰。你可以在AW寄存器中配置地址字段的宽度为3、4或5字节,见63页的表28。

注:只有一次电平变化(如000fffffff)的地址通常可以在噪声中被检测到,造成错误的检测,这可能会提高误包率。地址是报头的延伸(高低电平翻转)也会提高误包率。

7.3.3数据包控制字段

图6显示了9位数据包控制字段的格式,MSB在左端。

载荷长度 6位

PID 2位

NO_ACK 1位

图6. 数据包控制字段

数据包控制字段包含一个6位的载荷长度,一个2位的PID(包识别标志)字段和一个1位的NO_ACK标志。

7.3.3.1载荷长度

这个6位的字段指定了载荷的字节长度。载荷的长度可以从0到32字节。

编码:000000 = 0字节(只用于空ACK包),100000 = 32字节,100001 =不予理会。

只有在启用动态载荷长度功能时才使用该字段。

7.3.3.2 PID(包识别标志)

2位PID字段用于检测接收到的数据包是新的包还是重发的包。PID防止PRX设备将同一载荷多次提交给接收主机的MCU。在发送端,每通过SPI收到一个新的数据包,PID字段便会增加。PRX设备使用PID和CRC字段(参见30页7.3.5节)来判别一个数据包是新的还是重发的。当链路上丢失几个数据包时,PID字段可能会等于上一个收到的PID。如果一个数据包的PID和前一个数据包的PID相同,nRF24L01 就会比较两个CRC的和值。如果CRC和值相等,那么最后一个收到的数据包就会视为之前收到的数据包的一个副本,并被丢弃。

7.3.3.3 不应答标志(NO_ACK)

NO_ACK标志由选择性自动应答特性来控制。

只有在使用自动应答特性时才使用此标志。将此标志置为高,则命令接收机不要对数据包进行自动应答。

对于PTX,你可以用以下命令设置数据包控制字段的NO_ACK标志位:

W_TX_PAYLOAD_NOACK

然而,要使用这个功能,首先要置位FEATURE寄存器中的EN_DYN_ACK位。当你使用这个选项时,PTX会在发送数据包后直接进入待机模式I。当收到数据包时,PRX不会发送ACK包。

7.3.4载荷

载荷是书包中用户定义的内容。它可以是0到32字节的宽度,并且当它被上载到nRF24L01 时,会被无线发送出去。

增强型ShockBursttrade;提供了两种选择来处理负载长度:静态和动态。

默认值是静态载荷长度。在静态载荷长度下,发射机和接收机之间的所有数据包的长度都相同。静态载荷长度在接收端的RX_PW_Px寄存器设定。发射端的载荷长度由记录到TX_FIFO的字节数来设定,并且必须等于接收端RX_PW_Px寄存器中的值。

动态载荷长度(DPL)是静态载荷长度的一个替代选择。DPL使发射机能够将可变载荷长度的数据包发送给接收机。这意味着对于一个具有不同载荷长度的系统,不需要将数据包的长度扩展为最长载荷时的数据包长度。

有了DPL特性,nRF24L01 可以自动译出收到的数据包的载荷长度,而不是使用RX_PW_Px寄存器。MCU可以使用R_RX_PL_WID命令来读取收到的载荷长度。

注意:当使用R_RX_PL_WID命令时,始终检查数据包宽度是否为32字节或更短。如果其宽度大于32字节,则数据包中包含错误,必须被丢弃。使用Flush_RX命令丢弃数据包。

为了启用DPL功能,必须使能FEATURE寄存器中的EN_DPL位。在RX模式中,DYNPD寄存器必须置位。使用DPL功能向PRX发送时,PTX必须置位DYNPD寄存器中的DPL_P0位。

7.3.5 CRC(循环冗余校验)

CRC是数据包中的强制错误检测机制。它是1或2个字节,并通过地址、数据包控制字段和载荷计算得出。

1字节的CRC多项式是。初始值为0xFF。

2字节的CRC多项式是。初始值为0xFFFF。

CRC中的字节数由CONFIG寄存器中的CRCO位设置。在增强型ShockBursttrade;模式下,如果CRC校验失败,则数据包不会被接收。

7.3.6自动封包

在发送之前,自动封包会将报头、地址、数据包控制字段、载荷和CRC组装成一个完整的数据包。

7.3.7自动拆包

数据包经过验证后,增强型ShockBursttrade;会拆开数据包,并将载荷加载到RX FIFO,将RX_DR IRQ置为有效。

7.4自动包事务处理

增强型ShockBursttrade;有两个自动包事务处理的功能:自动应答和自动重发。

7.4.1自动应答

自动应答是收到并验证数据包后自动将ACK包发送给PTX的一种功能。自动应答功能减少了系统MCU的负载,可以消除专用的SPI硬件的需要。这也降低了成本和平均电流功耗。通过设定EN_AA寄存器可以启用自动应答功能。

注意:如果接收到的数据包设置了NO_ACK标志,则不会执行自动应答。

一个ACK包可以包含可选的从PRX到PTX的载荷。为了使用这个特性,必须启用动态载荷长度(DPL)特性。接收端的MCU必须使用W_ACK_PAYLOAD命令,通过写入TX FIFO来装载载荷。利用W_ACK_PAYLOAD命令。在从PTX接收到一个新的数据包之前,载荷会在(PRX的)TX FIFO中等待。nRF24L01 允许三个ACK包的载荷在(PRX的)TX FIFO中同时等待。

图9.展示了TX FIFO(PRX)在处理等待的ACK包的载荷时是如何运作的。通过单片机,载荷通过W_ACK_PAYLOAD命令被记录下来。地址译码器和缓冲控制器确保负载存储在TX FIFO(PRX)的一个空槽中。当接收到一个数据包时,地址解码器和缓冲控制器会被PTX地址所通知。这样可以确保将正确的载荷提交给ACK生成器。

如果TX FIFO(PRX)包含不止一个载荷,载荷将依照先进先出的原则来处理。如果所有的等待载荷均指向一个失去连接的PTX,那么TX FIFO(PRX)将会发生阻塞。在这种情况下,单片机可以使用FLUSH_TX命令来清空TX FIFO(PRX)。

为了使用自动带载应答功能,必须置位FEATURE寄存器的EN_ACK_PAY位。

7.4.2自动重发(ART)

自动重发功能是,如果没有收到ACK包,就重新发送数据包。它用于PTX的自动应答系统。当数据包没有应答,你可以通过配置SETUP_RETR寄存器中的ARC来设置允许重发的次数。PTX进入RX模式,并在每次数据包发送完成后等待ACK包一小段时间。在RX模式下,PTX的等待时间基于以下条件:

bull;自动重发延时(ARD)已经过去。

bull;250micro;s(或在250 kbpsmicro;s模式下的500us)内无地址匹配。

bull;收到数据包后(CRC正确或错误)。

当收到ACK包后,nRF24L01 会将TX_DS IRQ置为有效位。

如果在TX FIFO没有未发送的数据,且CE引脚的电平为低,则nRF24L01 将进入待机模式I。如果没有收到ACK包,nRF24L01 经过由ARD设定的延时后会返回TX模式,并重新发送数据。这将一直持续到接收到应答为止,或者达到最大的重发次数。

每次数据包丢失后,两个包丢失计数器——OBSERVE_TX寄存器中的ARC_CNT和PLOS_CNT——会递增。ARC_CNT记录当前事务的重发次数。你可以开始一个新的事务来清零ARC_CNT。PLOS_CNT记录自上次通道改变后的总的重发次数。你可以通过写RF_CH寄存器来清零PLOS_CNT。可以使用OBSERVE_TX寄存器中的信息来对信道质量进行总体评估。

ARD定义了PTX的从数据包发送完毕到重新发送的时间间隔。ARD以250micro;s为步进间隔,在SETUP_RETR寄存器中进行设置。如果没有收到ACK包,PTX就会进行重新发送。

在使用带载ACK包时,对ARD的长度是有限制的。这个ARD时间必须比启动时间与ACK包无线传播时间的总和要短:

bull;对于2Mbps的数据速率和5字节地址,当ARD=250us(复位值)时,ACK包的最大载荷长度是15字节。

bull;对于1Mbps的数据速率和5字节地址,当ARD=250us(复位值)时,ACK包的最大载荷长度是5字节。

在1或2Mbps的模式下,对于任何ACK载荷长度,ARD=500micro;s都足够长,。

bull;对于250kbps的数据速率和5字节地址,适用于以下值:

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[140506],资料为PDF文档或Word文档,PDF文档可免费转换为Word

ARD

ACK包的大小(字节)

1500us

所有ACK载荷带大小

1250us

le;24

1000us

le;16

750us

le;8

500us

没有载荷的空ACK

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。