基于RF收发器SX1231的无线射频收发系统设计
表2 本文系统定义的数据包格式
其中,Preamble(前导码)是一连串的10101010(0XAA)或01010101(0X55),其数量为0~655635字节,具体几个字节可以根据应用的需要来设定。前导码主要用来进行帧同步,接收机主要依靠前导码来进行有用信号识别,完成频率控制,以及自动增益控制、信号强度判断等动作以确保用最佳的状态接收正确的数据。SyncWord(同步字)在前导码之后,通过设定好的同步字来作为同步模式的标志码,也可以作为一个网络的ID,相同网络的设备用相同的同步码。而接下来的地址码(Address)可以作为网络内每个设备的ID,如果数据包中的地址于本设备的地址相同,则接收数据,否则不予处理。有效载荷(Message)是真正需要传输的数据。最后是CRC校验码,由芯片自动完成。
初始化程序
初始化程序包括STM8L151K2的初始化以及SX1231的收发频率、工作模式、调制方式、数据速率以及数据包处理等寄存器的初始化配置。
系统上电后,STM8L151K2处于默认状态,根据系统功能需求重新进行初始化配置。SX1231也处于默认状态,需要进行配置才能工作。SX1231的初始化是一个重要的部分,正确的配置对系统最终的通信性能有很大的影响。
数据发送程序
无线发送程序流程如图3所示。完成STM8L151K2、SX1231的初始化后,配置寄存器写入相应的初始化RF控制字;然后通过SPI连续写寄存器向TX FIFO内写入需要发送的数据;再切换到发射模式。当数据发送完后,PacketSent寄存器置1,同时映射的DIO PIN会变成高电平通知MCU数据包发送完成。然后写数据到FIFO,发送,如此循环。直到所有数据发送完成,进入Sleep模式。
![基于RF收发器SX1231的无线射频收发系统设计](http://m.amcfsurvey.com/editerupload/fetch/20131227/208511_3_0.jpg)
图3 数据收发流程图
数据接收程序
程序完成STM8L151K2、SX1231的初始化后,配置寄存器写入相应的初始化RF控制字,把SX1231配置为接收状态。检测PayloadReady为高电平时,表明已经收到数据,然后MCU从FIFO中读取数据,并进行处理。如此循环直至完成接收。
系统测试结果
系统测试条件及设置
该部分为本系统测试时的设置,根据不同的应用需求,部分设置可用作相应的变动。
![](http://m.amcfsurvey.com/webstorage/images/display/reg.jpg)
评论