目前,物联网(internet of things,iot)正呈现飞速发展的态势。本文介绍一种无线多频段wsn网关,可通过以太网或者移动通信网络,监控多个频段的无线传感器子网节点的运行情况。
1 系统总体结构
本文设计的系统在感知层采用4个频段的无线传感器网络节点。各频段子网通过一个多频段网关装置接入到网络层。用户可以通过监控终端监控现场数据,监控终端既可以是固定的pc机,也可以是移动的3g设备。同时,网关还具备良好的扩展性,网关可以同时接入多个频段的wsn网络。多频段wsn网关系统结构框图如图1所示。
图1 多频段wsn网关系统结构框图
2 网关硬件系统设计
网关的主控制单元采用arm9芯片s3c2440a,主频400 mhz,外扩64 mb sdram、64 mb nand flash。微处理器的外设数据控制器(pdc)向串行外设提供dma通道,使其与片内以及片外存储器读写传输数据时不经过处理器。
网关3g网络接入端采用usb接口,实现与3g网络的通信;无线传感器网络子网接入端分别是2.4 ghz子网接入模块、780 mhz子网接入模块、470 mhz子网接入模块和433 mhz子网接入模块,各子网模块都是通过串口实现与网关主控制单元的通信。以太网控制部分整个网关的结构框图如图2所示。
图2 以太网控制部分整个网关的结构框图
2.1 多频段无线传感网子网接入部分
由于s3c2440a芯片自身只有3通道的串口。而4个频段的子网接入模块都是采用串行通信接口,arm9芯片本身不能满足本系统需求,所以需要利用外围扩展芯片,设计串口扩展电路来满足系统的需求。本设计采用ti公司的tl16c554a芯片,通过并行数据线和地址线扩展出来4路全功能串口。
tl16c554a芯片是8位数据宽度,tl16c554a的d0~d7引脚与arm9芯片直接相连,读写信号是直接连接的。tl16c554a的引脚ina、intb、intc、intd分别接在主控制芯片的引脚int0、int2、int3、int4,这样扩展的各通道串口就能通过中断独立地工作。
将s3c2440a的地址线a0~a3与tl16c554a的a0~a3直接相连,s3c2440a的ngcs2作为译码器74ls139的片选信号。74ls139的输入端分别接地址线a4~a5。根据译码器译码,实现地址分配,再通过arm芯片地址映射。外扩的4通道串口的物理地址为
通道a——0x10000000~0x10000008
通道b——0x10000010~0x10000018
通道c——0x10000020~0x100000028
通道d——0x10000030~0x10000038。
主控制芯片通过访问这些地址就能访问外部寄存器,即tl16c554a芯片片内寄存器地址。多频段子网接入部分接口电路如图3所示。
图3 多频段子网接入部分接口电路
2.2 3g网络接入接口部分
3g网络接入部分采用usb接口的华为et128无线网卡。接入接口使用usb—hub芯片au9254a21,它是一款单芯片usb集线器控制器。au92 54a21采用12mhz无源晶振,为芯片工作提供独立的时钟。3g网络接入部分接口电路如图4所示。
图4 3g网络接入部分接口电路
2.3 以太网接入部分
网关通过以太网口发送数据包的原理是:处理器先将待发送的数据存入到内部存储器,提供发送缓冲区的首地址和数据长度,然后执行发送命令,由dm9000a将数据按tcp/ip协议格式发送到物理链路上。
因以太网信号电平与以太网控制器信号电平不同,所以在硬件电路实现上需要在控制器与rj-45接口间增加一个网络变压器,网络变压器采用trc9016。电信号通过网络变压器转换,然后经rj-45接口接入以太网,从而完成数据发送过程。dm9000a主要完成数据包和数字电信号之间的相互转换。
3 网关软件系统设计
网关的软件环境采用的是嵌入式linux系统。移植好的linux2.6.24源码已经包含了以太网控制器dm9000a、usb接口芯片等芯片的驱动。因此,软件部分只需要设计串口扩展芯片tl1 6c554a的驱动程序以及linux环境下的应用程序即可。
3.1 串口扩展芯片tl16c554a驱动的实现
linux2.6.24内核提供了统一的设备驱动模型。多串口设备驱动的注册,流程如图5所示。
3.2 linux下ppp的管理和配置
根据网关硬件接口的情况修改、移植通用驱动代码后,通过相关的配置,定制和编译网关所需的内核映像文件。内核编译采用的交叉编译器版本为arm- linux-gcc3.4.1,使用makemenuconfig arch=arm命令进入内核配置图形化界面,选择和ppp(point-to-point,点对点协议)有关的选项,添加系统对ppp功能的支持。界面如图6所示。配置完成以后,保存设置,退出内核配置图形化界面。使用命令:makeuimage arch=arm cross_compile=arm-linux-.编译完成以后,会在源码包的arch/arm/boot路径下生成内核映像文件uimage,如图7 所示。
3.3 嵌入式linux网络编程
本设计中通过td—scdma网络接入internet。wsn子网的某一节点在上电后,网关分配给其一个1 6位的短地址,使其在子网中标识自己,然后周期性地发送其采集到的数据。网关收到传感器节点传送过来的数据之后,进行ieee 802.15.4协议与以太网协议的转换,为了向网络设备提供透明的接口和区分串口数据的来源,需要制定统一的数据帧格式,所以协议转换后加上slip的帧头,通过串口设备发送给arm。
arm在解析了slip帧头之后交给上层以及mac层,解析以太网头,然后上交给适配层,适配层将对完整的ipv6数据进行压缩或者分片。数据在 ipv6层根据邻居发现,找到要发送的网络,并且进行路由转发,经过在mac层加上相应的mac头后,经td模块发送到td—scdma通信网。这样,从子网到td网络的数据转发结束。
3.3.1 ppp协议简介
ppp是一种提供两个实体之间数据包传输的链路连接设计的链路层协议。这种链路具有全双工操作、实现流量和差错控制等功能,并按照顺序传递数据包。可以通过拨号或者专线方式,让客户端和服务端建立起一种点对点的连接,传递数据。
3.3.2 建立拨号连接
在linux系统中,通过ppp可以将主机与一个ppp服务器连接并进入该服务器所连接的网络资源,就好像直接连上那个网络一样。建立一个ppp连接上网主要有以下步骤:第一步是调用会话程序。然后会话程序通过发送at指令给3g模块,完成拨号、身份验证、配置等工作。最后,客户端的pppd程序与服务器端的pppd程序进行握手,建立好连接,相互传递数据。多频段网关建立网络连接流程图如图8所示。
3.4 应用程序的设计
由于数据来源于4个频段子网汇聚节点的串口,因此网关的应用程序采集多频段子网汇聚节点数据部分设计上采用linux系统中的多设备读取机制select(i/o多工机制)来实现对多个串口的监听。多串口采集数据的流程如图9所示。
图9 多串口采集数据的流程图
4 实例测试
图10为ppp拨号成功后超级终端显示的linux系统信息截图,拨号目标上位机地址是222.182.101.220,从图中可以看出,ppp拨号成功,并且获得了td网络分配的ipv4地址10.81.185.15,远程服务器ip为192.200.1.21。
图10 ppp拨号成功后超级终端显示的linux系统信息截图
结语
随着物联网时代,td—scdma将促进物联网有效发挥无缝通信的巨大威力,该方案充分利用了互联网和无线通信公用网络资源,将无线传感网技术、嵌入式技术、td—scdma通信有机地结合起来,成功设计了wsn/td网关,实现了无线传感网与td—scdma网络的融合,在实际应用当中取得了良好的效果。
做好智能家居必须具备哪一些因素
人工智能的前景怎么样
RT-Thread学习笔记分享
工业级压力变送器的主要作用
农药残留快速测试仪的作用是什么
基于Linux内核的无线多频段WSN网关设计
人工智能与人类语言重点实验室的正式成立举行了揭牌仪式
农业大棚土壤氮磷钾测定仪的特点
2030年L3-5级自动驾驶重卡渗透率有望达到20%
解析生产连接器常用的塑胶材质
面向余热回收的金刚石纳米流体重力热管强化传热研究
采用蓝牙技术的北斗终端通信模块的设计
智能试衣镜结合VR捕捉技术,打造更舒心的购物体验
雷军对未来中国制造业的四大看点
初创公司的新X-NAND技术在芯片级别提高了并行度
RFID标签怎样实现智能管理
盈方微:终止收购华信科49%股权及World Style 49%股权
华为持续创新助力应急管理现代化
一个完整锂离子电池的原材料配比
制冷机组主要组成部分及制冷原理