协议栈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的间隔时间,我理解的对不对?
YiKai Chen:
1. 每一个周期指的是什麼?
2&3. ScanChannels裡的每一个channel发送一次
4. 是
user5281211:
回复 YiKai Chen:
3、按照e2echina.ti.com/…/75525第4条的说法,把发送Beacon Request间隔增大,可以降低功耗.可是按照您对3的解答,增大Beacon Request间隔,芯片接收的打开时间相应地增长,这不是反而会提高功率嘛?
YiKai Chen:
回复 user5281211:
這要看你指的Beacon Request间隔是什麼意思的吧?
user5281211:
回复 YiKai Chen:
我可能是弄错意思了,我现在理解的scanDuration既是两个Beacon request之间的间隔,也是发送一次Beacon request芯片接收打开的时间。请问这样理解对吗
user5281211:
我理解的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。
请问我的理解是不是对的?
user5281211:
我理解的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。
请问我的理解是不是对的?