智能无线天然气烟雾监控终端毕业论文_第1页
智能无线天然气烟雾监控终端毕业论文_第2页
智能无线天然气烟雾监控终端毕业论文_第3页
智能无线天然气烟雾监控终端毕业论文_第4页
智能无线天然气烟雾监控终端毕业论文_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

智能天然气监控终端的网络通信系统PAGE38-摘要生存环境的舒适与安全是人类永恒追求的物质目标。随着计算机技术、通信技术、控制技术的飞速发展,人们对居住环境提出了更高的要求,希望居住在一个生活现代化,环境舒适化、安全化的生活空间。通过环境监测系统,用户可以实时获得居住环境的信息,如:温湿度、天然气浓度、火灾信息等。并将采集到的环境信息作为其他家庭设备运行时的参数,实现对环境的智能化控制。本终端作为智能家居的一部分,实现了实时监测天然气浓度和烟雾浓度,并且当浓度超过设定阈值时,将通过无线的方式进行报警智能终端通过各种传感电路检测室内的天然气浓度和烟雾浓度信息等,然后与预置的参数阈值进行比较,智能终端根据比较结果发出相应的报警信息,并且可以实时地显示当前时间室内天然气浓度和烟雾浓度信息等参数值,并可通过WIFI,GPRS等无线通讯方式及时将各种监控信息通知住户最后,本设计对以后研究工作的重点进行了思考,提出了自己的见解。关键字:网络通信,WIFI,智能控制,c语言AbstractComfortableandsafelivingenvironmentofhumaneternalpursuitofthematerialgoals.Withcomputertechnology,communicationstechnology,controltechnologyrapiddevelopment,people'slivingconditionsputforwardhigherrequirements,wanttolivelifeinamodern,comfortableenvironment,securityoflivingspace.Throughenvironmentalmonitoringsystem,userscanobtainreal-timeinformationaboutthelivingenvironment,suchas:temperature,humidity,gasconcentration,fireinformation.Andenvironmentalinformationcollectedforotherhouseholdequipmentrun-timeparameterstoachieveintelligentcontroloftheenvironment.Theterminalasapartofthesmarthome,real-timemonitoringofgasconcentrationsandsmokedensity,andwhentheconcentrationexceedsthethresholdvalue,thealarmbywirelessmeansIntelligentterminalthroughavarietyofsensingcircuitsofthegasconcentrationdetectionchamberandsmokedensityinformation,andwiththepresetthresholdparametervalue,basedonthecomparisonresultoftheintelligentterminaltoissuethecorrespondingalarminformation,andcandisplaythecurrenttimeinrealtimegasconcentrationintheindoorandsmokedensityvalues​​forparameterssuchinformation,andthroughWIFI,GPRSandotherwirelesscommunicationsinatimelymannerallkindsofmonitoringinformationtothetenantsFinally,thedesignfocusoffutureresearchworkthinking,putforwardtheirownviews.Keywords:NetworkCommunications,WIFI,IntelligentControl,languagec

目录1绪论·····································································11.1本课题的意义·························································11.2智能家居·····························································21.2.1智能家居的设计原则···············································21.2.2智能家居设计的特点优势···········································21.3无线通信网络的原理···················································31.4本论文的主要工作·····················································42无线天然气监控终端的硬件组成·············································52.1终端结构·····························································52.2各功能模块介绍························································62.2.1开发板板载资源···················································62.2.2烟雾气体传感器···················································62.2.3天然气传感器模块·················································2.2.4WIFI模块························································72.2.5ANDROID智能手机·················································2.3ENC28J60以太网控制器·················································102.3.1ENC28J60简介····················································102.3.2ENC28J60概述····················································3轻型以太网协议栈uIP的应用················································123.1轻型以太网协议栈uIP·················································133.2设计要求·····························································143.2硬件电路连接·························································153.4软件程序设计·························································164STM32开发板V3.1·························································124.1STM32开发板V3.1的硬件说明··········································134.1.1.供电电路························································144.1.2启动方式设置·····················································154.1.3时钟源电路·······················································164.1.4SPI存储电路·····················································174.1.5显示及触摸接口模块···············································184.1.610M以太网接口···················································194.1.7数模转换DAC·····················································204.1.8SPI外接接口······················································204.2STM32开发板V3.1的应用···············································124.3STM32开发板V3.1的开发环境··········································135程序设计5.1程序总体设计思路····················································245.2程序初始化··························································265.3网络处理任务························································255.4查询TCP连接收发状态 ARP表更新·····································255.5中断触发读取网络接收缓存············································255.6网络实测····························································266结论····································································31致谢······································································32参考文献··································································33智能天然气监控终端的网络通信系统1绪论1.1本课题的提出及意义生存环境的舒适与安全是人类永恒追求的物质目标。随着计算机技术、通信技术、控制技术的飞速发展,人们对居住环境提出了更高的要求,希望居住在一个生活现代化,环境舒适化、安全化的生活空间。通过环境监测系统,用户可以实时获得居住环境的信息,如:温湿度、天然气浓度、火灾信息等。并将采集到的环境信息作为其他家庭设备运行时的参数,实现对环境的智能化控制。本终端作为智能家居的一部分,实现了实时监测天然气浓度和烟雾浓度,并且当浓度超过设定阈值时,将通过无线的方式进行报警。智能终端通过各种传感电路检测室内的天然气浓度和烟雾浓度信息等,然后与预置的参数阈值进行比较,智能终端根据比较结果发出相应的报警信息,并且可以实时地显示当前时间室内天然气浓度和烟雾浓度信息等参数值,并可通过WIFI,GPRS等无线通讯方式及时将各种监控信息通知住户。1.2智能家居智能家居是在物联网的影响之下物联化的体现。智能家居通过物联网技术将家中的各种设备(如音视频设备、照明系统、窗帘控制、空调控制,安防系统,数字影院系统、网络家电以及三表抄送等)连接到一起,提供家电控制、照明控制、窗帘控制、电话远程控制、室内外遥控、防盗报警、环境监测、暖通控制、红外转发以及可编程定时控制等多种功能和手段。与普通家居相比,智能家居不仅具有传统的居住功能,兼备建筑、网络通信、信息家电、设备自动化,集系统、结构、服务、管理为一体的高效、舒适、安全、便利、环保的居住环境,提供全方位的信息交互功能,帮助家庭与外部保持信息交流畅通,优化人们的生活方式,帮助人们有效安排时间,增强家居生活的安全性,甚至为各种能源费用节约资金。智能家居概念的起源很早,但一直未有具体的建筑案例出现,直到1984年美国联合科技公司(UnitedTechnologiesBuildingSystem)将建筑设备信息化、整合化概念应用于美国康乃迪克州(Conneticut)哈特佛市(Hartford)的CityPlaceBuilding时,才出现了首栋的“智能型建筑”,从此揭开了全世界争相建造智能家居的序幕。智能家居又称智慧家居/智能住宅,在国外常用SmartHome表示。与智能家居含义近似的有家庭自动化(HomeAutomation)、电子家庭(ElectronicHome、E-home)、数字家园(DigitalFamily)、家庭网络(HomeNet/NetworksforHome)、网络家居(NetworkHome)、智能家庭/建筑(IntelligentHome/Building),在中国香港和台湾等地区,还有数码家庭、数码家居等称法。智能家居是一个居住环境,是以住宅为平台安装有智能家居系统的居住环境,实施智能家居系统的过程就称为智能家居集成。以住宅为平台,利用有线和无线网络平台通信技术、包括综合布线系统,安全防范系统,背景乐/广播系统,灯光窗帘控制系统,空调VRV控制系统,以及家庭影院控制系统;将家居生活有关的设施集成,构建高效的住宅设施与家庭日程事务的管理系统,提升家居安全性、便利性、舒适性、艺术性,并实现环保节能的居住环境。智能家居集成是利用综合布线技术、网络通信技术、安全防范技术、自动控制技术、音视频技术将家居生活有关的设备集成。由于智能家居采用的技术标准与协议的不同,大多数智能家居系统都采用综合布线方式,但少数系统可能并不采用综合布线技术,如电力载波,不论哪一种情况,都一定有对应的网络通信技术来完成所需的信号传输任务,因此网络通信技术是智能家居集成中关键的技术之一。安全防范技术是智能家居系统中必不可少的技术,在小区及户内可视对讲、家庭监控、家庭防盗报警、与家庭有关的小区一卡通等领域都有广泛应用。自动控制技术是智能家居系统中必不可少的技术,广泛应用在智能家居控制中心、智能家居主机.家居设备自动控制模块中,对于家庭能源的科学管理、家庭设备的日程管理都有十分重要的作用。音视频技术是实现家庭环境舒适性、艺术性的重要技术,体现在音视频集中分配、背景音乐、家庭影院等方面。又称智能住宅。通俗地说,它是融合了自动化控制系统、计算机网络系统和网络通讯技术于一体的网络化智能化的家居控制系统。智能家居将让用户有更方便的手段来管理家庭设备,比如,通过家触摸屏、无线遥控器、电话、互联网或者语音识别控制家用设备,更可以执行场景操作,使多个设备形成联动;另一方面,智能家居内的各种设备相互间可以通讯,不需要用户指挥也能根据不同的状态互动运行,从而给用户带来最大程度的高效、便利、舒适与安全。1.2.1智能家居的设计原则衡量一个住宅小区智能化系统的成功与否,并非仅仅取决于智能化系统的多少、系统的先进性或集成度,而是取决于系统的设计和配置是否经济合理并且系统能否成功运行,系统的使用、管理和维护是否方便,系统或产品的技术是否成熟适用,换句话说,就是如何以最少的投入、最简便的实现途径来换取最大的功效,实现便捷高质量的生活。为了实现上述目标,智能家居系统设计时要遵循以下原则:实用便利智能家居最基本的目标是为人们提供一个舒适、安全、方便和高效的生活环境。对智能家居产品来说,最重要的是以实用为核心,摒弃掉那些华而不实,只能充作摆设的功能,产品以实用性、易用性和人性化为主。在设计智能家居系统时,应根据用户对智能家居功能的需求,整合以下最实用最基本的家居控制功能:包括智能家电控制、智能灯光控制、电动窗帘控制、防盗报警、门禁对讲、煤气泄露等,同时还可以拓展诸如三表抄送、视频点播等服务增值功能。对很多个性化智能家居的控制方式很丰富多样,比如:本地控制、遥控控制、集中控制、手机远程控制、感应控制、网络控制、定时控制等等,其本意是让人们摆脱繁琐的事务,提高效率,如果操作过程和程序设置过于繁琐,容易让用户产生排斥心理。所以在对智能家居的设计时一定要充分考虑到用户体验,注重操作的便利化和直观性,最好能采用图形图像化的控制界面,让操作所见即所得。可靠性整个建筑的各个智能化子系统应能二十四小时运转,系统的安全性、可靠性和容错能力必须予以高度重视。对各个子系统,以电源、系统备份等方面采取相应的容错措施,保证系统正常安全使用、质量、性能良好,具备应付各种复杂环境变化的能力。标准性智能家居系统方案的设计应依照国家和地区的有关标准进行,确保系统的扩充性和扩展性,在系统传输上采用标准的TCP/IP协议网络技术,保证不同产商之间系统可以兼容与互联。系统的前端设备是多功能的、开放的、可以扩展的设备。如系统主机、终端与模块采用标准化接口设计,为家居智能系统外部厂商提供集成的平台,而且其功能可以扩展,当需要增加功能时,不必再开挖管网,简单可靠、方便节约。设计选用的系统和产品能够使本系统与未来不断发展的第三方受控设备进行互通互连。方便性布线安装是否简单直接关系到成本,可扩展性,可维护性的问题,一定要选择布线简单的系统,施工时可与小区宽带一起布线,简单、容易;设备方面容易学习掌握、操作和维护简便。系统在工程安装调试中的方便设计也非常重要。家庭智能化有一个显着的特点,就是安装、调试与维护的工作量非常大,需要大量的人力物力投入,成为制约行业发展的瓶颈。针对这个问题,系统在设计时,就应考虑安装与维护的方便性,比如系统可以通过Internet远程调试与维护。通过网络,不仅使住户能够实现家庭智能化系统的控制功能,还允许工程人员在远程检查系统的工作状况,对系统出现的故障进行诊断。这样,系统设置与版本更新可以在异地进行,从而大大方便了系统的应用与维护,提高了响应速度,降低了维护成本。轻巧型“轻巧”型智能家居产品顾名思义它是一种轻量级的智能家居系统。“简单”、“实用”、“灵巧”是它的最主要特点,也是其与传统智能家居系统最大的区别。所以我们一般把无需施工部署,功能可自由搭配组合且价格相对便宜可直接面对最终消费者销售的智能家居产品称为“轻巧”型智能家居产品。1.2.2智能家居设计的特点与优势当今世界已经是一个数字信息的大数据时代,人们对于日常生活的要求已经大大提高,老一套的控制方式已经远远不能满足人们现在的要求。人们对于家庭家电,仪器等等的自动化,智能化控制的要求早已经提到了设计者们的设计计划日程中。它的特点与优势也是十分明显的。特点1、传输速度快2、数字化3、传输线路简单,组网方便4、具有在线巡检功能5、实现小区多通道功能6、布线成本低7、具有在线巡更功能优势1、网络可视对讲功能2、内部电话功能3、4、储存来访者影相功能5、远程监视功能6、强大的信息服务功能7、家电智能控制功能8、灯光的控制9、电动窗帘及遮阳系统控本次设计正是主要采用了WIFI的无线通信使手机与控制终端无线即时连接到了一起,使得用户可以随时在手机上获取最新的家庭中的天然气,烟雾情况的信息。既满足了人们对于当今家电智能化,无线化的要求,也符合了世界发展的主流趋势。1.3无线通信网络的原理无线通信系统几乎所有数据的传输与芯片控制都是通过SPI实现的。SPI读写程序是软件控制的基础。为了使单片机的SPI控制器正常工作,需要先对其进行初始化设置。可通过向SPI控制寄存器SPCTL和控制寄存器SPSTAT写入适当的控制字实现。单片机控制器需要对收发器各个寄存器进行设置。保证其工作在规定的频段和模式下。初始化时通过SPI总线向收发器写入控制命令[4]。主要包括配置设定命令,电源管理命令,频率设定命令,数据滤波命令,FIFO和复位模式命令,自动频率控制命令,发射配置控制命令,唤醒定时器命令,低任务周期命令和电池低压检测以及微控制器时钟分频命令等,且每个命令均长为16位。收发器成功初始化后就可以开始数据的发送和接收了,系统先通过SPI写入电源管理命令字Ox8228打开发送寄存器并开始数据的传送。发送完毕后要写入电源管理器命令字Ox8228关闭发送寄存器,同时打开接收寄存器。为了实现有效接收和发送,将待发送数据打包为帧的形式,下面主要介绍一下发送帧数据的情形。其从帧头开始依次为:同步格式的长度Ox2DD4,设置传输开始标志位,待传数据的长度和实际发送的数据。收发器的接收方式采用的是FIFO模式,在相应的控制字都设置好后,引入的数据通过时钟串入16位FIFO缓冲器内,当VDI和同步格式识别电路指示潜在的真实数据接入,真实数据开始填充FIFO。接收开始。接收一帧数据时,因采用FIFO模式状态寄存器的前两个字节分别是中断位输出和状态位输出。接下来才是需要的数据,故在接收一帧数据时,应先将前两个字节度取后抛弃,且每次读取时都要重复此过程。接下来需判断接收到的第三字节是否为开始标志位,若是继续抛弃前二字节后开始数据的接收。接收完毕后读入二字节的状态表示接收完毕。该系统应用了单片机和无线收发芯片,他们之间的控制与数据连接则是通过SPI接口来实现的。SPI接口有很高的数据传输速率,且器件操作遵循统一的规范,使系统软硬件具有良好的通用性,以无线方式传输数据在实际应用中由于其方便灵活,可望在嵌入式系统中得到广泛应用。1.4本系统总体方案设计本终端采用了ST公司的Cortex-M3内核的STM32微处理器STM32F107。该芯片属于STM32系列的增强型,提供多达256KB的片内Flah、64KB的RAM和丰富的外设接口。Cortex-M3内核在设计上专门考虑了满足集功耗低、实时性强的工业级嵌入式产品领域的特点。在性能相同的条件下,STM32产品功耗比同级别产品要低75%,工作环境温度达105℃。硬件框图如下图所示系统的设计采用了框架结构将整个系统分为两个部分分别为监控终端部分和手机监控部分。智能监控终端主要负责实时采集烟雾浓度和天然气浓度信息,可实时把监控信息通过WIFI模块传输到智能手机上,还可通过WEB网页查看实时数据以及设置传感器参数等。另外,智能监控终端在监测到烟雾或者天然气浓度超过阈值时,不仅有声光报警,还可以通过GPRS模块呼叫预设的报警电话。ANDROID智能手机可通过WIFI模块与监控终端进行无线通讯。可以实时获取到烟雾和天然气的浓度数据,并且可记录数据,显示数据,并且可设置传感器的报警阈值等参数。另外在产生超阈值报警时,手机有多种提醒方式。2无线天然气监控终端的硬件组成2.1终端结构终端硬件结构如下智能监控终端实现功能如下:实时获取烟雾,天然气传感器数据传感器数据实时显示在LCD屏上实时通过WIFI传输传感器数据内嵌WEB服务器,可通过网页查看传感器数据,并且可以设置传感器阈值参数具有声光报警提示方式可通过GPRS模块呼叫指定电话或者发短消息ANDROID智能手机实现以下功能:实现以表格和文本方式显示传感器数据可设置传感器阈值等参数当有超阈值报警时,可播放警示音2.2各功能模块介绍2.2.1开发板板载资源◆STM32F107VCT6,ARMCortex-M3内核,LQFP100封装,内部FLASH:256K,SRAM:64K◆1个10M/100M以太网接口,标准RJ45接口,支持平行交叉网线自适应◆1个USB2.0OTG全速接口,可以作为USBSLAVE接口,也可以作为USBHOST接口◆1个标准的2.8/3.2寸TFTLCD接口,支持触摸屏,分辨率320X240,26万色◆1个I2S音频解码芯片,支持音乐文件的播放◆1个SD卡接口◆1个2.4G无线通信模块接口◆1个315M无线通信模块接口◆2个CAN总线接口◆1个485总线接口◆1个SPIFLASH芯片,W25X16,容量为16M比特◆1个IIC接口的EEPROM芯片,24C02,容量2K比特◆2个RS-232C串口(使用DB9公头,线序与PC机相同)◆1个蜂鸣器◆1个复位按钮,控制整板硬件复位◆4个功能按钮,其中包括WAKEUP唤醒功能和TEMPER入侵功能◆1个电源指示灯(绿色)◆4个用户状态指示灯(LED1~LED4:绿色)◆2个启动模式选择配置接口◆1个RTC后备电池座◆1个标准的JTAG/SWD仿真调试下载接口◆1路电位器可调电阻模拟输入,可以做模数转换实验◆2个DAC数模转换接口连接到接线端子◆2个ADC模数转换接口连接到接线端子◆2个PWM接口连接到接线端子◆1个DC5V电源接口◆1个电源开关,控制整个板的电源,可以选择从USB取电或DC5V电源接口取电◆支持从JLINK取5V电源或3.3V电源◆除晶振占用的IO管脚外,其余所有IO口全部引出到扩展双排插针2.2.2烟雾气体传感器

一、尺寸:35mmX24mmX26mm长*宽*高二、主要芯片:LM393、MQ-2气敏传感器探头三、工作电压:DC3.0-5.5V四、特点:1、具有信号输出指示;2、双路信号输出;(模拟量输出及TTL电平输出)3、TTL输出有效信号为低电平,可接直接接单片机IO口;4、模拟量输出0~5V电压,浓度越高电压越高;5、对液化气、丁烷、甲烷、烟雾等有较好的灵敏度;6、使用寿命长、稳定性好;7、具有快速响应恢复特性2.2.3传感器特点一、尺寸:35mmX24mmX27mm长*宽*高二、主要芯片:LM393、MQ-4气体传感器三、工作电压:DC3-5V四、特点:1、具有信号输出指示;2、双路信号输出(模拟量输出及TTL电平输出);3、TTL输出有效信号为低电平,可直接接单片机;4、模拟量输出0~5V电压,浓度越高电压越高;5、对甲烷气体,天然气有较好的灵敏度;6、具有长期的使用寿命和可靠的稳定性;7、快速的响应恢复特性;2.2.4WIFI模块WIFI模块性能和功能特色:1、通讯距离:外置天线版本400米,内置天线300米。测试条件:开阔地视距,两个模块自行组网,57600波特率双向互传不丢包,轻松穿三层混泥土墙。2、最高支持波特率460800bps3、支持绝大多数WIFI加密方式和算法,WEP/WAP-PSK/WAP2-PSK/WAPI,加密类型WEP64/WEP128/TKIP/AES4、支持IEEE802.11b/g/n,用来做远距离覆盖的大功率AP多使用802.11n协议,本模块也完美支持。5、支持DHCP自动获取IP,支持工作在AP模式时为从设备分配IP6、支持网络协议:TCP/UDP/ARP/ICMP/HTTP/DNS/DHCP7、可选TCPServer/TCPClient/UDP工作模式,TCPServer模式时可支持多达32个Client连接8、超小体积,双排2.0间距插针,方便用户应用。9、通过拉低ReloadIO口一秒即可恢复出厂设置,不用担心设置错10、支持无线工作在AP模式和节点(Station)模式,真正的硬件AP,安卓系统可以直接访问11、可选内置板载(USR-WIFI232-A)或者外置天线(USR-WIFI232-B)12、支持透明/协议数据传输模式,高达1M缓存空间13、提供AT+指令集配置14、提供友好的Web配置页面,通过网页配置15、串口分帧延迟和数据量可以设置16、3.3V单电源供电17、支持路由/桥接模式网络构架2.2.5A智能手机参数CPU1GHzRAM512MBROM512MB支持内存卡扩展屏幕4寸800x480分辨率TFT操作系统Android2.32.3ENC28J60以太网控制器2.3.1.ENC28J60ENC28J60是MICROCHIP公司的带SPI接口的独立以太网控制器,以太网控制器特性•IEEE802.3兼容的以太网控制器•集成MAC和10BASE-TPHY•接收器和冲突抑制电路•支持一个带自动极性检测和校正的10BASE-T端口•支持全双工和半双工模式•可编程在发生冲突时自动重发•可编程填充和CRC生成•可编程自动拒绝错误数据包•最高速度可达10Mb/s的SPI接口缓冲器•8KB发送/接收数据包双端口SRAM•可配置发送/接收缓冲器大小•硬件管理的循环接收FIFO•字节宽度的随机访问和顺序访问(地址自动递增)•用于快速数据传送的内部DMA•硬件支持的IP校验和计算介质访问控制器(MAC)特性•支持单播、组播和广播数据包•可编程数据包过滤,并在以下事件的逻辑“与”和“或”结果为真时唤醒主机:-单播目标地址-组播地址广播地址-MagicPacket-由64位哈希表定义的组目标地址-多达64字节的可编程模式匹配(偏移量可由用户定义)•环回模式物理层(PHY)特性•整形输出滤波器•环回模式工作特性•两个用来表示连接、发送、接收、冲突和全/半双工状态的可编程LED输出•使用两个中断引脚的七个中断源•25MHz时钟•带可编程预分频器的时钟输出引脚•工作电压范围是3.14V到3.45V•TTL电平输入•温度范围:-40°C到+85°C(工业级),0°C到+70°C(商业级)(仅SSOP封装)•28引脚SPDIP、SSOP、SOIC和QFN封装2.3.2ENC28J60是带有行业标准串行外设接口(SerialPeripheralInterface,SPI)的独立以太网控制器。它可作为任何配备有SPI的控制器的以太网接口。ENC28J60符合IEEE802.3的全部规范,采用了一系列包过滤机制以对传入数据包进行限制。它还提供了一个内部DMA模块,以实现快速数据吞吐和硬件支持的IP校验和计算。与主控制器的通信通过两个中断引脚和SPI实现,数据传输速率高达10Mb/s。两个专用的引脚用于连接LED,进行网络活动状态指示。要将单片机连接到速率为10Mbps的以太网,只需ENC28J60、两个脉冲变压器和一些无源元件即可。ENC28J60由七个主要功能模块组成:1.SPI接口——充当主控制器和ENC28J60之间通信通道。2.控制寄存器——用于控制和监视ENC28J60。3.双端口RAM缓冲器——用于接收和发送数据包。4.判优器——当DMA、发送和接收模块发出请求时对RAM缓冲器的访问进行控制。5.总线接口——对通过SPI接收的数据和命令进行解析。6.MAC(MediumAccessControl)模块——实现符合IEEE802.3标准的MAC逻辑。7.PHY(物理层)模块——对双绞线上的模拟数据进行编码和译码。该器件还包括其他支持模块,诸如振荡器、片内稳压器、电平变换器(提供可以接受5V电压的I/O引脚)和系统控制逻辑。奋斗板STM32V3和ENC28J60的连接3.轻型以太网协议栈uIP的应用3.1轻型以太网协议栈uIP开源的uIP软件包为嵌入式位处理器建立TCP/IP协议堆栈提供了一种解决方法。它为互联网提供了一系列必要的协议。对代码和数据的内存要求量十分小。uIP是亚当-邓克尔斯(AdamDunkels)在瑞典计算机学院开发的。uIP1.0版本实现了符合IEEE802.3的比较重要的协议,例如ARP,ICMP,IP,TCP,UDP等,详细手册可以参考光盘资料目录下的UIP1.0源码目录下的参考手册。本设计是选用了uIP1.0版本作为移植版本,移植到了基于STM32F103VET6控制的ENC28J60网络模块上。实现了以下协议。ARP:地址解析协议。IP:网际协议ICMP:因特网信息控制协议(包含了ping的响应)TCP:传输控制协议(包含了TCP服务器,WEB服务器)UDP:数据报协议(包含了UDP服务)运行网络调试助手软件,端口选择1200,服务器IP地址选择5,协议类型选择TCP客户端,点击连接按钮,在命令输入窗口输入控制LED的命令字符串,然后点击发送,开发板上对应的LED灯会发生变化。命令代码如下:(末尾无0x00和回车字符)ledon1点亮LED1ledoff1关闭LED1ledon2点亮LED2ledoff2关闭LED2ledon3点亮LED3ledoff3关闭LED33.2设计要求(1)实现一个TCP服务器,可以通过PC机的TCP客户端控制板子上的LED(2)实现了一个简单的Web服务器。可以通过PC的浏览器控制板子上的LED(3)实现了一个UDP服务器。可以通过PC机的UDP客户端控制板子上的LED本例程设置的缺省IP地址是5,默认的TCP服务器监听端口是1200,WEB服务器监听端口80,UDP服务器监听端口2000。用户可以做如下测试:(1)ping试验(ICMP)点击windows开始-运行,执行cmd命令,然后在dos窗口输入ping5应该看到如下结果:Replyfrom5:bytes=32time<1msTTL=128Replyfrom5:bytes=32time<1msTTL=128Replyfrom5:bytes=32time<1msTTL=128Replyfrom5:bytes=32time<1msTTL=128(2)PC机的TCP客户端控制开发板上的LED试验(TCP服务器)运行网络调试助手软件,端口选择1200,服务器IP地址选择5,协议类型选择TCP客户端,点击连接按钮,在命令输入窗口输入控制LED的命令字符串,然后点击发送,开发板上对应的LED灯会发生变化。命令代码如下:(末尾无0x00和回车字符)ledon1点亮LED1ledoff1关闭LED1ledon2点亮LED2ledoff2关闭LED2ledon3点亮LED3ledoff3关闭LED3(3)WEB网页控制开发板上的LED试验(WEB服务器)打开IE浏览器,在地址栏输入5可以看到基于uIP的Web测试页面,在对话框输入1-3,点确定按钮,可以控制相应的LED点亮。网页保存在httpd-fsdata.c的data_index_html数组里,是通过amo的编程小工具集合转换的。(4)UDP服务器实验本地UDP端口默认是2000,远端UDP可以直接连接本地端口,并进行通信命令代码如下:(末尾无0x00和回车字符)getname返回板子的信息ledon1点亮LED1ledoff1关闭LED1ledon2点亮LED2ledoff2关闭LED2ledon3点亮LED3ledoff3关闭LED33.3硬件电路连接用网络线把PC和开发板连接起来。需要注意的是,由于开发板断的网络芯片配置为10M全双工。由于该芯片不具有自动协商功能,需要将PC端得网络设置为10M全双工。否则采用自动协商的话,会判别开发板采用的是10M半双工,由于开发板默认的IP地址设置为5,需要将连接的网络设备设置为192.168.1.X,否则会引起不能正常通信。3.4软件程序设计根据任务要求,主程序内容主要包括:1.设置系统时钟为72Mhz2.中断源配置(采用了ENC28J60的中断接收模式)3.串口1初始化(用于监视网络状态)4.GPIO接口初始化(配置LED控制)5.SPI1接口初始化(用于END28J60的控制)6.网络配置初始化(ENC28J60的初始化设置以及uip的接口函数设置)7.创建TCP服务器端口及WEB服务器端口8.根据接收的UDP包进行UDP初始化设置(绑定远端及本地的IP及端口)9.网络状态监控及响应。整个工程包含6类源文件:Startup--startup_stm32f10x_hd.s由于奋斗板采用的是STM32F103大存储器芯片,因此采用STM32标准库自带的大存储器芯片启动代码,这个文件已经配置好了初始状态,以及中断向量表。可以直接在工程里使用,如果你在以后的应用中采用了中存储器或者小存储器STM32芯片,可以将启动代码换为startup_stm32f10x_md.s。startup_stm32f10x_ld.s。FWLIB--stm32f10x_gpio.cST公司的标准库,包含了关于对通用IO口设置的函数。stm32f10x_rcc.cST公司的标准库,包含了关于对系统时钟及外设设置的函数。stm32f10x_USART.cST公司的标准库,包含了关于串口的函数。stm32f10x_SPI.cST公司的标准库,包含了关于SPI的函数。stm32f10x_EXTI.cST公司的标准库,包含了关于EXTI中断的函数。CMSIS—是关于CORETEX-M3平台的系统函数及定义Uip-1.0—这个组项是uip协议栈的完整c文件库Uip-APP—这个组项包含uip的用户应用程序ENC28J60.c完成了对ENC28J60的硬件配置。TCP_DEMO.c完成了TCP服务器及WEB服务器的建立ENC28J60_uip完成了uip协议栈与ENC28J60的接口。UDP_DEMO.c完成了UDP数据包的响应USER这个组项包含了开发板的硬件驱动及主函数main.c例程的主函数。SPI.cSPI的控制驱动stm32f10x_it.c:中断服务程序。4STM32开发板V3.14.1STM32开发板V3.1的硬件说明4.1.1.供电电路AMS1117-3.3输入+5V,提供3.3V的固定电压输出,为了降低电磁干扰,C1-C5为CPU提供BANK电源(VCC:P50、P75、P100、P28、P11GND:P49、P74、P99、P27、P10)滤波。CPU的模拟输入电源供电脚VDDA(P22)通过L122uH的电感与+3.3VVDD电压连接,CPU的模拟地VSSA(P19)及VREF-(P20)通过R10欧电阻与GND连接。VREF+(P21)采用VDDA(P22)电源基准。RT9166-2.5输入+5V,提供2.5V的固定电压输出,为MP3电路VS1003提供所需的电压。RT9166-2.8输入+5V,提供2.8V的固定电压输出,为MP3电路VS1003提供所需的电压。为RTC的备份电源采用V13.3V锂离子片状电池。4.1.2启动方式设置Boot1—Boot0(P37,P94):x0:内部程序存储区启动01:系统存储区启动(为异步通信ISP编程方式)。在此将BOOT1始终设置为0,BOOT0为可变的状态,在正常模式下将其置为0,在ISP编程时将其置为1。用JP1跳线块设置,开路为ISP模式,可以通过串口来下载代码,短路为正常运行模式。4.1.3时钟源电路外部晶体/陶瓷谐振器(HSE)(P12、P13):B1:8MHz晶体谐振器,C8,C9谐振电容选择10P。系统的时钟经过PLL模块将时钟提高到72MHz。低速外部时钟源(LSE)(P8、P9):B2:32.768KHz晶体谐振器。C10,C11谐振电容选择6P。注意:根据ST公司的推荐,B2要采用电容负载为6P的晶振,否则有可能会出现停振的现象。4.1.4SPI存储电路D2SST25VF016B(2MBytes)CPU采用SPI1端口PA7-SPI1-MOSI(P32)、PA6-SPI1-MISO(P31)、PA5-SPI1-SCK(P30)、PC4-SPI1-CS2(P33)控制读写访问,SPI1地址:0x40003800-0x40003BFF4.1.5显示及触摸接口模块显示器采用2.4”TFT320X240LCD(控制器ILI9325),采用CPU的FSMC功能,LCD片选CS采用FSMC_NE1(P88),FSMC_A16(P58)作为LCD的RS选择,FSMC_nWE(P86)作为LCD的/WR,FSMC_nOE(P85)作为LCD的/RD,LCD的RESET脚用CPU的PE1(P98)(LCD-RST),FSMC_D0FSMC_D15和LCD的D1-D8D10-D17相互连接,触摸屏接口采用SPI1接口,片选为PB7-SPI1-CS3,由于LCD背光采用恒流源芯片PT4101控制,采用了PWM控制信号控制背光的明暗,PWM信号由PD13-LIGHT-PWM来控制。触摸电路的中断申请线由PB6-7846-INT接收。LCD寄存器地址为:0x60000000,LCD数据区地址:0x60010000。4.1.610M以太网接口CPU的PA7-SPI1-MOSI(P32)、PA6-SPI1-MISO(P31)、PA4-SPI1-NSS(P29)、PA5-SPI1-SCK(P30)通过SPI总线方式,控制D5ENC28J60来完成网络功能,ENC28J60的TPIN-、TPIN+、TPOUT+、TPOUT-、LEDB、LEDA通过HR911105A(内置网络变压器、收发LED、RJ45)与以太网连接。SPI1地址:0x40003800-0x40003BFF4.1.7数模转换DAC当要使用DAC功能时,将会影响到板子的网络功能(网络芯片的SPI的片选被占用),两种功能不能同时使用,在DAC功能时,拥有一路CPU自带的DAC通道(PA4-DAC1),通过端子座XS13的6脚引出。该口也可作为普通IO端口(PA4)使用。DAC地址:0x40007400-0x400077FF4.1.8SPI外接接口(可直接接RNF24L01模块)将CPU上的SPI2接口PB15-SPI2-MOSI、PB14-SPI2-MISO、PB13-SPI2-SCK、PB0-RF-SPI2-CS引出到接口XS12上,这是一个2X5的排母插座,可以直接和2.4G数传模块NRF24L01相连。SPI2地址:0x40003800-0x40003BFF4.2STM32开发板V3.1的应用STM32开发板的V3.1选用了STM32F103VET6作为开发板的MCU。这个芯片属于STM32F103系列的高容量芯片,QFP100封装,主要特征:64K片内SRAM512K片内FLASH。具有FSMC接口(并行外设外设接口,TFT模块就是通过这个连接的),SDIO4位接口(SD卡的专用接口,速度更高)。之所以选用这个芯片作为开发板的MCU,主要是基于以下几点:1容量大,是STM32系列里,容量最大的芯片2体积适中QFP100脚封装,从大型设备到手持设备都可以选用。3FSMC接口由于板上设计有TFT模块,因此选用具有FSMC接口的芯片是必然的。4SDIO接口作为一个嵌入式的平台,大容量SD存储是必须考虑的,可以在SD上建立文件系统及大容量文件存取。5性价比高,该芯片的批量采购价格在30元左右,渠道稳定,适合工程选用。很多用户先前都是从51平台转过来的,对单片机的经验还停留在51带给我们的简单易用上,51单片机的资源简单,且口线定义唯一。相对高端的51型单片机(如SILICONC8051F系列,AVR等)可以做到一定的口线复用(就是一个口线可以具有多种复用功能),51在处理对计算速度及控制速度相对不高的应用,还是具有很好的性价比及应用性。近几年,随着应用技术的发展,产品对嵌入式技术要求越来越高,51单片机已经不能满足复杂嵌入式应用要求,在ARM技术发展过程中,coretex-M3内核应运而生,它的各项能力使得它成为微控领域之王,STM32是这种内核的产物,是目前coretex-M3内核平台里最具性价比的平台,可以预见,未来几年里,STM32会很快占据微控平台市场。4.3STM32开发板V3.1的开发环境奋斗版STM32开发板MINI及V3的例程工程编写均基于RealViewMDK-ARM3.80a开发环境,工程里所包含的库大部分采用了STM32标准库3.5.0,MDK开发环境支持JLINK、ULINK、ST-LINK的在线仿真及下载。MDK环境的学习可以参考奋斗板光盘里的MDK视频教程。在MDK下下载程序的详细说明可参考奋斗板光盘里的奋斗板文档目录下的下载步骤文档。在先了解了STM32的知识及奋斗STM32开发板的硬件后,我们来引导尝试一下这个实际的过程。作为初学,可以选取简单的例程来做这个体验,我们选取例程相应目录中的《STM32奋斗板-LED闪烁例程》。第一步:先将JLINKV8的驱动装到电脑里。运行该程序,可将JLINKV8的驱动安装到PC机上。第二步:安装MDK编译环境,MDK安装包在光盘根目录的资料目录下,文件名为MDK380.rar,解开压缩包,运行安装文件,安装好MDK开发环境后,在PC上运行MDK,打开例程目录下的《STM32-LED闪烁例程》工程文件。打开工程后,点按钮,开始编译工程,经过一段时间后,编译完成,生成了目标代码。可用于下载到板子里,在其余的例程编译过程中,如果出现编译错误,请参考光盘根目录的解决方法。编译完成后,将JLINKV8的JTAG电缆插入板子上的JTAG接口,将JLINKV8用USB线连到PC上,给开发板加电,加电方式可以是USB接口输入,也可以通过DC5V接口输入。对工程进行如下的仿真及下载环境设置。下载环境设置完成后,点击将例程下载进奋斗板中,下载完成后开发板会自动复位运行例程,可以看到板子上的蓝色发光二极管闪烁起来。如果出现如下的下载失败提示,需要检查连线或者工程下载环境设置。5程序设计5.1程序总体设计思路起始,监控终端通过连接WIFI建立网络通信连接,使得其他网络设备(比如智能手机,平板电脑)可以通过网络向监控终端发送请求数据命令,监控终端备读取请求数据包后,返回烟雾传感器和天然气传感器实时数据,平时则不作动作。当监控终端检测到测量数据超过预警值时,则主动向手机端发送预警信息,提示用户注意。5.2程序初始化运行程序时需要将监控器各个硬件以及数值初始化。例如各个串口的初始化,SD卡初始化,网络初始化,ADC初始化,触摸屏初始化等。然后开始检测信息,即手机端是否有向监控终端发送请求数据,即IP数据包,以向手机发送即时检测的信息。名称:staticvoidApp_TaskStart(void*p_arg)功能:开始任务建立staticvoidApp_TaskStart(void*p_arg){(void)p_arg;//初始化ucosII时钟节拍OS_CPU_SysTickInit();//使能ucos的统计任务#if(OS_TASK_STAT_EN>0)OSStatInit(); //统计任务初始化函数#endifApp_TaskCreate(); //建立其他的任务while(1){ uip_len=tapdev_read(); //从网络设备读取一个IP包,返回数据长度 if(uip_len>0)OSSemPost(ETH_SEM); //传递网络接收完成信号量eth_poll(); OSTimeDlyHMSM(0,0,0,10);}}上述程序的子程序,具体实行操作初始化各个项目数值,并且读取即时数据。名称:staticvoidApp_TaskCreate(void)功能:建立其余任务的函数staticvoidApp_TaskCreate(void){ADC_SEM=OSSemCreate(0); ETH_SEM=OSSemCreate(1); //建立网络数据包接收完成的信号量 //建立键盘中断的消息邮箱/*建立用户界面任务*/OSTaskCreateExt(AppTaskUserIF, //指向任务代码的指针 (void*)0, //任务开始执行时,传递给任务的参数的指针(OS_STK*)&AppTaskUserIFStk[APP_TASK_USER_IF_STK_SIZE-1],//分配给任务的堆栈的栈顶指针从顶向下递减 APP_TASK_USER_IF_PRIO, //分配给任务的优先级 APP_TASK_USER_IF_PRIO, //预备给以后版本的特殊标识符,在现行版本同任务优先级 (OS_STK*)&AppTaskUserIFStk[0], //指向任务堆栈栈底的指针,用于堆栈的检验APP_TASK_USER_IF_STK_SIZE, //指定堆栈的容量,用于堆栈的检验(void*)0, //指向用户附加的数据域的指针,用来扩展任务的任务控制块OS_TASK_OPT_STK_CHK|OS_TASK_OPT_STK_CLR); //选项,指定是否允许堆栈检验,是否将堆栈清0,任务是否要 //进行浮点运算等等。/*建立触摸驱动任务*/OSTaskCreateExt(AppTaskKbd, (void*)0, (OS_STK*)&AppTaskKbdStk[APP_TASK_KBD_STK_SIZE-1], APP_TASK_KBD_PRIO, APP_TASK_KBD_PRIO, (OS_STK*)&AppTaskKbdStk[0],APP_TASK_KBD_STK_SIZE,(void*)0,OS_TASK_OPT_STK_CHK|OS_TASK_OPT_STK_CLR); /*建立网络处理任务*/OSTaskCreateExt(Task_ETH, (void*)0, (OS_STK*)&Task_ETHStk[Task_ETH_STK_SIZE-1], Task_ETH_PRIO, Task_ETH_PRIO, (OS_STK*)&Task_ETHStk[0],Task_ETH_STK_SIZE,(void*)0,OS_TASK_OPT_STK_CHK|OS_TASK_OPT_STK_CLR);//ADC采样任务OSTaskCreateExt(Task_ADC, (void*)0, (OS_STK*)&Task_AdcStk[Task_Adc_STK_SIZE-1], Task_Adc_PRIO, Task_Adc_PRIO, (OS_STK*)&Task_AdcStk[0],Task_Adc_STK_SIZE,(void*)0,OS_TASK_OPT_STK_CHK|OS_TASK_OPT_STK_CLR);}5.3网络处理任务接收到IP数据包后,收集ADC采集到的数据,并通过WIFI向手机客户端发送即时数据信息。名称:staticvoidTask_ETH(void*p_arg)功能:网络数据包处理任务staticvoidTask_ETH(void*p_arg){INT8Uerr; (void)p_arg; while(1){OSSemPend(ETH_SEM,0,&err); //等待接收完成信号量 UipPro(); //处理网络数据包}}/*****************************************************************************名称:staticvoidTask_ADC(void*p_arg)*功能:ADC处理任务staticvoidTask_ADC(void*p_arg){INT8Uerr;INT8Usms_end;unsignedcharsend_data[23];sms_end=0x1a;(void)p_arg; ADC_alarm1[0]=0x32; ADC_alarm1[1]=0x30; ADC_alarm1[2]=0x30; ADC_alarm1[3]=0x00; ADC_alarm1[4]=0x00; ADC_alarm2[0]=0x32; ADC_alarm2[1]=0x30; ADC_alarm2[2]=0x30; ADC_alarm2[3]=0x00; ADC_alarm2[4]=0x00; ADC_a1=200; ADC_a2=200; //memset(phone,0,11); //memcpy(phone,,11);while(1){ OSSemPend(ADC_SEM,0,&err); //等待ADC信号量 itoa(ADC_ConvertedValue1[0],ADC_STR1,10); //ADC1通道10的数值转为字符串 itoa(ADC_ConvertedValue1[1],ADC_STR2,10); //ADC1通道11的数值转为字符串USART_OUT(USART1,"\r\nADC1通道10:%s",ADC_STR1); //串口1输出通道10的数值 USART_OUT(USART1,"\r\nADC1通道11:%s",ADC_STR2); //串口1输出通道11的数值 USART_OUT(USART1,"\r\n"); if((ADC_ConvertedValue1[0]>ADC_a1)||(ADC_ConvertedValue1[1]>ADC_a2)) {memset(send_data,23,0); GPIO_SetBits(GPIOD,GPIO_Pin_3); MIC_ON; USART_OUT(USART2,"AT+CMGF=1\r"); OSTimeDlyHMSM(0,0,1,10); sprintf(send_data,"AT+CMGS=\"%s\"\r",phone); //USART_OUT(USART2,"AT+CMGS=\""); //USART_OUT(USART2,phone); //USART_OUT(USART2,"\"\r"); USART_OUT(USART2,send_data); OSTimeDlyHMSM(0,0,2,10); USART_OUT(USART2,"alarm!"); USART_OUT(USART2,&sms_end); OSTimeDlyHMSM(0,0,4,10); USART_OUT(USART2,"ATD"); USART_OUT(USART2,phone); USART_OUT(USART2,";\r"); } if((ADC_ConvertedValue1[0]<ADC_a1)&&(ADC_ConvertedValue1[1]<ADC_a2)) { GPIO_ResetBits(GPIOD,GPIO_Pin_3); //关闭指示灯,关闭蜂鸣器 MIC_OFF; }}}5.4查询TCP连接收发状态 ARP表更新网络任务程序中,不断检测是否有新的TCP请求数据包,如果有请求数据包,就把收集到ADC数据采集器的数据发送到智能手机。名称:voideth_poll(void)功能:定时查询TCP连接收发状态 ARP表更新,并响应voideth_poll(void){unsignedchari=0; if(net_timeover05==1) /*0.5秒定时器超时*/ { net_time05=0; net_timeover05=0; /*复位0.5秒定时器*/ /*轮流处理每个TCP连接,UIP_CONNS缺省是10个*/ for(i=0;i<UIP_CONNS;i++) { uip_periodic(i); /*处理TCP通信事件*/ /* 当上面的函数执行后,如果需要发送数据,则全局变量uip_len>0 需要发送的数据在uip_buf,长度是uip_len(这是2个全局变量) */ if(uip_len>0) { uip_arp_out(); //加以太网头结构,在主动连接时可能要构造ARP请求 tapdev_send(); //发送数据到以太网(设备驱动程序) } } #ifUIP_UDP /*轮流处理每个UDP连接,UIP_UDP_CONNS缺省是10个*/ for(i=0;i<UIP_UDP_CONNS;i++) { uip_udp_periodic(i); /*处理UDP通信事件*/ /*如果上面的函数调用导致数据应该被发送出去,全局变量uip_len设定值>0*/ if(uip_len>0) { uip_arp_out(); //加以太网头结构,在主动连接时可能要构造ARP请求 tapdev_send(); //发送数据到以太网(设备驱动程序) } } #endif/*UIP_UDP*/ /*每隔10秒调用1次ARP定时器函数用于定期ARP处理,ARP表10秒更新一次,旧的条目会被抛弃*/ if(net_timeover10==1) { net_time10=0; net_timeover10=0; /*复位10秒定时器*/ uip_arp_timer(); } }} 5.5中断触发读取网络接收缓存为了防止有数据接收到的数据量过于庞大造成监控装置由于无法处理这巨大的信息量而死机,特别设立了中断接受IP包的缓存。函数名:UipPro功能说明:中断触发读取网络接收缓存/voidUipPro(void){ ETH_INT=1; if(ETH_INT==1){ //当网络接收到数据时,会产生中断 rep:; ETH_INT=0; //uip_len=tapdev_read(); //从网络设备读取一个IP包,返回数据长度 if(uip_len>0) //收到数据 { /*处理IP数据包(只有校验通过的IP包才会被接收)*/ if(BUF->type==htons(UIP_ETHTYPE_IP))//是IP包吗? { uip_arp_ipin(); //去除以太网头结构,更新ARP表 uip_input(); //IP包处理 /* 当上面的函数执行后,如果需要发送数据,则全局变量uip_len>0 需要发送的数据在uip_buf,长度是uip_len(这是2个全局变量) */ if(uip_len>0) //有带外回应数据 { uip_arp_out(); //加以太网头结构,在

温馨提示

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

评论

0/150

提交评论