首页资源分类嵌入式开发单片机 > 基于Zigbee和ARM9的智能家居系统的研究与设计.pdf

基于Zigbee和ARM9的智能家居系统的研究与设计.pdf

已有 460221个资源

下载专区


TI最新应用解决方案

工业电子 汽车电子 个人消费电子

文档信息举报收藏

标    签: zigbee智能智能家居系统家居家居系统

分    享:

文档简介

基于Zigbee和ARM9的智能家居系统的研究与设计.pdf

文档预览

武汉理工大学 硕士学位论文 基于Zibee和ARM9的智能家居系统的研究与设计 姓名:冯承金 申请学位级别:硕士 专业:信号与信息处理 指导教师:杨杰 20100501 武汉理工大学硕士学位论文 摘要 随着数字信息技术和网络技术的高速发展,以及人们物质生活水平的不断 提高,人们的工作、生活与通讯、信息的关系日益紧密,可以说信息化社会正 在逐步改变人们的生活方式与工作习惯,同时也对传统的住宅提出了挑战,智 能家居便应运而生了。 本文将ZIGBEE技术与ARM技术相结合,以ARM微处理器为中心建立家 庭网关硬件平台,对外通过宽带Ethernet及公共电话网接入公共网络,对内将家 用电器及其他联网设施通过家庭内部ZIGBEE无线局域网连接成一体,实现信 息家电、安全防范的集中管理。用户通过远端PC或者电话就可以对家用电器进 行状态查询和控制,在本地可以利用家庭内的手持控制终端进行信息家电的控 制和管理。论文的主要研究内容如下: 1)分析了系统进行可行性,包括简要的理论基础,处理器和开发板的选型,系 统性能参数的设定等。 2)研究了Linux操作系统内核原理及Linux系统中的内存管理,进程管理,文 件系统管理和设备管理,编写了Linux操作系统下串口读写操作程序,为系 统的开发打下基础。 3)研究了嵌入式开发的相关技术,尤其是ARM9处理器及其外围设备构建的嵌 入式系统。在ARM9开发板进行了Linux操作系统、嵌入式文件系统和嵌入 式数据库的移植。 4)在W曲服务器和用通用网关程序(CGI)的基础上结合嵌入式系统的相关技术 设计完成了嵌入式家庭网关,实现了家庭网关对信息家庭的远程控制。 5)研究了ZIGBEE无线通信协议,对ZIGBEE协议的层次,ZIGBEE网络的拓 扑结构,ZIGBEE设备的路由做了深入研究。结合一般家庭的家居环境,实 现了一种星型ZIGBEE网络在智能家居中的应用。 该系统具有良好的人机交互界面和远程访问功能,良好的可移植性和扩展 性,可以根据具体要求方便地在ZIGBEE模块上进行传感器的扩充以实现更多 功能。 关键词:无线传感器网络,嵌入式web网关,ARM9,ZIGBEE,CGI 武汉理工大学硕士学位论文 Abstract With the fast development of digital information and network technologies,and continuous improvement of people's living standards,the relationship between people’S daily life and information is becoming closer.We can say that the information society is gradually changing the way people live and work,but also the traditional home posed a challenge,intelligent home came into bein吕 Combined ZIGBEE technology with ARM technology,this article cremed the central gateway hardware platform,which based on ARM microprocessor.We can access to public networks through Ethemet or public telephone network,and domestic appliances and other networking facilities will be connectivity into one through the ZIGBEE Wireless LAN to achieve information appliances.Users咖 check the status of home appliances and control those appliances through a remote PC or telephone.Major research is as follows: 1)Analysis the feasibility of the whole system,including the selection of the processor and the board’S,the system performance parameters and other settings. 2)Firstly,the kernel of Linux operating system Was researched.Then,Intensive study Was made on memory management,process management,file management .system,device management of Linux operating system.Serial Port reading or writing program based on Linux operating system Was wrote,which lay the root for system development. 3)ne related technology of embedded development was researched,especially the embedded system based on arln 9 processor and its peripheral equipment.Hereby the linux operating system,embedded file system and embedded database were transplanted on the arm 9 development board in the paper. 4)After researching the knowledge of the W曲server and Common Gateway Interface(CGI),an embedded ARM—based ZIGBEE home gateway is designed on this base,which implements the remote control of information appliances. 5)Research on the ZIGBEE wireless communication protocol stack,the layers of the ZIGBEE protocol,ZIGBEE network topology and ZIGBEE routing.Form a II 武汉理工大学硕士学位论文 ZIGBEE star-network in smart home application. The system has good man-machine interface and remote access capabilities,good probability and extension.You can easily have the expansion of sensors on ZIGBEE module according to specific requirements in order to achieve more application. Key words:wireless sensor network,embedded web gateway,ARM9,ZIGBEE,CGI III 独创性声明 本人声明,所呈交的论文是本人在导师指导下进行的研究工作及 取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外, 论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得 武汉理工大学和其它教育机构的学位和证书而使用过的材料。与我一 同工作的同志对本研究所作的任何贡献均已在论文中作了明确的说 明并表示了感谢。 签名:.攫垂金: 日期:扭纽:』:坐 关于论文使用授权的说明 本人完全了解武汉理工大学有关保留、使用学位论文的规定,即 学校有权保留、送交论文的复印件,允许论文被查阅和借阅;学校可 以公布论文的全部或部分内容,可以采用影印、缩印或其它复制手段 保存论文。 研究生(≤主;:滥导师(签名):如期:迦业 (保密的论文在解密后应遵守此规定) 武汉理工大学硕七论文 第1章引言 1.1课题研究的背景 在论文展开之前,不妨让我们静静的闭上眼睛想象一下:下班前,我们可 以预先将家中的空调打开调节室内的温度、可以让热水器提前烧好热水以便我 们回到家便可以舒舒服服的洗个澡、可以让出门前准备好的电饭煲煮好香喷喷 的米饭……;当我们吃完饭后静静的坐在房间里看电视时灯光会自动减弱、当 电话铃响起或拿起话机准备打电话时电视机会自动静音……;当我们出差在外 时可以通过网络远程的查询和控制家庭内部的设备,随时留意家中的各种情况, 实现真正意义上的家庭信息智能化。这样的工作生活该是多么惬意啊! 上述为我们描绘出了一幅智能家居的画面,所谓“智能家居”(Smart Home), 又称智能住宅。通俗地说,它利用先进的计算机、嵌入式系统和网络通讯技术, 将家庭中的各种设备(如照明系统、环境控制、安防系统、网络家电)通过家庭网 络连接到一起【l】。与普通家居相比,智能家居不仅具有传统的居住功能,提供舒 适安全、高品位且宜人的家庭生活空间,还由原来的被动静止结构转变为具有 能动智慧的工具,提供全方位的信息交换功能,帮助家庭与外部保持信息交流 畅通,优化人们的生活方式,帮助人们有效安排时间,增强家居生活的安全性, 甚至为各种能源费用节约资金。 随着计算机技术、信息技术、控制技术的发展,以及人们物质生活水平的 不断提高,人们的工作、生活与通讯、信息的关系日益紧密,可以说信息化社 会正在逐步改变人们的生活方式与工作习惯,同时也对传统的住宅提出了挑战, 智能家居便应运而生了。随着网络时代的到来,拥有一个体现高新科技无穷魅 力的智能化、现代化的家庭己不再是梦想,家庭网络化是信息时代的必然趋势。 1.2智能家居的国内外发展现状 世界上第一幢智能建筑1984年在美国康涅迪格州出现,当时只是对一座旧 式大楼进行了一定程度的改造,采用计算机系统对大楼的空调、电梯、照明等 设备进行监测和控制,并提供语音通信、电子邮件和情报资料等方面的信息服 武汉理工大学硕士论文 务【21。随之而来,美国、加拿大、欧洲、澳大利亚和东南亚等经济比较发达的国 家先后提出了各种智能家居的方案。智能家居在美国、德国、新加坡、日本等 国都有广泛的应用。其中比较重要的有下述几个系统:美国的X-10、 CEBUS(Consumer Electronic Bus)、LONWORKS:日本的HBS(Home Bus System)欧洲的E1B(European Installation Bus)和EHS(European Home System) 等。 上世纪末,在美国、日本、新加坡等国家已有少数居民安装了“家庭智能化 系统”,随着科技的进一步发展相信21世纪将会有更多的住宅安装上这一类高科 技智能化系统。近些年来,美国有一种占据市场主流的产品X.10,销售已超过 1亿个,设计户型为单体别墅,应用多为旧房改造,仅在美国便有超过400万个 家庭在使用。但这些产品技术限制较多,并不适合在我国原样照搬使用。而且, 三星已经开始在中、韩两国同时推出其智能家居系统,通过机顶盒和网络,将 家居自动化控制、信息家电、安防设备以及娱乐和信息中心这四部分集成一个 全面的,面向宽带互联网的家居控制网络。 住宅智能化将是人类住宅的又一场新的革命。近年来在我国,高科技和信 息技术正在由智能大厦走向智能住宅小区,进而走迸家庭。现代社会的家庭正 在以家庭智能化带来的多元化信息和安全、舒适、便利的生活环境,作为一个 理想的目标来追求。国家也早在《2000年小康型城乡住宅科技产业工程项目实 施方案》中,将建设智能化小康示范小区列入国家重点的发展方向。因此也就 必然促使智能化从智能大厦建设向智能化住宅小区,乃至向家庭智能化的方向 发展。 目前,国内一些传统家电业的巨头如海尔、创维、TCL、科龙、海信等已经 进入智能化家居市场。而先进入该领域的一些企业基本都推出了各自的产品, 如清华同方推出的经济型的智能化家庭设备“e.home数字家园”系统已经得到了 一定程度的应用【31。 1.3课题研究的目的和意义 传统的智能家居系统一般是有线的方式来组建的,如LONWORKS,CEBUS, X-lO,RS485,CANBUS,Ethernet等【41。其中X.10是智能型家庭网络系统中被 广泛采用之技术,主要是因为价格便宜及部分消费者可自行装设。以上各种技 术都分别对应于不同的应用场合,一些技术发展已经相对比较成熟,而且在行 2 武汉理工大学硕士论文 业已经具有一定的标准性和通用性,但普遍还存在以下缺点: (1>基于有线方案,布线麻烦,增减设备需要重新布线,而且影响美观。 (2)标准不统一,智能家居内部设备的通信和控制没有一个国际上统一的通信 接口标准,家居设备在家庭内部的编码方式随便混乱. (3)对PC的依赖,传统的智能家居系统中的家电需要依靠家庭内部PC,否则 家庭内部的管理就无法进行,无论是升级和维护都不方便。 正是基于以上的事实,本文考虑将ZIGBEE技术与ARM技术相结合,以 ARM微处理器为中心建立家庭网关硬件平台,对外通过宽带Ethemet及公共电 话网接入公共网络,对内将家用电器及其他联网设施通过家庭内部ZIGBEE无 线局域网连接成一体,实现信息家电、安全防范的集中管理。用户通过远端PC 或者电话就可以对家用电器进行状态查询和控制,在本地可以利用家庭内的手 持控制终端进行信息家电的控制和管理。 ZIGBEE技术是一种新兴的近距离、低功耗、低成本和低复杂度的无线网络 技术,具有非常高的通信效率。利用ZIGBEE技术可以方便的组建家庭无线网 络,既省去了布线的麻烦,又为家居设备制定了统一的标准,同时还满足了美 观的需求。而ARM处理器以其强大的指令系统、高速的数据存储速度,广泛的 应用领域以及灵活的开发工具在嵌入式领域占据了举足轻重的地位。ARM9更 是在ARM7的基础上,将流水线升级到5级,并优化了内部结构,整体性能得 到了进一步的提升。ARM处理器的使用一举摆脱了传统智能家居系统对PC的 依赖,可以在低成本、低功耗的前提下方便快捷的控制各种家居设备,为你的 工作和生活带来无限便利。 1.4本文研究的主要内容 在智能家居领域,由于平台和组网方式的多样化,导致了智能家居的实现 方案也是多样化的,因此基于国内外在网络家电的研究现状,成本,性能以及 市场等多方面因素的综合考虑,本课题采用近年逐渐兴起的ZIGBEE无线网络 来实现智能家居系统的内部网络连接,并通过嵌入式家庭网关接入Internet。本 文的研究内容主要有以下几个方面: (1)分析智能家居系统开发中的一些重要因素,提出本系统的总体设计方案。 (2)根据系统需求选择本设计所需的处理器和嵌入式操作系统,搭建系统开发 平台。 3 武汉理工大学硕士论文 (3)以嵌入式Linux为平台,构建嵌入式WEB服务器,移植并创建嵌入式数据 库sqlite3,同时为了满足用户与服务器进行交互的需求,设计CGI应用程序, 整个系统均选择C/C++语言作为开发语言。 (4)深入学习和研究ZIGBEE技术的协议和规范,通过对ZIGBEE网络拓扑以 及智能家居网络特点的分析,选定网络的拓扑结构,从而组建所需的无线 家庭网络。 (5)编写接口函数,将各单元模块整合为完整的系统,进行系统功能测试。 (6)对本文的研究工作进行总结和展望。 4 武汉理工大学硕士论文 第2章智能家居系统的总体设计 2.1智能家居系统设计需要考虑的因素 在第一章中我们已经知道,虽然一些传统的智能家居系统技术已经相对成 熟,而且在行业已经具有一定的标准性和通用性,但是普遍存在基于有线方案, 布线麻烦,标准不统一和过分依赖PC的缺点。因此本着从技术发展的角度来看, 我们必须要认真的考虑在系统设计中的一些重要因素,以便提高系统的可行性 和实用性。 与现有的数据通信网络技术相比,智能家居系统不需要高速率、高 QOS(Quality ofService)的通信技术来支撑,相反它需要的是低速率低成本的控 制手段来实现家居设备的互联和控制,需要的是能提供更为便利的低成本组网 方式。从这个角度来看,在智能家居系统的设计中应重点考虑以下因素: (1)低成本。智能家居系统中控制的对象主要是大量的家电和传感器终端节点, 这种较大规模的网络需要一个低成本的节点组网技术【5】。 (2)标准化。即需要为家居内的设备制定统一的通信和控制接口,统一内部的 编码方式。 (3)自组织。一般的用户不可能对系统进行复杂的配置和管理,为了让用户能 方便快捷的对系统进行使用和管理,系统下各种资源的自组织和相互间的 协调性便显的至关重要了。 (4)摆脱对PC的依赖。这就需要借助嵌入式处理器直接接入Intcrnet实现信息 交互的过程,或者通过移动通信模块直接接入移动网络实现远程交互的过 程。 (5)可扩展性。系统在设计之初,似乎已经满足了用户的各种需求,但随着技术 的进一步发展和人们对生活质量要求的不断提高,系统能否自动的进行升 级也是一个不容忽视的要素。 2.2智能家居系统的总体设计方案 本文所设计的智能家居系统的体系结构如图2.1所示,用户通过PC端的 5 武汉理工大学硕士论文 Web浏览器登录用户管理系统,利用Internet远程访问家庭内部的嵌入式网关, 嵌入式网关中的服务器会根据用户的需求通过串口(I yART)向无线家庭网络的 协调器(Coordinator)发送交互指令,用以控制家庭网络内部的各种关联电器。 由结构图不难看出,本系统主要包含三部分:PC客户端用户管理系统、嵌 入式家庭网关和无线家庭网络。 无线家庭网络 图2.1智能家居系统的体系结构 (1)PC客户端用户管理系统。这一系统是在嵌入式家庭网关的基础上实现了 WEB服务器和数据库的相关功能,通过一组人机交互的晃面和相应的 CGI程序以达到方便用户使用和管理的效果。 (2)嵌入式家庭网关。嵌入式家庭网关是整个系统的核心部分,它是处于外 部Intemct和内部无线家庭网络中间的一个节点,也就是家庭网络的入口 节点。一方面,嵌入式家庭网关要支持TCP/IP协议并能提供Web服务, 从而允许客户远程访问它;另一方面,它要实现外部Internet和内部家庭 网络之间协议的转换、地址转换和路由等功能,类似Internet上的网关【6】。 (3)无线家庭网络。该部分采用了新兴的ZIGBEE技术,每个嵌入ZIGBEE 模块的信息家电都可以看作是一个ZIGBEE节点,整个家庭无线网络是 由ZIGBEE节点组成的无线局域网。网关接收用户从远程发来的控制信 息,经过处理转发给ZIGBEE网络的Coordinator,Coordinator根据信息 中地址把控制信息转发相应的Router节点,实现对家庭内的信息电器监 测和控制。 在这一方案中,嵌入式处理器和ZIGBEE组网技术的使用可以说完全打破 了传统智能家居的一些不足和局限性。嵌入式设备不仅功耗低、体积小、成本 低,而且稳定性、实时性好,同时也可以方便地接入Internet,完全摆脱了对PC 的依赖。而同样低成本、低功耗的ZIGBEE技术,不仅组建网络方便快捷,免 6 武汉理工大学硕士论文 除了布线的麻烦,更为家庭内部的各种节点设备制定了统一的标准,十分适合 组建无线家庭网络。他们的使用,方便了用户对整个系统的管理,也便于用户 今后对系统进行维护和升级。 2.3嵌入式家庭网关的硬件选型 嵌入式家庭网关是整个系统的核心部分,在系统中发挥着至关重要的作用。 而嵌入式处理器则是家庭网关的核心部件,其性能的好坏直接决定整个系统的 运行效果。为了让家庭网关实现系统所需要的全部功能,并且最大程度的提高 整个系统的效率,选择一款成本低且合理实用的嵌入式处理器是十分必要的。 2.3.1嵌入式处理器简介 嵌入式处理器是控制、辅助系统运行的硬件单元,其种类繁多,从最初的4 位处理器,目前仍在大规模应用的8位单片机,到最新的受到广泛青睐的32位, 64位嵌入式CPU。目前流行的嵌入式处理器主要包含以下四类f7】:嵌入式微处 理器(Embedded Micro Processor Unit,EMPU)、嵌入式微控制器(Embedded Microcontroller Unit,EMCU),嵌入式DSP处理器(Embedded Digital Signal Processor,EDSP)和SOC(system on chip)片上系统,每一类处理器都是针对不 同的应用而存在的,各自又包含有许多不同的小类。 嵌入式微处理器中的ARM9系列处理器具有功耗低、成本低、效率高,接 口资源丰富的优点,与其它嵌入式处理器相比,它的通用性、稳定性、功能的 完备性以及可扩展能力都有着巨大的优势[8】。鉴于以上诸多因素,本文采用了以 ARM920T为核心的¥3C2440处理器。 2.3.2¥3C2440处理器 ¥3C2440是三星公司推出的16/32位ARM微处理器,提供了一系列丰富的 内部设备,为手持设备和一般类型应用提供了低价格、低功耗、高性能小型微 控制器的解决方案。¥3C2440A的杰出的特点是其核心处理器(CPU),是一个由 Advanced RISC Machines有限公司设计的16/32位ARM920T的RISC处理 器。ARM920T实现了MMU,AMBA BUS和Harvard高速缓冲体系结构。这 一结构具有独立的16KB指令Cache和16KB数据Cache。每个都是由具有8字 7 武汉理工大学硕士论文 长的行组成。通过提供一套完整的通用系统外设,¥3C2440A减少整体系统成本 和无需配置额外的组件。 ¥3C2440的具体功能与特剧9】如下: · 1.2V内核,1.8V/2.5V/3.3V储存器,3.3V扩展I/O,1 6KB指令Cache(I.Cache) /16KB数据Cache(D.Cache)。 · 外部储存控制器(SDRAM控制盒片选逻辑)。 ·集成LCD专用DMA的LCD控制器(支持最大4K色STN和256K色n叮)。 ·4路拥有外部请求引脚的DMA控制器。 ·3路URAT(IrDAl.0,64一Byte Tx FIFO,64Byte Rx FIFO)。 ·2路SPI。 ·IIC总线接口(多主支持)。 ·IIS音频编解码器接口。 ·AC97编解码器接口。 ·1.0版SD主接口,兼容2.1I版MMC接口。 ·2路USB主机控带1]/1路USB期间控制(verl.1)。 ·4路PWM定时器/l路内部定时器/看门狗定时器。 ·8路10位ADC和触摸屏接口。 ·具有日历功能的RTC。 ·摄像头接口(支持最大4096x4096的输入,2048x2048缩放输入)。 ·130个通用I/O,24个外部中断源。 .· 电源控制:正常,慢速,空闲,睡眠模式。 ·带pLL的片上时钟发生器。 2.3.3 MINl2440开发板接口与资源 MINl2440是一款低价实用的ARM9开发板,也是目前国内性价比最高的 一款实验板,它采用Samsung¥3C2440为微处理器,并采用专业稳定的CPU内 核电源芯片和复位芯片来保证系统运行时的稳定性,实物如图2.2。 武汉理工大学颈士论文 图2-2 M1N12440实物图 MINl2440各种参数指标‘1”如下: ·CPU处理器 一Sarasung¥3C2440A,主频400MHz.最高533Mhz。 ·SDRAM内存 一在板“M sDRAM。 -32bit数据总线。 .SDRAM时钟频率高达100MHz。 ·FLASH存储 .在板128MNandFlash,掉电非易失。 .在板2MNorFlash,掉电非易失,已经安装BIOS。 ·LCD显示 .板上集成4线电阻式触摸屏接口,可以直接连接四线电阻触摸屏。 .支持黑白、4级灰度、16级灰度、256色、4096色STN液晶屏,尺寸从 3.5寸到12 1寸,屏幕分辨率可以达到1024x768象素。 .支持黑白、4级荻度、16级款度、256色、64K色、真彩色1FT液晶屏, 尺寸从3.5寸到12 1寸,屏幕分辨率可咀达到1024x768象素。 一标准配置为NEC 256K色240x320/3 5英寸TFT真彩液晶屏,带触摸屏。 .板上引出一个12V电源接口,可以为大尺寸TFr液晶的12VCCFL背光 模块0nverting)供电。 ·接口和资源 武汉理工大学硕士论文 .1个100M以太网RJ-45接口(采用DM9000网络芯片)。 .3个串行口。 .1个USBHost。 .1个USB Slave B型接口。 .1个SD卡存储接口。 .1路立体声音频输出接口,一路麦克风。 .1个2.0mm间距lO针JTAG接口。 _4USERleds。 .6 USER buttons(带引出座)。 .1个PWM控制蜂鸣器。 .1个可调电阻,用于AD模数转换测试。 .1个12C总线AT24C08芯片,用于12。 .1个2.0mill间距20pin摄像头接口。 .板载实时时钟电池。 .电源接n(sv),带电源开关和指示灯。 ·系统时钟源 .12M无源晶振。 ·实时时钟 .内部实时时钟(带后备锂电池)。 ·扩展接口 .1个34 pin 2.0mmGPIO接El。 ‘ .1个40pin2.0mm系统总线。 ·规格尺寸 一100 X 100(mm)。 ·操作系统支持 一Linux2.6.29.4+Qtopia-2.2.0。 -WindowsCE.NET 5.O。 2.4嵌入式操作系统的选择 嵌入式操作系统EOS(Embedded Operating System)是一种用途广泛的系 统软件,过去它主要应用于工业控制和国防系统领域。EOS负责嵌入系统的资 10 武汉理工大学硕士论文 源分配、为用户提供访问硬件的接口、调度多个应用程序、管理文件系统,控 制协调并发活动等。它必须体现其所在系统的特征,能够通过装卸某些模块来 达到系统所要求的功能。嵌入式操作系统在系统实时高效性、硬件的相关依赖 性、软件固态化以及应用的专用性等方面具有较为突出的特点。 在嵌入式领域可以选择的操作系统有很多,最流行的主要有以下几种: VxWorks、Windows CE、UC/OS.II、嵌入式Linux[1l】。在本设计中选用了嵌入式 Linux操作系统,之所以选择嵌入式Linux,是因为它与其他的嵌入式操作系统 相比,具有很多的优势【12】: (1)Linux的源码开放,开发出的嵌入式产品成本低。实际中不仅Linux本身 是开放源码的,许多基于Linux的系统软件、应用软件、驱动程序等也是 开放源码的。 (2)Linux拥有丰富的资源和优秀的开发工具。Linux利用GNU项目的C编 译器编译程序,使用GDB源程序级调试器调试程序。它们均提供合适的 手段使开发者能够开发嵌入式Linux系统。通过串口和GDB通信,可以 进行C源程序级的调试,甚至可以下载程序到RAM或Flash中。 (3)Linux内置网络支持,可以进行高效的网络通信。Linux支持所有标准的 因特网协议,几乎所有的协议和网络接口都定制在其中,并可以利用 Linux的网络协议栈将其开发成为嵌入式的TCP/P网络协议栈。 (4)Linux内核健壮,运行稳定。Linux本身的健壮性、可靠性和稳定性已不 容置疑,而嵌入式Linux是由Linux发展而来的,必然继承了Linux的这 些特性。嵌入式系统中健壮性、稳定性的要求要比通用系统更高。 (5)支持大量的周边硬件设备。Linux上有丰富的驱动程序,支持各种主流硬 件设备和最新的硬件技术,而且随着Linux的广泛应用,许多芯片厂家开 始提供Linux上的驱动,这进一步促进了Linux在各种硬件平台上的应用。 2.5本章小结 本章首先分析了设计智能家居系统需要考虑的几个重要因素,接着给出了智 能家居系统的总体设计方案,然后根据实际需求选出了适合于本系统的处理器 和操作系统,而且对其中一些重要知识做了深入的学习和研究。 武汉理工大学硕士论文 第3章嵌入式家庭网关的构建 嵌入式家庭网关一方面要支持TCP/IP协议并能提供Web服务,从而允许客 户远程访问它;另一方面要实现外部Intcmet和内部家庭网络之间协议的转换、 地址转换和路由等功能。在设计过程中需要完成三个主要任务:搭建嵌入式系 统开发平台,建立嵌入式WEB服务器和移植应用嵌入式数据库。 3.1系统开发平台的搭建 嵌入式家庭网关的设计涉及许多必须的工作,但首先要根据所选定的处理器 类型和操作系统搭建系统开发所需要的平台环境,为进一步的开发打下良好的 基础。 3.1.1 Linux交叉编译环境的建立 所谓交叉编译简单的说就是在一个平台上生成另一个平台上的可执行代 码,这一点对于嵌入式Linux操作系统的应用开发来说是很重要的。在这里我们 已经确立了一个平台,即开发板MINl2440,我们把它称作目标板。那么另一个 平台是什么呢?另一个平台我们把它称作宿主机,是安装了Linux操作系统的 PC机。本设计中,在Windows操作系统下利用虚拟机(VMware Workstation) 安装了目前使用范围最广的Linux版本Red Hat Linux 9.0,以它作为今后开发过 程中的宿主机。目标板用于运行操作系统和系统应用软件,而目标板所用操作 系统的内核编译、应用程序的开发和调试则需要通过宿主PC机来完成,这一过 程就是交叉编译。双方之间一般通过串口、并口或以太网接口建立连接关系, 可以通过串口、FTP或NFS来进行通信。 Linux交叉编译环境的建立一般有以下几个步骤【13】: (1)从网络上下载交叉编译工具的源码,本设计所用编译工具的版本为4.3.2, 下载的源码为arm—linux—gce-4.3.2.tgz。 (2)将交叉编译工具的源码ann-linux—gee-4.3.2.tgz复制到宿主机的某个工作 目录下女I/tmp,然后进入到该目录,执行解压命令: cd/trap 12 武汉理工大学硕士论文 tarxvzfarm—linux一目oo_4 3 2tgzZ/ (3)把编译器路径加入系统环境变量,运行命令: geditlroot/.bashro 编辑/root/bashrc文件,在最后一行添加如下语句,保存后退出。 exportPATH=¥PATH:ABr/loca]/arm/43 2/bin 重新登录系统f不必重启机器.注销即可),使以上设置生效.在命令行输入 arm—linux.go。_v,会出现如图3-1所示信息,这说明交叉编译环境已经成功安装。 臼1e E出幽洲DrmlrIaI如倒p rom刊*dho北- j∞dolocdh05t一 [rootOlocalhost—t】#arm—linux—gcc—v 匕 Reading specs fro./一,l…l/arn/3 4 1/lib/gcc/a—linux/3.4.1/specs 1…with configured with:/work/crosstool一0 27/build/era—linux/gcc一3 4.1-glibc一2 3 2/gcc一3 4 i/configure target=arm—linux~hOst-i686 host_pc—linux—gnu mnls—enable—threads-posLx一一enable—synvers-gnu—一enable-_cxa—atexit —prefLx=/usr/local/arm/3 4 header5=/usr/l—l/一,3.4 i/arm一1 inux/include一1th—local prefix lusr/local/arm/3.4.Z/arm—linux一一disabl 一一enable—languages-c.…一一enable—shared一一enable—c99一一enable—long—long Ittread model:posix 卜 gcc version 3 41 [rcotOIocalhost root】#l I’ 圈3-1交叉编译环境安装成功提示信息 3.1.2 Linux内核的移植 gedHatLinux 9.0默认的Linux内核是2.4版本的,为了最大程度的满足 本系统所需要的各种功能,减少一些不必要的工作量.尽可能地减少开发周期, 本设计中移植了最新版本的2.6内核。 内核的移植工作比较复杂,主要步骤如下‘”Ⅱ15】: (1)从网络上下载Linllx内核源码Lmux-2 6 291tgz和文件系统yaffs2的补丁 源码ors-roottgz,并统~放在,homef巧目录中 (2)进A/homd翻目录,解压内核源码: cd/hom“fcj tar-xvzflinux-2 6 29 l tgz-C/opt/FrioldARM/mini2440 (3)进入内核目录,修改makelile,并对内拔进行默认配置修改193行: 武汉理工大学硕士论文 ARCH ?=arm CROSS—COMPILE?=ann·linux· (4) 修改平台输入时钟。 找到内核源码arch/arm/mach-s3c2440/maeh-smdl!【2440.c文件,在函数 static void—init smdk2440_map_io(void)修改原有的时钟频率: s3c24xx_init_clocks(1 2000000)。 (5) 修改Nand flash分区信息。 修改文件kernel.git/areh/arm/plat-s3c24xx/eommon—smdk.co static struct mtd_partition smdk_default_nand_part[】= { 【0】={ .name=”bootloader”, .offset=0x00000000, .size=Ox00030000, >, [1】={ .name=”kernel”, .offset=Ox00050000, .size=Ox00200000, ), [2】_{ .name 2什root什, .offsa=0x00250000, .size=Ox03dac000, ); s3c2410_platform_nand_smdk_nand_info smdk—nand—info= { .tacls=0, .twrphO=30, .twrphl=O, 14 武汉理工大学硕士论文 ) ) (6)修改LCD背光。 修改文件/arch/arm/mach-s3c2440/mach-smdk2440.C,因为友善的3.5寸液 晶的背光控制是由¥3C2440的GPG4引脚来控制的,故下面的改动将开 启背光。 static void....——init smdk2440 machineinit(void) { s3c24xx——fb set_platdata(&smdk2440 fb info); platform_add_devicesO; s3c2410...gpio_cfgpin(S3C2410 GPG4,¥3C2410_GPG4_OUTP); s3c2410_gpio_setpin(S3C2410_GPG4,1); smdk_machine_initO; ); (7)修改LCD参数。 这里用的是NEC3.5英寸屏液晶屏,大小为320x240,需要修改文件 arch/arm/mach-s3c2440/mach-smdk2440.c: static struct s3c2410fb_display smdk2440_lcd__cfg—jnitdata- { .right margin;37, .hsync_len=6, .upper margin=2, .10wer_margin=6, .vsync len 22, smdk244州nfo—j11itdata ); static struct s3c24 1 0fb—mach—info 2{ .default display=0 .gpccon =Oxaa955699, .gpccon_mask =Oxffc003cc, .gpcup =OxOOOOfttf, 15 武汉理工大学硕士论文 .gpcup_mask=0xfttttttT, .gixlcon =0xaa95aaal, .gpdcon__mask =OxffcOfffO, .gpdup =OxOOOOfaff, .gpdup_mask=0xflttI箍, .1pcsel=0xf82, ); (8)给内核yaffs2文件系统打补丁。 tar-zxvf evs—root.tar.gz--C/opt/FriendlyARM/mini2440 ed/opt/FriendlyARM/mini2440/cvs/yaffs2/ ./patch-ker.sh C/opt/FriendlyARM/mini2440/linux-2.6.29.1/ (9)修改¥3C2440的机器号。 由于Bootloader传递给Linux内核的机器号为782,与Bootloader传递参 数一致,故修改arch/arm/tools/math-types文件: s3c2440 ARCH——S3C2440¥3C2440 362 修改为: s3c2440 ARCH—.¥3C2440 S3C2440 782 3.1.3 Linux内核的配置与编译 Linux.2.6内核是十分庞大的,有丰富的驱动程序,支持各种主流硬件设备和 最新的硬件技术,但对于本设计来说,有些驱动是必须的,而有些就显得可有 可无,从这个角度出发,要对Linux内核进行适当的配置,选择一些系统必须的 驱动程序【16】【171。 执行make menuconfig命令,便可进入内核配置的主菜单,如图3.2。主菜 单下主要有Networking support、Device Drivers、File systems、Kernel hacking、 Security options、Cryptographic API、Library routines六项,每一项下面还有不同 数目的子菜单,用户可以根据自己的需要进入不同的菜单进行设定【12】。在本设 计中,依据系统所要实现的具体功能主要对以下几个方面进行了配置: 16 武汉理工大学硕士论文 图3-2内核配置主菜单 (1)配置CPU平台。即选择与系统硬件相对应的CPU.在这里就是选择前面 所介绍过的mini2440。 (2)配置3.5尺寸LCD的驱动以及背光控制支持。本系统设计到视频的采集, 需要LCD提供支持,必须预先进行配置。 (3)配置触摸屏。开发板所带的3 5英寸LCD屏幕既支持USB鼠标和键盘又 支持触摸模式,这里为了节省资源、便携操作选择了触摸的方式。当然 用户也可以选择前者,只要对USB鼠标和键盘进行相应的配置即可。 (4)配置网卡驱动。要配置网卡驱动.首先要配置网络协议支持,也就是在 Networking support子菜单选择TCPFIP协议,然后针对网卡的类别配置相 应的驱动。 (5)配置看门狗驱动支持。用咀监测系统程序的运行状态。 (6)配置pWM控制蜂鸣器驱动。当系统中出现一些“非法值”时,蜂鸣器报警 提醒用户检查出现问题的设备。 (7)配置串口驱动。以便使家庭网关可以通过串口顺利的与无线家庭刚络的 协调器进行通信。 (8)配置ya血s文件系统的支持。 以上列出了一些对内核的重要配置,鉴于大部分配置过程都大同小异,只是 根据不同的功能选择所需要的菜单来进行操作,这里仅以CPU的配置为例,向 大家演示下配置的详细过程。 在主菜单里面,选择System聊回车,会看到如图3-3所示的界面。可以 武汉理工大学硕士论文 图3-3各种型号处理器选项(一) 发现,系统大部分使用标注了¥3C2410的选项,这主要是因为S3C2410和 S3C2440的报多寄存器地址和设置是完全相同的。使用k下方向控制键可以找到 与我们的硬件相匹配的¥3C2440机器平台选项.如图3-4所示。 图3_4各种型号处理器选项(二) 进入¥3C2400 Machines子菜单,可以看到里面有很多常见的使用¥3C2440的目 标板平台选项如图3-5,选择第一项即可。 武汉理工大学硕士论文 图3-5¥3C2440的目标板平台选项 内核配置完成后,就可以对内核文件进行编译,执行如下命令便可编译出本 系统所需要的内核映像文件zIma一“】。 makedep makedean makezlmage 3 1 4制作目标板文件系统映像 文件系统足操作系统的重要组成部分,它决定了操作系统本身的信息和用户 的数据在存储设备上的组织形式。一个文件系统不仅要包括该文件系统中所有 文件的数据,还要包括文件系统的结构信息,并要保证这些信息的安全性。 本文利用专门的制作工具mkyaffs2image·128M将系统文件mot_qtopia制作 生成了va啦文件系统映像㈣。具体方法如下: 从网络上下载系统文件源码root qtopia放?'-./opr/FriendlyARM/mini2440 工作目录中,进入/op“所铋dl蚋RM枷m2440目录,然后执行阻下命令: cd/opt/FdendlyARIVl/mini2440 mkyaffs2image root qtopia root qtopiaimg 这样就在当前目录下生成了文件系统的映象文件root_qtopiaimg,把它和前 面生成的内核映像文件zlmage通过USB烧写到目标板上,至此,系统开发平台 武汉理工大学硕士论文 就搭建完毕了,接下来就可以在该平台上进行下一步的开发了。 3.2嵌入式WEB服务器的建立 嵌入式WEB服务器的主要功能是监听客户端的服务请求,根据客户的请求 类型,返回一个静态的页面或相应的CGI应用程序作为响应。与传统的WEB服 务器相比,它简化了自身的结构,可以将信息采集和信息的发布都集中到嵌入 式设备中,可以向任何一个接入到对应网络的用户提供统一的基于浏览器方式 的操作【201。它的结构如图4_1所示。 图4.1嵌入式WEB服务器结构图 3.2.1嵌入式WEB服务器的工作原理 本设计的嵌入式WEB服务器是建立在B/S(Browser/Server)基础之上的, 用户可以通过客户端的浏览器向服务器发送请求,服务器会根据请求的类型将 用户所需要的信息返回到浏览器,其工作原理如图4.2所示。在这个过程中,往 广一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一1 图4.2嵌入式WEB服务器工作原理图 武汉理工大学硕士论文 往还会涉及到动态网页的生成,对数据库的访问以及一些应用程序的执行等。 由原理图可以看出,嵌入式WEB服务器的关键技术是HTrP引擎和CGI技术。 下面将着重针对这两个方面进行深入的学习和研究。 1)HTTP引擎 HTTP是Hypertext Transfer Protocol(超文本传输协议)的英文简称,它是 目前互联网上最流行的协议,是用于从www服务器传输超文本到本地浏览器 的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机 正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容 首先显示(如文本先于图形)等【2l】。这就是你为什么在浏览器中看到的网页地址都 是以http:H开头的原因。 一般的网络通信都是建立在TCP/IP协议的基础之上的,HTTP的连接也不 例外。通常,由HTYP客户端发起一个请求,建立一个到服务器指定端口(默 认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端发送过来的 请求,一旦收到请求,服务器会向客户端发回一个状态行作为响应信息。HTTP 之所以使用TCP而不是UDP,是因为打开一个网页必须要传递很多的数据,而 众所周知TCP是面向连接的、可靠的协议,它不仅可以按顺序来组织数据,而 且可以最大程度的保证数据的正确性。 HTTP模型非常简单,它是基于请求/响应模式的。一次HTTP操作称为一 个事务,其工作过程可分为四步【捌: (1)Connection:客户机与服务器建立连接。只要单击某个超级链接,HTTP 的工作就开始了。 (2)Request:客户机向服务器发送请求报文,请求报文的格式为: 请求行 (包括请求类型、资源<URL>和HTTP版本)一通用信息头一请求 头一实体头一报文主体。 (3)Response:服务器收到请求信息后返回一个响应报文,响应报文的格式为: 状态行(包括协议版本号、一个成功或失败的状态码)一通用信息头一 响应头一实体头一报文主体。 (4)Disconnection:客户端通过浏览器接收服务器所返回的信息,然后客户端 与服务器断开连接。 客户机与服务器建立连接之后,客户机会向服务器发送请求报文,而根据 请求类型的不同,发送方法也就有所不同。常用的发送方法有8种:OPTIONS、 GET、HEAD、POST、PUT、DELETE、TRACE和CONNECT。请求方法描述 21 武汉理工大学硕士论文 了对于指定的资源应该执行的动作,这些方法才是客户端向服务器发出的真正 请求或命令。 2)CGI技术 CGI是一种在服务器与外部脚本或程序之间进行交互的方法,它通过从WEB 服务器上接收信息,创建一个子过程以便为CGI脚本处理或存储从服务器上接 受的信息。通过CGI,用户可以在WEB页面上添加一些程序,向访问者提供一 种方式来存储信息和执行一些外部程序,访问数据库。另外,用户可以通过CGI 动态地修改页面【23】。CGI的工作原理如图4_3所示,它具体的工作流程如下: r……………‘面j赢磊……………~{ sTD姨玎 浏 览 一HTTP 卜\ Ⅸ)A 器 N y S1'DIN STDIN OGI脚本 锄U1。 图4_3 CGI工作原理图 (1)用户通过客户端浏览器向服务器发送HTTP消息,请求建立连接。 (2)服务器处理用户的请求信息。在这里服务器要跟据请求报文的具体内容 来判断用户请求的资源是静态网页还是CGI的应用程序。如果是静态网 页服务器就读取相应的磁盘文件,并将其作为H丁rP响应消息中的实体 返回给客户端;而如果是CGI应用程序,服务器则会执行相应的CGI脚 本从而创建一个CGI的应用进程,并去执行相应的应用程序。 (3)服务器对CGI应用程序的执行结果进行分析,并在此基础上生成HTTP 的响应信息返回给用户。 (4)服务器在判定CGI脚本执行完毕后,断开与浏览器的连接。 从CGI的工作过程可以知道,它不是一种语言,而是可以被其他语言所应 用的一个规范集。从理论上讲,可以用任何程序语言来编写CGI程序。CGI应 用程序一般由两部分组成,一部分是HTML页面,是用户可以通过客户端的浏 览器看到的;一部分则是运行在服务器端的程序。从这个角度来讲,CGI可以看 作是用来沟通HTML和服务器端口的程序接口。关于这一点,就需要我们对CGI 的传送方法有一定的了解和认识。 熟悉HTML的人都知道,在HTML文档中有一个比较特殊的组件一表单, 武汉理工大学硕士论文 可以说用户从客户端向服务器提交信息主要是通过表单来完成的。表单除包含 必须的HTML标志和正文内容外,还包含一些重要的控件元素,如文本框、复 选框、按钮和菜单等。其中的每一个元素都有三个比较重要的属性:ACTION、 METHOD和ENCTYPE。ACTION属性给出了提交表单时相关的应用程序或者 该应用程序的URL,ENCTYPE属性给出了用户在提交信息时所采用的编码方 式,而METHOD属性则给出了我们要研究的传送方法。METHOD的属性值一 般有两个:GET和POST,分别代表了两种不同的传送方法【241。 (1)GET方法:这是一种默认的方法,当使用这种方法时,CGI程序从环境 变量QUERY 获取数据。 QUERY.STRING 是一种常用的环境.STRING 变量,就是这种环境变量把客户端的数据传给服务器。不过这种方法对 字符串的长度有限制,当字符串的长度超过这一限制时,就需要改用 POST方法。 (2)POST方法:使用这种方法时,WEB服务器通过STDIN(标准输入)向CGI 程序传送数据。服务器在数据的最后没有使用EOF字符标记,因此程序 为了正确的读取STDIN.必须使用CONTENT LENGTH。 3.2.1嵌入式WEB服务器BOA的移植 鉴于嵌入式资源一般都比较有限,而且也不需要同时处理多用户的不同请 求,因此没有必要使用Linux下常用的Apache等服务器。常用的嵌入式服务器 有三种,HTTPD、THTTPD和BOAt251。HTTPD是最简单的服务器,不支持认 证也不支持CGI。而THTTPD和BOA则都提供对认证和CGI的支持,由于BOA 的功能较THTTPD更全面一些,本设计选取了BOA作为本系统的服务器。 BOA是一个非常小巧的WEB服务器,可执行代码只有约60KB。它是一个 单任务WEB服务器,只能依次完成用户的请求,而不会向rk出新的进程来处理 并发连接的请求。但BOA支持CGI,能够为CGI程序fork出一个进程来执行。 BOA的设计目标是速度和安全,在其站点公布的性能测试中,BOA的性能要好 于Apache服务器。本节主要研究BOA编译与移植的过程【26】,具体步骤如下: (1)从网络上下载所使用的BOA版本的源码boa-0.94.13.tar.gz,将其放置于 宿主机的/home/fcj目录下。 (2)进入/home/fcj目录,将其解压。 #cd/home/fcj 武汉理工大学硕士论文 #tar xvzfboa-0.94.1 3.tar.gz (3)进入源码目录下的src目录,生成Makefile文件。 #cd/homc/fcj/boa-O.94.1 3/src #./configure (4)修改所生成的Makefile文件,找到CC=gcc,将其改成CC=arm-linux-gcc, 再找到CPP=gcc-E,将其改成CPP=arm—linux—gcc-E,然后保存退出。 (5)运行make进行编译,得到的可执行程序为boa,将调试信息剥去。 群make 撑arm—linux—strip boa (6)进A/etc目录下,找到boa.conf文件,对BOA进行配置,配置结果如下: Port 80 User root Group root ErrorLog/dev/console AcccssLog/dev/null ServerName friendly-ann DocumentRoot/www DirectoryIndex index.html KeepAliveMax 1 000 KeepAliveTimeout 1 0 MimeTypes/etc/mime.types DefaultType text/plain CGIPath/bin AddType application/x—httpd-cgi cgi 在目标板的/ctc目录下创建boa目录,把第五步中生成的可执行程序boa和 第六步中的配置文件boa.conf分别传至目标开发板的/bin目录和/etc/boa目下, 执行命令撑./bin/boa,WEB服务器便在开发板上运行起来了。 3.3嵌入式数据库sqlite3在家庭网关中的应用 所谓的嵌入式数据库【27】就是指在一些嵌入式设备中的数据库管理系统,它通 常与操作系统和具体应用集成在一起,无须独立运行的数据库引擎,由程序直 武汉理工大学硕士论文 接调用相应的API去实现对数据的存取操作。与普通数据库相比,嵌入式数据 库是一种具备了基本数据库特性的数据文件,与普通数据库的程序驱动式不同, 而采用了引擎响应式。 目前在Linux下常用的数据库有多种,其中Oracle和mM DB虽然功能强大, 但体积过于臃肿,且不能免费使用。MySQL体积中等,功能也较齐全,不过也 需要付费才能使用,而且相对于嵌入式设备而言,体积仍然是过于大的。MySQL 是小型的数据库,也十分适用于嵌入式设备,但使用期限有限制,并且不是完 全开源的。几款开源的数据库相比,PostgreSQL功能完善,但体积较大;Berkeley DB开发难度较大;sqlite则在体积与功能之间做到了较好的平衡,是一款比较 理想的嵌入式数据库。 3.3.1 sqlite简介 sqlite是嵌入式SQL数据库引擎SQLite(SQLite Embeddable SQL Database Engine)的一个扩展,它是一个实现嵌入式SQL数据库引擎的小型C语言库(C library),实现了独立的,可嵌入的,零配置的SQL数据库引擎【23】。具有如下特 性: (1)事务操作是原子,一致,孤立,并且持久的,即使在系统崩溃和电源故 障之后。 (2)源代码开放,便于用户做进一步的开发。 (3)体积小,全部源码大约3万行C代码,250KB左右,十分适合于嵌入式 ‘. 系统。 (4)功能完善,实现了绝大多数SQL92标准。 (5)具有丰富的API接口,简单易用。 3.3.2 sqlite3在ARM.Linux平台上的编译与移植 为了在家庭网关系统中使用sqlite,必须根据系统的硬件平台移植sqlite[291, 移植的具体步骤如下: (1)从网络上下载本设计所使用的sqlite的源代码sqlite-3.6.17.tar.gz,将其置 于宿主机的/home/fcj目录下。 (2)进/X/home/fcj目录,解压sqlite03.6.17.tar.gz,得到sqlite-3.6.17目录。 #cd/home/fcj 武汉理工大学硕士论文 #tar tar-xvzf sqlite-3.6.1 7.tar.gz 3 ) 进入sqlite.3.6.17目录,通过拷贝命令将Makefile.1inux.gee文件重命名为 Makefile,并手动修改Makefile文件的内容。具体修改情况,如表3-1所 示。 #cd sqlite-3.6.17 #cp Makefile.1inux—gee Makefile 4 ) 修改Makefile的包含文件main.mk。找到这个文件中的下面一行: 把select.O table.O tokenize.O trigger.o\ 替换成select.0 table.O tclsqlite.0 tokenize.O trigger.o\ ,L/L/L 5 ) 最后执行make&&make install命令,将在sqlite-3.6.17/目录下生成库函 数文件libsqlite3.a和头文件sqlite3.h,这就是所需要的两个文件了。 表3.1 Makefile文件修改情况 位置 17行 73行 8l行 原值 TOP=。/sqlite TCC=gcc-06 AR=al-cr 修改为 TOP=. TCC=arm-linux-gcc-06 AR=arm.1inux.ar Cl" 83行 86行 96行 103行 RANL【B=ranlib MKSHLIB=gce-shared TCI!FI。AGS .I/home/drh/tcltk/8.41inux LmTCL RANLIB=arm.1inux.ranlib MKSHLIB=arm—linux—gcc-shared = #TCL_FLAGS = .I/home/drh/tcltk/8.41inux = 群LIBTCL = /home/drh/tcltk/8.41inux/libtcl8. 49.a-lm—ldl /home/drh/tcltk/8.41inux/libtcl8.49.a ..1m..1dl 将生成的库函数文件和头文件下载到目标板上,输入./sqlite命令,在平台上 就会出现“sqlite>'’提示符,表明sqlite已经移植成功。 3.4本章小结 本章着重研究了嵌入式网关系统的构建过程,首先搭建了嵌入式系统的开发 平台,接着根据嵌入式系统的特点,在Linux系统下移植了BOA服务器和嵌入 式数据库sqlite3,利用CGI技术实现了客户端与服务器端的交互。 武汉理t大学硕士论文 第4章ZIGBEE无线家庭网络 4.1 ZIGBEE技术概述 4.1.1 ZIGBEE技术的概念及由来 ZIGBEE技术是一种新兴的近距离、低复杂度、低功耗、低数据速率、低成 本的无线网络技术,它是一种介于无线标记技术和蓝牙之间的技术提案。它依 据IEEE802.15.4标准,在数千个微小的传感器之间相互协调实现通信。这些传 感器只需要很少的能量,以接力的方式通过无线电波将数据从一个传感器传到 另一个传感器,所以它们的通信效率非常高【301。 说起ZIGBEE技术名称的由来还是比较有趣的,据说是来自于人们对蜜蜂采 蜜过程的观察。蜜蜂在采蜜的过程中经常会跳着优美的舞蹈,排成规则的ZigZag 的形状,以此来实现彼此间信息的交互,以便获取共享食物源的方向、距离和 位置等信息。因为蜜蜂自身体积小,所需要的能量少,又能传送所采集的花粉, 因此人们从中得到启发,用ZIGBEE技术来代表具有成本低、体积小、能量消 耗少和传输速率低的无线通信技术,中文译名通常被称为“智蜂”【3l】。 4.1.2 ZIGBEE技术的特点 作为一种新兴的无线通信技术,ZIGBEE技术之所以能够得到快速的发展和 推广,在于它本身的许多技术特点相对于其他的无线传输技术而言具有很大的 优势。ZIGBEE的技术特点主要包括以下内容【32】: (1)功耗低:由于工作时间较短、收发信息功耗较低且采用了休眠模式,使得 ZIGBEE节点非常省电,工作时间可以长达6个月到2年左右。 (2)数据传输可靠:ZIGBEE的媒体接入控制层(MAC层)采用talk.when.ready 的碰撞避免机制,每个发送的数据包都必须等待接收方的确认信息,避免了 发送数据时的竞争和冲突。 (3)网络容量大:一个ZIGBEE的网络最多包括有255个网路节点,其中一个是 主控(Master)设备,其余则是从属(Slave)设备。若是通过网络协调器 (Network Coordinator),整个网络最多可以支持超过64000个ZIGBEE网路 27 武汉理工大学硕士论文 节点,再加上各个Network Coordinator可互相连接,整个ZIGBEE网络节点 的数目将十分可观。 (4)时延短:通信时延和从休眠状态恢复到正常工作状态的时延都做了相应的优 化,时延比较短。 (5)兼容性:ZIGBEE技术与现有的控制网络标准无缝集成。通过网络协调器 (Coordinator)自动建立网络,采用载波侦听/冲突检测(CSMA。CA)方式 进行信道接入。为了可靠传递,还提供全握手协议。 (6)安全性:ZIGBEE提供了数据完整性检查和鉴权功能,在数据传输中提供了 三级安全性。 (7)实现成本低:模块的初始成本估计在6美元左右,很快就能降到1.5.2.5美 元,且ZIGBEE协议免专利费用。目前低速低功率的UWB芯片组的价格至 少为20美元,而ZIGBEE的价格目标仅为几美分。 (8)ZIGBEE网络的自组织和自愈功能强:无需人工干预,网络节点能够感知其 他节点的存在,并确定连接关系,组成结构化的网络;而且当网络内节点产 生故障或节点位置发生变动时,网络都能够自我修复,并对网络拓扑结构进 行相应地调整,能保证整个系统的正常工作。 4.1.3 ZIGBEE的设备节点类型 由前一节我们知道,ZIGBEE网络的网络容量非常大,ZIGBEE标准规定可 以在一个单一的网络中容纳65535个节点【33】。可以说节点的数量是十分庞大的, 不过节点的类型却是十分有限的,所有这些节点都属于以下三种节点中的一种。 1)协调器(Coordinator) 不论ZIGBEE网络采用何种拓扑结构(即网络的组织形式,将在下面的章 节中进行介绍),网络中都需要有一个并且只能有一个Coordinator节点。在网络 层上,Coordinator通常只在系统初始化的时候起作用。在一些应用中网络初始 化完成后,即便是关闭了Coordinator节点,网络仍然可以正常的工作。但是如 果Coordinator还负责提供路由路径,比如说在星形网络的拓扑结构中(我们将很 快提到这种拓扑结构),Coordinator就不能被关闭,而必须持续的处于工作状态。 同样如果Coordinator在应用层提供一些服务,比如两个网络通过Coordinator进 行绑定时也必须持续的处于工作状态。总体来说Coordinator的主要任务有四个 【38】: 武汉理工大学硕士论文 (1)在2400MHz到2483.5MHz的频段中选择网络所使用的频率通道,通常应该 是最安静的频率通道。 (2)开始组建一个无线网络。 (3)接收其他节点的请求信息,选择性的允许其他节点加入到刚组建中网络中 来。 (4)它通常还会提供信息路由,安全管理和其他的服务。 2)路由器(Router) 如果ZIGBEE网络采用了树形和星形拓扑结构(关于这两种拓扑结构我们马 上就会提到)就需要用到Router这种类型的节点,可以说这类节点在网络中占得 比重是最大的。通常来说,这类节点是不允许休眠的。它主要有以下两个任务【卅: (1)在同一个网络内的节点间转发信息以达到通信的目的。 (2)允许一些子节点通过自己加入到它所在的网络中。 3)终端节点(End Device) End Device一般处于网络的边缘,主要任务就是发送和接收信息,但它不能 够转发信息,也不能让其他节点加入到网络中来。通常一个End Device节点是 由电池来供电的,并且为了节省电能,当它不在数据收发状态的时候都是处于 休眠状态的。 4.1.4 ZIGBEE网络的拓扑结构 与一般网络的拓扑结构类似,ZIGBEE网络的拓扑结构一般有三种形式:星 形拓扑、树形拓扑、网状拓扑【35】【361。__ .. 1)星形拓扑 这是最简单的一种拓扑形式,在这种拓扑结构中主要包含一个Coordinator 节点和一系列的End Device节点,如图4.1所示。Coordinator是任意两个End Device通信的中转站,也就是说End Device可以自如的与Coordinator进行通信, 如果想与其他的End Device节点进行通信的话就必须先通过Coordinator节点进 行信息的转发。不难发现,万一网络中的Coordinator发生了故障,整个网络就 会陷入瘫痪的状态。 武汉理工大学硕士论文 ●● 一、 r1 r1 L一 一 L— L一 r—1 ●“… L— 图4.1星形拓扑结构 2)树形拓扑 树形拓扑包括一个Coordinator以及一系列的Router和End Device节点,如 图4.2所示。Coordinator既可以与Rout霄相连又可以与End Device相连,而它 的Router子节点又可以连接一系列的Router和EndDevice节点,这样就形成了 一个层次清晰的通信网络。 ④ ● j…… ● ◆ ● ●… . ·I『◆··..· ●…。 ● 图4-2树形拓扑结构 在这种拓扑结构中,有同一个父节点的节点之间称为兄弟节点,而有同一个 祖父节点的节点之间称为堂兄弟节点。每一个节点都只能和他的父节点和子节 点之间进行通信,如果需要从一个节点向另一个节点发送数据,那么信息将沿 着树的路径向上传递到最近的祖先节点然后再向下传递到目标节点。同星形拓 扑结构一样,信息具有唯一路由通道.中间有一个路由节点发生故障.就会造 成局部或大面积的系统阻塞。 3)网状拓扑 同树形拓扑一样,网状拓扑结构也是由一个Coordinator以及一系列的Router 和End Device节点组成,如图4-3所示。但是与树形拓扑相比,网状拓扑具有 更加灵活的信息路由规则,在可能的情况下,路由节点之间可以直接的通讯。 武汉理工大学硕士论文 这种路由机制使得信息的通讯变得更有效率,而且即使网络中有某个节点出现 了故障,信息也可以自动的沿着其他的路由路径进行传输,提高了信息传输的 可靠性。 , ' ◆ ● ● ●一, I:_I◆I O…。 4.2 ZIGBEE协议 ZIGBEE标准定义了一种网络协议,这种协议能够确保无线设备在低成本、 低功耗和低数据速率网络中的互操作性.它是构建在IEEE 802 15 4标准基础之上 的。802 15.4标准定义了MAC和PHY层的协议标准,MAC和PHY层定义了 射频以及相邻的网络设备之间的通讯标准I"1。而ZIGBEE协议栈则定义了网络 层,应用层和安全服务层的标准。 4.2 1 ZIGBEE协议栈框架 ZIGBEE协议栈框架是在OSI七层模型的基础上根据市场和实际需要定义 的,它采用标准的分层结构,与其他常见的无线通信标准相比,ZIGBEE拂议栈 具有紧凑而且简单的特点而且对环境配置要求不高删,如图“所示。 武汉理E大学硬十论文 ●■__■●■ +一 ¨ , 瑚一。黝_l 一——… Imm 图4-4 ZIGBEE协议栈框架 由固4-4可以看出,最上面的应用层主要包括AF、APS、ZDO以及用户定 义应用对象。在这一层中,应用支持子层(APS)负责维护设备绑定衷,以及在 绑定的设备间传输数据。ZIGBEE设备对象fzDO)负责定义设备在网络中的角色 r如Coordinator、Router或者其他的中断设备),提出或响应绑定请求,以及建立 网络设备『白】的安全关系。此外,它还要负责网络设备的发现及判定对方提供哪 类服务。网络层主要是选择设备在建立连接和断开时所采取的机制.以及数据 在传输过程中为保证安全性所采取的一些措旅。此外,在网络建立后,它还要 负责设备的路由发现、维护和转交。例如在建网之初,它会根据需要选择网络 的组织形式为新设备分配短地址,井提供一些必要的函数以保证相邻层也能顺 利的工作等。而最下面的PHY和MAC层主要定义了射频以及相邻的网络设备 之间的通讯标准,它是由802 15 4协议来完成的。 在这种层次结构中,每一层都接受下一层所提供的服务,并为上一层提供服 务。在这一过程中存在两个比较重要的实体:数据实体和管理实体。他们分别 提供数据传输和管理的服务。 武汉理工大学硕士论文 4.2.2基于ZIGBEE协议栈的应用函数接口(APl)开发 在学习zIGBEE协议栈的各类函数开发接口之前。让我们先来看一下 ZIGBEE设备程序的大体架构,如图4.5。从图上不难看出,用户的ZIGBEE应 用程序实际上是和ZIGBEE协议栈交替的对处理嚣和外围部件进行操作。为了 实现这一目标.Jennie在ZIGBEE协议栈的基础上提供了BasicOpcra血gSystem J■■_ BOS,图中浅黄色所示的部分就是BOS调用用户程序所用的函数接口【蜘。 II —一 lI _一 —一 _一 图4_5 ZIGBEE设备程序架构 1)ApplicationDevelopment(AD)API 这类函数是实际应用与ZIGBE协议栈进行交互的基本接口,主要分为三类: f11应用初始化函数接口:主要负责系统上电时初始化协议栈。例如 AppColdStart、AppWarmStart· f2)应用程序调用协议栈的函数接口:这类函数一般由第一类函数来调用。例如 JZS u32InitSystem.JZS vgtmStack。 (3)协议栈调用应用程序的函数接口:这是应用程序与协议栈进行通信的接口. 数目比较多,例如JZA_boAppSt耐、JZA vStackEv吼lt,JZA_vAppDefineTasks 等。协议栈在运行过程中如果需要应用程序进行相应的处理,就会把控制权 交给应用程序的接口。 2)Application Framework(AF)APIs 武汉理工大学硕士论文 这类函数主要用来处理数据的发送和有关设备描述的处理问题,主要分为两 大类: (1)AF sub.1ayer Data Entity(AFDE)APh主要用来创建和发送数据请求,一般在 af.h文件中进行定义。 (2)AF sub.1ayer Management Entity(AFME)APh主要用来对设备的描述(Device descriptor)进行增加,修改和删除等操作,以便及时的更新网络,这一系列 函数在afProfile.h中定义。 3)ZIGBEE Device Profile(ZDP)APIs ZDPAPI是用来和远程节点的ZIGBEE Device Objects进行交互的函数接口, 它主要包含三类函数: (1)ZDP Device DiscoveryAPI:这类函数用来获得远程节点的网络标识。 (2)ZDP Service Discovery API:主要用来获得远程节点所能够提供的服务。 (3)ZDP BindingAPh用来实现设备间的绑定和反绑定。 ZDP API是通过请求应答的模式来工作的,即节点可以通过函数调用的方式 向网络发送请求,网络会以地址或广播的形式在网络内转送这一请求,然后由 网络中可以应答的节点发出回应信息。 4)Basic Operating System(BOS)API BOS API用于与BOS进行交互,提供注册用户任务以及处理应用程序与BOS 间的消息、中断管理和内存管理等功能。 在实际的应用开发过程中,我们就是要在这些函数接口中添加自己的一些应 用逻辑,定义自己需要的数据结构以及数据处理的方法,并选择适当的时机进 行调用。有些接口可能在开发过程中应用较少,或者根本应用不到,但是仍然 需要保留函数体,以保证系统的正常运转。 4.3系统硬件平台 本系统利用了博控公司的ZIGBEE开发模块【341,它的实用价值非常高。该模 块采用了英国Jennic公司一款高性能、低功耗的无线SOC芯片JN5121,除了性 能高、功耗低的优点外JN5121还兼容了802.15.4协议。JN5121是Jennic公司 开发的JN51系列的产品之一,这一系列产品具有很好的兼容性,封装与管脚也 完全一样,只要用户掌握了其中的任意一种产品,就能够很快的利用其他相关 产品进行开发,给用户提供了很大的选择空间,而且能够很容易的在该系列的 武汉理工大学硕士论文 产品中进行平台移植。 如图4-6,该模块十分简单,采用两节5号电池供电,右上角的白色矩形区 域即是主流芯片JN5121,主要包含以下部件: ∞ d85^ 妒 f ’n ● J 5● == 一一 :i:::球二^;;;1黧 幽4-621GBEE模块 JN5121模块。 板载温湿度传感器。 RS232接口:用于编程或者连接其他的串口设备。 YN512l的I/O扩展端口 J1 CMOS Program J2ProgRun J3 F1ash J4FO脚 J5 RS232/Progr&m Port J6儿和J5编程/串口选择 J7RS485端电阻 SWI.SW2可编程按键 SW3开关(可选择外供电或电池) PWR电源指示灯 LEDl.LED2可编程LED 武汉理工大学硕士论文 4.4本章小结 本章首先简单介绍了ZIGBEE技术的概念、名称的由来和技术特点,接着详 细研究了ZIGBEE技术的网络基础,包括节点类型、拓扑结构和路由方式,然 后对ZIGBEE协议进行了解析并给出了协议栈的框架结构,最后在协议栈框架 结构的基础上学习了基于ZIGBEE协议栈进行开发的程序框架和常用的应用函 数接口。 武汉理工大学硕士论文 第5章智能家居系统的设计与实现 通过第二章的总体设计图,我们可以知道要实现本系统的功能,关键是要完 成客户端的用户管理系统,嵌入式数据库在家庭网关中的应用以及ZIGBEE无 线家庭网络的组建三个模块。本章里将依次给出各个功能模块的软件实现,并 对系统实现的功能进行相应的测试。 5.1用户管理系统的界面设计 在本设计中,用户可以在客户端的浏览器中输入嵌入式家庭网关的IP地址 (59.69.74.146)进入用户管理系统的登陆界面,若用户权限得到认可便可顺利 登陆用户管理系统。登陆后,用户就可以根据自身的需要选择并提交相应的表 单对家里的设备进行远程控制。其基本架构如图5.1所示。 图5.1用户管理系统基本架构 当远端的用户通过m登录后,首先将进入用户验证界面,如图5.2。用户验 证是用户登录的一个必要模块,用户的用户名和密码被存储在嵌入式数据库中, 只有通过验证的用户才能顺利登录智能家居管理系统。 37 武汉理工太学硕士论文 l;jl_.;..、矗 l I■¥ ?{一”啊。,■ , ‰/ ■ ;- 一 图5—2用户验证界面 户权限得到认证后,就可以进入智能家居管理系统了,如图5-3所示。在 这里.您可以根据主页显示的内容和自身的需要进行相关的操作,主要包括注 册新的用户,远程控制、查询家庭设备等。 j {0d^i¨ 一* · 一一—— 露疆强强豳豳蛋醴,,。I 档盈一 歧迎光临错能家州骨理系统! ””””8 I I 圆奄日一E曼§gi目§Ⅱ黢噩t☆喇i∞{w;女Ⅲ麓持§e£};*¥i{‰l?##l§l?§2wi“粥d目嚣【霆Dl2唧黜武篇R*目端蚓蹄E自搿*鑫∞&麓^i掌日lI 嘻#g}·…_黼 n4&&*·%《∞±#镕}E女H口8 l I 图5-3智能家居管理系统主页 武汉理工人学硕士论文 选择设备管理时,就会出现图5.4所示的界面。如果想控制其中的某个设 各.就可以点击相应的链接进入到设备主控界面。设备主控界面及其他操作界 ………1 …"。t'0 面会在后面的功能测试中陆续向大家展示,这里就不再一一列举了。 i● :羔o;:口:h』 三-J二j妇釜蕾譬竺兰竺竺兰二竺 +^’● 鋈 nⅡ*月《^&f*《*§‰口&*gi镕q∞¥日. ………’……41】7…■1=,i…|●*Hnlt. 圈5_4设备管理界面 5.2嵌入式数据库在家庭网关中的创建 本设计所开发的用户管理系统,是通过表单来实现用户与服务器之间交互 的。当用户从客户端测览器提交表单查询或控制家庭内部的设备时,服务器会 根据请求类型决定返回静态网页还是调用CGI应用程序作为响应,这就要求我 们必须要提前建立相关的数据库来存储用户和设备的信息,并能够及时的更新 ¨0’。数据库的相关操作如下: (1)创建一个数据库并命名为fmmily.db。这一数据库与传统的数据库是不同 的,我们把它称作后台数据库,是不需要设计前端界面的,这就大大节 省了开发的周期。数据库的建立非常简单.只需要调用接口函数int sqlite3 文件名. sqlite3 ¨)即可。在这里文件名如果存在就打开该_ope“ 文件,反之系统就会创建一个以此命名的数据库文件。 (2)创建数据库信息表。本系统中主要有两种信息表:用户信息表和家庭设 备信息表。用户信息表中主要存储用户的认证信息,如用户名和密码等。 武汉理工大学硕士论文 家庭设备信息表中则主要存储家庭设备的运行状态。主要用到CREATE TABLE和INSERT语句。 (3)设计与所建数据库相交互的WEB页面。可以说这些WEB界面就是数据 库的“前端界面”,用户通过提交页面内的表单就可以调用与数据库相关联 的CGI程序,实现对数据库的插入、更新、查询、删除等操作。 下面将结合程序代码,给出数据库以及数据库信息表的创建过程,鉴于篇 幅有限,这里只给出用户信息表的创建代码【4l】。用户信息表的结构如表5.1所示。 表5.1用户信息结构表 关键字 类型 说明 U¥e=I'11ame Char 用户账号 Password Ch盯 用户密码 Regtime Integer 注册时间 #include<stdio.h> #include<stdlib.h> #include”sqlite3.h” #define MAXQRY 200 #define—.DEBUG—. intmain(void) { sqlite3·db=NULL; char宰zErrMsg;0; char qry[MAXQRY]; int re; ro=sqlite30pen(”family.rib”,&db); if(rc) { fprintf(stderr,”Can't open database:%s\n”,sqlite3_errmsg(db)); sqlite3 close(db); return 0; ) else char幸sql=”CREATE TABLE User( 武汉理工大学硕士论文 Ⅱ)IN。IEGER, Username CHAR, Password CHAR); sqlite3_exec(db,sql,0,0,&zErrMsg); #ifdef——DEBUG—. print颤”%s\n”,zErrMsg); #endif sprintf(qry,”INSERT INTO\”UserV(Usemame,Password,Regtime)kn””VALUES (‘%s’,‘%s’,‘%d’)”,name,password,regtime); sqlite3_exec(db,qry,O,0,&errmsg); sqlite3_elose(db); l"etuI_n O; } 其中name,password,regtime是用户在客户端提交的账号、密码及注册时 间,提交后执行相应的CGI程序就会调用相关的数据库操作对用户信息表进行 更新,从而实现用户、WEB服务器和数据库sqlite3的交互。 5.3 ZIGBEE无线家庭网络的实现 5.3.1软件开发环境 要进行ZIGBEE协议的开发,首先要搭建好软件开发环境。在这里软件开发 环境的搭建要从三个方面去考虑【42】: (1)代码编辑和编译环境:主要是两款开发工具,Codeblocks lv0和Cygwin 2vO。 前者是Jennic所提供的代码编辑和编译环境,是一款开源的C/C++开发工具, 它与cygwin的gcc编译器进行连接完成代码的编译工作。 (2)ZIGBEE协议栈组建安装包:主要包含ZIGBEE底层协议802.15.4的支持组 件802.15.4 Stack和ZIGBEE协议栈的安装包ZIGBEE stack 1.5.1。 (3)程序下载工具:Flash programmer 1.4,主要用来将编译好的代码下载到开发 板中。 41 武汉理工大学硕士论文 5.3.2软件的总体结构 该部分软件结构的确立是建立在前面函数接口的基础之上的,主要有三个层 次:系统平台层,协议层和应用程序层。系统平台层主要是调用一些基本的接 口函数完成对系统的一系列初始化,并为协议层提供相应的服务。协议层既要 实现802.15.4的PHY和MAC层协议,又要实现ZIGBEE网络层的协议,同时 还要为应用层提供服务。应用层则主要是通过函数接口调用协议层所提供的服 务,以实现对整个网络的管理【431。软件的总体结构如图5.5。 1r 应用程序层 上 ]r 协议层 JL T 系统平台层 ! ● ● ● 上 囤囤回 T s02.-s.t/Ztgbee协议 下 Ⅸ)s 硬件底层驱动 图5.5 Zigbee网络软件架构 5.3.3 ZIGBEE网络的建立 本系统在组网的过程中主要涉及两种节点,协调器节点和一般的路由节点, 其中协调器起着决定性的作用。组网的流程是这样的:首先确定一个节点作为 系统的主控制器节点,也就是作为协调器。它会在自己所处的空间内进行信息 扫描,从2400MHZ一2483.5MHZ的16个通道中选择一个,一般是最安静的一 个,发起请求并创建一个PAN(Personal Area Network)网络。同时它会创建一 个网络邻接表,以便存储即将加入本网络的其他路由节点的信息。然后协调器 会时刻对网络进行监听,当发现路由节点的请求信息后,它会根据路由节点所 提供的有效信息(一般是由IEEE分配的64位全球唯一标识符)对其进行审核 以决定是否允许该节点加入。审核通过后,协调器会为该路由节点分配一个16 42 武汉理工大学硕士论文 位的PAN短地址以区别于本网络内的其他节点,并将该节点的基本信息添加到 网络邻接表中。以此类推,协调器会以同样的方法添加其他的路由节点或其他 路由节点的子节点,直至家庭中的各个设备节点都已经添加到网络中为止。最 后,协调器会为节点间的通信制定统一的协议标准,实时的更新网络邻接表, 以便合理有效的管理整个网络【删。 1)协调器节点程序设计 协调器是整个ZIGBEE网络的核心,它主要负责网络的建立、成员的加入和 网内地址的分配、网络邻接表的更新、数据的转发等,此外还要通过串口与ARM 处理器进行通斜451。一个PAN内有且仅有一个协调器,一般选择第一个进入的 网络,它的工作流程如图5.6。 协调器节点在工作的过程中调用了许多的函数接口,主要用来完成建立网 络、转发指令、向ARM处理器传输数据等。下面就给出几个重要函数接口的设 计【38】。 (1)建立网络。这一步中协议栈会通过函数PUBLIC void JZA vStackEvent (teJZS_EventldentifereEventld,tuJzs_StackEvent,·puStackEvent)来反馈网 络层的一些事件,相对于调器而言就是网络启动成功或数据发送完成等。具 体实现如下: PUBLIC void JZA vStackEvent(teJZS_Eventldentifier eEventld, tuJZS..StackEvent*puStackEven0 { if(eEventld—JZS EVENT NWK_STARTED) { //load the simple descriptor nOW that the network has started uint8 u8InputClusterCnt =l: uint8 au8InputClusterList[】={WSN_CID_SENSOR_READINGS}; uint8 u80utputClusterCnt =l; uint8 au80utputClusterList[]={WSN_CID_SENSOR_READINGS}; (void)afmeAddSimpleDese(WSN_DATA_SINK_ENDPOINT, WSN_PROFILE_ID, oxoo007·幸·幸宰勺蜘血c公司规定·¨····¨/ 0)【00/.·¨·.j即nic公司规定幸宰···¨··/ 0x00, u8InputClusterCnt, bNwkStarted=TRUE; au8InputClusterList, u80utputClusterCnt, au80utputClusterList); 43 武汉理工大学硕士论文 vLedControl(1,o); 图5-6协调器节点工作流程图 (2)转发指令。协调器通过串口接收家庭网管服务器的控制指令,接着对数据进 行解析然后向相关的设备发送指令。在这一过程中,首先要接收串口信息, 主要通过PUBLIC void JZA_vPeripheralEvent(uint32 u32Device,uint32 武汉理工大学硕七论文 u32ItemBitmap)i函数,这个函数主要是用来处理外部中断的,具体的实现过 程如下: PUBLIC void JZA__vPeripheralEvent(uint32 u32Deviec,uint32 u32ItemBitmap) { tsHwIntData*psHwIntData; uintg u8WriteNextPtr, /’Quglle event for processing during JZA_vAppEventHandler call II u8WriteNextPtr=(sHwEventQueue.u8WritePtr+1)&HW_INT_Q_PTR_MASK; if(uSWriteNextPtr I_sHwEventQueue.uSReadPtr) { l’There is space on queue I/ psHwIntData=&sHwEventQueue.asHwIntData[sHwEventOuene.u8WritePtr]; psHwIntData->u32Dcvice=u32Device; psHwIntData->u321temBitmap=u321temBitmap; sHwEventQueue.u8WritePtr=u8WriteNextPtr;, } if(u32I)evice==E_AI-II__DEVICE_UART0) { if((u32ItemBitmap&0x000000丘户E_AHI_UART_INVr_RXDATA) { cCharln=((u32ItemBitmap&0x0000ff00)>>8); vAHI_UartWriteData(E_AHI_UART_0,cCharln); vSendData0; } } /·If no space on queue,interrupt is silently discarded吖 } (3)通过串口向网关服务器发送数据。当协调器接收到其他节点采集的信息后会 根据需要调用vTxSerialDataFrame将信息上传到服务器,这里主要是节点采 集的一些环境的温湿度等信息,可以起到很好的监测作用。 PRIVATE void vTxSerialDataFrame( uintl6 u16Nodeld, 产幸采集信息的节点地址木吖 45 武汉理工大学硕士论文 uintl6 u16Humidity, ,.·环境的适度信息·吖 uintl6 u16Temperamre, 严·环境的温度信息·吖 uintl6 u16BattVoltage) /.·设备节点的工作电压·吖 { primf(饧砌喇抛融:u16NodeId); printf(”Ⅵ州啪idity=:%d”,u16Humidity); print'f(”Ⅵ订’锄p啪tu醑=%dtt,u 1 6Temperature); printf(”挑ltagF%d”,u16BattVoltage); > 2)路由节点程序设计 路由节点是整个网络中存在最多的一类节点,它主要接收协调器的消息并 执行相关指令来控制相应的设备,同时也转发其他节点的信息以增加网络内的 路由通道,而且它还能够采集工作环境内的一些信息可以起到很好的监测作用 №】。路由节点的工作流程如图5.7。 路由节点加入网络的过程与协调器建网的过程类似,而向协调器和其他节点 发送信息的过程则与协调器向路由节点转发指令类似,在这两个过程中仅有部 分语句稍有差别,在这里就不再进行重复。本部分主要给出路由节点接收协调 器和其他节点信息的实现过程。路由节点接收其他节点的信息主要是通过 PUBLIC’bool—t JZA_bAfMsgObject函数来实现的。在这一过程中,这个函数通 过解析pau8AfduInd携带的数据内容将每个节点的数据读取出来【421。 PUBLIC bool_t JZA_bAfMsgObject( APS Addrmode_e eAddrMode, uintl 6 u1 6AddrSrc, uint8 u8SrcEL uint8 u8LQI, uint8 u8DstEP, uint8 u8ClusterlD, uint8·pu8ClusterlDRsp, AF_Transaction_s幸puTransactionInd, AF—Transaction—s宰puTransactionRsp) { uintl6 u16Cmd; if((eAddrMode==APS_ADDRMODE_SHORT) &&(u8DstEP=WSN_DATA SOURCE_ENDPOINT)) { 武汉理工大学硕士论文 if(u8ClustcrID:==WSN_ClD_SENSOR READINGS) {, ul 6Cmd=puTransactionlnd->uFrame.sMsg.au8TransactionData[0]; vAHI_UartWfiteData(E_AHl_UART 0,u16Cmd); } } return O: <二匝二> ! 墨竺圭皇 图5.7路由节点工作流程图 47 5.4系统功能测试 武汉理工大学硕士论文 5.4.1系统的硬件连接 到目前为止,系统的各个功能模块都己经顺利实现了,在进行功能测试前首 先要将各个硬件模块连接成一个统一的系统,硬件连接的实物图如图5-8所示。 攥j=_ 睡≥慧螽,~ 图5-8系统硬件连接实物图 左上方为ARM嵌入式服务器,一方面通过网线连接家庭路由,另一方面则通过 二三交叉的串口与家庭无线网的协调器即右上方的ZIGBEE模块相连。右下方 的ZIOBEE模块承担路由节点的角色,用来接收协调器的相关指令,而左下方 为模拟家电设备的单片机系统板,二者通过直连串口线来完成通信。 5.4.2远程控制家电设备 通过任何一台联网的计算机登陆智能家居管理系统,点击页面上的设备管理 一栏,进入如图5.4所示的设备管理主界面。由于各个设备的控制都大同小异, 在这里我们仅选择空调来进行家电的远程控制涮试。 当我们点击设备管理界面中的空调链接时。会看到空调控制的各个造项,如 图5-9所示。在该界面下我们可以打开空调,设置空调的工作模式,调节空调的 …∞… ~::2…麓:生=:=!—0。武j汉i理:工二大二学硕~士…论文,… …。’ l j flI『 、 (j,_-≤b? 图5-9空调控制选项 温度等。我们选择将空调打开,其他选项保持默认值,然后点击提交按钮,将 设定好的表单发送给WEB服务器。WEB服务器收到表单后,将对表单内容进 行解析,提取其中的数据信息并通过串口向无线家庭网络的协调器传送相关指 令。协调器接收到指令后,根据对应的地址信息向与空调对应的路由节点转发 指令,从而开启空调并将初始温度设定为2s摄氏度。由于条件限制,本设计中 采用单片机系统来模拟相关家电的动作,如图5-8所示。单片机板上的数码管最 初会显示25,用来模拟空调的初始温度,当多提交表单上的温度值改变时,该 数码管显示的数值也会相应的改变。 5.4 3查询家电设备工作状态 家电设备工作状态的查询与控制十分相似,首先要进入设备的信息查询界 面,如图5.10。在这里我们仍然以空调为倒,对系统的信息查询功能进行测试。 选择界面表格中的空调单选框,点击提交按钮向WEB服务器提交查询请求。像 远程控制一样服务器会向家庭网络发送相关指令,与空调相连的节点收到指令 后就会将自身传感器所采集到的设备信息作为响应发回给服务器显示,如图5-11 所示。图中的数据由上而下分别代表了节点的地址、当前环境下的湿度和温度, 以及设备当前的工作电压。 …~~ 武汉理工大学硕士论文 ^ …■…-n。。…4”日■……q口… ·^{- 黟器:霉 —...—卜 一~一一i面石—一 女mmm&^女i*女目§#.*☆"0itmE&§ 一…●1●…£L—t=1t—e…w… L-二————上盘互霉叠■■L二.—二二二——二一一 。………+t P~…’口 joo^_-Y_ 图.5-10信息查询界面 ……●…m●w 4&…~_#¨一… ··。■ 图5.1l设备工作状况反馈信息 武汉理工大学硕士论文 5.5本章小结 本章首先简单介绍了ZIGBEE技术的概念、名称的由来和技术特点,接着详 细研究了ZIGBEE技术的网络基础,包括节点类型、拓扑结构和路由方式,然 后对ZIGBEE协议进行了解析并给出了协议栈的框架结构,在此基础上又学习 了基于ZIGBEE协议栈进行开发的程序框架和常用的应用函数接口,最后给出 了系统的硬件平台和软件实现。 武汉理工大学硕士论文 第6章总结与展望 6.1本文工作总结 本文将ZIGBEE技术与ARM技术相结合,并有效融合了TCP/IP、CGI和 sqlite3等技术设计完成了一套简单的智能家居系统,设计的工作主要包括以下几 部分: (1)在已有知识的基础上,进一步学习和查阅了大量的相关知识,结合实际 提出了本文的总体设计方案。 (2)根据本设计的需要,分析和研究了目前流行的几种操作系统,在ARM开 发板mini2440上移植了Linux操作系统、嵌入式Web服务器和嵌入式数 据库,搭建了本系统所需要的软硬件平台,为进一步的开发打下了坚实 的基础。 (3)构建完成了基于ARM.Linux的嵌入式家庭网关,采用表单与CGI技术, 实现了用户与家庭网关服务器间的动态交互,来满足用户完成远程控制 和查询的功能。 (4)学习和研究了ZIGBEE技术的特点、网络基础、协议栈框架结构和应用 开发接口函数,在此基础上组建了家庭内部的无线传感网络,实现了家 庭内部设备与家庭网关服务器以及内部设备之间的相互通信,实现了预 定的远程控制和查询功能。 6.2研究展望 在本文的研究过程中,尽管我学习查阅了大量的参考文献,认真研究了与 本系统相关的技术环节,并大胆的进行了应用,取得了一定的成果。但由于本 系统涉及的技术面甚广,自身的知识层面尚有欠缺,所以本系统还需要进一步 改善: (1)本系统所实现的设备控制和查询功能还略显单一,没有充分发挥服务器 应有的功能。在未来的学习和研究中,可以不断的进行拓展,以丰富系 统的功能。 52 武汉理工大学硕士论文 (2)系统的安全性和实时性还偏低,可能会给用户带来一些不便,需要在今 后做进一步的研究,提高系统的安全性和实时性,让用户更加方便放心 的使用本系统。 (3)无线家庭网络的稳定性和响应速度不是很理想,下一步应尝试提高 ZIGBEE模块陶瓷天线的稳定性和高效性,或者干脆尝试其他类型的天 线,从而还可以减小天线的体积,增强系统的灵活性 53 武汉理工大学硕士论文 致谢 论文工作接近尾声,硕士研究生学习生活行将结束.在这里,我衷心感谢 曾经给我支持帮助的老师和同学们! 本论文是在导师杨杰教授的认真指导和悉心关怀、帮助下完成的。她扎实 的学术功底、严谨的治学态度、和蔼的指导风格都给我留下了深刻的印象,我 在学习上取得的每一次进步都与她悉心的指导密不可分。在我攻读硕士学位期 间,导师不仅在学术上给予我谆谆教诲,而且在工作和生活上也提供了多方面 的关怀和爱护,令人终生难忘。在此论文完成之际,谨向认真指导培育我的导 师杨杰教授表示最真诚的感谢。 感谢在学习过程中给了我很大帮助的王虹教授、阙大顺教授、杨春金副教 授、王绪国副教授、胡德明副教授、孟哲副教授、胡君萍副教授,黄晓放副教 授以及实验室周常乐老师等。 感谢我的全班同学特别是同实验室的简雄军、马海、范亚琼、金克琼、陈 寅、王舸、李亚男、罗静等,正是他们的帮助和支持使得本文得以顺利完成, 与他们在一起能有助于我更好地思考和解决问题,和他们在一起的日子,我感 到非常的愉快. 感谢多年来养育和关怀我的父母,他们为我无私地奉献出了毕生的精力, 感谢他们给我支持和鼓励,让我能够安心投入学业。 最后,再次衷心感谢所有关心、帮助、支持我的人! 武汉理工大学硕士论文 参考文献 【l】向忠宏.智能家居.j匕京:人民邮电出版社,2002. 【2】Peter A.Liebcrzcit,Franz L.Dichcrt.Sensor Technology and its Application in Environmental Analysis[J].Analytical and Bioanalytical Chemistry,2007:237.247. 【3】夏汉广.基于网络的智能家居系统得研究与应用【硕士学位论文】.广东工业大 学.2005.5:5.8. [4】张志强.家庭网络技术标准及其在我国的发展策略研究[J】.邮电规划,2004,(3):3-6. 【5】蔡型,张思全.短距离无线通信技术综述川.现代电子技术,2004,(3):35.37. 【6】Take shi Saito,Ichiro Tomada,Yoshiald Takabatake et a1.Gateway Technologi骼for Home Network and Their Implementations.Distributed Computing Systems Workshop.2001 International Conference,Mesa,AZ,2001. 【7】马维华.嵌入式系统原理及应用.北京邮电大学出版社,2006 ISBN 7-5635.1073.7. [8】马忠梅,马广云,徐英慧等.ARM嵌入式处理器结构与应用基础.北京:北京航空航天大 学出版社,2002. 【9】SAMSUNG Limited.¥3C2440X RISC Microprocessor reference Manual. 【10】MINl2440用户手册.2009.074)8.http://arm9.net. 【11】韦东山.嵌入式Linux应用开发完全手册.人民邮电出版社,2008.8 ISBN 978.7.115.18262.3. 【12】马程.浅析嵌入式Linux.科技咨询导报.2007,(15). 【13】胥静主编.嵌入式系统设计与开发实例详解—基于ARM的应用.北京:北京航空航天 大学出版社,2005.7 [14】张杰,吴敏,曹卫华.基于¥3C2410的Linux移植.微型电脑应用,2005,22(3). 【15】陈莉君,冯锐等译.深入理解Linux内核.北京:中国电力出版社,2006. 【16】Daniel P.Bovet;Mareo Cesati.深入理解Linux内核(第三版).中国电力出版社.2007.9-1 ISBN 978.7.508.35394-4. 【17】(美)Claudia SalzbcrgRodriguez,GordonFischer,Steven Smolski.Linux内核编程必读(英 文影印版).机械工业出版社.2006-7.1 ISBN 7111193458. 【1 8】Karim Yaghmour.Building Embedded Linux System.O’Reilly,2004. 【19】刘伟平,毛玉良,张东卫.在嵌入式Linux实现JFFS文件系统.微计算机信息, 2004,(1):46--47. 55 武汉理工大学硕士论文 【20】王继成,武港山.Web应用开发原理与技术.北京:机械工业出版社,2003. 【2l】小泉修,王浩.Web技术:}ITTP到服务器端.科学出版社,2004年01月. 【22】农孙博,范正刚.Linux平台下的web编程.北京:人民邮电出版社,2000. 【23】张曦煌,柴志雷.嵌入式Web服务器中CGI的特点及实现[J】小型微型计算机系统,2003 24.26. Web觥arehitecture 【24】FieldingR.HypertextTransferProtocol--HTTP/1.1【J】.RFC2616,1999:2. 【25】Hong-Taek Ju.Element and network Korea 2001Embedded for Web-based Management[D].Thesis ofDP&NM Lab CSE POSTECH,2004:30-35. [26】l arry Doolittle,Jon Nelson.Boa Installation and Usage[OL].http//www.boa.org/ documemtation/,2006. 【27】Appropriate Users for SQLite.http://www.sqlite.en.org/whentouse.html,2007,4. [281王京谦,万花新.开源嵌入式数据库BerkelyeDB和sqlite的比较.单片机与嵌入式系统应 用.2005,(2):5.7. 129]Michael Owens.Embedding an SQL Database witll SQLite[J].Linux Journal,June 01,2003 【30】ZigbeeAllianee.Zighee Specifications Documents Vcrsionl.0,2004,12:29~150. 【3l】李刚,张志宏.蜜蜂的舞蹈—压gee的无线网络技术与应用叨.电子产品世界,2006, (2):84·87. 【32】IEEE 802.15.4,ziDee Specification[S].Zigbee Alliance.2004. 【33】张维勇,冯琳,魏振春.ZigBee实现家庭组网技术的研究【J】.合肥工业大学学报,2005, 7(7):2—3. 【34】张宏亮.ZigBee软件开发人员指南(基于Jennie JN5121).2007.5.25. 【35】Edgar H C.Wireless Sensor Networks:Architectures and Protocols[M].CRC Press.2004. 【36】付芳,张思东,顾瑞红.基于IEEE 802.15.4和Zigbee构建低速无线个域网.移动通信, 2005,(7):90--92. 【37】Axel Sikora.Coexistence of IEEE802.15.4(ZigBee)with IEEE802.1I(WLAN),Bluetooth, and Microwave Ovens in 2.4 GHz ISM Band[J].IEEE Spectrum,Sep.2004:34-37. 【38】JN·UG一3041 Jennic Stack User Guide 2007.http://www.jennic.com,2007. 【39】JN-UG一3042 Jennie API 2007(Rev.1.O).http://www.jeanic.com,2007. 【40】黄布毅,张晓华.基于AMR-Linux的SQLite嵌入式数据库技术.单片机与嵌入式系统应 用.2005,(4):2l-24. 【4l】Michael Owens.Embedding an SQL Database谢也SQLite[J].Linux Journal,June 01,2003. [42】李文仲,段朝玉.ZigBee无线网络网络技术Af-J与实战[M】.北京航空航天大学出版社, 2007:128.1 57. 武汉理工大学硕士论文 【43】蒋建辉.zigb∞网络的设计与实现:【硕士学位论文】.苏州:苏州大学计算机应用技术专 业,2006. 【“】杨荣,杨涛.基于Zigbee的无线传感器网络及其在智能大厦中的应用[J】.中国农机化, 2(X)5(5):76-79. 【45】周怡廷,凌志浩,吴勤勤.zigbee无线通信技术及其应用探讨uI启动化仪表,2005, 26(6):5-9. [46】吴慧敏,成谦.基于802.15.4/Zigbce无线传感器网络节点的物理层设计【J】.电子产品世 界,2006。8:124.106. 57 武汉理‘T大学硕士论文 攻读硕士学位期间发表的论文 【l】冯承金,杨杰.基于Zigbee的无线传感网络的研究与设计.中国科技论文在线, 2009.1l 58 基于Zigbee和ARM9的智能家居系统的研究与设计 作者: 学位授予单位: 冯承金 武汉理工大学 相似文献(10条) 1.期刊论文 陆甲子.陈俊杰.邢后银.LU Jia-zi.CHEN Jun-jie.XING Hou-yin 一种用于无线传感器网络的三相电机 控制系统设计与实现 -测控技术2008,27(12) 针对无线传感器网络在植物设施栽培、畜禽设施养殖等环境监控应用中对被控设备的控制要求,设计了一种用于无线传感器网络的三相电机控制系统 .系统集成无线收发、微处理器、控制环节为一体,并从系统组网要求出发,软件设计采用TinyOS操作系统和nesC语言.系统具有对三相电机的断相、过载 和短路保护,并且系统结构简单、成本较低.实际运行测试表明该系统达到了监控现场应用要求. 2.学位论文 王艳辉 嵌入式无线传感器网络基础研究 2006 进入二十一世纪以来,高新技术的发展日新月异,多学科交叉领域成为当前研究的热点。MEMS、无线通信、嵌入式系统和传感器技术的发展和融合 ,推动了具有现代意义的无线传感器网络的产生和发展。无线传感器网络是由分布于一定的监控区域内,用于监测特定环境信息的无线传感器网络节点 组成的。作为通信,自动化以及计算机领域的一门新技术,无线传感器网络已经在军事国防、城市管理、环境检测、危险区域的远程控制等领域得到了 广泛的研究与应用。 为了实现对无线传感器网络定位、组网、路由和能量管理等技术的深入研究,采用嵌入式系统技术设计一种无线传感器网络是十分必要并且可行的 。 本文给出了嵌入式无线传感器网络节点的软硬件设计方案。在综合考虑节点性能、功耗、成本等基础上,采用当前流行的ARM系列微处理器芯片 AT91SAM7S256,结合射频芯片CC2420、GPRS模块MC39i、温度传感器TMP05和加速度传感器ADXL202实现无线传感器网络节点的硬件设计。采用嵌入式实时 操作系统FreeRTOS,TCP/IP协议栈和ZigBee组网协议栈构建节点软件开发平台,设计各个功能模块的驱动和应用程序,实现了节点间的通信、利用 GPRS模块进行数据的传输和传感器信号的采集等功能。采用VB.NET设计了数据中心软件用于接收远程无线传感器网络的信息。本文详细地阐述了嵌入式 无线传感器网络的总体方案设计、主要功能模块的硬件和软件设计过程。 论文最后对嵌入式无线传感器网络节点各功能模块进行了测试,验证了节点及整个无线传感器网络的性能。本文给出的嵌入式无线传感器网络具有 性能高、功耗可控、可升级性等特点,可为无线传感器网络相关技术的深入研究提供平台,为多个领域的应用开发提供参考。 3.会议论文 罗锡文.肖德琴 无线传感器网络在中国农业工程中的应用进展 2007 无线传感器网路是目前信息科学和自动化技术研究的一个热点问题,由于它综合了传感器技术、微处理器技术和通讯技术,可以广泛运用于各个领 域,有着极大的运用前景,已经引起了许多国家工业界和学术界高度重视,被认为是对21世纪产生巨大影响力的技术之一。显然,无线传感器网络在农 业工程中存在良好的应用前景。本文按年度对比阐述了无线传感器网络在农业工程中的应用现状,特别分析了在中国农业工程中的发展现状和在华南农 业大学的研究情况,以及在中国发展中目前还存在的一些期待解决的问题。 4.学位论文 陈利虎 无线传感器网络实验平台的研究 2004 传感器技术正向着智能化、网络化的方向发展,无线自组织传感器网络正是适应这种需求而出现的,它集传感器技术、微机电技术和网络通讯技术 于一身,具有信息采集、处理和传输等技术。无线传感器网络在军事、工业、医疗、交通和民用等诸多方面潜在的巨大应用价值,已引起了各国的广泛 关注和研究。 鉴于无线传感器网络的巨大应用前景,本文设计了无线传感器网络实验平台。实验平台由基站和若干节点组成。由多种传感器、微处理器、无线收 发器和电池四个部分组成的节点能够自组织成无线网络。分布在环境中的各节点能够感知多种信息,并通过网络将融合后的数据传送回主机。 论文首先介绍了无线传感器网络的研究背景、应用价值及国内外研究现状,分析了无线传感器网络的特点,然后在此基础上设计了简单的实验平台 ,并对其中的两项关键技术:射频技术和超低功耗技术进行了研究。实验平台能够感知实验室环境中的振动和温度信息,从而实现对振动事件和火灾事 件的探测和报警。 论文的最后对实验平台的实验结果进行了分析,并在结论与展望中讨论了下一步的工作重点。 5.会议论文 罗锡文.肖德琴 无线传感器网络在农业工程中的应用 2007 无线传感器网路是目前信息科学和自动化技术研究的一个热点问题,由于它综合了传感器技术、微处理器技术和通讯技术,可以广泛运用于各个领 域,有着极大的运用前景,已经引起了许多国家工业界和学术界高度重视,被认为是对21世纪产生巨大影响力的技术之一。显然,无线传感器网络在农 业工程中存在良好的应用前景。本文按年度对比阐述了无线传感器网络在农业工程中的应用现状,特别分析了在中国农业工程中的发展现状和在华南农 业大学的研究情况,以及在中国发展中目前还存在的一些亟待解决的问题。 6.学位论文 曹建军 基于GPS和无线传感器网络的时钟同步系统 2008 本论文提出了民用场合下一定区域内多地点、多房间的时钟同步问题,设计出一套基于GPS技术和无线传感器网络的时钟无线同步系统。该系统是由 一台授时器和多台电子时钟组成无线网络。 论文设计了基于无线传感器网络的授时系统结构,定义了通信数据帧格式。 论文给出授时器和电子时钟的硬件框图,硬件实现采用ATMEL89S52作为微处理器,采用SiRF Star ⅢGPS接收模块接收卫星信号,采用Nordic公司的 nRF905射频实现数据的发送和接收,采用DS1302电路作为本机时间,采用74LS373锁存、ULN2003驱动大尺寸数码管来显示时间。 论文的软件编写采用C51,给出了授时器、电子时钟的主程序和中断子程序框图。以模块的方式,给出GPS接收程序、nRF905芯片收发、DS1302读写 和显示程序。 课题制作了实验板,并进行实地调试。 7.会议论文 卢青.张在琛 基于CC2420的无线传感器网络通信模块 2006 CC2420是Chipcon公司推出的一款符合IEEE 802.15.4规范的高集成度工业用射频收发器件,它工作于2.4GHz频段,支持数据传输速率高达250kbps,可 以实现多点对多点的快速组网.本文主要介绍了CC2420的管脚结构及功能、寄存器寻址、与微处理器P89LPC924的通信以及CC2420的状态控制流程. 8.期刊论文 李育贤.LI Yu-xian 基于微处理器的无线传感器节点的设计 -微计算机信息2008,24(14) 本文描述了一种无线传感器网络节点的硬件平台组成,分别对负责无线收发功能实现的射频芯片、负责数据采集的传感器模块、负责整体上工作的微 处理器进行了描述,对和CC2420与EM78815微处理器的硬件接口进行了设计:然后介绍了本无线传感器网络系统整体软件体系结构与设计,主要包括软件总 体架构、硬件驱动层设计和操作系统层设计. 9.学位论文 秦绍华 嵌入式服务器在无线传感器网络中的应用 2005 无线传感器网络是集成传感器技术、通信技术、计算机技术而形成的一种全新的信息获取和处理技术,是二十一世纪最重要的技术之一。如何方便 快捷地处理无线传感器网络所获取的信息,并对无线传感器网络进行管理是无线传感器网络研究的一个热点。嵌入式服务器可以很好的解决这些问题。 同时嵌入式服务器的应用领域也很广泛,在设备管理、远程医疗、信息家电等许多方面都有应用,是嵌入式Internet的主要实现形式。因此嵌入式服务 器的研究具有广泛的意义。 本文主要实现一个无线传感器网络信息查询和设备管理的嵌入式服务器。首先对嵌入式服务器应用的环境-无线传感器网络进行了说明,介绍了无线 传感器网络的结构和应用,以及目前的研究情况,分析了在无线传感器网络中使用嵌入式服务器可行性和必要性。然后对嵌入式服务器的软硬件进行了 分析。硬件采用嵌入式系统设计,以ARM7微处理器和RTL8019AS以太网芯片实现嵌入式服务器功能,并对ARM7微处理器和RTL8019AS以太网芯片进行了详 细的说明。软件方面,采用uC/OS-Ⅱ作为嵌入式操作系统,针对ARM7微处理器作了系统移植,以ZLG/IP协议栈为基础,根据本系统的应用特点了进行裁 减。采用CGI接口和表单实现动态网页,在此基础上结合应用程序实现客户端和服务器端的动态交互。最终实现一个可以查询传感器信息,并对传感器进 行控制的网络平台。 10.期刊论文 郭祥东.GUO Xiang-dong 基于无线传感器网络的海洋环境监测预警系统设计 -山西大同大学学报(自 然科学版)2009,25(4) 针对海洋环境管理需求,提出并开发了基于智能无线传感器网络的监测系统,完成海洋生态环境监测、数据实时处理.研究了精确检测的方法与算法 .系统综合运用无线传感器智能信息处理技术、远程GPRS无线数据通信技术以及基于Internet显示平台的监测点管理查询技术,实现实时在线检测. 本文链接:http://d.g.wanfangdata.com.cn/Thesis_Y1680883.aspx 授权使用:湖南大学(hunandx),授权号:f27d73e8-ccf9-46e6-8790-9e5001037019 下载时间:2010年12月18日

Top_arrow
回到顶部
EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高进,我们会尽快处理。