基于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是该系统的总体结构框图。
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总线,既可以增加应用系统接口器件的种类,同时还提高系统的性能,节约成本。
3 nrf905无线收发芯片
nrf905是挪威nordic vlsi公司推出的单片射频收发器,工作电压1.9~3.6 v,工作于433/868/915mhz这3个ism频段,频道转换时间<650μs,最大数据速率为100kbit/s。nrf905由频率合成器、接收解调器、功率放大器、晶体振荡器和gfsk调制器组成。自动产生前导码和cr校验码,可以很容易通过spi接口进行编程配置。外围器件连接简单,无需外部saw滤波器。nrf905有两种工作模式和两种节能模式。两种工作模式分别是shockburst tm发送模式和shockburst rm接收模式,两种节能模式分别是掉电和spi编程模式,standby和spi编程模式。nrf905的工作模式由trx_ce,tx_en,pwr_up这3个引脚的设置来决定。
4 nrf905和stc89c52rc的硬件连接电路
nrf905具有标准的spi硬件接口,对于不带spi串行总线接口的stc89c52rc单片机来说,可以使用软件来模拟spi的操作。单片机和nrf905的对应接法是:p1.6接miso,p1.5口接mosi,pl.7口接sciock,p1.3接csn。选用单片机的p1.5模拟数据输出端mosi;pl.6模拟数据输入端miso p1.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总线传输1 bit的操作。nrf905有5个内部寄存器,分别是状态寄存器、rf配置寄存器、发送地址寄存器、发送数据寄存器和接收数据寄存器,这5个寄存器都是通过89c52软件模拟的spi接口来配置的。除了对寄存器进行配置外,89c52还要对nrf905的工作模式进行切换控制。
5 电源电路设计
本系统使用两个电源,单片机stc89c52rc使用5 v电源,nrf905采用3.3 v电源进行供电,然后把stc89c52rc和nrf905共地,否则会出现无法传输数据。其中转换芯片分别使用amslll7-5.0转5 v芯片和amsl117-3.3转3.3 v芯片电路图,如图3所示。电源电路使用220 v的交流电适配器输出的9 v直流,经c1滤波进入amslll7-5.0,然后在输出端接一个100μf的电容进行滤波去耦,从而得到5 v直流电压供单片机使用;然后5 v电压接入下一级amslll7-3.3电源转换芯片,输出3.3 v供nrf905使用。
6 软件设计的c语言实现
对于发送端,首先进行i/o口和spi接口初始化,然后对nrf905的寄存器进行配置并且初始化各个接口,经过初始化,处理完采集好的数据,设置nrf905为发送模式,调用发送代码,延时一段时间,等待数据发送完毕;同理在接收端也执行相同的初始化,不同的只是初始化完毕后,把nrf905模块设置成接收模式,然后调用接收程序。最后通过串口在上位机进行显示。
7 实验分析
文中对其软硬件进行了设计和调试,构建了基于spi无线通信系统平台。实验证明,通过该系统无线测试板壳应力,在nrf905发射模块端,敲打板壳使之发生形变,再用应变仪传感器测得其形变的电压值,在数据发射之前对此模拟信号进行ad采集,并通过无线发射模块把采集到的数据发射出去;同时先在离发射模块相距50 m的位置放置一个接收模块,接收发射数据并显示。然后间距每进行一次实验后增加50 m。以此判断它们在保证信号传输稳定情况下的最远传输距离。测得最佳结果在相距350 m以内的楼宇之间,数据传输稳定。超过350 m时,数据显示出现时显时无的现象。表1是在300 m左右实际测得的几组应变值。
8 结束语
文中介绍了用spi总线接口进行数据传输的实现方法,采用nrf905射频收发芯片和stc89c52rc单片机设计了无线数据传输系统,完成硬件电路和系统软件调试后,进行了无线数据收发实验。实验过程是通过应变仪传感器测板壳形变得到的模拟信号,经ad采集后产生要发送的数据,然后对其进行发射、接收和显示。实验结果表明,在相距350 m的楼宇之间通信,该无线传输系统工作稳定,接收和发射的数据完全相同,这表明该系统能实现数据的有效传输,具有高速、抗干扰能力强等优点。
基于DSP的模拟电路诊断系统的设计
鸿远700WLED大型灯主板切割原理
人工智能送助攻 IBM登上2016年专利榜首
AMD发布肾上腺素2020 20.12.1驱动
骁龙835配上8G运存玩王者荣耀,现场对战努比亚Z17给答案
基于SPI总线的无线数据传输系统设计
“充电模块第一股”优优绿能冲刺创业板!小米入股,募资7亿扩产升级
人工神经网络(梯度下降算法)介绍
PIC单片机的各种汇编语言指令的用法解析
电容器与串联电抗器选型注意事项
照度计使用要求_照度计的使用步骤及注意事项
SERCON816型SERCOS总线控制器及其应用
几种典型电流产生的磁感应强度分享
iphone8什么时候上市?iphone8最新消息:库克扬言iPhone8将改变世界!网友吐槽:致敬功能机
音响设计的特点及对演出节奏的影响分析
大陆厂商发力智能手机市场 欲抢占普及先机
5G通讯的相关应用和架构体及微波毫米波半导体技术
让人兴奋不已的 DOCSIS 4.0 上行频谱
前级DC隔离电源与逆变电源电路
u-blox发布新款定位模块NEO-F10N