《无线通信开发技术及实践》课件第5章_第1页
《无线通信开发技术及实践》课件第5章_第2页
《无线通信开发技术及实践》课件第5章_第3页
《无线通信开发技术及实践》课件第5章_第4页
《无线通信开发技术及实践》课件第5章_第5页
已阅读5页,还剩129页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章UHF无线数传技术5.1无线数传概述5.2CC1101硬件基础5.3CC1101寄存器5.4CC1101应用编程基础小结5.1无线数传概述

无线数传技术是一种无线数据传输技术,用户可以通过无线数传部分的或全部的替代有线传输,将原本有线的数据链路无线化,以达到减少布线、降低成本的目的,多用于环境恶劣、人烟稀少或者不方便布线的场合。本节将介绍无线数传相关的概念和频段等。

1.概述

典型的无线数传技术利用无线信道实现远程数据传输,可兼具通话功能,有效覆盖半径因产品而异,可长达几十千米。无线数传技术一般用于条件比较恶劣的工业远程控制与测量场合,即通常所说的“三遥”(即遥控、遥测、遥感)系统,因此对技术指标及可靠性的要求是很严格的。无线数传技术一般使用VHF和UHF频段,其中UHF频段抗干扰能力强,并支持各种点对点、点对多点的无线数据通信方式,具有收/发一体、安全隔离、安装隔离、使用简单、性价比高、稳定、可靠等优点。

2. UHF无线数传频段

UHF频段无线数传技术主要使用各国免费使用的免申请ISM频段,其中包含国际通用的2.4GHz(2.400GHz~2.4835GHz)频段。另外,它还包含其他的一些频段,各个国家均有不同。具体工作频段划分如表5-1所示。在表5-1中,2.4GHz为国际通用的免申请ISM频段,蓝牙、WiFi产品均工作在这一频段。在我国,315MHz为早期无线遥控产品的主要频段,无线电磁环境相当复杂,进行无线数据传输不是很可靠,主要用于传输简单数据的无线遥控。433MHz是无线数传产品的主要UHF频段。

3.无线数传芯片及选型

在实际的应用开发中,设计开发者可根据产品开发周期和开发能力选择购买相应的数传芯片或模块。无线数传芯片/模块的主要性能指标包括发射功率、接收灵敏度、传输速率、传输距离和功耗,其选型在设计中是至关重要的。无线数传芯片的种类比较多,正确的选择可以减小开发难度,缩短开发周期,降低成本,更快地将产品推向市场。选择无线数传芯片时主要考虑下述几个因素:

功耗:大多数无线收/发芯片是应用在便携式产品上的,因此功耗是非常关键的因素之一,应该根据需要选择综合功耗较小的产品。

发射功率:同等条件下,为保证有效和可靠的通信,应选用发射功率较高的产品。接收灵敏度:接收灵敏度反映了芯片接收微弱信号的能力,在同等条件下,应选择接收灵敏度高的芯片。

开发成本:选用成本较低的无线收/发芯片,避免使用所需的外围元件多、外围元件昂贵的收/发芯片,采用收/发合一的天线,以降低系统开发成本。

芯片体积:较少的管脚以及较小的封装,有利于减少PCB面积,降低成本,适合便携式产品的设计,也有利于开发和生产。在433MHz数传芯片中,CC1101是目前市场上比较主流的一款芯片。CC1101具有较高的传输速率,较低的电流消耗和较高的灵敏度,而且成本低、复杂度小,特别适合初学者学习使用。因此,本书的后续内容讲解都是以CC1101模块为核心而展开的。

5.2CC1101硬件基础

在实际的应用与开发中,设计者可根据产品开发周期和开发能力选择使用CC1101芯片或者模块,采用单片机控制,实现其应用与开发。本节主要介绍搭建CC1101无线数传硬件系统的基础,包括认识CC1101芯片和模块的特点、结构等。5.2.1CC1101芯片

CC1101是一款单芯片、低成本的UHF频段无线收/发器,基于IEEE802.15.4标准开发,专为低功耗无线应用而

设计。

1.芯片概述

CC1101主要设定在315MHz、433MHz、868MHz和915MHz的ISM频段,可以很容易地编程,使之工作在其他频率,如300MHz~348MHz、387MHz~464MHz和

779MHz~928MHz频段。

CC1101芯片具有数据包处理、数据缓冲、突发数据传输、接收信号强度指示(RSSI)、空闲信道评估(CCA)、链路质量指示以及无线唤醒(WOR)等功能,内部的参数寄存器和数据传输FIFO可通过SPI接口控制,所需的周边器件很少,使用简单。

2.芯片引脚

CC1101芯片的引脚图如图5-1所示。图5-1CC1101芯片引脚

CC1101芯片的各个引脚说明如表5-2所示。5.2.2CC1101模块

厂家提供的CC1101模块一般由PCB主板、SMA接头以及外接天线组成。其中,SMA连接器用于与50Ω负载匹配,可使连接评估板和原型产品至不同测试设备(如频谱分析器)变得简单。天线可以根据需要选择标准配置的短柱状天线、弯头天线(方向360度可调)或镀银金属天线(成本低,适合大批量应用)。本书配套的实验开发套件中的天线为短柱状天线。

1.模块概述

CC1101模块的主要性能及特点如下:

工作于433MHz免费ISM频段,免许可证使用。

工作电压:1.8V~3.6V(推荐3.3V)。

可编程控制的输出功率,对所有的支持频率可达+10dBm。

工作速率最低为1.2kb/s,最高为500kb/s,支持2-FSK、GFSK和MSK调制方式。

高灵敏度(在速率1.2kb/s下为-110dBm,1%数据包误码率)。

功耗低(在RX中,15.6mA,2.4kb/s,433MHz)。

开阔地实际传输距离一般为250m~300m(视具体环境和通信波特率等而定)。

CC1101适用于多种无线通讯应用,如超低功耗无线收/发器、家庭和楼宇自动化、高级抄表架构、无线计量、无线报警和安全系统等。其中,几个典型的应用领域如下:

车辆监控、遥控、遥测、水文气象监控。

无线标签、身份识别、非接触RF智能卡。

小型无线网络、无线抄表、门禁系统、小区传呼。

工业数据采集系统、无线232数据通信、无线485/422数据采集。

无线数据终端、安全防火系统、无线遥控系统、生物信号采集。

2.模块接口

为便于嵌入式应用,CC1101模块采用标准的DIP间距接口,其外接引脚如图5-2所示。图5-2CC1101模块引脚图相关引脚说明如表5-3所示。单片机与CC1101及其他辅助外设的接口电路如图5-3所示。从图中可以看出,CC1101通过SPI接口与单片机相连,相关外设有按键、LED灯、蜂鸣器和LCD12864液晶显示器。图5-3单片机与CC1101及相关外设的接口电路5.3CC1101寄存器

单片机与CC1101的通信都是通过对寄存器的访问来完成的。了解CC1101的寄存器是能够正确配置和使用它的前提条件,本节将讲解CC1101寄存器的相关内容和访问方法。5.3.1寄存器空间

CC1101的SPI地址空间是0x00~0x3F,只需BIT0~BIT5即可表示寄存器地址。SPI的地址空间由配置寄存器(0x00~0x2E)、指令选通脉冲(又称命令滤波)寄存器(0x30~0x3D)、状态寄存器(0x30~0x3D)和多字节寄存器(0x3E和0x3F)组成。CC1101的SPI地址空间如表5-4所示。配置寄存器在表5-4中,几个重要寄存器名称及功能如下所述:

配置寄存器:可读/写(由R/W位控制),可单字节访问和突发访问(由突发访问控制位B控制)。地址范围为0x00~0x2E。

指令选通脉冲(命令滤波)寄存器:指令选通脉冲是CC1101的单字节指令,可读/写,对这些寄存器的访问操作将会使内部状态或模式发生改变。只要写一下对应寄存器的地址,不用写数据,内部就会自动执行相应的指令,比如重启芯片,设置为发送模式等。地址范围为0x30~0x3D。状态寄存器:只读,地址范围为0x30~0x3D。

多字节寄存器:包含PATABLE寄存器和FIFO寄存器,可读/写,可单字节访问或者突发访问。其中,PATABLE内部是一个8字节表,用于定义PA控制设置。对PATABLE的访问,可用于设置发射功率。FIFO包含TXFIFO和RXFIFO两个单独的64字节寄存器。当配置字的BIT7位为1(读寄存器)时,访问的是RXFIFO;当配置字的BIT7位为0(写寄存器)时,访问的是TXFIFO。5.3.2寄存器访问函数

本节讲解配置寄存器、指令脉冲选通寄存器、状态寄存器的相关访问函数。

1.配置寄存器

配置寄存器为可读/写寄存器,可单字节访问和连续访问。下述示例用于实现单字节读寄存器。

2.指令脉冲选通寄存器

指令选通脉冲寄存器又称命令滤波寄存器,可读/写,只能单字节访问。下述示例用于实现对指令脉冲选通寄存器的访问。

3.状态寄存器

状态寄存器为只读存储器。要读取某状态寄存器里面的值,应首先将0x30~0x3D的地址加上0xC0(BIT7和BIT6位均为1,表示连续读);然后写入数据,就可以读到相应状态寄存器里的值了。下述示例用于实现读状态寄存器。

5.4CC1101应用编程基础

5.4.1一般编程方法

任何单片机都可以实现对无线模块的数据收/发控制,应选择自己擅长的单片机型号进行控制,本书采用ATmega16单片机作为主机控制。CC1101应用编程的一般方法和步骤如下:

(1) ATmega16单片机SPI初始化。

(2) CC1101复位。

(3) CC1101初始化。

(4) CC1101发射功率设置。

(5)状态机转换,写/读FIFO数据。实际用户可能会选择自己的其他单片机作为主控芯片,需将相关程序进行移植,但应注意:

确保I/O是输入/输出方式,且必须设置成数字I/O;

注意与使用的I/O相关的寄存器配置,尤其是带外部中断和AD功能的I/O,相关寄存器一定要设置好;

调试时先写配置字,然后控制数据收/发;

注意工作模式切换时间。5.4.2SPI初始化

1. CC1101的SPI时序

SPI接口上的所有事务均以一个报头字节(即配置字)作为开始,该字节包含一个读/写控制位R/W,一个突发存取(即突发访问控制)位B,以及一个6位地址A5~A0。其中,CC1101读/写控制是BIT7,BIT7=1为读对应的寄存器;BIT7=0为写相应的寄存器。BIT6是突发存/取位,BIT6=1为突发访问(即连续访问),BIT6=0为单字节访问。所有数据的传输均以最高位开始。

SPI配置寄存器的读/写操作时序图及SPI接口时序要求如图5-4所示。图5-4SPI配置寄存器的读/写操作时序图从图5-4中可以看出,CC1101在时钟的上升沿锁存数据,在时钟的下降沿移出数据。在SPI传输空闲时,时钟SCLK保持在低电平状态。由此可知,SPI工作在模式0。在SPI总线上传输报头字节或读/写寄存器期间,CSn引脚必须保持低电平,如果CSn电平升高,那么传输就会被取消。当拉低CSn电平时,在开始传输该报头字节以前,MCU必须等待,直到CC1101的SO引脚变为低电平为止。SO引脚变为低电平表明内部已稳定。

2. SPI初始化

下述示例用于实现ATmega16的SPI初始化,设置相关I/O引脚,SPI工作在模式0,时钟为主频的16分频,使能SPI。

【示例5-8】SPI初始化函数SpiInit()。5.4.3CC1101复位

1. CC1101状态

当通过SPI接口发送报头字节、数据字节或指令选通脉冲时,芯片状态字节由CC1101通过SO引脚发送。每当一个字节通过SI引脚写入到寄存器时,状态字节将被送到SO引脚。该状态字节包含一些关键的状态信号,对于MCU而言是非常有用的。第7位为CHIP_RDYn信号,该信号在SCLK首个正边缘以前必须变为低电平。CHIP_RDYn信号表明晶体正在运行。

第6、5和4位由STATE值组成,反映了芯片的8种状态。只有芯片处于IDLE状态时,频率和信道配置才能被更新。当该芯片处于接收模式时,RX将处于工作状态。同样,当该芯片处在发送模式时,TX将处于工作状态。状态字节中最后四位(3:0)为FIFO_BYTES_AVAILABLE,表示数据缓冲区FIFO的可用字节,最大值是15,表示15或者更多字节是可使用(自由)的。FIFO分为TXFIFO和RXFIFO两个单独的数据区,进行读取操作(报头字节中的R/W位为1)时,表示可从RXFIFO读取的字节数;进行写入操作(R/W位为0)时,表示可写至TXFIFO的字节数。

2. CC1101复位

CC1101的系统复位有自动上电复位(POR)或手动复位两种方式。这里重点讲述手动复位,即采用SRES指令完成复位的过程。

使用SRES指令选通脉冲进行复位是使CC1101全局复位的一种方法。通过发出指令选通脉冲,所有内部寄存器和状态均被设置为默认值,即IDLE状态。手动上电时序如图5-5所示。图5-5使用SRES完成手动上电复位从图5-5中可以看出,系统手动复位的步骤如下:

(1)设置选通脉冲CSn为高电平。

(2)拉低CSn,保持CSn为低电平。

(3)设置CSn为高电平,并保证高电平至少持续40μs。

(4)拉低CSn,等待SO变低(CHIP_RDYn信号为低,表示内部已稳定)。

(5)通过SI线发送SRES选通脉冲。

(6)当SO再次变低时,复位完成,芯片处于IDLE状态,同时晶体振荡器开始工作。5.4.4CC1101初始化

CC1101的初始化过程主要是完成对CC1101配置寄存器的初始化。相关寄存器的初始值采用厂商给出的推荐设置,对部分配置寄存器作了相关设置,全部的配置寄存器地址及相关说明参见附录5。

下述示例展示了厂商给出的配置寄存器设置函数。在示例5-11中,每一个配置寄存器的设置均通过SPI写寄存器函数halSpiWriteReg()实现,详细程序代码参见示例

5-4。

此处的地址实参均封装为宏定义的形式,其定义如下:5.4.5发射功率设置

对发射功率的设置是通过访问PATABLE寄存器来实现的。对PATABLE的访问可以是单字节或突发访问,具体情况取决于突发访问控制位B。R/W位控制存/取是写入访问还是读取访问。

PATABLE的地址是0x3E,在接收此地址之后,SPI需要等待8个数据字节。对PATABLE的读/写操作是由低到高完成的,一次读/写一个字节,通过内部的指数计数器控制。每读取或写入该表中的一个字节,计数器就加1,当计数到7时会自动从0开始重新计数。当设置CSn为高电平时,内部的计数器会变为最小值0。

工作于433MHz的CC1101的输出功率编程设置如表5-7所示。

【示例5-14】输出功率编程。

unsignedcharPaTabel[8]=

{0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0};//10dBm功率最大输出

halSpiWriteBurstReg(CCxxx0_PATABLE,PaTabel,8); //发射功率设置

其中,CCxxx0_PATABLE为PATABLE寄存器的地址0x3E,其定义如下:

#defineCCxxx0_PATABLE0x3E//采用宏定义的形式将CCxxx0_PATABLE定义为0x3E5.4.6写/读FIFO数据

FIFO在CC1101的SPI地址空间的地址是0x3F,可分为TXFIFO和RXFIFO两个单独的64字节寄存器,均可通过单字节访问或者突发(连续)访问。BIT7位用于控制访问不同的寄存器;BIT6是突发访问控制位,BIT6为1是突发访问,BIT6为0是单字节访问。下列报头字节可对FIFO进行存、取:

0x3F:单字节访问TXFIFO。

0xBF:单字节访问RXFIFO。

0x7F:突发访问TXFIFO。

0xFF:突发访问RXFIFO。

当CC1101芯片进入休眠状态时,两个FIFO都被刷新

为空。

CC1101的数据包结构如图5-6所示。图5-6数据包结构图从图5-6中可以看出,CC1101的数据包由前导码、同步字节、可选的数据包长度、可选的目标地址、真正数据区和2字节的CRC校验码构成。更加详细的内容请参考相关手册。

当开启TX模式时,调制器将开始发送前导(前导字节数由MDMCFG1寄存器设置,具体可参考相关手册)。当前导被发送完毕时,调制器就开始发送同步字,然后发送来自TXFIFO的数据(如果是有效数据的话)。

CC1101支持固定数据包长度、可变数据包长度和无长度限制的数据包3种模式,通过PKTCTRL0的LENGTH_CONFIG位进行设置。对于可变数据包长度模式,PKTLEN寄存器用于设置RX模式中允许的最大数据包长度,任何长度字节值大于PKTLEN的接收数据包将被丢弃。相关的寄存器详情参见附录5。

1.接收数据包

CC1101支持三种不同类型的数据包滤波:地址滤波、最大长度滤波和CRC滤接收模式下的数据包滤波。下面就最大长度滤波作一简单说明。

在可变数据包长度模式下(PKTCTRL0.LENGTH_CONFIG=1),PKTLEN.PACKET_LENGTH的值用来设置最大允许数据包长度。当接收字节值比这个值大时,则数据包被丢弃并且重新启动接收模式。

2.发送数据包

在数据包发送时,必须将要发送的有效负载写入TXFIFO中。开启可变数据包长度以后,长度字节必须最先被写入。长度字节具有一个与数据包有效负载相当的值(包括可选地址字节)。如果接收机端开启了地址识别,则写入TXFIFO的第二个字节必须为地址字节。调制器会首先发送

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论