文档介绍:发送流程
A. 当微控制器有数据要发送时,通过SPI接口,按时序把接收机的地址和要发送的数据送传给nRF905,SPI接口的速率在通信协议和器件配置时确定;
B. 微控制器置高TRX_CE和TX_EN,激发nRF905的ShockBurstTM发送模式;
C. nRF905的ShockBurstTM发送:
l 射频寄存器自动开启;
l 数据打包(加字头和CRC校验码);
l 发送数据包;
l 当数据发送完成,数据准备好引脚被置高;
D. AUTO_RETRAN被置高,nRF905不断重发,直到TRX_CE被置低;
E. 当TRX_CE被置低,nRF905发送过程完成,自动进入空闲模式。 
 接收流程
A. 当TRX_CE为高、TX_EN为低时,nRF905进入ShockBurstTM接收模式;
B. 650us后,nRF905不断监测,等待接收数据;
C. 当nRF905检测到同一频段的载波时,载波检测引脚被置高;
D. 当接收到一个相匹配的地址,地址匹配引脚被置高;
E. 当一个正确的数据包接收完毕,nRF905自动移去字头、地址和CRC校验位,然后把数据准备好引脚置高
F. 微控制器把TRX_CE置低,nRF905进入空闲模式;
G. 微控制器通过SPI口,以一定的速率把数据移到微控制器内;
H. 当所有的数据接收完毕,nRF905把数据准备好引脚和地址匹配引脚置低;
I. nRF905此时可以进入ShockBurstTM接收模式、ShockBurstTM发送模式或关机模式。 
注意:编写接收部分程序时,有一点应该注意,很多资料中都没有提到,就是CPU在“M0SI”信号线上发出读命令字节后,在“MISO)”信号线上nRF905会自动返回一字节数据,为本身的状态寄存器信息,后续的接收数据并不会自动跟着输出,只有CPU在“MOSI”上再输出一个字节(可以是随意值),nRF905才会在“MISO”上返回一个字节, CPU再发,nRF905再返回,直到读完为止。
代码分析
/*
 * s3c2410-
 * nRF905 driver for SAMSUNG ARM2410
   delongmu 
 */
#include <linux/>
#include <linux/>
#include <linux/>
#include <linux/>
#include <linux/>
#include <linux/>
#include <linux/>
#include <linux/>
#include <linux/>
#include <linux/>
#include "spi-"
#include ""
#include <linux/>
#include <asm/arch/regs->
/********************** nrf905 Pin **********************