历史上的今天
返回首页

历史上的今天

今天是:2025年02月05日(星期三)

正在发生

2018年02月05日 | 基于嵌入式Linux无线多频段WSN网关设计

2018-02-05 来源:eefocus

    本文针对目前物联网感知层无线通信协议种类众多、组网方式多样的问题,本文采用32位ARM920T芯片S3C2440A,移植Linux2.6.24内核,结合3G网络和以太网设计了一种多频段网关。通过以太网或者移动通信网络,各频段网关监控了多个频段的无线传感器子网节点的运行情况。

    目前,物联网(Internet of Things,IOT)正呈现飞速发展的态势。本文介绍一种无线多频段WSN网关,可通过以太网或者移动通信网络,监控多个频段的无线传感器子网节点的运行情况。

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

a.JPG

    

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

多频道WSN网关硬件结构框图

    图2 多频道WSN网关硬件结构框图

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

c.JPG

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

d.JPG

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

e.JPG

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

f.JPG

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

g.JPG

    
3.4 应用程序的设计
    由于数据来源于4个频段子网汇聚节点的串口,因此网关的应用程序采集多频段子网汇聚节点数据部分设计上采用Linux系统中的多设备读取机制select(I/O多工机制)来实现对多个串口的监听。多串口采集数据的流程如图9所示。

h.JPG

 图9 多串口采集数据的流程图

  4 实例测试

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

i.JPG

图10 PPP拨号成功后超级终端显示的Linux系统信息截图


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

    结语

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


推荐阅读

史海拾趣

Cableform Inc公司的发展小趣事

Cableform Inc公司起源于一位名叫约翰·卡贝尔的电气工程师的创意。在20世纪中期,约翰看到了电子工业的巨大潜力,特别是在电磁控制领域。于是,在1945年,他创立了Cableform Inc,专注于研发和生产电磁控制设备。起初,公司只有几名员工,面临着资金短缺和技术挑战。然而,约翰凭借着对技术的执着和对市场的敏锐洞察,成功设计出了一款具有竞争力的磁铁控制器,为公司的发展奠定了基石。

Embedded Artists公司的发展小趣事

Embedded Artists公司成立于2000年,创始人是一群热衷于嵌入式技术的瑞典工程师。他们看到了嵌入式技术在未来电子产品中的巨大潜力,决定成立一家公司,专注于基于恩智浦处理器的嵌入式解决方案的研发和生产。公司初期面临资金紧张、市场认可度不高等挑战,但他们凭借对技术的热情和不懈的努力,逐渐在行业中树立了口碑。

Gennum ( Semtech )公司的发展小趣事
作为输入设备,用于触发电路的不同状态。
Highland Electronics Co Ltd公司的发展小趣事

High Tech Chips Inc成立之初,便专注于研发高性能的AI芯片。在公司创始人李博士的带领下,团队突破了传统芯片设计的瓶颈,开发出了一款具有超低功耗和高效能比的AI加速器芯片。这款芯片迅速获得了市场的认可,被广泛应用于智能手机、智能家居和自动驾驶等领域。随着技术的不断迭代和产品的持续优化,High Tech Chips Inc逐渐在AI芯片市场占据了一席之地,并成为了行业内的技术领先者。

Asian Best Components Co Ltd公司的发展小趣事

Asian Best Components Co Ltd在电子行业的初期,凭借一支富有创新精神的技术团队,成功研发出了一款高效能的电子元件。这款产品以其稳定性和高性价比迅速在市场上占据了一席之地。公司借此契机,不断扩大生产规模,提升产品质量,逐渐在电子元件领域建立了良好的口碑。随着技术的不断进步,Asian Best不断推陈出新,陆续开发出多款领先行业的产品,为公司的发展奠定了坚实的基础。

EETools公司的发展小趣事

面对快速变化的市场环境和不断涌现的新技术,EETools始终保持开放和创新的姿态。公司不仅持续关注行业动态和技术趋势,还积极探索新的业务领域和增长点。例如,EETools正在研发基于人工智能和物联网技术的嵌入式开发工具,以满足未来市场的需求。同时,公司还计划进一步拓展海外市场,提升品牌在国际市场的竞争力。这些举措将为EETools的未来发展奠定坚实的基础。

问答坊 | AI 解惑

电路图

这是电路图…

查看全部问答>

27倍自动聚焦的大炮筒,有没有单独的控制线?

27倍自动聚焦的大炮筒,有没有单独的控制线?…

查看全部问答>

sqlce3.5

1、智能设备平台WM6.5、PC编程VS2008 C# 2.运行我我自己的应用软件时提示:报错: mobileClient.exe 中发生错误。 请选择“退出”然后重新启动此程序,或选择“详细信息”以了解详细信息。 找不到文件或程序集名称“System.Data.SqlServerCe, ...…

查看全部问答>

vxworks 添加104扩展板卡驱动

大家好,我需要把胜博PC104的两块扩展卡添加到系统中,一块为ADT882,一块为ADT900,其都有驱动,并且告诉了安装过程,如下: adt900 安装步骤 1)、把cdt900.o文件拷贝到$(WIND_BASE)/target/lib/objPENTIUMgnuvx目录中; 2)、在您的VxWorksW ...…

查看全部问答>

三相电机如何改装成单相电机,接什么样的电容,容量多大

三相电机如何改装成单相电机,接什么样的电容,容量多大…

查看全部问答>

用busybox做的文件系统为什么dev下没有文件啊

包括什么ttyS0,console等等,什么都没有 怎样修改才能添加呢 另外etc文件夹下也什么文件都没有,不知怎么一回事 内核是2.6的 谢谢…

查看全部问答>

我的电脑变ipd了

DIY ipd 好久没来eeworld了,挺想念的。 最近读研不怎么玩硬件了,只能编编程,快过年了想做出个什么东西来eeworld秀秀,O(∩_∩)O哈哈~ http://v.youku.com/v_show/id_XMjQwODc3Njc2.html 这是我这几天做的,哈哈。硬件很简单,主要是matlab编 ...…

查看全部问答>

430

430的低功耗在手持通信设备上非常实用!…

查看全部问答>

求助搞研发的各位大师

大家好,麻烦问一下各位,开发的时候一些元器件,比如继电器,各种接插件,上哪找datasheet去??多谢了估计问题太弱了。。…

查看全部问答>

PIC16F73

#include<pic.h> void main(void){ ADCON1 = 0x06  PORTA  = 0x00; TRISA  = 0x00;PORTA =0x0F; while(1)   {    }}用得编译工具是MPLAB,配置为MPLAB自带的configuration bits 当 ...…

查看全部问答>