信号强度(RSSI)实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.7 信号强度(RSSI)实验
【实验内容】
RSSI指接收信号的强度,在无线定位、无线测距方面有广泛的应用。本实验通过点对点或者一点对多点通信测定RSSI的值,通过该实验希望读者知道RSSI值的获取方法,同时使读者能够更加熟练地使用SXIOT-WSN实验平台下的底层协议栈。
【实验环境】
1. 带有CC2530芯片的基站一个
2. 基本节点一个
3. 天线两个
4. 烧录器一个
5. 烧录线一根
6. Mini USB线一根
7. 平行串口线一根
【准备知识】
查阅CC2530芯片手册,了解RSSI的概念,了解RSSI和发送功率以及和传输距离的关系。
【实验原理】
RSSI即Received Signal Strength Indication,CC2530芯片中有专门读取RSSI值的寄存器,当数据包接收后,CC2530芯片中的协处理器将该数据包的RSSI值写入寄存器。如图2.7.1所示。RSS值和接收信号功率的换算关系如下:
P = RSSI_VAL + RSSI_OFFSET [dBm]
其中,RSSI_OFFSET是经验值,一般取-45,在收发节点距离固定的情况下,RSSI值随发射功率线性增长,如下图所示。
RSSI的产生过程
图 2.7-2RSSI随发射功率的变化曲线
【注意事项】
烧录基站的时候节点号一定要为1,烧录节点的时候,组号要和基站统一。因为在代码中规定,节点号为1的只收不发,而节点号不为1的只发不收。
【实验总结】
在完成这个实验后,我们能够掌握CC2530中RSSI对应的寄存器,同时可以掌握怎么去获取两个通讯节点之间的RSSI。在掌握RSSI的基础之上,可以从直观上了解RSSI和距离之间的关系。
【实验思考】
通过大量测试两个点在不同距离通讯下的RSSI值,并且完成通过RSSI进行通讯节点距离测试。
如图所示,
把采集的数据经过Excel处理之后,可以模拟出信号强度衰减的曲线方程,若要根据信号强度判断距离,则在射频接收数据的代码中加入如下语句即可:
event message_t* Receive.receive(message_t* msg, void* payload, uint8_t len)
{
int rssi = RF_MSG_GET_RSSI(msg);
float distance = 0.0117* pow(rssi,2)-11.75x+291.4
ADBG(DBG_LEV, "\r\n*Receive, len = [%d], RSSI:[%d] , distance :[%f]",
ADBG_N(len),
ADBG_N(rssi),
distance
);
LED_YELLOW_TOGGLE;
}
}