基于单片机的多功能环境检测系统毕业设计.doc
《基于单片机的多功能环境检测系统毕业设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的多功能环境检测系统毕业设计.doc(69页珍藏版)》请在咨信网上搜索。
基于单片机的多功能环境检测系统毕业设计 59 资料内容仅供参考,如有不当或者侵权,请联系本人改正或者删除。 ××学院 毕 业 设 计( 论 文) 题 目: 基于单片机的多功能环境检测系统设计 作 者: 指导教师: 专 业: 电气自动化 时 间: ××学院毕业论文 基于单片机的多功能环境监测系统设计 ——串口通信与界面设计 The design of multifunction environmental monitoring based on single-chip ——Serial communications and interface design 摘 要 随着工业技术的发展, 环境问题已经成为全世界关注的问题。近年来, 水土流失、 荒漠化、 草原退化和物种减少; 生态相当脆弱, 自然灾害频繁; 环境污染严重, 直接危及社会、 经济的发展。人们已经认识到, 为了保护环境, 就将对环境的演化趋势、 特点及存在的问题作进一步的细致的了解。多功能环境监测是利用各种技术测定和分析生命系统各层次对自然或人为作用的反应或反馈效应的综合表征来判断和评价这些干扰对环境产生的影响、 危害及其变化规律, 为环境质量的评估、 调控和环境管理提供科学依据。 本课题从国内外环境监测系统的研究现状出发, 结合实际情况设计一个基于单片机的多功能环境监测系统。本文主要负责串口通信及界面软件的设计。其中, 上位机软件主要以Windows XP为操作平台, 采用Delphi7.0编写。Delphi是一种可视化的、 快速的应用程序, 具有面向对象编程, 支持团队开发, 提供工程管理, 对数据库的良好支持等特性, 是一个集数据通信、 存储、 查询、 处理于一体的综合性软件。 本设计能够实现以下功能: PC机经过串行口与下位机通信, 将下位机采集到的温、 湿度及光线数据在PC机上实时显示; 对历史数据进行查询、 分析、 统计, 并能将相应的结果打印出来。 关键词: 温湿度; 光线状况; 上位机; 串口通信 Abstract With the development of industrial technology, environmental issues have become the world's concern. In recent years, soil erosion, desertification, grassland degradation and loss of biodiversity; ecology very fragile and frequent natural disasters; environmental pollution, directly threatening the social and economic development. Environmental monitoring is the use of multi-function measurement and analysis technology system at all levels of life to natural or man-made role of response or feedback effects of the comprehensive characterization to determine and evaluate the impact of interference on the environment, endanger their trends, the environmental quality assessment, control and provide the scientific basis for environmental management. This topic embarks from the domestic and foreign environmental monitoring system's research present situation, the union actual situation designs one based on monolithic integrated circuit's multi-purpose environmental monitoring system. This article primary cognizance serial port correspondence and contact surface software's design. And, the superior machine software mainly take Windows XP as the service platform, uses the Delphi7.0 compilation. Delphi is one kind of visualization, the fast application procedure, has the object-oriented programming, supports the team to develop, provides the project management, to database characteristics and so on good support, is a collection data communication, the memory, the inquiry, processing in a body's comprehensive software. This design can realize the following function: PC machine through serial port and lower position machine correspondence, lower position machine gathering warm, humidity and optical fiber data on the PC machine real time display; Carries on the inquiry, the analysis, the statistics to the historical data, and can print the corresponding result. Key words: mperature and humidity; Lighting conditions; PC; Serial Communication 目 录 第一章 绪论 1 1.1 课题背景 1 1.2国内外环境监测现状及发展趋势 2 1.2.1发展现状 2 1.2.2发展趋势 3 1.3本课题主要工作 4 第二章 系统设计总体方案 5 2.1监测系统结构框图 5 2.2监测终端的设计 5 2.3通信方式的选择 6 第三章 上位机开发环境与主要技术 8 3.1 上位机开发平台 8 3.2 数据库方案的实现 8 3.3 串口通信的实现方法 9 3.3.1概述 9 3.3.2串口通信API函数的实现原理 11 3.3.2串口类的开发 13 第四章 使用SPComm控件实现串口通信 14 4.1安装SPComm控件 14 4.2 SPComm的主要属性,方法和事件 14 4.2.1 属性 14 4.2.2 方法 15 4.2.3 事件 15 4.3 SPComm的使用 16 第五章 上位机软件设计方案 19 5.1系统设计概述 19 5.2数据库平台的选择 19 5.3串口通信在本系统中的实现 20 5.3.1通信协议的设计 20 5.3.2通信程序的开发 24 5.4上位机程序的开发设计 24 5.4.1系统登录模块 25 5.4.2系统主界面模块 26 5.4.3用户设置模块 27 5.4.4历史数据查询模块 28 结论 31 致谢 32 参考文献 33 附录 34 第一章 绪论 1.1 课题背景 随着人们对环境问题及其规律认识的不断深化, 环境问题不再局限于排放污染物引起的健康问题, 而且包括自然环境的保护、 生态平衡和可持续发展的资源问题。因此, 环境监测正从一般意义上的环境污染因子监测开始向生态环境监测过渡和拓宽。除了常见的各类污染因子外, 由于人为因素影响, 灾害性天气增加, 森林植被锐减, 水土流失严重, 土壤沙漠化加剧, 洪水泛滥, 沙尘暴、 泥石流频发, 酸沉降等, 使中国本已十分脆弱的生态环境更加恶化。这促使人们重新审查环境问题的复杂性, 用新的思路和方法了解和解决环境问题。人们开始认识到, 为了保护生态环境, 必须对环境生态的演化趋势、 特点及存在的问题建立一套行之有效的动态监测与控制体系, 这就是生态环境监测。生态环境监测是环境监测发展的必然趋势。 本质上看, 环境保护是以减少或避免生态系统的破坏为终极目标。对环境监测, 当前单纯的理化指标和生物指标监测存在很大的局限性, 而生态环境监测则可弥补传统环境监测的不足。因此前者强调”局部剖析”, 只对大气、 水、 土壤等中的化学毒物或有害物理因子进行测定; 而后者着眼于”整体综合”, 对人类活动造成的生态破坏和影响进行测定。能够说, 生态环境监测是生态保护的前提, 是生态管理的基础, 是生态法律法规的依据。当前, 生态环境监测已在全球范围内展开, 但在中国才刚起步, 基础差, 底子薄, 相对落后, 缺乏统一的标准, 国家尚未制定技术规范。本文主要结合国内情况拟对生态环境监测作全面介绍, 以期大家共同努力来推动生态环境监测工作在中国的开展。 虽然中国经济一直以来快速发展, 可是在经济发展的同时对环境的影响也日益扩大, 特别是负面的影响。反过来生态环境的破坏也逐步威胁着我们人类的生存和发展。为了更好的改进人类的生存环境、 尽可能的避免环境进一步恶化, 对环境情况特别是与人类关系密切的环境参数如温度和湿度的监测无疑具有非常重要的意义。人类的生存和社会的活动与温度、 湿度, 光线等环境因素的相关性越来越大, 对环境参数进行有效的实时监测, 已成为当前非常严峻的课题。环境监测是获取环境信息, 认识环境质量和评价环境好坏的重要手段, 也是进行环境监督和环境治理等管理工作的主要信息来源和途径。 环境监测系统是集传感器技术、 通信网络和计算机应用为一体的综合数据分析管理系统, 随着自动控制技术、 电子信息技术和大规模集成电路等技术近年来迅速的发展, 许多西方发达国家已经拥有很多先进的环境监测设备与环境监测手段。如果直接从外国购买这些现成的设备和技术, 对于中国来说成本投入是比较高的, 而且这些设备和监测手段可能与中国复杂多变的气候条件和具体的情况不相匹配, 因此当前不适合直接购买和应用这些设备和技术。 当前, 中国的环境监测系统与这些国家相比还有较大的差距, 但随着中国科技实力的增强和经济实力的提高, 也先后开发了一系列的环境监测系统。在这领域的进展和提高还是比较大的。可是总体来说这些设备的技术水平仍有待提高。因此开发研制出适合中国现状的低成本高性能的环境监测系统, 是一项非常紧迫的任务, 也对提高中国现代化企业的经济效益和加快中国的现代化水平具有非常重要意义。 1.2 国内外环境监测现状及发展趋势 1.2.1 发展现状 近些年来中国的经济发展迅速, 人们的生活水平得到了很大的提高, 可是与此同时工业化的发展也给环境带来的巨大的改变。近些年来京津地区的沙尘暴和森林覆盖率的大量减少就是很好的证据。传统上采用比较落后的人工环境监测方法, 可是这种方法的实时性差, 受自然条件的限制比较大, 而且对于突发的环境问题不能及时发现而且处理, 不利于宏观把握环境的变化情况。由于经济等因素中国当前还有很多地方使用传统的环境监测方法。 随着技术的发展和经济实力的提升, 中国的环境监测水平也得到了一定的提高。在很多省份实现高速通信网络的同时, 环境监测的参数和数据已经能联网的得到观测和控制。硬件设备已经得到很大的改进, 传统的人工报表已经改成微机控制系统。还有部分省市已经采用自动的环境监测系统, 能更加及时和准确的反馈数据。可是由于中国幅员辽阔, 监测终端的需求量很大, 而且环境监测系统的软硬件开发功能还不是很完善, 数据的综合分析能力也有待提高。国内产品较之国外技术还显得比较薄弱。 主要表现在: l、 当前市场上同类产品存储空间有限。且基于单片机终端操作的, 很少具有实时通信的功能, 这对于远程进行数据的传输要求的单位的使用是不方便的。 2、 现有的产品在数据输出仅支持点对点通讯且速度慢、 距离短、 且仍受地域限制。且不能满足大数据量多通道的实时数据的传输的功能。 3、 产品的现场安装受使用环境所限, 环境应用适用性差、 测控手段单一。很难进行远距离的监控和报警。 4、 产品只用液晶、 LED等方式简单显示, 使操作无法进行现场复杂实用的数据分析、 读取、 按需数据图形打印。 5、 设备性能不高, 难以适应要求较高的场合。如测量温度范围低, 难以满足超高温, 超低温的要求。 当前国外的环境监测系统已经广泛应用在各个领域, 并发展的比较完善。许多国家的环境参数监控点已经分布在各个地区, 技术上也很先进, 能够监测温度、 湿度、 光线和水位等多个环境参数。部分产片还使用了卫星等技术进行环境监测。欧洲的一些国家各国之间以网络为核心进行合作, 已经能对欧洲环境的现状和发展趋势作出及时的有效判断的预测, 并根据此采取必要的措施来保护环境。一些美国的公司利用空间技术, 利用太空的卫星能把地面的情况特别是大气的监测数据做成图像完整的传回地面监测, 科学家的数据准确可靠。 令人可喜的是中国的环境监测技术正朝着现代化和高技术含量方向发展。当前在某些领域也把卫星技术、 遥感技术和GPS等技术广泛应用于环境的监测。在网络方面利用无线传输、 P宽带网络和GPRS、 INTERNET等多种传输方式进行数据的传输与处理。能够在对环境指数的采集、 分析、 整理的基础上实现环境发展的预测。 1.2.2 发展趋势 近年来, 神经网络、 遗传算法、 模糊理论等人工智能方法在国外温室环境控制技术中得到重视并逐步发展, 其中神经网络方法应用较广。另外, 采用多个环境因子综合考虑的多因子控制方式替代现行的单个环境因子分别考虑的单因子控制方式也是研究的一个重要方向。当前在温室环境控制系统中, 分布式系统是主要发展方向, 系统中不存在一个控制中心, 主要控制功能由各分布的子处理器完成。各个温的控制功能一般由单片机(子处理器)完成, PC机作为主处理器, 仅实现辅助功能, 脱离主处理器, 整个控制系统仍可工作。分布式控制方式具有价格低、 控制灵活、 可靠性高等优点, 将在以后很长一个时期内广泛应用于温室环境控制系统中。随着网络技术的发展, 能够经过Iniemet进行远程控制或诊断, 在办公室经过网络对温室设备进行操作, 达到减轻生产人员劳强度、 提高设备利用效率, 具有广阔的应用前景。 1.3 本课题主要工作 本设计可实时测量某一具体空间中任意一点的温度、 湿度数据以及光线状况, 能在小型终端设备的LCD上显示, 还能经过串口通信在微机上实现实时数据的显示、 分析和图形打印等功能。能够定时地将数据自动地打印出来供随时监管或存档。其中, 上位机软件的主要功能如下: 1、 历史数据查询功能: 对以往的历史数据能够进行查询和分析, 并用图表的方式显示环境的发展趋势。 2、 动态记录显示功能: 能够连续实时的采集和记录监测空间内温度、 湿度、 光线状况等参数的情况, 以数字和表格方式进行实时显示和记录监测信息。 3、 数据存储功能: 所有的数据采集和记录到计算机上, 按要求记录温、 湿度以及光线状况表格, 能够定时自动保存、 备份等。 4、 打印功能: 按要求打印某个点温、 温度、 光线状况表格, 自动定时打印和手动人工打印画面及参数报表。 第二章 系统设计总体方案 2.1 监测系统结构框图 多参数环境监测系统由环境参数采集单元(包括温度、 湿度、 光照度传感器及信号调理电路)、 单片机、 液晶显示模块、 PC机、 传输设备以及电源组成。结构框图如图2-1所示。 上位机 喷灌系统 天窗电机 排风扇 显示器1602 单 片 机 A/D转换器 温度传感器 湿度传感器 光线传感器 继电器控制 图2-1 系统结构图 2.2 监测终端的设计 监测终端组成框图如图2-2所示, 该终端以单片机为核心, 由各种传感器、 A/D转换器、 液晶显示模块、 串行口输入/输出端口等构成。环境参数经信号采集电路和A/D转换后送单片机, 经处理后在液晶上实时显示, 然后经过串口传输给上位机。 传感器 传感器 信号采集A/D 转换 液晶显示 微处理器 计算机串口 上位机 图2-2 监测终端组成框图 2.3 通信方式的选择 串口是计算机上通用设备通信的协议端口, 现在大多数计算机包含串口。串口通信的标准经过使用和发展已经有很多中, 但基本都是在RS232标准的基础上改进形成的。可是RS232标准只针对于点对点的单通道数据传送, 在此基础上形成RS485标准, 增加了多点和双向通信能力。这个标准传输信号具有很强的抗干扰能力, 能够达到更大的传输距离和更高的传输效率。由于上位机只有一台, 而需要通信的下位机有多台, 因此不一定能够跟每个下位机同时及时的通信, 因此为了更好的实现数据的传输, 需要用排队理论来合理的设计和控制传输, 使数据的传输更及时和有效, 提高系统的通信能力。排队理论就是利用概率论和随机理论, 研究随机系统内服务与需求之间的关系, 以便合理地设计和控制排队系统。 在所研究的系统中, 某一下位机请求与上位机通信, 当上位机空闲时, 立即响应请求, 当上位机忙时, 不能立即响应该请求。呼叫持续等待是一个有限的时间, 若某一等待响应的呼叫超过规定的等待时间还没有响应则该下位机挂断, 等待几分钟后再发送请求。各下位机的地位一样时, 相应的规则采用先到先服务的形式。服务时间为一次传送数据的通信时间。由于多路请求是随机的, 而且相互之间完全独立, 但对整个系统而言, 各下位机传送的数据都能送入上位机中。 当前串口是仪器仪表设备通用的通信协议端口, 也用于获取远程采集设备的数据。串口通信的概念非常简单, 串口按位发送和接收字节。尽管比按字节的并行通信慢, 可是由于串口通信是异步的, 能够在使用一根线发送数据的同时用另一根线接收数据, 其它线用于握手。 第三章 上位机开发环境与主要技术 3.1 上位机开发平台 Delphi是著名的Borland公司开发的可视化软件开发工具。Delphi系列软件的工作平台相当广泛, 能够工作于Windows95、 Windows98、 WindowsNT、 Windows 以及Windows XP下, 编程所用的语言为Object Pascal语言。Object Pascal语言具有高度清晰的结构, 高效率的优化系统, 是一种简单易学, 但又不乏其作为优秀编程语言的特点。 Delphi具有简单、 高效、 功能强大的特点。和VC相比, Delphi更简单、 更易于掌握, 而在功能上却丝毫不逊色; 和VB相比, Delphi则功能更强大、 更实用。由于Delphi同时兼备了VC功能强大和VB简单易学的特点, 因此它成为了程序员至爱的编程工具。 Delphi的主要特性如下: 1) Delphi是32位应用程序, 使用它能够开发出各种功能强大的应用程序; 2) Delphi的编译器是当前世界上最快的32位本地代码编译器, 使用这种编译器产生的运行文件( EXE) 是独立的, 不需要链接运行时的解释器DL; 3) Delphi可充分发挥Windows95/98/ /NT和Windows NT的强大功能; 4) Delphi提供了多种32位可视组件; 5) Delphi是一种面向对象的程序设计语言, 因此可做到对可视窗体的继承; 6) Delphi采用三层数据库管理模式( 数据层、 对象层、 应用程序层) , 把例如数据模型、 业务规则、 窗体和对象等集中存储在对象存储库中; 7) 应用程序可经过在Delphi中使用Borland公司提供的数据引擎( BDE) 功能从而毫无障碍地使用多种数据库, 例如Oracle、 Sybase等; 8) 使用Delphi提供的数据库浏览器。 3.2 数据库方案的实现 当前常见的数据库有Oracle、 SQL、 Server、 Access和Mysql等, 下面对这几个主流的数据库各自特点简单介绍。 Oracle数据库系统是对象关系型数据库, 支持大型多用户数据系统和分布式数据库和分布处理, 具有可移植性和兼容性, 一般用在大型事务处理及客户/服务器结构的应用系统, 但价格昂贵, 不适合一般开发应用。 SQL Server是基于服务器端的中型的数据库, 能够适合大容量数据的应用, 在处理海量数据的效率, 后台开发的灵活性, 可扩展性等方面强大; 是真正的客户机/服务器体系结构, 图形化用户界面, 使系统管理和数据库管理更加直观、 简单; 丰富的编程接口工具, 为用户进行程序设计提供了更大的选择余地: 对网络技术的支持, 使用户能够很容易地将数据库中的数据发布到网页上。 Mysql是一个开放源码的小型关系型数据库管理系统, 当前被广泛地应用在Intemet上的中小型网站中。由于其体积小、 速度快、 总体成本低, 特别是开放源码这一特点, 许多中小型网站为了降低网站总体拥有成本而选择了Mysql作为网数据库。Mysql能够支持Windows、 UNIX、 Linux和SUN OS等多种操作系统平台。 Access是微软公司推出的基于Windows的桌面关系数据库管理系统, 是Office系列应用软件之一。它提供了表、 查询、 窗体、 报表、 页、 宏和模块来建立数据库系统的对象; 提供了多种向导、 .生成器和模板, 把数据存储、 查询、 界面设计、 报表生成等操作规范化等。 几种数据库各有特点, 其中Access是一个中、 小型数据库管理系统, 使用方便、 功能强大、 易操作而且很实用, 它适合数据量不太大的应用, 在处理数据库时效率也很高。因此本课题选用Access作为数据库平台, 既能够满足数据操作方便迅速的特点, 也能够降低软件的开发成本。 3.3 串口通信的实现方法 3.3.1 概述 实际中串口通信程序的开发很少直接使用API函数, 因为这会无谓的增加编程难度, 也会给调试带来诸多不便。在面向对象方法下一般使用串口类(即串口函数库), 这样编程效率即高, 调试又方便。下面就从通信API介绍、 串口类开发这两方面加以介绍。 l、 串口通信API函数基础 通信API函数是整个串口通信程序的基础, 串口类中的任何成员函数也只不过是对通信API函数的封装而己。通信API函数所涉及的操作包括串口的打开、 关闭、 初始化与读写等。 (1)串口的打开与关闭 Win32系统把文件的概念进行了扩展, 无论是文件、 通信设备、 命名管道、 邮槽、 磁盘, 还是控制台, 都是用API函数Create File()来打开或创立的。如果打开成功的话会返回一个串口的句柄, 应用程序应对这个句柄判断其有效性。当不再使用该串口句柄时, 应该调用CloseHandle0函数关闭之, 以方便其它应用程序申请对串口的控制权。 (2)串口的初始化 在打开串口后, 常常需要对串口进行一些初始化工作, 这需要经过一个DCB结构来进行。DCB结构包含了诸如波特率、 数据位数、 奇偶校验和停止位数等信息。在查询或配置串行口的属性时, 都要用DCB结构来作为缓冲区。 调用函数能够获得串口的配置, 该函数把当前配置填充到一个DCB结构中。一般在用CreateFile0打开串行口后, 就调用GetCommState()函数来获取串行口的初始配置。要修改串行口的配置, 应该先修改DCB结构, 然后再调用SetCommState0函数用指定的DCB结构来设置串行口。 除了在DCB中的设置外, 程序一般还需要设置I/O缓冲区的大小。Windows用阳缓冲区来暂存串行口输入和输出的数据, 如果通信的速率较高, 则应该设置较大的缓冲区.调用SctupCommO函数能够设置串行口的输入和输出缓冲区的大小。在对串口进行读写的时候, 需要考虑超时问题。超时有两种: 间隔超时和总超时。间隔超时是指在接收时两个字符之间的最大时延, 总超时是指读写操作总共花费的最大时间。写操作只支持总超时, 而读操作两种超时均支持。在用异步方式读写串行口时, 虽然在完成读/写操作以前就可能返回, 但超时依然是起作用的。在这种情况下, 超时规定的是操作的完成时间, 而不是读/写函数的返回时间。 (3)串口的读写控制 这部分内容关系到串行通信的核心内容, 将分读/写串口API函数、 异步I/O操作两部分介绍。 读/写串口API函数: win32中使用ReadFile0函数或者ReadFileEx0数从串口中读取数据。两者区别是: 前者对同步操作和异步操作都支持, 而后者仅支持异步操作。eadFile0函数第四个参数, 在读操作之前应置为0。同样, 写串口函数也有两个, 一个是writeFile0, 另一个是writeFileEx0前者同时支持同步操作和异步操作, 而后者仅支持异步操作。写函数不论在声明形式上还是在使用方法上都与ReadFile0十分相似, 具体能够查看MSDN帮助文档。 异步I/O操作: 在用ReadFile0和writeFile0读写串行口时, 既能够同步执行, 也能够异步执行。在同步执行时, 函数直到操作完成后才返回。这意味着在同步执行时线程会被阻塞, 从而导致效率下降。在异步执行时, 即使操作还未完成, 调用的函数也会立即返回。费时的I/O操作在后台进行, 这样线程就能够干别的事情。例如, 线程能够在不同的端口上同时执行I/O操作, 甚至能够在同一端口上同时进行读写操作。”异步"一词的含义就在于此。ReadFile0和writeFile()函数是否为异步操作模式是由CreateFile()函数决定的。如果在调用CreateFileO创立句柄时指定了ILE FLAG OVERLAPPED标志, 那么调用ReadFileO和writeFileO对该句柄进行的读写操作就是异步的, 如果未指定异步标志, 则读写操作是同步的。 在设置了异步I/O操作后, I/O操作和函数返回有以下两种情况: 第一种, 函数返回时I/O操作己完成: 此时结果仿佛是同步执行的, 但实际上这是异步操作的结果。第二种, 函数返回时I/O操作还没完成: 此时一方面, 函数返回值为0, 而且GetLastErrorO函数返回ERROR IO PENDING; 另一方面, 系统把OVERLAPPED中的信号事件设为无信号状态。当I/O操作完成后, 系统将它设置为有信号状态。如果GetLastError0函数返IEIERROR IO PENDING, 则说明异步操作还没完成, 线程能够等待操作完成。有两种等待办法: 一种办法是用像WaitForSingleObject0这样的等待函数来等待OVERLAPPED结构的hEvent成员, 能够规定等待的时间, 在等待函数返回后, 调用GetOverlappedResult0。另一种办法是用GetOverlappedResult()函数等待, 如果指定该函数的bWait参数为TRUE, 那么该函数将等待OVERLAPPED结构的hEvent事件, 而且只有当I/O操作完成后方返回(实际上这又变成了同步方式)。同时GetOverlappedResultoi函数能够返回一个OVERLAPPED。结构来报告包括实际传输字节在内的重叠操作结果。 2、 串口类的开发 串口类是对通信API函数进行最一般的封装, 以便能够应用于不同的串口应用程序开发中。现在开发串口应用程序的方法很多, 如微软的MSCcomm控件, 可是MSComm本身存在一定的弊端, 如只能发送ASCII码等。从用户角度讲上位机串口通信模块的使用流程一般分四个步骤, 即”初始化并打开串口一监视串口~读写串21--关闭串口’’。 3.3.2 串口通信API函数的实现原理 实际中串口通信程序的开发很少直接使用API函数, 因为这会无谓的增加编程难度, 也会给调试带来诸多不便。在面向对象方法下一般使用串口类(即串口函数库), 这样编程效率即高, 调试又方便。 通信API函数是整个串口通信程序的基础, 串口类中的任何成员函数也只不过是对通信API函数的封装而己。通信API函数所涉及的操作包括串口的打开、 关闭、 初始化与读写等。 (1)串口的打开与关闭 Win32系统把文件的概念进行了扩展, 无论是文件、 通信设备、 命名管道、 邮槽、 磁盘, 还是控制台, 都是用API函数CreateFile()来打开或创立的。如果打开成功的话会返回一个串口的句柄, 应用程序应对这个句柄判断其有效性。当不再使用该串口句柄时, 应该调用CloseHandle0函数关闭之, 以方便其它应用程序申请对串口的控制权。 (2)串口的初始化 在打开串口后, 常常需要对串口进行一些初始化工作, 这需要经过一个DCB结构来进行。DCB结构包含了诸如波特率、 数据位数、 奇偶校验和停止位数等信息。在查询或配置串行口的属性时, 都要用DCB结构来作为缓冲区。 调用函数能够获得串口的配置, 该函数把当前配置填充到一个DCB结构中。一般在CreateFile0打开串行口后, 就调用GetCommState()i函l数来获取串行口的初始配置修改串行口的配置, 应该先修改DCB结构, 然后再调用SetCommState0函数用指定的DCB结构来设置串行口[3]。 除了在DCB中的设置外, 程序一般还需要设置I/O缓冲区的大小。Windows用阳缓冲区来暂存串行口输入和输出的数据, 如果通信的速率较高, 则应该设置较大的缓冲区.调用SctupCommOi函数能够设置串行口的输入和输出缓冲区的大小。在对串口进行读写的时候, 需要考虑超时问题。超时有两种: 间隔超时和总超时。间隔超时是指在接收时两个字符之间的最大时延, 总超时是指读写操作总共花费的最大时间。写操作只支持总超时, 而读操作两种超时均支持。在用异步方式读写串行口时, 虽然在完成读/写操作以前就可能返回, 但超时依然是起作用的。在这种情况下, 超时规定的是操作的完成时间, 而不是读/写函数的返回时间。 (3)串口的读写控制 这部分内容关系到串行通信的核心内容, 将分读/写串口API函数、 异步I/O操作两部分介绍。读/写串口API函数: win32中使用ReadFile0函数或者ReadFileEx0数从串口中读取数据。两者区别是: 前者对同步操作和异步操作都支持, 而后者仅支持异步操作。ReadFile0函数第四个参数, 在读操作之前应置为0。同样, 写串口函数也有两个, 一个是writeFile0, 另一个是writeFileEx0前者同时支持同步操作和异步操作, 而后者仅支持异步操作。写函数不论在声明形式上还是在使用方法上都与ReadFile0十分相似, 具体能够查看MSDN帮助文档。 异步I/O操作: 在用ReadFile0和writeFile0读写串行口时, 既能够同步执行, 也能够异步执行。在同步执行时, 函数直到操作完成后才返回。这意味着在同步执行时线程会被阻塞, 从而导致效率下降。在异步执行时, 即使操作还未完成, 调用的函数也会立即返回。费时的I/O操作在后台进行, 这样线程就能够干别的事情。例如, 线程能够在不同的端口上同时执行I/O操作, 甚至能够在同一端口上同时进行读写操作。”异步"一词的含义就在于此。ReadFile0和writeFile(i)函数是否为异步操作模式是由CreateFile函数决定的。如果在调用CreateFileO创立句柄时指定了FILE FLAG OVERLAPPED标志, 那么调用ReadFileO和writeFileO对该句柄进行的读写操作就是异步的, 如果未指定异步标志, 则读写操作是同步的[5]。 3.3.3 串口类的开发 串口类是对通信API函数进行最一般的封装, 以便能够应用于不同的串口应用程序开发中。现在开发串口应用程序的方法很多, 如微软的MSCcomm控件, 可是MSComm本身存在一定的弊端, 如只能发送ASCII码等。从用户角度讲上位机串口通信模块的使用流程一般分四个步骤, 即”初始化并打开串口--监视串口--读写串口--关闭串口”。封装串口类CMyCom的成员函数时也正是基于这种理解, 各成员函数介绍如下: (1)初始化并打开串口函数 函数声明形式: BOOL CMyCom: InitMyCom(int nPort, int nBaud, int nDataBits,int nStopBits) 参数含义: nPort为端口号, 支持串口l至串口4; nBaud为波特率, 支持常见波特率如9600baud; nDataBits为数据位数, 支持5—8位: nStopBits为停止位数, 支持1—2位; 返回值: 当设置成功后, 返回值为TRUE; 失败时, 返回值为FALSE; 实现原理: 本函数只支持操作一个串口。程序根据串口配置情况调用CreateFile0函数打开串口, 随后启动串口监视线程等待应答数据。 图3-1-InitMyCom()函数流程图 (2)写串口函数。 函数声明形式: BOOL CMyCom: WriteMyCom(char*bur,DWORD dwBufLen) 参数含义: buf为待发命令的缓冲区指针, dwBufLen待发字符。 返回值: 返回值为实际发送的字符数; 实现原理: 该函数调用WriteFileO发送命令并调用GetOverlappedResult0函数返回实际发送的字符[6]。 第四章 使用SPComm控件实现串口通信 Delphi能够利用的众多串行通信控件中,SPComm控件可谓是最简单,功能比较强大的一种。它支持Data Bits(数据位)、 Parity(奇偶校验)、 Stop Bits等设置,支持Read/Write,Timing Control(时序控制),Read In- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 多功能 环境 检测 系统 毕业设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文