基于ARM 处理器的低成本网关硬件设计

2018-02-09 22:13:25编辑:什么鱼 关键字:ARM  处理器  低成本网关

    随着物联网技术的飞速发展,将传统的Internet与新型的无线传感器网络整合的趋势越来越明显,嵌入式服务网关既是无线传感器网络的协调器网关,又是远程WEB 的服务器,它实现两个不同协议的网络之间的通信。同时也是将无线传感器网络接入Internet,从而实现物联网概念的关键设备。物联网服务网关在未来的物联网时代将会扮演非常重要的角色,它将成为连接物联网感知层网络与传统通信网络的纽带。物联网网关可实现感知网络和基础网络以及不同类型的感知网络之间的协议转换,既可以实现广域互联,也可以实现局域互联。并且具有广泛的感知网接入、通信协议转换和强大的系统管理等特点[1]。利用嵌入式系统设计的服务网关可以有效降低成本,利用家庭智能化的普及。

 

    1 系统总体结构设计

    系统的总体结构如图1 所示。在远端的移动智能终端或电脑通过Internet 访问到无线传感器网络,而嵌入式WEB 服务器提供了交互式的页面访问。如果访问数据量大或者需要对数据有统计、分析及处理,那么需要建立网页服务器和数据库服务器 [2]。在物联网框架下的智能家居是一个复杂的系统,需要多人合作完成,如Internet 数据库服务器的设计、建立感知层网络。文中重点介绍服务网关的设计,包括嵌入式WEB、近程终端、WSN 协调器3个部分所组成的一体化终端。它是两个异构网之间的桥梁,起着重要的衔接作用[3]。

     

     

图1 系统总体框

    2 系统硬件设计

    本设计中智能家居系统的硬件由3 部分组成:服务网关、终端节点和路由节点。

    (1)服务网关

    服务网关硬件框图如图2 所示。由ARM 主控制器、Zigbee 模块、以太网PHY、TFT-LCD 液晶触

    摸屏、及最小系统模块5 部分组成。

     

     

图2 服务网关硬件框

    主控制器采用基于ARM(Cotex-M3) 核的STM32F107 互联型微控制器。它拥有64K SRAM、

    256K FLASH、以太网MAC 等丰富的存储器及外设资源。Zigbee 模块是由TI 公司的CC2430 作为主控芯片,在服务网关中它是WSN 的协调器,通过USART 实现与主控制器之间的数据通信。以太网模块采用以太网的物理层芯片DM9161A,通过RMII与主控制器相连接,其50M 时钟由ARM 的MCO提供。液晶触摸屏通过I/O 接口与ARM 相连,实现人机对话。


    (2)终端节点与路由节点

    传感器节点是组成传感网的最基本单元,主要有射频通信模块和传感器数据采集模块组成。终端

    节点与路由节点的硬件一样,不同之处主要表现在软件上。

    终端节点硬件图如图3 所示。根据CC2430 的特点,它是一款集Zigbee 协议栈、RF 射频模块以


    及增强型51 核于一身的SOPC,可以满足对数字或模拟传感器模块收集的数据处理及在WSN 中的通传输任务。

     

     

图3 终端节点硬件框

    3 系统软件设计

    系统软件分为运行于ARM 上的服务网关软件和运行于CC2430 模块上的WSN 网关软件。考虑到服务网关软件的总体设计的复杂程度以及层次性模块化的设计理念,系统采用嵌入式操作系统uCOS-II 作为系统资源的管理,对系统功能任务化。服务网关软件总体设计框图如图4 所示。

     

图4 服务网关总体设计框

    3.1 服务网关软件层次结构

    服务网关软件层次结构分为:底层驱动层,系统层,应用层。

    (1)底层驱动层

    底层驱动层包括FWLib 和BSP。FWLib 是ST公司为了对其ARM 的支持而推出的驱动支持软件,

    提供系统初始化函数,对中断和操作系统的支持,存储器分配以及所有片内外设的驱动,从而方便软件的开发。此外,用户还应开发针对应用的板级支持包(BSP),在本系统中BSP 的内容主要是应用开发板相关的硬件驱动。

    (2)系统层

    系统层包括了操作系统和中间件软件LwIP,操作系统是对软硬件资源的管理,其他各部分软件都

    要以操作系统为中心。操作系统移植的过程中,主要任务是改写针对处理器和编译器相关的部分,向上为应用任务提供支持,向下连接驱动程序来实现对硬件的操作[4]。LwIP 是一个针对嵌入式系统的TCP/IP 协议栈,本程序包含其基本功能:TCP、IP、UDP、ICMP。LwIP 的操作系统模拟层提供了向操作系统移植的方便,因其包括了任务间通信的机制:信号量、消息邮箱。

    (3)应用层

    本设计根据模块化和功能独立性原则,将所有的应用程序分成7 个应用任务,分别是引领全局的

    根任务,与输入输出有关的按键任务和LCD 显示任务,与嵌入式WEB 相关的TCP 发送任务和TCP 超时重传任务,与WSN 协调器相关的串口数据发送任务和Zigbee 控制命令任务。


    3.2 软件设计流程

    软件设计流程分为服务网关根任务软件设计流程和WSN 网关软件设计流程。

    (1)服务网关根任务软件设计流程

    操作系统环境中,每个任务都是无限循环的相对独立的功能模块,通常都会有一个根任务,它应

    该被设定该系统的核心功能业务。如图5 为根任务程序流图,首先板级初始化是对硬件的抽象和封装,为应用程序提供更友好的接口。然后创建其余6 个应用任务,创建格式与创建开始任务类似。最后程序进入WEB 服务主循环程序,为了让别的优先级低的任务能够执行,必须调用任务挂起函数。

图5 根任务流程

    (2)WSN 网关软件设计流程

    WSN 网关也叫WSN 协调器,它是整个传感器网络的总控制中心和数据采集的汇聚点,无线传感

    器节点分布在其覆盖范围内[5]。传感网网关的软件流图如图6 所示。程序开始建立Zigbee 网络,此时网络中没有其他节点。然后进入无线监控程序,查找是否有请求加入网络的信号产生,若有新节点信号申请则根据信号类型添加入网并分配网络号,若不是新节点,则判定节点传输的数据有效性,有效则接收并发送到ARM 网关,否则丢弃。

网关软件流程

    4 结语

    文中系统地讨论了物联网服务网关这一项基于物联网应用的关键性技术[6-7],结合家庭自动化进行应用设计。在硬件方面,按照嵌入式板级硬件设计流程,设计并实现了一种基于ARM 处理器的低成本网关硬件。软件设计上采用自顶向下和分层的设计方法,结合网关硬件,利用嵌入式操作系统uCOS-II 和协议栈LwIP,搭建了一个应用开发平台,为应用软件的开发提供了良好的软件环境。


关键字:ARM  处理器  低成本网关

来源: eefocus 引用地址:http://www.eeworld.com.cn/mcu/article_2018020937727.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:基于ARM 的来电号码显示器的实现方法
下一篇:基于ARM处理器的嵌入式系统设计

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

ARM学习之中断体系结构

CPU的“青睐”。还有一个皇后级别的中断源,叫做快速中断源。她比较牛X,只要请求,CPU就会“临幸”。(好似宫斗剧啊)。3.当发生中断后,具体我们该如何编程呢? 答:当一个异常发生时,这时ARM 的CPU将自动完成如下事情(要记住,是自动): (1)、lr寄存器保存目前指令的下一条指令地址。一般是(PC+4或PC+8) (2)、将CPSR的值复制到SPSR。 (3)、将CPSR的工作模式位设置为异常对应的工作模式。 (4)、转去执行此异常对应的向量表中的相应指令(并不只是中断处理函数)。对于我们来说,我们需要在异常向量表对应的地址处完成以下事情: (1)、保存运行的环境
发表于 2018-07-21 12:21:44

ARM学习之内存管理单元(MMU)

与映射表的一种机制(专业上叫页表)。虚拟地址到物理地址的映射。简单来说,CPU发出的虚拟地址,MMU通过查询这种映射表把这种虚拟地址转化为物理地址。在ARM体系中,用的有段(一级页表)、大页、小页、极小页(二级页表)等页表类型。4.运行地址和加载地址分别是什么意思,有什么区别? 答:在ARM中,当程序被烧写到FLASH中,用的就是加载地址。是烧写到FLASH中的某地址上。当程序运行时,程序所处的地址就是运行地址,也叫做链接地址。在烧写ARM裸板程序时,如果在链接时,不指定链接地址的话,程序的加载地址就是链接地址。当指定了某段的链接地址时,运行到此段时,此段必须处在所指定的链接地址上,否则可能会出现程序崩溃(其实,如果指定段中
发表于 2018-07-21 12:21:03

ARM学习之Nand FLash控制器

今天学习了Nand Flash的一些内容。在此做下回忆和总结:1.什么是Nand Flash? 答:Nand FLash是一种非易失性的存储性介质,一般用于保存嵌入式系统运行所必需的操作系统、应用程序、用户数据等,地位和PC上的硬盘类似。一般来说,它的接口引脚不像SDRAM那样多(SDRAM有20多根),一般也就是十几根。以三星公司的K9F1208U0M为例,如下所示。 正因为它的数据引脚较少,所以它的命令、地址、数据都是公用这一组IO引脚再配上ALE、CLE等其他使能信号进行传输的。操作Nand Flash(读、写、擦除)也和简单,基本上是按照传输命令、传输地址、最后读写数据这样一个流程实现的。这些命令在具体的
发表于 2018-07-21 12:19:08

ARM学习之时钟体系结构

今天在宿舍学习的是S3C2440的系统时钟体系,这部分的难点不是很多,所以相对来说轻松点,但还是把感悟记录下来吧。1.S3C2440的的时钟体系有哪些?它们分别有什么作用? 答:以前一直有个小疑问,你说,这CPU运行那么快,外部的设备运行的就比较慢,那它们的时钟源怎么匹配呢?哦,今天算是差不多弄清楚了。因为它们有不同的时钟源。就S3C2440来说, 它有三种时钟源: (1)FCLK:用于CPU核。 (2)HCLK:用于AHB总线上的设备,比如CPU核存储器控制器、中断控制器、LCD控制器、DMA和USB主机模块等高性能的设备。 (3)PCLK:用于APB总线上的设备,比如WATCHD
发表于 2018-07-21 12:00:45

ARM裸机程序开发——按键控制LED灯

这几天将TQ2440上的IO控制引脚学习了一下,了解了一下关于引脚的一些寄存器的配置,熟悉了一下写ARM裸机程序的流程,写一下自己学到的东西。★程序启动初始化◇关闭看门狗有一个专门的寄存器来控制看门狗,看门狗的作用就是在一定的时间内会重新启动系统,这里我们只是写一个简单的逻辑程序用不到看门狗 ,将其关掉。设置WTCON寄存器,将其第5位置0,就可以禁用看门狗◇设置栈指针C语言中设置的变量,以及调用的函数等信息都会被存放在栈中,因此栈指针必须要设置◇调用main函数main函数中设置了关于IO寄存器的一些设置操作★TQ2440硬件相关硬件主要涉及到LED灯与GPIO,按键与GPIO之间的连接◇LED灯硬件   
发表于 2018-07-21 11:48:01

浅谈:如何基于国产CPU的云平台构建容器管理平台

,哇!阿里的!据工作人员介绍目前已有业务系统运行在基于华芯通CPU的云平台上,云平台就是ZStack。热心的工作人员带我去华芯通的专柜进行详细参观。看到实物那一刻,颠覆了我的想法,这个跟x86架构的服务器没什么区别啊!一直以为他是一个类似路由器这样的小盒子。没想到ARM服务器工艺已和x86服务器自造工艺无太大区别。国产云平台 ZStack作为国内为数不多的自研云平台,根据官网信息已发布基于国产CPU架构的版本,那么完全可以实现基于国产CPU架构来构建国产云平台。这架构图摘自他们的产品白皮书,从架构上看整个逻辑还是比较清晰,各组件依赖度并不高,不会因为管理控制节点故障而影响业务系统。经过仔细研究ZStack架构发现以下特点:全异
发表于 2018-07-16 10:43:01
浅谈:如何基于国产CPU的云平台构建容器管理平台

小广播

何立民专栏

单片机及嵌入式宝典

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

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved