UWB芯片DW3000之MAC层(三)自动应答

DW3000的自动应答功能允许芯片在接收并验证包含确认请求的帧时自动发送确认帧。自动确认功能只有在启用帧过滤和自动确认时才会起作用。

为了使自动确认启用,必须进行以下操作:

  • 必须启用帧过滤,接收的数据或MAC命令帧必须正确寻址并通过接收帧过滤

https://blog.csdn.net/tianqiquan/article/details/129770879icon-default.png?t=N2N8http://UWB芯片DW3000之MAC层(二)帧过滤

  • 必须设置接收帧的帧控制字段中的ACK请求位。
  • 自动确认必须通过SYS_CFG寄存器中的AUTO_ACK配置位启用。
  • 接收到的帧为数据帧或MAC命令帧,帧版本字段设置为0b00或0b01;目的地址和PANID与已配置的PANID和已配置的短地址或扩展地址相匹配;AR(确认请求)位设置。

当满足以上这些条件时,DW3000将在接收结束时自动转换到发送模式以发送IEEE802.15.4标准[1]定义的5字节即时确认(Imm-Ack)帧。

当Data或MAC命令帧的Frame Version字段设置为0b02时,不会自动生成增强确认(Enh-Ack)。主机控制器软件负责解码这些帧版本2的帧,解析任何信息元素(IEs),并在传输前生成任何必要的IEs增强的Enh-Ack并确保其安全。AAT位不会被设置。

自动ACK转换时间

IEEE802.15.4标准[1]规定了ACK传输的12个符号+/- 0.5个符号的切换时间。在DW3000中,这个时间段可以通过ACK_RESP_T中的ACK_TIM参数进行配置。还应该注意的是,运行CIA分析将延迟ACK响应。为了加速ACK传输,可以设置FAST_AAT位或在不需要RX时间戳的地方,可以通过清除子寄存器0x00:10 -系统配置中的CIA_IPATOV和CIA_STS配置位来禁用CIA分析。

 以上寄存器用于指定DW3000在TX模式和RX模式之间自动切换时使用的周转时间。ACK_RESP_T寄存器包含以下位图子字段:

W4R_TIM:等待响应切换时间。这个20位字段用于配置等待响应功能时TX完成和RX使能之间的转换时间。任何TX和wait-4-response命令(TXW4R、TXW4RCCA、TXW4RDLY、TXW4RDLYREF、TXW4RDLYTS和TXW4RDLYRS)都可以启用此功能。W4R_TIM参数指定的时间单位约为1 μs,即128个系统时钟周期。此配置可用于通过延迟接收器的打开来节省电源,以与远程系统的响应时间一致,而不是打开接收器 

ACK_TIM:自动确认切换时间。这个8位字段用于配置从正确接收数据帧(或MAC命令帧)到DW3000发送确认帧之间的转换时间。这里的时间是以前导符号为单位指定的。(此结果时间略有不同,取决于PRF是16 MHz还是64 MHz,详细信息见下表)。UWB芯片DW3000之MAC层(三)自动应答_第1张图片

 这个定时器只适用于自动确认,然后只在帧被正确接收,通过RX帧过滤规则,以及帧的MAC报头中的ACK位被设置为请求确认时才起作用。为了确保接收端已经准备好接收第一个前导符号,并且假设远端DW3000的W4R_TIM参数设置为0,建议的ACK_TIM最小值设置如下:

UWB芯片DW3000之MAC层(三)自动应答_第2张图片

这在6.8 Mb/s的数据速率下是最重要的,在这种情况下,前导序列通常很短,即使丢失几个序文符号也可能潜在地影响ACK接收。如果W4R_TIM参数大于零,则ACK_TIM设置也应该增加,以确保在远程接收器监听之前没有任何数据包被发送。 

 

帧pending位

标准IEEE802.15.4标准[1]MAC在每帧开始的帧控制中包含一个帧pengding位。这个位可以设置为表示更多的数据即将到来,或者在确认数据请求MAC命令帧的情况下,表示响应节点有数据要发送到请求ACK的节点。在自动生成的ACK帧中,DW3000会根据以下条件自动决定是否设置帧pending位:

  • 接收到的帧是数据请求MAC命令帧。
  • 发送MAC命令(数据请求)帧的设备地址与配置到LE_PEND_01或LE_PEND_23寄存器中的四个16位地址之一匹配,并且在FF_CFG寄存器中设置数据挂起位:LE0_PEND - LE3_PEND。
  • 发送MAC命令的设备地址为16位,并设置了sadrape位
  • 发送MAC命令的设备地址为64位,且设置了LSADRAPE位
  • 在帧控制中没有设置安全位,且帧版本为0或1

主机通知

AAT状态位(SYS_STATUS)表示已请求确认。当FAST_AAT位被禁用时,AAT位与RXFCG状态事件(表示帧接收结束时的正确CRC)同时设置。但是,如果FAST_AAT位启用,则AAT位与RXFR状态事件同时设置。

如果启用了自动确认,则可以在接收中断处理期间使用AAT位来检测确认正在进行,从而避免采取任何操作,直到确认的传输完成,并由TXFRS(发送帧发送)事件发出信号。

注意:如果没有启用自动确认,那么AAT状态位应该被忽略。

你可能感兴趣的:(UWB技术,物联网,硬件工程,嵌入式硬件,驱动开发,信息与通信)