您的当前位置:首页正文

单片机无线通信系统的设计与实现

2022-02-23 来源:步旅网
第3期2010年6月

微处理机

MICROPROCESSORS

No.3Jun.,2010

·微机网络与通信·

单片机无线通信系统的设计与实现

婷,施国梁,黄

(苏州大学电子信息学院,苏州215006)

要:给出了一种基于51系列单片机的通用无线通信系统的设计与实现方案,讨论了系统

的组成结构,指出了单片机作为无线通信系统的控制核心是如何通过SPI总线接口实现对无线收

发器的控制的。介绍了芯片的相关信息和SPI协议,重点给出了本系统的硬件接口电路和相应的软件设计。实验结果表明,该方案在实际应用中有效可靠,对嵌入式系统的无线通信应用具有参考价值。

关键词:无线通信;STC12C5A60S2;串行外围设备接口总线;IA4421

DOI编码:10.3969/j.issn.1002-2279.2010.03.008中图分类号:TP277

文献标识码:A

文章编号:1002-2279(2010)03-0027-05

OntheDesignandRealizationofaMicrocontroller-BasedWireless

CommunicationSystem

HUANGTing,SHIGuo-liang,HUANGKun

(SchoolofElectronicsandInformationTechnologies,SooChowUniversity,Suzhou215000,China)

Abstract:PresentedisthedesignandimplementationofaMCS51seriesmicrocontroller-basedgeneral-purposewirelesscommunicationsystem.AfteradetaildescriptionsofthesystemstructureandthemechanismofhowMCUcancontrolthewirelesstransceiverviaSPIinterface,applicationrelatedinformationabouttheMCUandwirelesstransceiverICisalsogiven.BothcircuitdesignandMCUfirmwaredesignareemphasized.Experimentsaredirectedtoshowthefeasibilityandeffectivenessoftheproposedwirelesscommunicationsscheme.

Keywords:Wirelesscommunications;STC12C5A60S2;Serialperipheralinterfacebus;IA4421

技术只能在视线可以达到的范围内定向传输,中间

不能有任何阻挡,同时要求通信设备的位置相对固定,这样就无法应用于移动设备;Wi-Fi是以太网的一种无线扩展,主要目的是提供WLAN接入,但由于其硬件实现需要很大的容纳空间,且往往在商用计算机系统中实现,这就限制了其在工业领域,尤其是在某些不依赖通用计算机的特殊工业场合的应用。

针对这些问题提出了一种功耗低、成本低且利于在嵌入式系统中实现的通用无线通信系统,它基于无需申请就可使用的433MHzISM频段,可广泛适用于消费类电子、无线遥控玩具、汽车用自动化、家庭自动化控制及建筑安全装置等领域。

1引言

无线通信是当前发展最快的技术之一,已渗透

到社会的各个角落,有着广阔的市场和业务需要。目前主要的无线技术有:蓝牙(Bluetooth),红外数据

[1]

传输(IrDA),无线局域网(Wi-Fi)等。Bluetooth是一种无线数据与语音通信的开放性全球规范,其实质是为固定设备或移动设备之间的通信环境建立通用的近距无线接口,但由于芯片大小和价格难以下调,使得许多用户不愿意花大价钱来购买这种无线设备;IrDA是一种利用红外线进行点对点通信的技术,是第一个实现无线个人局域网(PAN)的技术,但它对于点对多点的通信显得无能为力,且红外

作者简介:黄婷(1983-),女,湖南长沙人,硕士研究生,研究方向:嵌入式系统应用。

收稿日期:2009-08-15

·28·

微处理机2010年

2系统组成及功能概述

线通信,要求它同时能满足低成本与低功耗的要求,本系统选用了IntegrationAssociates公司的射频芯片IA4421[3],这是款全集成的低功耗、多频道的FSK收发器,应用时具有高度灵活性且无需统调。该收发器内部集成包括高频功率放大器(PA)、低噪声放I/Q转换混频器、大器(LNA)、基带滤波器、放大器、I/Q解调器,可见它已集成全部的射频功能,使用时仅需要附加晶振与去耦电容。

在硬件接口方面主要考虑系统部件之间的兼

[2]

容性和效率。而SPI(SerialPeripheralInterface)总线是Motorola公司提出的一种同步串行接口技术,允许MCU之间及MCU与各种外围设备以串行方式进行通信与数据交换。本系统中的MCU与射

因此在设计时SPI将被频芯片同时支持SPI接口,

用于系统内部控制与数据通信接口。SPI使用的是

系统主要包括两个分别具有收发功能的无线通信模块,每个模块均由单片机和无线收发芯片RF组成。系统的原理框图如图1所示,发送时,单片机通过SPI总线向RF写入控制命令及所需发送的数RF通过天线发送出去;接收时,据,单片机通过SPI总线读取RF的工作状态,获取芯片相关信息及接收到的数据。两个收发模块之间相互通信,从而实现数据的无线传输。

图1系统原理框图

在本无线通信系统中,单片机作为系统核心主要完成数据处理和控制功能,保证系统工作在最佳

[2]状态。选用宏晶科技生产的STC12C5A60S2,它是高速、低功耗、超强抗干扰的新一代51系列单片

指令代码完全兼容传统的8051,但速度快8-12机,

MISO(主机输四线制,分别是:SS(从器件选择线)、

MOSI(主机输出/从机输入数入/从机输出数据线)、

据线)和SCK(串行时钟信号)。SPI传输数据时,在

主机输出时钟SCK的控制下,主机与从机的两个双实现全双工数据向移位寄存器进行循环数据交换,传输。

倍,工作频率范围是0MHz~35MHz。该型单片机有一个显著特点是使用时无需专用编程器/仿真器,而是通过串口(P3.0/P3.1)即可直接下载用户程序,且同一串口还可用于调试。它还具有高速SPI串行通信端口和硬件看门狗功能(WDT),采用宏晶最新的第六代加密技术,有全球唯一ID号,无法解密,能完全满足本系统低成本和相应的功能要求。

无线收发芯片用于在系统中实现高性能双向无

3系统硬件设计

本无线通信系统硬件电路主要由三个部分组成:

STC12C5A60S2单片机、IA4421收发器、MAX232芯片。具体电路实现如图2所示,其中STC12C5A60S2通过SPI总线读写IA4421的工作状态与控制字,获取并处理相关信息,系统中设置了RS232串行接口,主要用于实现程序下载和调试功能。

图2STC12C5A60S2与IA4421的SPI接口电路

STC12C5A60S2单片机的从选择线(SS)、主输

出线(MOSI)、主输入线(MISO)和时钟信号(SCLK)SDI、分别连接到IA4421的相应功能引脚nSEL、

SDO和SCK。IA4421支持天线直接驱动,这使得天

3期黄婷等:单片机无线通信系统的设计与实现

·29·

线部分实现起来相当简单,仅需使用一个50Ω的外

[4]

接螺旋天线加上对应的差分电路就可以了。为了节省成本,对于不需要远距传输的情形,可以在模块中使用螺旋导线制作的简易天线来满足数据通信要求,本系统正是这样实现的,并且经过实验验证,使用适当形状的螺旋导线制作的简易天线实际有效的通信距离能达到100m左右,对于一般实时控制系统的应用要求是足够了。若用户需要更远的传输

[3]

距离则应设计433MHz的外接PCB谐振天线。STC12C5A60S2单片机、IA4421和MAX232的其它外围电路,如电源、时钟、复位电路等有许多标准的实现方案,不再赘述,读者可参照相关的文献

[2-3]

DORD=0:数据字的MSB(最高位)先发送;

MSTR=1:STC12C5A60S2的SPI接口设置为主机模式;

CPOL=0,CPHA=0:SPICLK空闲时为低电平;SPR1=0,SPR0=0:对应工作频率为CLK/4,CLK指的是CPU晶振的工作频率。

同时需对SPI状态寄存器SPSTAT赋值0xC0以完成其初始化过程,其中第7位SPIF为SPI传输SPIF置位,完成标志位,当一次串行传输完成时,当SPI处于主模式且SSIG=0时,如果当SS为输入并SPIF也将置位,被驱动为低电平,通过软件向其写“1”入清零;第6位WCOL为SPI写冲突标志,在数据传输过程中,如果对SPI数据寄存器SPDAT执行

WCOL将置位,通过软件向其写入“1”清写操作,

零;其他六位保留。

4.2IA4421初始化程序设计

STC12C5A60S2控制器需要对IA4421各个寄存器进行设置,保证其工作在规定的频段和模式下。

[5]初始化时通过SPI总线对IA4421写入控制命令,主要包括配置设定命令、电源管理命令、频率设定命

4软件设计

系统软件设计首先需完成对各个芯片的初始化

设计,接下来其主要工作是数据发送和接收程序。发送数据时单片机直接通过MOSI端口控制射频器件发送数据,而接收时则要扫描单片机的MISO口,判断是否有待接收的数据,下面具体说明单片机如

及发送、接收何实现SPI与IA4421的初始化程序,子程序的功能与实现。

4.1SPI初始化程序设计

本无线通信系统几乎所有的数据传输与芯片控

SPI读写程序是软件控制的制都是通过SPI实现的,

基础。为了使单片机的SPI控制器正常工作,需要

先对其进行初始化设置,这可通过向SPI控制寄存器SPCTL和状态寄存器SPSTAT写入适当的控制字实现。它们是二个8位的寄存器,其中SPCTL的第2位时钟相位CPHA允许用户设置采样和改变数据的时钟边沿,第3位时钟极性位CPOL允许用户设置时钟极性。SPI接口有四种不同的数据传输时序,取决于CPOL和CPHL这两位的组合。本系统STC12C5A60S2为SPI主设备,IA4421为从设中,备,且要求SPICLK的极性在空闲时为低电平,用到SPICPOL=0、CPHA=0的这种时序模式,数据在SCK的上升沿时移入到IA4421,并且器件会在SS生效之后的第一个上升沿时等待数据;如果时钟的起始状态是高电平,它在开始传输数据之前将下降以产生第一个上升沿。故初始化时我们首先对SPI控制寄存器SPCTL赋值0xD0,从高位到低位对每一位的功能描述如下:

SSIG=1:忽略SS脚,MSTR(位4)确定器件为主机还是从机;

SPEN=1:SPI使能;

FIFO和复位模式接收控制命令、数据滤波命令、令、

命令、自动频率控制(AFC)命令,发射配置控制命令、唤醒定时器命令、低任务周期命令和电池低压检测以及微控制器时钟分频命令等,且每个命令字长度均为16位。

配置设定命令的高8位固定为0x80(若未说明,下面每个控制命令的高8位都固定,不再重复),对其赋值0x80dd使位7-6分别置“1”使能内部数据寄存器和FIFO模式,位5-4取值“01”使本系统工作频段为433MHz,位3-0取值“1101”决定晶振负载电容大小为15pF。

电源管理命令对位5和位3置“1”使能整个接收链并打开晶振振荡,故其赋值为0x820c。频率设定命令高4位固定为0xa,低12位F参数(位f11-f0)的范围应在96~3903,由公式

F0=10×C1×(C2+F/4000)(MHz)(1)可以计算出合成器的中心频率F0,其中C1和C2的取值由工作频率433MHz决定,故频率设定命令赋值为0xa080。

接收控制命令的高5位固定,位10置“1”决定第16引脚功能是VDI(有效数据指示)输出,第9-8位取值“00”决定VDI信号响应时间为快速,位7-5取值“100”选择接收基带带宽(BW)为200kHz,位4-3取值“00”选择LNA增益相关最大

·30·

微处理机2010年

值为0dB,位2-0决定RSSI(接收的信号强度指示)检测器门限,故接收控制命令赋值为0x9483。数据滤波命令高8位、第5位和第3位固定,位7置“1”使时钟获取电路自动锁定控制,且由位6决定其为快速模式,位4置“0”选择数据滤波类型为数字滤波,位2-0决定DQD(数据质量检测)门限参数,故数据滤波命令赋值为0xc2ec。FIFO和复位模式命令位7-4决定FIFO的中断级别,位3选择同步格式长度为0x2DD4,位2设置FIFO输入填充的启动条件为同步格式,其开始和停止由位1决定,位0置“1”禁止高灵敏度的复位模式,故FIFO和复位模式命令赋值为0xca81。

AFC命令中位7-6选择自动工作模式,以VDI信号的状态独立保持foffset的值,位5-0根据系统工作频率对频率偏移的相关值进行设置,故AFC命令赋值为0xc4e7。

发射配置控制命令的高7位固定,位8-4决定FSK解调参数输出的频率结果,位2-0取值“000”决定输出功率为0dB,故发射配置控制命令赋值为0x9840。

唤醒定时器命令的高3位固定,通过公式Twake-up=M×2R(ms)(2)由位12-8M(m7到m4)和位7-0R(r4到r0)计算唤醒时间周期,本系统对其赋值为0xffff。低任务周期命令设定后可以减少接收模式的平均功率,其任务周期占空比可通过公式

T=(D×2+1)/M×100%

(3)

由位7-1D(d6到d0)和M计算,位0使能低任务周期模式,本系统未用到该模式,故低任务周期命令赋值为0xc80e。

电池低压检测和微控制器时钟分频命令的高8位和第4位固定,位7-5取值为“011”配置时钟分频为2MHz,位3-0(v3-v0)由公式

Vlb=2.2+V×0.1(V)

(4)

据打包为帧的形式。下面主要介绍一下发送一帧数据的情形,其从帧头开始依次为:同步格式的长度0x2DD4,设置的传输开始标志位,待传数据的长度和实际发送的数据。这里有一点要注意的是,由于发送寄存器写命令的高八位已固定为0xb8,故单片机写发送寄存器命令时要对数据帧中的每组数据进行处理。当电源管理命令的第5位et和第3位ex被置1,同时IA4421片选被激活,发送器开始以设置的码率向外发送数据帧,最后应读入2字节的状态字表示发送完毕。4.4接收子程序设计

IA4421的接收方式采用FIFO模式,在相应的控制字都设置好后,引入的数据通过时钟串入16位FIFO缓冲器内,当VDI和同步格式识别电路指示潜在的真实数据接入,接收器开始填充FIFO,接收开始。

接收一帧数据时,因采用FIFO模式,状态寄存器的前二个字节分别是中断位输出和状态位输出,接下来才是需要的数据,故在接收一帧数据时,应先

且每次读取时都要重复此将前二字节读取后抛弃,

过程;接下来需判断接收到的第三字节是否为开始

标志位,若是则继续抛弃前二字节后再开始数据的接收,接收完毕后读入二字节的状态字表示接收完毕。

5实验结果及分析

为了仿真实际的应用情形,将本无线通信系统在一个布满桌椅和电子设备,如电脑、打印机、示波器等的室内环境中进行数据通信实验,以确认所述方案的实际应用效能。实验时,将2个无线通信模10m、1m、0.1m条件下进行通块分别在相距30m、信,并利用串口监视收发的数据,以十六进制显示出来。实验方式包括单字节的发送和接收及多字节的发送和接收,分别做了5组实验,现介绍其中一组实验如下:

实验距离为30m,方式为多字节的发送和接收。根据程序设定的发送格式:发送的字节数+待发送的数据,假定串口一发送数据为:0x180x010x020x030x040x050x060x070x080x090x100x110x120x130x140x150x160x170x180x190x200x210x220x230x24,串口二发送的数据为:0x170x010x020x030x040x050x060x070x080x090x100x110x120x130x140x150x160x170x180x190x200x210x220x23,2个串口分别发送10帧数据,0x18其中0x17、

计算检测器的Vlb定义的门限电压V的值,故电池低压检测和微控制器时钟分频命令赋值为

0xc060。4.3

发送子程序设计

IA4421成功初始化后,就可以开始数据的发送

和接收了。系统先通过SPI写入电源管理命令字0x8228打开发送寄存器并开始数据的传送,发送完毕后要写入电源管理命令字0x8288关闭发送寄存器,同时打开接收寄存器。

为了实现数据的有效发送和接收,将待发送数

3期黄婷等:单片机无线通信系统的设计与实现

·31·

为发送数据的长度,超出范围的数据将被作为无效处理。串口打印时将同步格式的长度等标志位省

4所示。其实际打印效果如图3、略,

每组实验对串口的发送端和接收端测试数据进

行比对,内容、格式均一致,即系统能够正确、稳定的进行收发通信,符合设计要求。

择方案。经过实验验证,本系统能在实际应用环境

中可靠运行,且在设计时不局限于特定的嵌入式系统,具有较高的通用性,能方便地移植到其他的系统中去,满足无接触数据传输的要求。

参考文献:[1]李斌.基于蓝牙的车间环境下无线通信技术研究与应D].西安:西安理工大学,2008:3-4.用[[2]宏晶科技.STC12C5A60S2系列单片机器件手册[DB/

OL].(2009-11).www.STCMCU.com.

[3]Siliconlabs.IA4421DATASHEET[DB/OL].(2007-

08).www.integration.com.

[4]石琼,江秀臣,曾奕.无线通信在输电线路绝缘子检测

J].微计算机信息,2008(24):9-11.中的应用[[5]邹其洪,柳兰,赵俊.基于LPC2131和IA4421的无线

.信息与电子工程,2009(2):数据采集系统设计[J]

90-93.

6结束语

设计了一个单片机控制的无线数据传输系统,

该系统使用了超低功耗的STC12C5A60S2单片机和同样是低功耗的无线收发芯片IA4421,它们之间的控制与数据连接则是借助SPI接口来实现。SPI接口具有很高的数据传输速率,且器件操作遵循统一的规范,使系统软硬件具有良好的通用性。以无线方式传输数据在实际应用中由于其方便灵活,可望在嵌入式系统中得到广泛应用。本实现方案无需复杂的协议与价格较为昂贵的协议支持芯片,可作为嵌入式系统无线数据传输的一种低成本、低功耗选

因篇幅问题不能全部显示,请点此查看更多更全内容