在特殊环境的数据测控应用中,无线数据传输已经越来越广泛地被运用,msp430+nrf905的组合特别适合于低功耗,短距离(100-200m)、小数据量的无线数传系统,msp430 cpu在低功耗应用方面有很大优势,nrf905无线收发芯片具有功耗低、控制简单、可自动处理字头和crc校验的优点,两者结合组成的数传系统可以在很多产品中得到应用。
1 msp430简介
msp430是ti公司新推出的16位系列单片机,在电池供电的低功耗应用中具有独特的优势,其工作电压在1.8-3.6v之间,正常工作时功耗可控制在200μa左右,低功耗模式使可实现2μa甚至0.1μa的低功耗,msp430具有非常高的集成度,通常在单个芯片上集成有12位的a/d、比较器、多个定时器,片内usart、看门狗、片内振荡器、大量的i/o端口及大容量的片内存储器,一般单片就可以满足大多数的应用需要。
在低功耗应用中设计程序时,最好采用以下方法:cpu在初始化完成后,处于低功耗工作模式,在有外部事件发生时唤醒进入终端服务程序,完成后重新进入低功耗模式,照此循环往复,可以最大限度地降低功耗。
2 nrf905简介
nrf905是挪威nordic公司推出的单片射频发射器芯片,工作电压为1.9-3.6v,32引脚qfn封装(5mm×5mm),工作于433/868/915mhz3个ism频道(可以免费使用)。nrf905可以自动完成处理字头和crt(循环冗余码校验)的工作,可由片内硬件自动完成曼彻斯特编码/解码,使用spi接口与微控制器通信,配置非常方便,其功耗非常低,以-10dbm的输出功率发射时电流只有11ma,在接收模式时电流为12.5ma。
nrf905传输数据时为非实时方式,即发送端发出数据,接收端收到后先暂存于芯片存储器内,外面的mcu可以在需要时再到芯片中去取。nrf905一次的数据传输量最多为32b。
2.1 nrf905的工作模式及设置
nrf905的两种工作模式和两种节能模式,分别为掉电模式、待机模式、shockburst tm接收模式和shockburst tm发送模式,这几种模式由外界cpu通过控制nrf905的3个引脚pwr_up、trx_ce和tx_en的高低电平来决定,如表1所列。
外界mcu通过spi总线配置nrf905的内部寄存器,读写数据时必须把其置为待机或掉电模式,nrf905在待机模式时功耗为40μa,在掉电模式时功耗为2.5μa。
2.2 nrf905的状态输出
nrf905有3个引脚用于状态输出,分别是:cd(载波检测)、am(地址匹配)和dr(数据就绪),均为高电平有效,nrf905在处于接收模式时,若检测到接收频率段的载波,就置cd为高,接着检测载波数据中的地址字节,若与本身已配置的接收地址相同,则置am为高,若再检测到接收数据中的crc校验正确,则存储有效数据字节,置dr为高。
此外,nrf905还有一个时钟输出引脚upclh,供用户选择使用。通过配置内部寄存器,可改变其频率输出,这一点在调试时很有用。无线系统至少需要一发一收两个设备,调试时若出现问题很难判断是哪一方的故障。可以通过修改nrf905的寄存器,用示波器观察upclk输出是否变化的方法,来判断其硬件电路和cpu操作,nrf905的程序是否正确,从而判断及设备是否工作正常。
2.3 nrf905的数据接口
外围mcu通过spi总线配置nrf905的内部寄存器和收发数据,nrf905的spi总线包括4个引脚:csn(spi使能)、sck(spi时钟)、miso(主入从出)和mosi(主出从入)。这里nrf905为从机,其spi的时钟范围很宽,可以从1hz-10mhz,因此mcu在写控制程序时不必苛求时间的准确度。
spi总线的每次操作都必须在使能引脚csn的下降沿开始,csn低电平有效,总线上的数据在时钟的上升沿有效,mcu对spi总线的操作不外乎两种方式:读和写,在进行读操作时,先把csn置低,然后在mosi数据线上输出一个表示读命令的字节,与此同时,nrf905会在miso数据线上输出一字节表示状态信息的数据,随后输出一地址字节,后面跟随有效数据,在进行写操作时比较简单,mcu先把csn拉低,然后在mosi线上输出写命令字节和数据字节即可。
2.4 nrf905的寄存器配置
nrf905内部有5类寄存器:一是射频配置寄存器,共10个字节,包括中心频点、无线发送功率配置、接收灵敏度、收发数据的有效字节数、结社地址配置等重要信息;二是发送数据寄存器,共32字节,mcu要向外发的数据就需要写在这里,三是发送地址,共4个字节,一对收发设备要正常通信,就需要发送端的发送地址与接收端的接手地址配置相同,四是接收数据寄存器,共32字节,nrf905接收到的有效数据就存储在这些寄存器中,mcu可以在需要时到这里读取,五是状态寄存器,1个字节,含有地址匹配和数据就绪的信息,一般不用。
mcu若要操作这些寄存器,需遵循nrf905规定的操作命令,常用的有以下7种,都是1个字节;写射频配置(0xh,“x”含4位二进制位,该字节表示要开始写的初始字节数)、读射频配置(1xh,“x”含4位二进制位,该字节表示要从哪个字节开始读)、写发送数据(20h),读发送数据(21h)、写发送地址(22h)、读发送地址(23h)和读接收数据(24h),关于寄存器的详细信息可以参阅nrf905的数据手册。
2.5 nrf905的工作过程
nrf905在正常工作前应由mcu先根据需要写好配置寄存器,或是按照默认配置工作,其后的工作主要是两个:发送数据和接收数据。
发送数据时,mcu应先把nrf905置于待机模式(pwr_up引脚为高、trx_ce引脚为低)然后通过spi总线把发送地址和待发送的数据都写入相应的寄存器中,之后把nrf905置于发送模块(pwr_up、trx_ce和tx_en全置高)数据就会自动通过天线发送出去,若射频配置寄存器中的自动重发位(auto_retran)设为有,数据包就会重复不断地一直向外发,直到mcu把trx_ce拉低,退出发送模式为止。为了数据更可靠地传输,建议多使用此种方式。
接收数据时,mcu先在nrf905的待机模式中把射频配置寄存器中的接收地址写好,然后置其于接收模式(pwr_up=1、trx_ce=1、tx_en=0),nrf905就会自动接收空中的载波,若收到地址匹配的和校验正确的有效数据,dr引脚会自动置高,mcu在检测到这个信号后,可以改其为待机模式,通过spi总线从接收数据寄存器中读出有效数据。
3 系统硬件设计
msp430的usart模块可通过寄存器配置为通用异步串行口或spi模块功能,这里配置为spi模块,本系统选用的mcu是msp430f133,在硬件设计时把mcu的spi接口和nrf9051spi接口相连即可,另外再选几个i/o口连接nrf9051输出输出信号,如图1所示。
对于初次接接触无线系统的设计者,因其射频部分的元件采购,焊接和调试比较麻烦,可以选用ptr8000模块,该模块内核使用nrf905,硬件电路已经焊好,十月起来相对方便一些。
4 控制程序设计
本系统设计的重点是控制nrf901的程序设计,大致分为两个阶段:首先是对nrf905进行初始配置,配置完成后按 需要便携书记的发送或接收程序。
4.1 初始化配置
第一阶段应完成初始化配置,分以下几项:
1)msp430的spi接口设置,msp4301异步串行接口和spi接口用同一个usart模块,贼里需要用软件配置为spi功能,本设计中spi配置为主机模块、3线制和8位数据,程序源代码参见子程序“spi_set五”。
2)初始化nrf901的射频配置寄存器,这些寄存器中有很多信息,必须根据实际情况进行配置,本设计中nrf905外界16mhz晶体,“xof应配置为“011”;“pa_pwr”为发射功率,rx_red_pwr”为接收命灵敏度,可根据需要配置;另外还有发送地址、接收地址、发送数据和结社数据的长度(字节数)可根据实际应用配置,注意贼组寄存器中海油接收时的实际地址,不而发送地址在其他单独的寄存器中。
3)配制nrf901的发送地址,最多4个字节(32位),发送端的发送地址应于接受端设备的结社地址相同,在实际工作中nrf901可以自动滤滤除地址不相同的数据,只有地址匹配且校验正确的数据彩绘被接受,并存储在接收数据寄存器中。
4.2 发送数据
使nrf905发送数据前需要msp430通过spi总线在待机模式便板待法数据填进发送数据寄存器中,一次最多32b,然而把nrf9051“trx_ce”、“tx_en” 因该都置为高电平,数据就会自动发送出去,本设计射频配置寄存器中选定了自动重发位,因此在“trx_ce”被置高的时间内数据一直在重复不断地发。本程序中设计延时500ms,之后拉低“tr x_ce”因该,回到待机模式。
4.3 接收数据
msp430把nrf905的“trx_ce”引脚置为高电平,“tx_ce引脚拉为低电平后就刻蚀结社数据,本设计中cpu在设定的35s内一直判断nrf9051“dr”引脚是否便变高个,若为高则证明接收到了有效数据,可以退出接收模式,弱一致没有接受2到,待时间到时也退出接接受是模块,退出后在待机模块,cpu通过spi总线把nrf905内部的接收数据寄存器中数据读出,即接收道德有效数据。
便携接受部分程序时,有一点应该注意,很多资料中都没有提到,就是cpu在mosi信号线上发出读命令字节后“miso”信号线上nrf905会自动返回一字节数据,本本身的状态寄存器信息,后续的接收数据并不会自动跟着输出,只有cpu在mosi上输出一个字节(可以是随意值),nrf905才会在“miso”上返回一个字节,cpu再发,nrf905再满会,直到读完为止。
中环半导体入选天津市制造业单项冠军企业名单
中国移动运营数据显示在有线宽带方面客户总数已达到1.5669亿户
STC89C52通过配置相关寄存器即可实现Timer的功能控制
TDK推出三款全新MEMS麦克风产品 突破了传统麦克风声学性能的界限
单片式降压型开关稳压器LT1938的性能特点及应用范围
基于MSP430和nRF905实现无线数传系统的设计
可学习编程的雪花状LED灯板设计
运用LabVIEW开发嵌入式系统的革新方式
3D打印的微型机器人问世,可以在生物体内运输细胞
碳膜电阻阻值规格
中国率先实现无人机送快递,未来或可在战场收快递
如何使用51单片机进行带wifi APP查看功能的zigbee温湿度传输及控制
Java11GC 性能基准测试报告 Java8与Java11对比测试
基于电流源使LM324运算放大器的输出电流降到地电平之上
fCoder:2PDF 2.0发布
华为正在全力打造面向5G平滑演进的1+1站点
选择NB-IoT模块也有技巧?
谷歌兄弟公司Wing获政府牌照
5G频谱的划分,给联通和电信带来了利好消息
什么是SRM?SRM系统有哪些选择策略