基于STM8及UHF RF收发器SX1231的无线射频收发系统设计

发布者:SereneMeadow7最新更新时间:2020-08-18 来源: eefocus关键字:STM8  UHF  RF收发器  SX1231  无线射频收发系统 手机看文章 扫描二维码
随时随地手机看文章

2008年中国政府为微功率(短距离)无线电应用增加了868MHz~ 868.6MHz的工作频率。其对无线电设备的射频要求如下:


(1)发射功率限值:5mW(e.r.p);
(2)发射信号的占空比限值:1%;
(3)载波频率容限:100×10-6;

并把该类设备归类于“各类民用设备的无线电控制装置中。

从上面的规定中可以看到,该频段可用带宽为600kHz,但并没有明确在该频道使用的带宽,数据速率以及调制方式方面要求,这就给予了应用很大的空间。本文主要是基于868MHz频段的要求,设计了比较简单通用的无线收发系统,该系统可适用于该频段的不同的无线传输应用。

SX1231介绍及性能描述

SX1231芯片是Semtech公司推出的一款高集成度、低功耗、多频段的UHF RF收发器。其工作电压为1.8V~3.6V,24引脚QFN封装,工作频率包括3155MHz、4335MHz、 8685MHz和915MHz无许可证的ISM频段;内部集成SIGMA-DELTA小数分频锁相环、功率放大器、唤醒定时器、数字调制解调器、66字节的发送和接收数据FIFO、数据包处理、数据加密功能AES,以及6个可配置的DIO等,所有主要的RF通信参数是可编程的,大多数可动态设定。采用16节的FIR通路滤波器,因而有好的选择性;发射功率可编程输出,从-18dBm到+17dBm;有多种调制解调方式:FSK、GFSK、MSK、GMSK和OOK等;SX1231在使用时所需的外部元件很少,1个32MHz的晶振、几个电容和电感就可组成一个高可靠性的收发系统,设计简单且成本低。SX1231在1.2kbps时的灵敏度高达-120dBm,主要用在无线抄表(AMR)、无线传感器网络、家庭和建筑物自动化、无线告警和安全系统、工业监视和控制等领域。

无线射频收发系统设计

系统总体方案

无线射频收发系统的结构框图如图1所示,由STM8L151K2单片机控制SX1231实现无线数据的收发。发送模块中的STM8L151K2将数据传送给SX1231,然后SX1231对数据进行包格式处理,包括增加前导码、同步字、CRC校验码,如果需要也可以对数据进行加密处理。最后数据包经天线发送给接收模块。接收模块对接收到的射频信号放大、解调、解包之后,再将数据送给主控制器STM8L151K2进行相应的处理,如送显示屏或PC数据处理中心等。该系统包括按键和液晶显示屏等人机交互界面,以及RS232接口,这实现了与PC的通信功能。

图1 系统方框图

系统硬件设计

主控芯片选用ST公司推出的单片机STM8L151K2。STM8L151K2有1K bytes的RAM和8K bytes的Flash以及256bytes的EEPROM,片上集成了包括串口、SPI、I2C、ADC、触摸屏控制功能等外围模块接口,完全满足本系统对微控制器的要求;有多种电源管理模式(如等待模式、低功耗运行模式、低功耗等待模式等)。


STM8L151K2可以通过SPI接口对SX1231的内部寄存器进行读写操作,灵活配置各项参数。通过4线SPI接口完成对SX1231的初始化配置、读写数据、访问FIFO等操作,使SX1231正常工作在发射、接收模式,完成数据在空中的传播。

SX1231是15脚~18脚的标准的SPI接口,DIO0~DIO5可以通过内部寄存器来配置成不同的中断信号。映射关系如表1所示,这样可以很方便地获取SX1231的工作状态。如果需要了解FIFO满、FIFO不是完全空,工作模式Ready,有效的数据包发送或接收、电池电压低、RSSI、PLL锁定等状态,都可以配置寄存器来把这些信号映射到DIO PIN,然后单片机STM8L151K2通过检测这些DIO PIN的电平来获得或者主动通知MCU某个状态发生。可用19脚(RXTX)控制射频收发开关以进行发射通路和接收通路的切换,高电平时为发射状态。图2中采用UPG2214TB射频开关,V1和V2分别为开关的控制脚。由于SX1231只有一个控制脚,因此增加一个三极管反相器就完成了开关的控制。21脚(RFIO)是发射和接收共用的PIN,但是该PIN的最高输出功率为13dBm。如果需要输出更高的功率(17dBm或20dBm),就必须把发射接至23脚(PABOOST),这时21脚(RFIO)只当作接收PIN。

图2 硬件设计原理图

SX1231接收端的输入阻抗可设置成50Ω和200Ω,通常设成200Ω,此时同一匹配值在全频段仍可获得很好的灵敏度。

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。

图5 载波频率容限

发射信号的占空比限值:1%
发射信号的占空比通常指在一定时间内,发射信号的时间与未发射信号的时间比值。这主要取决于应用的要求,但是对类似短距离无线通信,发射器的发射的时间是非常的小,适合于各种控制类应用。如抄表的应用中,每个月抄表一次,而且每次发射的时间都小于1秒,这个占空比远远小于1%。

图6 信道间隔和占用带宽

图7 邻信道功率

信道间隔和占用带宽

对于25kHz的信道间隔,允许的占用带宽为8.5kHz~16kHz之间。从图6的结果中可以看到,占有99%的能量的占用带宽为14.7247kHz,小于16kHz。

邻信道功率

在载波25kHz频率偏移处的功率须小于载波功率40dB。

接收灵敏度

接收灵敏度是-113.4dBm@0.1%。整个系统的接收链路预算为120.2dB。通信距离可以达到600m左右。
从测试结果可看出该系统具有很好的性能,精准的频率控制,高的接收灵敏度,可以满足于宽带的应用要求,而且结果也表明完全适合于窄带应用。完全满足于中国年微功率(短距离)无线电应用对于868MHz~868.6MHz频段的规范要求。在本系统的基础上,稍作改变就可适用于不同的应用环境。

关键字:STM8  UHF  RF收发器  SX1231  无线射频收发系统 引用地址:基于STM8及UHF RF收发器SX1231的无线射频收发系统设计

上一篇:STM8单片机关于rtc部分代码分享
下一篇:STM8单片机的中断控制和中断功能

推荐阅读最新更新时间:2024-11-08 20:00

STM8支持哪些RTOS操作系统
一、引伸问题 回答这个问题之前,引伸一个问题:STM8有必要使用操作系统吗? 这个问题其实没有标准答案,我用STM8裸机开发过项目,也在STM8的项目上跑过RTOS。 具体要看项目实际情况:MCU资源情况、功能复杂程度、实时性等。 比如:通过UART通信,简单控制几个IO口,这种或许没必要跑RTOS。 二、回归主题 STM8都支持哪些RTOS操作系统? 我找了下官方资料,共列举4种: 1.AtomThreads 这个RTOS应该是使用STM8跑操作系统的人都了解,或者听说过。 我觉得这个系统应该是目前(在STM8上)用的最多的一个RTOS. 在这4个系统中,我也只在STM8上跑过该操作系统。 网址:
[单片机]
<font color='red'>STM8</font>支持哪些RTOS操作<font color='red'>系统</font>?
STM8】串口数据一直卡在读中断
▪ 现象 STM8 UART1 开启了读中断,初始化代码如下: // 配置串口参数为:波特率115200,8位数据位,1位停止位,无校验,禁止同步传输,允许接收发送 UART1_Init((u32)115200, UART1_WORDLENGTH_8D, UART1_STOPBITS_1, UART1_PARITY_NO, UART1_SYNCMODE_CLOCK_DISABLE, UART1_MODE_TXRX_ENABLE); // 启用 UART1 中断 // UART1_IT_RXNE_OR 表示 接收数据寄存器非空或者溢出错误时 触发中断 UART1_ITConfig(UART1_IT_RXNE_OR, ENA
[单片机]
STM8单片机学习总结05-蓝牙模块
本次操作使用的“蓝牙模块”为“HC-06”,主要注意以下几点: 01)、“HC-06”(蓝牙模块)而言,其与“HC-05”一样,均采样“AT指令”控制,但需注意: i)、“HC-06”为“串口”连接,电压为“+5.0V”,“波特率”默认“9600”,“设备名称”默认“HC-06”,“配对密码”默认“1234”; ii)、“HC-06”发送“AT指令”时,末尾不需加“\r\n”(Enter键); iii)、需与“手机app”配合使用,推荐“蓝牙串口助手 Pro”; 02)、“HC-06”对应“AT指令”主要操作为以下4项: i)、“测试通信”:发送“AT”,返回“OK”; ii)、修改“波特率”:发送“AT+BAUDx”,“x”为“
[单片机]
IAR - IAR FOR STM8安装
IAR for STM8 是一个嵌入式工作平台,主要应用于STM8 系列芯片的开发,现在(2018年3.10版本)能够支持市面上所有的STM8芯片。 IAR不同平台是需要不同的安装软件,软件已经上传,博客里就可以下载,下面简单说一下安装过程。(和IAR FOR ARM都相同) 2、安装IAR for STM8软件 只要从一开始的这个界面,一直点“next”、“yes”、“是”就能顺利安装完成;安装完成后进入软件界面,如下: 3、软件注册 打开软件IAR Embedded Workbench IDE:License Manager - “取消”- “确定” 许可管理Licens
[单片机]
IAR - IAR FOR <font color='red'>STM8</font>安装
STM8 读同时写(RWW)
RWW特性允许用户在执行程序和读程序存储器时对DATA EEPROM区域进行写操作,因此执行的时间被优化了。相反的操作是不允许的:即你不可以在写程序存储器时对DATA EEPROM进行读操作。 RWW特性是一直有效的而且可以在任意时刻使用。注意:并不是所有STM8都拥有RWW特性,请参考相应的数据手册来了解更多信息。 字节编程 可以对主程序存储器和DATA区域逐字节地编程。要对一个字节编程,应用程序可直接向目标地址写入数据。 在主程序存储器中 当字节编程操作执行时,应用程序停止运行。 在DATA区域中 有RWW功能的器件:在IAP模式下,应用程序不停止运行,字节编程利用RWW功能进行操作。 无RWW功能的器
[单片机]
<font color='red'>STM8</font> 读同时写(RWW)
IAR+STM8——PWM
开发板上的LED1接在了PD3上,而PD3复用功能是TIM2_CC2,正好可以用来测试PWM功能。当然板上的另外2个LED也可以用,LED2对应PD2/TIM3_CC1,LED3对应PD0/TIM3_CC2。本例程通过电位器来调整LED1的亮度。 #i nclude iostm8s207sb.h void CLK_init(void) { CLK_CKDIVR = 0x08; // 16M内部RC经2分频后系统时钟为8M } void GPIO_init(void) { PD_DDR = 0x08; // 配置PD端口的方向寄存器PD3输出 PD_CR1 = 0x08; // 设置PD3为推挽输出 } void TIM2_i
[单片机]
手把手教你STM8单片机标准库移植
本节主要内容:完成Lora模块单片机STM8L101F3标准库的移植 STM8l101F3单片机属于是8位单片机,但和传统的51有很大的区别: 1.STM8的内核不一样: 51单片机的内核是传统的8051,STM8是ST独有的8位单片机内核。 2.STM8单片机内部的寄存器更多,资源更丰富,功能更强大,价格相比8051更贵一点。 3.ST公司提供了STM8单片机对应的标准库,程序开发一般基于标准库来开发,而传统的C51单片机直接基于寄存器开发。 对于开发而言,最重要的就是如何搭建单片机的开发环境。STM8单片机和STM32单片机的开发有点类似,都是基于标准库来开发的,这样可以让开发者更加的方便操作。 这篇内容为无际单片机编程lor
[单片机]
手把手教你<font color='red'>STM8</font>单片机标准库移植
UHFFM/FSK无线接收芯片CMX018的原理及应用
    摘要: CMX018是CML公司推出的新型FM/FSK无线接收芯片,它内含双增益模式的低噪声放大器、2级阵频变换器(混频器)、集成振荡器、限幅放大器、温度被偿接收信号强度指示器、FM/FSK解调器和零功率模式控制等电路,能与CMX017配套使用以实现UHF的无线连接。文章给出了CMX018的结构、原理、特性及应用电路。     关键词: 无线接收 FM/FSK CMX018 1 概述 CMX018是CML(Consumer Microcircuits Limited)公司推出的FM/FSK无线接收芯片,它可工作于UHF频段(860~965MHz),与CMX017无线发射芯片配套使用可接收音频FM和
[网络通信]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved