基于nRF905的无线数据传输设备设计

发布者:atech123最新更新时间:2007-07-17 来源: 电子工程师关键字:功率  频段  指令  编程 手机看文章 扫描二维码
随时随地手机看文章

引言

无线通信在机动性要求较强的设备中或人们不方便随时到达现场的条件下得到了越来越广泛的应用,如无线数据采集、无线设备管理和监控、汽车仪表数据的无线读取等都是其典型应用。微功率短距离无线通信技术作为无线通信实用技术,一般使用单片射频收发芯片,加上微控制器和少量外围器件构成专用或通用无线通信模块,通常射频芯片采用GFSK(高斯频移键控)调制方式,工作于ISM(工业、科学、医疗)频段,通信模块包含简单透明的数据传输协议或使用简单的加密协议,用户不必对无线通信原理和工作机制有较深的了解,只要依据命令字进行操作即可实现基本的数据无线传输功能,因其功率小、开发简单快速而在工业、民用等领域应用广泛。本文介绍利用ATmega16单片机和无线数据收发芯片nRF905构成的短距离无线数据传输设备,给出了硬件和软件设计方案。

1 系统硬件设计

1.1 系统结构

无线数据传输系统结构如图1所示。该系统由外部数据设备和无线数据传输模块组成,外部数据设备为PC机或数据采集等设备,我们设计的主要是无线数据传输模块。无线数据传输模块基于微功耗单片射频收发器nRF905设计,采用Atmel公司的高性能、低功耗8位处理器ATmega16为主处理芯片,完成数据的处理和控制。

1.2 ATmega16和nRF905

Atmel公司的ATmega16单片机具有先进的RISC(精简指令集计算机)结构、非易失性程序和数据存储器,16 kB可编程Flash存储器、512 B的EEPROM和1 kB片内SRAM,具有丰富的外设接口,其USART(通用同步和异步接收器和转发器)是一个高度灵活的串行通信设备,SPI(串行外设接口)允许ATmega16与外设或其他AVR器件进行高速的同步数据传输。

nRF905是挪威Nordic VLSI公司推出的单片射频收发器,工作电压为1.9 V~3.6 V,工作于433/868/915 MHz这3个ISM频段,频道转换时间小于650μs,最大数据速率为100 kbit/s。nRF905由频率合成器、接收解调器、功率放大器、晶体振荡器和GFSK调制器组成,不需外加声表面滤波器,ShockBurstTM工作模式,自动处理字头和CRC(循环冗余检验),使用SPI接口与微控制器通信,配置非常方便。此外,其功耗很低,以-10 dBm输出功率发射时电流只有11 mA,工作于接收模式时的电流为12.5 mA,具有窄闲模式与关机模式,易于实现功率管理。

1.3 硬件电路

硬件电路主要由电源与复位电路、外部数据设备接口电路、单片机系统和nRF905应用电路等几部分组成。硬件电路如图2所示。

1.3.1 电源与复位电路

nRF905和单片机的典型工作电压为+3.3 V,而系统供电电源为+5V,所以采用低压差线性稳压器TPS7333实现+5 V~+3.3 V的线性稳压。为了实现稳定、可靠的复位,使用低电压工作的复位芯片TPS70733产生复位信号。

1.3.2 外部数据设备接口

无线数据传输模块与外部数据设备之间采用RS-232接口,ATmega16的PD0-PD1用于连接RS-232串口。通常,PC机与单片机用两根线方式进行全双工异步通信。由于AVR单片机输人输出为TTL电平,PC机配置的是RS-232标准串行接口,二者电气规范不一致,因此,使用ICL3221收发芯片实现串口电平转换。

数据传输速率在板可设置或通过外部数据设备设置。在板波特率利用ATmega16的PA7、PA6两位设置,可设置为9.6kbit/s、19.2 kbit/s、38.4kbit/s、115.2 kbit/s。利用外部数据设备设置波特率时,单片机的初始数据传输速率为9.6 kbit/s,PA7、PA6置为00状态,当单片机收到波特率没置命令后,数据传输速率调整为设定值。

1.3.3 单片机与nRF905接口电路

单片机与nRF905的接口电路很最要。nRF905内部有5个寄存器:状态寄存器、配置寄存器、发射地址寄存器、发射数据寄存器和接收数据寄存器。除了对寄存器读写外,还需对nRF905工作模式的切换进行控制。单片机与nRF905的信号连接见图3。

ATmega16与nRF905之间的双向数据传输使用SPI接口,单片机的PB7-PB4连接nRF905的SPI接口,PD2-PD7连接nRF905的控制信号和检测信号,用于nRF905的模式切换以及通信过程中必须的信号指示接口。

2 系统软件设计

2.1 数据传输过程

PC机(或其他外部设备)有数据传输或需设置设备参数时,通过串口将数据发送给单片机,单片机接收数据后,将需发送的数据(这里包括目标设备地址和所要发送的数据)通过SPI接口发送给nRF905,nRF905将数据加前导码和CRC码,将数据包发送。

当nRF905接收到有效数据后,DR置高,单片机检测到DR为高电平后,复位TRX_CE引脚,使nRF905进入空闲模式,通过SPI接口从nRF905中读出接收数据,然后通过USART传送给PC机或其他外部没备。

软件功能模块由CPU寄存器初始化、串行口初始化、串口收发送程序、SPI初始化、SPI收发送程序、I/O口初始化、nRF905配置寄存器操作、nRF905接收程序、发送程序、主程序模块组成。下面简要介绍主要的软件功能模块。

2.2 USART串口软件设计

AVR USART与AVR UART在寄存器位定义、波特率发生器、发送器操作、发送缓冲器的功能以及接收器操作等方面完全兼容,此外,接收缓冲器进行了两方面改进:增加了一个缓冲器;接收移位寄存器可以作为第3级缓冲。

2.2.1 串口数据帧格式

外部数据设备与无线数据传输设备间的双向数据传输使用相同的帧格式,帧格式由帧头、帧长、帧标志和数据组成。帧头为数据帧开始标志,固定为0FF81H,长度2字节。帧长指从帧标志开始至本帧结束的所有数据的字节数,不包括帧头、帧长本身,单位为字节,帧长占1字节。帧标志用以指示本帧数据的内容属性,长度为1字节。不同类型帧的数据长度和帧标志具体定义如表1所示。

数据指所传输的业务等内容,数据长度见表1,数据内容定义如下:

a) 波特率设置:01H~0AH对应波特率(单位为kbit/s)为2.4、4.8、9.6、14.4、19.2、28.8、38.4、57.6、76.8、115.2。

b) 设备地址设置:设备地址为00000000H~FFFFFFFFH。

c) 发射功率:00H为低功率;01H为高功率。

d) 工作频率:433 MHz频段,信道间隔100 kHz。

e) 发送数据:发送数据长度不定,最长不超过254字节。

2.2.2 USART初始化

初始化USART操作包括波特率设置、数据格式和UCSRB寄存器设置。USART的波特率寄存器UBRR和降序计数器相连接,一起构成可编程的预分频器或波特率发生器。UBRR值的计算由该公式完成:UBRR=fosc/(16baud)-1,其中Baud为波特率,fosc为系统时钟频率。通过设置UCSRC寄存器,设置数据格式为8位数据位和1位停止位。通过设置UCSRB寄存器,使能串口发送和接收,并响应接收完成中断。

2.2.3 数据发送和接收

数据发送采用查询方式。置位UCSRB寄存器的发送允许位TXEN将使能USART的数据发送,将需要发送的数据加载到发送缓冲区将启动数据发送,加载过程为CPU对UDR寄存器的写操作。发送数据时,按照帧格式在所需发送的数据前加上帧头、帧长、帧标志组帧发送。

数据接收采用中断方式。置位UCSRB寄存器的接收允许位RXEN将启动USART的数据接收器,通过读取UDR寄存器就可以获得接收缓冲器的内容。接收数据时,帧标志有效才能开始接收一帧数据,并根据读出的帧长信息完成接收规定长度的数据。

2.3 SPI接口软件设汁

本设计中SPI配置为主机模式,nRF905为从设备。SPI波特率最高可设置为1/2系统时钟,系统时钟为8 MHz,因此SPI速率可达4 MHz。此外,正确选择SPI的工作模式对SPI数据传输非常重要,AT-mega16的SCK的相位和极性有4种组合,SPI工作模式由CPOL、CPHA设置,根据nRF905的SPI读写时序,ATmega16的SPI工作模式应设置为模式0。

ATmega16与nRF905同时进行双向数据传输。ATmega16配置为SPI主机时,SPI接口不自动控制SS引脚,由用户软件来控制。ATmega16通过将从机的CSN引脚置低实现与从机的同步。SPI时钟由写入到SPI发送缓冲寄存器的数据启动,SPI MOSI引脚上的数据发送次序由寄存器SPCR的DORD位控制,置位时数据的LSB(最低位)首先发送,否则数据的MSB(最高位)首先发送。我们选择先发送MSB,同时接收到的数据传送到接收缓冲寄存器,CPU进行右对齐从接收缓冲器中读取接收到的数据。应该注意,当需要从nRF905中读取多个数据时,即使nRF905并不需要ATmega16串行输出的数据,每读取一个数据前都要向SPI发送缓冲器写一个数据以启动SPI接口时钟。由于SPI系统的发送方向只有1个缓冲器,而在接收方向有2个缓冲器,所以在发送时一定要等到移位过程全部结束后,才能对SPI数据寄存器执行写操作;而在接收数据时,需要在下一个字节移位过程结束之前通过访问SPI数据寄存器读取当前接收到的数据,否则第1个数据丢失。

2.4 nRF905配置及收发流程

对nRF905寄存器的操作是一个很关键的问题,nRF905的所有配置都是通过SPI接口进行的。nRF905的SPI接口只有在掉电模式和standby模式是激活的。当CSN为低时,SPI接口开始等待一条指令,任何一条新指令均由CSN由高到低的转换开始。

nRF905发送模式工作过程如下:

a) 当ATmega16发送数据时,将接收设备地址和所要发送的数据通过SPI接口写入nRF905,SPI传输速率由初始化设置。

b) 置位TRX_CE、TX_EN,激活nRF905发送模式。

c) nRF905自动完成数据打包(加入前导码和CRC),包经过GFSK调制以100 kbit/s发送,当传输完毕DR置位。

d) 如果将AUTO_RETRAN位置高,nRF905将连续发送数据包,直至将TRX_CE引脚复位。

e) 当TRX_CE引脚被设置为低时,nRF905结束发送模式,并进入standby模式。

nRF905接收模式工作过程如下:

a) 将TRX_CE置位,TX_EN复位后650μs,nRF005进入接收模式等待数据到来。

b) 当nRF905在接收信号检测到载波,则CD(carrier detect)引脚置位;然后,如果接收到有效地址则AM(address match)置位,最后将接收到的有效数据包去掉前导码、地址,CRC正确后,将DR(data ready)引脚置位。

c) CPU复位TRX_CE引脚,使nRF905进入空闲模式,然后通过SPI接口读取数据。

d) 数据接收完毕后,nRF905 DR和AM引脚复位并准备进入下一个工作模式。

应该注意的是,在数据发送过程中无论将TRX_CE、TX_EN怎样设置,nRF905都会完成此次发送而不受影响,此后,进八所设置的工作模式。而在接收数据包的过程中TRX_CE或TX_EN状态改变,则nRF905会立即改变工作模式,丢失数据。

2.5 主程序流程

主程序流程图如图4所示。

3 结束语

我们采用 nRF905射频收发芯片和ATmega16微控制器设计了短距离无线数据传输设备,完成硬件电路和系统软件调试后,进行了无线数据收发实验。实验结果表明,在300 m通信距离,该无线传输设备工作稳定,能实现数据的高速有效传输,具有低功耗、抗干扰能力强等优点。

关键字:功率  频段  指令  编程 引用地址:基于nRF905的无线数据传输设备设计

上一篇:基于频谱复用的新型频谱管理方法
下一篇:基于ZigBee技术的无线传感器网络构建与应用

推荐阅读最新更新时间:2024-05-07 15:58

如何使用LS4440构建大功率立体声音频放大器
LA4440 是一款非常流行的双通道音频放大器,通常用于构建大功率音频放大器。该 IC 以其高功率、易于使用和便宜的价格而闻名,这使其在使用 12V 工作的家庭影院和汽车放大器系统中广受欢迎。因此,在本文中,我们将学习如何使用LS4440 音频放大器 IC构建大功率立体声音频放大器。该电路将有两个 LS4440 放大器 IC,将能够驱动两个具有音量、低音和高音控制的 20W 扬声器(20W+20W)。此外,我们的放大器板的音频输入可以直接从音频插孔提供,也可以使用蓝牙无线提供。 LA4440集成电路 在开始构建这个放大器之前,让我们更多地了解LA4440 功率放大器 IC以了解它的技术规格,以便我们可以有效地设计我们的放大器。
[嵌入式]
如何使用LS4440构建大<font color='red'>功率</font>立体声音频放大器
汽车音响发烧友构建移动“金色大厅”
  由于受成本限制,很多普通家用车的音响,往往难以满足许多对这方面比较看重的车主需求,因此音响改装成为众多家用车主买车后,必须进行的一道工序。音响改装是一项商业行为,众多关于音响改装方面的资讯,往往都出自改装店,因此一种宣扬重度改装的风气,在音响改装界蔓延。道理很简单,只有这样的改装,才会有足够的利润率。作为受众群(而非音响改装界“业内人士”),我在这方面有着较多的经验和教训。在此篇里,我将就日常改装过程中常见的问题进行一下汇总,供那些希望理性改装音响的车友参考。    汽车音响无发烧可言,均衡的频响是最重要的   常常会在一些音响改装的案例文章中,看到许多家用音响点评的词汇,类似于声场、细节甚至提琴的松香味等等。其实车用音响与
[嵌入式]
6502单片机编程代码
;;============================================================================== ;; 2007.7.2 F1_Function 播放喇叭 ;;============================================================================== Play_laba: LDA #7 LDX #0 JSR F_PlaySpeechCh1 over?: %Tes
[单片机]
功率小于75W的极低待机功耗适配器设计方案
电源适配器广泛应用于笔记本电脑、游戏机、打印机、DSL调制解调器和手机等领域,应用规模非常庞大。而从人们的使用习惯来看,这些设备也有相当比例的时间处于轻载或待机(空载)工作模式。因此,“能源之星”等规范标准在致力于提升这些设备所用电源适配器工作能效的同时,也注重提升轻载能效及降低待机能耗。 例如,美国环保署(EPA) 2.0版“能源之星”外部电源规范(简称EPA 2.0)在1.1版基础上进一步提高了能效要求(见表1),其中Ln为额定输出功率的自然对数。 表1:美国环保署“能源之星”外部电源的1.1及2.0版规范。 不同适配器的功率等级相差较大,而根据IEC61000-3-2等标准的要求,功率大于75 W的电源需要增加功
[嵌入式]
树脂类封装材料对大功率LED光老化进程的作用
“含有苯环的封装材料最终都会发生老化”。在日前召开的“2006年led技术研讨会”上,三垦电气技术本部LED业务部长大塚康二表示,作为高功率LED封装材料,树脂类材料可能无法避免老化问题。不过,这只是需要高功率和超长寿命时的情况,假如是寿命约2万小时的产品,通过在不会形成界面的树脂材料上下功夫,完全可以使用树脂封装。 大塚表示,要想使LED成为照明等通用光源,“需要一些技术上的突破”。其中,对于LED发光所导致的元件光老化现象,表示需要开发能够避免这种问题的封装材料。目前,封装材料正逐步由环氧树脂向光老化现象更轻的硅酮树脂过渡。但“只要含有苯环,就无法避免颜色逐渐偏黄”(大塚)。大塚表示,需要进一步对树脂类封装材料进行改
[电源管理]
LDR伪指令和LDR指令学习
ARM是RISC结构,数据从内存到CPU之间的移动只能通过L/S指令来完成,也就是ldr/str指令。比如想把数据从内存中某处读取到寄存器中,只能使用ldr比如: ldr r0, 0x12345678 就是把0x12345678这个地址中的值存放到r0中。而mov不能实现这个功能,mov只能在寄存器之间移动数据,或者把立即数移动到寄存器中,这个和x86这种CISC架构的芯片区别最大的地方。x86中没有ldr这种指令,因为x86的mov指令可以将数据从内存中移动到寄存器中。 另外还有一个就是ldr伪指令,虽然ldr伪指令和ARM的ldr指令很像,但是作用不太一样。ldr伪指令可以在立即数前加上=,以表示把一个值(一般是一个地
[单片机]
华润微Q1净利涨632%,将聚焦功率半导体和智能传感器等业
4月22日晚间,华润微同步发布2019年年报和2020年一季报,年报显示,去年公司实现营收入57.43亿元,同比下滑8.42%;归属于上市公司股东的净利润4亿元,同比下滑6.68%。 虽然华润微2019年业绩小幅下滑,但在2020年有望实现逆转。根据华润微发布的2020年一季报显示,公司一季度营业收入13.82亿元,同比增长16.53%;净利润1.14亿元,同比暴涨631.73%。 华润微表示,2019年公司营收下滑主要系制造与服务板块的晶圆制造业务收入减少;净利润下滑主要系公司销售收入和毛利率均下滑的影响所致;而在今年一季度,公司受疫情影响较小,业绩增长主要系营业收入增长、毛利率提升、产品获利能力好于去年同期所致。 2019年全
[手机便携]
电动汽车驱动电机控制器的基本结构 IGBT集成功率模块原理简图
一、电动汽车驱动电机控制器概述 电机控制器,控制动力电源与驱动电机之间能量传输的装置,由控制信号接口电路、驱动电机控制电路和驱动电路组成。 在电动车辆中,电机控制器的功能是根据档位、油门、刹车等指令,将动力蓄电池所存储的电能转化为驱动电机所需的电能,来控制电动车辆的启动运行、进退速度、爬坡力度等行驶状态,或者将帮助电动车辆刹车,并将部分刹车能量存储到动力蓄电池中。 它是电动车辆的关键零部件之一。 电机控制器的基本功能可分为两个部分: 二、电动汽车驱动电机控制器的基本结构 电动汽车驱动电机控制器基本结构可分为:壳体、高低压连接器、电子控制元件、电气控制元件、电气功率元件。 电气功率元件主要为IGBT集成功率模块,是电
[嵌入式]
电动汽车驱动电机控制器的基本结构 IGBT集成<font color='red'>功率</font>模块原理简图
小广播
最新网络通信文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved