基于BS和CS的远程监控系统_第1页
基于BS和CS的远程监控系统_第2页
基于BS和CS的远程监控系统_第3页
基于BS和CS的远程监控系统_第4页
基于BS和CS的远程监控系统_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

摘要随着嵌入式技术,网络技术和控制技术的飞速发展,远程监控技术得到了快速提升。自动化设备生产过程中规模不断扩大,日益复杂的结构,操作和渐渐散去的地理形势,远程监控系统正朝着网络,分散化和智能化方向。为了达到自动化设备进行远程操作和监控集中管理,本文构建了基于Internet上的远程监控系统。根据本项目的具体需求,提出了系统的总体设计方案。本系统采用C/ S(客户机/服务器)体系结构,设计为远程监控平台的客户端,在现场环境中构建一个嵌入式服务器。此远程监控系统的核心是价格低廉、功能强大的STM32芯片,它作为系统的大脑,是系统的神经中枢,另一个必不可缺的就是ENC28J60网卡芯片,ENC28J60 是带有行业标准串行外设接口(Serial Peripheral Interface,SPI)的独立以太网控制器。它可作为任何配备有 SPI 的控制器的以太网接口。其它的还包括温度检测芯片以及若干个LED灯管。整个系统选材较少,因此具有功耗低、价格低廉、稳定性强、开发简单、体积小的优点,低廉的配置也有使此方案对于大部分人来说实现起来也是一件容易的事。此外,本系统实现了可以在终端通过IE浏览器访问系统、监控系统的模式,使远程监控更方便更人性化。关键词:STM32;现场监控;ENC28J60;C/S构架;AbstractWiththerapiddevelopmentoftheembeddedtechnology,thenetworktechnologyandthecontroltechnology,theremotemonitoringtechnologyhasbeenimprovedrapidly.Aimatthestatusquoofautomationequipmentsscaleexpansion,increasinglycomplexstructure,operationareatodiversifyintheproductionprocess,theremotemonitoringsystemhastowardtothedirectionofnetwork,decentralizedandintelligent.Inordertorealizetheremoteoperationofautomatedequipment,centralizedmanagementandmonitoring,weconstructanInternet-basedremotemonitoringsystem.Accordingtothespecificneedsofthisissue,thegeneraldesignschemeisputforwardinthispaper.ThesystemwhichusesC/S(client/server)architecture,designstheremotemonitoringplatformastheclient,buildstheembeddedserverplacedinsiteenvironment.The core of this remote monitoring system is inexpensive, powerful STM32 chip that acts as the brain system is the nerve center of the system, is another essential ENC28J60 chip card, The ENC28J60 is a stand-alone Ethernet controller with an industry standard Serial Peripheral Interface(SPI). It is designed to serve as an Ethernet network interface for any controller equipped with SPI. Other also includes temperature sensing chip and several LED lamps. Selection of the entire system is less, so it has low power consumption, low cost, stability, development of simple, small advantages, low-cost configuration also makes this program to implement for most people is also an easy task. In addition, the system can be realized in the terminal to access the system via IE browser monitoring system model so that remote monitoring more convenient and more humane.Keywords:STM32; Site monitoring; ENC28J60; C / S architecture;常州工学院电子信息与电气工程学院毕业设计说明书目录摘要1Abstract2第1章绪论- 1 -1.1研究背景- 1 -1.1.1 远程监控系统概述- 1 -1.1.2 远程监控系统功能分析- 2 -1.1.3 远程监控系统的优点- 2 -1.1.4 远程监控系统的技术问题- 3 -1.1.5 远程监控技术国内外研究动态- 3 -1.2研究的目的意义- 4 -1.3主要研究内容和论文安排- 4 -第2章系统方案设计- 6 -2.1系统构架- 6 -2.1.1 C/S结构- 6 -2.1.2 AJAX框架- 7 -2.2 Web Server的实现- 8 -2.2.1 Web服务器- 8 -2.2.2 嵌入式TCP/IP协议- 8 -2.3本章小结- 10 -第3章硬件设计- 11 -3.1 控制电路部分- 11 -3.1.1 微处理器- 11 -3.1.2 按键电路- 12 -3.2 显示部分- 12 -3.2.1 TFTLCD- 12 -3.2.2 LED- 13 -3.3 网络通信部分- 13 -3.3.1 ENC28J60简介- 14 -3.3.2uIP 简介- 16 -3.4 硬件资源分配- 18 -3.5本章小结- 19 -第4章软件设计- 20 -4.1系统总体软件结构概述- 20 -4.1.1系统设计思想- 20 -4.1.2系统程序设计- 21 -4.2 uIP的移植- 21 -4.2.1 uIP文件结构- 21 -4.2.2 uIP在STM32上的移植过程- 22 -4.4 Web Server程序设计- 31 -4.4.1 uIP Webserver的运行过程- 32 -4.4.2 uIP WebServer的动态网页生成- 36 -4.7本章小结- 38 -第5章调试与结果分析- 39 -5.1 ALIENTEK 战舰 STM32 开发板平台- 39 -5.2 硬件调试- 39 -5.3 软件调试- 41 -5.4 本章小结- 44 -第6章总结- 45 -参考文献- 46 -致谢- 48 -附录1 总原理图及PCB图- 49 -附录2 实物照片- 51 -附录3 部分程序清单- 52 -I第一章 绪论第1章 绪论1.1研究背景随着计算机技术,网络技术,控制理论,通信技术的发展,特别是随着企业联盟和虚拟企业的出现,催生了新的技术-远程监控技术。这种技术导致了变化,自动控制系统的结构的出现,它似乎成为历史的必然。世界经济正在经历一场深刻的革命,是从国家和国际外汇市场信息,技术,资源和产品的经济发展是分不开的。制造商在不同的国家,同时得到的信息交易区域商业竞争已不再是一个重要的因素,在企业间形成竞争与合作的影响,开盘形势的复杂性和局限性存在,企业不再是只是一个地区性的业务,国有企业,而是一个全球性企业。这将产生以下要求,通过遥控设备部件的企业设备制造企业制度,或者通过远程控制的企业管理。1.1.1 远程监控系统概述自上世纪90年代,随着科学技术,人们的生产行为的迅速发展,生活方式都发生了显著的变化,生活和生产监控技术即是一个非常重要的技术正逐渐被熟悉和关注的重要性。监控系统的演变是从一个集中监控,以历史发展的网络监控。早期的监控系统,采用了大型仪器集中在每个状态监控关键设备,并通过操作盘来集中处理。该监控系统是基于监控计算机作为主控计算机,用检测装置,与该对象被监视执行器控制(生产过程)共同构成一个整体的。在这个系统中,一种计算机实现生产过程的检测,监控和控制功能。在现代企业的生产和经营,大量的物理,环境参数,工艺数据,参数需要进行实时检测,监测,控制和自动化。由于高环境适应性,高实时性,高可靠性,自动化控制和检测技术的工业生产过程控制的要求一直沿着自己的发展道路,通信和控制技术中的自包含的,一个外地使用大量的通讯协议是不公开的,大多数系统都面临着一个单一的,或单一类型的设备。同的生产率进步的分布,越来越多的分立器件单个的,独立的监控系统不能满足工业化的需要,所以它们产生一个分布式系统。该系统是基于计算机网络,系统趋于资源的公平分配。但是,由于分布式监控系统绝大多数是目前在局域网上运行的只是一般的监控仅限于同一个地方,所以有一定的地域限制。互联网资源可以共享,使人们有能力解决以前在非常有限的资源解决疑难问题的能力,远程监控系统的发展提供了有利条件。远程监控是本地计算机的Internet / Intranet ,远程监视和控制,如通过网络系统,完成了分散控制网络的维护状态监测和诊断设备等功能,我们通常可以实现远程监控的通讯媒体,计算机软件,称为远程监控系统的硬件系统。在广泛分布式现场设备或数据不容易捕捉的场合,要能够监控设备的及时的运行状态,有效的控制,这是远程监控技术在工业生产的需要。1.1.2 远程监控系统功能分析远程监控系统,有两种类型,一种是生产现场没有现场监控系统,但收集到的数据将被直接发送到远程计算机进行处理,这种远程监控和现场的监控一般是没有太大的区别,但数据传输间隔现场监控系统是远远超过了同一系统的现场监测等部位;另一种是现场监控和远程监控并存。现场总线技术一般用在各种传感器设备的分配,监控设备连接,以使从阶段到离散的单位为集成单元阶段,然后提供服务的每个处理位点,然后连接在局域网中,从而形成一个业务内部网(内联网) 。自成立以来,基本的网络信息基础设施,设备监控,维护技术人员进入集成系统的阶段,在一个单位基本上实现了资源和信息共享。远程控制功能实现如下:采集和处理功能:主要用于各种模拟或数字测试,取样和必要的预处理,并输出某种形式,如打印报表,显示屏和电视,为生产人员在生产过程提供详细数据,帮助他们分析,以了解生产情况;监视功能:指令检测的实时数据,以及在生产过程中发出的制作人员和分析数据的输入,回纳,排序,计算等二次加工,并分别作为将要存储的实时和历史数据;治理:使用有一定的有效数据,图像,报表及分析的其他条件,故障诊断,危险的投机,以及声光报警故障和突发事件的形式;控制:对检测处理的基础上的信息,控制输出根据预先确定的控制策略形成的,直接在生产过程中。基于B / S和C / S的远程监控系统是基于监控系统的通信网络为平台,以HTTP技术,简单,高效等特点,已成为应用最广泛的信息交流平台的信息网络。插座使用的网络通信技术,数据采集技术和面向对象的软件技术实现了整个系统,用户管理,设备监控数据显示和报警模块,充分利用现有的局域网和广域网资源优势的治理体系资源,具有最高的性价比,实时信息访问和中心的实时控制,信息,资源共享和任务全面综合的全球治理。例如:设备运行监控系统将提供给服务器,服务器通过客户端发送到每个节点,工作人员工作在客户端(通常是远程的)可以了解整个系统的工作状态和操作。简单地说,企业要充分利用现代科技手段,解决了实时数据和实时控制问题的采集,传输和处理。正是这些优点使得它迅速发展。随着网络技术的不断发展,远程监控将更多地应用在企业生产过程的治理中,专业技术职员可以通过互联网来治理和维护生产过程,优化生产工艺,进步设备的可用率,终极降低生产本钱,进步效益。1.1.3 远程监控系统的优点通过远程监控手段可以是内部信息网(Intranet )和控制网络连接有效合作,实现生产,经营状况,随时掌握生产企业相结合,以实现全面的自动化企业经营管理战略和运营紧密结合形势,监测数据可以在网络和在线知识库中创建。可以通过收集的现场操作和快速对焦实时远程监测数据来实现,获得现场监测数据,提供远程故障诊断技术的物质基础;通过远程监控,技术人员必须亲临现场或恶劣的环境中也能监视和控制生产系统和现场设备的运行状态及各种参数,以便工作人员均接受过专业培训。虚拟。出现在方便地使用当地丰富的硬件和软件资源,为先进的过程控制远程对象,以保持设备的正常运行,从而减少工作人员的值班工作,并最终实现无人真的远不如许多人的监测地点有人值班,减员增效的目的。目前,越来越多的跨区域企业集团表现出的趋势,利用网络技术实现远程监控企业降低生产成本,提高劳动生产率,提高产品的科技含量,以及增强整体竞争实力等都有非常重要的意义。1.1.4 远程监控系统的技术问题随着网络技术的迅速发展和扩大监控范围,监控系统单机监控从过去到现在的网络监控的转变,但仍存在一些问题。首先,缺乏网络通信技术主题。在远程监控技术的网络通信技术是最关键的技术,然而,一般采用Socket技术,一个简单的网络通信,甚至FTP或Email等,这些无论是在传输的数据量,编程的灵活性或安全性方面的技术很缺乏大的,特别是对现场数据的采集多个端点,将大大增加了编程的复杂性,远程监控技术已不能满足网络通信的需求;其次,存在于网络通信问题的各种结构。大多数远程监控系统的当前结构比较复杂的,分布式的时间间隔远,但还是有不同的局域网,不同平台,甚至在同一个局域网内的机动平台和编程语言也可能有不同的主题,这就需要不同的网络的融合平台对这些问题的相互之间的通信,而且难以用传统的方法来解决。1.1.5 远程监控技术国内外研究动态远程监控是一个前沿研究课题在国内外,在国内外都进行了积极的研究。 1997年1月,远程监控互联网为基础的诊断工作由斯坦福大学和麻省理工学院联合举办的第一次会议,有来自30家公司和研究机构以及50多个代表出席会议。会议主要讨论了有关远程监控系统开放式体系、诊断信息规程、传输协议及对用户的正当限制等,并对未来技术发展作了展看由斯坦福大学和麻省理工学院合作开发基于Internet的下一代远程监控诊断示范系统,这项工作同时也得到了制造业、计算机业和仪器仪表业的Sun、HP、Boeing、Intel、Ford等12家至公司的热情支持和通力配合。之后,由这些公司共同推出了一个实验性的系统Testbed。Testbed用嵌进式Web组网、用实时JAVA和Bayesian Net初步形成在Internet范围内的信息监控和诊断推理。另外,很多国际组织,如MIMOSA(Machine Information Management Open System Alliance)、SMFPT (Society for Machinery Failure Prevention Technology)、COMADEM (Condition Monition an Engineering Management)等,也纷纷通过网络进行设备监控与故障诊断咨询和技术推广工作,并制定了一些信息交换格式和标准。很多至公司也在他们的产品中加进了Internet的功能,如Bentley公司的计算机在线设备运行监测系统DataManager200可以通过网络动态数据交换(NetDDE)的方式向远程终端发送设备运行状态信息;National Instruments公司也是著名产品的LabWindows / CVI和LabVIEW的加入到网络通信处理模块,它可以是WWW,FTP,E2mail方式在网络中监控数据传输。智能报警与监控系统,用于多个项目长期生产过程中的研究与应用法国报警研究小组。国内技术的远程监控也进行了积极的研究,目前,西安交通大学,华中科技大学,哈尔滨工业大学,南京大学等高校都作出了更先进的研究,如西安交通大学研发的。大型旋转机械状态监测计算机系统和故障诊断系统RMMD,华中科技大学科技开发了水轮机状态监测与诊断系统KBGMD,微型计算机设备状态监测与故障诊断专家系统哈尔滨工业大学MMMDES等。1.2研究的目的意义目前主流的嵌入式远程监控系统一般都需要专门的嵌入式处理器与嵌入式实时操作系统的支持下完成的,要求的处理器也较高端如常见的ARM微处理器以及LINUX实时操作系统。而本文实现的嵌入式远程监控系统则不需要另外的操作系统的支持,而且使用价格低廉的STM32芯片作为处理器中央处理器,硬件上就节约了很大的成本。网络模块采用同样价格低廉而且常见的ENC28J60网卡芯片,结合uIP、lwip等轻量级协议在STM32上的移植,成功实现了没有操作系统的INTERNET连接。1.3主要研究内容和论文安排本文主要研究了基于互联网的远程监控技术,利用公共网络代替传统的Can总线等常用的工业级网络,实现对嵌入式系统的远程监控。全文的内容安排如下:(1) 第一章为绪论。综述了远程控制的发展和应用,分析了远程监控技术的功能、优点、技术问题及国内外研究动态等。(2) 第二章为系统方案设计。首先分析了远程监控技术的一般原理,综述了远程监控的分类和常用方法,最后总结了远程监控系统实现的过程和方法。(3) 第三章为硬件设计。首先概述了STM32最小系统,接着介绍了LCD液晶显示屏,最后介绍了网卡模块和精简TCP/IP。(4) 第四章为软件设计。首先概述了系统软件设计,然后,介绍了uIP协议栈的移植,最后分别介绍了各个子程序的流程。(5) 第五章为调试与结果分析。(6) 最后为全文的小结部分。- 59 -第二章 系统方案设计第2章 系统方案设计目前,市场上实现远程监控的装置有很多,但大多数都是利用复杂的集成芯片实现,价格昂贵而且不开源,很难在生产设计中发挥其应有的作用。再者,随着互联网的普及和发展,越来越多的产品开始实现互联网功能,传统的远程控制大多是采用CAN、RS232等总线实现物理线路的搭建,工程量比较大,而且传输距离有限,还得开发专门的软件客户端,很不利于研究开发。本设计,着重在于探索一种开源、廉价、基于互联网的设计方案。2.1系统构架既然要实现基于互联网的远程监控,就要考虑采用何种系统网络构架。传统的是C/S结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。另一种是随着WEB新起而产生和发展的B/S结构,即浏览器/服务器模式。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。浏览器通过Web Server 同数据库进行数据交互。接下来着重介绍和分析这两种结构。2.1.1 C/S结构C/S 结构的基本原则是将计算机应用任务分解成多个子任务,由多台计算机分工完成,即采用“功能分布”原则。客户端完成数据处理,数据表示以及用户接口功能;服务器端完成DBMS(数据库管理系统)的核心功能。这种客户请求服务、服务器提供服务的处理方式是一种新型的计算机应用模式。C/S 模式的优点:1)由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度较快。 2)C/S结构的管理信息系统具有较强的事务处理能力。C/S 模式的缺点: 1)只适用于局域网。而随着互联网的飞速发展,移动办公和分布式办公越来越普及,这需要我们的系统具有扩展性。这种方式远程访问需要专门的技术,同时要对系统进行专门的设计来处理分布式的数据。2)客户端需要安装专用的客户端软件。首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。特别是有很多分部或专卖店的情况,不是工作量的问题,而是路程的问题。还有,系统软件升级时,每一台客户机需要重新安装,其维护和升级成本非常高。3)对客户端的操作系统一般也会有限制。可能适应于Win98, 但不能用于win2000或Windows XP。或者不适用于微软新的操作系统等等,更不用说Linux、Unix等。2.1.2 B/S结构B/S结构的优点:1)具有分布性特点,可以随时随地进行查询、浏览等业务处理。 2)业务扩展简单方便,通过增加页面即可增加服务器功能。 3)维护简单方便,只需要改变网面,即可实现所有用户的同步更新。 4)共享性强B/S 模式的缺点:1)响应速度不及C/S,随着AJAX技术的发展,相比传统B/S结构软件提升一倍速度。 2)用户体验效果不是很理想,B/S需要单独界面设计,厂商之间的界面也是千差万别,由于浏览器刷新机制,使用时有刷屏现象,好在AJAX技术解决这一难题,像用友,智赢等开发的B/S架构软件用户体验效果与C/S差不多。2.1.2 AJAX框架为了得到更好的用户体验,本设计采用了当前比较流行的AJAX框架。它能够很好的解决传统的WEB应用程序的不足。传统的 WEB 应用程序模型是这样工作的:用户的界面操作触发 HTTP 请求,服务器在接收到请求之后进行一些业务逻辑处理,如保存数据等,然后向客户端返回一个 HTML 页面。但这种方式并没有给予用户很好的应用体验,当服务器在处理数据的时候,用户则处于等待的状态,每一步操作都需要等待,太多的等待会使用户越来越没有耐心。而 Ajax 则大不相同,它通过 Ajax 引擎,使得应用过程很自然,操作很流畅,因为其只和服务器交换有用的数据,而页面显示等不必要的数据则不再重新加载。Ajax 引擎其实就是 JavaScript、XML、XMLHttpRequest 等等各项技术的综合应用。基于XML的异步JavaScript,简称AJAX,是当前Web创新(称为Web2.0)中的一个王冠。感谢组成AJAX的各种技术,Web应用的交互如Flickr, Backpack和Google在这方面已经有质的飞跃。这个术语源自描述从基于网页的Web应用到基于数据的应用的转换。在基于数据的应用中,用户需求的数据如联系人列表,可以从独立于实际网页的服务端取得并且可以被动态地写入网页中,给缓慢的Web应用体验着色使之像桌面应用一样。2.2 Web Server的实现要实现基于互联网的远程监控,最重要的就是如何实现Web server。Web服务器可以解析(handles)HTTP协议,而B/S结构就是通过HTTP协议实现的C/S结构,可以说B/S属于C/S。然而,要实现Web server首先得实现TCP/IP协议,完整的TCP/IP协议移植到8位或者16位机不太现实,而且性能不好,所以,只能使用精简的TCP/IP协议。2.2.1 Web服务器Web Server中文名称叫网页服务器或web服务器。WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。Web服务器可以解析(handles)HTTP协议。当Web服务器接收到一个HTTP请求(request),会返回一个HTTP响应(response),例如送回一个HTML页面。为了处理一个请求(request),Web服务器可以响应(response)一个静态页面或图片,进行页面跳转(redirect),或者把动态响应(dynamic response)的产生委托(delegate)给一些其它的程序例如CGI脚本,JSP(JavaServer Pages)脚本,servlets,ASP(Active Server Pages)脚本,服务器端(server-side)JavaScript,或者一些其它的服务器端(server-side)技术。无论它们(译者注:脚本)的目的如何,这些服务器端(server-side)的程序通常产生一个HTML的响应(response)来让浏览器可以浏览。通俗的讲,Web服务器传送(serves)页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用(call)的方法(methods)。确切一点,你可以说:Web服务器专门处理HTTP请求(request),但是应用程序服务器是通过很多协议来为应用程序提供(serves)商业逻辑(business logic)。2.2.2 嵌入式TCP/IP协议随着嵌入式设备应用越来越广泛,嵌入式网络协议也越来越多,目前常用的,并且开源的嵌入式网络协议有BSD、uIP、LwIP、uC/IP以及TinyTcp。下面分析一下各自的特点和局限性,然后根据需要选择合适的嵌入式TCP/IP协议。1.BSD TCP/IP协议栈BSD栈历史上是其他商业栈的起点,大多数专业TCP/IP栈(VxWorks内嵌的TCP/IP栈)是BSD栈派生的。这是因为BSD栈在BSD许可协议下提供了这些专业栈的雏形,BSD许用证允许BSD栈以修改或未修改的形式结合这些专业栈的代码而无须向创建者付版税。同时,BSD也是许多TCP/IP协议中的创新(如广域网中饿拥塞控制和避免)的开始点。2.uC/IP协议栈由Guy Lancaster编写的一套基于uC/OS且开放源码的TCP/IP协议栈,亦可移植到其它操作系统,是一套完全免费的、可供研究的TCP/IP协议栈,uC/IP大部分源码是从公开源码BSD发布站点和KA9Q(一个基于DOS单任务环境运行的TCP/IP协议栈)移植过来。uC/IP具有如下一些特点:带身份验证和报头压缩支持的PPP协议,优化的单一请求/回复交互过程,支持IP/TCP/UDP协议,可实现的网络功能较为强大,并可裁减。UCIP协议栈被设计为一个带最小化用户接口及可应用串行链路网络模块。根据采用CPU、编译器和系统所需实现协议的多少,协议栈需要的代码容量空间在30-60KB之间。3.LwIP协议栈瑞士计算机科学院(Swedish Institute of Computer Science)的Adam Dunkels等开发的一套用于嵌入式系统的开放源代码TCP/IP协议栈。LwIP的含义是Light Weight(轻型)IP协议,LwIP可以移植到操作系统上,也可以在无操作系统的情况下独立运行。LwIP TCP/IP实现的重点是在保持TCP协议主要功能的基础上减少对RAM的占用,一般它只需要几十K的RAM和40K左右的ROM就可以运行,这使LwIP协议栈适合在低端嵌入式系统中使用。LwIP的特性如下:支持多网络接口下的IP转发,支持ICMP协议 ,包括实验性扩展的UDP(用户数据报协议),包括阻塞控制、RTT估算、快速恢复和快速转发的TCP(传输控制协议),提供专门的内部回调接口(Raw API)用于提高应用程序性能,并提供了可选择的Berkeley接口API。4.uIP协议栈专门为8位和16位控制器设计的一个非常小的TCP/IP栈。完全用C编写,因此可移植到各种不同的结构和操作系统上,一个编译过的栈可以在几KB ROM或几百字节RAM中运行。uIP中还包括一个HTTP服务器作为服务内容。5.TinyTcp协议栈TCP/IP的一个非常小和简单的实现,它包括一个FTP客户。TinyTcp是为了烧入ROM设计的并且现在开始对大端结构似乎是有用的(初始目标是68000芯片)。TinyTcp也包括一个简单的以太网驱动器用于3COM多总线卡。我认为选择一个开源协议栈可以从四个方面来考虑:硬件平台的无关性、操作系统的内核API、对应用支持程度、占用的系统资源。BSD 栈可完整实现TCP/IP协议,但代码庞大,70KB-150KB之间,裁减优化有难度。LwIP和uC/IP是同量级别的两个开源协议栈,两者代码容量和实现功能相似,LwIP没有操作系统针对性,它将协议栈与平台相关的代码抽象出来,用户如果要移植到自己的系统,需要完成该部分代码的封装,并为网络应用支持提供了API接口的可选性。uC/IP协议最初是针对uC/OS设计,为方便用户移植实现,同样也抽象了协议栈与平台相关代码,但是协议栈所需调用的系统函数大多参照uC/OS内核函数原型设计,并提供了协议栈的测试函数,方便用户参考,其不足在于该协议栈对网络应用支持不足。uIP和TinyTcp代码容量小巧,实现功能精简,限制了在一些较高要求场合下的应用,如可靠性与大容量数据传输。不过,我们不需要可靠性与大容量数据传输,所以根据以上分析,从应用和开发的角度看,选用uIP比较适合。2.3本章小结本章针对系统构架和WebServer的实现两方面进行重点阐述。首先确立了设计方案模型为B/S结构,再结合AJAX框架能实现很好的WEB应用体验。该方案不仅而经济实用,而且在目前的嵌入式领域有极强的应用价值。其次,介绍了几种常用的嵌入式网络协议堆栈,分析各自的特点和局限性。最后,根据需要选择了小巧实用的uIP协议栈。第三章 硬件设计第3章 硬件设计本设计的硬件平台是基于广州市星翼电子科技有限公司的ALIENTEK 战舰 STM32 开发板及其公司的相关配件。为了实现通过互联网远程监控以为STM32主芯片的嵌入式装置,需要如下图所示的硬件电路,包括STM32最小系统部分、按键部分、电源部分、LCD显示部分、ENC28J60网络模块、LED显示部分。下面根据图3-1分别说明各个部分的设计。图3-1 硬件设计示意图3.1 控制电路部分本系统的控制电路部分主要由STM32最小系统、电源和按键组成。STM32最小系统的主芯片:STM32F103ZET6。后备区域供电脚 VBAT 脚的供电采用 CR1220 纽扣电池和 VCC3.3 混合供电的方式,在有外部电源 (VCC3.3) 的时候, CR1220 不给 VBAT 供电,而在外部电源断开的时候,则由 CR1220给其供电。这样,VBAT 总是有电的,以保证 RTC 的走时以及后备寄存器的内容不丢失。图中的 R37 和 R38 用隔离 MCU 部分和外部的电源,如果 3.3V 电源短路,可以断开这两个电阻,来确定是 MCU 部分短路,还是外部短路,有助于生产和维修。图中 P7 是参考电压选择端口,默认是接板载的 3.3V 作为参考电压。按键电路用来控制程序的执行。3.1.1 微处理器本设计的微处理器选用ST(意法半导体)公司的STM32系列的Cortex-M3芯片,具体型号为STM32F103ZETT6。该芯片是STM32F103 里面配置非常强大的了,它拥有的资源包括:64KB SRAM、512KB FLASH、2 个基本定时器、4 个通用定时器、2 个高级定时器、3 个 SPI、2 个 IIC、5 个串口、1 个 USB、1个 CAN、3 个 12 位 ADC、1 个 12 位 DAC、1 个 SDIO 接口、1 个 FSMC 接口以及 112 个通用IO 口。该芯片的配置十分强悍,并且还带外部总线(FSMC)可以用来外扩 SRAM 和连接 LCD等,通过 FSMC 驱动 LCD,可以显著提高 LCD 的刷屏速度,更重要的是其价格,23 元左右的零售价,足以秒杀很多其他芯片了。所以我们选择了它作为主芯片。MCU 部分的原理图如图 3-2所示:图3-2 STM32最小系统原理图3.1.2 按键电路按键电路中包括 KEY0/KEY2 两个按键按:KEY0,由开发板的 TCP Server 端发送数据到电脑的 TCP Client 端。按 KEY2,则由开发板的 TCP Client 端发送数据到电脑的 TCP Server 端。KEY0、KEY1 和 KEY2 用作普通按键输入,分别连接在 PE4、PE3 和 PE2 上,STM32 的内部上拉电阻来为按键提供上拉。按键电路如图3-3所示:图3-3 按键电路3.2 显示部分本设计中显示包括两部分:一是,TFTLCD模块。该模块用于显示ENC28J60网络模块初始化情况、TCP Server/Client连接情况以及开发板与电脑端网络调试助手通信时收发数据的信息;二是,LED模块。该模块共有 3 个 LED灯,一是电源指示灯,另外两个均用于响应WEB端控制的显示。 3.2.1 TFTLCD本设计采用2.8寸的 TFTLCD 液晶显示屏,TFT-LCD 即薄膜晶体管液晶显示器。其英文全称为:Thin Film Transistor-Liquid Crystal Display。TFT-LCD 与无源 TN-LCD、STN-LCD 的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。TFT-LCD 也被叫做真彩液晶显示器。该模块支持 65K 色显示,分辨率为 320240,接口为 16 位的 80 并口,自带触摸屏。本设计通过 STM32 的总线 FSMC 接口来控制 TFTLCD 的显示。开发板板载的 LCD 模块接口电路如图 3-5 所示:图 3-5 LCD 模块接口3.2.2 LED 本设计中使用的开发板上总共有 3 个 LED,一个用于电源显示,另外两个用于指示灯。其原理图如图 3-6 所示:图3-6 LED显示电路其中 PWR 是系统电源指示灯,为蓝色。LED0 和 LED1 分别接在 PB5 和 PE5 上。其中DS0 为红色的 LED,DS1 为绿色的 LED。3.3 网络通信部分本设计是基于互联网的远程监控系统,其核心部分便是网络通信部分。要实现互联网的控制,硬件部分首先要解决接口问题,即如何将以太网接口转换为STM32常用的串口。其次是TCP/IP的实现,虽然TCP/IP协议不是真正意义上的硬件,但是实现互联网通信中却是不可缺少的“硬件”。3.3.1 ENC28J60简介ENC28J60 是带有行业标准串行外设接口(Serial Peripheral Interface,SPI)的独立以太网控制器。 它可作为任何配备有 SPI 的控制器的以太网接口。 ENC28J60 符合 IEEE 802.3 的全部规范,采用了一系列包过滤机制以对传入数据包进行限制。 它还提供了一个内部 DMA 模块,以实现快速数据吞吐和硬件支持的 IP 校验和计算。 与主控制器的通信通过两个中断引脚和SPI 实现,数据传输速率高达 10 Mb/s。两个专用的引脚用于连接 LED,进行网络活动状态指示。ENC28J60 总共只有 28 脚,提供 QFN/TFENC28J60 的主要特点如下:l 兼容 IEEE802.3 协议的以太网控制器l 集成 MAC 和 10 BASE-T 物理层l 支持全双工和半双工模式l 数据冲突时可编程自动重发l SPI 接口速度可达 10Mbpsl 8K 数据接收和发送双端口 RAMl 提供快速数据移动的内部 DMA 控制器l 可配置的接收和发送缓冲区大小l 两个可编程 LED 输出l 带 7 个中断源的两个中断引脚l TTL 电平输入l 提供多种封装:SOIC/SSOP/SPDIP/QFN 等ENC28J60 的典型应用电路如图 3-7 所示:图3-7 ENC28J60 典型应用电路ENC28J60 由七个主要功能模块组成:1) SPI 接口,充当主控制器和 ENC28J60 之间通信通道。2) 控制寄存器,用于控制和监视 ENC28J60。3) 双端口 RAM 缓冲器,用于接收和发送数据包。4) 判优器,当 DMA、发送和接收模块发出请求时对 RAM 缓冲器的访问进行控制。5) 总线接口,对通过 SPI 接收的数据和命令进行解析。6) MAC(Medium Access Control)模块,实现符合 IEEE 802.3 标准的 MAC 逻辑。7267) PHY(物理层)模块,对双绞线上的模拟数据进行编码和译码。ENC28J60 还包括其他支持模块,诸如振荡器、片内稳压器、电平变换器(提供可以接受5V 电压的 I/O 引脚)和系统控制逻辑。ENC28J60 的功能框图如图 3-8 所示:图3-8 ENC28J60 功能框图本设计中的网络模块采用 ENC28J60 作为主芯片,单芯片即可实现以太网接入,利用该模块,基本上只要是个单片机,就可以实现以太网连接。ENC28J60 网络模块原理图如图3-9所示:图3-9 ENC28J60 网络模块原理图ENC28J60 网络模块外观图如图3-10所示:图3-10 ENC28J60 网络模块外观图该模块通过一个8个引脚的排针与外部电路连接,这 8 个引脚分别是:GND、 RST、 MISO、SCK、MOSI、INT、CS 和 V3.3。其中 GND 和 V3.3 用于给模块供电,MISO/MOSI/SCK 用于SPI 通信,CS 是片选信号,INT 为中断输出引脚,RST 为模块复位信号。3.3.2uIP 简介 uIP 由瑞典计算机科学学院(网络嵌入式系统小组)的Adam Dunkels 开发。其源代码由C 语言编写,并完全公开,uIP 的最新版本是 1.0 版本,本指南移植和使用的版本正是此版本。uIP 协议栈去掉了完整的 TCP/IP 中不常用的功能,简化了通讯流程,但保留了网络通信必须使用的协议,设计重点放在了 IP/TCP/ICMP/UDP/ARP 这些网络层和传输层协议上,保证了其代码的通用性和结构的稳定性。由于 uIP 协议栈专门为嵌入式系统而设计,因此还具有如下优越功能:1) 代码非常少,其协议栈代码不到 6K,很方便阅读和移植。2) 占用的内存数非常少,RAM 占用仅几百字节。3) 其硬件处理层、协议栈层和应用层共用一个全局缓存区,不存在数据的拷贝,且发送和接收都是依靠这个缓存区,极大的节省空间和时间。4) 支持多个主动连接和被动连接并发。5) 其源代码中提供一套实例程序: web 服务器, web 客户端, 电子邮件发送程序(SMTP 客户端),Telnet 服务器, DNS 主机名解析程序等。通用性强,移植起来基本不用修改就可以通过。6) 对数据的处理采用轮循机制,不需要操作系统的支持。由于 uIP 对资源的需求少和移植容易,大部分的 8 位微控制器都使用过 uIP 协议栈, 而且很多的著名的嵌入式产品和项目(如卫星,Cisco 路由器,无线传感器网络)中都在使用 uIP 协议栈。uIP 相当于一个代码库,通过一系列的函数实现与底层硬件和高层应用程序的通讯,对于整个系统来说它内部的协议组是透明的,从而增加了协议的通用性。uIP 协议栈与系统底层和高层应用之间的关系如图 3-11 所示:图3-11 uIP 在系统中的位置从上图可以看出,uIP 协议栈主要提供2个函数供系统底层调用:uip_input 和 uip_periodic。另外和应用程序联系主要是通过 UIP_APPCALL 函数。当网卡驱动收到一个输入包时, 将放入全局缓冲区uip_buf 中, 包的大小由全局变量uip_len约束。同时将调用 uip_input()函数,这个函数将会根据包首部的协议处理这个包和需要时调用应用程序。当 uip_input()返回时, 一个输出包同样放在全局缓冲区 uip_buf 里, 大小赋给 uip_len。如果 uip_len 是 0,则说明没有包要发送。否则调用底层系统的发包函数将包发送到网络上。uIP 周期计时是用于驱动所有的 uIP 内部时钟事件。 当周期计时激发, 每一个 TCP 连接都会调用 uIP 函数 uip_periodic()。 类似于 uip_input()函数。 uip_periodic()函数返回时, 输出的 IP 包要放到 uip_buf 中,供底层系统查询 uip_len 的大小发送。由于使用 TCP/IP 的应用场景很多,因此应用程序作为单独的模块由用户实现。uIP 协议栈提供一系列接口函数供用户程序调用,其中大部分函数是作为 C 的宏命令实现的,主要是为了速度、代码大小、效率和堆栈的使用。用户需要将应用层入口程序作为接口提供给 uIP 协议栈, 并将这个函数定义为宏 UIP_APPCALL()。这样,uIP 在接受到底层传来的数据包后,在需要送到上层应用程序处理的地方,调用 UIP_APPCALL( )。在不用修改协议栈的情况下可以适配不同的应用程序。uIP 协议栈提供了我们很多接口函数,这些函数在 uip.h 中定义,为了减少函数调用造成的额外支出,大部分接口函数以宏命令实现的,uIP 提供的接口函

温馨提示

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

评论

0/150

提交评论