当前位置:首页 > 作文大全 >

基于Si1000的无线传输模块的研究与设计

发布时间: 2022-03-24 09:17:46 浏览:

摘要:由于有线通信系统传输距离短、架设成本高等问题,无线通信系统成为当今的研究热点。本文设计了一种基于Si1000的无线传输模块,完成了串口收发、无线收发和参数在线配置等功能。通过实验证明,该无线传输模块具有良好的稳定性和可靠性,能够对工农业、智能家居等数据采集传输应用提供一定的参考价值。

关键词:Si1000;无线传输;数据采集

中图分类号:TP212 文献标识码:A 文章编号:1007-9416(2018)06-0034-03

随着无线技术、微电子及嵌入式计算技术的进步,无线传感器网络的研究及应用得到了迅猛的发展。相比传统的有线数据传输系统,采用无线方式具有布线少、成本低、功耗低,且灵活性好、扩展性强等的优点。在无线传感器网络中,最典型的应用模式就是在特定的网络区域中,部署一定数量的的传感器节点,收集数据信息并经过中继节点多跳传输到汇聚节点,再由汇聚节点把信息处理结果传送到后台管理控制端[1]。

本文采用Silicon Labs公司生产的Si1000片上系统作为主控芯片,在集成开发环境Silicon Laboratories IDE中进行编译,研究并设计了实现收发功能一体的无线传输模块。配合PC中基于Visual Basic所设计的上位机程序,可以通过软件进行各种功能参数的配置,可实现多节点数据采集并传输的功能。

1 基本设计

1.1 硬件平台

Si1000是完全集成的混合信号片上系统,内部除了高性能、超低功耗的CIP-51内核的8位C8051F9XX系列单片机,还集成了大量的外设,比如240-960MHz的EZRadioPRO系列无线收发芯片Si4432。它自带发送与接受FIFO达到64字节,可传输超长帧,数据原始速率范围从0.123 kbps到256kbps;发射功率最高可达20dBm,灵敏度达-121dBm,通信距离长达两公里,是同类产品的数倍;内置发送、接收、待机、休眠四种模式,其中休眠模式又为低功耗提供了便利[2];基于FSK、GFSK和OOK的调制方式和微功率发射,采用高效前向纠错信道编码技术,提高了数据抗突发干扰和随机干扰的能力[3]。因为价格低廉,Si1000片上系统提供了目前业界最高性价比的单芯片无线通信解决方案,只需少量元器件和较小的电路板尺寸即可组建高性能的无线通信系统[4]。

1.2 软件介绍

硬件平台选用的Silicon Labs公司的Si1000,那么无线传输模块的集成开发环境也是选用的Silicon Laboratories IDE。IDE只是一个集成开发环境,必须有相关的工具链(Tool Chain)支持才能编译,所以调试程序还需要Keil的C51编译器、连接器BL51、汇编语言编辑器A51等,这里选择Keil uVision4。Keil uVision4安装完毕后,还需要进入IDE的界面,选择Project->Tool Chain integration,待弹出对话框,单击Browse按钮,更换A51、C51和BL51的目录(换成keil\c51\bin即可),如此才可正常工作,这里不再详细分解过程。通过IDE软件编写相关程序,在编译通过后生成HEX文件,然后使用仿真器将HEX文件下载到芯片。因为Keil uVision4的在线调试功能并不能很好地支持Si1000射频模块的在线调试,所以在进行调试的时候用串口UART将信息发到PC上,通过串口调试助手显示数据进行结果验证。

1.3 网络拓扑及通信协议

无线传感器网络的拓扑结构类型一般分为三种:星型、树型和网状结构。本文采用树型结构网络拓扑,由一个中心节点、若干终端节点和若干中继节点构成。其中,中心节点位于系统核心,维护着整个系统的路由信息,同终端节点交互应用层业务数据;中继节点完成无线链路的接力,本身不产生或消费应用层业务数据;终端节点完成具体的业务功能,它产生或消费应用层业务数据,同时也兼有中继节点的功能[4]。

如图1所示间接通信的协议栈。

如若没有中继节点,那么中心节点与终端节点直接通信。

2 系统通信协议实现

本系统主要实现三个功能:串口收发、无线收发和参数配置。下面先对程序的总体流程设计做个阐述,再主要就三个功能进行介绍。

2.1 总体设计

Si1000芯片内置功能模块均编成独立的函数由主程序进行调用。主要有: 初始化程序、无线发送程序、无线接收程序、串口收发中断程序等等。

2.1.1 主程序:main.c

首先关闭watchdog,然后初始化系统时钟、PCA、SPI、端口、串口、定时器0、在线配置默认数据、在线配置等;使能总中断,初始化无线配置及参数,打开接收功能;再通过配置PCA来启动watchdog。

While循環里面,串口一直在等待数据,如果有数据了,就进入UART_mac_Rx()进行处理;如果处理后需要发送数据,将有相应的数据包发送标志;如果数据包发送标志为1,发送数据、亮灯,启动发送定时标志以等待第二个数据包;如果数据包发送标志为2且在等待时间以内(说明包比较长要分成两个包发送),发送数据、亮灯;如果无线接收到数据,数据存入缓存区,且进入Link_layer()进行处理;如若转发数据发送标志为1,同样发送数据、亮灯,启动转发定时标志以等待第二个数据包;如果转发数据发送标志为2且在等待时间以内(说明包比较长要分成两个包发送),发送数据、亮灯;最后watchdog。

2.1.2 中断:interrupt.c

有三个中断,分别是定时器0,串口0和无线收发。其中串口0有接收数据和发送数据之分,同样无线收发也有接收数据与发送数据之分。

2.1.3 MAC层数据处理:mac.c

首先UART_mac_Rx(),串口收到数据将在这个函数里面存入缓存区,并进入UART_protocol()处理;UART_protocol()主要是针对串口转换码的问题来将串口数据转成无线数据,以及对长包进行分包处理;Link_layer(),通过无线接收数据包的不同地址来确定数据将是通过串口向上传送或者转发或者回送路经;UART_mac_Tx(),即通过串口向上传送,同样是针对串口转换码的问题来将无线数据转成串口数据,以及对接收的两个包进行拼装处理;Network_ layer()则是转发处理,根据路由表确定下一设备的地址,对TTL进行减法运算等,如果本设备已经是目的地址,还要进入UART_mac_Tx()将数据发往串口;Route_process(),若收到的数据包中PD为1,则通过对路由表进行一系列的处理回送路由信息。

2.1.4 参数在线配置:frame_configuration.c

首先是HaiMingMa_Generat(),对接收到的要求读取的在线配置帧进行海明码的校验,以及回送在线配置帧进行海明码的计算。再是参数在线配置Config_Online(),分为读取模块操作和配置模块操作。其中读取模块后返回的数据与本身FLASH的不太一样,因为有个返回标志位的不同导致了整个校验位的不同。配置模块操作更复杂一点,因为要根据配置的参数来设置无线参数。

2.1.5 无线参数配置:ppPhy.c和ppPhy_const.c

關于无线参数初始化、无线收发以及寄存器的读写操作等,还有初始化的常数值。

2.1.6 全局变量:global_val.c

整个程序定义的全局变量。

2.2 串口收发

只要是使用无线通信来和外界联系,首先想到的就是UART,它是一种很常用的通讯方式,所有的处理器、控制器上,基本都带有UART功能;只要是实现UART的收发功能,必不可少的要做波特率发生器。即利用芯片上的定时器Timer1,根据波特率时钟的计算来做串口的初始化,具体可见函数void UART0_Init (void)。这里串口接收数据用的中断法,利用串口中断服务子程序ISR来完成。如果串口上收到数据,那么会调用中断向量,中断向量把程序指针指到相应的ISR中。对接收到的数据在ISR中进行操作,将接收数据存入UART_mac_Rx()的缓存区,并进入UART_protocol()进行处理,主要是针对串口转换码的问题将串口数据转成无线数据以及对数据长帧进行分包。完成后程序指针会跳回中断前的地方继续进行刚才被中断的事件。同理,要通过串口将数据往上层传送,即进入函数UART_mac_Tx(),同样是针对串口转换码的问题将无线数据转成串口数据,以及对接收的两个数据帧进行拼装组合成一个数据长帧。

RS-232是个人计算机上的异步传输标准接口之一,由电子工业协会所制定。本协议无线模块就通过RS232接口同PC交换报文,为了定义报文边界和流控,定义了几个换码指令,如ESC 01(0x1b 0x01):帧开始标志;ESC 02(0x1b 0x02):帧结束标志,同时作为伪后一帧的开始标志;ESC 05(0x1b 0x05):表示LL-PDU数据中出现了一个“0x1b”,此时串口上数据应为“0x1b 0x1b”。

2.3 无线收发

传感器节点间在无线信道通信的帧格式见表1。

其中帧开始和帧结束是串口转换指令。

目的ID是一个字节的目的地址,其中“0”为空地址,“255”为广播地址。节点从节点从物理层(无线信道)收到数据报文后,首先判断目的ID字段是否为本节点地址或广播地址,如果是,则将数据交由上层协议处理,否则丢弃报文。

Route list是源节点到目的节点经过的路径,设置这一条目是为了方便后面章节的数据信息转发策略测试;“0”表示路径结束。

FT是指数据报文承载的上层协议类型。若为1,表示簇头的声明,此时DATA中的数据为Grid_ID、CH_ID;若为2,则为路由的转发,此时DATA中的数据为源节点承载的任意数据;其他保留。

2.4 参数配置和实验操作

通过串口在线配置模块参数或者读出相应的参数,如频段、网络ID、地址类型、本地地址、目的地址、空中速率以及发射功率等。如表2所示配置帧格式。

操作时,首先完成引脚连接,包括电源、地、RX、TX等引脚;打开串口调试助手或者超级终端对模块进行参数配置;配置成功后串口将会回送FC,如果失败,回送FD,如图2所示。

图2中的数据所示,这是一个基本的默认配置:频段为430M,频点0,地址类型8位,本地ID为0x01,目的ID为0xff表示广播,空中速率50K,发射功率为20dBm。

因通常的无线参数均使用默认配置,其中的频段频点、空中速率、发射功率并不需要频繁改动,本人使用VB做了一个小型的参数在线配置软件,可以直接打开这个软件配置工作频率、网络ID、无线地址以及串口选择,如图3所示。

配置结束可以进行无线数据的采集和收发,如图4所示节点回送汇聚节点信息。

3 结语

本文基于Si1000无线片上系统研究的无线传输模块,为通用透明传输模块,能适应任何标准或非标准的用户协议,自动过滤掉空中产生的假数据,实现所收即所发。标准配置支持300MHz到900MHz的各个频段,可设置不同串口波特率,自定义格式,传输超长数据帧,编程灵活,满足多种通信组合方式。实验证明,该模块工作可靠、稳定,具有易扩展性、低功耗等优点,适合户外不方便布线的数据采集和传输,对工业、智能家居等数据采集传输应用具有一定的参考价值。

参考文献

[1]李旭凯,王文娟.基于无线串口模块的文件传输系统设计[J].计算机与网络,2018,(07):62-71.

[2]美国Silicon Labs公司.Si4430-31-32datasheet.2009.

[3]美国Silicon Labs公司.Si100-16-16datasheet.2010.

[4]刘化君,刘传清.物联网技术[M].北京:电子工业出版社,2010:1-50.

[5]陈珺.无线传感网络路由协议的研究与实现[D].南京:南京邮电大学,2013.

Abstract:Due to the defects of high cost and short transmission distance in Wire Communication System, Wireless Communication System has become a current research hotspot. A wireless transmission module based on Si1000 is proposed in this paper. Serial port send and receive software program design,serial port online configuration and wireless send and receive are the emphases of this letter. The results of experiment showed the reliability and stability of this module. The research work provides the reference value for application of wireless data acquisition such as industry agriculture and intelligent home.

Key words:Si1000;wireless transmission;DATA acquisition

相关热词搜索: 模块 无线传输 研究 设计 Si1000

版权所有:无忧范文网 2010-2024 未经授权禁止复制或建立镜像[无忧范文网]所有资源完全免费共享

Powered by 无忧范文网 © All Rights Reserved.。冀ICP备19022856号