新闻中心

EEPW首页>嵌入式系统>设计应用> 基于STM8及UHFRF收发器SX1231的无线射频收发系统

基于STM8及UHFRF收发器SX1231的无线射频收发系统

作者: 时间:2016-11-30 来源:网络 收藏

SX123节省功耗方面有一些很重要的特性:

(1)工作电压范围宽:从1.8V~3.6V都可以正常工作,且任何特性都保持不变。特别是对于发射,工作电压低至1.8V时仍然保持相同的输出功率,即电压从1.8V~3.6V,输出功率都能到达17dBm或20dBm,不随电压而变。但是其他类似的芯片,输出功率则随着电压的下降而降低。这样一种特性,使得该系统能够使电池的利用最大化,延长电池的使用寿命,这对低功耗的应用来说具有非常重大的意义。

(2)可以在sleep/standby模式下读写寄存器:该特性节约了写FIFO时的功耗。在sleep模式下的电流为0.1μA,而在接收模式下的电流为16mA,节约了160000倍的功耗。

表1 DIO PIN 与信号的映射关系表

系统软件设计

系统中各主要功能模块均编成独立的函数由主程序调用。功能模块包括:初始化程序(包括初始化STM8L151K2、SX1231)、无线发送程序、无线接收程序等。无线发送程序负责写入数据载荷到SX1231,并根据通信协议来配置芯片的前导码、同步字及CRC校验码,最后SX1231把其组装成数据包将其发送出去;无线接收程序负责接收并处理数据。首先,SX1231接收到一个完整的数据包,之后逐步的把前导码、同步字以及CRC码去除,最后MCU从其FIFO中取出有效数据。

无线收发模块之间的通信是以数据包的形式发送的,本系统定义的数据包格式如表2所示。

表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模式。

图3 数据收发流程图

数据接收程序

程序完成STM8L151K2、SX1231的初始化后,配置寄存器写入相应的初始化RF控制字,把SX1231配置为接收状态。检测PayloadReady为高电平时,表明已经收到数据,然后MCU从FIFO中读取数据,并进行处理。如此循环直至完成接收。

系统测试结果

系统测试条件及设置

该部分为本系统测试时的设置,根据不同的应用需求,部分设置可用作相应的变动。

电源电压:3.3V

频率:868.3MHz

数据速率:4.8kbps

频偏:5.0kHz

接收机带宽:10kHz

数据类型:PN15

功率设定:4dBm

测试结果

发射功率

从图4中可以看到,发射功率为6.86dBm。低于5mW(7dBm)的规范要求。

图4 发射功率

载波频率容限:100x10-6

从图5中可以看出,设置为868.3MHz输出,实际测量的频率为868.2960MHz,则频率偏差为((868.30-868.296)MHz/868MHz)=4.6×10-6,小于规定的载波频率容限100×10-6。



评论


技术专区

关闭