基于ZigBee的无线串口集线器的研究与设计_lanjunlee的博客-程序员秘密

技术标签: ZigBee  arm9开发  网络  嵌入式操作系统  linux  linux内核  存储  嵌入式  

摘  要:文章设计了在ARM(Advanced RISC Machines)微处理器上基于ZigBee无线通信协议的无线串口集线器。首先提出基于ZigBee组成无线网络的总体方案,接着给出无线串口集线器的硬件设计和软件设计实现方法,最后分析了无线串口集线器的实际应用。
关键词:ZigBee;ARM;串口集线器

1 引言

随着21世纪科学技术的不断进步,无线与移动通信相应得到了迅猛的发展。方便快捷的无线接入和无线 互连等新概念和新产品,已逐渐融入人们的工作领域和日常生活中。由于如今对无线频率的大量使用,使无线频率资源日渐匮乏,短距离宽带无线通信技术受到世界许多国家工业界和研究机构的广泛关注。伴随着各种便携式终端通信设备的增加,人们对短距离的无线与移动通信需求也越来越迫切。无处不在的网络世界,使对各种电器设备实行网络化管理已成为必然趋势。目前小范围内如以太网中对终端设备的管理,主要使用有线方式。近来,随着与无线通信相关的新技术如雨后春笋般涌现出来,大量、廉价和高度集成的无线模块的普及,无线联网技术以其安装成本低、使用方便等特点,在一些不便于或需要消除有线连接的场合有了它的用武之地,正在成为家庭网络和工业自动化领域的首选技术。

基于ZigBee[1]的无线串口集线器的研究与设计,将ZigBee连接在ARM微处理器上,并与远端计算机通过以太网进行连接。这个集线器可根据远程监控和控制应用的需求进行优化、扩展,具有简单、可靠、低功耗和低成本等优势,实现对各种电器、各种侦测/监控设备的监督、管理、设备操作和远程控制。

2 无线串口集线器的总体设计

基于ZigBee的无线串口集线器主要由硬件和软件组成,硬件包括电路板、ARM微处理器、存储器、串行接口、并行接口、网口和ZigBee无线通信模块等,软件部分包括操作系统软件(OS)和应用程序。硬件部分是整个系统的物理基础,它提供了软件的运行平台和通信接口,软件部分用于控制系统的运行,并对各种事件进行响应。完成的功能为该设备中操作系统运行正常,外接器件运行正常,通过对ZigBee无线通信模块协议的编写,使ARM微处理器通过ZigBee模块实现对各种电器、侦测/监控设备的无线通信和操作。与远端计算机通过以太网相连,组成一个无线网络,如图1所示。该设备在网络中发挥集线器的功能,具有串行通信接口,并有通讯距离远、抗干扰能力强、组网灵活等优点和特性。采用点对点型或星形拓扑结构,可实现一点对一点及一点对多点之间的串口设备的数据的透明传输,使远端计算机通过此集线器实现对电器设备的远程操控。

图1 基于ZigBee的串口集线器的无线网络示意图

 

3 集线器硬件设计

3.1 ARM微处理器设计

本课题选用ARM9系列的S3C2410微处理器,重在嵌入式ARM板的核心模块的设计,实现程序运行的基本环境,主要由以下几部分组成:(1)存储模块:Flash存储器、SDRAM存储器;(2)对外通信接口模块:包括串行接口、并行接口、网口、JTAG接口、ZigBee无线通信模块;(3)电源和电源管理。如图2所示为硬件系统组成图。www.51kaifa.com

   图2 集线器硬件系统组成图

 

电源模块功能:采用一个低功耗正向电压调节器,要有稳定的输出电流,过流及温度保护的特点。要具有高效率,小封装和低功耗的特点,要适合嵌入式系统的应用。

Flash存储器功能:用来存放用户编写的启动程序,操作系统内核以及应用程序。www.51kaifa.com

SDRAM(Synchronous Dynamic RAM)同步动态存储器功能:使用SDRAM不但能提高系统表现,还能简化设计、提供高速的数据传输。在功能上,需要时钟进行刷新。在系统运行时,所有的程序和数据大部分是在SDRAM中与微处理器和外围设备交互,所以SDRAM的速度对于整个系统的运行速度有着至关重要的影响。

串行接口功能:ARM微处理器通过串行接口与ZigBee无线通信模块相连,进行串行通信和数据传输。

ZigBee模块功能:与电器设备无线通信,负责数据的无线收发。

JTAG接口功能:进行系统硬件、软件、应用程序的测试。www.51kaifa.com

3.2 ZigBee无线通信模块设计

3.2.1 ZigBee协议概述

ZigBee是短距离通信的一种新兴双向无线通信技术。它具有近距离、低复杂度、低功耗、低数据速率、低成本的优点,使用2.4GHz波段。由于采用较低的数据传输速率、较低的工作频段,ZigBee模块在未投入使用的情况定义为低功耗的休眠状态,模块的整体功耗非常低,因此ZigBee技术适合于数据流量较小的情况。相对于现有的各种无线通信技术,如GSM、3G、蓝牙等无线通信技术,ZigBee更简单、功率及费用也更低,能够更好地适用于自动控制和远程控制领域,更好地满足小型廉价设备的无线联网和控制,支持游戏、消费电子、仪器和家庭自动化应用。

3.2.2 ZigBee模块设计

ZigBee无线通信模块[2]在整个集线器设计中也起着举足轻重的作用。ZigBee模块中RF(射频)收发器采用射频收发模块采用UZ2400芯片,微处理器采用8051芯片。RF收发器是ZigBee设备的核心,任何ZigBee设备都要有RF收发器。它与用于广播的普通无线收发器的不同之处在于体积小,功耗低,支持电池供电的设备。它主要进行信号的调制与解调、发送和接收等。微处理器通过SPI总线与RF收发器相连,主要用于处理射频信号、控制和协调各部分器件的工作,通过串口与外部设备之间进行通信。ZigBee模块还包括存储器、晶振、天线、串口等器件。如图3所示:www.51kaifa.com

图3 ZigBee无线通信模块结构图

 

4 软件设计

4.1 操作系统软件设计

软件主要包括操作系统软件和应用程序两部分。集线器ARM9微处理器中ARM BIOS软件完成ARM的初始化、SDRAM设置以及嵌入式Linux的加载,最后控制权交给操作系统Linux,此后系统在Linux的管理下运行应用程序。

ARM9微处理器中,选用嵌入式Linux[3-5]作为操作系统。与其他嵌入式操作系统相比,Linux以其易于移植裁减、内核小、效率高、完整及性能优异的网络模块、源代码开放并有众多的开发者等优越的性能,在嵌入式领域得到广泛的认同。所以采用Linux可使产品研发周期大大缩短。采用ARM9微处理器及嵌入式Linux操作系统可开发出在多媒体及无线通信等方面具有优异性能的无线手持设备。www.51kaifa.com

用嵌入式Linux软件系统进行系统开发,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面等。首先建立交叉编译环境。建好交叉编译环境之后,大致还要做以下五方面的工作:①引导装载程序(BootLoader),能实现系统的快速引导,提供瞬间开机功能。负责将Linux内核加载到内存,并将控制权交给内核初始化程序;②Linux内核(Kernel)的移植与裁减,Linux内核采用模块化的组织结构,通过增减内核模块的方式来增减系统的功能,正确合理的设置内核的功能模块,只编译系统所需功能的代码,来获得更高的运行速度;③装载文件系统(File system)嵌入式系统一般不具备硬盘等大容量存储体,而用Flash为主存储器,其文件系统也具有特殊性;④开发图形用户界面(GUI);⑤选择上层应用程序(Application)。

其中较为重要的是对ZigBee无线通信模块协议的编写。根据硬件条件的需要改写ZigBee协议[6],使系统在最简洁的程序下发挥硬件的最大功能。ZigBee是基于802.15.4标准开发的关于组网、安全和应用软件方面的技术标准。ZigBee协议包括高层应用规范(profile)、汇聚层、网络层、数据链路层和物理层。其中数据链路层和物理层标准由IEEE 802.15.4负责制定,网络层以上由ZigBee联盟制定。IEEE 802.15.4标准于2003年5月制定完成,它满足国际标准化组织(ISO)开放系统互连(OSI)参考模型,主要包括物理层、数据链路层。IEEE 802.15.4协议与其他无线网络相比,突出的优点是:组网能力强,适应面广,可靠性高,节能性好。

相对于其他常见的无线通信标准,ZigBee协议栈具有紧凑而且简单的特点,而且对环境配置要求不高。如图4所示:

 

图4 ZigBee的协议栈模型

 

ZigBee节点加入及脱离网络握手协议的设计为:当某一个ZigBee节点要求加入网络时,只要将自己的信道设置成与集线器中ARM微处理器所使用的信道相同,并提供正确的认证信息,即可请求加入网络。同理,一个ZigBee节点要离开网络,只须向ARM微处理器提出请求即可。一个节点成功地加入或脱离网络,都必须由ARM微处理器控制。因此,集线器中ARM微处理器可以实时掌握网络的所有节点信息。

4.2 应用软件设计

应用软件在系统软件Linux的平台上进行开发。应用软件根据实际需要进行安装,可以广泛应用于工业控制、家庭自动化、医疗护理、智能农业、消费类电子和远程控制等领域。安装不同的应用程序实现对各种智能电器、侦测/监控设备的通信和操控。www.51kaifa.com

5 结束语

本文是利用ARM微处理器和ZigBee模块组成无线串口集线器,进而组成无线网络。基于ZigBee的串口集线器的应用将是大量的。它可以应用于家庭网、楼宇自动化、车载系统、小型办公室等,具有布置美观方便,无须专业人员维护等优点,对未来社会信息化进程将具有深远的意义。Internet的家庭宽带接入和家庭设备共享将成为主流,串口集线器在家庭中将发挥不可替代的作用。另外,基于ZigBee的串口集线器在工农业生产等方面的应用前景也是广阔的,它可以应用于工农业生产中的自动化、网络化和智能化地进行远程设备控制。

 

参考文献:

[1]ZigBee Alliance. Catch the buzz on ZigBee[DB/OL]. http://www. ZigBee. Org/en/resources, 2007-02-11.

[2]丁飞等.ZigBee技术的硬件实现模式分析[J].单片机与嵌入式系统应用,2006,9:51-57.

[3]Kevin Dankwardt. Real-Time and Linux[J].Embedded Linux Journa1,2002,issue7:29-32.

[4]Bate. real-time embedded system[J].Computing & Control Engineering Journal,2002, 13(4): 154-156.

[5]许先斌等.基于ARM9的嵌入式Linux开发流程的研究[J].微计算机信息,2006,22(4):87-89.

[6]任秀丽,于海斌. ZigBee无线通信协议实现技术的研究[J].计算机工程与应用,2007,43(6): 143-145

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lanjunlee/article/details/2814207

智能推荐

谁能教教我怎么学单片机,怎么入门?_张巧龙的博客-程序员秘密

大家好,我是张巧龙,本次分享一篇单片机自学教程。文章较长,建议先收藏后再慢慢品尝,肯定会有收货的!0. 写在最前嵌入式学习路径是一个漫长而又有趣的过程,有趣是随着知识的积累感受的成就感,...

Zepto--v1.2.0_马来大西瓜的博客-程序员秘密

/* Zepto v1.2.0 - zepto event ajax form ie - zeptojs.com/license */(function(global, factory) {  if (typeof define === 'function' && define.amd)    define(function() {      return factory(...

基于分数阶傅里叶变换和相位分析技术的OFDM雷达距离精度增强_飞大圣的博客-程序员秘密

论文笔记:《OFDM Radar Range Accuracy Enhancement Using Fractional Fourier Transformation and Phase Analysis Techniques》

NSIS制作安装包软件_小何在线的博客-程序员秘密

一、简介NSIS 是“Nullsoft 脚本安装系统”(Nullsoft Scriptable Installation System) 的缩写,它是一个Open Source的Windows系统下安装程序制作程序。它提供了安装、卸载、系统设置、文件解压缩等功能。NSIS通过它的脚本语言来描述安装程序的行为和逻辑的,因为它基于脚本文件,所以你可以完全控制你的安装程序的每个部分。它的脚本语言支持变量、函数、字串处理,就像是一个普通的程序语言——但它是为安装程序这类应用所设计的。二、操作步骤1、首先利用Q

DSP开发的一点概念_dsp开发是什么_bearmomo的博客-程序员秘密

SDK:(百度)软件开发工具包(外语首字母缩写:SDK、外语全称:Software Development Kit)一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。软件开发工具包括广义上指辅助开发某一类软件的相关文档、范例和工具的集合。软件开发工具包是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发

Java——super关键字_supur关键字属于哪一块_BerglingYY的博客-程序员秘密

1、super是关键字,全部小写。2、super和this对比:this:this能出现在实例方法和构造方法中。this的语法: “this.” 、 “this ()”this不能使用在静态方法中。this.大部分情况下可以省略,在区分局部变量和实例变量的时候不可省略。public void setName(String name){...

随便推点

yum安装LAMP_au27770的博客-程序员秘密

安装LAMP环境二进制包安装,先更新yum源,PHP 7.0.33 扩展可选yum -y install mysql mysql-server mysql-devel httpd httpd-devel rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpmrpm -Uvh ht...

pointer-events:none 的应用_bahuai7054的博客-程序员秘密

相信很多人都遇到过Retina屏的1px边框 的问题.很多人都用 :before,:after 伪类eg:.div:after{position:absolute;top:0;left:0;width:200%;height:200%;content:'';border:1px solid#e2e2e2;bo...

java redirect 跨域_如何解决跨域重定向携带参数的问题?不使用将参数拼接在重定向url末尾的方式..._Carrey Wang的博客-程序员秘密

如何解决跨域重定向携带参数的问题?不使用将参数拼接在重定向url末尾的方式需求,项目A在服务器A上,需要重定向到服务器B上项目B,并且需要携带参数,参数对用户不可见,所以不可以将参数拼接在重定向url后面,各位 还有其他方案吗?项目使用 springRedirectAttributes.addFlashAttribute 是不可以的,他只能够在同一个项目之内的controll之间重定向。这个问题没...

csv和xlsx区别_weixin_30535565的博客-程序员秘密

CSV是文本文件,用记事本就能打开。XLS 是二进制的文件只有用 EXCEL 才能打开;CSV 文件格式只能保存活动工作表中的单元格所显示的文本和数值。数据列以逗号分隔,每一行数据都以回车符结束。如果单元格中包含逗号,则该单元格中的内容以双引号引起。如果单元格显示的是公式而不是数值,该公式将转换问文本方式。所有格式、图形、对象和工作表的其他内容将全部丢失。若只是保存一点文本信息用,CS...

php redis-cell限流_redis-cell php_azh89125的博客-程序员秘密

1.redis-cell 安装# 设置下载位置mkdir redis-cell# 在该位置 下载包wget https://github.com/brandur/redis-cell/releases/download/v0.2.5/redis-cell-v0.2.5-x86_64-unknown-linux-gnu.tar.gz# 解压tar -zxvf redis-cell/releases/download/v0.2.5/redis-cell-v0.2.5-x86_64-unkn.

推荐文章

热门文章

相关标签