TI中文支持网
TI专业的中文技术问题搜集分享网站

ZIgBee信标工作模式

通过功耗测试工具发现,我的终端节点功耗平均在500ua左右。但是看曲线图时却发现,终端节点每分钟有个半分钟的峰波,大概在800ua左右,听别人说是信标的工作模式导致的。所以说,我现在i想请教一下,就是在不影响通信质量和实时性的前提下,能不能修改这个时间,就是把每分钟要半分钟的工作,改成4、5分钟半分钟的工作;如果可以更改,这个是在哪边更改的?

YiKai Chen:

终端节点功耗平均在500ua左右太高了,這種功耗應該跟信标的工作模式無關,RF一起動功耗都是mA等級的,建議你查一下IO狀況

user5805542:

回复 YiKai Chen:

但是我把另一个关于IO口的功能任务清掉了,只保留了一个任务来对无线数据监听和网络状态改变的事件进行监控。而且,我用工具检测功耗时,终端节点是空载的,没有外接任何IO设备,这样的情况下,平均功耗在200多ua,(每分钟有半分钟的600ua左右),所以说觉得有可能是终端节点和协调器通信所导致的,所以说想询问一下这个时间是不是可以更改

user5805542:

回复 YiKai Chen:

还有就是天线功耗我给调到了最大值

YiKai Chen:

回复 user5805542:

保留了一个任务来对无线数据监听和网络状态改变的事件进行监控

這個任务多久作一次,如果把這個任务停調的功耗如何?

Alvin Chen:

通常低功耗不会你这么高,估计你在PM2或者你的IO有漏电,至于poll 你可以在config文件中修改。

user5805542:

回复 YiKai Chen:

就是下面这个任务,如果协调器发命令或者网络状态发生变化,这个任务应该不会工作的吧?

uint16 GenericApp_ProcessEvent( byte task_id, UINT16 events )
{afIncomingMSGPacket_t *MSGpkt;if ( events & SYS_EVENT_MSG ){MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( GenericApp_TaskID );while ( MSGpkt ){switch ( MSGpkt->hdr.event ){case AF_INCOMING_MSG_CMD://无线消息事件处理//HalLedSet(HAL_LED_2,HAL_LED_MODE_TOGGLE);//HalLedBlink(HAL_LED_2,10,50,500);SendShortAddrToCoor();//GenericApp_MessageMSGCB(MSGpkt);break;case ZDO_STATE_CHANGE://建立网络后,设置事件GenericApp_NwkState = (devStates_t)(MSGpkt->hdr.status);if(GenericApp_NwkState == DEV_END_DEVICE){SendShortAddrToCoor();//联网成功把自己的ID发给协调器}break;default:break;}osal_msg_deallocate( (uint8 *)MSGpkt );MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( GenericApp_TaskID );}return (events ^ SYS_EVENT_MSG);}return 0;
}

user5805542:

回复 Alvin Chen:

poll在config哪个地方可以设置?还有这个天线的频率选择对于功耗有影响吗?
/* Default channel is Channel 11 – 0x0B */
// Channels are defined in the following:
//0: 868 MHz0x00000001
//1 – 10 : 915 MHz0x000007FE
//11 – 26 : 2.4 GHz0x07FFF800

Alvin Chen:

回复 user5805542:

没有的,默认为11信道.

/***************************************** The following are for End Devices only***************************************/

-DRFD_RCVC_ALWAYS_ON=FALSE

/* The number of milliseconds to wait between data request polls to the coordinator. */
-DPOLL_RATE=1000

/* This is used after receiving a data indication to poll immediately* for queued messages…in milliseconds.

YiKai Chen:

回复 user5805542:

你是說你定期會去執行GenericApp_ProcessEvent?

user5805542:

回复 YiKai Chen:

没有,那个触发的,只有当有事件过去了它才会去执行,我是这么认为的

赞(0)
未经允许不得转载:TI中文支持网 » ZIgBee信标工作模式
分享到: 更多 (0)