基于SPI总线的无线数据传输系统设计
通过基于SPI总线的无线数据通信设备,利用无线数据收发芯片nRF905和51单片机STC89C52RC进行设计,给出了无线数据传输系统框图和软硬件设计。介绍了SPI总线结构、NRF905无线射频芯片及一种基于单片机模拟SPI接口的方法,使没有SPI接口的单片机扩展为带有SPI接口的外围芯片成为现实。对如何通过SPI实现对nRF905的配置,并利用C语言实现该功能做了探讨。最后对待发送数据进行发送,接收端对数据进行接收显示,从而实现了该无线数据传输系统,实验表明该设备具有准确有效的数据传输功能。
短程、便捷、廉价的无线通信技术正成为关注的焦点,使人们对它的需求越来越高。例如无线数据采集、无线设备管理和监控、无线抄表以及矿井下的无线通信等都是其典型应用。
1系统总体结构
文中利用51单片机和无线数据收发芯片nRF905构成无线数据传输系统,给出了硬件和软件设计方案。其数据传输过程是:从传感器输入的模拟信号经AD采集后,将数据输入单片机,然后单片机将该发送数据,通过SPI接口发送给nRF905,nRF905将数据自动加上前导码和CRC码后将数据包发送。当接收端的nRF905接收到有效数据后,DR置高;单片机检测到DR为高电平后,复位TRX_CE引脚,使nRF905进入空闲模式,通过SPI接口从nRF905中读出接收数据,然后通过串口在上位机显示。文中主要介绍的是51单片机软件模拟SPI和无线数据收发这两个部分。图1是该系统的总体结构框图。
2SPI总线
SPI(SerialPeripheralInterface串行外设接口)总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。该接口一般使用4条线:串行时钟线(SCK)、主机输入从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SS。可见SPI总线只需要少数的几根线,就可以实现与具有SPI总线硬件接口功能的各种器件进行通信,并且用SPI总线接口简化电路设计,节省许多I/O口线供其它功能使用,提高了设计的可靠性。而对于一些不具有SPI硬件接口的器件,可以用I/O口线来模拟SPI。由于nRF905射频收发模块是通过SPI接口由MCU控制的,而采用不具有SPI接口的单片机,只能通过单片机的I/O口来模拟SPI总线接口,实现无线通信系统的设计。这样当传输速度要求不是太高时,使用I/O口模拟SPI总线,既可以增加应用系统接口器件的种类,同时还提高系统的性能,节约成本。
3nRF905无线收发芯片
nRF905是挪威NordicVLSI公司推出的单片射频收发器,工作电压1.9~3.6V,工作于433/868/915MHz这3个ISM频段,频道转换时间<650μs,最大数据速率为100kbit/s。nRF905由频率合成器、接收解调器、功率放大器、晶体振荡器和GFSK调制器组成。自动产生前导码和CR校验码,可以很容易通过SPI接口进行编程配置。外围器件连接简单,无需外部SAw滤波器。nRF905有两种工作模式和两种节能模式。两种工作模式分别是ShockBurstTM发送模式和ShockBurst RM接收模式,两种节能模式分别是掉电和SPI编程模式,Standby和SPI编程模式。nRF905的工作模式由TRX_CE,TX_EN,PWR_UP这3个引脚的设置来决定。
4nRF905和STC89C52RC的硬件连接电路
nRF905具有标准的SPI硬件接口,对于不带SPI串行总线接口的STC89C52RC单片机来说,可以使用软件来模拟SPI的操作。单片机和NRF905的对应接法是:P1.6接MISO,P1.5口接MOSI,Pl.7口接SCIOCK,P1.3接CSN。选用单片机的P1.5模拟数据输出端MOSI;Pl.6模拟数据输入端MISOP1.7模拟SCK的输出端;P1.3模拟从机选择端CSN,由程序清零此I/O口,使得与它通信的NRF905做从机。采用SPI的进行数据传送时,在SCK的每个下降沿将89C52配置NRF905的命令和数据通过MOSI引脚移入,在SCK的每个上升沿将欲传给89C52的数据从MISO引脚移出。所以,这里将串行时钟输出口P1.7的初始状态设置为低电平,选通从机,即P1.3=0低电平后,再置P1.1为高电平。这样,89C52在输出1位SCK时钟的同时,将使NRF905中数据串行左移,从而输出1位数据至89C52的P1.6口,此后再置P1.7为0,使89C52从P1.5输出1位数据至NRF905,至此结束了模拟1位数据的传输。按上述步骤循环8次,即完成通过SPI总线传输1bit的操作。nRF905有5个内部寄存器,分别是状态寄存器、RF配置寄存器、发送地址寄存器、发送数据寄存器和接收数据寄存器,这5个寄存器都是通过89C52软件模拟的SPI接口来配置的。除了对寄存器进行配置外,89C52还要对nRF905的工作模式进行切换控制。
5电源电路设计
本系统使用两个电源,单片机STC89C52RC使用5V电源,NRF905采用3.
- 四核Spider平台:从芯片优化到平台优化(11-04)
- 利用SPI总线扩串口的方法(03-28)
- 不用软件工具能开展设计吗?(02-28)
- 利用C8051F020的SPI接口扩展大容量数据存储器(04-10)
- AMD发布四核心计算机平台Spider(10-21)
- 基于SPI方式DSP外部E2PROM接口设计(01-10)