基于Linux内核的无线多频段WSN网关设计

欢迎进入IT技术社区论坛,与200万技术人员互动交流 >>进入

目前,物联网(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网络的数据转发结束。

[1][2]

相信人生有挫折没有失败,相信生命的质量来自决不妥协的信念。

基于Linux内核的无线多频段WSN网关设计

相关文章:

你感兴趣的文章:

标签云: