This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于发送Beaconrequest的次数和功率问题

协议栈Home1.2.2a中(什么都没修改)

1、每一个周期发送几次BEACON_REQUEST。

2、

 ZStatus_t NLME_NetworkDiscoveryRequest( uint32 ScanChannels,
uint8 scanDuration);这个函数会执行几次BEACON_REQUEST的发送,一次还是三次?

3、如果2的答案是3次的话,ZStatus_t NLME_NetworkDiscoveryRequest( uint32 ScanChannels,
uint8 scanDuration);中scanDuration指得是一个周期内每个BEACON_REQUEST的间隔时间,还是整个周期的总时长。

4、在BEACON_REQUEST的发送过程中,芯片的接收是不是一直打开,持续到下一次BEACON_REQUEST的发送,所以芯片的大功率会持续整个BEACON_REQUEST的间隔时间,我理解的对不对?

  • 1. 每一个周期指的是什麼?
    2&3. ScanChannels裡的每一个channel发送一次
    4. 是
  • 3、按照e2echina.ti.com/.../75525第4条的说法,把发送Beacon Request间隔增大,可以降低功耗.可是按照您对3的解答,增大Beacon Request间隔,芯片接收的打开时间相应地增长,这不是反而会提高功率嘛?
  • 這要看你指的Beacon Request间隔是什麼意思的吧?
  • 我可能是弄错意思了,我现在理解的scanDuration既是两个Beacon request之间的间隔,也是发送一次Beacon request芯片接收打开的时间。请问这样理解对吗
  • 我理解的scanDuration指的是单次NLME_NetworkDiscoveryRequest或NLME_OrphanJoinRequest中扫描的时间长度。因为只有上次扫描结束后才能开始下一次扫描,所以Beaconrequest间隔肯定要大于scanDuration,应该大致等于

    (uint16)(NWK_START_DELAY+ ((uint16)(osal_rand()& EXTENDED_JOINING_RANDOM_MASK)))+scanDuration。所以我们要通过增大Beaconrequest间隔来降低功耗的话,不应该增大scanDuration(因为在scanDuration内,芯片的接收机是一直打开的,持续高功耗),而是应该增大EXTENDED_JOINING_RANDOM_MASK。

    请问我的理解是不是对的?

  • 我理解的scanDuration指的是单次NLME_NetworkDiscoveryRequest或NLME_OrphanJoinRequest中扫描的时间长度。因为只有上次扫描结束后才能开始下一次扫描,所以Beaconrequest间隔肯定要大于scanDuration,应该大致等于

    (uint16)(NWK_START_DELAY+ ((uint16)(osal_rand()& EXTENDED_JOINING_RANDOM_MASK)))+scanDuration。所以我们要通过增大Beaconrequest间隔来降低功耗的话,不应该增大scanDuration(因为在scanDuration内,芯片的接收机是一直打开的,持续高功耗),而是应该增大EXTENDED_JOINING_RANDOM_MASK。

    请问我的理解是不是对的?