微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI无线射频设计 > CC2530 多个节点绑定问题

CC2530 多个节点绑定问题

时间:12-22 整理:3721RD 点击:

使用CC2530,一个作为协调器,需要和多个节点绑定进行数据收发。如何才能实现上电就自行绑定啊?ZStack的例程有关于这方面的吗?谢谢大家解答。

另外问,协调器和节点相互收发数据,都需要先绑定吗?

要实现上电自动绑定,需要在应用层的处理中加入service discovery的功能。

如在Coordinator的device announce callback处理函数中发送match request,指定你需要绑定的cluster列表,在处理match response中把符合要求的节点地址记录下来,就能在后续的应用中使用这些地址进行发送接收了。

是的,绑定是为了确定彼此2个节点都具备相同的功能,并且通过绑定协调器能知道路由器或终端节点的地址。

谢谢答复。我基于SimpleApp做了自动绑定的功能。思路是这样的:

ZDO设备初始化成功->zb_StartConfirm( ZB_SUCCESS )->协调器调用afSetMatch(ep, TRUE),终端设备调用ZDP_MatchDescReq()->SimpleApp_ProcessZDOMsgs中处理Match_Desc_rsp->绑定成功。

按照这个思路,多台终端设备上电时可以和协调器绑定。但是,发现数据通信是单向的,只能由终端设备往协调器发送数据。我想双向都能收发收据,该如何修改呢?

你说的单向是指协调器不知道终端的地址所以不能回发吧?有两种方法可以试试。

1. 在协调器中注册Match_Desc_req的处理,即在SimpleApp_ProcessZDOMsgs中处理Match_Desc_req。在处理函数中把发起请求方的源地址记下来。

2. 在协调器收到终端设备数据时,把发送方的源地址记录下来。

是我搞错了,本来就可以相互收发数据的,是我目标地址参数没设好。

zb_SendDataRequest ( uint16 destination, cmd, len,  *pData, handle, txOptions, radius ), 当destination为0xFFFE为绑定地址发送,0xFFFF才是广播发送。

上一篇:有源rfid与cc2530
下一篇:CC2540 USB 问题

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top