nRF905模块和SPI接口的点对点无线通信系统

合集下载

基于nRF905的无线串行通信系统设计

基于nRF905的无线串行通信系统设计
机 通 过 R 2 2 口传 递 给接 收 端 P 机 , 而 实 现 两 台P 机 之 间 S3 串 C 从 C
不 断重 发 , 到 直
TX R
_
C被置低, E
当 T X C 被 置 R—E 低, R 9 5 n F 0 完
的无线串口通信 。 系统 采用半双 工的通信模 式, 实现两台P 机 c


[ FP e F n a n n P M r n 0 s i er . o e i g 1 .er z o t a d a i E p n I i aM d l n
t Wi he rel ess pr paga o o ti n Cha nne1 A S umul i n Wi h at o t
6 — 6 3 6 .
( 上接 第1 页) 9
射点多普 勒效应 明显。 于滤 波法 的C S 2 7 基 O T 0 宽带信道 模型能
10 2 00


够较好 的描述C S 2 7 O T 0这一宽带信道模型。
1 0 00 0



[ 考 文献 ] 参
; ≯ I≮ 一l— i _ I 0 0 l l l 、 :
图如 图2 示 。 所 管 熄 灭 。 在 输 入 数 据 长 度 大 于或 等 于 3 字 节 时 发 送 , 色 二 若 2 绿
n F 0 接 收 数据 实现 过 程如 下: R 9 5 入接 收模 式 极管将_直亮 , R 95 nF 0进 提示发送数 据溢出。 R 9 5 n F 0 的数 据寄存 器最多 6 0 s n F 0 开始监听无线电信号; R 9 5 5 u 后, R 9 5 当n F 0 检测到接收频 能存储3 字节 的数 据, 2 当一次性发送 的数据超 过此值时, 据 数 率 的载 波时c 变 为高 电平, D 当接 收到有效地 址时, M 置高; A被 传送将不完整。 当接收的数据包C C R 校验正确 , R 9 5 n F 0 将除去报 头, 址及C C 42 收发 数据 调试 地 R . P机 1 c 发送长度小于3 字节的数据时, c 相连的电路 2 与P 机1

nRF905射频芯片无线通信C程序调试

nRF905射频芯片无线通信C程序调试

nRF905射频芯片无线通信C程序调试#include"c8051F310.h"#include"nRF905.h"#include"my_type.h"#include "math.h"sbit SCK0 = P1^0;sbit MISO0 = P1^1;sbit MOSI0 = P1^2;sbit CSN = P1^3;// 905SPI使能sbit PWR = P1^4;sbit CE = P1^5;sbit TXE = P1^6;sbit CD = P1^7;sbit AM = P2^0;sbit DR = P2^1;sbit uCK = P2^2;sbit CS = P3^1;// 331SPI使能sbit D1 = P3^3;sbit K1 = P2^7;#define LED1_ON() D1=0#define LED1_OFF() D1=1xdata UINT8 RECIEVE[4];INT8 AX0;INT8 A Y0;INT8 AZ0;UINT8 AX00;UINT8 AY00;UINT8 AZ00;enum {UART_BUFFER_SIZE=4};code TxAddress[4]={0xcc,0xcc,0xcc,0xcc};UINT8 who,reg1,status,k=0;UINT8 TxRxBuff[9];UINT8 ConfigBuff[10];UINT8 idata RFConfig[10]={0x6b, //CH_NO,配置频段在433MHZ0x2c, //输出功率为10db,重发,节电为正常模式0x44, //地址宽度设置,为4字节0x09,0x09, //接收发送有效数据长度,最大9字节0xCC,0xCC,0xCC,0xCC, //接收地址0x58 //CRC充许,8位CRC校验,外部时钟信号不使能,16M 晶振};//*************************延时25ms*n*******************************************void delay25ms(UINT8 n){UINT8 i;TMR2RLL = 0x9D;TMR2RLH = 0x38;TMR2L = 0x9D;TMR2H = 0x38;TMR2CN = 0x04;for(i=0;i<n;i++)< p="">{while(!TF2H);TF2H=0;}TR2=0;//*************************延时500us*n*******************************************void delay500us(UINT8 n){UINT8 i;TCON = 0x10;TMOD = 0x02;CKCON = 0x02;for(i=0;i<n;i++)< p="">{while(!TF0);TF0=0;}TR0=0;}//*************************延时50us*n*******************************************void delay50us(UINT8 n){UINT8 i;TCON = 0x10;TMOD = 0x02;CKCON = 0x02;TL0 = 0xE6;TH0 = 0xE6;for(i=0;i<n;i++)< p="">{while(!TF0);TF0=0;TR0=0;}//*************************SPI读子函数*******************************************UINT8 SpiRead(void){UINT8 i;UINT8 data_buff=0;for(i=0;i<8;i++){data_buff<<=1;SCK0=1;if(MISO0) data_buff+=1;SCK0=0;}return data_buff;}//*************************SPI写子函数*******************************************void SpiWrite(UINT8 WriteData){UINT8 i;UINT8 data_buff;data_buff=WriteData;for(i=0;i<8;i++){if((data_buff&0x80)!=0)MOSI0=1;elseMOSI0=0;SCK0=1;// Delay(1);delay50us(1);SCK0=0;data_buff<<=1;}}//*************************RF905引脚初始化*******************************************void nRF905Init(void ){CSN=1; //SPI disableSCK0=0; //SPI clock line init LOW// DR=1; //Init DR for input// AM=1; //Init AM for input// CD=1; //Init CD for inputPWR=1; //nRF905 power onCE=0; //Set nRF905 in standby modeTXE=0; //Set radio in Rx mode}//*************************RF905初始化配置*******************************************void Config905(void){UINT8 i;CSN=0; //SPI enable for write a spi commandSpiWrite(WC); //Write config commandfor(i=0;i<10;i++){SpiWrite(RFConfig[i]);}CSN=1; //Disable spi}//*************************读RF905配置寄存器*******************************************void ReadConfig905(void){UINT8 i;CSN=0;SpiWrite(RC);for(i=0;i<10;i++){ConfigBuff[i]=SpiRead();}CSN=1;}//*************************RF发射数据包*******************************************void TxPacket(void){UINT8 i;CSN=0;SpiWrite(WTP); //Write payload commandfor(i=0;i<9;i++){SpiWrite(TxRxBuff[i]); //Write Tx data}CSN=1; //SPI disabledelay50us(1);//Delay(1); // DelayCSN=0; // spi enable for write a spi commandSpiWrite(WTA); // write address commandfor(i=0;i<4;i++) // write 4 byte address{SpiWrite(TxAddress[i]);}CSN=1;//CE=1; //Set TRX_CE high ,start Tx data transmission//Delay(10);delay50us(8);CE=0;}//*************************RF发射模式设置*******************************************void SetTxMode(void){CE=1;//TXE=1;// Delay(1); // delay for mode change(>=650us)delay50us(1);}//*************************RF接收模式设置*******************************************void SetRxMode(void){CE=1;TXE=0;// Delay(1);delay50us(1);//*************************载波检测******************************************* UINT8 CheckCD(void) //Pin->检查是否已存在同频率载波{if (CD==1){return 1;}else{return 0;}}//*************************RF正式发射*******************************************void TX(void){SetTxMode(); // Set nRF905 in Tx modeTxPacket(); // Send data by nRF905CheckCD(); // 返回CD的当前电平// SetRF_PA_PWR(unsigned char i); //设置发射功率}//*************************数据准备好检测(用于接收)************************************UINT8 CheckDR(void){if(DR==1 && CE==1 && TXE==0){return 1;else{return 0;}}//*************************RF接收数据包*******************************************void RxPacket(void){UINT8 i;// Delay(100);delay50us(80);CE=0;CSN=0;//Delay(1);delay50us(1);SpiWrite(RRP);for(i=0;i<9;i++){TxRxBuff[i]=SpiRead();}CSN=1;// Delay(10);delay50us(8);CE=1;}//*************************RF正式接收*******************************************void RX(void)UINT16 i=50;SetRxMode();while(CheckDR()==0)//等待接收数据的出现{if((i--)<10)break;}//Delay(10);delay50us(8);RxPacket();//Delay(10);delay50us(8);}void Oscillator_Init(void){OSCICN = 0x83;}void LED_Light(void){LED1_ON();//delay1ms(500);delay25ms(20);LED1_OFF();}////////////////////////UART0////////////////////////// void Timer_Init(){TCON = 0x40;TMOD = 0x20;TH1 = 0x96;}void UART_Init(){SCON0 = 0x10;}void Port_IO_Init(){// P0.0 - SCK (SPI0), Push-Pull, Digital// P0.1 - MISO (SPI0), Open-Drain, Digital// P0.2 - MOSI (SPI0), Push-Pull, Digital// P0.3 - NSS (SPI0), Push-Pull, Digital(片选线没有使用,从机仅有一片) // P0.4 - TX0 (UART0), Push-Pull, Digital// P0.5 - RX0 (UART0), Open-Drain, Digital// P0.6 - INT1, Open-Drain, Digital(中断1)// P0.7 - INT2, Open-Drain, Digital(中断2)// P1.0 - SCK0, Push-Pull, Digital// P1.1 - MISO0, Open-Drain, Digital// P1.2 - MOSI0, Push-Pull, Digital// P1.3 - CSN, Push-Pull, Digital(905SPI使能)// P1.4 - PWR, Push-Pull, Digital// P1.5 - CE, Push-Pull, Digital// P1.6 - TXE, Push-Pull, Digital// P1.7 - CD, Open-Drain, Digital// P2.0 - AM, Open-Drain, Digital// P2.1 - DR, Open-Drain, Digital// P2.2 - uCK, Push-Pull, Digital// P2.3 - FIRE, Push-Pull, Digital// P2.7 - K1, Open-Drain, Digital// P3.1 - CS, Push-Pull, Digital(LSI331DLSPI使能)// P3.3 - D1, Push-Pull, Digital(指示灯)P0 |=0xE2;P1 |=0x82;P2 |=0x83;P0MDOUT = 0x1D;P1MDOUT = 0x7D;P2MDOUT = 0x0C;P3MDOUT = 0x0A;XBR0 = 0x03;XBR1 = 0x40;}void SPI_Init(){SPI0CFG = 0x40;//主机模式SPI0CN = 0x09;//4线制单主机,SPI使能SPI0CKR = 0x30;//SPI时钟为250KHz}//*************************中断初始化配置*******************************************void Interrupts_Init(){IE = 0x90; //开启全局中断、UART0中断使能、SPI0中断禁止}//*************************LIS331_Write********************** ******************* **void LIS331_Write (unsigned char address, unsigned char value){CS = 0;SPI0DA T = address;while (!SPIF);SPIF = 0;SPI0DA T = value;while (!SPIF);SPIF = 0;CS=1;delay500us(2);}//*************************LIS331_Read*********************** ****************** **unsigned char LIS331_Read (unsigned char address){CS = 0;SPI0DA T = address;while (!SPIF);SPIF = 0;SPI0DA T = address;while (!SPIF);SPIF = 0;CS = 1;delay500us(2);return SPI0DA T;}void Init_Device(void){Oscillator_Init();Port_IO_Init();nRF905Init();Config905();Timer_Init();UART_Init();SPI_Init();Interrupts_Init();}UINT8 i;void main(void){PCA0MD &=(~0x40);//看门狗禁止Init_Device();LED_Light();delay25ms(20);ReadConfig905();// LIS331_Write(0x20,0x47);//who=LIS331_Read(0x8f);// reg1=LIS331_Read(0xa0);//shoud return 0x47; //status=LIS331_Read(0xa7);//shoud return status while(1){/*if(RECIEVE[0]==0xad){if(RECIEVE[3]==RECIEVE[1]+RECIEVE[2]){AX0=LIS331_Read(0xA9);AX00=abs(AX0);A Y0=LIS331_Read(0xAB);AY00=abs(AY0);AZ0=LIS331_Read(0xAD);AZ00=abs(AZ0);TxRxBuff[0]=RECIEVE[0];TxRxBuff[1]=RECIEVE[1];TxRxBuff[2]=RECIEVE[2];TxRxBuff[3]=RECIEVE[3]; TxRxBuff[4]=AX00; TxRxBuff[5]=A Y00; TxRxBuff[6]=AZ00; TxRxBuff[7]=0xaa; TxRxBuff[8]=0xbb; TXE=1;TX();LED1_ON(); TxRxBuff[0]=0; TxRxBuff[1]=0; TxRxBuff[2]=0; TxRxBuff[3]=0; TxRxBuff[4]=0; TxRxBuff[5]=0; TxRxBuff[6]=0;delay25ms(1);TXE=0;LED1_OFF();delay25ms(4);}}*/TxRxBuff[0]=9; TxRxBuff[1]=8; TxRxBuff[2]=7; TxRxBuff[3]=6; TxRxBuff[4]=5; TxRxBuff[5]=4; TxRxBuff[6]=3; TxRxBuff[7]=2;TxRxBuff[8]=1;TXE=1;TX();LED1_ON();TxRxBuff[0]=0;TxRxBuff[1]=0;TxRxBuff[2]=0;TxRxBuff[3]=0;TxRxBuff[4]=0;TxRxBuff[5]=0;TxRxBuff[6]=0;TxRxBuff[7]=0;TxRxBuff[8]=0;delay25ms(1);TXE=0;LED1_OFF();delay25ms(4);}}//*************************UART0中断服务程序*******************************************void UART0_ISR() interrupt 4{ES0=0;RECIEVE[k]=SBUF0;if(RECIEVE[0]!=0xad)//如果收到的第一个数据不是前导码则放弃本次接收。

NRF905无线收发芯片温度监测无线通信系统的设计精品

NRF905无线收发芯片温度监测无线通信系统的设计精品

NRF905无线收发芯片温度监测无线通信系统的设计精品NRF905无线收发芯片是一款常用于无线通信系统的芯片,具有高度集成、低功耗和远距离通信等特点。

在设计一个精品的温度监测无线通信系统时,可以利用NRF905无线收发芯片来实现温度数据的无线传输和接收。

以下是一个涵盖了系统设计、硬件设计和软件设计的1200字以上的设计方案。

设计方案:一、系统设计1.温度监测节点:该节点负责采集环境温度数据,并将数据通过NRF905无线收发芯片发送到接收节点。

2.接收节点:该节点负责接收来自温度监测节点的温度数据,并将数据显示在液晶显示屏上。

3.电源电路:为温度监测节点和接收节点提供稳定的电源供电,可采用锂电池或者电池组。

4.程序控制:通过程序控制实现温度数据的采集、传输和接收,并在接收节点上进行温度数据的显示。

二、硬件设计1.温度监测节点的硬件设计:a.传感器选择:选择一个适合的温度传感器用于环境温度的采集,如DS18B20。

b. 微控制器:选用一款适合的微控制器作为温度监测节点的核心,如Arduino开发板。

c.NRF905模块:将NRF905无线收发芯片与微控制器连接,实现温度数据的无线传输。

2.接收节点的硬件设计:a. 微控制器:选用一款适合的微控制器作为接收节点的核心,如Arduino开发板。

b.NRF905模块:将NRF905无线收发芯片与微控制器连接,实现温度数据的接收。

c.液晶显示屏:连接一个液晶显示屏,用于显示接收到的温度数据。

3.电源电路设计:a.选择一款适合的锂电池或电池组作为供电源,同时设计稳压电路,将电池的输出电压稳定在所需的工作电压范围内。

b.使用电源管理芯片,以确保系统在低电压和超过电压等情况下能够正常工作。

三、软件设计1.温度监测节点的软件设计:a.初始化NRF905模块,设置通信参数和频率等信息。

b.采集温度数据:使用适当的库函数读取温度传感器的数据。

c.将温度数据转换为合适的格式,如字符串或数字,并通过NRF905模块发送出去。

基于MCU和nRF905的低功耗远距离无线传输系统

基于MCU和nRF905的低功耗远距离无线传输系统

基于MCU和nRF905的低功耗远距离无线传输系统摘要:介绍一种基于MCU和nRF905的低功耗远距离无线传输系统,描述了系统设计软硬件的实现方法和多点传输数据的通信协议。

系统主控芯片采用通用的低功耗MCU芯片MSP430 ,射频芯片采用具有多信道的单片收发芯片nRF905。

同时提出了跳频机制保证数据传输的可靠性,增加了系统的鲁棒性。

关键词: nRF905 无线数据传输低功耗跳频目前,在遥控遥测、无线抄表、门禁系统、小区传呼、工业数据采集、无线遥控系统、无线鼠标键盘等许多应用领域,都采用无线方式进行远距离数据传输。

本文介绍一种采用通用的低功耗单片机MSP430作为主控芯片、具有多信道的单片收发芯片nRF905作为无线收发模块、利用SPI口实现双向通讯的无线数据传输系统。

系统集成了MSP430在低功耗应用方面的优势和nRF905无线特有的多频道支持及功耗低、易控制等优点,特别适合于低功耗、小数据量的无线数据传输系统。

1 系统的总体结构系统总体框图如图1所示。

主控MCU使用TI公司MSP430系列中的F1491型,射频收发模块使用Nordic 公司的nRF905实现无线数据收发。

除MSP430和nRF905外,系统还提供RS-232接口,可以实现与PC机的通讯,RS-485接口满足一些通用仪器仪表的要求。

根据不同的应用需求,可选择采用PCB天线或高增益的外置式天线以满足远距离的需求。

2 系统主要芯片介绍MSP430是TI公司推出的16位系列单片机,在电池供电的低功耗应用中具有独特的优势。

其工作电压在1.8~3.6V之间,正常工作时功耗可控制在200μA左右,低功耗模式时可实现2μA甚至0.1μA的低功耗。

本系统所采用的MSP4301491系列在单个芯片上集成8通道12位的A/D转换、2个16位定时器、2个USART接口、16位看门狗、48个GPIO 端口及2 048KB RAM和60KB的flash,单片即可满足大多数应用需要。

Nrf905无线模块使用教程

Nrf905无线模块使用教程

Nrf905无线模块使用教程nRF905是挪威NordicVLsl公司推出的单片射频收发器,工作电压为1.9一3.6V,32引脚QFN封装,工作于433/868/gl5MHz三个IsM(工业、科学和医学)频道,频道之间的转换时间小于650us。

nRF905由频率合成器、接收解调器、功率放大器、晶体振荡器和调制器组成,使用SPI接口与微控制器通信,配置非常方便。

其主要特点如下:●工作电源电压范围:1.9一3.6V;●数据包自动重发功能;●输出功率可调至IOdBm;●自动产生CRC和前导码;●低工作电流(TX),在输出功率为一10dBm时典型值为llmA;●低工作电流(RX),典型值为12.smA;的只有10个引脚。

(1)模式控制引脚由PWR、TXEN、TRX_CE三个引脚来控制NRF905芯片的工作模式各种模式的控制如下表下面这个函数将nrf905设置成发射模式,模式转换需要大于650usvoid SetTxMode(void){TX_EN=1;TRX_CE=0;Delay(1); // delay for mode change(>=650us)}下面这个函数将nrf905设置成接收模式void SetRxMode(void){TX_EN=0;TRX_CE=1;Delay(1); //delay for mode change(>=650us)}(2)SPI接口SPI接口由SCK、MISO、MOSI以及CSN这四个引脚组成。

在配置模式下单片机通过SPI接口配置无线模块的工作参数;在发射/接收模式下单片机SPI接口发送和接收数据。

:.。

nRF905工作原理_nRF905基本特点

nRF905工作原理_nRF905基本特点

nRF905工作原理_nRF905基本特点nRF905是挪威Nordic公司推出的一款单片射频发射器芯片,采用32引脚5mm5mm QFN封装,工作于433、868、915MHz 3个ISM(工业、科学和医学)频道,其中国内433频段可以免费使用。

nRF905由频率合成器、接收解调器、功率放大器、晶体振荡器、调制器等功能组成,不需要外加声表滤波器也可以有良好的通信效果。

nRF905使用SPI接口可以和任何MCU进行通信,其中地址、输出功率和通信频道可通过程序进行配置,所以可以用于多机通信。

nRF905融合了ShockBurstTM技术,可以自动处理数据包字头,且内置CRC校验功能,确保数据可靠传输。

nRF905功耗很低,在以-10dBm的功率发射时,工作电流也只有11mA;而对应接收机的工作电流只有12.5 mA,芯片可以软件设置空闲模式、关机模式,易于节能设计。

适合工业数据采集、无线报警及安全系统等诸多领用。

nRF905基本特点(1)433Mhz 开放ISM 频段免许可证使用;(2)最高工作速率50kbps,通信距离可达300米左右;(3)高效GFSK调制,抗干扰能力强,特别适合工业控制场合;(4)工作频率可软件设置,满足多点通信和跳频通信需要;(5)内置硬件8、16位CRC 检错和点对多点通信地址控制;(6)低功耗1.9 - 3.6V 工作,待机模式下状态仅为2.5uA;(7)收发模式切换时间仅650us;(8)SPI编程接口,可软件设置地址,地址多达2的32次方;(9)集成地址匹配、载波侦听、收发完成状态指示功能;(10)TX Mode:在+10dBm情况下,电流为30mA; RX Mode:12.2mA;(11)标准2.54mm DIP间距接口,便于嵌入式应用;同时,为便于用户开发,我们提供配套评估套件,为产品开发保驾护航,使无线应用开发大大加速,并避免不必要的误区。

nRF905工作原理nRF905采用Nordic公司的VLSI ShockBurst技术。

基于nRF905芯片的无线数据传输系统设计

基于nRF905芯片的无线数据传输系统设计

1 . 它子模 块 5其
设 计 中 的检测 数 据源 部 分 , 了验 证方 便 , 为 我们 采 用DAL AS 司生 L 公
产的可编程集成数字测温器件DS82 温度传感器, 180 充分利用其单总线的特 点, 在一 条测 量 总 线上 可 以连 接 多个 传感 器 , 节省 I /O口 , 便于 扩展 和 控 制 。 果选 用 其 它 的传感 检 测器 件 ,同样 可 以。 设 计 的液 晶显 示模 块 是 如 本 L D6 2 晶显 示模 块 , 可 以 显示两 行 , C 10 液 它 每行 l 个字 符 , 6 采用 单 + V电 5 源 供 电 ,外 围 电路配 置 简单 , 积小 , 耗低 , 有很 高 的性 价 比 。 体 功 具
化 程序 , 数据 采 集 及处 理程 序 , 晶 显示 程序 , 线收 发程 序 , 口通 信程 液 无 串
n 95 RF 0 是挪威 No dc r i公司推 出的单 片 射频 收 发器 芯片 , 利 用 的是 它 超宽频的传输技术, 其功耗非常低。
13系统 电源 电路 .
序 和上 位 机应 用程 序 。 系统 上 电后 , 首先 是数 据 采集端 调 用初 始 化程 序 , 设
输可 靠 、 扩展 方便 、 用灵 活 的无 线 数据 传 输系 统 。 使
发送 给 P C机 。 因此 我们 采用 异步 串行通 信应 用 最广 的RS 2 2 .3 标准 总线 实
现两 者之 间信息 传 递 的物 理层 协 议 。 口 电路 如图 3 示 设 计
低的优势使得 S 8 C 2 TC 9 5 为控制应用系统提供高灵活、 有效的解决方案。
12无线 收发 模块 n 9 5 _ RF 0
2软 件 设 计

基于MSP430和nRF905的多点无线通讯模块

基于MSP430和nRF905的多点无线通讯模块

本文介绍的无线通讯模块,采用通用的低功耗单片机MSP430作为主芯片,nRF905作为无线收发模块,利用SPI口实现双向通讯,SPI支持高速数据传输,从而满足了射频带宽的要求。

nRF905提供了强大的跳频机制以及大量的频道支持,可以用在许多特殊的场合,而且即使利用无增益的PCB天线其传输距离也可达200m,如果需要更远距离的传输,也可以改成带增益的天线,传输距离即可扩大到1千米以上,可满足不同客户的需求。

1 系统硬件实现无线通讯模块的实现框图如图1所示,除了MSP430和nRF905外,系统还留有MAX232接口可以实现与PC的机通讯,MAX485接口满足一些通用仪器仪表的要求,并提供了按键和液晶等人机交互界面。

2 驱动实现2.1 MSP430的SPI驱动MSP430用标准SPI口和nRF905进行通讯,标准接口包括两根数据线:MOSI(主发从收)和MISO(从发主收),还有时钟线CLK,主机用CLK与从机时钟同步。

如图2所示,SPI可以理解成双工方式,因为在发送数据的同时也可以接受数据。

SPI分成主模式和从模式,从模式完全被动,数据的发送和接受都由主机掌握。

实际上参与工作的都有四个寄存器,主机将数据写入发送缓存UTXBUF,数据并行存入发送移位寄存器。

数据一旦写入UTXBUF,立即从MOSI线移位到从机的接受移位缓存,而从机移位缓存中的数据又将其发送移位寄存器中数据,通过MISO移位到主机的接受移位寄存器,再并行读入接受缓存中。

所以利用SPI同时进行读写操作。

图2 430 SPI示意图2.2 nRF905的驱动nRF905共有32个引脚,其中有10个引脚尤其需要我们注意:和主MCU通讯的SPI接口的四个引脚,数据线MOSI、MISO,时钟线SCK、使能线,其中CSN可以接到一个IO口控制芯片工作,而其它三个脚则接到主MCU的SPI接口上;主MCU的控制线有三个引脚,控制低功耗的PWRUP,控制正常工作的TX_EN,选择发送还是接受方式的TRX_CE,这几个引脚都接到主MCU的通用IO口;nRF905的反馈线有三根,检测到频道正被使用的CD(carrier detected),通知接受地址正确的AM(addreSS ma tched),告诉MCU数据接受正确的DR(data received),这几个引脚需要接到主MCU的中断引脚上,当接收数据正确时以中断方式通知主MCU。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
RA2 AN 2 ,
模 块 , R 4 n F 0 模 块 输入 数 据 。 由 由 C 从 R 95

RB6 P , GC RB5
RB 4
个 4MH 陶 瓷 晶 体 振荡 器为 单 片 机提 供 z
RA3 AN3 , RB3 P , GM RA4 r CKl ,0 RB2 RA5 AN4 , RBl VSS RB0 0SClCLKI / N VDD
图 1 图 2、 3所 示 。 、 图
在 图 1中 , 片 机 1 F 7 单 6 8 6输 入 输 出 口与 n F 0 R 9 5模
块 相 应接 口连 接 情 况 : C ~ n F 0 R 7 R g5模 块 时 钟 分 频 输 出 ,
R 6 R 9 5模块 地 址 匹配 输 出 AM , 5 C ~n F 0 RC ~MI(, C ~ S) R 4
引 言
在 某 些 环境 监 测 、 防 警 报 等 环 境 下 , 便 进 行 有 线 安 不
引 入 自动 重 发 , 抗 干 扰 G S 调 制 和 最 高 1 高 FK 6位 C C 校 R 验 机 制 , 保 了数 据 传 输 的可 靠 性 。 确
线路 的铺设 , 而采用无线数据通信方式 。采用一般的无线
机 通 过 R 7R B 、 B6和 R 3与 编程 器 相 连 , B 可 进 行 在线 编程 ; RC 由 5输 出数 据 到 n F 0 R 95
PI 6F 7 。 C1 8 6
+ V 5 丽可: P R 7P P B, GD
R , A0 AN0 R lANl A ,
传 输 方 式 时 可 能 因 为环 境 噪 声 大 , 扰 信 号 强 而 导致 接 收 干 数 据 的准 确 性 很 低 。针 对 这 种 情 况 , 计 一 种 低 成 本 、 设 高 准确 率 的无 线 数 据 传 输 系 统 —— 基 于 PC 6 8 6 简 称 为 I 1F 7 ( “6 86) S I n F 0 1F 7 ” 的 P 和 R g5模 块 的 点 对 点 无 线 通 信 系 统 。利用 1F 7 6 8 6和 n F 0 R 9 5模 块 直 接 进 行 S I 据 交 P 数 换, 时序 同步 性 好 , 序 编 写 简 单 。 1F 7 程 6 8 6通 过 相 应 的 I O 口连 接 到编 程 器 , 直 接进 行在 线 调 试 。鉴 于无 线 通 信 可 环 境 中噪 声 大 , 号 干 扰 大 的 特 点 , 用 的 n F 0 模 块 信 采 R 95
n 95 RF 0
5 V
p F上

1. 1
r- I】 -I - ' 1
TM 4HI
0S C2, CLKOUT VS S RC0 1 CKl 7" l RC7RX , RClCCP / 2 RC6 r , X RC2 CcP , l RC5 S / D0 RC3 s , CK RC4 S / DI
M OS , C IR 3~ S K, 2~ C N,RB R 6 B C RC S 7 B &R 3~ J 编 1
程 器 连接 线 , B ~ n F O 模 块 数 据 就 绪 输 出 D R 2 R 5 R 95 R, B ~
PW R, RB1 TXEN , ~ RB0~ TRX

件 电 路 规 划
1 F 7 、 R g 5 块 及 编 程 器 连 接 头 儿 之 间 的 电 6 86 n F 0 模 路 连 接 ,2 一 5V 电 路 实 现 , V一 3V 电压 转 换 电路 如 2 0V 5
用 分 压 电 阻与 3V 稳 压管 串 联 分 压 , 稳 压 管 两 端 可 得 到 从

BCF P0R TB , 0 BCF P0R TB , 1 BSF PO RT B, 0

TRX EN= 0, X_ T EN = 0 PW R U P= 1,

; 芯 片 中写 数 据 操 作 完 毕 , 换 到 发 往 转 ; 模 式 射
维普资讯
. T -
n 0 F 5模块和 S 口的 R9 接 P I 点 对点 无线 通信 系 统
■ 广 东 工 业 大学 李 治 龙 曾 碧

关键词
n F 0 模 块 单 片机 P C 6 8 6 无 线数 据 通 信 S I 1 R g5 I 1F 7 P接 : 7
1p 5F
图 2 20v 2 _ V电压 转 换 电路 一5 图 1 PC1 F 7 、 R 9 5模 块及 编程 器 之 间的 电路 连 接 I 686nF0

+3 V

① 本 系 统 所用 的 n F 0 块 系 指 迅 通 科技 公 司 的一 个 n 9 5无 线 通 R 9 5模 RF 0 信 模 块 。 此 模 块 在 与 单 片 机 PC1 F 7 1 6 8 6相 连 时 , 用 了 核 心 芯 片 只
n 9 5的 1 RF 0 4个 引脚 ( 图 1 。 见 )
图 3 5V 3 V电压 转 换 电路 一
( j ‘. 1 鼻; L b
矗鑫 : 垃占踊
』 . , 一 … 一 &± … , 、
维普资讯

时钟 输 入 。1F 7 6 86的工 作 电 压 是 45 . 通 过 图 2中 . ~5 5V, 的 D A元 件 实 现 从 2 0V 市 电 到 5V 电 压 的 转 换 。 由于 B 2 n F 0 模块 的工 作 电压 是 19 36V, 从 5 电 压 转换 R 95 . ~ . 需 V 得 到 一 个符 合 n F 0 模 块 正 常 工 作 的 稳 定 电压 。考 虑 使 R 95
相关文档
最新文档