测控毕业论文_第1页
测控毕业论文_第2页
测控毕业论文_第3页
测控毕业论文_第4页
测控毕业论文_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计(论文) 题 目: 嵌入式网络控制器软件设计 学 院: 电子信息学院 专业班级: 测控 08 级 1 班 指导教师: 温宗周 职称: 副教授 学生姓名: 胥 哲 学 号: 40803050108 西安工程大学本科 毕业设计(论文) I 摘 要 目前,随着计算机技术、通信技术的飞速发展,使我们通过计算机进行网络互连的同时,许多领域的嵌入式设备如工业控制、数据采集和智能仪表等都有接入网络的需求。通过嵌入式 Internet 控制系统,用户只要在有网络接入的地方,就可以对与网络连接的任何现场设备进行远程监控。 网络控制器的核心芯片采用基于 Cortex M3 内核的 32 位 ARM 微控制器STM32F103ZET6。首先根据网络控制器的功能要求,设计各功能模块的流程图,具体包括 :数据采集及 A/D 转换模块 、数据处理模块、数据存储模块、显示模块、以太网通信模块。其次了解 Keil 开发平台,通过软件的设计编写相关程序 ,完成数据的采集、处理、存储、显示以及以太网通信,使网络控制器与上位机通过以太网实时通信及远程控制。最后,完成总体的调试,总结分析过程中遇到的问题和不足。 关键词 : 网络控制器 , STM32F103ZET6 ,数据采集, TCP/IP 通信协议 西安工程大学本科 毕业设计(论文) II ABSTRACT At present, along with the computer technology, communication technology to rapid development, make us through the computer network interconnection and at the same time, many areas of embedded equipment such as industrial control, data acquisition and intelligent instruments have access network needs. Through the embedded Internet control system, as long as the users have Internet access in the place, can with the network connection to any site equipment for remote monitoring. Network controller based on the core chip Cortex-M3 kernel 32-bit ARM micro controller STM32F103ZET6. First of all, according to the functional requirement of the network controller, the function module design flow chart of specific include: data collection and A/D conversion module, data processing module, the data storage module, display module, Ethernet communication module. Second understand Keil development platform, and through the design of the software to write programs, complete data collection, treatment, storage, display and Ethernet communication, network controller and the upper machine through the Ethernet real-time communication and remote control. Finally, the adjustment of the overall finish, summarizes and analyzes the problems in the course of and insufficient. KEY WORDS: Network controller, STM32F103ZET6, data acquisition, TCP/IP communication agreement 西安工程大学本科 毕业设计(论文) III 前 言 随着 Internet 技术迅速发展,在以太网和 TCP IP 协议已成为世界范围内的标准的情况下,我们对各种控制设备的网络功能要求就越来越高,希望控制设备具有 Internet 接入功能,能够支持 TCP IP 以及其他 Internet 协议,通常由采集的数据通过网络传送到服务器的数据库中,使用户通过浏览器查看设备状态、设置设备参数,以达到远程监控现场设备的目的。基 于 ARM 的嵌入式网络控制器就能够实现这个目的,它采用嵌入式技术和以太网控制技术,是一种新型的远程监控的解决方案。 嵌入式网络控制器是以计算机技术为核心,结合先进的计算机技术、网络通信技术、自动控制技术的一种远程监控系统。嵌入式网络控制器能将监控现场的监控信息通过计算机网络传输到网络中的其它计算机上,并与信息管理系统融合在一起,达到远程监控的目的。在监控现场利用嵌入式技术 ,把数据采集和网络传输功能集成到一个体积很小的设备内,可以直接连入以太网,达到即插即看,省掉各种复杂的电缆,安装方便 (仅需设置一个口地址 ), 无需专人值守等优点,在监控终端,远程监控人员只需拥有一台可以上网的 PC 机,无需安装特殊的硬件设备,就可以在世界的任何一个地方,对监控现场进行实时远程监控,这样大大降低了系统的成本,极大地方便了整个监控系统的操作和维护。 西安工程大学本科 毕业设计(论文) IV 西安工程大学本科 毕业设计(论文) V 目 录 第 1章 绪 论 . 1 1.1 课题研究的背景和意义 . 1 1.2 国内外研究的现状 . 2 1.3 课题来源及研究内容 . 4 1.4 论文的计划及时间安排 . 5 第 2章 嵌入式网络控制器总体设计 . 6 2.1 功能需求 . 6 2.1.1 数据采集和处理 . 6 2.1.2 以太网通信 . 7 2.1.3 其他功能和需求 . 7 2.2 设计原则 . 8 2.3 系统总体结构设计 . 9 2.4 论文写作提纲 . 9 第 3章 硬件电路的设计 . 11 3.1 微控制器 STM32F103ZET6 简介 . 11 3.2 电源电路设计 . 13 3.3 A/D转换电路的设计 . 14 3.4 存储电路设计 . 15 3.4.1 FM24C16 介绍 . 16 3.4.2 AT45DB161D 介绍 . 17 3.5 显示电路设计 . 18 3.6 以太网电路设计 . 18 3.6.1寄存器的构成 . 18 3.6.2控制寄存器 . 19 3.6.3以太网缓冲器 . 19 3.7 温度采集电路设计 . 22 第 4章 TCP/IP通信协议 . 23 西安工程大学本科 毕业设计(论文) VI 4.1 数据链路层 . 24 4.2 网络层协议的分析 . 25 4.2.1 IP协议分析 . 25 4.2.2 ICMP协议分析 . 26 4.2.3 ARP协议 . 27 4.3 传输层协议分析 . 29 4.3.1 UDP 协议分析 . 29 4.3.2 TCP 协议分析 . 30 4.4 应用层 . 31 4.5 用户层 . 32 第 5章 软件设计 . 33 5.1 总体设计 . 33 5.2 数据采集及 AD转换 . 34 5.2.1 I2C总线接口 . 35 5.2.2 ADS1110 的读写 . 36 5.3 数据处理模块 . 36 5.4 数据存储模块 . 37 5.4.1 FLASH存储 AT45DB161D介绍 . 37 5.4.2 铁电存储 FM28C16介绍 . 39 5.5 显示模块 . 42 5.5.1 迪文工业串口屏数据帧构架 . 43 5.5.2 字节传送顺序 . 43 5.5.3 串口工作模式 . 43 5.5.4 触控界面的设计 . 43 5.6 通信模块 . 44 第 6章 总 结和展望 . 48 6.1 全文总结 . 48 6.2 对未来工作的展望 . 49 参考文献 . 50 西安工程大学本科 毕业设计(论文) VII 致 谢 . 52 附 录 . 53 西安工程大学本科毕业设计(论文) VIII 西安工程大学本科毕业设计(论文) 1 第 1 章 绪 论 1.1 课题研究的背景和意义 2l世纪的特征就是数字化、网络化和信息化,它是一个以网络为核心的信息时代。而就在这个信息时代中,嵌入式技术是继 IT 网络技术之后,又一个新的技术发展方向。由于基于 ARM的嵌入式控制器具有体积小、性能强、功耗低、可靠性高以及面向行业应用的突出特征,目前已经广泛地应用于军事国防、消费电子、网络通信、工业控 制、日常生活等各个领域。随着计算机技术与通信技术的发展,基于 ARM的嵌入式控制器的研究与开发也有着越来越重要的实际意义。 嵌入式技术诞生于微型计算机时代,与通用计算机的发展道路完全不同:通用计算机按照高速、海量的技术发展;嵌入式技术则为满足对象系统嵌入式智能化控制要求发展。微型计算机无法满足绝大多数对象对体积、成本与可靠性等方面的要求,因此,嵌入式技术迅速走上了独立的单芯片发展道路。 随着嵌入式技术的不断发展,嵌入式应用越来越广,在工控、家电、通信、消费电子、航空航天等领域,都得到了充分的发挥,处处体现了嵌 入式应用的优势。如“神七”上的制导系统、遥测系统、通信系统等都用到了嵌入式技术;国内生产机顶盒的“维纳斯计划”,其核心技术也是采用 32 位以上芯片级的嵌入式技术。如今网络技术越来越成熟,使得其应用的范围不断扩大。除了传统的电子邮件、远程登录、文件传输等业务外,各种新的应用也应运而生,如远程监控、远程医疗等。目前,如何实现无所不在的嵌入式设备与 Internet 的结合,代表着嵌入式技术和网络技术的真正未来。在 2011 英特尔的信息技术峰会上,英特尔坚定地认为到 2015 年将有 150 亿台嵌入式设备接入互 联网。因此,很有必要开展嵌入式网络技术的研究。对嵌入式网络技术进行研究,必须熟悉相关技术,包括嵌入式系统应用开发技术和网络通信相关技术 -TCP/IP (Transmission Control Protocol/Internet Protocol,传输控制协议 /国际互联网络协议 )。 随着网络技术的发展,网络化产品的应用不断增多,网络化控制系统体系结构日益清晰,向着结构趋向简单化、大量采用成熟、开放和通用的技术方向发展。充分利用网络设施进行网络测控,既能降低组建系统的费用,又能实现测控设备与测控信息的共享。在 网络上进行测控与数据采集,可以不必亲自到达现场,就西安工程大学本科毕业设计(论文) 2 可以远程监测或控制过程和获得实验数据。这样,不但节约了人力物力,而且实时性好。网络控制器使信息跨越了空间和时间的界限,与传统仪器相比,这是一个质的飞跃。以上网络技术的发展为嵌入式网络控制器将网络技术、传感器技术、嵌入式测控技术、微机电系统等结合起来获取信息和处理模式有了新的变化。 现在控制领域正进行一场网络化信息化的突破与更新,国际上各大工业自动化公司也正在推出新一代的控制系统,我国在工业控制系统方面落后于西方发达国家,要想赶上世界先进水平就必须发展自己的工 业控制网络并开发相应的高层协议和应用软件。而嵌入式网络控制器正是构成此网络的核心,因此开发一个既有专用性又有一定通用性,并兼具以太网的多功能嵌入式网络控制器,在此基础上研究网络协议和应用软件,并搭建新型的网络平台,对建立我国自己的控制体系将具有巨大的意义 4。 1.2 国内外研究的现状 嵌入式系统与 Internet 网络的互联,已经成为嵌入式系统的发展方向。但由于网络协议比较复杂,而嵌入式系统的资源又很有限,这极大的制约了嵌入式系统网络化的进程。要解决这一问题,就要使用更高性能的嵌入式微处理器。考虑到现有芯片的性能和价格,因此研究的重点就放在芯片,而 TCP/IP 协议是以 PC 机、服务器为应用平台的,协议复杂,功能强大,这与嵌入式系统以满足应用为目的,对实时性要求较高相一致。 为实现控制网络和信息网络的结合以及解决现场总线所带来的问题,譬如,多种现场总线并存 的问题 ,到目前为止,现场总线还没有形成真正统一的标准, PROFIBUS、 CANBUS、 CC-Link等多种标准并行存在,并且都有自己的生存空间。何时统一,遥遥无期。目前,支持现场总线的仪表种类还比较少,可供选择的余地小,价格又偏高,用量也较小。 因此 国内外学者开始探讨各种解决方法,国际上各个厂商也开始尝试将信息网络中的以太网技术和现场总线网络相结合。例如北美最大的自动化供货商罗克韦尔自动化公司推出了世界领先的工业网络平台方案,即三层网络结构:以太网、控制网和设备网。 目前,有关工业控制器的研究正如火如荼。 2004年 sensory推出低成本、高精确度的语音识别芯片 RSC-4x系列。 RSC-4x不仅可提供通用嵌入式控制器应用的西安工程大学本科毕业设计(论文) 3 单芯片解决方案,而且还增添了语音和音乐合成,以及语音识别功能。 RSC-4x可以在噪音环境和接收大量语言词汇的情况下保持优异的性能 ,此外还可以在3K-64Kbps的速率范围内提供高质量的语音合成。 RSC-4x采用一个带有 DSP辅助引擎的 MCU,独特的低功耗音频唤醒模式允许芯片通过外界提示音转入工作模式,而无需手动操作。近期, ARC Group又提出融会了 PC和 PLC的优点的 PAC概念。这方面国内以泓格科技的 PAC系列为代表。时下最常见的控制器包括:可编程逻辑控制器、以单片机为核心的控制器、 PC Based的控制器和采用 DSP、 ARM等高性能微处理器的嵌入式控制器。目前常用的可编程逻辑控制器仍以国外产品为主,包括西门子、欧姆龙等。他们通 常使用其专存的现场总线。尽管现场总线的技术已经成型,但现场总线的功能单一和实现标准的不统一,使得我们在不同的现场环境下需要使用不同类型的现场总线,多类型现场总线的选择又使得整个控制系统显得相当混乱,而且现场总线类型的选择本身也是个棘手的问题 。而且上市的众多国产的 PLC产品中,还没有形成规模化的生产和名牌产品,甚至还有一部分是以仿制、来件组装或“贴牌”方式生产,迫切需要研究具有完全自主知识产权的工业控制器,以提高我国工业自动化产品的国际竞争力。 然而, PC Based控制器虽功能丰富,但多数体积偏大,而且价 格不菲。基于 DSP, ARM等高性能微处理器的嵌入式控制器是当前的研究热点。上海海得控制系统股份有限公司开发的 HT2000专用控制器,采用 DSP, FPGA等技术,实现了电气传动、联网通讯和 Internet远程监控一体化,适用于锅炉、空调、电梯和机械设备等各种工业控制器和数采监控终端的应用。烟台中正新技术有限公司开发了WELLSYS,采用 NSGXl-300CPU,内置 64MB内存、 64MB用户存储器 (CF卡 ),外接 IO 。 4寸 TFT真彩屏,带触摸屏, 1个 RJ-45, 10 100M以太网口, 1个并口, 2个 USB口, 2个 RS232口, 1个 RS485。济南正平自动设备有限公司生产的 XPC系列的控制器,功耗低、采用高级语言 C语言编程,最大程序容量 512K,数据容量 512K(带电池备份 )支持工业以太网,功能强大,支持实时多任务,可通过 Internet远程操作维护,支持 TCP IP等众多通讯协议,支持 CDMA Ix, GPRS, ADSL, PSTN,电台等通讯方式,带有多种通讯接口,支持 MODBUS等国际通用现场总线标准 Il型。 分析以上现有嵌入式控制器,面对应用现场环境多种网络并存的局面,本文设计的嵌入式网络控制器具备以太网 口等多种网络接口。该嵌入式网络控制器采西安工程大学本科毕业设计(论文) 4 用了高性能的微处理器 STM32F103ZET6,不但提高了工业控制系统的实时性,还可以方便多媒体功能的进一步扩展。基于该嵌入式网络控制器的自动控制系统能够实现以太网和现场控制网络的无缝连接,节省了相关的网络设备,降低了系统成本。 1.3 课题来源及研究内容 本设计以水利行业为背景,将嵌入式网络控制器用于到水利行业,对水文信 息(如水位、流量)进行采集,处理、存储,将水文数据通过网络传输到远程 PC机上,实现远程监控。 我国是一个江湖众多的国家,但是由于受季风气候的影 响,降水的时空分布很不均匀,各大江河流域洪涝灾害发生较为频繁 ,所以研究水利工程中水位,流量等物理量意义重大。 而以往水位的检测是由人工完成的,值班人员全天候地对水位的变化进行监测,用有线电话及时把水位变化情况报知主控室,然后主控室再开动电机进行给排水。 5很显然上述重复性的工作无论从人员、时间和资金上都将造成很大的浪费,同时也容易出差错,因此 本文就水位和流速进行研究,利用传感器采集信息反馈给网络控制器,再于 PC 机相连,缩短反馈周期,控制器集成 TCP IP协议的以太网接口,可与远程控制中心服务器通过以太网进行 数据交换,实现以太网功能,使数据信息能有效的反馈和利用。 针对目前水利枢纽问题和需要,本课题主要设计与实现一款兼有以太网和多种控制接口的嵌入式网络控制器,并以此为基础实现网络化的嵌入式数控系统。嵌入式网络控制器外接触摸屏,只需点击触摸屏就可实现图形化显示与控制,过程可视,管控一体,具有权限管理,报警设定,事件记录,历史数据,趋势曲线等功能。这样使控制器功能更加丰富,任何一个控制器都可以设置为监控中心,使操作人员在任何一个控制节点都能够方便自如地对整个系统进行监控。 本文实现的基于嵌入式网络控制器的控制系统, 以控制器为中心,能够将现场模拟信号,如水位、流量等,通过现场传感器等测控设备的数据采集,利用控制器以太网接口功能,实现控制器与控制中心服务器的 TCP IP协议网络通信。监控中心通过控制器对水利设施监控,能够进行系统数据管理等工作。实现网络冗余控制,提高了系统可靠性。采用 TCP IP协议通信便于实现网络管理和远程西安工程大学本科毕业设计(论文) 5 维护。同时与 Internet 的无缝连接,也为实现远程监控降低了系统成本。 课题研究主要内容如下 : (1)对现有的嵌入式网络控制器的方案进行了比较。选择了意法半导体公司生产的 STM32F103ZET6 高 性能嵌入式处理器为核心,针对嵌入式网络控制器需要的各个功能进行方案分析与器件选型,配合硬件同学的设计了解开发环境 KeiluVision和软件设计流程 。 (2)深入研究 TCP IP协议的基础上掌握通讯基础知识,完成了嵌入式网络控制器基于以太网的通信。 (3)配合硬件同学的设计,组建外部设备使网络控制器与上位机相连,通过以太网初步实现通信及远程控制。 1.4 论文的计划及时间安排 第 1 周 提出论文基本要求,及主要任务 第 2 周 针对论文所需文献进行了解和资料的搜集 第 3 周 提出开题报告,完成报告的初步设计 第 4 5 周 完善并提交开题报告 第 6 7 周 初步确定设计方案,熟悉相关仪器设备及软件环境 第 8 周 向导师介绍相关论文及研究课题, 确定设计方案,画出系统框图 第 9 12 周 完成编程,完善设计并进行调试 第 12 16 周 设计总结,撰写论文 第 16 18 周 答辩准备 西安工程大学本科毕业设计(论文) 6 第 2 章 嵌入式网络控制器总体设计 2.1 功能需求 随着控制设备的网络功能要求越来越高,控制设备具有 Internet 接入功能,能够支持 TCP IP 以及其他 Internet 协议,采集数据通过网络传送到服务器的数据库中,使用户通过计算机 查看设备状态、设备参数,监控某些数据等功能,以达到远程监控信息共享的目的。此外,网络控制器还应该配有显示等功能,以便工作人员管理设备和监测数据。具体来说,网络控制器的主要需求有以下几个方面 。 2.1.1 数据采集和处理 本文主要检测的水文信息为水位和流量,其中水位选择的传感器为古大雷达水位计,流量采用的是超声波明渠流量计。通过传感器数据的采集,经过一定的处理后经过通信信道,把数据传送至中心站,嵌入式网络控制器配有大容量数据存储器,可将数据按时间顺序存入。 其中数据采集分为事件触发采集和定时采集。 事 件触发采集是对于事件类传感器(如雨量传感器等), 由传感器的输出信号触发工作,并对该数据进行计数。定时采集是对于码盘编码输出、或 SDI-12 智能传感器(如水位、流量、水质等),网络控制器以设定的周期采集传感器数据。周期设定范围 1 360 分钟。( 1、 2、 3、 4、 5、 6、 10、 15、 20、 30、 60、 120、180、 240、 360)。本设计采用的是定时采集的方式,采样间隔时间可以人为设置。 采集数据的周期还可以分为普通采集周期和应急采集周期两种。 普通采集周期:在大部分时间里,传感器数据处于安全范围 以内,数值变化也较为缓慢,此时可以采用较长的周期采集传感器数据,以节约耗电、节省内存等。 加密采集周期:在紧急情况(如水位超越警戒线),遥测站自动转入加密测量方式,以较短的周期采集传感器数据,以捕捉传感器数据过程。 普通采集周期和加密采集周期可根据需要配置。 I/O 接口能力应该包括数字量输入输出通道,模拟量输入通道,开关量输出西安工程大学本科毕业设计(论文) 7 通道。其中模拟量的输入作为传感器信号的输入通道,最为重要。 数据处理就是将采集到的原始数据经过一定计算转换为我们要测量的参数值。需要处理的数据包括电压、温度、水位、流量。 2.1.2 以太网通信 目前 , 随着互联网技术的发展 , 越来越多的测控设备已将以太网接入功能作为其默认配置来实现设备的远程监控和信息分布式处理。而此前设计人员在为远程控制或监控系统提供应用接入时 , 可选择的以太网控制器都是专为个人计算机系统设计的 , 这些控制器既复杂、又占用较大的空间 , 且比较昂贵。此外 , 大部分以太网控制器采用的封装均超过 80 引脚。而本文介绍的以太网控制芯片ENC28J60则符合 IEEE 802.3协议 ,可通过 SPI接口与主控制器通讯 , 因而可大大简化相关设计 , 减小占板空间 , 从而可为嵌入 式应用提供低引脚数、低成本且高效易用的远程通讯解决方案。本文介绍的就是一种基于 ENC28J60 的网络控制器的以太网通信。 2.1.3 其他功能和需求 1、显示 为了降低功耗网络控制器的 LED 显示可为闪烁方式,或者显示时才将其点亮的间歇工作方式。在有液晶显示的时候,管理人员可以查询采集到的各种数据,检查设备的工作状态,可以对终端的工作方式和参数进行设置,一个友善的人机界面,对系统的管理和维护都很方便。 触摸屏选择北京迪文科技有限公司生产的DMG32240S035_01WT,其分辨率为 320 240,工作温度范围为 20 70,工作电压 5V,该模块支持多语言、多字体、任意大小的文本显示,支持用户自行设计的字库。 2、输入输出接口 网络控制器具有下列三类接口,即与传感器的接口,与通信设备的输入输出接口以及电源接口。通信接口,一般按 RS232,RS485 设计。 RS232 口多用于和调制解调器以及各种数字终端相连,以完成测报系统的数据传输工作。 RS485 大多用于和智能传感器相连。 I2C,SPI 等接口也可根据需要设计使用。 随着通信方式的多样化和稳定性的要求,网络控制器最好能配备三个以上的通信接口, 且可西安工程大学本科毕业设计(论文) 8 对每一个接口灵活编程。各种通信介质的通信协议最好按照模块化的方法装入终端设备中,这样在使用的时候只需要做简单的配置即可。 3、数据存储 网络控制器需要配置大容量非易失性数据存储器,可根据需要存储采集数据或上报数据,并可通过远程读取。每当产生一个新的上报数据,该数据与上报时间都要存入内部的非易失性存贮器内,所存贮的数据带时标(年月日时分)。 测报数据按时间顺序存贮,并按一定的时间段(如一天时间)组织存放,以便于检索。 根据需要,可远程读取所存贮的数据,或者操作人员到现场下载所存贮的数据。当非易失存 贮器存满后,新的测报数据可覆盖最早的测报数据。 2.2 设计原则 在环境较复杂,信息传输距离远的因素下,嵌入式网络控制器在芯片和元器件的选择上不仅要考虑耐用性和普遍性,还需要遵循以下原则 ( 1)低功耗原则 芯片的正常工作不仅需要稳定可靠的电源,不同的芯片还经常需要不同的电压,因此系统的功耗成为一个严格的要求。设计的网络控制器必须满足低功耗原则,要有良好的电源管理系统,使控制器芯片大部分时间工作于休眠状态。在满足基本功能的前提下选用性价比较优、功耗较低的芯片,以减轻电源负担,降低功耗。 ( 2)可靠性 原则 可靠性是网络控制器的重要指标,因为控制器采集的信息要通过远距离传输,因此选用高可靠性的微控制器和元器件,保证控制器在传输的过程中能正常运行。其次,设计可靠的方案没有过压、过流等现象,以保证控制器的可靠运行。 ( 3)可拓展性原则 为实现系统灵活的可扩展性应采用模块化设计的方法,复杂的功能依靠若干模块的组合来完成,每个模块仅具有简单的功能。扩展能力和通信扩展能力是最主要的两个指标,在接口上可以通过增加串行接口实现。 ( 4)经济性原则 在满足所需功能的 前提下,系统越简单,价格也越便宜。一个好的网络控制西安工程大学本科毕业设计(论文) 9 器在经济上一定要是最合理的,而不一定是最先进最复杂的。网络控制器设计时要考虑性价比,功能模板的微控制器应选用通用型号以满足经济性的要求,元器件的选型也应在兼顾可靠性的同时兼顾经济性。 2.3 系统总体结构设计 本设计的硬件总体框图如图 2-1所示。主要分为电源管理模块 , A/D转换模 块, 数据存储 模块, 以太网接口模块 ,液晶显示屏 模块 。传感器选用的是古大雷达水位计测水位,用超声波明渠流量计测流量,主芯片控制模块采用意法半导体公司生产的 超低功耗 32位 STM32F103ZET6, A/D采集模块采用 ADS1110 加 CD4051的方法,扩展 8 路 16 位 A/D, 数据存储模块选用的是铁电随机存储 FM24C16 和FLASH 存储器 AT45DB161B, 以太网接口模块采用 SPI 接口的 ENC28J60 以太网控制器实现 10M的以太网功能, 显示模块采用的是迪文串口屏进行显示。 配合硬件设计的同学,使系统与上位机之间通过以太网实现实时通信及远程控制。 图 2-1 总体设计方案框图 2.4 论文写作提纲 本论文基于嵌入式网络控制器,通过系统的数据采集,处理、存储、显示 为一体来监测水位,流量等物理量,达到以太网实时通信及远程控制。 RJ45 接口 网络控制器 传 感 器 微 处 理 器 2 路 RS232 1 路 RS485 显 示 上 位机 开关量的输出 数字量的输入 /出 模 拟 量 的 输 入 A/D 转换 存 储 西安工程大学本科毕业设计(论文) 10 (1)第一章绪论部分介绍课题的来源、研究课题背景及意义、国内外研究状况,最后提出进度安排情况。 (2)第二章介绍了网络控制器的功能需求及设计原则和系统总设计方案。 (3)第三章介绍系统的硬件设计及实现方法。 (4)第四章介绍了基于 TCP/IP实现以太网实时通讯及远程控制。 (5)第五章介绍系统的软件设计及实现方法。 (6)第六章总结和展望对该设计的应用及 本论文的研究内容和存在的不足之处 做总结。 西安工程大学本科毕业设计(论文) 11 第 3 章 硬件电路的设计 由系统设计总框图可以看出硬件电路的总体设计,该系统的主体控制芯片STM32F103ZET6,其余各支路电路分别为:电源电路、数据采集、 A/D 转换电路、存储电路、显示电路、以太网接口电路。本章将对核心元件以及各支路电路作简略介绍。 3.1 微控制器 STM32F103ZET6 简介 本课题设计的嵌入式网络控制器其主芯片是由意法公司设计生产的STM32F103ZET6 高性能微处理器,其系统构架是由四个驱动单元 和四个被动单元构成 ;驱动单元: Cortex-M3内核、 DCode总线、系统总线和通用 DMA1、 DMA2。被动单元:内部 SRAM、内部闪存存储器、 FSMC、 AHB到 APB的桥。 STM32F103ZET6 使用高性能的 ARM Cortex-M3 32 位的 RISC 内核,工作频率为 72MHz,内置高速存储器 (高达 512K 字节的闪存和 64K 字节的 SRAM),STM32F102ZET6还带有 4个片选的灵活的静态存储器。支持 CF卡、 SRAM、 PSRAM、NOR和 NAND存储器。具有 LCD接口,兼容 8080/6800 模式。 能匹配更多的外部设备具有强大的通用性丰富的增强 I/O 端口,所有 I/O 口都可以映像到 16 个外部中断且可以容忍 5V 信号输入,大大增强了耐压性能。联接到两条 APB 总线的外设,丰富的增强 I/O 端口和联接到两条 APB 总线的外设,而且包含 2 个 12 位的ADC、 4 个 16 位定时器和一个 PWM 定时器,还包含标准和先进的通信接口:多达2 个 I2C 和 SPI、 3 个 USART、一个 USB 和一个 CAN。 STM32F103ZET6 支持三种低功耗模式,可以在低功耗、短启动时间和多种唤醒事件之间达到最佳的平衡。 1 DMA 灵活的 7路通用 DMA可以管理存储器到存储器、设备到存储器和存储器到设备的数据传输; DMA 控制器支持环形缓冲区的管理,避免了控制器传输到达缓冲区结尾时所产生的中断。每个通道都有专门的硬件 DMA请求逻辑,同时可以由软件触发每个通道;传输的长度、传输的源地址和目标地址都可以通过软件单独设置。 DMA可以用于主要的外设: SPI、 I2C、 USART、通用和高级定时器 TIMx和 ADC。 RTC(实时时钟 )和后备寄存器 西安工程大学本科毕业设计(论文) 12 RTC 和后备寄存器通过一个开关供电,在 VDD 有效时该开关选择 VDD 供电,否则由 VBAT管脚供电。后备寄存器 (10个 16 位的 寄存器 )可以用于在 VDD消失时保存数据。实时时钟具有一组连续运行的计数器,可以通过适当的软件提供日历时钟功能,还具有闹钟中断和阶段性中断功能。 RTC 的驱动时钟可以是一个使用外部晶体的 32.768kHz 的振荡器、内部低功耗 RC振荡器或高速的外部时钟经 128分频。内部低功耗 RC 振荡器的典型频率为 32kHz。为补偿天然晶体的偏差, RTC的校准是通过输出一个 512Hz的信号进行。 RTC具有一个 32位的可编程计数器,使用比较寄存器可以产生闹钟信号。有一个 20 位的预分频器用于时基时钟,默认情况下时钟为 32.768kHz 时它将产生一个 1秒长的时间基准。 通用定时器 (TIM1) STM32F103ZET6 内置了多达 3个同步的标准定时器。每个定时器都有一个 16位的自动加载递加 /递减计数器、一个 16位的预分频器和 4个独立的通道,每个通道都可用于输入捕获、输出比较、 PWM 和单脉冲模式输出,在最大的封装配置中可提供最多 12 个输入捕获、输出比较或 PWM 通道。它们还能通过定时器链接功能与高级控制定时器共同工作,提供同步或事件链接功能。在调试模式下,计数器可以被冻结。任一标准定时器都能用于产生 PWM输出。每个定时器都有独立的 DMA请求机制 。 高级控制定时器 (TIM1) 高级控制定时器 (TIM1)可以被看成是一个分配到 6 个通道的三相 PWM 发生器,它还可以被当成一个完整的通用定时器。四个独立的通道可以用于: 输入捕获 输出比较 产生 PWM(边缘或中心对齐模式 ) 单脉冲输出 反相 PWM输出,具程序可控的死区插入功能配置为 16位标准定时器时,它与 TIM1定时器具有相同的功能。配置为 16位 PWM发生器时,它具有全调制能力 (0100%)。在调试模式下,计数器可以被冻结。很多功能都与标准的 TIM定时器相同,内部结构也相同,因此高级控 制定时器可以通过定时器链接功能与 TIM定时器协同操作,提供同步或事件链接功能。 西安工程大学本科毕业设计(论文) 13 如图 3-1所示为 STM32F103FVET6电路连线图及外围电路: 图 3-1 STM32F103FVET6 电路连线图及外围电路 3.2 电源电路设计 电源电路采用的是芯片 AMS1117,本课题需要用 AMS1117( 5.0)将 12V 转变为 5V,再用俩个 AMS1117(3.3)将 5V 转变为 3.3V,其中一路模拟电源,一路数字电源。 AMS1117 是一个低漏失电压调整器,它的稳压调整管是由一个 PNP 驱 动的NPN管组成的 ,漏失电压定义为: VDROP=VBE+VSAT。 AMS1117有固定和可调两个版本可用,输出电压可以是: 1.8V, 3.3V 和 5.0V。片内过热切断电路提供了过载和过热保护,以防环境温度造成过高的结温,其中过流保护和过热保护模块,能够在应用电路的环境温度大于 120以上或负载电流大于 900mA 时,保证芯片和系统的安全。为了确保 AMS1117的稳定性,对可调电压版本,输出需要连接一个至少 22 F的钽电容。对于固定电压版本,可采用更小的电容,具体可以根据实际应用确定。通常,线性调整器的稳定性随着 输出电流增加而降低。如图 3-2所示为 AMS1117电路连线图。 西安工程大学本科毕业设计(论文) 14 图 3-2 AMS1117 电路连线图 3.3 A/D 转换电路的设计 A/D 转换模块采用的 是精密的连续自校准模 /数转换器 ADS1110,其 带有差分输入和高达 16 位的分辨率 ,封装为小型 SOT23-6 片内 2.048V 的基准电压 ,提供范围为 2.048V 的输入差分电压 ,ADS1110 使用可兼容的 I2C串行接口在 2.7V 至5.5V 的单电源下工作 ,ADS1110 可每秒采样 15 30 60 或 240 次以进行转换片内可编程的增益放大器 ,PGA 提供高达 8 倍的增益 ,并且允许以高分辨率对较小的信号进行测量 ,在单周期转换方式中 ADS1110 在一次转换 ,之后自动掉电在空闲期间极大地减少了电流消耗 。 ADS1110 以两种方式中的一种工作,连续转换和单周期转换在连续转换方式中 ADS1110,连续地进行转换 ,一旦转换完成 ADS1110,即将结果置入输出寄存器并立即开始另一轮转换在单周期转换方式中, ADS1110,会等待直到转换寄存器中的 ST/ DRDY 位被置位为 1,此时 ADS1110 上电并且工 作在单周期转换方式下,在转换完成之后, ADS1110将结果置入输出寄存器中,复位 ST/ DRDY 位为0 并掉电,当转换正在进行时写 1 到 ST/DRDY,没有影响在从连续转换方式切换到单周期转换方式时 ADS1110将完成当前转换复位 ST/DRDY位为 0 并掉电。 ADS1110 有两个寄存器 它们可通过 I2C 端口访问 输出寄存器包含上一次转换的结果 配置寄存器允许用户改变 ADS1110 的工作方式并查询器件的状态。 输出寄存器 16位的输出寄存器包含上一次转换的结果,该结果采取二进制 2的补码格式,在复位或上电之后,输出 寄存器被清零,并保持为 0直到第一次转换完成,输出寄存器的格式如表 3-1所示。 西安工程大学本科毕业设计(论文) 15 表 3-1 输出寄存器 BIT 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 NAME D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 配置寄存器 用户可用 8 位配置寄存器来控制 ADS1110 的工作方式 ,数据速率和可编程增益放大器 PGA 的设置 ,配置寄存器的格式如表 3-2所示 ,默认设置是 8CH。 表 3-2 配置寄存器 ADS1110电路连线图如图 3-3所示: 图 3-3 ADS1110 电路连线图 3.4 存储电路设计 系统的存储模块包括 SDRAM 和 ROM 两部分。在嵌入式系统中, ROM 是一种可进行电擦写,掉电后信息不会丢 失的存储器,用于存放程序代码、常量表以及一些系统掉电后需要保存的用户数据等。 SDRAM 是系统的内存,它不具有掉电保持数据的特性,但其存取速度大大高于 Flash 存储器,在系统中主要用作程序的运行空间、数据及堆栈区。当系统启动时, CPU 首先从复位地址 (一般是 0X00000000地址 )读取启动代码,在完成系统的初始化后,程序代码被调入 SDRAM 中运行以提高系统的运行速度。本系统采用 2048*8 位 的 FM24C16 和 AT45DB161D Flash相结合,完成系统存储电路的设计。 BIT 7 6 5 4 3 2 1 0 NAME ST/DRDY 0 0 SC DR0 DR0 PGA1 PAG0 DEFAULT 1 0 0 0 1 1 0 0 西安工程大学本科毕业设计(论文) 16 3.4.1 FM24C16 介绍 一、 16K位的非易失性铁电随机存储器 1).组织结构为 2048*8位 2).读写寿命为 100亿次 3).掉电数据保存 10年 4).写数据无延时 5).高可靠性铁电晶体 二、快速两线串行协议 1).总线速度可以达到 400KHZ 2).硬件上可以直接替换 EEPROM 三、低功耗操作 1).工作电压为 5V 2).工作电流为 150uA 3).待机电流 10uA 工业温度 四、 FM24C16读写操作 FM24C16 是通过 I2C 总线接口进行读写操作,且通过对第脚 (WP)的电平控制,可实现写保护功能。当该引脚为低电平 时,正常写操作;为高电平时,对FRAM部分存储区域提供硬件写保护功能,即对被保护区域只能读,不能写。时钟线 (SCL)和数据线 (SDA)通过上拉电阻拉至高电平。“开始”和“停止”条件决定了数据传输的开始和停止。当时钟线为高时数据线发生下跳变为起始条件 (S);而当时钟线为高时数据线发生上跳变为停止条件 (P)。 根据 I2C 总线协议,每个从器件都有一个器件地址,从器件地址的最低位作为读写控制位“ 1” 表示对从器件进行读操作“ 0”表示对从器件进行写操作。在CPU 发送起始信号和从器件地址字节后, FM24C16 监视总线 并当其地址与发送的地址相符时响应一个应答信号(通过 SDA 线)。然后在根据读写控制位( R/W)的状态进行读或写操作。最后由 CPU产生停止条件结束操作。综合起来, FM24C16读写操作过程可概括为: 1).主器件 CPU 发送起始条件 西安工程大学本科毕业设计(论文) 17 2).主器件发送一字节的寻址 FM24C16 的地址信息 3).主器件接收 FM24C16发出的确认信号 4).主器件发送字节地址,主器件接收 FM24C16发出的另一个确认信号 5).若为写操作,主器件发送数据到被寻址的单元, FM24C16向主器件发送确认信号;若为读操作,主器件重新发送 起始条件和 FM24C16地址,此时 R/W位置“ 1”, FM24C16发出确认信号后,输出一字节数据 6).主器件发送结束条件。 FM24C16电路连线图如图 3-4所示: 图 3-4 FM24C16 电路连线图 3.4.2 AT45DB161D 介绍 AT45DB161D是一款 2.5V或 2.7V,串行接口的 FLASH存储器,是各种数字语音,图像,程序代码和数据存储应用的理想选择。 AT45DB161D 支持 Rapids 串行接口,适用于 要求高速操作的应用。 Rapids 串行接口兼容 SPI,最高频率可达66MHz。 AT45DB161D 的存储容量为 17,301,504 位,组织形式为 4,096 页,每页512或 528页。 除了主存储器外, AT45DB161D 还包含 2 个 512/528 字节的 SRAM 缓冲区。缓冲区允许在对主存储器的页面重新编程时接收数据,也可写入连续的数据串。通过独立的 “ 读 -改 -写 ” 三步操作,可以轻松实现 EEPROM 仿真(可设置成位或字节)。 Data Flash 通过 Rapids 串行接口顺序访问数据,而不像传统 FLASH 存储器那样通过复用 总线和并行接口随机存取。 AT45DB161D电路连线如图 3-5所示: 西安工程大学本科毕业设计(论文) 18 图 3-5 AT45DB161D 电路连线图 3.5 显示电路设计 触摸屏选择北京迪文科技有限公司生产的 DMG32240S035_01WT,其分辨率为320 240,工作温度范围为 20 70,工作电压 5V,该模块支持多语言、多字体、任意大小的文本显示,支持用户自行设计的字库; 128MB 存储器,支持 USB高速图片下载更新,图形功能完善;支持触摸屏和键盘,并具 有触摸屏漂移处理技术,内嵌拼音输入法、数据排序等简单算法处理。如图 3-6所示为触摸屏的电路连线图。 图 3-6 触摸屏的电路连线图 3.6 以太网电路设计 本课题在网络传输模块设计中,采用了 ENC28J60 作为以太网控制器芯片,它是 Microchip 公司推出的最大传输速率 10Mbit/s 的 SPI 接口以太网控制器,内置 10Mbit/s 以太网物理层器件及介质访问控制器,可按以太网协议可靠的收发信息包里的数据。 11 ENC28J60通过 SPI接口和 STM32F103ZET6的 PB12,PB13,PB14,PB15管脚相连接 ,PB12,PB13,PB14,PB15 可通过软件设置为 SPI接口。网络的 4个引脚通过网络隔离器连接到网络接口, 2 个中断引脚与微处理器的通用 I/O 口相联, 2 个指示灯引脚外接发光管连接到 3.3V电源以显示网络输出传输的状态。 3.6.1 寄存器的构成 ENC28J60 中所有的存储器都是以静态 RAM 的方式实现的。 ENC28J60 中有西安工程大学本科毕业设计(论文) 19 三种类型的存储器: 1) 控制寄存器 2) 以太网缓冲器 3) PHY 寄存器 控制寄 存器类存储器包含控制寄存器( Control Register, CR)。它们用于进行 ENC28J60 的配置、控制和状态获取。可以通过 SPI 接口直接读写这些控制寄存器。以太网缓冲器中包含一个供以太网控制器使用的发送和接收存储空间。主控制器可以使用 SPI接口对该存储空间的容量进行编程。只可以通过读缓冲器和写缓冲器 SPI 指令来访问以太网缓冲器。 PHY 寄存器用于进行 PHY 模块的配置、控制和状态获取。不可以通过 SPI 接口直接访问这些寄存器,只可通过 MAC 中的 MII ( Media Independent Interface)访问这些寄存器。 3.6.2 控制寄存器 控制寄存器提供主控制器和片内以太网控制器逻辑电路之间的主要接口。写这些寄存器可控制接口操作,而读这些寄存器则允许主控制器监控这些操作。 控制寄存器存储空间分为四个存储区,可用 ECON1 寄存器中的存储区选择位 BSEL1:BSEL0 进行选择。每个存储区都是 32 字节长,可以用 5 位地址值进行寻址。所有存储区的最后五个单元 ( 1Bh 到 1Fh)都指向同一组寄存器: EIE、EIR、 ESTAT、 ECON2 和 ECON1。它们是控制和监视 器件工作的关键寄存器,由于被映射到同一存储空间,因此可以在不切换存储区的情况下很方便地访问它们。本节稍后将讨论 ECON1 和 ECON2寄存器。 有些地址未使用。对这些单元执行写操作将被忽略,而读操作都将返回 0。每个存储区中地址为 1Ah 的寄存器都是保留的;不应对此寄存器进行读写操作。可以读其他保留的寄存器,但是不能更改它们的内容。在读写包含保留位的寄存器时,应遵守寄存器定义中声明的规则。 ENC28J60 的控制寄存器通常被分为 ETH、 MAC 和 MII 三组寄存器。名称由“ E”开头的寄存器属于 ETH 组 。同样,名称由“ MA”开头的寄存器属于 MAC 组,名称由 “ MI”开头的寄存器属于 MII 组。 3.6.3 以太网缓冲器 西安工程大学本科毕业设计(论文) 20 以太网缓冲器包含供以太网控制器使用的发送和接收存储器。该缓冲器大小为 8 KB,分成单独的接收和发送缓冲空间。主控制器使用 SPI 接口可以对发送和接收存储器的容量和位置进行编程。包括了接收缓冲器,发送缓冲器,读写缓冲器和 DMA 访问缓冲器。 3.6.4 PHY 寄存器 PHY 寄存器提供 PHY 模块的配置和控制功能,以及操作的状态信息。所有PHY 寄存器都为 16 位宽。共有 32 个 PHY 地址单元,但只可使用其中的 9 个。对未用单元的写操作无效,而读操作将返回 0。所有保留单元应写为 0,当读取时其内容被忽略。 与 ETH、 MAC 和 MII 控制寄存器或缓冲器不同, PHY寄存器不能通过 SPI 控制接口直接访问,而是通过一组带有 MIIM ( Media Independent Interface for Management)的特殊 MAC 控制寄存器来访问的。这些控制寄存器被称为 MII 寄存器。 1.读 PHY 寄存器读 PHY 寄存器可以获取其完整的 16 位值。 要 读 PHY 寄存器: 1)将要读取的 PHY 寄存器的地址写入 MIREGADR寄存器。 2)将 MICMD.MIIRD 置 1 开始读操作,同时 MISTAT.BUSY 位置 1。 3)等待 10.24 s。查询 MISTAT.BUSY 位以确定操作是否完成。当忙时,主控制器不应开始任何 MIISCAN 操作或写 MIWRH 寄存器。当 MAC 得到寄存器内容时, BUSY 位会自动清零。 4)将 MICMD.MIIRD 位清零。 5)从 MIRDL 和 MIRDH 寄存器中读取所需数据。先读哪一个寄存器都可 以。 2写 PHY 寄存器当写 PHY 寄存器时,将一次写入全部的 16 位数据,不能对位进行写操作。如果只需要重新编程寄存器中的某几位,控制器必须首先读 PHY 寄存器,修改读到的数据,然后将数据写回 PHY 寄存器。 要写 PHY 寄存器: 西安工程大学本科毕业设计(论文) 21 1)将要写入的 PHY 寄存器的地址写入 MIREGADR寄存器。 2)将数据的低 8 位写入 MIWRL 寄存器。 3) 将数据的高 8位写入 MIWRH寄存器。对 MIWRH寄存器的写操作会自动启动 MII 事务,所以必须在写入 MIWRL 后才能写入该寄存器。 MISTAT.BUSY 位置 1。在 MII 操作完成后写 PHY 寄存器,用时 10.24 s。当写操作完成后, BUSY 位将自动清零。在忙时主控制器不应开始 MIISCAN 或 MIIRD 操作。 3 扫描 PHY 寄存器 可将 MAC 配置为对 PHY 寄存器自动执行背对背读操作。在需要周期性更新状态信息的情况下,能极大地降低主控制器的复杂度。 要执行扫描操作: 1)将要读取的 PHY 寄存器的地址写入 MIREGADR寄存器。 2)将 MICMD.MIISCAN 位置 1,开始扫描操作,同时 MISTAT.BUSY 位置 1。在 10.24 s 后完成第一次读操作。以相同的时间间隔完成后续的读操作,直 到 操 作 被 取 消。可 以 通 过 查 询 MISTAT.NVALID 位来确定第一次读操作完成的时间。 在将 MIISCAN 位置 1 后,每经过 10.24 s 均会自动更新 MIRDL 和 MIRDH寄存器。没有状态信息可显示 MIRD寄存器被更新的时间。因为主控制器通过 SPI 一次只能读一个 MII 寄存器,所以不能说是同时通过 PHY 读取 MIRDL 和 MIRDH 的值。 当进行 MIISCAN 操作时,禁止主控制器写 MIWRH 或开始 MIIRD 操作。可以通过将 MICMD.MIISCAN 位清零先取消 MIISCAN 操作,然后查询 MISTAT.BUSY 位。在 BUSY 位清零后可开始新的操作。 ENC28J60 电路连接图如图 3-7所示: 图 3-7 ENC28J60 电路连线图 西安工程大学本科毕业设计(论文) 22 3.7 温度采集电路设计 DS18B20温度传感器是美国 DALLAS半导体公司推出的一种改进型智能温度传感器,最大分辨率可达 0.0625摄氏度。 DS18B20 可以直接读出被测温 度值, 测温范围 -55 +125,以 0.5递增, 而且采用了线制与单片机相连, 独特的单线接口仅需一个端口引脚进行通信,无需外部器件 减少了外部的硬件电路,而且零待机功耗具有低成本和易使用的特点。本课题 DS18B20主要测量实验板的状态量,监控实验板的温度,其 DS18B20电路连接图如图 3-8所示: 图 3-8 DS18B20 电路连接图 西安工程大学本科毕业设计(论文) 23 第 4 章 TCP/IP 通信协议 国际标准化组织发展和制定了一个有助于开发和理解计算机的通讯模型,即OSI (Open System Interconnection,开发系统互联 ) 参考模型。 OSI 参考模型中定义了七个协议层,从下到上依次是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。 OSI 参考模型并没有真正地在实际中被应用,而非国际标准的 TCP/IP 却得到了广泛的应用,成为计算机通讯事实上的国际标准。TCP/IP 起源于 20 世纪 60年代末美国政府资助的一个分组交换网络研究项目,到 20 世纪 90 年代已发展成为计算机间最主要的通信协议,是 Internet 最基本的协议 TCP/IP 作为一种网络工业标准,与 OSI 模型不一样,它有着自己的网络体系结构。 TCP/IP 是一个四层的体系结构,由下至上依次是网络接口层、网络层、传输层、应用层(如图 4-1)每一层负责的功能不同。网络接口层对应的是网络的硬件部分,是 Internet 的物理构成,包括设备驱动程序和网卡接口等,处理传输媒介的物理接口细节,包含的协议有: ARP(Address Resolution Protocol, 地址解析协议 ) 和 RARP(Reverse Address Resolution Protocol,逆地址解析协议 )。网络层定义了互联网 传输的报文的格式,为分组交换网上的不同主机提供通信 ,包括的协议有 IP、 ICMP(Internet Control Message Protocol 因特网报文控制协议 ) 、 IGMP(Internet Group Management Protocol,以太网组管理协议 )。传输层为主机上的应用程序提供端到端的通信,包含两个不同的通信协议:TCP 和 UDP(User Datagram Protocol,用户数据报协议 )。应用层是体系结构中的最高层,处理特定的应用程序细节,包括的协议比较多,如 HTTP(Hypertext Transfer Protocol,超文本传输协议 )、 FTP(File Transfer Protocol,文件传输协议 )等。 18 西安工程大学本科毕业设计(论文) 24 应用层 传输层 网络层 链路层 图 4-1 TCP/IP 协议系统 4.1 数据链路层 (1)链路层概述 以太网数据包格式表 4-1所示, EPA采用以太网帧格式中的类型字段向 IEEE注册分 配 ox88CB来标识 EPA报文。 表 4-1 以太网帧格式 48位目的 MAC地址 48位源 MAC地址 16位类型 数据 4字节检验序列 FCS (2)数据链路层的实现 数据链路层主要完成以太网报文的封装、解析。接收来自 IP层的数据包,根据传递来的参数,加上 14个字节的以太网报头, EPA标准支持 EPA 报文与通用的网路报文第 4章智能控制器的软件设计并行传输,如果是 EPA报文则类型字段值填写为 Ox88CB,如果是非 EPA报文,则根据通用的网络报文规范设置,例如 :ARP用 户 进 程 TCP UDP ICMP IGMP IP ARP RARP 硬 件 接 口 媒 体 用 户 进 程 用 户 进 程 用 户 进 程 西安工程大学本科毕业设计(论文) 25 报文则为 Ox0806。将封装好的以太网帧 传给 CSME。接收来自物理网络的数据报文,读取以太网帧的头部信息,根据类型段的值提交给不同上层协议处理。与以太网帧的发送接收相关的函数有 : Send _ethernet _frame():完成以太网帧的封装。 Rev _ethernet _frame():实现以太网接受报文的解析。 4.2 网络层协议的分析 网络层为主机之间提供逻辑通信,该层的协议包括: IP、 ICMP、 IGMP。而嵌入式 TCP/IP 作为一种嵌入式设备接入 Internet 的技术,很少需要也没必要采用组播方式进行通信,因此在嵌入式 TCP/IP 协议栈的设计中不考虑 IGMP 协议。 4.2.1 IP 协议分析 IP 协议是 TCP/IP 协议栈的核心,提供的服务有:提供无连接的、不可靠的数据传输;封装多种上层协议,所有的 TCP、 UDP、 ICMP 和 IGMP 数据都以 IP数据报格式(如表 4-2)传输的;提供路由和传输信息;提供信息报交换技术。 表 4-2 IP 数据报格式 0 34 8 9 15 16 18 31 版本号 首部长度 服 务类型 总长度 标识 标志 片偏移 生存时间 协议 首部校验和 源 IP地址 目的 IP 地址 选项(若有) 填充 数据 22头的大小,当不使用选项时该字段值为 5,若使用了选项字段,应根据实际计算;服务类型( TOS)字段用于携带提供服务质量特征信息;总长度字段表示整个 IP数据报的字节数,与 IP 的 MTU(最大传输单元 )有关;标识字段标识西安工程大学本科毕业设计(论文) 26 主机发送的每份数据报,它是一个随机数,但连续的数据报每发一份就加 1,它也可以用于标识 IP 数据报的分片;标志字段也称分片标志,最高位为保留位,其值为 0,第 2 位为分片位,其值为 0 表分片,为 1 则不分片,最低位用于判断分片是否结束,为 0 表结束;片偏移字段表示分片的数据相对 于完整数据帧的起始位置;生存时间( TTL)字段用于设置数据报最多可以经过的路由器的个数,每经过 1 个路由器,其值就减 1,直至减到 0 为止,数据报被丢弃,同时丢弃该报的路由器会发送一个 ICMP 的时间超时报;协议字段用于指示有效负载内包含上层的协议类型,如 UDP 为 17, ICMP 为 1 等;首部校验和字段根据 IP 首部计算得到,仅检查 IP 报头;源 IP 地址字段表示发送方的 IP 地址;目的 IP 地址字段表示接收方的 IP 地址。选项字段主要用于网络测试和排错,为简化 IP 协议的设计, 本文没有对选项部分进行处理,只是简单跳过这些选项。 在通用计算机中,为了使 TCP/IP 协议栈具有通用性, IP 需要考虑的问题比较多。对本文而言,嵌入式 TCP/IP 协议栈不是做嵌入式网关、路由器,因此可以不实现路由功能。有关路由的问题,直接交给默认网关处理,这样可以简化网络层的协议,节约嵌入式系统资源。当 IP 数据报的长度超过网络硬件所允许的 MTU 时,一般将其分片,使其适合在网络中传输。但分片传输非常占用资源,这对嵌入式系统而言,是一个不小的负担,因此一般不支持分片传输,而是把 MTU 的值设置 的小一些,使其在任何网络接口协议都能用,避免分片。此外,重组也耗费较多的内存和计算资源,故本协议也不支持数据报的重组功能。 4.2.2 ICMP 协议分析 ICMP 是 IP 不可缺少的一部分,主要为 IP 数据报提供传输过程中遇到的路由和传送错误报告,如目的地不可达、源站抑制、掩码地址请求等。 ICMP 报文分为两类: ICMP 差错报文和 ICMP 询问报文。虽然每个 ICMP 报文的格式不同,但它们前 4 个字节的格式是一样的,依次是类型、代码和校验。 ICMP 回显请求或回显应答报文格式如表 4-3 所 示。 表 4-3 ICMP 回显请求或回显应答报文格式 0 8 16 31 类型 代码 校验和 西安工程大学本科毕业设计(论文) 27 标识符 序号 数据 类型字段表示 ICMP 报的类型,对于 ping 请求和应答报,其值分别对应为 8和 0;代码字段表示错误代码,只有差错 报文才有,其余值为 0;校验和字段表示 ICMP 报的 16 位校验和,计算范围从类型字段开始直到数据末尾;标识符字段对 ping 命令而言,一般发送 0x0100 或 0x0200,应答报的标识符应该和请求报的标识符相同;序号字段是一个随机数,若是应答报,则应该和请求报的序号保持一致。在发生下面几种情况时发送 ICMP 报文:数据报目的地不可达;网关丧失缓存功能;网关为主机找到更短路由。而下面的几种情况则不发送 ICMP 差错报文: ICMP 差错报文;不是 IP 数据报分片的第一片;目的地址是广播或多播地 址的 IP 数据包;非单播源地址数据报。这主要是防止无限循环,造成网络阻塞。 在嵌入式 TCP/IP 协议栈中, ICMP 主要针对 ping 的处理,处理包括对接收到的 ping 请求报的应答和主动发送 ping 请求报。之所以实现这两种报文,主要为了便于系统调试。 ICMP 还有很多种报文,这些报文主要提供系统的差错信息等。对实时性要求较高的嵌入式系统而言,这些报文没有必要实现。首先,这些报文在传输时占用网络和 CPU 资源,这对资源本来就很有限的嵌入式系统来说,是一个不小的开销;其次,有些报文在嵌入式系统中 完全可以不要,如时间戳的请求和应答报文。 4.2.3 ARP 协议 物理网络是无法识别 IP地址,所以要实现数据在物理网络的传输,需要解决 IP地址到物理地址的映射, ARP(Address Resolution protocol)和 RARP (Reverse Address Resolution Protocol)就是解决这个问题的,本文只实现了ARP协议。 (l)ARP协议概述 地址解析协议 ARP通过主机的 IP地址查找与之对应的物理地址。 ARP协议使用请求 /回答的机制。当构建好 IP数据包时,主机不知道目的主 机的物理地址,则以广播的方式发送一个 ARP请求报文,接收到报文的主机将报文中目的 IP地西安工程大学本科毕业设计(论文) 28 址与自己的 IP地址比较,如果相同,则给发送方发送 ARP应答报文,报文中包括主机的物理地址,否则丢弃该报文。 ARP 报文的格式如表 4-4所示。 ARP数据包的长度不固定,取决于解析地址的类型。如果是从 IP地址到以太网的 MAC地址的映射,则 IP地址的长度是 4字节, MAC 地址是 6字节。 表 4-4 ARP 报文格式 16位硬件类型 16位协议类型 硬件地址长度 协议地址长度 16位操作码 发送者硬件地址 发送者协议地址 目标地址目标 目标协议地址 .硬件类型 :硬件接口的类型。以太网对应的硬件类型是 1; .协议类型 :指示上层协议的类型, IP协议是 OxO800; .硬件地址长度 :硬件地址的长度 ; .协议地址长度 :上层协议地址的长度 ; .操作码 :指 ARP 数据包的类型, 1表示 ARP请求数据包 ;2表示 ARP应答数据包 ;3和 4表示 RARP 请求数据包和应答数据包 (2)ARP协议实现 ARP协议的实现主要包括 ARP列表的维护、 A 即报文的发送和接收。 ARP列表中管理 10IP地址和 MAC地址映射以及生存周期。本文 ARP协议实现 IP到以太网MAC地址的解析, ARP 报文中硬件类型是以太网型的,值为 0x000l,协议类型为IP协议,硬件地址长度为 6,协议地址长度为 4。 ARP报文的内容总长为 28个字节。发送 ARP报文,如果发送 ARP请求报文时,目标硬件地址填充 0,操作码为1:如果发送 ARP应答报文,将本机的 IP和 MAC地址信息填写完整,操作码为 2。接收到 ARP报文,如果是 ARP请求数据包时,目标地址是本机 地址,则给对方发送 ARP应答报文,同时查询对方的 IP地址在本机的 ARP列表中是否有对应的映射,如果没有,且 ARP列表有空间,则将对方的 IP和 MAC地址加入 ARP列表 ;如果是 ARP应答报文,在 ARP列表中查找是否有对应的 IP,有则更新,无则在 ARP列表将它加入列表。 与 ARP协议相关的函数有 : .Initial_ arp():初始化 ARP列表。 西安工程大学本科毕业设计(论文) 29 .Arp_ Request():发送 ARP请求报文。 .ARP_ rev_ process():对接收到 ARP 报文处理。 .Arp_ answer():发送 ARP应答 报文。 4.3 传输层协议分析 TCP/IP 协议栈的传输层也叫运输层 ,主要为应用进程间提供端到端的逻辑通信,包含 TCP 和 UDP 两种协议。 UDP 和 TCP 都使用了应用程序接口处的端口与上层的应用程序进行通信。端口用一个 16 位端口号进行标识,用 OSI 的术语,端口就是 TSAP(运输层服务访问点),其作用是将应用层的各种应用进程的数据通过端口向下交付给运输层,以及让运输层的数据报通过端口准确的交付给相应的进程。 4.3.1 UDP 协议分析 UDP 是一个简单的面向数据报的传输层协议 ,不需要与对方建立连接,就可以直接把数据发送出去。 UDP 具有如下几个特点:无连接、不可靠、不分段、不提供流控制。因此 UDP 不能应用于那些使用虚电路的面向连接的服务,如 FTP。UDP 数据报的格式如表 4-5所示。 表 4-5 UDP 数据报的格式 0 16 31 源端口 目的端口 报文长度 校验和 数据 其中源端口标识的是源应用层协议;目标端口标识的是目标应用层协议 ,与 IP 地址一起组成唯一有效的地址;报文长度指明了 UDP 数据报中八位组的数;校验和字段是可选的,由于 IP 数据报中的校验和字段的计算不包括数据部分,因此 UDP 数据报应该使用该字段,校验和的计算包括 UDP 伪报头(如表 4-6所示)、 UDP 报头和 UDP 有效负载,但不发送 UDP 伪报头,当计算 UDP 校验和的值为零时,需要将该值取反,用全 1 表示,以此来区分没有使 用校验和该字段值为零的情况。 西安工程大学本科毕业设计(论文) 30 表 4-6 UDP 伪报头的格式 0 8 16 31 源 IP 地址 目标 IP地址 未定义 协议 长度 UDP 伪报头中的源 IP 地址和目标 IP 地址取自 IP 首部;未定义字段为 0;协议字段为 17,表示 UDP 协议;长度字段的值与 UDP 数据报中报文 长度一样。 4.3.2 TCP 协议分析 TCP 是面向连接的、提供可靠的、全双工的、具有流量控制的数据服务,但TCP 只能实现一对一的服务。 TCP 报文段的格式如表 4-7所示。其中各字段的含义如下:源端口和目标端口字段包含 TCP 端口号,用于标识连接两端的应用程序;序号指的是本报文段所发送的数据的第一个字节基于输出字节流的序号;确认序号是期望收到的下一个报文段的序号,对已经收到的数据进行确认;首部长度指的是 TCP 报头的长度,最小为 20 个字节,最大为 60 个字节,大小必须是 4的倍数;控制比 特包含 6个标志,分别为 URG(紧急位 )、 ACK(确认位 )、 PSH(推送位 )、 RST(复位 )、 SYN(同步位 )、 FIN(结束位 ),置 1 有效;窗口字段用于流控制,表示发送端接收缓冲区的剩余空间;校验和与 UDP 数据报的校验和的计算方法一样,在计算时也需要加上 12 字节的伪首部,伪首部与 UDP 伪首部格式一样;紧急指针字段与 URG 控制位联合用于优先数据传输。本文在实现 TCP 协议时,没有对选项字段进行处理,只是简单的。 表 4-7 TCP 报文段的格式 0 4 10 16 24 31 源端口 目的端口 序号 确认序号 首部长度 保留 控制比特 窗口 校验和 紧急指针 西安工程大学本科毕业设计(论文) 31 选项 填充 数据 TCP 在传输数据之前,必须先建立连接。建立连接一般要收发 3 个报文:主动连接端发送一个同步报文;被动连接端收到同步报文后发送同步应答报文;最后主动连接端发送确认报文。而终止一个连接需要收发 4 个报文:主动断开端发送结束报文;被动断开端收到报文后,发送一个应答帧,确认传入数据到被动端的通道已断开;被动断开端发送结束报文,以断开被动断开端的数据发送通道;在主动断开端收到报文后,发送应答帧,关闭连接。前面讲了 TCP 的连接和断开的过程,但实际上, TCP 可能出现的连接状态还有好几种,共有 11 种,具体状态转化如表 4.8 所示,图中粗线表示客户端的转变情况,虚线表示服务器端的正常状态变化过程。 TCP 是通过窗口来实现流控制的,窗口表示接收主机接收的最大数据量,其值的大小随着主机资源的变化而变化,但发送端发送的数据报大小不能大于接收端剩余缓冲区的大小,当剩余缓冲区的大小为 0 时,发送端就等待直至剩余缓冲区的大小大于 0,才又开始传输数据。考虑到嵌入式系统的存储空间比较有限,把窗口大小设为 1460 字节。若要更好的在传输层进行拥塞控制,可以使用慢启动、快重传等算法,本文没有实现那些算法,因为对于数据量不大的嵌入式设备的数据传输影响很小。 TCP 通过确认从另一端收到的数据来提供可靠的传输,但数据报有时可能会丢失,可通过设置定时器解决这个问题。若在设定的时间范围内,没有收到确认,就重传该数据。在标准的 TCP/IP 协议中引入 RRT(往返时间)的测量方法来决定重传时间,而在本文中,为简化设计,把重传时间设定为 0.5 秒,避免了 RTO(超时重传时间)公式复杂的计算。 4.4 应用层 应用层主要完成了一个简单的 web服务器网页的制作,变量读、写、信息发布服务编码和解码函数的编写。 与应用层相关的 主要函数有 : .replace():web 服务器网页显示的数据是需要实时更新的,在网页文件发送给客服端前,该函数将实时数据对应的标签用最新的数据对应的字符串替换。 .service _send():根据连接对象的服标识符调用相应的服务报文编码函数西安工程大学本科毕业设计(论文) 32 完成服务报文的编码,如果是变量读服务,则调用 read_ send()完成报文的编码。 .service _recv():对接收来自映射实体到 EPA报文,找到根据链接对象的服务标识调用不同的服务解码函数对报文进行解码,例如是读服务则调用 recv _read对报文解码, 然后交给不同的功能块实例进行处理。 4.5 用户层 用户层建立了一个简单的基于 HTTP协议 web服务器、 Al功能块、 DO功能块和 Dl功能块。 (1)web服务器的实现 网络控制器的软件设计 web服务器管理一个简单的网页,将 16 路模拟量输入 AD转换的结果、 CPU 的温度以及开关量的输入输出显示在网页上,用户可以通过浏览器访问。在接收客服端的“ GET请求后,调用 replace()函数更新实时数据,然后给客户端发送响应数据。 (2)Al功能块 Al功能块将 AD 转换模块采集的模拟量数据通过信息发布服务发送到 EPA网络。 Al功能块由事件触发,当 AD转换完成后被触发,有 5个输入参数分别对应4路外部模拟量输入和内部温度。对输入 4 路外部模拟量采集到的数据进行标度转换,转换为 O-3000mv,存入输出参数 ADC _Data数组 ;对于内部温度,首先,对采集到的数据进行标度转换,转换到 O-3000mv,再通过公式转换成温度,公式如下 : T=(2, 7-Vt)*75-55; 其中 T:CPU内部温度,单位是 ;VT:温度对应的电压值,单位是伏特。 (3)DO功能块 DO功能块控制 4个开关量输出。 DO功能块接收上位机发送来的数据和状 态,并处理接收到的数据,将处理后的数据传递给 DO驱动程序,控制开关量输出。 (4)DI功能块 Dl功能块触发事件为定时器 0触发,每隔 0.1s由 DI驱动程序读取开关量的输入状态,处理后通过信息发布服务发送给上位机。 西安工程大学本科毕业设计(论文) 33 第 5 章 软件设计 5.1 总体设计 嵌入式的软件设计是嵌入式产品的灵魂,所以相关软件的开发对于产品功能的实现具有至关重要的作用。本设计以 STM32F103ZET6 为核心,完成数据的采集、处理、通信、显示等功能。软件部分的设计包括数据采集、数据处理、存储、显示、通信。其总体流程图如图 5-1所示: N N N Y 开始 初始化 是否参数设置? 开始采集,启动 A/D 转换 参数设置 数据处理 时间是否为数据 采样时间间隔? 数据存储 是否读取数据? Y Y 保 存 显示状态信息和 实时测量结果 西安工程大学本科毕业设计(论文) 34 图 5-1 系统流程图 其中,初始化包括 CPIO 初始化、 SPI 初始化、 I2C 初始化、触摸屏初始化、串口 USART1、 USART2 初始化。参数设置包括 RTC 时间设置、数据上报间隔设置、状态上报间隔、通道选择、 IP 地址设置。状态信息包括当前电压和实测温度。实时测量包括水位和流量。如图 5-2 所示为系统主 芯片的系统结构。 图 5-2 系统主芯片的系统结构 5.2 数据采集及 AD 转换 AD 模块的初始化主要完成采样序列的选择和输入源、触发事件、中断产生、序列的优先级的配置以及使能对应的外设时钟。本控制器设计为每隔 5min 对ADC0 进行采样,采样 244k/s 的采样率。 如图 5-3 所示。首先,使能 ADC 时钟,即 0x00010000 写入系统控制模块的运行模式时钟选通控制寄存器 0( RCGC0);将序列 0 的优先级设为最高 0,即 ADC 采样序列发生器优先级寄存器( ADCSSPRI)写入 0;禁能采样序列发生器, ADC 采样序列发生器写 0( ASENN); ADC 多路复用器选择寄存器的 EM0 段写入 0100;配置为定时器触发;对 ADC 采样序列控制器进行设置,完成输入源和控制位的设置,采样序列依次对 ADC0 进行采样,结束点设置在第 3 个采用数据; ADC 活动采样序列发生器的 ASEN0 写 1,使能采样序列。由函数 ADCInit()完成 ADC 模块的初始化。 结 束 西安工程大学本科毕业设计(论文) 35 图 5-3 ADC 的初始化流程图 ADS1110 的模 /数转换器核由一个差分开关电容 - 调节器和一个数字滤波器组成 ,调节器测量正模拟输入和负模拟输入的压差 ,并将其与基准电压相比较 ,在 ADS1110 中基准电压为 2.048V 数字滤波器从调节器接收高速位流 ,并输出一个代码 ,该代码是一个与输入电压成比例的数字。如图 5-4 所示为 ADS1110芯片结构。 图 5-4 ADS1110 芯片结构 5.2.1 I2C 总线接口 ADS1110通过 I2C总线(内部集成电路)接口通信,识别通过 I2C 地址实现,ADS1110 只能作为从机。 ADS1110 的 I2C 的地址是 1001aaa,其中 aaa 是出厂的默认设置。 ADS1110 有 8种不同的类型,每种类型都有不同的 I2C地址。封装上,开 始 使能 ADC 时钟 设置采样率 配置优先级为 0 禁止采样序列发生器 配置为定时器 配置输入源 配置采样控制 使能采样序列发生器 结 束 西安工程大学本科毕业设计(论文) 36 ADS1110 的每种类型都已 EDx 为标识,其中 x 表示地址变量。 ADS1110 含有输出寄存器和配置寄存器,可通过 I2C端口进行访问,输出寄存器存储 A/D 转换结果,而配置寄存器用于设置 ADS1110的工作方式,数据速率和可编程增益放大器,也可用于查询器件状态。 5.2.2 ADS1110 的读写 若从 ADS1110 中读取输出寄存器和配置寄存器的内容,需 对 ADS1110 中读取3个字节,前 2个字节时输出寄存器的内容,第 3个字节是配置寄存器的内容,读操作时,读操作时,只读前 2个字节而不读第 3个字节。 ADS1110 的读操作时序如图 5-5所示。同时为了对配置存储器写操作,要对 ADS1110寻址,并向配置寄存器写入 1 个字节,但不能向输出寄存器写入字节。其写操作时序如图 5-6所示。 图 5-5 ADS1110 的读操作时序图 图

温馨提示

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

最新文档

评论

0/150

提交评论