nRF2401三点通信设计要点_第1页
nRF2401三点通信设计要点_第2页
nRF2401三点通信设计要点_第3页
nRF2401三点通信设计要点_第4页
nRF2401三点通信设计要点_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、沈阳航空航天大学电子信息工程学院毕业设计(论文)第1章绪论随着传感器网络技术的发展,传感器网络在物联网的应用成为目前电子信息技术 的热点,本题目选取n RF2401无线通信芯片作为收发模块来实现节点之间的无线数 据通信,包括:研究一种适合与传感器网络应用的无线通信协议,开发基于nRF2401的嵌入式51单片机的协议栈,并能够实现nRF2401的信道选择、数据通信、差错处 理等基本功能。1.1 课题来源WSN网络技术一经提出,就迅速在研究界和工业界得到广泛的认可。1998年到2003年,各种与无线通信、Ad Hoc网络、分布式系统的会议开始大量收录与WSN网络技术相关的文章。2001年,美国计算

2、机学会(ACM)和IEEE成立了第一个专门针 对传感器网络技术的会议 Intern ati onal Conference on In formatio n Process ing in Sensor Network(IPSN),为WSN网络的技术发展开拓了一片新的技术园地。2003年到2004年,一批针对传感器网络技术的会议相继组建。ACM在2005年还专门创刊 ACMTran saction on Sensor Network,用来出版最优秀的传感器网络技术成果。2004年,Bost on 大学与 BP、Hon eywell、In etco Systems Invensys、Mille n

3、nial Net、Radia nse Sensicast Systems等公司联合创办了传感器网络协会,旨在促进WSN技术的开发。2006年10月,在中国北京,中国计算机学会传感器网络专委会正式成立,标志着中 国WSN技术研究开始进入一个新的历史阶段。基于以上信息,可以看出无线网络在以后的发展上有这巨大的潜力, 所以我在毕 业设计中设计了一个简单的无线网络节点机,可以实现点对点、点对多点和路由转发 功能。1.2设计任务本论文主要完成的任务有:熟悉 n RF2401的性能、特点及使用方法;熟悉 51单 片机的指令系统和编程方法;设计无线数据传输模块的通信协议,协议要求提供基本 的信道选择、数据通

4、信、差错处理、路由转发等功能,数据编码及格式等;使用 语言来实现协议栈设计。在此基础上,要去了解 TCP/IP、UDP、802.11、802.15.4等协议,参考这些协议 完成自己的毕业设计,了解无线局域网的基本结构和无线局域网在现实中的应用。本论文主要实现的功能有:完成点对点通信、点对多点通信、路由转发通信。给 出详细的协议设计过程、实现协议的基本功能、实现n RF2401的数据通信。-27 -第2章方案分析对于nRF2401的无线传感器节点机的设计主要有三个部分:发送数据、路由转 发数据和接收数据。对于这三个部分,都研究的是信道选择、数据通信和差错处理上,而对于路由转 发,主要有两个方法,

5、第一种方法是利用泛洪的思想,第二种方法就是建路径表。无 线节点机的系统测试模型图如图2.1所示。图2.1无线节点机测试模型在这个测试模型中,单片机A与nRF2401组成网络节点A,单片机B与nRF2401 组成网络节点B,单片机C与nRF2401组成个网络节点C。在数据传输过程中,A 向B发送数据,如果A、B两个节点的距离大于nRF2401本身的传输距离,但是A、 C节点和B、C节点的距离为nRF2401有效传输距离,那么A发送的数据可以通过C 节点将数据转发到B节点。nRF2401是一款工作在2.42.5GHz世界通用ISM频段的单片无线收发器芯片。无 线收发器包括:频率发生器、增强型Sho

6、ck Burst模式控制器、功率放大器、晶体振荡 器、调制器、解调器。输出功率、频道选择和协议的设置可以通过SPI接口进行设置。n RF2401具有极低的消耗电流,当工作在发射模式下,发射功率为-6dBm时电流消耗为9.0mA,接收模式时为12.3mA。掉电模式和待机模式下电流消耗更低2.1信道选择无线网络中,信道选择的重要性不言而喻。在 n RF2401中,在配置为接收模式时 可以接收6路不用地址(通道0到通道5)的相同频率的数据。每个数据通道拥有自己的 地址并且可以通过寄存器来进行分别配置。 通常情况下不允许不同的数据通道设置完 全相同的地址。所有数据通道可以设置多达40位地址,数据通道0

7、有40位可配置地址,是唯一的 一个可以配置为40位自身地址的数据通道。数据通道15的地址为32位共用地址+各自 的地址的最低字节,其中共用地址必须相同而各自的地址必须不同。如图2.2所示。0xE70xD3OxFO0x350x770xC20xC20xC20xC20xC2| Byte A Ryte 3 Byt它 2 Byte 1Data pipe 0 (rx addr pdjData pipe 1 (Fix addr_pdData pipe 2(RX addr pjjData pipe 3 addr P3)Data pipe 4 皿 addr p册Data pipe 5(RX addr p&

8、;)图2.2数据通道05的地址配置当从一个数据通道中接收到数据,如果数据通道设置为应答方式的话,那么 nRF2401在收到数据后产生应答信号,此应答信号的目标地址为接收通道地址。在发送端,数据通道0被用做接收应答信号,因此数据通道0的接收地址要与发送 端地址相等以确保接收到正确的应答信号。2.2发送和接收数据包在接收数据的时候,nRF2401模块配置成接收模式(CE=1),在发射数据的时候, nRF2401模块配置为发射模式(CE=1,持续至少10us), 130us后启动发射,再过37us后 发送一个字节。数据发送结束后,发送模块自动转入接收模式等待应答信号。发送模块在收到应答信号后产生中断

9、通知 MCU,接收模块接收到数据包后产生中断通知 MCU。发送数据包时序图如图2.3所示。PTX Mode -stsxiI Byte payload ack(339 烬)ESB cycleGE high mrinnim 10 usPTX: CEPTX IRQ (TX_.DS* Palaad (33 us + 4 us4)yte129 usACK (33 us)/*严 usSPI: RQ Ct&arJF128 U$*-STHY 1-(RXAntennaPRX: CEPRX: IRQ (RX_DR)PRX: Made图2.3发送数据包时序图2.3差错处理在nRF240忡,自带了 CRC校验

10、,CRC校验的长度是通过SPI接口进行配置的 定要注意CRC计算范围包括整个数据包:地址、PID和有效数据等。每一包数据都包括两位的PID(数据包序号)来识别接收的数据是新数据包还是重 发的数据包。PID序号可以防止接收端同一数据包多次送入 MCU,在发送方每次从 MCU取得一包新数据后PID值加一。PID和CRC校验应用在接收方,识别接收的数据 是重发的数据包还是新数据包。如果在链接中有一些数据丢失了,则PID值与上一包数据的PID值相同。这时,nRF2401将对两包数据的CRC值进行比较,如果CRC值也相同的话就认为后面一包是前一包的重发数据包而被舍弃2.3.1接收方接收方对新接收数据包的

11、PID值与上一包进行比较,如果PID值不同,则认为接 收的数据包是新数据包。如果PID值与上一包相同,则新接收的数据包有可能与前一 包相同。接收方必须确认CRC值是否相等,如果CRC值与前一包数据的CRC值相等, 则认为是同一包数据并将其舍弃。2.3.2发送发每发送一包新的数据则发送方的PID值加一。PID值生成和检查的流程如图2.4、2.5所示。图2.5 PID值检查2.4数据转发功能在说数据转发之前,我们首先要清楚路由和中继这两个概念中继器是用来延长网络距离的互连设备。 中继器可以增强线路上衰减的信号, 它 两端即可以连接相同的传输媒体,也可以连接不同的媒体。而路由器工作在网络层, 它能理

12、解数据中的IP地址,它具有判断网络地址和选择路径的功能,过滤和分隔网 络信息流。简单的说,中继器只能转发数据但是不能接收数据, 但是路由器不仅可以 转发数据而且还可以接收数据。当两个节点的距离大于 n RF2401的传输距离的时候,我们就不得不使用一个 节点转发数据。这时候这个节点就相当于是一个中继器,但是当发送端发送过 来的数据正好是中间节点的数据的时候,这个中间节点就需要接收数据,这时 这个中间节点就相当于一个路由器。中继节点的主要工作就是为经过路由节点的每个数据帧寻找一条最佳传输路径,并将该数据有效地传送到目的站点。 由此可见,路由算法是路由节点的关键所在。 为 了完成这项工作,主要有两

13、种方式完成数据的转发工作。第一种方法是泛洪,第二 种方法是建路径表。通过选择路径,依靠中间的中继节点转发数据。第一种方 法,会带来极大的通信开销,在大型网络中一般不用。泛洪不去考虑中间数据传输的传输路径,中间的路由节点只去判断这个数据是不 是本身节点需要的数据,如果是我这个节点需要的数据,我就将数据接收过来,如果 不是我这个节点的接收的数据,我就要将数据发送出去。建立数据路径表,供路由选择。使用时,路径表中保存着子网的标志信息、网上 路由器的个数和下一个路由器的名字等内容。路径表可以是系统管理员固定设置好 的,也可以由系统动态修改,可以是路由器自动调整,也可以是主机控制。建路径表是在数据传输之

14、前,根据一定的路径选择算法来确认这个传输的路径。 这个路径可以是固定的,也可以是根据网络环境自动调整的。2.4.1泛洪为了说明泛洪的原理,这里先用交换技术为例。泛洪是交换机和网桥使用的一种数据流传递技术,将某个接口收到的数据流从除该接口之外的所有接口发送出去,如果A节点的数据要发送到 D节点,泛洪的方法传输数据的模型如图 2.6所示。图2.6泛洪方式路由转发数据模型交换机根据收到数据帧中的源MAC地址建立该地址同交换机端口的映射,并将其写入 MAC地址表中。交换机将数据帧中的目的MAC地址同已建立的MAC地址表进行比较,以决定由哪个端口进行转发。如数据帧中的目的MAC地址不在MAC地址表中,则

15、向所有端口转发。 因为泛洪的方法没有路径可以使 用,所以泛洪的方法很容易受到攻击,而且因为没有路径,所有的网络节点都 会工作,这样就会浪费大量的资源,功耗比较大。使用泛洪的方法进行路由转 发数据主要有三种方法进行攻击网络。SYN泛洪攻击。SYN攻击利用的是 TCP的三次握手机制,攻击端利用伪造 的IP地址向被攻击端发出请求,而被攻击端发出相应的报文将永远发送不到目 的地,那么被攻击端在等待关闭这个连接的过程中消耗了资源,如果有成千上 万的这种连接,主机资源将被耗尽,从而达到攻击的目的。我们可以利用路由 器的TCP拦截功能,保护网络上的主机。DHCP报文范洪攻击。指恶意用户利用工具伪造大量DHC

16、P报文发送到服务器,一方面恶意耗尽 IP资源,使得合法用户无法获得IP资源;另一方面,如果交换机上开启了 DHCP Snooping功能,会将接收到的 DHCP报文上送到CPU 因此大量的DHCP报文攻击设备会使 DHCP服务器高负荷运行,甚至会导致设 备瘫痪。ADDR攻击。与DHCP类似,同样是恶意用户发出大量的APP报文,造成L3设备的APP表溢出,影响正常用户的转发。2.4.2路径表路径表是指路由器中保存着的各种传输路径的相关数据,供路由选择时使 用。路径表中保存着子网的标志信息、网上路由器的个数和下一个路由器名字 等内容。路径表可以是由系统管理员固定设置好的,也可以由系统动态修改, 可

17、以由路由器自动调整,也可以由主机控制。路径表分为两种:1 .静态路径表由系统管理员事先设置好固定的路径表称之为静态路径表,一般是在系统安装时 就根据网络的配置情况预先设定的,它不会随未来网络结构的改变而改变。2.动态路径表动态路径表是路由器根据网络系统的运行情况而自动调整的路径表。 路由器根据 路由选择协议提供的功能,自动学习和记忆网络运行情况,在需要时自动计算数据传 输的最佳路径。如果A节点的数据要发送到 D节点,同时A节点的数据也可以发送到 E节点, 当数据传输的时候,系统会根据路径表,将数据通过某个路径发送到指定的位 置。建路径表传输数据的模型如图2.7所示。图2.7路径表方式路由转发数

18、据路由节点要按照某种路由通信协议, 查找路由表,路由表中列出整个无线局域网 中包含的各个节点,以及节点间的路径情况和与它们相联系的传输费用。如果到特定的节点有一条以上路径,则基于预先确定的准则选择最优 (最经济)的路径。由于各种 网络段和其相互连接情况可能发生变化, 因此路由情况的信息需要及时更新, 这是由 所使用的路由信息协议规定的定时更新或者按变化情况更新来完成。网络中的每个路由节点按照这一规则动态地更新它所保持的路由表,以便保持有效的路由信息。路由节点在转发报文的过程中,为了便于在网络间传送报文,按照预定的规则把 大的数据包分解成适当大小的数据包,到达目的地后再把分解的数据包包装成原有形

19、 式。多协议的路由节点可以连接使用不同通信协议的网络段,作为不同通信协议网络段通信连接的平台。路由节点的主要任务是把通信引导到目的地网络,然后到达特定的节点站地址。 后一个功能是通过网络地址分解完成的。例如,把网络地址部分的分配指定成网络、 子网和区域的一组节点,其余的用来指明子网中的特别站。分层寻址允许路由节点对 有很多个节点站的网络存储寻址信息。在广域网范围内的路由器按其转发报文的性能可以分为两种类型, 即中间节点路 由器和边界路由器。尽管在不断改进的各种路由协议中, 对这两类路由器所使用的名 称可能有很大的差别,但所发挥的作用却是一样的。路由节点在网络中传输时,提供报文的存储和转发。同时

20、根据当前的路由表所保 持的路由信息情况,选择最好的路径传送报文。由多个互连的LAN组成的公司或企业网络一侧和外界广域网相连接的路由器,就是这个企业网络的边界路由器。它从外部广域网收集向本企业网络寻址的信息,转发到企业网络中有关的网络段;另一方面集中企业网络中各个LAN段向外部广域网发送的报文,对相关的报文确定最好的传 输路径。2.5软件设计思路nRF2401是一款工作在2.42.5GHz世界通用ISM频段的单片无线收发器芯片。无 线收发器包括:频率发生器增强型Shock Burst模式控制器、功率放大器、晶体振荡器、 调制器、解调器。输出功率、频道选择和协议的设置可以通过 SPI接口进行设置。

21、 在 nRF2401工作的时候,最重要的一种协议就是 SPI协议。SPI是英语Serial Peripheral in terface勺缩写,就是串行外围设备接口。 主要应用在 EEPROM、FLASH、实时时钟、AD转换器,还有数字信号处理和数字信号解码器之 间。SPI是一种高速的,全双工,同步通信总线,在芯片的管脚上只有 4跟线,节约了 芯片的管脚,同时为PCB的布局节省空间,操作方便,正是因为这种简单的特征,越 来越多的芯片使用了这种通信协议。SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个 或多个从设备,需要至少4根线,事实上3根也可以(用于单向传输时,也就是半

22、双 工方式)。也是所有基于SPI的设备共有的,它们是SDI (数据输入),SDO (数据输 出),SCLK (时钟),CS (片选)。在nRF2401中,数据输入为 MOSI,数据输出为 MISO,时钟为SCK,片选为CSN。(1)MOSI -SPI总线主机输出/从机输入(2)MISO -SPI总线主机输入/从机输出SCK -寸钟信号,由主设备产生(4) CSN -从设备使能信号,由主设备控制其中CSN是控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信 号时(高电位或低电位),对此芯片的操作才有效。这就允许在同一总线上连接多个 SPI设备。接下来就负责通讯的3根线了。通讯是通过数据

23、交换完成的,这里先要知道 SPI 是串行通讯协议,也就是说数据是一位一位的传输的。这就是SCK时钟线存在的原因, 由SCK提供时钟脉冲。MOSI、MISO则基于此脉冲完成数据传输。数据输出通过MOSI 线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取。完成一 位数据传输,输入也使用同样原理。这样,在至少 8次时钟信号的改变(上沿和下沿为 一次),就可以完成8位数据的传输。要注意的是,SCK信号线只由主设备控制,从设备不能控制信号线。同样,在一个基于SPI的设备中,至少有一个主控设备。这样的传输方式与普通的串行通讯不同, 普通的串行通讯一次连续传送至少8位数据,而SPI允许数据

24、一位一位的传送,甚至允 许暂停,因为SCK时钟线由主控设备控制,当没有时钟跳变时,从设备不采集或传送 数据。也就是说,主设备通过对SCK时钟线的控制可以完成对通讯的控制。因为 SPI 的数据输入和输出线独立,允许同时完成数据的输入和输出,所以SPI还是一个数据交换协议。不同的SPI设备实现方式不尽相同,主要是数据改变和采集的时间不同, 在时钟信号上沿或下沿采集有不同定义。SPI主模块和与之通信的外设备时钟相位和极性应该一致。这句话有2层意思:其 一,主设备SPI时钟和极性的配置应该由外设来决定;其二,二者的配置应该保持一 致,即主设备的MOSI同从设备的MOSI配置一致,主设备的MISO同从设

25、备的MISO 配置一致。因为主从设备是在SCK的控制下,同时发送和接收数据,并通过 2个双向 移位寄存器来交换数据。在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单 高效。在多个从设备的系统中,每个从设备需要独立的使能信号,硬件上比I2C系统要稍微复杂一些。Shock Burst模式下nRF2401可以与成本较低的低速MCU相连。高速信号处理是由 芯片内部的射频协议处理的,n RF2401提供SPI接口,数据率取决于单片机本身接口 速度。Shock Burst模式通过允许与单片机低速通信而无线部分高速通信,这样可以减小通信的平均消耗电流。在Shock Burst接收模式

26、下,当接收到有效的地址和数据时IRQ通知MCU,随后MCU可将接收到的数据从RX_FIFO寄存器中读出。在Shock Burst发送模式下,nRF2401自动生成前导码及CRC。数据发送完毕后IRQ 通知MCU。减少了 MCU的查询时间,也就意味着减少了 MCU工作量的同时减少了软 件的开发时间,nRF2401内部有三个不同的RX_FIFO寄存器和三个不同的TX_FIFO寄 存器。在掉电模式下、待机模式下和数据传输的过程中 MCU可以随时访问FIFO寄存 器。这就允许SPI接口可以以低速进行数据传送,并且可以应用于MCU硬件上没有SPI 接口的情况。增强型Shock Burs模式可以使得双向链

27、接协议执行起来更为容易、有效。典型的双向链接为:发送方要求终端设备在接收到数据后有应答信号,以便于发送方检测有无数据丢失。一旦数据丢失,则通过重新发送功能将丢失的数据恢复。增强型的ShockBurst模式可以同时控制应答及重发功能而无需增加 MCU工作量。2.5.1自动应答(RX):自动应答功能减少了外部MCU的工作量,因此降低成本减少电流消耗。自动应 答功能可以通过SPI口对不同的数据通道分别进行配置。在自动应答模式使能的情况下,收到有效的数据包后,系统将进入发送模式并发 送确认信号。发送完确认信号后,系统进入正常工作模式。2.5.2自动重发功能ART(TX):自动重发功能是针对发送方的自动

28、应答系统。SETUP_RETR寄存器设置启动重发 数据的时间长度。在每次发送结束后系统都会进入接收模式并在设定的时间范围内等 待应答信号。接收到应答信号后,系统转入正常发送模式。如果TX_FIFO中没有待发 送的数据且CE脚电平为低,则系统将进入待机模式I。如果没有收到确认信号,则系 统返回到发送模式并重发数据直到收到确认信号或重发次数超过设定值。有新的数据发送或PRIM_RX寄存器配置改变时丢包计数器复位。第3章硬件设计整个无线传感器节点机的设计的硬件电路主要是以51单片机为核心的数处理系统、nRF2401的无线通信片和电源电路。在硬件的设计中,nRF2401使用的是无线模块,电源电路是由

29、AMS1117这种稳 压芯片组成。3.1 51单片机部分单片机是本设计中数据处理的重要部分,本文采用的是STC公司的STC89C51系列单片机中的 STC89C52芯片。这是一款 8051的内核芯片,内部含有 Flash EEPROM存储器,该器件为CMOS产品。单片机的内部RAM为512B,芯片外部晶 振最高可以接入40MHz,温度是0到70摄氏度。单片机为双列直插式,51单片机 的最小系统电路如图3.1所示。图3.1单片机最小系统3.1.1单片机的空闲与掉电模式当单片机进入空闲模式时,除了 CPU处于休眠期状态外,其余硬件全部处于活 动状态,芯片中程序未涉及的数据存储器和特殊功能寄存器中的

30、数据在空闲模式期间 都保持原值。假若定时器正在运行,那么计数器存储器中的值还会增加。 单片机在空 闲模式下可由n RF2401发送或者接收数据来唤醒。让单片机进入空闲模式是为了减 少功耗。当单片机进入掉电模式时,外部晶振停震,CPU、定时器、串行口全部停止工作, 只有外部中断继续进行工作。使单片机进入掉电模式的指令将成为休眠前单片机执行 的最后一条指令。进入掉电模式后,芯片中程序未涉及的数据存储器和特殊功能寄存 器中的数据将保持原值。可以用外部中断低电平触发,或下降沿触发中断,或硬件复 位模式唤醒单片机。需要注意的是,使用中断唤醒单片机时,程序从原停止处继续运 行;当使用硬件复位唤醒单片机时,

31、程序将从头开始执行。如果单片机进入掉电模式 以后重新上电nRF2401将重新工作,不会记录原来发送的数据。3.1.2单片机的“看门狗”在单片机构成的系统中,由于单片机的工作有可能受到来自外界电磁场的干扰, 造成程序的跑飞,从而陷入死循环,程序的正常运行被打断,单片机控制的系统便无 法继续工作,这样会造成整个系统陷入停滞状态, 发生不可预料的后果,所以出于对 单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状 态的芯片,俗称“看门狗”。加入看门狗电路的目的是使单片机可以在无人状态下实现连续工作,其工作过程如下:单片机程序控制看门狗。使它定时地往看门狗芯片中送入高电平 (或

32、低电平), 这一程序语句是分散地放在单片机其他控制语句中的,一旦单片机由于干扰造成程序跑飞而陷入某一程序段进入死循环时,给看门狗送电平的程序便不会被执行,这时, 看门狗电路就会由于得不到单片机送来的信号, 便对它与单片机复位引脚送一个复位 信号,使单片机复位,从而使单片机从程序存储器的起始位子重新开始执行程序,这样便实现了单片机的自动复位。在STC89C51系列单片机中,内置了看门狗功能,这样就不用单独完成看门狗, 通过相对应的特殊功能寄存器的设置就可以实现看门狗的应用。3.1.3内部扩展RAMRAM是在程序运行中存放随机变量的数据空间,51单片机默认的内部RAM只有128B。对于编程者来说,

33、一个芯片的 RAM空间越大,写起程序来就容易得心应 手,不用考虑因为RAM不够而不敢过多的对变量进行定义。一旦程序中的总变量超过了 128B,必须对所有变量进行初始化,否则没有被初 始化的变量默认值将不会确定。当变量总和超过128B时,还必须要在编译器中重新设定存储器的存储模式。存储器模式有三种,分别是small、compact和large模式。他决定了没有明确指 定存储类型的变量。如果在某些函数中需要使用非默认的存储模式, 也可以使用关键 字直接说明。small模式中,所有默认变量均装入单片机内部128B的RAM中,当定义类似“uchar a; “float b;”等变量时,这些变量都装入内

34、部 128B的RAM中;compact 模式中,所有默认变量均位于单片机内部的 256B的RAM中,和在small模式中使用 关键字pdata来定义变量的效果相同;在large模式中,所有默认变量可放在多达64KB 的RAM区,包括内部RAM和外部RAM,这和使用关键字xdata来定义变量的效果 相同。3.1.4内部EEPROM 的应用STC89C51, STC89C52内部都自带有2KB的EEPROM,STC单片机是禾U用IAP 技术实现的EEPROM,内部Flash擦写次数可达100000次以上。IAP就是片子提供一系列的机制,当片子在运行程序时可以提供一种改变Flash数据的方法。也就是

35、说,程序自己往程序存储器里写数据或修改程序。3.2电源电路部分由于单片机最小系统需要5v电压供电,nRF2401芯片需要3.3v电压供电。所以, 我在设计电源的时候,设计了 5v和3.3v两种电源。电源是通过 4节干电池通过 AMS1117-5和AMS1117-3.3两种稳压芯片得到的。1A电AMS1117是一款正电压输出低压差的三段线性稳压电路的芯片,在输出 流时,输入输出的电压差典型值为1.8v。AMS1117是一个低漏失电压调整器,它的稳压调整管是由一个 PNP驱动的NPN 管组成的,漏失电压定义为:VDROP=VBE+VSAT。AMS1117有固定和可调两个版本可用,输出电压可以是:

36、1.8v,3.3v和5.0v。片 内过热切断电路提供了过载和过热保护,以防环境温度造成过高的结温,其中过流保 护和过热保护模块,能够在应用电路的环境温度大于 120C以上或负载电流大900mA 时,保证芯片和系统的安全。为了确保AMS1117的稳定性,输出需要连接一个至少22卩F的钽电容。通常, 线性调整器的稳定性随着输出电流增加而降低,电源电路如图3.2所示。图3.2电源模块电路图3.3 nRF2401无线通信模块部分n RF2401是挪威Nordic公司推出的单片无线收发一体芯片, 工作在2.4GHz,ISM频段,具有接收灵敏度高、外围电路少、发射功率低、传输速率高和功耗低等特点,可以实现

37、点对点、点对多点的通信。3.3.1模块介绍n RF2401是有126频道,满足多点通信和跳频通信需要;内置硬件 CRC检错和点 对多点通信地址控制;低功耗1.9 - 3.6V工作,待机模式下状态为22uA;掉电模式下 为900nA;内置2.4GHz天线,体积小巧15mm X29mm;模块可软件设地址,只有收到 本机地址时才会输出数据(提供中断指示),可直接接各种单片机使用,软件编程非常 方便;内置专门稳压电路,使用各种电源包括 DC/DC开关电源均有很好的通信效果; 2.54mm 间距接口,DIP 圭寸装;工作于 En ha need Shock Burs具 有 Automatic packe

38、t handling. Auto packet tran saction handling具有可选的内置包应答机制,极大的降低丢 包率;与51系列单片机P0口连接时候,需要加10K的上拉电阻,与其余口连接不需要, 模块结构如图3.3所示。二2j>oa>T00>rVSS=DVDEMODCSNMISO MOSIClockRecovery,DataSlicerADDRDecodeCRCCodeDecodeFIFOirVOutGFSKFilterFrequency Synthesiser vdd PA=ravANTI100+J175 QANT2«22k£iEnha

39、nced Sriock Burst图3.3 nRF2401模块的结构示意图332 PCB板设计及去耦一个好的PCB布线对射频性能有很大影响。一个差的PCB板设计可能导致丢包甚 至可能不能实现其应有的功能。在设计nRF2401的时候,要避免使用长的电源走线,所有元器件的地VDD及VDD 与去耦电容应尽可能的靠近nRF2401芯片。直流供电电源应尽可能靠近芯片的 VDD弓I 脚。最好用一个大电容(比如:4.7uF钽电容)并联一个小电容。如果在 PCB板的顶层 有铺铜的“地”网,VSS应直接与铺铜面连接。如果在PCB板的底层有铺铜的“地” 网,则应该在离VSS脚尽可能近的地方放置过孔连接。每个 VS

40、S最少应有一个过孔。 所有数字信号线和控制信号线都不能离晶振和电源线太近,nRF2401原理图如图3.4所示。HDDT1rC31=C2lhFLLiCELC£tT25CK34ICO51刃ANTICSN 赵 W0S1 MEO-V- JI L.PA.图3.4 nRF2401原理图第4章软件设计基于nRF2401无线传感器节点机的设计采用的是模块化的思想,这样软件实现模 块化、标准化,易于理解和移植。传感器节点上的软件是无线传感器网络进行有效工 作的灵魂,负责完成现场数据的采集以及通过无线通信模块将采集数据包无线传送。节点机的软件设计主要包括三个部分,分别是发送数据、路由转发数据和接收数 据

41、。4.1 nRF2401 的配置nRF2401的所有配置工作都是通过SPI完成,共有30字节的配置字。我们推荐nRF2401工作于Shock Burst收发模式,这种工作模式下,系统的程序编 制会更加简单,并且稳定性也会更高。因此,下文着重介绍把nRF2401配置为ShockBurst收发模式的器件配置方法。Shock Burst的配置字使nRF2401能够处理射频协议,在配置完成后,在 nRF2401 工作的过程中,只需改变其最低一个字节中的内容,以实现接收模式和发送模式之间 切换。Shock Burst的配置字可以分为以下四个部分:数据宽度:声明射频数据包中数据占用的位数。这使得 n RF

42、2401能够区分接收数 据包中的数据和CRC校验码;地址宽度:声明射频数据包中地址占用的位数。这使得 n RF2401能够区分地址和 数据;地址:接收数据的地址,有通道0到通道5的地址;CRC:使nRF2401能够生成CRC校验码和解码。当使用nRF2401片内的CRC技术时,要确保在配置字中CRC校验被使能,并且发 送和接收使用相同的协议。4.2收发模式nRF2401的收发模式操作是通过CE、CLK和DATA三个引脚完成的。当nRF2401 要采用Shock Burst发射数据时,首先将CE脚置高,把接收节点的地址和要发送的数 据按时序送入nRF2401,然后将CE脚置低,激发nRF2401

43、发射。当采用Shock Burst接 收数据时,首先配置本节点地址和要接收的数据包大小,将CE脚置高,等待200us后,nRF2401进入监听状态,等待数据的到来。当接收到正确的数据包后,将DR脚置高,通知MCU取走数据。待MCU取走数据后,nRF2401将DR置低,此时,如果CE脚为高, 则等待下一个数据包,否则开始其它的工作流程。4.2.1发送模式首先要配置寄存器PRIM_RX为低;当MCU有数据要发送时,接收节点地址和有 效数据通过SPI接口写入nRF2401芯片。发送数据的长度以字节计数,从MCU写入TX_ FIFO。当CSN为低时数据被不断地写入。发送端发送完数据后,将通道 0设置为

44、接收 模式来接收应答信号,其接收地址(RX_ADDR_P0)与接收端地址(TX_ADDR)相同; 设置CE为高,启动发射。CE高电平持续时间最小为10us; nRF2401设置为Shock Burst 模式,无线系统上电、启动内部16MHz时钟、无线发送数据打包、高速发送数据;如 果启动了自动应答模式无线芯片立即进入接收模式。如果在有效应答时间范围内收到 应答信号,则认为数据成功发送到了接收端,此时状态寄存器的TX_DS位置高并把数 据从TX _FIFO中清除掉。如果在设定时间范围内没有接收到应答信号,则重新发送 数据。如果自动重发计数器(ARC_CNT)溢出,则状态寄存器的MAX_RT位置高

45、。不 清除TX _FIFO中的数据,当MAX_RT或TX_DS为高电平时,IRQ引脚产生中断。IRQ 中断通过写状态寄存器来复位。如果重发次数在达到设定的最大重发次数时还没有收 到应答信号的话,在MAX_RX中断清除之前不会重发数据包。数据包丢失计数器 (PLOS_CNT)在每次产生MAX_RT中断后加一。在发射模式下,首先要将nRF2401端口与单片机的I/O 口连接,设置为待机模式、 禁止SPI协议启动、SPI时钟置低、中断复位、同时将LED全部关闭流,然后,初始化 为发射模式,具体步骤为:定义发射信号按键,将信号给到单片机并放到单片机的缓 存中去,将nRF2401设置为发射模式,当有按键

46、按下的时候,发送数据,发送完毕后清空TX FIFO寄存器程。初始化完毕后,进行数据发送。流程图如图4.1下所示图4.1发送端流程图4.2.2接收模式Shock Burs接收模式是通过设置寄存器中PRIM_RX位为高来选择的。准备接收 数据的通道必须被使能。所有工作在增强型Shock Burs模式下的数据通道的自动应答 功能是由EN_AA寄存器来使能的,有效数据宽度是由 RX_PW_Px寄存器来设置的; 接收模式由设置CE为高来启动;130us后nRF2401开始检测数据信息;接收到有效的 数据包后(地址匹配、CRC检验正确)数据存储在RX_FIFO中,同时RX_DR位置高,并 产生中断。状态寄

47、存器中RX_P_N O位显示数据是由哪个通道接收到的;如果使能自 动确认信号,则发送确认信号,MCU设置CE脚为低,进入低功耗模式,MCU将数据 以合适的速率通过SP口将数据读出,芯片准备好进入发送模式、接收模式或掉电模 式。在发射模式下,首先要将nRF2401端口与单片机的I/O 口连接,设置为待机模式、 禁止SPI协议启动、SPI时钟置低、中断复位、同时将 LED全部关闭流。然后,将 nRF2401设置为接收模式。首先读取 n RF2401寄存器状态,判断是否接收到数据, 如果接收到数据,将数据从RX_FIFO寄存器中读出来,同时设置一个读出数据标志, 当读出数据成功以后,清除RX_DX中

48、断标志,当读出数据的时候,数据发送到LED 显示,然后将LED全部关闭。接收端流程图如图4.2所示。4.2.3路由转发图4.2接收端流程图沈阳航空航天大学电子信息工程学院毕业设计(论文)对于路由转发的节点机,我在软件的设计上,简单的说是先让这个路由节点接收到发送端发送的数据,这个数据通过泛洪的方式,将数据发送出去,这时,接收端 就可以接收到发送端的数据。在无线局域网中,之所以要用到路由转发这个功能,是因为发送端和接收端的 距离超过了 n RF2401本身的传输距离,这样,接收端就不能接收到发送端发送过来 的数据。这时,我们就要利用这个路由节点,将数据转发到接收端。在路由端,我们要完成的软件中最

49、重要的就是接收数据和发送数据。但是在现 实的无线局域网中是远远不够的,在现实中的无线路由转发,是要考虑传输路径的。 在这条路径中,有着最好的传输效率,最小的误码率。在这条路径的选择上,是需要 大量的实验的,这实验数据中,找到这条最好的数据传输路径。在数据发送的时候,我们需要将发送数据打上标号,这个标号是节点的记号,用来记录这个数据是在那个节点机中发送过来的,在路由端的这个节点机中,也有自己的标号,路由节点接收到数据的时候,这个数据的标号是发送节点的标号,在这时, 要判断路由节点是否为目标节点, 如果是目标节点,那么就处理这个数据。如果不是 目标节点,那么就要将这个数据发送出去,这时,这个数据的

50、标号已经变为了路由节 点的标号,在接收端接到的数据,也是这个有路由节点标号的数据。 在这个数据的传 输上,数据是不变的,变化的只是记录节点的标号,这样,数据在传输的时候,不会 发送数据混叠。路由转发的流程图如图 4.3所示。第5章调试情况及其排故在这次毕业设计的调试过程中分为硬件检查、软件调试和软硬件联调三个步骤。系统模拟调试是把已调好的各个模块,按照总体要求连成一个完整的整体。软件部分 还要与所设计的硬件系统进行联机调试。在任何一个设计中,电路调试部分能够检验 设计方案的可行性和正确性。在这个过程中可能要遇到在设计中没有考虑到的地方, 通过调试可以使设计得到更好的补充。首先是确保硬件的每一个

51、连接都是正确的, 没有漏焊和虚焊的情况。还有所用的 器件都是正确的。其次,要保证软件的编译能通过,对代码本身来讲是没有错误的。 最后完成的是最艰难的工作 一软硬件联调。5.1硬件调试部分硬件调试部分主要是检查焊接点和确定各个功能部件无故障,从而保证后续工作的顺利进行。在整个毕业设计中,其实硬件调试部分是非常重要的一个环节,因为当我们在最后的软硬件联调的时候,往往认为问题是软件的问题,而忽略了硬件本身的 问题。这个时候我们往往是不停地去解决软件上的问题,殊不知软件本身没有什么问题,而是因为硬件上某个焊接点没有焊接好而造成整个系统不能使用。5.1.1电源模块的调试在整个设计系统中,因为nRF240

52、1需要3.3v的电压,而单片机需要5v电源供电, 所以我需要三个3.3v和5v的电源模块。因为干电池本身的噪声过大,所以不能用干 电池作为单片机的供电系统。而AMS1117是一款很常用的稳压芯片,使用也很简单, 如果想要一个5v的稳定电压,只要在 AMS1117-5这个芯片的VIN端输入一个大于 5v的电源,在VOUT端就可以输出稳定的5v电压。3.3v的电压原理相同。在电路连接好后,只要用电压表测试 VOUT端的电压,就可以确定整个电源模 块是否可以正常工作。电源电路输入输出电压如表5.1所示。图4.3路由转发节点流程图-29 -沈阳航空航天大学电子信息工程学院毕业设计(论文)表5.1电源模

53、块的输入输出电压模块电压第一个稳压模块第二个稳压模块第三个稳压模块ams117-5输入端5.86v5.64v5.73vams117-5输出端5.01v5.03v5.01vams117-3.3 输入端5.01v5.03v5.01vams117-3.3 输出端3.34v3.31v3.32v5.1.2 nRF2401无线模块在nRF2401模块中,主要有10个外接引脚,其中:1管脚和2管脚为电源,需要接入3.3v电压;3管脚为CE,芯片使能,其中发送模式时高电平10us接收模式为高电平,待机 模式为低电平;4管脚为CSN, SPI片选使能,低电平使能;5管脚为SCK,SPI时钟;6管脚为MOSI,SPI串行输入;7管脚为MISO,SPI串行输出;8管脚为IRQ,中断,低电平使能;9管脚和10管脚为芯片接地端。在这两个管脚上要分别于单片机和电源共地。由于nRF2401

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论