已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
海 南 大 学毕 业 论 文(设计)题 目:基于物联网的智能家居网关系统设计学 号: 姓 名: 年 级: 学 院: 系 别: 电子系 专 业: 电子信息工程 指导教师: 完成日期: 2015 年 05 月 15 日 基于物联网的智能家居网关系统设计摘要随着经济的高速发展,人们追求的生活质量越来越高,因此,建立一个舒适、低成本及高效率的智能家居系统已成为21世纪热点的话题之一。物联网的应用前景将会成为智能家居系统的一个重要的突破口,对智能家居产业发展具有重要的意义。本设计采用“贴近生活,使用方便”的物联网思想作为设计理念,搭建了一个基于物联网的智能家居网关系统。本次设计包括的模块有网关板模块、节点板模块、网页模块、APP模块。主要实现的具体功能有,PC机可以通过浏览器显示节点板采集的温湿度数据以及通过浏览器控制控制节点板的LED灯的开关状态,也可以通过APP显示节点板采集的温湿度数据以及控制节点板的LED灯的开关状态。PC机与节点板之间的通信和APP与节点板之间的通信,都需要经过网关板进行转接,因此网关板是整个系统的通信桥梁。为了实现网关板通信桥梁的角色,本次网关板的设计,硬件上采用恩智浦公司的LPC1769作为主控MCU,该系统由LPC1769内嵌以太网模块和DP83848芯片构建一个以太网服务控制器,并与wifi模块、ZigBee模块和W25Q128的存储芯片搭建成一个网关系统。软件上以uC/OS-II实时操作系统为框架,搭载了uIP协议任务和其他任务模块,构建成一个WebServer功能。通过设计相关的网页及APP,即PC机终端和手机终端,实现了“使用方便”的设计理念,采集温湿度数据实现了“贴近生活”设计理念,从而搭建成一个物联网的智能家居网关系统。关键词 :智能家居;物联网;ZigBee;wifiAbstractWith the rapid development of economy, the quality of life that people pursue with is getting increasingly higher. Therefore, setting up a pleasing, low costing and efficient Intelligent Home System has been one of the hottest topics in the 21st century.The application prospect of the internet will be an essential breakthrough of intelligent home system, having great significance for the development of intelligent industry. Taking “approachable to life, convenient to use” as the design concept, this design builds an Intelligent Home Gateway System based on IOT. Modules of our design are made of the gateway board, gusset plate, web page and APP. The main functions of the design include: through browser, PC can display temperature and humidity data collected by gusset plate and control the on-off state of LED of gusset plate. Likewise, the APP has the same effects.The gateway board acts as the bridge of the whole system, as both the communication between gusset plate and PC and the communication between gusset board and APP need the transmission through the gateway board. To achieve this, the design of gateway adopts NXPs LPC 1769 as the MCU on hardware. This system builds an Ethernet controller composed of Ethernet module with embedded LPC1769 and DP83848 chip; it also constructs a Gateway System in which includes wifi module, ZigBee module and W25Q128 storage chip. About software, which includes the uIP Protocol Task and other task modules, it produces a Web Server function within the framework of uC/OS-II RTOS. By designing relevant web pages and APP, that is,PC terminal and mobile terminal, the design approach of using convenience is presented; By collecting the temperature and humidity data, the design concept of approaching to life is realized. Ultimately an Intelligent Home Gateway System of IOT is created.Key word:Smart Home; Internet of Things; ZigBee; wifi目录第1 章 绪论11.1智能家居的概念11.2物联网的智能家居11.2.1物联网的概念11.2.2物联网的智能家居系统21.3研究意义3第2章 系统的总体设计42.1 网关板的功能介绍42.2 系统的设计方案4第3章 硬件设计概述63.1 网关板的设计概述63.1.1 网关板的总体设计概述63.1.2 LPC1769的相关概述63.1.3 以太网控制器概述73.1.4 xbee模块概述83.1.5 wifibee模块概述83.1.6 FLASH存储器概述83.2 ZigBee节点板概述9第4章 软件设计104.1 软件的总体设计概述104.2 uC/OS-II操作系统和uIP协议概述104.2.1 uC/OS-II操作系统简介104.2.2 uIP协议简介124.3 开发工具介绍134.3.1 Keil MDK 简介134.3.2 Dreamweaver 简介134.3.3 Ecplise简介144.4 网关板的软件设计与实现144.4.1 网关板的软件框架144.4.2 网关板的软件代码分析17 网关板程序框架分析17 WebServer的实现过程18 获取网页数据的过程204.5 网页设计224.5.1 网页设计结构224.5.2 网页数据的响应过程244.6 xbee和wifibee网络通信的实现与设计254.6.1 通信协议的定制254.6.2 xbee通信的实现274.6.3 wifibee通信的实现284.7 APP的实现过程284.7.1 APP的界面设计284.7.2 代码分析28第5章 系统的搭建与测试345.1 PC机的环境搭建345.2 PC机访问网关板测试355.3 手机APP访问网关板测试38第6章 总结与展望406.1 毕业设计总结406.2 未来展望40致谢41参考文献42第1 章 绪论1.1 智能家居的概念智能家居,或称智能住宅,是以住宅为平台,兼备建筑设备、网络通讯、信息家电和设备自动化,集系统、结构、服务、管理为一体的高效、舒适、安全、便利、环保的居住环境。它在保持了传统的居住功能的基础上,摆脱了被动模式,成为具有能动性智能化的现代工具。智能家居不仅提供了全方位的信息交换功能,还优化了人们的生活方式和居住环境,帮助人们有效地安排时间、节约各种能源,实现了家电控制、照明控制、室内外遥控、窗帘自控、防盗报警、计算机控制、定时控制以及电话远程遥控等功能。智能家居系统成为一种新兴的综合技术学科。智能家居系统也可被定义为一个控制过程,或者控制系统,利用现在被大多数科技人员已掌握的计算机技术、网络布线技术、网络通信系统将其糅合,使之成为融合在家居控制中的多个子系统,并使其智能的结合在一起。1.2 物联网的智能家居1.2.1 物联网的概念物联网(Internet of Things)指的是将无处不在的末端设备和设施,包括具“内在智能”的传感器、移动终端、工业系统、楼控系统、家庭智能设施、视频监控系统等、和“外在使能”的,如贴上RFID的各种资产、携带无线终端的个人与车辆等等“智能化物件或动物”或“智能尘埃”,通过各种无线和/或有线的长距离和/或短距离通讯网络实现互联互通(M2M)、应用大集成(Grand Integration/MAI)、以及基于云计算的SaaS营运等模式,在内网(Intranet)、专网(Extranet)、和/或互联网(Internet)环境下,采用适当的信息安全保障机制提供安全可控乃至个性化的实时在线监测、定位追溯、报警联动、调度指挥、预案管理、远程控制、安全防范、远程维保、在线升级、统计报表、决策支持、领导桌面(集中展示的Cockpit Dashboard)等管理和服务功能,实现对“万物、高效、节能、安全、环保”的“管、控、营”一体化TaaS服务。 物联网概念的问世,打破了之前的传统思维。过去的思路一直是将物理基础设施和IT基础设施分开,一方面是机场、公路、建筑物,另一方面是数据中心,个人电脑、宽带等。而在物联网时代,钢筋混凝土、电缆将与芯片、宽带整合为统一的基础设施,在此意义上,基础设施更像是一块新的地球。物联网把我们的生活拟人化了,万物成了人的同类。在这个物物相联的世界中,物品能彼此“交流”,无需人的干预。可以说,这是一个智能化的世界。智能家居是物联网最生活化的应用之一:窗帘可以自动感知光线而关闭;空调更“听话”了,天热它会把温度调低,太潮就会自动抽湿灯也知道节能了,房间里没人会自动灭掉。如此等等,不一而足。物联网的应用竟已经很广泛,遍及智能交通、环境保护、公共安全、平安家居、智能消防、工业监测、环境监测等领域1。1.2.2 物联网的智能家居系统物联网智能家居是相对于智能家居单品和传统智能家居而言的,它得益于物联网、无线通信、云计算等新技术在智能家居上的应用。智能家居单品很容易理解,就是家居生活用品的智能化,主要特点是设备安装的简捷性、功能的单一性以及运作的独立性,与其它设备之间不存在关联性,可以而且只能独立工作。传统的智能家居与物联网智能家居的区别主要存在于两点。一方面是智能家居网络通信方式上的差异,传统智能家居的通信方式是有线,这种方式主要的缺点在于前期安装和后期扩展的繁杂性,而物联网智能家居的通信方式是无线,这种方式最主要的优点就是“留白”,给设备的扩展留有足够的空间,便于后续的自由扩展。另一方面,采用无线方式通信的简易智能家居系统也归于传统的智能家居,因为在于这种智能家居虽然是系统且易于扩展,但过于简单,功能有限。相对于智能家居单品和传统智能家居,物联网智能家居能实现用户家庭的最大化智能,更符合现代家庭的需求。按照南京物联的观点,物联网智能家居应该涉及智能照明、家电控制、环境监测、影音娱乐、健康管理等方面,能将人、家、车连接起来,是功能更强、效果更佳的泛智能家居。与智能家居单品相比,物联网智能家居能最大限度地将家居设备连接起来,发挥“组合拳”作用。物联网智能家居能将智能开关、智能插座、智能门窗、智能照明、智能家电、智能影音、智能健康等设备连接起来,为用户营造更加安全、健康、舒适、高效、便捷的家居生活环境,而不是只能实现开门、开窗、开灯或其他较为单一的功能。除了相互连接外,物联网智能家居还强调相互控制,如南京物联所推出智能家居还具有联动传递控制和场景一键控制功能。而相比于传统智能家居,物联网智能家居优势更为明显。智能家居不是一次性买卖,需要后续的推护、扩展和升级。然而,由于传统综合布线智能家居需要提前设定方案,并且安装完成后就无法改变,因而在后续扩展上存在很大局限性,十分不便于升级,造成间接性成本增加,这一点对物联网智能家居来说却不是问题。虽然采用无线技术的简易智能家居系统,也便于随时扩展,但这种局部或小范围系统从一开始就功能受限,需要不断扩展,而这本身也是一种麻烦。值得一提的是,这种智能家居还需要通过扩展向物联网智能家居转变。因此,物联网的发展的应用前景将会成为智能家居系统的一个重要的突破口。1.3 研究意义随着电子技术在现实生活中的广泛应用,人们越来越感受到电子产品为生活所带来的各种便利,特别是在20世纪80年代,智能家居的出现更为人们享受生活提供了一个广阔的平台。尽管智能家居发展已长达30年之久,但是智能产品仍然是当今IT届发展的主流,特别是物联网的出现,更进一步推动其发展。因此,本次设计对智能家居产品研究,正是符合世界潮流走向,并且使自己加入智能家居产品开发的行业,所以本产品研发具有重大的研究意义。第2章 系统的总体设计2.1 网关板的功能介绍网关板设计以LPC1769作为主控芯片,通过ZigBee模块,从节点板采集温度、湿度等数据无线传输到网关板上,用户可以使用PC机的浏览器登入网关板。浏览器会显示节点板采集到的温度、湿度等一些数据内容,用户也可以通过浏览器控制节点板的LED灯开关状态。同时,网关板的wifi模块可以与Android手机的相应APP进行通信,所以APP也能收集到节点板所采集的数据,同样也能通过APP控制节点板的LED灯开关状态。2.2 系统的设计方案根据设计要求及功能实现,系统包括网关板、节点板、PC机、Android手机。其中核网关板主控MCU采用LPC1769芯片,ZigBee模块采用xbee模块,wifi模块采用wifibee模块,ZigBee节点的主控芯片采用LPC1114芯片,温湿度传感器采用DHT11传感器。系统整体模块的工作框架如图2.1所示。PC机 有线DP83848网关板ZigBee节点板xbee 无线 wifibee 无线APP 图2.1 系统模块工作框架第3章 硬件设计概述3.1 网关板的设计概述3.1.1 网关板的总体设计概述网关板主要由LPC1769主控芯片、W25Q18FV芯片、xbee模块、wifibee模块组成的。LPC1769是整个系统心脏,W25Q128芯片的职责是存储网页数据,xbee模块建立ZigBee网络,wifibee模块负责与APP通信。网关板的外设结构如图3.1所示。LPC1769以太网控制器xbee模块 UART RMMIFLASH存储器wifibee模块 UART SPI V图3.1 网关板外设结构3.1.2 LPC1769的相关概述 LPC1700系列ARM是恩智浦公司推出的基于第二代ARM Cortex-M3 内核的微控制器,是为嵌入式系统应用而设计的高性能、低功耗32位微处理器,其操作频率高达120MHz,采用3级流水线和哈佛结构,带独立的本地指令和数据结构及用于外设的低性能的第三条总线,使得代码执行速度高达1.25MIPS/MHz,并包含1个支持随机跳转的内部预取单元。LPC1700系列ARM增加了一个专用的Flash存储器加速模块,使得Flash中运行代码能过达到较理想的性能,适用于仪器仪表、工业通信、电机控制、灯光控制、报警系统等领域2。LPC1700系列Cortex-M3微控制器的外设组件包含高达512KB的Flash存储器、64KB的数据存储器、以太网MAC、USB主机/从机/OTG接口、8通道的通用DMA控制器、4个UART、2条CAN通道、2个SSP控制器、SPI接口、3个I2C接口、2-输入和2-输出的I2S接口、8通道的12位ADC、10位DAC、电机控制PWM、正交编码器接口、4个通用定时器、6-输出的通用PWM、带独立电池供电的超低功耗RTC和多达70个的通用I/O管脚7。本设计主要用到LPC1769的以太网外设功能。以太网模块包含一个功能齐全的10Mbps或100Mbps以太网MAC(媒体访问控制器),以太网MAC通过使用DMA硬件加速功能来优化其性能。以太网模块具有大量的控制寄存器组,可以提供:半双工/全双工操作、流控制、控制帧、重发硬件加速、接收包过滤以及LAN上的唤醒等。利用分散-集中式(Scatter-Gather)DMA进行自动的帧发送和接收操作,减轻了CPU的工作量。以太网模块是一个AHB主机,驱动AHB总线矩阵。通过矩阵,它可以访问片上所有的RAM存储器。建议以太网使用RAM的方法是专门使用其中一个RAM模块来处理以太网通信。那么该模块只能由以太网和CPU,或许GPDMA进行访问,从而获取以太网功能的最大带宽。以太网模块使用RMII(简化的媒体独立接口)协议和片上MIIM(媒体独立接口管理)串行总线、还有MDIO(管理数据输入/输出)来实现与片外以太网PHY之间的连接。本设计采用DP83848芯片作为以太网的PHY,并且在DP83848芯片与RJ45型网络接口之间增加了网络变压器HR601680,与LPC1769搭建成一个完成的以太网模块,通过RJ45端口与PC机通信。3.1.3 以太网控制器概述本设计的以太网控制器电路设计是包括LPC1769内嵌的10Mbps或100Mbps以太网MAC(媒体访问控制器)与DP83848芯片作为PHY(物理接口收发器)搭建而成的。DP83848是单路10/100Mb/s以太网收发器,其物理层器件结合了低引脚数目的RMII。在10/100Mb/s系统中将DP83848的物理(PHY)层连接到媒体存取控制(MAC)层,RMII提高了引脚数目更低的选择来替换IEEE802.3定义的介质无关接口(MII)。除了RMII定义的信号之外,DP83848提高一个RX DV信号(接收数据有效)使得恢复接收数据的方法更加简单而无需从CRS DV分离出RX DV信号。3.1.4 xbee模块概述Digi公司生产的xbee S2模块是一种近距离低功耗的数据传输模块,频段为2.4GHz,内置ZigBee协议栈,并包含了所有的外围电路,通过PC机上的配置软件X-CTU,对模块进行发射功率,信道等网络拓扑参数的配置。ZigBee协调器是集成在嵌入式网关板上的xbee模块,它通过串口与MCU相连接。xbee模块的组网成功后,接收数据通过其串口输出,发送数据通过其串口输入。3.1.5 wifibee模块概述wifibee模块包含802.11 b/g无线发射机构,32位的处理器,TCP/IP堆栈、实时时钟、电源管理单元和模拟传感器接口。该模块预装Roving固件用以增加其集成度以减少对于使用者至关重要的应用程序的开发时间。在最简单实用的设置情况下,硬件只需要四个连接(电源,TX,RX和地)即可创建一个无线数据连接。wifibee模块广泛应用于美国、加拿大、澳大利亚、以色列和欧洲各国。建立射频通信不需要任何额外的配置而且模块的默认配置广泛的支持各种设备的应用程序。还可以使用AT指令对该模块进行高级配置,完成自己定制的一些特殊功能。wifibee模块接收数据时通过其串口输出,发送数据时通过其串口输入的。3.1.6 FLASH存储器概述本设计的FLASH存储芯片采用的是W25Q128芯片。W25Q128由65536可编程的页组成的,每页有256个字节。一次最多可以写256个字节。可以一次擦除16(4KB sector erase),128页(32KB block erase),256 页(64KB block erase),或者擦除一整片。W25Q128 有4096个可擦除的扇区,256可擦除的块。4KB的扇区对于数据和参数存储有更高的灵活性。W25Q128支持标准SPI 接口,以及更高性能的DUAL/QUAD SPI ,对应的管脚为时钟,片选,(I/O0)DI,(I/O1)DO,I/O2(/WP),I/O3(/HOLD)。SPI 时钟可以达到104MHz,在DUAL使用快速读时就相当于208MHz,在QUAD 使用快速读时相当于320MHz。这个传输速率比一般的异步8位,16位并行FLASH 存储器要快。3.2 ZigBee节点板概述本次实验的ZigBee节点板是采用实验室的板子。ZigBee节点板由LPC1114芯片、FT232RL芯片、DHT11传感器、xbee模块组成的。LPC1114是整个节点板的核心。FT232RL为接口转换芯片,可以实现USB到串行UART接口的转换。DHT11是温度、湿度传感器,负责采集温湿度数据。xbee模块负责连接ZigBee网络。第4章 软件设计4.1 软件的总体设计概述本设计系统软件设计模块包括网关板的软件设计、PC机的网页设计、手机的APP设计,节点板的软件设计。网关板移植了抢占式、多任务、实时的uC/OS-II的操作系统,简化了开发难度,提高MCU的运行效率,并使整个软件设计变得清晰明了。在此操作系统上分配了多个任务,这些任务主要包括WebServer服务的运行任务、获取网页数据任务、xbee更新数据及控制任务和wifi更新及控制任务等。在PC机上,通过设计网页,通过GET方法访问网关板。在Android手机上,通过设计APP,与网关板的wifi模块进行通信。节点板上负责采集数据和发送数据,节点板主要负责每隔1s采集一下温湿度数据,并通过xbee将此数据发送给网关板。同时节点板也会实时接收网关板发来的数据并根据数据内容执行相应的动作。4.2 uC/OS-II操作系统和uIP协议概述4.2.1 uC/OS-II操作系统简介uC/OS-II是一种可移植的,可植入ROM的,可裁剪的,抢占式的,实时多任务操作系统内核。它被广泛应用于微处理器、微控制器和数字信号处理器。uC/OS-II 的前身是C/OS,最早出自于1992 年美国嵌入式系统专家Jean J.Labrosse 在嵌入式系统编程杂志的5 月和6 月刊上刊登的文章连载,并把C/OS 的源码发布在该杂志的B B S 上。C/OS 和uC/OS-II 是专门为计算机的嵌入式应用设计的, 绝大部分代码是用C语言编写的。CPU 硬件相关部分是用汇编语言编写的、总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU 上。用户只要有标准的ANSI 的C交叉编译器,有汇编器、连接器等软件工具,就可以将uC/OS-II嵌入到开发的产品中。uC/OS-II 具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点, 最小内核可编译至 2KB 。uC/OS-II 已经移植到了几乎所有知名的CPU 上。严格地说uC/OS-II只是一个实时操作系统内核,它仅仅包含了任务调度,任务管理,时间管理,内存管理和任务间的通信和同步等基本功能。没有提供输入输出管理,文件系统,网络等额外的服务。但由于uC/OS-II良好的可扩展性和源码开放,这些非必须的功能完全可以由用户自己根据需要分别实现。uC/OS-II目标是实现一个基于优先级调度的抢占式的实时内核,并在这个内核之上提供最基本的系统服务,如信号量,邮箱,消息队列,内存管理,中断管理等。等待状态uC/OS-II是按照系统只有一个CPU来设计的。在这种系统中,一个具体时刻只会有一个任务占用CPU处在运行状态,而其他任务只能在其他状态。uC/OS-II中的任务有五种状态:睡眠状态、就绪状态、运行状态、等待状态、中断服务状态3。在系统管理下,一个任务可以在5种不同状态之间发生转换,其转换关系如图4.1所示。中断服务状态睡眠状态运行状态就绪状态 图4.1 uC/OS-II的任务状态切换uC/OS-II以源代码的形式发布,但并不意味着它是开源软件。你可以将其用于教学和私下研究(peaceful research);但是如果你将其用于商业用途,那么你必须通过Micrium获得商用许可。4.2.2 uIP协议简介uIP是专门为8位和16单片机设计的一个非常小的TCP/IP协议栈。uIP完全用C编写,可以很方便的移植到各种不同的结构和操作系统上。一个编译的栈可以有几KB ROM或几百字节RAM中运行。并且其硬件处理层、协议栈层和应用层共用一个全局缓存区,不存在数据的拷贝,极大的节省空间和时间。由于结构简单、功能可靠,很多8位单片机都移植uIP协议栈5。uIP协议栈去掉了完整的TCP/IP中不常用的功能,简化了通讯流程,但保留了网络通信必须使用的协议,设计重点放在了IP/TCP/ICMP/UDP/ARP这些网络层和传输层协议上,保证了其代码的通用性和结构的稳定性。uIP可以看成一个代码库为系统提供确定的函数。图4.2展示里uIP,系统底层和应用程序之间的关系。uIP提供三个函数到系统底层,uIP_init(),uIP_input()和uIP_periodic()。应用程序提供一个回应函数给uIP。当网络或定时事前发送时,调用回调函数,执行相应事件处理。Application UIP_APPCALL()uIP uIP_input() uIP_periodic()SystemPeriodictimerNetworkDevicedriver图4.2 uIP框架由于uIP协议栈专门为嵌入式系统而设计,因此还具有如下优越功能:代码非常少,其协议栈代码不到6K,很方便阅读和移植;占用的内存数非常少,RAM占用仅几百字节;其硬件处理层、协议栈层和应用层共用一个全局缓存区,不存在数据的拷贝,且发送和接收都是依靠这个缓存区,极大的节省空间和时间;支持多个主动连接和被动连接并发;其源代码中提供一套实例程序:web服务器,web客户端,电子邮件发送程序(SMTP客户端),Telnet服务器,DNS主机名解析程序等。通用性强,移植起来基本不用修改就可以通过;对数据的处理采用轮循机制,不需要操作系统的支持。4.3 开发工具介绍4.3.1 Keil MDK 简介 Keil MDK,也称MDK-ARM,Realview MDK、I-MDK、uVision4 等。目前Keil MDK 由三家国内代理商提供技术支持和相关服务。MDK-ARM软件为基于Cortex-M、Cortex-R4、ARM7、ARM9处理器设备提供了一个完整的开发环境。 MDK-ARM专为微控制器应用而设计,不仅易学易用,而且功能强大,能够满足大多数苛刻的嵌入式应用。MDK-ARM有四个可用版本,分别是MDK-Lite、MDK-Basic、MDK-Standard、MDK-Professional。所有版本均提供一个完善的C / C+开发环境,其中MDK-Professional还包含大量的中间库。4.3.2 Dreamweaver 简介 Dreamweaver,简称“DW”,中文名称梦想编织者,是美国MACROMEDIA公司开发的集网页制作和管理网站于一身的所见即所得网页编辑器,DW是第一套针对专业网页设计师特别发展的视觉化网页开发工具,利用它可以轻而易举地制作出跨越平台限制和跨越浏览器限制的充满动感的网页。Dreamweaver使用所见即所得的接口,亦有HTML(标准通用标记语言下的一个应用)编辑的功能。它有Mac和Windows系统的版本。随Macromedia被Adobe收购后,Adobe也开始计划开发Linux版本的Dreamweaver了。 Dreamweaver自MX版本开始,使用了Opera的排版引擎Presto 作为网页预览。4.3.3 Ecplise简介Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。使用 Eclipse(Android 的官方开发平台)并在一个名为 Android Development Tools (ADT) 的插件的辅助下,可以轻松开发 Android 应用程序。这有助于利用 Eclipse 的丰富特性,比如内容辅助、Java 搜索、开放源码、JUnit 集成,以及用于开发 Android 应用程序的不同视图和透视图。4.4 网关板的软件设计与实现4.4.1 网关板的软件框架为了提高LPC1769的工作效率以及降低软件开发难度,因此在LPC1769移植了uC/OS-II的实时操作系统,并在该操作系统上挂载了四个任务。其软件框架如图4.3所示Task4Wifi处理Task1Webservice挂载挂载Task3Xbee处理Task2获取网页数据 挂载挂载 uC/OS-II 操作系统LPC1769图4.3 软件框架图4.3所示的四个任务分别定义为Task1、Task2、Task3和Task4,且四个任务的优秀级为Task1Task2Task3Task4。由于纸张的大小限制,为了可以画出流程图,这里将任务假设只有两种状态,即空闲状态和执行状态。但时间上任务的状态是有五种状态。其假设后的软件流程图如图4.4所示: 开始创建任务 Task1任务空闲?执行Task1 否 是 Task2任务空闲?执行Task2 否 是Task3任务空闲?执行Task3 否 是Task4任务空闲?执行Task4 否图4.4 任务执行流程图4.4.2 网关板的软件代码分析 网关板程序框架分析网关板程序开发工具是Keil uVision4。其程序代码框架如图4.5所示。图4.5网关板程序框架程序代码文件夹分类有uIP,main,WebServer,lpc1700,uCOSIISOURCE,uCOSIIPORTS,uCOSIIAPP,uCOSIIBSP。其中main文件夹的子文件包括程序执行的主函数接口,lpc1700文件夹的子文件包括LPC1769的驱动函数文件,uIP文件夹与WebServer文件夹的子文件包括uIP协议栈的相关函数文件,uCOSIISOURCE文件夹与uCOSIIPORTS的子文件包括uC/OS-II内核源代码的相关文件,uCOSIIAPP文件夹的子文件包括用户的应用程序文件,uCOSIIAPP存放着用户的驱动函数文件。程序的主函数如下所示:1. int main (void)2. 3. BSP_Init();4. OSInit();5. OSTaskCreate(Task_Start,(void *)0,&startup_task_stkSTARTUP_TASK_STK_SIZE - 1, STARTUP_TASK_PRIO);6. OSStart();7. return 0;8. 其中BSP_Init()函数是初始化用户的驱动函数,OSInit()初始化uC/OS-II系统的相关函数,OSTaskCreate(Task_Start,)函数是创建初始任务,OSStart()函数是启动uC/OS-II系统的运行。在uCOSIIAPP用户应用程序的文件夹内的,创建了四个任务,分别是Task_Webserver任务、Task_Readwebbuf任务、Task_Zigbee任务、Task_Wifibee任务,这四个任务分别对应前文的Task1、Task2、Task3、Task4。创建代码任务如下所示:9. OSTaskCreate(Task_Webserver,(void *)0,&Task_Webserver_StkTask_Webserver_STK_SIZE-1,Task_Webserver_PRIO);10. OSTaskCreate(Task_Readwebbuf,(void *)0,&Task_Readwebbuf_StkTask_Readwebbuf_STK_SIZE-1,Task_Readwebbuf_PRIO);11. OSTaskCreate(Task_Zigbee,(void *)0,&Task_Zigbee_StkTask_Zigbee_STK_SIZE-1,Task_Zigbee_PRIO);12. OSTaskCreate(Task_Wifibee,(void *)0,&Task_Wifibee_StkTask_Wifibee_STK_SIZE-1,Task_Wifibee_PRIO);uC/OS-II系统按照优先级大小对这四个任务进行轮询执行,Task_Webserver任务是执行uIP文件夹与WebServer文件夹里的uIP协议栈,从而使系统具备一个WebServer功能,便可以跟PC机进行通过以太网通信。Task_Readwebbuf是响应PC机的相请求,从板上flash获取相应的网页数据的任务。Task_Zigbee是执行xbee数据处理的任务。Task_Wifibee是执行wifibee数据处理的任务。通过这四个任务的切换执行,构成整个系统的运行框架。 WebServer的实现过程Task_Webserver是运行uIP协议栈的任务,也是实现websevice的过程。Task_Webserver任务所运行的代码如下所示:13. void Task_Webserver(void *p_arg) 14. 15. unsigned int i;16. uIP_ipaddr_t ipaddr;17. struct timer periodic_timer, arp_timer;18. (void)p_arg; 19. timer_set(&periodic_timer, CLOCK_SECOND / 2); 20. timer_set(&arp_timer, CLOCK_SECOND * 10);21. tapdev_init();22. uIP_init();23. uIP_ipaddr(ipaddr, 192,168,150,200);24. uIP_sethostaddr(ipaddr);25. uIP_ipaddr(ipaddr, 192,168,150,1);26. uIP_setdraddr(ipaddr);27. uIP_ipaddr(ipaddr, 255,255,255,0);28. uIP_setnetmask(ipaddr);29. httpd_init();30. OSMutexPend(Fun_Semp,0,&err);31. while(1)32. 33. uIP_len = tapdev_read(uIP_buf);34. OSTimeDlyHMSM(0, 0,0,10); 35. if(uIP_len 0)36. if(BUF-type = htons(UIP_ETHTYPE_IP)37. 38. uIP_arp_ipin();39. uIP_input(); 40. if(uIP_len 0)41. 42. uIP_arp_out();43. tapdev_send(uIP_buf,uIP_len);44. 45. 46. else if(BUF-type = htons(UIP_ETHTYPE_ARP)47. 48. uIP_arp_arpin();49. if(uIP_len 0)50. 51. tapdev_send(uIP_buf,uIP_len);52. 53. 54. 55. else if(timer_expired(&periodic_timer)56. 57. timer_reset(&periodic_timer);58. for(i = 0; i 0)62. 63. uIP_arp_out();64. tapdev_send(uIP_buf,uIP_len);65. 66. 67. #if UIP_UDP68. for(i = 0; i 0) 71. uIP_arp_out();72. tapdev_send();73. 74. 75. #endif /* UIP_UDP */76. if(timer_expired(&arp_timer)77. 78. timer_reset(&arp_timer);79. uIP_arp_timer();80. 81. 82. 83. Task_Webserver任务首先设置IP地址和网关等参数,并通过tapdev_init(),uIP_init(),httpd_init()三个初始化函数分别对驱动层初始化,协议栈初始化,应用程序初始化。设置参数与所有初
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 拆迁合同的修改与终止
- 2024【变压器租赁合同范本】变压器安装合同范本
- 市场租赁合同纠纷处理指南
- 2024年家政服务合同协议书
- 2024技术顾问聘用合同书范文
- 办公家具项目合作意向书
- 2024年房屋分配合同模板
- 劳动合同解除与经济补偿
- 数据录入与维护服务合同范本
- 二手工作服购销合同
- 道德与法治八上八上8.2《坚持国家利益至上》教学设计
- 2024年全国各地中考试题分类汇编:作文题目
- 工程代收款付款协议书范文模板
- GB/T 19274-2024土工合成材料塑料土工格室
- 全套教学课件《工程伦理学》
- 2024-2030年中国青霉素行业深度调研及投资前景预测研究报告
- GB/T 42455.2-2024智慧城市建筑及居住区第2部分:智慧社区评价
- 2024年认证行业法律法规及认证基础知识
- 2024广西专业技术人员继续教育公需科目参考答案(97分)
- YYT 0653-2017 血液分析仪行业标准
- 刑事受害人授权委托书范本
评论
0/150
提交评论