




已阅读5页,还剩70页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
信息科学与技术学院学士学位论文 JIU JIANG UNIVERSITY毕 业 论 文题 目 基于嵌入式技术的智能监控系统 传感模块驱动应用开发 英文题目 Base on Embedded Intelligent Monitoring System Sensing Module Driver Application院 系 信息科学与技术学院 专 业 计算机科学与技术 姓 名 江军洪 年 级 A081138 指导教师 刘涛 二一二年五月摘 要新技术革命的到来,世界开始进入信息时代。在利用信息的过程中,首先要解决的就是要获取准确可靠的信息,而传感器是获取自然和特定环境领域中信息的主要途径与手段。在目前正蓬勃发展的物联网中尤其要用到各种传感器来监视和控制被控区域的各种参数,比如采集被控区域的温度、湿度和光亮强度等。该论文首先是对基于嵌入式技术的智能监控系统传感模块驱动应用开发的硬件平台和软件平台做了简单的陈述,并在现有的条件下,讲述了基于嵌入式智能监控系统传感模块的驱动应用开发,其中重点讲述了温湿度传感器和光亮传感器模块驱动的编写,Zigbee组网实现以及研究编写相关应用程序以实现对单板数据的采集和控制。关键词:嵌入式,温湿度传感器,光亮传感器,数据采集AbstractThe arrival of the new technological revolution, the world began to enter the information age. In the process of the use of information, we must first solve is to obtain accurate and reliable information, the sensors are the main ways and means of access to natural and specific environmental areas. Of things is booming, in particular, to use various sensors to monitor and control the various parameters of the controlled area, such as collecting the charged region of temperature, humidity and light intensity.The paper first embedded technology-based intelligent monitoring system sensor module driven application development, hardware platforms and software platform to do a simple statement, and about the existing conditions, based on embedded intelligent monitoring system sensor module drive application development, which focuses on the preparation of temperature and humidity sensor and light sensor module driver, the Zigbee network implementation as well as research to write the application in order to achieve the veneer of data acquisition and control.Key words : Embedded,Temperature And Humidity Sensor,Light Sensor,Data AcquisitionII目 录摘 要IAbstractII1绪论1.1嵌入式传感器概述(1)1.2 国内外发展现状与趋势(2)1.3 课题来源(3)1.4研究的意义和目的(4)1.5 本章小结(5)2 系统需求分析2.1 系统功能需求分析(6)2.2 系统硬件需求分析(6)2.3 系统软件需求分析(7)2.4 本章小结(9)3 系统设计3.1软件的运行环境(10)3.2系统概要设计(11)3.3 系统详细设计(14)3.4 本章小结(19)4 嵌入式ARM-Linux环境建立4.1基于Arm-Linux系统的总体设计(20)4.2 Arm-Linux交叉编译工具链的建立(21)4.3 Linux内核的裁剪与移植(21)4.4 NFS网络文件系统与BOA服务器的制作(22)4.5 构建嵌入式Linux目标平台(24)4.6本章小结(25)5 系统实现5.1 数据源端的实现(26)5.2 服务器端的实现(32)5.3 远程客户端的实现(33)5.4 本章小结(35)6 系统测试及维护6.1 系统测试(36)6.2 本章小结(41)总 结致 谢(43)参考文献(44)绪论1.1嵌入式传感器概述嵌入式系统1是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。嵌入式系统一般指非PC系统,它包括硬件和软件两部分。硬件包括处理器微处理器、存储器及外设器件和IO端口、图形控制器等。软件部分包括操作系统软件(要求实时和多任务操作)和应用程序编程2。而嵌入式传感器正是在嵌入式技术基础上发展起来的,其具有各类特有的功能。比如新型的传感器具有微型化、数字化、智能化、多功能化、系统化、网络化等功能。新型传感器的发展不仅促进了传统产业的改造和更新换代,而且还可能建立新型工业,从而成为21世纪新的经济增长点。微型化是建立在微电子机械系统(MEMS)技术基础上的,目前已成功应用在硅器件上做成硅压力传感器。24GHZ雷达传感器为图1-1所示。图1-1 24GHZ雷达传感器根据传感器的工作原理,传感器可以分为物理传感器3和化学传感器。物理传感器是检测物理量的传感器。它是利用某些物理效应,把被测量的物理量转化成为便于处理的能量形式的信号的装置。其输出的信号和输入的信号有确定的关系。主要的物理传感器有光电式传感器、压电传感器、压阻式传感器、电磁式传感器、热电式传感器、光导纤维传感器等。作为例子,让我们看看比较常用的光电式传感器。这种传感器把光信号转换成为电信号,它直接检测来自物体的辐射信息,也可以转换其他物理量成为光信号。其主要的原理是光电效应:当光照射到物质上的时候,物质上的电效应发生改变,这里的电效应包括电子发射、电导率和电位电流等。显然,能够容易产生这样效应的器件成为光电式传感器的主要部件,比如说光敏电阻。这样,我们知道了光电传感器的主要工作流程就是接受相应的光的照射,通过类似光敏电阻4这样的器件把光能转化成为电能,然后通过放大和去噪声的处理,就得到了所需要的输出的电信号。这里的输出电信号和原始的光信号有一定的关系,通常是接近线性的关系,这样计算原始的光信号就不是很复杂了。其他的物理传感器的原理都可以类比于光电式传感器。化学传感器是能将各种化学物质的特性(如气体、离子、电解质浓度、空气湿度等)的变化定性或定量地转换成电信号的传感器。由于化学物质种类繁多,因此化学传感器的种类和数量也很多,各种转换器件的转换原理也各不相同,并且由于转换机理相对比较复杂,因而化学传感器远不如物理传感器那样成熟和普及。但是,随着科学技术的发展,尤其是人类对环保的需要,人们对化学传感器的需求日益增多,化学传感器也就显得日益重要。1.2 国内外发展现状与趋势现代科学技术的发展,传感器应用进入了许多新领域:例如在宏观上要观察上千光年的茫茫宇宙,微观上要观察小到 cm的粒子世界,纵向上要观察长达数十万年的天体演化,短到 s的瞬间反应。此外,还出现了对深化物质认识、开拓新能源、新材料等具有重要作用的各种极端技术研究,如超高温、超低温、超高压、超高真空、超强磁场、超弱磁场等等。显然,要获取大量人类感官无法直接获取的信息,没有相适应的传感器是不可能的。许多基础科学研究的障碍,首先就在于对象信息的获取存在困难,而一些新机理和高灵敏度的检测传感器的出现,往往会导致该领域内的突破。一些传感器的发展,往往是一些边缘学科开发的先驱。随着芯片、网络技术的进步,现在出现了基于嵌入式技术的物联网系统5以及嵌入式传感器。嵌入式系统也由于软硬件可裁剪、本身体积小、实时性高、稳定性好、支持网络等优点,成为工控领域的新热点。基于嵌入式技术的物联网应用系统有效的将嵌入式技术和数据采集技术结合在一起,可以很好的解决基于PC的监控系统中存在的设备体积庞大、便携性差、实时性差等问题。在监控现场利用嵌入式传感器,采用专用芯片和嵌入式操作系统,把单板采集到的数据进行编码然后传输到客户端实现实时监控,有效地提高了系统的实时性和稳定性。传感器的发展主要得益于物联网的发展,而物联网在中国迅速崛起得益于我国在物联网方面的几大优势。(1)我国在1999年就启动物联网核心传感网技术研究,研发水平处于世界前列; (2)在世界传感网领域6,我国是标准主导国之一,专利拥有量高; (3)我国是目前能够实现物联网完整产业链的国家之一; (4)我国无线通信网络和宽带覆盖率高,为物联网发展提供坚实的基础设施支持; (5)我国已经成为世界第二大经济体,有较为雄厚的经济实力支持物联网发展。1.3 课题来源“物联网”概念的问世,打破了之前的传统思维。过去的思路一直是将物理基础设施和 IT 基础设施分开:一方面是机场、公路、建筑物,而另一方面是数据中心,个人电脑、宽带等。而在“物联网”时代,钢筋混凝土、电缆将与芯片、宽带整合为统一的基础设施,在此意义上,基础设施更像是一块新的地球工地,世界的运转就在它上面进行,其中包括经济管理、生产运行、社会管理乃至个人生活。 物联网可分为三层:感知层、网络层和应用层,如图1-2所示。 图1-2 物联网层次图感知层是物联网的皮肤和五官识别物体,采集信息。感知层包括二维码标签和识读器、RFID 标签和读写器、摄像头、GPS、传感器、终端、传感器网络7等,主要是识别物体,采集信息,与人体结构中皮肤和五官的作用相似。网络层是物联网的神经中枢和大脑信息传递和处理。网络层包括通信与互联网的融合网络、网络管理中心、信息中心和智能处理中心等。网络层将感知层获取的信息进行传递和处理,类似于人体结构中的神经中枢和大脑。应用层是物联网的“社会分工”与行业需求结合,实现广泛智能化。应用层是物联网与行业专业技术的深度融合,与行业需求结合,实现行业智能化,这类似于人的社会分工,最终构成人类社会。本设计就是针对上述需求对嵌入式技术的智能监控系统传感模块驱动应用开发。1.4研究的意义和目的物联网如图1-3所示可以看作是互联网的延伸和扩张,也是未来通信信息产业的发展趋势,物联网产品的出现也极大地改变了现今社会人们的生活方式和理念。中国企业报在调查中还发现,随着物联网技术涉及范围渐广,家电产品也搭上了这班“顺风车”,物联网冰箱、洗衣机、空调、微波炉、热水器等纷纷登场亮相,为人们展示了未来智能生活的美好图景。物联网的各个物理实体连接如图1-3所示。图1-3 物联网目前,物联网发展极其迅速,而物联网的最主要的特点是通过射频识别(RFID) 、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,把任何物品与互联网相连接,进行信息交换和通信。所以传感模块是组成物联网的必不可少的条件。本系统是基于嵌入式技术的智能监控系统传感模块驱动应用开发8,主要的目标是:(1)实现mini2440的最小系统的移植,使其最少拥有网络功能,USB功能;(2)实现单板对环境数据的采集,同时打包,并通过串口传送;(3)实现单板能接收来自串口的命令,并实时反映;(4)实现一个家电服务器应用程序,使其可以对单板发送命令,并接收来自单板的数据包,同时刷新网页数据;(5)实现boa服务器,远程端可以通过网页查看实时数据,同时解释网页的命令。1.5 本章小结首先对整个系统的硬件、系统软件以及应用程序做了一个简单的陈述,然后具体介绍了开发此系统的意义和目的。接下来具体介绍了基于嵌入式的应用系统在国内外的发展现状以及未来的发展趋势。由以上分析得出,基于嵌入式技术的智能监控系统传感模块驱动应用开发与研究是一个新热点。2 系统需求分析在进行可行性研究和项目开发计划以后,如果确认开发一个新的软件系统是必要的而且是可行的,那么就可进入需求分析阶段。需求分析是指开发人员要理解用户的要求,进行详细的市场调查,确定系统的新目标。为了满足用户的需要,回答系统要“做什么”的问题。2.1 系统功能需求分析根据物联网层次图分析,为使物联网能够实时高效的工作,对感知层的研究就显得异常的重要。而构成感知层的重要组成部分就是各类传感器。实质上我们的工作就是对大量传感模块的组织与管理,使其有序的工作,并实时的采集其有效范围内的相应参数,而处理器就可以根据参数做出相应的处理,比如说我们的实验单板中,有一个温湿度传感器,我们可以不断的读取其数据来感应环境的温度变化,当温度高于我们设定的温度是就开启风扇或发出警报。同时由于我们数据还将发送至网络,所以我们还可以通过网络进行实时的监控。如上综述,我们的系统要完成的功能有以下四点:(1)实现传感器对外界信息的采集,比如温度、湿度以及光亮强度。(2)实现单板与服务器数据的互传(3)实现服务器与外界网络的连接(4)实现单板之间的zigbee组网2.2 系统硬件需求分析嵌入式系统开发与硬件平台紧密相连,没有硬件支持的嵌入式平台是不完整的。良好的硬件平台也为嵌入式系统应用软件的开发提供了许多便利。选择合适的硬件平台是一项复杂的工作。同时对传感器的选择也是非常重要的,我们采用的温湿度传感器是DHT11 数字温湿度传感器9,采集光亮强度的传感器是ISL29003传感器。根据此系统的需求分析,选择的硬件平台是ARM920T核10的S3C2440A处理器、RAM控制器、NAND Flash控制器。根据设计的要求进行相关配置和扩展,硬件平台配置了8位256MB 的NAND Flash和32位64MB 的SDRAM,通过以太网控制器芯片DM9000扩展了一个网口,另外需要一块集成各类传感模块的单板,其最少集成了温湿度传感器,光感传感器。根据系统的需求,路由单板负责接收节点单板的数据,接收的方式是利用无线传输方式。由于本系统是模拟智能家电系统,所以需要一种近距离、低复杂度、低功耗、低速率、低成本的双向无线通讯技术。经过分析,本系统选择zigbee无线传输技术。系统采用的是zigbee无线组网11方式,使用的zigbee模块是周立功代理的ZICM2410 模块,它是集成了CPU的单片zigbee芯片,为 ZigBee网络提供一个高性能,低成本的射频收发方案。2.3 系统软件需求分析软件平台主要是uboot、嵌入式操作系统、嵌入式文件系统12以及BOA服务器。2.3.1 引导程序uboot是在操作系统内核运行之前运行的一段小程序。通过这段小程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。本系统所用的是u-boot-1.1.6版本,在网上下载源代码通过编译烧写到s3c2440的nandflash中。2.3.2 嵌入式操作系统嵌入式操作系统是嵌入式系统极为重要的组成部分。它提高了系统的可靠性、提高了开发效率,缩短了开发周期、充分发挥了32位CPU的多任务潜力。嵌入式操作系统的选择主要考虑其可移植性、可利用资源、系统定制能力和成本。综合对比了几种嵌入式操作系统,本系统选择了嵌入式Linux操作系统,它与其它嵌入式操作系统相比,Linux有以下特点:(1)Linux系统是层次结构且内核完全开放。Linux是由很多体积小且性能高的微内核系统组成。(2)强大的网络支持功能。(3)Linux具备一整套工具链,容易自行建立嵌入式系统的开发环境和交叉运行环境,可以跨越嵌入式系统开发中仿真工具的障碍。(4)Linux具有广泛的硬件支持特性。无论是RISC还是CISC、32位还是64位等各种处理器,Linux都能运行。(5)Linux有装载和卸载程序的能力,所有应用程序以文件的形式被存放在闪存文件系统中并在必要的时候被装载到内存中,以节省RAM。(6)Linux移植到新的微处理器体系非常快捷,一般是将其移植到一种新型的目标板,其中包含有独特的外设。2.3.3 嵌入式文件系统根据上面的分析本系统选择了Linux作为嵌入式操作系统,其支持多种文件系统,包括ext2、ext3、vfat、ntfs、iso9660、jffs、romfs和nfs等,为了对各类文件系统进行统一管理,Linux引入了虚拟文件系统VFS,为各类文件系统提供一个统一的操作界面和应用编程接口。 不同的文件系统类型有不同的特点,因而根据存储设备的硬件特性、系统需求等有不同的应用场合。在嵌入式Linux应用中,主要的存储设备为RAM和ROM,常用的基于存储设备的文件系统类型包括:jffs2, yaffs, cramfs, romfs, ramdisk, ramfs/tmpfs等。综合考虑了各种文件系统的特点,本文选择了cramfs和yaffs作为本系统的文件系统,其有如下特点:(1)CRAMFS文件以其只可读的性质非常适合用于作为根文件系统的可读分区,使其有更高的安全性。(2)YAFFS文件系统类似于JFFS/JFFS2,是专门为NAND闪存设计的嵌入式文件系统,适用于大容量的存储设备。它是日志结构的文件系统,提供了损耗平衡和掉电保护,可以有效地避免意外掉电对文件系统一致性和完整性的影响。(3)YAFFS文件系统是按层次结构设计的,分为文件系统管理层接口13、YAFFS内部实现层和NAND接口层,这样就简化了其与系统的接口设计,可以方便地集成到系统中去。与JFFS相比,它减少了一些功能,因此速度更快,占用内存更少。(4)YAFFS采用一种多策略混合的垃圾回收算法,结合了贪心策略的高效性和随机选择的平均性,达到了兼顾损耗平均和系统开销的目的。2.3.4 BOA服务器根据系统需求,服务器最终需要把采集到的数据通过网络发送出去,使得远程客户端可以通过网页实时的监控被控端信息。为了实现这一目标,本系统采用的是一个小型的web服务器14,即BOA服务器。本系统选用BOA服务器的主要原因是BOA服务器是一种非常小巧的Web服务器,其可执行代码只有大约60KB左右。作为一种单任务Web服务器,虽然BOA只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求,但BOA支持CGI15,能够为CGI程序fork出一个进程来执行。因此当远程客户在点击网页按钮时,BOA支持的CGI就会执行,从而达到客户控制远程端的目的。Boa的设计目标是速度和安全。2.4 本章小结 在这一章,主要做的工作就是进行系统需求分析,这一章在整个系统开发上起到了至关重要的作用,可以说是一个关键环节,这一章的分析调查结果直接指导以后的系统开发的工作,也直接关系着整个系统完成后的功能情况。在进行系统需求时,查阅了大量关于硬件和嵌入式操作系统方面的知识,综合各方面的因素,最终确定了选用的硬件平台和嵌入式操作系统。并且还查阅了目前市场上的嵌入式物联网应用系统,综合比较了各个系统之间的优点和不足,最终确定了系统的功能。3 系统设计进入了系统设计阶段,要把软件“做什么”的的问题变换成“怎么做”的问题。要将需求分析阶段生成后的文件将进一步的分析和精化。描述软件的总体体系结构,称为软件概要设计。然后对结构进一步细化,称为详细设计。本章主要介绍系统概要设计和系统详细设计。3.1软件的运行环境为了保证系统运行的可靠性,对于软件的运行环境具有一定的要求。软件的运行环境分为硬件环境和软件环境。(1)服务器端硬件配置 PC机 处理器:基于ARM920T内核的S3C2440A处理器 内存: 64MB以上 Mini2440开发板集成各类传感器模块的单板LPC1114ZICM2410无线传输模块USB线,网线(2)客户端硬件配置 处理器:PIII以上计算机 内存: 256MB以上 显示器:17#彩显(3)软件环境 Ubuntu10.10操作系统 Windows 98/2000/XP操作系统(可选) 嵌入式Linux开发环境 Zigbee无线模块测试软件3.2系统概要设计软件总体结构的设计是概要设计关键的一步,直接影响到详细设计与编码的工作。所以要采用一定的设计方法,选取合理的设计方案。3.2.1 系统功能说明根据系统的需求分析,系统运行在前后台的不同有不同的功能模块。我们总共有三个功能模块,在数据源单板端,主要是实现数据的采集、打包和发送,同时不断的解析来自服务器端的命令。在服务器端,主要实现一个相当于家电服务器功能的功能模块,负责对单板进行命令发送和解析来自数据源端的数据。还有远程客户端,主要是实现人机交互。综上所述,本系统有以下功能:(1)用户通过网页实时查看被控区的温湿度、光亮强度以及LED灯和风扇状态。(2)用户可以直接操作LED灯、风扇和蜂鸣器,比如打开和关闭。(3)实现自动控制功能。3.2.2 系统总体功能结构系统总体结构功能图如图3-1所示。图3-1 系统总体功能图由图3-1可知,本系统结构主要分为三个大的层次。分别是远程客户端,服务器端以及数据源端,也就是对物联网中的感知层,网络层和应用层的实例化。即数据源端来自于感知层,服务器端从感知层获得数据后通过网络层把数据传送至远程客户端。远程客户端就可以通过网络进行实时查看。在数据源端,主要是由各类模块传感器实现,模块传感器顾名思义就相当于生物对外界环境的相关反映一样。可以感知外界环境的变化,并转化为相应的数据。然后传输给家电服务器。家电服务器在接收数据后就可以根据数据做出相应的反映。在服务器端,主要是由开发板s3c2440实现,其主要的功能是根据要求不断的从数据源端获得外界数据,然后对数据进行处理,并根据数据对相应的家电设备发出相关命令,同时服务器端还要响应来自网络上的连接,当网络上有请求连接时,服务器就要响应连接,并实时的更新网页的数据,同时接收来自网络的命令,最后做出相应的处理。本系统中服务器主要由家电服务程序和小型web服务器型的boa服务器组成。在远程客户端,远程客户端主要是主动去连接服务器,然后可以实时观察远程的环境参数,同时可以根据环境参数的变化对远程的家电设备进行监控。当然,用户也可以通过网页对远程端设备设置自动控制命令。在图3-1中,远程客户端与服务器端是通过互联网连接,因此客户端可以在世界的任何角落都能通过互联网来监控特定的区域,这就使得我们的监控非常具有灵活性。服务器端与数据源是通过串口实现数据传输的。在数据源端,我们有一个以上的单板,因此,我们在数据源端设有一快路由单板,其负责收集所有单板的数据,然后通过串口把数据传送至服务器。当然,当我们的服务器要给某一块单板发送命令时,也是把命令先发送至路由单板,然后由路由单板把命令发送给各个单板。各个单板在收集到命令进行解析,如果是自己的命令就执行,否则丢弃。而在整个链路过程中,最重要的就是路由单板与个单板节点的数据通信,我们是利用zigbee组网来实现路由单板与各单板节点的数据通信的。ZigBee技术是一种近距离、低复杂度、低功耗、低速率、低成本的双向无线通讯技术。主要用于距离短、功耗低且传输速率不高的各种电子设备之间进行数据传输以及典型的有周期性数据、间歇性数据和低反应时间数据传输的应用。在zigbee组网过程中,难点是对数据包的定义,同时要解决数据在传输过程中失真或丢失的问题,还有就是如何给每个单板节点数据加上各自独一的标签。3.2.3 系统控制流设计通过对系统的分析,系统实现用户通过网络上PC机的浏览器来登入到服务器,通过网页来实时的查看和监控被控区域的温湿度、光亮强度以及控制模拟的家电设备。具体的系统控制流程图如图3-2所示。图3-2 系统控制流如图3-2中,可以非常直观的显示该系统所设计的功能流程和其功能实现。从何图中我们可以更直观的看到数据源不断的采集数据并接收来自服务器端的命令,服务器端则响应来自网络的请求与下层进行交流。从图可知,用户可以在远程端通过网络连接到我们的服务器,然后服务器接到请求后给用户发送一个网页,则用户可以通过网页直观的查看各类环境参数。并按照自己的意愿对远程的家电设备进行监控。通过对系统的分析,在整个系统中,关键的是如何数据的传输,本系统中涉及了有线传输和无线传输,有线传输是给远程网络的用户提供服务,无线传输主要是路由对节点数据的收集。3.3 系统详细设计在系统的概要设计中,已将系统划分为多个模块,并将它们按照一定的原则进行组装,同时确定了每个模块的功能。详细设计是系统设计的第二阶段,主要确定每个模块的具体执行过程。3.3.1 数据源端功能设计通过对数据源端功能的分析,数据是由多个节点提供。节点提供给路由端相同的数据类型。数据源端节点数据的采集是通过zigbee无线传输方式,路由节点的流程图如图3-3所示。图3-3路由节点流程图普通节点数据流程图如图3-4所示。图3-4 普通节点流程图图3-3中,在该数据源端,即单板LPC1114,在本系统中该模块有三个作用,其一是采集本身相关的传感模块的数据,其二是直接与服务器建立有线连接,该模块可以接收服务器的命令,同时不断地给服务器发送数据。其三是与其他节点建立无线连接,接收其他节点的数据,同时给其他节点发送命令。即该模块除具备普通节点的采集数据的功能外,还具备了路由的功能,所以可以称为路由节点。图3-4中,在该此数据源端中,其主要是与路由节点建立无线连接,当接收到路由节点的命令后进行解析,然后响应,如果接收的命令是采集数据命令,则采集本身数据,然后发送给路由节点。所以本节点只有简单的与路由节点连接,故称为普通节点。如果把路由路节点和普通节点看作一个整体,即数据源端的数据节点的话,其主要有以下的功能。()采集各类传感器数据,并按照相应的格式打包。()接收来自服务器端的命令。()发送数据。3.3.2 数据源端zigbee组网设计通过对数据源端多节点数据传输方式的分析,系统采用zigbee无线组网方式,zigbee无线组网方式拓扑结构如图3-5所示。图3-5 zigbee拓扑结构从图3-5 zigbee拓扑结构图中可知,路由单板是根据各单板节点的ID号来区别各个单板节点的。所以单板节点在定义数据包时要在数据包的头部增加自身的ID号,这样路由单板在接收到数据包后只要解析数据头部的ID就可以区分接收的数据包是哪块单板发送的。当路由单板在给某个单板节点发送命令时,也是只要在命令的头部加上要控制的单板节点的ID号。所有单板节点在接收到数据后,解析数据头部ID号,如果解析的ID号与自己ID号相符则执行该命令,如果解析的ID号与自己的不相符则丢弃该命令。新节点的加入如图3-6所示。图3-6 新节点加入图新节点加入的详细流程图如图3-7所示。图3-7 新节点加入流程图从图3-7可以很直观的了解到新节点动态加入的流程。设计这一功能的优点是增加系统的实用性与扩展性。这样,系统的适用能力更强,可以自动识别新节点和旧节点,这一设计使得系统可以在节点流动性大的区域可靠的使用。新节点加入过程中,3.3.3 系统服务器端各功能设计通过对系统整体分析得知,系统服务器承载着大部分的数据处理,单板只负责简单的命令执行。根据这一设计思想,系统设计出了图3-8所示的系统流程图,该图主要描述了服务器端的数据流程,其主要是作为远程客户端和数据源端连接的纽带,同时处理比较复杂的工作,比如处理来自数据源的数据以及响应来自网络的远程客户端的连接。其主要有以下功能:(1)接收来自单板的数据(2)接收来自远程客户端的命令(3)给单板发送命令系统服务端整体流程如图3-8所示。图3-8服务器端流程图3.3.4 系统客户端各功能设计图3-9 客户端流程图图3-9主要描述了客户端网页的简单流程,从图中可以看出系统客户端的主要功能有以下两点。(1)一个动态网页,动态显示远程单板数据(2)实现相关控制按钮3.4 本章小结系统设计是每个系统的灵魂所在,这一章分为概要设计和详细设计两个部分,通过对系统的概要设计得出来系统的结构功能图以及系统的控制流图,这是整个系统的核心,它直接展示了系统的功能以及整个系统的控制流。在详细设计阶段,主要阐述服务器端和客户端在各个功能上的设计过程,这个阶段为系统的实现奠定了基础。4 嵌入式ARM-Linux环境建立绝大多数的软件开发都是本机开发、调试,本机运行的方式进行,但是这种方式不适合于嵌入式系统的软件开发,因为对于嵌入式系统的开发,它没有足够的资源在本机运行开发工具和调试工具。因此在宿主机上搭建一个好的开发环境是很关键的一步,它的成败直接影响下一步的进展。根据需求分析确定了系统的开发环境是嵌入式Linux操作系统。4.1基于Arm-Linux系统的总体设计根据需求分析和嵌入式系统结构,得出了系统所需的系统结构如下图4-1所示。图 4-1 系统结构图论文设计的嵌入式实时监控系统主要分为四个层次: (1)基于S3C2440A处理器的硬件平台。 (2)加载程序uboot,主要初始化处理器及存储器等硬件设备。 (3)Arm-Linux内核的裁剪、移植,设备驱动的加载以及文件系统的建立。 (4)boa服务器的移植和应用程序的开发:包括数据采集、传输和网页动态显示。根据系统结构的设计,将分以下三个步骤实现,这一章只实现其中的前两步,其它的部分的实现在后续章节展开。实现步骤如下:(1)Arm-Linux交叉开发环境的建立。(2)嵌入式Arm-Linux的裁剪和移植:其中包括启动加载程序U-Boot的移植、内核的裁剪与移植、设备驱动模块的加载、文件系统的移植。(3)boa服务器移植。(4)外界环境数据的采集,传输。4.2 Arm-Linux交叉编译工具链的建立与主流软件开发相同,嵌入式系统开发同样需要用到编译器、链接器、解释程序、集成开发环境以及诸如此类的开发工具。但是在嵌入式系统开发中,由于执行应用程序的平台(目标机)与创建应用程序的平台(宿主机)并不兼容,因此,需要交叉开发工具进行交叉编译。本文采用工具链Arm-Linux-gcc-4.4.5创建Arm-Linux交叉编译环境9。建立过程如下:以超级用户的身份登录Linux操作系统,然后在/opt目录下新建arm目录。将工具链arm-linux-gcc-4.3.2.tgz复制到新建ARM目录下,并执行解压。在宿主机中设置环境变量使得系统能自动调用已建立好的工具,具体的设置 方法为:修改环境变量PATH的值。4.3 Linux内核的裁剪与移植嵌入式系统的硬件资源毕竟有限,不能直接将Linux操作系统作为嵌入式硬件平台上的操作系统,需要针对具体的应用进行内核的配置和裁减,使整个系统能够存放到容量较小的 Flash中。Linux的动态模块加载方式使 Linux的裁剪极为方便,高度模块化使得添加和删减非常容易。结合该系统在开发中所需要的功能,Linux内核的裁剪与移植过程中涉及到的目录有:include/ 、arch/ 、drivers/ 、fs/。移植的过程为:在根目录新建/tool目录,将ARM Linux源代码解压至该目录下。进入内核所在目录,修改配置文件和系统时钟拷贝默认配置文件,cp arch/arm/configs/s3c2410_defconfig .config编译ARM-Linux内核,在终端输入:make menuconfig。将会出现如下界面。内核配置如图4-2所示。图4-2 内核配置图然后对内核进行裁剪和配置,配置完成后在终端输入 make uImage 开始编译内核。然后把cp arch/arm/boot/uImage /tftpboot/4.4 NFS网络文件系统与BOA服务器的制作4.4.1 NFS网络文件系统制作NFS网络文件系统可以使得系统调试开发更容易进行,只需要将经过交叉编译器编译之后生成的可执行文件通过NFS挂载到板子上为调试做好准备,避免反复的烧写可执行文件到FLASH中,造成时间浪费和FlASH寿命的缩短。如图4-3、图4-4、图4-5所示为最小文件系统的简单制作过程。配置进入busybox-1.18.5目录make menuconfig具体配置如图4-3所示。图4-3 busybox配置图1为开发板设置编译器前缀 arm-none-linux-gnueabi-,如图4-4所示。图4-4 busybox配置图2文件系统的ionice配置设置如图4-5所示。图4-5 busybox配置图3配置完成后直接编译根文件系统,最后在根文件系统上增加系统启动的shell文件。4.4.2 BOA服务器的移植boa 服务器是一个 web 服务器,在嵌入式系统中使用比较广泛。同时移植简单,我们可以在网上下载一个BOA服务器的源码,然后根据编译的前面制作的文件系统做适当的修改相关的文件代码,最后通过相关的命令就可以完成对BOA服务器编译。编译好BOA服务器后,把编译的BOA服务器复制到之前制作好的网络文件系统的文件夹内。具体做法是创建boa服务器存放目录mkdir /opt/rootfs/var/boa ,并将 boa源码目录下的 boa.conf 拷贝到/opt/rootfs/etc/boa 目录下 ,然后把虚拟机下的etc/mime.types也拷贝到该目录下。最后把说需网页也放到该目录下。这样boa服务器构建完毕!4.5 构建嵌入式Linux目标平台(1)烧写uboot,我们用JTAG实现对mini2440的nandflash烧写,烧写过程这里略过。(2)烧写内核,内核的烧写我们利用uboot的命令进行烧写,其过程是,首先启动uboot,然后依次输入以下命令。FS2410 # tftp 30800000 uImageFS2410 # nand erase 60000 200000FS2410 # nand write 30800000 60000 200000FS2410 # setenv bootcmd nand read 30800000 60000 200000 ;bootm 308000004.6本章小结一个好的嵌入式开发平台是进行后续开发的一个重要基础,它在整个嵌入式系统开发的过程中起着非常重要的作用。本章主要阐述了嵌入式ARM-Linux开发平台的搭建。具体的介绍了交叉编译工具链的建立,嵌入式Linux操作系统的裁剪和移植以及网络文件系统的搭建。最后介绍了如何将uboot、内核以及文件系统烧写到目标平台上。5 系统实现经过以上的分析和设计,就要开始进行系统实现工作了,系统主要分为服务器端和数据源端。在实现的过程中,我认为实现的难点将是数据包协议如何定义, 因为如果数据包协议定义不合理,将导致数据无法正常发送至服务器端,或者服务器接收的数据包会造成丢失。所以在实现过程中我们应该由简单到复杂,首先实现单个数据的发送,然后在实现多数据的发送。这样才能确保项目能更加顺利的完成。在本项目中,我们都是由简入难,步步为营的思想来按计划的完成我们项目。先实现简单的框架再实现复杂程序的方法来完成。5.1 数据源端的实现(1)首先是定义好一个数据包协议,即实现一个数据结构typedef struct char tem4; char hum4; charlux4; char led4; char fan4;(2)温湿度的采集,程序主要代码如下:uint32_t Read_Temp_Hum(uint8_t *temp, uint8_t *hum) GPIOSetDir(PORT3, 2, 1); /设置对应引脚(PI03_2)为输出模式 GPIOSetValue(PORT3, 2, 0); /设置输出为低电平 delay_ms(30); /设延时 30MS(大于 18MS) GPIOSetValue(PORT3, 2, 1); / 输出高电平,释放总线 GPIOSetDir(PORT3, 2, 0); /设 PIO3_2 为输入模式 GPIOSetInterrupt(PORT3, 2, 0, 0, 0); /设控制器中断为下降沿中断 GPIOIntEnable(PORT3, 2); /使能中断 for(i=0; i3; i+) GPIOSetInterrupt(PORT3, 2, 0, 0, i&0x01); while(p3_2_counter = cnt_last); cnt_last = p3_2_counter; for(i=0; i40; i+)GPIOSetInterrupt(PORT3, 2, 0, 0, 1); while(p3_2_counter = cnt_last); cnt_last = p3_2_counter; tc1 = p3_2_tc; GPIOSetInterrupt(PORT3, 2, 0, 0, 0); while(p3_2_counter = cnt_last); cnt_last = p3_2_counter; if(p3_2_tc tc1) tc = tc1 - p3_2_tc; else tc = 48000 - (p3_2_tc - tc1); if(i 8) temp10 = 2328) temp10 |= 0x01; else if(i 16) temp01 = 2328) temp01 |= 0x01; else if(i 24) hum10 = 2328) hum10 |= 0x01; else if(i 32) hum01 = 2328) hum01 |= 0x01; else chksum = 2328) chksum |= 0x01; GPIOSetInterrup
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中学读书主题班会课件
- 2025年版北京市购房合同范本
- 电源成本控制与节约合同
- 2025电力工程招标委托代理合同
- 2025个人借款合同协议样本
- 2025「合同法案例」优化离职流程以减轻法律风险
- 2025企业用房借款合同范本
- 中国龙课件制作
- 心内科护理质控年终总结
- 护理科研文献检索与管理
- 私企退休员工管理办法
- 2025年地区事业单位招聘公共基础知识重点难点突破试题
- 2025变压器类产品型号注册管理
- 推进教师跨学科教学能力提升方案
- 职业院校与企业深度合作2025年校企合作人才培养质量提升策略与实践报告
- 2025党考试题及答案
- 北京玉渊潭中学初一新生分班(摸底)数学模拟考试(含答案)【6套试卷】
- A型肉毒素注射美容记录
- T∕CCIA 001-2022 面向网络安全保险的风险评估指引
- 中职 物联网 试讲题目2
- 高处作业审批表
评论
0/150
提交评论