摘要: 通过基于SPI总线的无线数据通信设备,利用无线数据收发芯片nRF905和51单片机STC89C52RC进行设计,给出了无线数据传输系统框图和软硬件设计。介绍了SPI总线结构、NRF905无线射频芯片及一种基于单片机模拟SPI接口的方法,使没有SPI接口的单片机扩展为带有SPI接口的外围芯片成为现实。对如何通过SPI实现对nRF905的配置,并利用C语言实现该功能做了探讨。最后对待发送数据进行发送,接收端对数据进行接收显示,从而实现了该无线数据传输系统,实验表明该设备具有准确有效的数据传输功能。
关键词: SPI;单片机;nRF905;无线通信
短程、便捷、廉价的无线通信技术正成为关注的焦点,使人们对它的需求越来越高。例如无线数据采集、无线设备管理和监控、无线抄表以及矿井下的无线通信等都是其典型应用。
1 系统总体结构
文中利用51单片机和无线数据收发芯片nRF905构成无线数据传输系统,给出了硬件和软件设计方案。其数据传输过程是:从传感器输入的模拟信号经AD采集后,将数据输入单片机,然后单片机将该发送数据,通过SPI接口发送给nRF905,nRF905将数据自动加上前导码和CRC码后将数据包发送。当接收端的nRF905接收到有效数据后,DR置高;单片机检测到DR为高电平后,复位TRX_CE引脚,使nRF905进入空闲模式,通过SPI接口从nRF905中读出接收数据,然后通过串口在上位机显示。文中主要介绍的是51单片机软件模拟SPI和无线数据收发这两个部分。图1是该系统的总体结构框图。
2 SPI总线
SPI(Serial Peripheral Interface串行外设接口)总线系统是一种同步串行外设接口,它可以使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总线,既可以增加应用系统接口器件的种类,同时还提高系统的性能,节约成本。