nRF24LE1无线监控通信开发文档
//***************************************** void radio_send_packet(uint8_t *payload, uint8_t length) {
hal_nrf_write_tx_payload(payload, length); // Load message into radio CE_PULSE(); // Send packet radio_status = RF_BUSY; // Trans. in progress; RF_BUSY }
bool radio_busy(void) {
return(radio_status == RF_BUSY); }
bool radio_packet_sent(void) {
switch(radio_status) {
case HAL_NRF_TX_DS: radio_status = RF_IDLE; return true; break;
case HAL_NRF_MAX_RT: radio_status = RF_IDLE; return false; break; default: return false; break; }
26
// Packet sent
// Return to radio:RF_IDLE // Packet lost
// Return to radio:RF_IDLE
nRF24LE1无线监控通信开发文档
}
//***************************************** //功能:射频收发器读出数据包子函数
//*****************************************
uint8_t radio_read_data(uint8_t *rx_data) //This function saves the data
//from the radio to the specified array.
{
uint8_t length = LSB(hal_nrf_read_rx_payload(rx_data)); // Get received
//data,pipe number (MSB byte) and packet length (LSB byte)
// and bytes received
if (hal_nrf_get_rx_fifo_status() == FIFO_EMPTY) // Fifo is empty? {
radio_status = RF_IDLE; }
return length; }
第五章 无线抗干扰技术
5.1 2.4GHz ISM频段分析
2.4GHz ISM 频段是全球开放频段, 许多系统如W- LAN、蓝牙等都共用这一频段, 如图5.1所示。 nRF24LE1 的工作环境也许会是一个干扰很多的环境, 系统往往在受控的实验室环境下工作得很好, 但在现场却会由于受到其他工作在 2.4GHz 产品的影响而使性能显著下降。在应用nRF24LE1时如何处理其他设备的干扰是必须考虑的问题。本系统应用于家庭安防,因此系统的抗干扰能力尤为重要。
27
nRF24LE1无线监控通信开发文档
图5.1 nRF24LE1、W-LAN和蓝牙的频谱分布图[4]
(注:选取W-LAN第一个信道的频谱)
工作在2.4GHz 频段的无线设备的频道使用情况主要分为两种, 一种是频率分布相对稳定的系统如W-LAN以及恶意同频干扰,另一种是跳频系统如蓝牙。
W- LAN 采用 DSSS (直接序列扩频) , 其每信道带宽为 22MHz, 故允许使用 3 个分布式信道而不会相互重叠,它将原信号 “ 1” 或 “ 0” 利用 10 个以上的 chips代表“ 1” 或 “ 0” , 使得原来较高功率、较窄频率变成具有较宽频的低功率, 因此 W- LAN 对其他设备而言产生的是在某些频率段相对稳定的干扰。
蓝牙技术采用 FHSS (跳频扩频) 并将 2.4GHz ISM 频段划分成 79个 1MHz的信道。蓝牙设备以伪随机码方式在这 79个信道间每秒钟跳 1600次, 它同时接受两端以特定型式的窄频载波来传送讯号。对于一个非特定的接收端, FHSS所产生的跳动讯号对它而言, 只能算是脉冲噪声而已。
nRF24LE1的信道带宽同样是1MHz,它将整个2.4GHz ISM频段分为125个有效信道。频率稳定的系统在一定的频段工作, 而跳频系统在整个2.4GHz 频段范围都会产生影响。在 2.4GHz 频段工作的系统其数据发送都是基于数据包的。如果跳频系统在某个时刻占用了某频道, 那它在其他时间占用整个频段的任何其他频道的概率是相同的, 也就是说发生冲突的概率是相同的。因此 nRF24LE1 与跳频系统的工作发生冲突时没有必要改变自己的工作频道;而干扰来自频率稳定的系统时, 需要跳转到另一个与该系统发生冲突概率较小的频道。只有当受到持续的干扰时才跳转到另一个信道,这便是频率捷变技术。
基于以上的分析, 可以归纳出如下的跳频规则: 1) 监测到当前信道的持续干扰;
2) 跳转到受到自同一干扰源的干扰概率较小的信道; 3) 如果干扰来自其他的跳频系统, 则不进行跳频。
28
nRF24LE1无线监控通信开发文档
5.2 无线抗干扰设计
nRF24LE1 集成了载波监测功能, 可以准确地监测当前工作信道是否有干扰, 保证了在 W- LAN 环境下可靠地工作。其 SPI 接口与外接微控制器的通信速率可达10Mbps, 具有高速度和独特的切换时间, 减少了与跳频系统如蓝牙出现时碰撞的可能。
发送数据接收模式,载波监听进入接收模式,是否收到主机的ACK?接收到是否为乱码?否数据处理,并发送ACK是否是再次发送数据接收模式,继续载波监听接收到的是否仍为乱码?是否数据处理,并发送ACK进入接收模式,是否收到主机的ACK?是否改变信道改变信道
图5.2 主节点跳频流程 图5.3 从节点跳频流程
本系统采用nRF24LE1的Enhanced ShockBurst模式进行通信,主节点接收和从节点发送方案如下:
对于主机节点,如图5.2所示,始终处于载波检测状态,当仅收到一次乱码干扰的时候,可能是与蓝牙系统发送冲突,主机不必改变信道;当持续收到当前频率的乱码干扰时,说明收到的不是脉冲干扰,而是稳定的干扰,这时nRF24LE1需要按照已设定的信道列表跳转到另一个信道。
对于从机节点,如图5.3所示,发送完数据后等待主机的ACK,如果没有收到ACK,表示发送失败,则在相同信道上重发三次。由于蓝牙系统在每个信道上
29
nRF24LE1无线监控通信开发文档
停留的时间为650us ,而nRF24LE1一次动作 (即发送数据并等待接收对方ACK的时间) 大约为 1ms , 因此如果第一次发送失败是由于与蓝牙系统发生冲突, 那么第二次发送一般可以顺利到达接收方。如果三次发送均失败, 说明受到的不是脉冲干扰,而是稳定的干扰, 这时nRF24LE1需要按照已设定的信道列表跳转到另一个信道。事先将所有想要使用的信道做成列表, 在需要跳频时查表即可。
第六章 无线通信协议
6.1介质访问控制协议设计
为了实现在同一范围内多点间通信,需要考虑防止数据包在大气中传输时相互碰撞。为了建立可靠的无线传输通路,必须采用各种方法。无线通信中避免多节点无线通信冲突常用的办法有频分多址(FDMA)、时分多址(TDMA)、 跳频(FHSS)、载波监听(CSMA)等。
频分多址(FDMA)技术将可用的频率带宽拆分为具有较窄带宽的子信道,这样每个子信道均独立于其他子信道,从而可被分配给各个发送器。FDMA因为系统有自己的专门频道,所以非常低的系统同步要求,软件控制比较简单,实现相对容易。但是,子信道之间必须间隔一定的距离以防止干扰,造成频带利用率不高;当用户处于空闲状态时,会导致带宽的浪费。对于本系统星型网络而言,频分多址可以避免通信冲突问题,但是,随着节点的增多,单一的主机节点必须增加监听的信道数目,从而使通信效率下降。
时分多址(TDMA)是在同一信道,把不同地址发送的信号按照时间间隔的方法进行传输的一种无线通信方式。TDMA通信质量高,保密性较好,系统容量大;节点在不需要进行数据收发时间段,相关无线节点可以关闭,以降低节点电池消耗;可以使用多个时间片,提高数据传输速度;频道资源利用率大大高于FDMA。但是, TDMA必须有精确的定时和同步以保证发送端和接收端间正常通信,技术上比较复杂;在突发性传送时,需要信号处理技术和高通信余量。对于本星型网络而言,时分多址在避免通信冲突并关闭非时段的节点降低功耗,但是,其需要精确的定时和同步和高通信余量,都会增加系统的复杂性。
30