基于Linux2.6.24内核的WSN多频段网关设计

发布者:trendsetter10最新更新时间:2013-05-10 来源: 电子设计工程 关键字:物联网  网关  Linux  点到点协议 手机看文章 扫描二维码
随时随地手机看文章
引言
    目前,物联网(Internet of Things,IOT)正呈现飞速发展的态势。本文介绍一种无线多频段WSN网关,可通过以太网或者移动通信网络,监控多个频段的无线传感器子网节点的运行情况。

1 系统总体结构
   
本文设计的系统在感知层采用4个频段的无线传感器网络节点。各频段子网通过一个多频段网关装置接入到网络层。用户可以通过监控终端监控现场数据,监控终端既可以是固定的PC机,也可以是移动的3G设备。同时,网关还具备良好的扩展性,网关可以同时接入多个频段的WSN网络。多频段WSN网关系统结构框图如图1所示。



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.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所示。

[page]

2.2 3G网络接入接口部分
   
3G网络接入部分采用USB接口的华为ET128无线网卡。接入接口使用USB—HUB芯片AU9254A21,它是一款单芯片USB集线器控制器。AU92 54A21采用12MHz无源晶振,为芯片工作提供独立的时钟。3G网络接入部分接口电路如图4所示。


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所示。

[page]

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所示。



4 实例测试
   
图10为PPP拨号成功后超级终端显示的Linux系统信息截图,拨号目标上位机地址是222.182.101.220,从图中可以看出,PPP拨号成功,并且获得了TD网络分配的IPv4地址10.81.185.15,远程服务器IP为192.200.1.21。


    网数据信息图略——编者注。WSN子网数据信息通过网关发送到公网后,TCP/UDP客户端成功接收显示的WSN子网数据信息。

结语
   
随着物联网时代,TD—SCDMA将促进物联网有效发挥无缝通信的巨大威力,该方案充分利用了互联网和无线通信公用网络资源,将无线传感网技术、嵌入式技术、TD—SCDMA通信有机地结合起来,成功设计了WSN/TD网关,实现了无线传感网与TD—SCDMA网络的融合,在实际应用当中取得了良好的效果。

关键字:物联网  网关  Linux  点到点协议 引用地址:基于Linux2.6.24内核的WSN多频段网关设计

上一篇:主动式太阳能追日系统设计
下一篇:基于IPv6的无线传感器网络关键技术研究

推荐阅读最新更新时间:2024-05-02 22:39

ARM谈物联网战略:提供所有处理器!
ARM公司于2013年12月6日在东京举办了内部活动,该公司在该活动前一天于东京都内召开了记者发布会。来自英国总部的两名高管和ARM日本公司的代表董事社长内海弦出席了此次发布会。   来自英国总部的两名高管是Antonio J. Viana(商业及全球市场开发执行副总裁)和Ian Ferguson(细分市场营销副总裁)。首先登台的Viana介绍了物联网(IoT)在今后将带来的冲击。他表示,所有事物连接在一起的IoT 不仅会改变企业的业务,还会改变人们的生活。但另一方面,IoT也面临着很多课题,其中之一就是通过IoT实现的整个系统的能耗。他指出,ARM处理器内核的特点是功耗低,在能耗方面的贡献会很大。   Ferguson则介绍
[模拟电子]
OK6410A 开发板 (八) 11 linux-5.11 OK6410A start_kernel 打印角度 第一阶段 mem
该阶段完成了 1. 根据 memblock 的 reserved 成员 reserve 不需要填充的页表 // reserve_bootmem_region 2. 通过 在 全物理内存内 互补 memblock 的 reserved,得到未使用的物理内存,填充需要填充的页表 // __free_memory_core 3. 至此 , buddy 初始化完成 4. 用(内存地址,内存大小,申请块大小)填充 kmalloc_caches )] )] 5. 至此 , slab 初始化完成 6. 将 在vmalloc区间的 已经使用的虚拟内存地址A(主要是io设备) 注册到 vmap_area_root 7. 通过
[单片机]
新版Linux的未来革命
Google的Ara手机梦碎了,但就像是一粒麦子死了,落到Linux的肥沃开源土壤里,未来一定能开出一片颠覆世界的新麦田 今年9月,传出了一个令开发者扼腕不已的消息,Google新成立的硬体部门副总裁Rick Osterloh以集中资源为由,终止了Google发展3年的模组化手机Ara专案。这是一个源自Motorola 在2013年10月发表的手机DIY计画,要打造一个可以让使用者自己任意组合显示器、电池、处理器和摄影机元件的硬体架构。 2014年Google将摩托罗拉手机业务卖给联想时,还特地留下了这个计画,准备大展身手,举办了一系列开发活动,甚至隔年在波多黎各展开试卖,今年Google I/O大会最后一天,Google还宣布
[手机便携]
ARM Linux异常处理之data abort
1 异常向量与程序跳转 data abort是ARM体系定义的异常之一。异常发生时,ARM会自动跳转到异常向量表中,通过向量表中的跳转命令跳转到相应的异常处理中去。 ARM的异常处理向量表在entry-armv.S文件中: .globl __vectors_start __vectors_start: swi SYS_ERROR0 b vector_und + stubs_offset ldr pc, .LCvswi + stubs_offset b vector_pabt + stubs_offset b vector_dabt + stubs_offset b
[单片机]
罗德与施瓦茨发布 NGL200电源系列
得益于其高精度和快速负载恢复时间,R&S NGL200系列电源完美适用于移动通信与物联网(IoT)中具有挑战性的应用。该产品的双象限架构允许其同时作为源和接收器工作。快速恢复时间使其能够处理快速的负载变化,比如当设备从休眠模式切换到传输模式时。 慕尼黑——罗德与施瓦茨发布NGL200电源系列,专门针对移动通信和物联网领域的用户。单通道R&S®NGL201和双通道R&S®NGL202每通道输出功率高达60 W。输出通道具有浮动、隔离、过载保护和短路保护特性。该电源可以以受控方式吸收功率,使其能够模拟电池的特性。该系列还通过电容式触摸屏和高分辨率大屏幕设置了新的标准。优化的用户界面特别直观,温控风扇确保其工作时非常安静。强大
[电源管理]
罗德与施瓦茨发布 NGL200电源系列
M2.COM:研华和TI共同推广IoT无线“感•传”平台新标准
全球智能系统(Intelligent Systems)领导厂商 研华 公司(股票代号:2395)于2月24日纽伦堡嵌入式电子与工业计算机应用展 (Embedded World) 举办IoT无线“感•传”平台标准—— M2.COM 发表会,会中将邀请传感器、无线通信与系统制造商等产业界领导者- ARM、Bosch、Sensirion以及TI共同参与,携手推广M2.COM平台标准,拓展无缝的 物联网传感器 发展蓝图。   研华嵌入式事业群副总经理张家豪指出:“面对未来与时俱进的工业物联网需求,目前最迫切需要解决的问题就是如何快速且精准地撷取数据,这需要具备传感接入、无线传输技术与嵌入式运算等三种核心能力,因此研华与产业伙伴们携手一同
[嵌入式]
中国物联网领先全球:诺基亚贝尔助力其应对安全挑战
  10月9日消息,在2017年中国国际信息通信展览会上, 物联网 无疑是展会的亮点之一。运营商、设备商等均在展台展示了自己的 物联网 技术与解决方案。下面就随网络通信小编一起来了解一下相关内容吧。   在上海 诺基亚 贝尔(以下简称“ 诺基亚 贝尔”)展台上, 诺基亚 贝尔重点展示了 物联网 在各行各业的应用。其中,既有面向公共事业领域的“智慧城市魔方”、“物联网边缘智能解决方案”、“智慧家庭”及“公共安全”等应用演示,面向交通的“冷链管理”、和面向广电的“广电700M整体方案”演示,还有基于诺基亚Netguard和Deepfield平台的“网络安全”、“环境数据运营服务”以及“云数据中心集成与运维”等面向互联网领域的解决方案
[网络通信]
OK6410A 开发板 (八) 73 linux-5.11 OK6410A linux 内核同步机制 互斥锁的实现
解决的问题是什么 所有异常原因 限制是什么 加锁函数会引起睡眠,所以不能... 实现 / https://elixir.bootlin.com/linux/v4.0/source/kernel/locking/mutex.c#L95 /* 我们将互斥锁/解锁逻辑分为单独的fastpath和slowpath函数,以减少fastpath上的寄存器压力。 我们还将fastpath放在内核映像的第一位,以确保CPU将分支预测为默认的untaken。 */ __visible void __sched __mutex_lock_slowpath(atomic_t *lock_count); /* 为此任务专门锁定互斥锁。 如果互
[单片机]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved