超宽带 DW1000 API --- dwt_configure (频道,脉冲重复频率,数据速率等)

版权声明:© 本文为博主原创文章,未经博主允许不得转载 https://blog.csdn.net/qq_41204464/article/details/90756581

 dwt_configure

void dwt_configure(dwt_config_t *config);

此功能负责设置通道配置参数以供两者使用发射器接收器。 设置由传入的dwt_config_t结构指定功能,请参阅下面的注释。 (另请注意,还有一个单独的函数dwt_configuretxrf()用于设置某些TX参数。)

输入参数:  类型: dwt_config_t*    名称:  config      描述:  这是指向配置结构的指针,其中包含设备配置数据。

各个字段在说明中有详细描述下面

typedef结构
   {
    uint8 chan; //!<频道号{1,2,3,4,5,7}频道号码
    uint8 prf; //!<脉冲重复频率{DWT_PRF_16M或DWT_PRF_64M}
    uint8 txPreambLength; //!<DWT_PLEN_64..DWT_PLEN_4096
    uint8 rxPAC; //!<采集块大小(与RX相关)序言长度)
    uint8 txCode; //!<TX前导码
    uint8 rxCode; //!<RX前导码
    uint8 nsSFD; //!<Boolean,更好地使用非标准SFD表现
    uint8 dataRate; //!<数据速率{DWT_BR_110K,DWT_BR_850K或DWT_BR_6M8}
    uint8 phrMode; //!<PHR模式: 0x0  - 标准DWT_PHRMODE_STD ,   0x3  - 扩展帧
    DWT_PHRMODE_EXT
    uint16 sfdTO; //!<SFD超时值(符号)
} dwt_config_t;

返回参数: 无

笔记:应使用 dwt_configure()函数配置DW1000通道(TX / RX)参数在接收器启用之前或在发出启动传输命令之前。 它可以再次调用根据需要更改配置,但在使用dwt_configure()之前,DW1000应该是使用dwt_forcetrxoff()API调用返回空闲模式。
config参数指向dwt_config_t结构,该结构具有可供选择和配置的各种字段DW1000中的不同参数。

识别dwt_config_t结构的字段单独描述如下:

字段                          dwt_config_t结构中的字段描述
chan chan参数 设置UWB通道编号(定义中心)频率和带宽)。 支持的通道为1,2,3,4,5和7
txCode和rxCode txCode和rxCode参数 选择要在其中使用的前导码发射器和接收器 - 通常都设置为相同的值。
为了正确操作DW1000,所选的前导码应该是遵循IEEE 802.15.4-2011 UWB关于哪些代码的规则在特定通道和PRF配置中允许,这在表中显示2下面。
PRF

prf参数 允许选择标称PRF(脉冲重复接收器使用的频率,可以是16 MHz或64 MHz,

通过符号定义DWT_PRF_16MDWT_PRF_64M

nsSFD nsSFD参数 允许使用备用非标准SFD(启动Frame Delimiter)序列,Decawave发现它更强大而不是IEEE 802.15.4标准中规定的,因此给出了改善了表现。
dataRate dataRate参数 指定数据速率为110kbps,850kbps之一或6800kbps,通过符号定义DWT_BR_110K,DWT_BR_850K 和 DWT_BR_6M8
txPreambLength txPreambLength参数指定具有范围的前导码长度
由符号定义给出的值:DWT_PLEN_4096,DWT_PLEN_2048,
DWT_PLEN_1536,DWT_PLEN_1024,DWT_PLEN_512,DWT_PLEN_256,
DWT_PLEN_128,DWT_PLEN_64。 表3给出了推荐的序言
要使用的序列长度取决于数据速率。
rxPAC rxPAC参数指定要使用的前导码获取块大小。允许的值为DWT_PAC8,DWT_PAC16,DWT_PAC32或DWT_PAC64。
在接收器中使用的推荐PAC大小取决于发射机中使用的前导码长度。 PAC大小是在前导码符号中指定,每个符号约为1μs。
注意:dwt_setsniffmode()和dwt_setpreambledetecttimeout()API 函数使用PAC作为单位来指定接收者正在寻找的时间
phrMode phrMode参数在标准PHR或扩展PHR之间进行选择模式被设置,DWT_PHRMODE_STD用于标准
sfdTO

sfdTO参数设置SFD超时值。 SFD的目的检测超时是从偶尔的错误前导码检测中恢复的
可能发生的事件。 默认情况下,此值为4096 + 64 + 1个符号,即更长的可能的前导码和SFD序列。

这是最大值是明智的。 当知道较短的前导码时如果使用,则可以适当减少该值。 功能呢
不允许值为零。 (如果选择0值,则默认值为4161将使用符号(DWT_SFDTOC_DEF)。 建议值是前导码长度+ 1 + SFD长度 -  PAC大小。

dwt_configure()函数没有错误检查输入参数,除非定义了DWT_API_ERROR_CHECK代码开关。

如果已定义,则在出现错误时将断言检测。 开发人员应确保正确启用断言宏捕获出现的任何错误情况。

如果未定义DWT_API_ERROR_CHECK开关,则进行错误检查不执行。


注意:SFD超时不能设置为0; 如果将零值传递给函数,则默认值为编程。 为了最小化接收器中的功耗,接收的SFD超时设备sfdTO参数应根据发送的TX前导码长度进行设置设备。 作为示例,如果发送设备使用1024前导码长度,则SFD长度为64
如果PAC大小为32,则相应的接收器应将sfdTO参数设置为1057(1024 + 1 +64  -  32)。 

表2:DW1000支持的UWB信道和推荐的前导码

除了上面表2中所示的前导码之外,对于64 MHz PRF,还有8个附加码前导码(13至16和21至24),可在所有频道上使用。 这些应该只是选择作为实施动态前导码选择(DPS)的一部分。 请参考IEEE 802.15.4-2011标准[3]了解动态前导码选择技术的更多细节。

 在特定信道上使用的前导序列在所有数据速率下都是相同的,但是它的长度,(即,重复它的符号次数)对操作有显着影响
范围。

通常,较长的前同步码可提供更好的范围性能和更好的第一路径时间到达信息,而较短的前导码可缩短播出时间并节省电量。 什么时候为长距离操作低数据速率,需要长前导码来实现该范围。 在更高的数据速率,操作范围自然更短,因此发送过长的时间没有意义序言,因为它浪费时间和力量,没有增加范围的优势。

表3  给出了根据数据使用的一些推荐的前导序列长度率:

通过作为多个前导码的组块中的互相关来检测前导序列符号很长。 使用的块大小由PAC大小配置选择,应该是
根据预期的前导码大小选择。 更大的PAC尺寸可以提供更好的性能序言足够长,允许它。

但是如果PAC的大小对于前导码长度来说太大了接收器性能将降低或无法在极端情况下工作 - (例如,64的PAC将永远不会接收
帧只有64个前导符号)。

下面的表4给出了推荐的PAC尺寸配置根据发射机中使用的前导码长度在接收机中使用。

另请参阅:dwt_configuretxrf()用于设置某些TX参数
                 dwt_setsniffmode()用于设置某些RX(前导码搜索)操作模式。

参考:UWB超宽带 DW1000 通道和带宽

希望对你有帮助。

猜你喜欢

转载自blog.csdn.net/qq_41204464/article/details/90756581