微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 单片机的无线数传系统设计

单片机的无线数传系统设计

时间:09-11 来源:互联网 点击:
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再满会,直到读完为止。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top