zigbee点对点通信中发射方与接收方如何实时保持信道一致?
你好,我想用cc2530为核心芯片实现点对点数据通信,现有以下问题:
1. 如何保持发射模块与接收模块的信道始终一致?我的理解是,如果通信过程中超过多长时间接收方未收到数据,认为发送方可能信道已经发生变化。此时接收模块调用信道能量扫描函数寻找新的信道,能量等级在一个合适范围的信道认为是发送模块的当前信道。我的理解是否正确?
2. 能量等级在一个合适范围的信道认为是发送模块的当前信道,这个范围怎么确定?
2.假如通过能量值确定了发送模块信道值,是不是可调用MacRadioSetChannel(unit channel)把接收模块的信道设置为发送模块当前的信道值?
3.ti的例程中网络地址是2个字节,我们想采用5个字节的网络地址,不知能否实现?怎么实现?
谢谢!
ZigBee网络中,设备一般不会改变信道
一般确定信道后是不会动了。不去干涉的话,正常情况是不会动了。
谢谢!
我没描述清楚问题,我们应用CC2530的基本收发功能,就像应用串口一样。考虑到应用可能现场会有wifi等干扰信号,所以运行中需要具备自动通讯质量更好的信道进行数据传输。我不知道如何完成信号切换功能。具体要怎么操作?
我们的产品用电池供电,对功耗很注重。而TI的例程中数据通信始终会夹杂NWK层数据,各种应答和datarequest。所以自己做了个只是基本RF数据通信通信的程序,但是又无法把TI提供的诸如MAC_INTERNAL_API void macRadioSetChannel(uint8 channel) ;MAC_INTERNAL_API void macRadioSetChannel(uint8 channel) ;uint8 macRadioEnergyDetectStop(void)等加进自己的工程中,因为有些函数是以库的格式提供。所以求大神指导,如何在基本RF通信工程中实现信道能量检测和信道切换功能?
若是您这样的需求,则可以选择其他的无线芯片 如Sub-1G
您现在是必须要使用ZigBee吗?若是不需要组网的话,可以考虑下其他芯片
谢谢您的回复!
我们不需要组网。RF的应用是一对一的数据收发,一个做主发送,一个做从接收。
现在做实验能实现数据的收发。但是不知道在信道干扰的情况下,如何能实现通信信道的切换?这种信道切换应该是会遵循一种机制,不清楚是怎么样的一种机制。
我自己想这样做,不知道对不对:
1. 主机发送数据(ack require),如果一定时间都没有收到从机的ack,认为通信失败。
2.主机在通信失败的情况下,给通道11~26逐个发送一组固定数据(ack require)。
3.记录所有回复ACK消息的信道值及相应的rssi值。
4.分析RSSI值,rssi在一个合适的范围内则认定该信道为从机信道。 问题是合适范围是什么?这个还没找到相关资料。
我不知道这样做对不对?如果不对,错在哪里?请指导!如果对,请告诉我在哪里可以查到能量值合适的限定范围。
万分感谢!
另外,我会Z再仔细看看您推荐的Sub-1G相关芯片资料。
补充一下啊,我们之所以选择2.4GHz的芯片,是因为这个频段在全球都是免费的。
那您可以选择专有2.4G的芯片 http://www.ti.com.cn/lsds/ti_zh/wireless_connectivity/proprietary_2-4_ghz/overview.page
谢谢Susan Yang 的回复!
我看了cc2544的资料,这款芯片不太适合我们的应用环境。我们的产品应用环境很恶劣。
所以对比后还是想用cc2530。现在数据收发已经调试通了,就是不知道遇到干扰后如何跳频。能否在这方面给点指导?