基于ARM11的嵌入式远程无线环境监测系统的设计毕业论文_第1页
基于ARM11的嵌入式远程无线环境监测系统的设计毕业论文_第2页
基于ARM11的嵌入式远程无线环境监测系统的设计毕业论文_第3页
基于ARM11的嵌入式远程无线环境监测系统的设计毕业论文_第4页
基于ARM11的嵌入式远程无线环境监测系统的设计毕业论文_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业论文(设计)题目:基于ARM11的嵌入式远程无线环境监测系统的设计

基于ARM11的嵌入式远程无线环境监测系统的设计摘要:温湿度采集传感技术和GPRS无线传输技术应用广泛,已经应用到了工业,农业等各个领域。随着我国经济的发展,环境问题日益突出,环境保护应以预防为主治理为辅,我们应把计算机技术与环境保护相结合,根据环境监测数据提出相应的治理方案。本系统使用分为监测主机和监测从机,主机使用ARM11处理器和Linux系统,从机使用Cortex-M3核的微控制器。从机采集数据后通过GPRS回传到主机进行显示。主机是一台基于S3C6410处理器的单板,除处理器外还有内存、FLASH以及网卡芯片,主机运行Linux操作系统,使用QtCreator编写程序,然后使用交叉编译工具arm-linux-gcc编译成ARM版本的可执行文件,然后拷贝到单板上运行,主机的数据存储使用的是轻量级数据库SQLITE,可供查看以往的记录信息,主机使用以太网接收从机传来的温湿度信息。从机是以LPC1768微控制器为主控的专用温湿度采集系统,传感器是DHT22,DHT22是一款集成采集温度度功能于一体的传感器,传感器采集完温湿度后通过GPRS通道传给上位机,GPRS芯片使用的是SIM900,这是一款工业级的手机模块芯片。本文首先给出了设计的原理和设计思路,然后根据软硬件分章介绍各自的设计原理以及实现过程,从而设计一个高稳定性的环境监测系统,实现环境温湿度的在线实时监测。关键字:微控制器;微处理器;GPRS;Linux;ARM11;ARMCortex-M3Design

of

Embeded

Wireless

and

Remote

Environment

Monitoring

System

Based

on

ARM11Abstract:Temperatureandhumiditysensortechnologycaptureawiderangeoftechnologyapplications,andsodoesGPRSwirelesstransmission.Theaccordinglytechnologieshavebeenappliedtovariousfieldsofindustry,agricultureandsoon.AsChina'seconomicdevelopment,environmentalissueshavebecomeincreasinglyprominent,environmentalgovernanceshouldbebasedonpreventionsupplement,weshouldcombinecomputertechnologyandenvironmentalprotection,proposeappropriategovernanceprogrambasedonenvironmentalmonitoringdata.Thesystemisdividedintomonitoringtheuseandmonitoringfromthehostmachine,thehostusesARM11processorandLinuxsystems,theslaveusingCortex-M3microcontrollercore.DatacollectedfromthemachinebacktothehostviaGPRSdisplay.Host-basedS3C6410processorisasingle-board,inadditiontotheprocessorbutalsohavememory,FLASHandchipcard,thehostusestheLinuxoperatingsystem,usingQtCreatorprogrammingonLinuxsystems,andthenusecross-compilationtoolscompiledintoARMversionexecutablefile,thencopyittorunasingleboard,themasterdatastoreusingalightweightdatabaseSQLITE,availableforviewingpreviousrecordinformation,thehostusesEthernetreceiveinformationfromthemachinetemperatureandhumiditycoming.SlaveisbasedonthespecialtemperatureandhumidityacquisitionsystemLPC1768microcontroller,sensorsusingDHT22,DHT22isanintegratedcollectionoffunctionsinonedegreeoftemperaturesensors,temperatureandhumidityafterthecompletionoftheacquisitionsensortothehostcomputerviaGPRSchannel,GPRSchipusingSIM900,whichisanindustrial-grademobilephonemodulechip.Thispaperfirstgivesthedesignprinciplesanddesignideas,andthenpresenttheirdesignandimplementationprocessinaccordancewiththeprinciplesofthehardwareandsoftwaresub-chaptertodesignahighstabilityoftheenvironmentalmonitoringsystem,onlinereal-timemonitoringoftemperatureandhumidity.Keywords:Microcontroller;Microprocessor;GPRS;Linux;ARM11;ARMCortex-M3目录1绪论 11.1课题背景与意义 11.2设计中主要问题 21.3主要问题的解决方案 21.4研究内容 22方案论证 32.1设计原理 32.2方案分析 32.3设计特点 43硬件系统的设计与实现 53.1主机硬件架构 63.1.1友善Tiny6410开发板 73.1.2S3C6410简介 73.1.3以太网接口 93.1.4LCD显示屏 93.2从机硬件架构 103.2.1路虎LPC1768开发板 103.2.2LPC1768简介 113.2.3DHT22温湿度传感器 133.2.4手机模块SIM900 153.3本章小结 224嵌入式Linux系统的开发与移植 234.1交叉编译环境 234.2嵌入式开发环境的搭建 245系统程序设计与实现 265.1嵌入式Linux程序设计 265.1.1程序架构设计 265.1.2数据结构设计 275.1.3QT程序界面开发 275.1.4SQLITE数据库开发 295.1.5SOCKET网络通信的设计与开发 315.2ARMCortex-M3程序设计 315.2.1程序架构设计 315.2.2数据结构设计 335.2.3SIM900TCP通信的设计与开发 335.2.4DHT22应用开发 34总结 35参考文献 36致谢 371绪论1.1课题背景与意义我国的制造业呈现出了急剧扩张的趋势,尤其是近几年来,这种趋势更加明显,同时,也初步奠定了我国世界工厂的地位。然而,我国人均GDP达到中等发达水平的同时,环境压力也达到了高峰。现如今环境污染非常严重,是在中国各地都是普遍存在的现象。其中,全国性范围内的雾霾天气明显地揭露了我国环境污染程度的严重性以及生态环境的脆弱性。如今清新芬芳的空气、清澈洁净的水源以及蔚蓝色的天空的变成人们的奢望时,我国环境污染的严重性就足以可见了。由此可见,对环境的治理已经是刻不容缓,然而,环境治理不是一蹴而就的,只有未雨绸缪才能防范于未然,才能去有计划的保护环境,预防环境质量的恶化,控制环境污染,提高人们生活质量,保护人类健康,造福子孙后代。近年来,微控制器和微处理器的的更新速度明显加快,从20年前的8位MCS-51系列单片机到TI推出16位低功耗MSP430系列单片机再到众多ARM核的MCU和CPU,单片机的处理能力不断增强,功耗不断降低,价格也在不断下降,将这些新技术应用到环境监测系统中,在一定程度上提升了环境监测系统的性能,可实现免维护的实时在线监测,大大的提高了环境监测的效率,降低了环境监测的成本。当前应用最为广泛的移动电话标准,GSM(GlobalSystemforMobilecommunication)是由欧洲电信标准组织ETS制定的,被100多个国家使用占据80%以上的通信市场份额,其网络遍布世界各地。GPRS(GeneralPacketRadioService)是GSM(GlobalSystemforMobilecommunication)网络的一种移动数据业务。GPRS是以数据封装成包的形式来传输,用户只需支付使用的流量费,流量费以传输数据单位计算,理论上是一种较为便宜通信方式,可见GPRS在数据传输网络具有较高的性价比。1.2设计中主要问题环境监测系统主要在野外使用,野外恶劣的环境决定了环境监测系统必须有高可靠性的软硬件。硬件电路上选择合适的传感器和芯片显得尤为重要,因此主控芯片和传感器的选型以及在可靠硬件基础上实现软件抗干扰是本设计的主要问题。1.3主要问题的解决方案针对本次设计的需求通过比较几款温湿度传感器后,选择了测温范围为-40~80℃的DHT22,此款传感器的测温范围可满足正常的室外测温,DHT22测量湿度的分辨率为0.1%RH,精度为±2%RH,测量温度的分辨率为0.1℃,精度小于±0.2摄氏度,可满足测量要求。测量从机选用LPC1768作为主控,作为一款工业级的Cortex-M3核的单片机其可靠性和性能是经过市场验证的,可放心使用。测量主机在室内使用,工作环境相对良好,因此选用价格相对适中的三星公司的消费级ARM11处理器S3C6410。1.4研究内容本次设计主要是从机采集温湿度数据,采集到数据后激活SIM900应用场景,然后开启GPRS通道向主机传送测量到的数据,主机通过以太网接收后显示在LCD屏上同时也会备份到自身的数据库中方便用户以后查看,主机上有相应的界面操作可供用户查看和操作。主机是一台由ARM11处理器、内存芯片、FLASH芯片和以太网芯片构成的嵌入式单板,单板运行Linux系统,在Linux上运行Qt界面程序,使用以太网接收数据,然后再由SQLITE数据库存储温湿度记录信息,从而可以查看以往的记录。从机由ARMCortex-M3核的微控制器和温湿度传感器DHT22以及通信芯片SIM900组成,传感器采集到数据后实时上传给主机。

2方案论证嵌入式系统的设计方案需要从功能、硬件芯片选型、硬件电路规划、操作系统的选取、开发平台的选取、通信协议选择等方面考虑。硬件芯片选型需要综合考虑芯片的工作环境、电压范围、功耗等因素。同时芯片的选型也要考虑软件运行需要的CPU速率和内存大小,在最小需求的技术上要留下20%~80%的余量,以备日后扩展功能之用。本章节主要从系统功能、设计原理和芯片选型以及通信协议选择等方面进行介绍,其他部分在以后的章节介绍。2.1设计原理本设计的从机通过温湿度DHT22测得温湿度,然后通过以太网络发送给主机,主机在线实时接收多节点的温湿度数据,主机收到数据后显示到LCD上,同时也会根据用户设定参数做相应的提示。2.2方案分析要想实现多节点测量就得有可靠的通信模型和通信协议,通信模型采用“服务器-客户端”的模型,通信协议是仿照modbus协议按照本系统需求设计的,同时受主机和从机距离的限制,所以通信采用以太网络,从机使用工控手机模块SIM900,主机采用ARM11处理器+Linux方案,主机在此设计中作为服务器存在,所以必须得为主机提供一个静态公网ip或者做动态域名解析。在系统架构搭建好之后就要分别设计主机和从机了,主机的工作是接收数据和提供人机界面,因此在S3C6410芯片最小系统基础之上添加LCD液晶显示部分和以太网口部分,从机主要是采集数据后传给主机,故主控使用LPC1768传感器使用DHT22通信使用手机模块SIM900(说明:因受硬件设施的限制主从机都采用开发板设计)。近年来ARM核的微处理器和微控制器飞速发展,在计算能力和处理速度上有了很大提升,同时价格也不断降低,已经深入我们生活的方方面面,所以本系统顺应时代发展的潮流,采用ARM核的微控制器和微处理器可实现以下优点:低功耗,采用ARM处理器的主机能够以比X86主机更低的能耗实现同等的功能,为节能减排做贡献。高计算能力,ARM核微控制器的处理能力远远高于8位和16位MCU,为后期扩充程序留下足够的余量。更小的体积,嵌入式系统硬件系统是根据功能量身定做的,因此在硬件体积上比通用机有绝对的优势。可靠性高,一些嵌入式系统结构简介,可靠性也相对会高一些。2.3设计特点本设计采用嵌入式系统,整个系统架构精简,体积小,成本低,可靠性高,易于维护。硬件采用友善和路虎开发板实现,主机Linux系统使用友善提供的固件,几乎不用自己做工作,因此主要工作集中在通信协议的设计、Linux程序的编写和LPC1768程序的编写上。

3硬件系统的设计与实现一个优秀的嵌入式软硬件架构才能构造出一个稳定的嵌入式系统,嵌入式硬件架构需要综合分析应用需求(比如:工作条件,采集的信号,输出等等)和软件需求(软件对CPU速度和内存、FLASH的大小要求等等)选取适当的元器件,同时也要考虑工作环境(如散热和电磁干扰问题)。只有从不同的方面考虑众多的系统之后才能设计出一个稳定的嵌入式硬件。我们设计嵌入式架构的时候要本着简单的原则,因为在一定程度上系统损坏的几率与复杂程度成正比,所以越是简单的系统越稳定。本设计硬件架构按照简单的原则进行设计,将系统总架构分为主机和从机,主机有着跟PC一样的硬件架构,不同之处是本设计的主机使用ARM11核的CPU,从机则是一个基于LPC1768微控制器的专用温湿度采集系统,从机由数据采集单元、传输单元以及处理单元三个结构单元构成。主机主要的主要任务则是负责温湿度数据的接收、显示以及存储。因为本系统需要在线实时的统计各地的温湿度数据,数据量表较大,所以跑操作系统使用数据库是一个最佳的选择,同时也要提供良好的人机交互界面,因此对处理器的要求就比较高,所以在考虑硬件架构的时候选择了性能优秀的ARM11核处理器S3C6410。从机主要负责温湿度采集和传输工作,任务相对简单一些,因此选用了ARMCortex-M3核的工控芯片LPC1768.主从机间的数据传输要达到实时的要求同时也要考虑布置网络的方便程度,所以就选用了以太网络,近些年随着网络技术的发展以太网络像蜘蛛网般的遍布我们的城市,因此选择以太网络通信可以省去布线的麻烦,可以说是一个很不错的选择。具体的硬件架构如图3.1所示。图3.1系统硬件架构图本章节只介绍主要的硬件架构,其他分支架构不再介绍。3.1主机硬件架构本系统的主机是一个裁剪过的小型ARM11主机,作为一个主机,CPU、RAM、FLASH、LCD是必须的,同时为了实现网络通信,所以以太网接口也是需要的。主机使用Tiny6410开发板来实现。主机硬件架构如图3.2所示。图3.2主机硬件架构图3.1.1友善Tiny6410开发板核心板:Tiny6410核心板集成了S3C6410处理器,NandFlash芯片,DDRRAM芯片以及专用复位芯片,同时也引出了所有IO,可方便进行二次开发。底板:Tiny6410底板有丰富的资源,预留了三个USB(支持USB1.1和USB2.0协议),两个兼容RS-232电平和TTL电平的串口,音频输入输出接口,TV输出,PCI-E插槽,LCD插槽,中断按键,SD卡插口。友善开发板底板实物如图3.3所示。图3.3主机底板实物图3.1.2S3C6410简介S3C6410是一款三星开发的基于ARM11核的处理器,它具有16/32位RISC体系结构。其内部采用了32/64体系的总线架构,由AXI、APB和AHB总线组成,S3C6410集成了很多音视频及图像处理方面的硬件加速器,提升了处理速度。同时也支持外部FLASH和RAM。同时为了降低成本,S3C6410内部还集成了大量的硬件外设,比如常用的24位LCD控制器,系统管理控制器,PWM单元,IIC、SPI单元,USB控制器等。三星S3C6410内部结构如图3.4所示。图3.4S3C6410内部结构总之,S3C6410提供了一个高性能、低功耗、低成本的硬件解决方案,针对其特点,该处理器适用于PDA、手机等。S3C6410主板实物图如图3.5所示。图3.5S3C6410主板实物图3.1.3以太网接口Tiny6410开发板集成了目前很流行的DM9000以太网控制器,该控制器芯片具有通用处理器连接接口,能够实现10M/100M自动切换,具有高速低成本的特点,能够满足大部分嵌入式系统的需求。3.1.4LCD显示屏显示屏使用的是群创公司生产的7寸液晶屏AT070TN83,AT070TN83的分辨率是800*480,使用a-SiTFTactivematrix驱动单元,具有通常白色和透射式的显示模式,使用RGB颜色管理模式,整屏耗电为1.728w。AT070TN83极限参数如表3.1所示。表3.1AT070TN83极限参数项目符号值单位最小最大供电电压VCC-0.36V输入信号电压Vi-0.36.3V工作温度Top-2070℃存储温度Tst-3080℃LED反向电压Vr1.2VLED正向电流Ifs25maAT070TN83典型工作参数如表3.2所示。表3.2AT070TN83典型工作参数项目符号值单位最小典型最大供电电压VCC33.33.6V供电电流Icc-300350ma输入逻辑高电压Vih0.7VccVccV输入逻辑低电压Vil00.3VccV3.2从机硬件架构从机负责采集温湿度数据,然后通过GPRS网络传送给主机。从机主控使用工控微控制器LPC1768,数据传输使用工控级手机模块SIM900,数据采集则使用DHT22。这些都是工控级别的芯片,可在硬件上最大程度的保证系统的稳定性。从机硬件架构如图3.6所示。图3.6从机硬件架构图3.2.1路虎LPC1768开发板路虎开发板是采用NXP公司生产的ARMCortex-M3核的LPC1768微控制器的一款开发板,板载有丰富的外设资源。开发板具有USB仿真器,支持USB2.0Device,有2个串口(支持RS-232和TTL电平),1个RS-485接口,支持双CAN接口,1个以太网口,1个TFTLCD接口,1个触摸屏传感器接口。路虎开发板如图3.7所示。图3.7路虎开发板实物图3.2.2LPC1768简介LPC1768是ARMCortex-M3微控制器的嵌入式应用,具有集成度高和功耗低的优点。ARMCortex-M3是下一代微控制器的核心,提供了系统的增强功能,如增强了调试功能和支持更高块集成的水平。LPC1768工作在高达100MHz的CPU频率。ARM的Cortex-M3CPU还包括一个支持投机分支和内部预取单元。该LPC1768的外部设备主要有以下部件,高达到512KB的闪存内存以及64KB的存储器,以太网MAC,USB设备/主机/OTG接口,8通道的通用DMA控制器,UART4个,CAN通道2个,SSP控制器2个,SPI接口,I2C总线接口3个,2输入/输出的I2S总线接口,8通道12位ADC,10位的DAC,马达控制PWM,正交编码器接口,通用定时器共有4个,6输出的通用PWM,超低功耗实时时钟(RTC),有独立的电池供电,通用I/O引脚最多可达到70个。LPC1768/66/65/64是引脚兼容的100脚LPC236XARM7的微控制器系列。ARMCortex-M3简介:Cortex-M3是一款低功耗,门数目少,低延迟中断,低调试成本,是为实时性应用设计的处理器,1其采用ARMv7-M架构。Cortex-M3整合了以下组件:1)处理器内核:a.ARMv7-M:作为Thumb-2ISA子集,包含了所有基本的16位和32位Thumb-2的指令。只有分组的SPb.硬件除法指令:SDIV和UDIV(Thumb-2指令)c.处理模式和线程模式2)NVIC(嵌套向量中断控制器):a.可配置1~240个外部中断b.可配置为3~8位优先级c.可动态重新分配的中断优先级d.优先级占先和非占先两组e.支持末尾连锁和迟来中断。这样,在两个中断之间没有多余的状态保存和状态恢复指令的况下,使能背对背中断处理3)总线接口:a.AHBLiteICode、DCode和系统总线接口APB专用外设总线b.Bitband支持c.存储器访问对齐d.写缓冲区,用于缓存写操作数据。ARMCortex-M3结构框如图3.8所示。图3.8ARMCortex-M3内核内部结构图3.2.3DHT22温湿度传感器DHT22数字型温湿度传感器是一款已校准数字信号输出的温湿度复合传感器。其拥有的专用数字采集模块和温湿度传感器技术,能够确保可靠性和稳定性,包含一个NTC测温传感器和电容式感湿传感器,其内部有一个8位微控制器。其响应快,品质好,抗干扰强,性价比高。每个传感器在实验室中校准,校准系统存储在OTP内存中,传感器监测过程中调用这些系数。使用单总线接口,系统集成简单快捷,体积小,功耗低等优点。传感器应用领域:空调,家电,医疗等。传感器性能及参数如表3.3所示。参数条件MinTypMax单位湿度分辨率0.1%RH26Bit重复性±0.3%RH精度25℃±2%RH-20~80℃±2%RH互换性可完全互换采样周期2S温度分辨率0.1℃16Bit重复性±0.2℃精度<0.5℃量程范围-4080℃表3.3DHT22性能参数DHT22单总线连接原理如图3.9所示。图3.9DHT22单总线原理图单总线通信协议解析:DATA信号线用于与MCU的通讯和同步,单总线数据格式,单次通讯时间在5ms左右,具体格式如下,共40bit,高位先出:数据格式:40bitData=16bitHumidity+16bitTemperature+8bitCheckSum例子:接收到下面的40bit数据:0000001010001100000000010101111111101110湿度数据温度数据校验和湿度高8位+湿度低8位+温度高8位+温度低8位=的末8位=校验和例如:00000010+10001100+00000001+01011111=11101110湿度=65.2%RH温度=35.1℃当温度低于0℃时温度数据的最高位置1。例如:-10.1℃表示为1000000001100101封装信息如图3.10所示。图3.10DHT22封装尺寸及引脚图3.2.4手机模块SIM900SIM900是一款工业级的GPRS芯片,具有以下特性。

主要特性:*双频900/1800MHz*GPRSmulti-slotclass10/8*GPRSmobilestationclassB*满足GSM2/2+标准

–Class4(2W@900MHz)

–Class1(1W@1800MHz)*尺寸:24*24*3mm*重量:3.4g*通过AT命令控制(GSM07.07,07.05and

SIMCOM增强AT命令集)*SIM应用工具包*供应电压范围:3.1...4.8V*低功耗:1.5mA(睡眠模式)*操作温度范围:-40°Cto+85°C传真:*Group3,class1数据传输:*GPRSclass10:最大85.6kbps(下行速率)*支持PBCCH*CodingschemesCS1,2,3,4*CSD达14.4kbps*USSD*非透传*PPP-stack短信:*点对点MOandMT*短信广播*文本和PDU模式软件特性:*0710MUX协议*嵌入型TCP/UDP协议*FTP/HTTP

语音

:*Tricodec

–半速率(HR)

–全速率(FR)

–增强型全速率(EFR)*支持回声抑制算法*AMR:

–半速率(HR)

–全速率(FR)

接口:*支持SIM卡3V/1.8V接口*模拟音频接口*支持RTC*SPI接口*串行接口*天线焊盘*I2C*GPIO*PWM*ADC

兼容性:*ATcellularcommandinterface本设计中用到的引脚如表3.4所示。表3.4使用的SIM900引脚引脚名称I描述DC特性备注VBATISIM900采用单电源,通过3个VBAT引脚供电,电源范围为(3.2V-4.8V),电流≥2A。Vmax=4.8VVmin=3.2VVnorm=4.0VGND接地PWRKEYI通过拉低PWYKEY并保持至少1秒然后释,可以开启模块,同样拉低并保持至少一秒以上可以关闭模块。VILmax=0.15*VDD_EXTVIHmin=0.85*VDD_EXTVImax=VDD_EXTVImin=0V内部上拉至3VRXDI数据接收VILmax=0.15*VDD_EXTVIHmin=0.85*VDD_EXTVImax=VDD_EXTVImin=0VVOHmax=VDD_EXT-0.1VVOLmax=0.1VVOHmax=VDD_EXTVOLmin=0VRXD如果不用外部上拉至VDD_EXTTXDO数据发送SIM_VDDOSIM卡电源电压可由软件自动设置成1.8V或者3.0VSIM_DATAISIM卡数据信号VILmax=0.15*SIM_VDDVIHmin=0.85*SIM_VDDVImax=SIM_VDDVImin=0VVOHmax=VDD_EXT-0.1VVOLmax=0.1VVOHmax=SIM_VDDVOLmin=0VSIM卡的所有信号线都硬通过TVS二极管来做ESD防护SIM_CLKOSIM卡时钟信号SIM_RSTOSIM卡复位信号SIM900通信板各部分电路原理图如下各图所示。通信板使用稳压电源芯片LM2596-ADJ供电,其原理图如图3.11所示。图3.11LM2596-5V原理图SIM900芯片及外围的原理图如图3.12所示。图3.12SIM900原理图SIM900通信板与路虎开发板通过RS232串口通信,其中TTL-RS232电平转换芯片SP3232原理图如图3.13所示。图3.13SP3232原理图通信板的PCB板图如图3.14所示。图3.14SIM900通信板PCB板图3.3本章小结本章从工作环境、系统需求、芯片选型及芯片主要参数等方面系统的介绍了系统整体硬件架构、主机硬件架构、从机硬件架构。S3C6410是一款性价比极高的ARM11处理器,是三星公司的经典之作,被广泛应用于手持设备中。LPC1768是一款工业上用的比较广的微控制器,具有高稳定性高性能的特点。DHT22被大量用于环保、医疗等场合,其稳定性已得到验证。SIM900也是一款工业级的芯片,它是一个微缩板的手机,打电话、上网、发短信等基本功能都可通过串口、usb等控制它实现。本章节只介绍主要芯片,其他的则不再详细介绍。

4嵌入式Linux系统的开发与移植本系统的主机使用Linux环境开发,从机使用Windows开发。主机使用的IDE是Qtcreator,从机开发使用的编译器是KeilARM。本章节主要讲述嵌入式Linux开发环境的搭建,因KeilARM环境搭建简单,本章节不做介绍。4.1交叉编译环境本设计开发环境采用Linux发行版Ubuntu,Ubuntu是一个以桌面应用型的Linux发行版,Ubuntu是基于GNOME桌面环境的,同时也是基于Debian的,每6个月发行一个版本。Ubuntu以为用户提供最新的稳定的系统为己任。Ubuntu具有强大的支持力量,用户能很轻松的获取帮助[4]。交叉编译环境配置过程:在/usr/local/下创建arm文件夹:mkdir/usr/local/arm将交叉编译工具arm-linux-gcc解压到/usr/local/arm路径下,并重命名为arm-linux-gcc,在终端输入以下Linux命令:cp/root/arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz/usr/local/armtarxvzf/usr/local/arm/arm-linux-gcc-4.5.1-v6-vfp-20101103.tgzmv/usr/local/arm/arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz/usr/local/arm/arm-linux-gcc设置环境变量,,在终端输入Linux命令:vim~/.bashrc将exportPATH=”$PATH:/usr/local/arm/arm-linux-gcc”添加到末尾,然后source~/.bashrc使设置生效,在终端中输入arm-linux-gcc–v查看版本信息。图4.1交叉编译环境搭建图至此交叉编译环境搭建完成,交叉编译环境搭建过程如图4.1所示。4.2嵌入式开发环境的搭建图形界面开发使用Qt,Qt是奇趣科技开发的跨平台基于C++语言的用户界面开发框架,可编写界面(GUI)和命令行(非GUI程序),与MFC、ATL、VCL、OWL等相似。Qt是面向对象的框架,允许组件编程,支持IOS、Android,、WP,、Linux、,Windows的编程,支持2D/3D图形渲染,有250多个c++类,支持OpenGL,是跨平台编程的不二选择。QtCreator是用于开发Qt程序的IDE(集成开发环境),QtCreator简单易学,能够很快上手。。安装步骤:安装gcc和g++编译器,在终端输入以下Linux命令:apt-getinstallgccg++安装QtCreator从软件中心中搜索QtCreator并安装。安装QTE(QtExtend),在终端输入以下Linux命令:cd/roottarxvzfqtecdqte./install_sh等待大约2小时后安装完成。将QTE路径添加到QtCreator编译器中,点击工具->选项->构建和运行->构建套件。点击,配置参数后点击确定,如图4.2所示。图4.2QTE配置图修改编译器如图4.3所示。图4.3QT项目配置图至此Qt开发环境搭建完成。

5系统程序设计与实现整个系统的软件架构师从机采集数据后通过以太网络以TCP协议的形式发送给主机,主机接收解析数据并显示到LCD液晶屏上,同时主机也会将收到的数据存到自身的FLASH中,主机运行Linux系统和SQLite数据库。系统软件架构如图5.1所示。图5.1软件架构图5.1嵌入式Linux程序设计5.1.1程序架构设计主机的程序架构可分为通信、数据库和显示三部分,通信部分接收到从机送来的数据后解析数据帧,然后将解析得到的数据存储到数据库和内存中,显示部分从内存中读取通信部分提供的实时数据,同时也会判断用户操作,如果用户需要查看以前的数据则从数据库中读取数据。数据库部分负责存储数据,是显示和通信沟通的桥梁。主机的三部分程序相辅相成共同为用户服务,缺一不可。主机程序架构如图5.2所示。图5.2主机软件架构图5.1.2数据结构设计主机需要实时接收多个从机发送来的数据,因此可用表来保存从机的数据,首先建一个结构体,此结构体表示一个节点数据,然后再以此结构体为元素建一个数组,则数组下标即为节点号[1],具体代码如下:#defineMAX_NODE_SIZE10//节点数量typedefstruct{//节点结构体 f32humidity; f32temperature;}data_t;data_tdataTable[MAX_NODE_SIZE];//所有节点数据表,节点号为数组下表其余的参数可直接读取数据库不需要全局交换数据,因此采集局部变量不再设计全局的数据结构。5.1.3QT程序界面开发Qt是一款诺基亚公司开发的可跨平台移植的基于C++的界面库,跨平台UI库QT的出现极大的方便了嵌入式系统的开发和移植,不同平台的应用程序可在修改少量代码之后重新编译移植到不同的平台。本设计采用Qt做GUI界面,使用了QButton、QTableView、QLineEdit、QLabel等控件。Linux系统启动界面如图5.3所示。图5.3Linux系统启动界面Qt程序启动界面如图5.4所示。图5.4程序启动界面主机程序采集数据主界面如图5.5所示。图5.5程序采集数据主界面5.1.4SQLITE数据库开发SQLite是款轻量级的数据库,遵守ACID数据库管理系统关系型,它是为嵌入式系统设计的,因其占用极少的资源,所以在嵌入式设备中只需要几百K的内存。SQLite除了支持嵌入式系统之外还能够支持Windows、Linux、Unix等主流的操作系统,能够跟Java、PHP、C#等语言结合,具有OCBD接口。虽然SQLite是一款轻量级的数据库,但其性能一点不甘示弱,对SQL语句有良好的支持,支持以下SQL语句:ATTACHDATABASEBEGINTRANSACTIONCOMMITTRANSACTIONCOPYCREATEINDEXCREATETABLECREATETRIGGERCREATEVIEWDELETEDETACHDATABASEDROPINDEXDROPTABLEDROPTRIGGERDROPVIEWENDTRANSACTIONEXPLAINexpressionINSERTONCONFLICTclausePRAGMAREPLACEROLLBACKTRANSACTIONSELECTUPDATE对本设计的需求分析可知,一共需要id、time、temperature、humidity等4个字段,创建表的语句如下:createtableem([id]INTEGERNOTNULLPRIMARYKEYAUTOINCREMENT,[time]TEXTNULL,[temperature]FLOATNULL,[humidity]FLOATNULL)读数据库语句:select*fromemwhereid=ID(ID为要读取的记录ID)插入记录语句为:insertintoem(time,temperare,humidity,?,?,?),句中三个???表示字段对应的数据。5.1.5SOCKET网络通信的设计与开发socket在英文中的意思是插座,作为一种通信机制socket用来描述IP与端口,是通信链的一个句柄,不同端口用于不同的服务,如其socket英文原意,就像一个布满各种插座的房间,这些插座有着不同的电压,只有找对插座才能正常工作,得到不同的服务。本设计中的PORT使用2741,IP则依据实际申请的IP来定。SOCKET连接过程分为三个步骤:连接监听,客户端请求,连接确认。服务器监听:服务器套接字不确定客户端套接字,处于等待连接的状态,实时监控网络。客户端请求:客户端的套接字提出连接请求,连接目标是服务器的IP和端口,客户端向指定的服务器IP和端口请求连接。连接确认:服务器的套接字监听到客户端连接请求后,它会响应连接并发送确认报文给客户端,一旦客户端确认此报文,连接就建立好了。本设计中使用Qt集成的socket类,Qt集成的这些类极大程度的为开发人员提供了便利,而且丰富的文档使得开发更加简单高效。使用套接字类读出报文数据后,根据自定义的通信协议解析温湿度数据,然后将数据存到缓存中供数据库和显示使用。通信协议是参照modbus协议修改的适合本系统的协议。通信协议为“:01EE1234567898989898\r\n”,通信协议采用16进制,冒号为固定头部,01表示地址,EE为固定数据,1表示温度符号,1是负0为正,23是温度整数部分,4是温度小数部分,56是湿度整数部分,7是湿度小数部分,8989898为保留部分。5.2ARMCortex-M3程序设计5.2.1程序架构设计本设计的从机程序采用时间片轮调度器,时间片轮调度器是古老又简单且公平的调度算法,每个进程被分配一个时间片,即该进程允许的运行时间。调度器维护一张任务表,当进程时间片用完后就会被移到队列调度末尾[1]。整个从机的程序运行思想是:上电后先初始化各种硬件电路,然后加载调度器和用户任务,然后两个任务交替执行,任务的交替执行由调度器操控,两任务通过全局变量的形式来交互数据,同时对于一些关键的代码也要使用互斥信号量来避免数据混乱。调度器数据结构部分代码如下:typedefstruct{//任务结构体void(*pTask)(void);//任务指针u32delay;//距任务执行剩余时间u32period;//任务执行间隔u32runMe;//任务运行标志}task_t;task_ttask[SCH_MAX_TASKS];//分配任务内存enum{//调度器调试信息NO_ERROR,TASK_IS_FULL,SCH_CANNOT_DELETE_TASK,}errCode;调度器循环扫描任务,控制和调节任务的运行情况,如图5.6所示。上电运行上电运行初始化驱动初始化内存加载任务启动调度器调度器运行切换任务图5.6从机软件主流程5.2.2数据结构设计因从机采用调度器和状态机,所以从机的数据结构设计主要集中在sim900和dht22数据的交互上,因此分别为sim900和dht22设计两个结构体。这两个结构体主要包括发送和接收缓存以及相应的标志位[3]。任务通过读取标志位判断当前的状态,若标志位已置位则表示准备好,则可以读写缓存,反之,如果标志位未准备好,则不能读写缓存,否则会引起数据的混乱造成不可估量的后果。SIM900数据结构如下:typedefstruct{s32txBufIsEmpty;//发送缓存空标志s32txIsReady;//发送成功标志s32rxBufIsEmpty;//接收缓存空标志s32rxIsReady;//接收成功标志s32rxBuf[512];//接收缓存s32txBuf[512];//发送缓存}sim900_t;DHT22数据结构如下:typedefstruct{ struct{ f32humidity;//湿度 f32temperature;//温度 }data;//温湿度数据 s32startMeasure;//开始测量标志 s32measureIsFinished;//测量完成标志位}dht22_t;5.2.3SIM900TCP通信的设计与开发TCP通信的进程使用状态机编写,将整个通信过程分为侦听、连接主机、发送数据、关闭GPRS和移动应用场景、发送心跳包、读接收数据等5个状态。TCP状态机根据SIM900返回的AT指令分析当前状态从而在不同的状态直接切换工作。GPRS通信状态如图5.7所示。图5.7GPRS通信状态图5.2.4DHT22应用开发DHT22采集状态机分为两个状态,等待与采集,当采集标志位被其他任务置位时由等待状态进入采集状态,采集完成后置位相应的标志位同时进入等待状态。采集状态如图5.8所示。图5.8DHT22采集状态图总结毕业设计的培训体现了全面的掌握和运用知识的重要性,将书本上学到的知识运用到实际应用中要求我们能够将不同学科的知识整合到一个项目当中,这对我们提出了更高的要求,因此虽然我们的学生生涯即将结束,但是我们还得继续学习。感谢老师和同学们为我的毕业设计给予的帮助和支持。我们要更加努力的学习,用自己掌握的专业技能为社会做贡献回馈社会,为圆“中国梦”贡献自己的绵薄之力。

参考文献[1]StephenPrata.CPrimerPlus[M].北京:人民邮电出版社.2005.[2]StephenPrata.C++PrimerPlus[M].北京:人民邮电出版社.2012.[3]PontMichaelJ.PatternsforTime-TriggeredEmbedded

System.北京:中国电力出版社.2004.[4]JasminBlanchette等.C++GUIProgrammingwithQt4[M].北京:电子工业出版社.2008[5]徐霖.基于ARM11的嵌入式无线视频监控系统的研究与实现[D].武汉科技大学,2012.[6]毛轩昂.基于ARM9和3G的远程环境监测系统设计[D].湖南工业大学,2012.[7]杨晨.基于ARM11和Linux的室内环境监测系统的设计与实现[D].沈阳工业大学,2013.[8]谢婧波.家居视频监控系统的研究[D].北方工业大学,2013.[9]储常安.嵌入式无线远程设备检测与监控系统研发[D].中南林业科技大学,2013.[10]任丽丽.基于ZigBee的嵌入式无线终端设计与实现[D].北京邮电大学,2013.[11]陈鹏.基于ARM11的嵌入式人脸识别系统的设计和实现[D].郑州大学,2013.[12]张清小.基于ARM11的无线远程监测和控制系统的设计与实现[D].太原科技大学,2011.[13]肖春华,李秀红,孙忠富,张洪涛,宋子凯.嵌入式无线远程环境监测系统的实现[J].微计算机信息,2007,11:4-6.[14]李秀红,黄天戍,孙忠富,肖春华.基于GPRS/SMS的嵌入式环境监测系统[J].吉林大学学报(工学版),2007,06:1409-1414.[15]王建锋,张浩,彭道刚.基于ARM的嵌入式远程监测系统研究与设计[J].华东电力,2008,02:139-142.

致谢我的论文是在指导老师的大力支持和精心指导下完成的,她渊博的知识给了我深深的启迪和开阔了我的视野,论文凝聚着她的血汗,她以严谨的态度和敬业精神深深感染了我,在此我向她表示衷心的谢意。最后,感谢参考文献中的作者,对论文写作给予了很大的帮助,感谢答辩老师和评阅老师的建议和帮助。基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究基于单片机的叠图机研究与教学方法实践基于单片机嵌入式Web服务器技术的研究及实现基于AT89S52单片机的通用数据采集系统基于单片机的多道脉冲幅度分析仪研究机器人旋转电弧传感角

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论