APP下载

一种基于S=1231的无线数传模块的设计*

2011-07-26李恒焕隋振中

河南工学院学报 2011年2期
关键词:接收数据发送数据数传

李恒焕,隋振中

(1.中国海洋石油总公司,北京253000;2.北京和协航电科技有限公司,北京100012)

随着射频技术、集成电路技术的发展,大量容易使用的、几乎不需要增加多少外围分立器件就可以设计成一个无线收发器的无线射频芯片被研制出来。目前常用的有Nordic公司生产的nrf903,TI公司生产的CC1000,ADI公司生产的ADF7021以及SEMTECH公司生产的S=1231,这些芯片各有特点,在某些关键性指标上有一定的差异,其中前三种芯片支持几十K的无线通信数率和最大10dB的发射功率,前两种芯片的接收灵敏度比S=1231平均低6dB左右,第三种芯片的接收灵敏度虽然与S=1231的灵敏度相当,但是通信数率和发射功率低于S=1231。

1 S=1231芯片简介

S=1231是美国SEMTECH公司生产的射频收发芯片,将无线发射与接收功能集成在单一的QFN-24芯片上,芯片内集成了高频发射、高频接收、PLL合成、FSK调制、FSK解调、VCO等电路,具有高速率、超低功耗等功能。可以工作在包括 433MHz、868MHz和915MHz无需牌照的ISM(工业、科技、医疗)频段的很宽频带范围内。其高集成度的体系结构只需极少的外部元件即可获得最大的设计灵活性,所有主要的通信参数都是可编程的,而且其中大部分可以动态设置。全集成频率综合器的分辨率达到61Hz。这些特性使得芯片适用于高性能、低成本的无线通信设计当中。

S=1231芯片集成了各种内部寄存器,这些寄存器控制着芯片的工作频率,工作带宽、频率分辨率、发送波特率、发送功率以及接收灵敏度等参数,S=1231带有工作于从模式的SPI接口,对芯片各种控制寄存器的配置参数的设置可以通过该接口完成,同时芯片特定数据处理模式下的发送和接收的数据也可以通过该接口传送,接口简单可靠。另外,在芯片处于工作状态的情况下,大部分控制寄存器的内容允许实时更新,这一特性大大增强了设计模块的工作灵活性。芯片提供6个可配置输入输出信号线,在不同工作模式下,可根据芯片内部寄存器配置参数,提供相应的状态指示信号,如接收(发送)准备好,锁相环成功锁定信号,检测到电源电压低信号等,方便外围控制设备响应;此外,外围设备也可以通过配置寄存器SPI总线,读出相应寄存器的特定位来查询芯片工作状态。

2 模块的硬件设计

2.1 模块整体框图

本模块的硬件主控制器采用Cotex-M0[1]内核M058LAN,S=1231、RS232电平转换芯片MA=3232以及射频收发转换开关AS213-92[2]构成。Cortex-M0内核M058LAN最高可运行至50MHz,特别适用于需要高速控制的工业领域。内建32K/64K字节APROM Flash存储器,4K字节非易失性数据存储区(Data FLASH),4K ISP用 LDROM Flash存储器,及 4K SRAM。控制器通过SPI0与RF收发芯片S=1231相连接,配制数据以及收发数据都通过该接口完成。S=1231自带的Rx/Tx switch control引脚直接连接收发转换开关的控制引脚,简化了收发控制电路的同时减轻了控制器的负担。模块的整体组成框图如图1所示。

图1 模块硬件组成框图

2.2 工作模式

从S=1231的信号处理链路来看,S=1231有下列两种不同的工作模式供用户选择。

1)连续工作模式:每一比特发送数据或者接收数据都可以通过芯片的DIO2/DATA引脚实时获取。该操作模式的实时性强,但是外部处理器运算量较大,因此采用该种工作模式时,外部的控制芯片具有强大的、足够的信号处理能力是必不可少的。

2)包工作模式:外部控制芯片只需和芯片的FIFO打交道,从FIFO中取走接收的数据或者向FIFO中填入需要发送的数据,取数和放数都是按照字节的方式进行操作。发送数据时,芯片上的包句柄首先完成几个信息包的导向任务,这其中包括前导和同步字节的生成,CRC校验,数据加白噪声和去白噪声,曼彻斯特编码和解码,地址滤波,AES加密和解密等。数据经过FSK解调、比特同步和模式识别后,自动进行串并转换。接收数据时按照逆向进行。

本设计中,为了简单灵活,S=1231被配置为包(Packet)模式工作。发送和接收的数据都存储于芯片上的FIFO中,由主控制器通过SPI总线进行访问。芯片在包模式下工作的数据链路框图如图2所示。

图2 接收Packet模式数据链路框图

3 模块的软件设计

3.1 寄存器读写编程

S=1231共有83个寄存器,其中,只有前81个寄存器是常用的。其分类与地址如表1所示。

表1 S=1231寄存器列表

对S=1231各种寄存器的读写操作都通过三总线SPI串行通信进行,S=1231数据手册上给出的单次串行通信时序如图3所示:

有备无患才能临阵不慌,各项准备工作就绪,各相关部门和沿江各单位成竹在胸,云南电网厉兵秣马迎战“最大洪水”。

图3 SPI单次访问寄存器通信时序

由图3可以看出,对外部控制器来讲,典型的单次访问寄存器的时序为:首先NSS片选信号为低电平,选中要操作的芯片,然后在MOSI信号线上输出寄存器地址,紧接着送出对该寄存器要编程的数据,最后NSS片选信号为高,结束对芯片的操作。读写S=1231的任意一组寄存器都可通过以下的通用函数来进行。下面给出了通过SPI串行总线编程[3]的一个通用寄存器访问函数(Keil环境 M058LAN芯片编程),函数入口是寄存器地址和要操作到寄存器的参数以及操作的寄存器的方式

由于对发送数据和接收数据的访问操作同对S=1231寄存器的访问类似,都是通过串行SPI总线进行,实现方法不再详叙。

3.2 无线数据收发编程

首先按照选定的S=1231的工作方式,完成参数配置寄存器的设置,参数设置完成以后,收发数据就可以进行了。

3.2.1 接收数据流程

1)对地址37寄存器进行写操作,配置REG_DIOMAPPING1寄存器,DIO0设置为输出 PAYLOADREADY信号。对地址39寄存器进行写操作,配置接收FIFO满中断为接收同步中断;

2)对地址1寄存器进行写操作,配置芯片为接收工作模式;

3)在循环当中查询DIO0引脚输出状态,如果收到DIO0引脚的状态改变,则发生接收同步中断,连续对串行数据总线进行66次读操作,读取芯片接收到的数据到外部处理器的缓存当中,进行后续处理或者经由串行通信接口发送到上位机。

3.2.2 发射数据流程

2)对地址37寄存器进行写操作,配置芯片为接收工作模式;

3)在循环当中查询DIO0引脚的输出状态,如果DIO0引脚的状态未改变,则通过写SPI总线继续向芯片传送发送数据,若DIO引脚的状态发生改变,则接收到数据包发送中断,控制芯片停止向S=1231传送数据,循环等待。该循环发送36bit前导帧0=AA;

4)与步骤3)类似,依次循环发送4字节的模式识别码:0=96,0=18,0=E7,0=69(接收机端配置的模式识别码的个数、数值和发送顺序必须与发送端的一样,如此接收机才能很好地识别);

5)与步骤3)类似,在循环当中查询DIO0引脚的输出状态,开始发送数据帧内数据。

3.3 无线数传模块编程

虽然S=1231为半双工芯片,但是其工作方式可以动态改变,在实际应用中模块可以互相通讯,构成数据传输网络。本设计中S=1231配置为包工作模式,发送和接收数据都是按照包为单位进行处理的,以下给出数传模块的软件编程思路:

1)写S=1231的配置寄存器,完成S=1231初始化,设置芯片默认工作于接收数据模式。需要注意的是,为了防止外部控制芯片的通信缓冲区发生溢出,S=1231的收发数据比特率设置不能高于外部控制芯片的串口比特率;

2)外部控制芯片收到需要发送的数据,进入发送数据状态。写S=1231的配置寄存器,将工作模式更改为发送数据模式,依次发送前导码、模式识别码,需要发送的数据。写配置寄存器,返回接收数据模式;

3)外部控制芯片接收需要无线发送的数据是通过中断的方式进行的,在其向S=1231传送需要无线发送的数据的同时,中断接收程序也在执行,将收到的数据存放到通信缓冲区中。由于在芯片初始化时的比特率设定,在具体编程时设置一个较小的环行数据缓冲区即可;

4)判断数据缓冲区中无线发送的数据指针是否同串口接收到的数据指针一致,如果一致则说明串口收到需要发送的数据已经发送完毕,停止无线数据的发送,写S=1231的配置寄存器,设置芯片工作于接收数据模式;

5)芯片工作于接收数据模式下,当接收到发送设备发来的无线数据时,外部控制芯片同样也开辟一个同发送数据同样大小的环形数据缓冲区存储接收到的数据。调用串口中断处理程序将缓冲区中的接收数据传送到上一级设备。

4 模块接收灵敏度

对无线数传模块接收灵敏度进行测量,可以计算出数传模块之间的通讯距离。测量连线框图如图4所示。

图4 灵敏度测量连线框图

在实际测量中,已知固定衰减器的衰减为80dB,射频线缆衰减-21dB。两模块的参数都设置为相同:工作频率915MHz,以0dBm功率发射,A模式接收,1.2Kbps数据速率,接收带宽10K,频率分辨率5K。当可调衰减器调至10dB时,接收数据出现较多错误(超过30%),此时可计算出灵敏度为10+80+21=111dBm。而S=1231标称的灵敏度为-120dBm@1.2Kbps,相差较多。后测量出模块射频插座处发射出的平均功率约为-8dBm,比设置值低了8dBm,原因是射频开关的插损、匹配电路有损耗。若将这部分损耗考虑在内,则数传模块的灵敏度为-119dBm,与标称值已经很接近。接收灵敏度与传输距离关系公式为 Lfs(dB)=32.44+20Log d(km)+20 Log f(MHz),将测量值111dBm带入公式,计算出其理想状态下可靠通讯距离为9.25km。

5 模块的应用

在某大型油田企业中,采油现场有多个控制器分别控制温度采样传感器,液位采样传感器,流量控制传感器以及管道压力传感器,每个控制器的核心都由一台PLC组成,相关信息需要远距离传输至企业中控室。传统的线缆连接施工困难,造价昂贵,现在配置多个无线数传模块和PLC通讯,中控室的控制计算机配置无线数传模块和这些控制器组成星型无线网络,中控室的监控计算机可以无线方式和现场的PLC通讯。PLC和监控计算机都通过RS232串行口连接数传模块。这样就可以方便地通过中控室的监控软件实时地了解现场的各种状况,极大地节约了人力和物力,大大地提高了现场控制的效率。目前整个系统工作稳定可靠,这验证了无线数传模块设计的可行性和正确性。

6 结语

本文使用高灵敏度低功耗无线射频芯片S=1231,配合具有 Cotex-M0内核的处理器M058LAN,实现了简单可靠的无线数传模块。该模块硬件电路结构简单,功耗低,整机体积仅有普通烟盒大小,安装方便,成本低廉,整个模块造价不足百元,通信可靠性优势明显,可替代各种短距离有线数据传输,在工业生产、管道输送、医疗电子、智能家居等领域有较大实用价值。

[1] 马忠梅,徐英慧.ARM嵌入式处理器结构与应用基础[M].北京:北京航空航天大学出版社,2007.

[2] 王子宇,张肇仪,徐承和等译.射频电路设计-理论与应用[M].北京:电子工业出版社,2007.

[3] 吴明晖,徐睿,黄健,徐辰.基于ARM的嵌入式系统开发与应用[M].北京:人民邮电出版社,2005.

猜你喜欢

接收数据发送数据数传
冲激噪声背景下基于幅度预处理的测向新方法*
基于数传电台的靶弹测控系统设计
嫦娥卫星数传副瓣信号的干涉测量研究与精度验证
低复杂度多输入多输出雷达目标角度估计方法
一种车载自组织网络的媒体接入控制协议
基于马尔科夫链的LoRaWAN网络节点性能分析
带标记方式的CRDSA++协议性能分析*
使用IPSec安全传输数据
单片机模拟串口数据接收程序的实现及优化
高速数传电缆散射参数的测试及半实物仿真的分析与研究