基于物联网技术的体温检测仪设计网络测控技术和仪器工程专业
基于物联网的体温检测仪设计课题名称基于物联网技术的体温检测仪设计 目 录摘要 IIAbstract III第一章绪论 11.1温度仪表监测系统的研究背景及意义 11.2国内外发展现状 1第二章硬件与通信协议介绍 32.1单片机简介 32.1.1单片机的定义 32.1.2单片机端口介绍 32.2温度传感器DS18B20介绍 52.2.1主要特征 52.2.2DS18B20温度传感器的工作原理 62.2.3温度传感器DS18B20的操作流程 62.3Modbus-rtu通信协议 82.3.1地址设置 92.3.2功能码 102.3.3数据区的内容 102.3.4错误校验 11第三章系统硬件设计 133.1系统结构设计思路 133.2系统硬件设计 133.2.1电源部分 133.2.2单片机最小系统 143.2.3通信电路 153.2.4温度采集电路 163.2.5声光报警电路 16第四章系统软件设计 184.1单片机开发环境 184.2项目开发过程 184.3单片机程序 194.3.1主程序 194.3.2初始化程序 214.3.3通信程序 22第五章实物调试 27第六章结束语 28参考文献: 29III致谢 30附录Ⅰ电路原理图 31附录Ⅱ单片机程序 32摘 要本设计以STC89C52RC单片机作为主控芯片,DS18B20为温度传感器件实现了体温检测的功能。
DS18B20器件具有单总线方式接口简单,测温精度高,抗干扰的能力强等一些特点本设计设计了六路DS18B20温度传感器,可以同时采集六路温度数据,控制板设计有485总线通信接口,可以通过RS485总线,按照标准的Modbus-rtu协议,将采集到的温度数据通过GPRSDTU传送到云端设计中采用济南有人公司是云平台,当今社会是大数据的时代,通过云平台,可是便于医生实时检测病患体温数据,同时也方便追溯过去以往体征数据,非常易于搭建数据管理系统系统可以通过云端修改温度报警的上下限阈值,采用485方式的通信,对于设备扩展组网有很大的灵活性由于DS18B20的测温精度较高,因此本设计的温度监测精度,可以达到小数点后一位,正常人体体温测量所需的精度要求远程通信协议选择工业上常用的modbus-rtu协议此协议适合数据传输,稳定性很好,已经经过多年工业上的检验本设计有上、下限温度报警功能及温度的声音和发光报警本设计最后经过实物调试验证,完全实现了最初的设计要求关键词:单片机;DS18B20;Proteus仿真; Modbus-rtuAbstractThis design uses STC89C52RC microcontroller as the main chip and DS18B20 as temperature sensor to realize the function of body temperature detection. The DS18B20 device has some features such as simple interface, high accuracy, strong anti-interference ability and so on. The design and design of six road DS18B20 temperature sensor, can collect six road temperature data at the same time, control board design has 485 bus communication interface, through the RS485 bus, according to the standard Modbus-rtu protocol, the collected temperature data through the GPRS DTU to the cloud. In the design, the company of Jinan is a cloud platform. It is very easy to build a data management system. The system can modify the upper and lower threshold of the temperature alarm through the cloud, and use the 485 way of communication, which is very flexible for device expansion network.Because of the high accuracy of DS18B20s temperature measurement, the temperature monitoring of the design is also very high. Remote communication protocol selects MODBUS-RTU protocol commonly used in industry. This protocol is suitable for data transmission and has good stability. It has been tested for many years in industry. This design has upper and lower limit temperature alarm function and temperature sound and light alarm. The design is finally verified by physical debugging, which fully realized the original design requirements.Keywords: single chip microcomputer; DS18B20; Proteus simulation; Modbus-rtu第一章 绪论1.1温度仪表监测系统的研究背景及意义温度测控技术在我们的生产生活当中有着非常重要的作用,有很多场合需要对温度进行温度控制。
在工业上,温度的测控更是重中之重,比如石油,化工等一些领域,石油的提炼就要非常严格的对温度进行控制在科技飞速发展的今天,一些传感器的发展也是有了突破性的进展,这些很多都是依赖化工行业的发展,温度传感器的发展更是日新月异以往的热敏电阻测温方法精度不高,还要占用单片机等设备的ADC硬件资源,相比数字式温度传感器DS18B20就会逊色很多DS18B20数字式温度传感器的精度最高可以精确到0.065摄氏度,测温范围也可以达到-55----+125摄氏度,并且此温度传感器采用单总线的方式与MCU等设备连接,极大的节省了硬件资源因此本设计选用的温度传感器为数字式的温度传感器DS18B20本课题的设计采用了DS18B20温度传感器,实现了温度数据的采集通信采用485方式,软件通信协议选择Modbus-rtu协议,数据远传采用济南有人公司生产的GPRS DTU模块,通过无线数据传输将数据传输到有人云平台,方便数据远端查看本次课题设计的目的在于:1.熟练掌握温度传感器DS18B20模块的通信原理和接口方式及使用特点和方法2.熟练掌握51单片机的硬件资源情况及如何使用,了解汇编语言进而掌握利用C语言对单片机进行编程,熟练使用Keil C编程环境。
3.因为本设计基于MODBUS协议,所以本设计采用工业上比较常用且稳定的RS485方式通信,通信协议选择modbus-rtu协议4.由于选用了DTU模块,需要熟练掌握DTU模块的配置以及组网的方法5.了解并熟悉有人云平台的相关操作6.本课题设计的研究能让学生更好地熟练掌握基于单片机的应用系统的分析和设计方法,了解利用单片机开发产品的过程与步骤大大的提高了学生对电子数字电路,模拟电路,单片机编程等知识,为学生不如社会参加相关工作打下了坚实的基础1.2国内外发展现状1.2.1国内发展现状我国的温度测控技术相比于国外的发达国家发展较晚,大概开始与上个世纪的80年代,起点也都是在吸收国外成熟技术资料的基础之上开始的,正因为如此我们有国外资料的借鉴,发展的速度就会比较快速有一些领域这个差距可能至少差的半个世纪,比如有的发展中国家在某一领域现在的技术实力可能会和发的国家半个世纪之前的技术实力差不多,有的甚至还不如发达国家半个世纪之前的技术,比较落后不管怎么说,科技都是在发展了,而且我国的自动化产业也在向着智能化,稳定性高,大规模集成等方向发展计算机技术的发展更是带动了许多行业革命性进步国内在物联网行业的发展时间比较长,也得到了良好的发展成就,目前已经产生相对完善的发展体系,我国研究组织在十年之前就开始对传感网进行深入分析,比如我国中科院上海微系统和信息技术研究所、南京航空航天大学、西北工业大学等众多著名研究组织,现在也开始不断研究"物联网"科技和相关系统,且得到较多成果。
2009年,我国设计出第一颗物联网核心芯片---"唐芯一号"当年11月初,综合投资高于2.76亿元的十一个物联网项目在江苏无锡顺利签署合约,该项目设计主要涉及传感网智能科技研究、传感网络使用研究、具体系统集成等与物联网产业相关的众多前瞻行业,上述项目的开启奠定国内传感网络的发展基础2010年工信部与发改委的多次制定众多政策扶持物联网规模化发展,在2020年以前国内就开始筹划大概四亿元的资金扶持物联网规模化的发展在我国重大科技专项、国家自然科学基金以及"863"规划等方针政策的扶持下,我国全新宽带无线通信、功能齐全且可以规模化并行处理技术、光子与微电子器件和集成系统技术、传感网科技、物联网体系结构和其发展技术等分析、研究得到较大成就,多次创建传感科技国家核心实验室、传感器网络实验室以及相关行业发展重点等众多具备专业分析能力的组织与规模化发展中心,开展众多具备典型引导价值的重要发展项目现在,北京、上海、江苏、浙江与深圳等我国发展水平较高的地区逐渐重视对物联网发展规划的分析,修订与此行业有关的发展计划与规则制定众多与行业未来发展有关的规章制度与条文根据国内现实发展情况进行研究,物联网行业开始变成各个地区战略性全新产业未来发展的关键领域,也是众多地区抢占的重要产业。
1.2.2国外发展现状而在国外,发达国家自动化方面的研究已经很久了,从最早的组合仪表,继电器控制等方式已经慢慢向着计算机发面发展测温方面也是同样世界各个国家的温度测量与控制技术发展的很快,有些国家在逐步已经实现自动化的基础上正朝着无人化,智能化的方向发展国外的主要产品有很多,比如有温室控制系统,恒温箱等全球单片机年产量大概是七亿片,每年销售业绩大概是三十亿美元4位单片机具备诸多优势,比如性价比高、使用时间长、涉及范围广泛等优势被普遍使用在众多加点产品内8位单片机是全球主要使用的产品,目前比较普遍的类型是Intel8048、8051系列,此处后者这个类型逐渐变成现在我国单片机应用的主要类型,在家电、工业发展、智能仪器等行业内都可以看到此产品的使用伴随集成电路工艺的健全与持续提升,融合ASIC与RISC相关科技之后,也开始设计出ASIC型(UC51)与RISC型(32位)等相关型号,这也是此林给未来发展趋势和潮流早期的水银温度计虽然精度高,但是测量时间长,读数不方便,目前越来越被淘汰,数字温度传感器,测量温度速度快,甚至可以做到秒测,同时数值可以实时的显示出来,这样便于读出同时还可以针对高低温进行报警。
目前在医院,对于心跳,血氧饱和度等相关体征数据已经可以通过携带型传感器,通过物联网实时监控,但是,人体体温仍然通过护士通过人工测量并记录的方式实时记录病患体温,这既消耗时间,同时也极大地增加了记录错误,反馈不及时等耽误治疗的风险在美国许多的私人医院,已经和美国苹果公司建立起物联网医疗系统,通过患者携带的智能穿戴设备,实时监测患者各项身体指标,至其中就包含人体体温,智能穿戴设备会实时将信息采集并传送至医院的云台数据库进行大数据分析,一旦病患出现病变趋势,便可快速有效地给与病患治疗本设计便是基于物联网的体温检测仪,就是基于物联网快速、有效、便捷等特点,通过单片机来实时采集并处理数字温度计的数据,测量温度速度快,甚至可以做到秒测,同时数值可以实时的显示出来,这样便于读出通过透传云服务器,查看终端设备数据也就是温度值,展现出病患的体温变换趋势,同时还可以针对高低温进行报警提醒医护人员加以重视目前我们称作的"物联网",主要表示利用射频辨别、红外感应器、全球定位系统以及激光扫描器等相关数据传感设施,根据提前商定的有关合约以及条文,将所有产品和互联网彼此联系在一起,开展数据沟通与交流,进而完成智能化辨别、定位、追踪、监控以及管理的重要网络形式。
简单的说,物联网是"物物彼此联系的网络"目前主要包含两部分含义:第一,物联网重点与基础依旧是网络,主要在网络基础上进行深入延伸以及不断扩展;第二,主要用户端延伸以及扩展到所有物品之间,开展高效的信息沟通以及无障碍通讯物联网最初定义是美国Auto-ID实验室在二十世纪末期第一次指出的,2005年世界电信联盟在全球峰会上正式公开《ITU互联网报告2005:物联网》,第一次指出"物联网定义",且直接清晰地表明"物联网社会马上来临"标志此领域的发展正式开始现在,全球众多国家的物联网大致位于早期技术分析和测试时期:美、日、韩等众多发展水平较高的国家开始加大投资,进一步分析探索物联网,且进一步开启以物联网为重要前提的"智慧地球"、"U-Japan"、"U-Korea"、"物联网发展规划"等众多世界性质的地区发展规划2009年初期,在美国总统奥巴马和美国工商管理者的"圆桌会议"中,IBM企业领导者清楚表明"智慧地球"的定义,全面叙述了与之相关的观点,也就是将传感器添加到电网、铁路、桥梁与公路等相关物体中,能量相对强大的计算机群,可以对所有网络内部人群与物体开展管理以及监督如此,大众就能相对精准的使用动态形式确保大众日常生产以及生活的顺利进行,进而进入到"智慧"阶段。
2009年5月7、8日,欧洲等众多国家的领导者、公司管理者与专家学者在布鲁塞尔针对物联网开展深入分析,且确定发展欧洲国家经济的具体方式欧盟委员会信息社会和媒体组织管理者鲁道夫施特曼迈尔指出:"物联网和相关技术就是此后发展的重点,也是不可忽视的关键部分"2009年中期欧盟制定且披露了新阶段物联网的发展规划日本与韩国主要制定"U-Japan""U-Korea"的发展规划与想法"U"源自拉丁文"Ubiquitous",主要含义是"存在于任何地方"日本把物联网当做本国主要发展计划,且贯彻到现实中;韩国制定《基于IP的传感器网基础设施构建基本规划》,直接把物联网明确成未来发展的全新动力和增长点1.3本设计研究内容及进度安排一、本文主要使用单片机来查找以及获得数字温度传感器的相关内容,且把信息直接呈现给外界研究内容:1、温度数据界面显示2、智能报警3、通信协议编写及调试4、云平台配置二、难点:1、DS18B20驱动软件编写2、MODBUS通信协议编写3、透传云服务器GPRS-DTU配置三、拟采取的解决措施1、对照DS18B20数据手册查看时序图,并查找相关资料,修改程序2、查找资料理解MODBUS通信原理。
3、查询透传云厂家,寻找技术支持第1-2周:论文选题,查阅资料,决定毕业设计方向第3周:完成开题报告终稿并上交打印版第4-5周:了解所用芯片功能,研究MODBUSRTN通信协议,熟悉proteus软件第6-8周:用proteus绘制电路图,并用keil编写程序第9周:完成设计作品并测试功能第10周:撰写论文初稿第11周:修改论文第12周:再次修改论文,确定论文终稿并上交第二章 硬件与相关知识介绍2.1单片机技术及选择单片微型计算机(MCU)自上个世纪问世以来,对人类社会的发展做出了突出的贡献,对人们的生产、生活产生了深远的影响尤为突出的是美国的Intel公司最早生产的MCS-51系列单片机,因为具有处理功能强、集成度高、可靠性高等一些特点自从问世以来,就在单片机的市场占据了很大的市场而如今单片机的发展也不再是一家独大,单片机的厂家也越来越多,芯片的型号更是多的数不清,单单从性价比来看51单片机已经不再占据多大的优势,而近几年新出的STM单片机,PIC单片机等等抢占了单片机市场的很大领域但是本设计本着从易于上手,资料容易获取等方面考虑,还是选用了STC89C52RC单片机2.1.1单片机介绍本设计选用的单片机为AT89STC89C52RC51单片机,它是由宏晶科技有限公司生产的一款8位单片机,STC89C52RC单片机实物外形图如图2-1所示:图2-1STC89C52RC单片机实物图2.1.2单片机端口介绍1.典型的功耗小于0.1微安,需要通过外界中断来激发,在中断执行且顺利返回之后,继续操作之前的用户程序。
2.空闲模式的时候其典型的功耗为2毫安3.正常的工作模式:典型的功耗4Ma~7mA4.此单片机可以由外部中断来唤醒设和做一些低功耗产品STC89C52RC单片机的引脚功能如图2-2所示图2-2STC89C52RC引脚图VCC(40引脚):接电源电压VSS(20引脚):接地P0端口(P0.0~P0.7对照39~32引脚)其主要是重要的漏极开路8位双向I/O端口P0口是准双向口,开漏输出,当作为输出时需要接若上拉电阻P1/P2/P3端口(P1.0~P1.7对应于1~8引脚)P1端口是真正的双向口,有内部若上拉电阻,作为输出时,不需要外接弱上拉电阻P3口的第二功能如表2-1所示:37表2-1P3口引脚的复用功能RST(9引 脚):复位引脚此引脚接入高电平信号时,单片机会产生复位操作默认情况下此引脚接入电平信号29,30,31引脚本设计中用不到,再次不做介绍,如要了解,请自行查阅资料18,19引脚的功能是接入外部晶振功能2.2温度传感器介绍目前我们使用的传感器表现出众多优势,比如,占地面积非常小,单总线的不需要使用过多的硬件资源,抗干扰水平不断提升,测温精准度很高,容易扩展,正是因为具有以上这些特点,促使DS18B20数字温度传感器得到各行业的认可和使用,在目前得到了良好的发展和应用,也是我们需要关注的重要型号。
接下来我们深入研究上述传感器所具有的封装形式,详细情况恶意参考图2-3内容:图2-3DS18B20器件的封装图2.2.1主要特征接下来我们开始具体分析,研究结果主要为:1、全数字形式的温度转换和传送2、使用领先的单总线通信形式,在一定程度上节约单片机所需要的硬件资源,因此具备良好的节约性3、分辨率巅峰数值为12位,精度度最高可以达到土0.065摄氏度4、运行在12位分辨率时期的最长运行周期是750毫秒5、还能自主确定以及挑选寄生运行形式6、测温领域主要是–55C ~+125C (–67F ~+257F)7、内置主要包含EEPROM,也具备有限温警示作用8、内部也包含64位的光刻ROM,甚至新增产品序列号,便于多个机器的联系和互动9、主要使用多种类型的封装方式,可以满足现实中众多硬件系统提出的标准2.2.2DS18B20温度传感器的工作原理DS18B20温度传感器测温和信息传送基本上汇聚在单个芯片内,所以其所具备的抗干扰水平以及能力和其他型号相比更加强大,因此可以在更多行业和领域使用,目前也是我们普遍使用的型号主要运行周期基本上可以被划分成两方面,主要是测试温度以及整合信息内容在诠释其具体运行环节之前我们需要充分掌握以及认知其内部所具备的所有存储资源。
此型号的温度传感器总共被划分成三类形式,也是目前我们经常使用的:只读存储器ROM,主要是存储与之相改的ID编码,前8位属于单线系列编码(具体编码则是19H),之后的48位是就是芯片内最重要的序列号,也是辨别的核心内容,最终的8位数据是之前所有数据的CRC码(冗余校验)数据在出厂的时候就被全部设定完成不能让用户随便修改此类温度传感器总共包含64位存储区ROM数据暂存器RAM,主要使用与信息统计以及存放与传送数据内容,信息在掉电之后就随之丢失,此类传感器总共包含九个字节的数据存储区RAM,上述单个字节长度一般是8位前两个字节是温度转变之后的数据值的具体内容,第3以及第4个字节主要采用用户EEPROM(一般出现在温度报警值储存)的镜像等待重新上电复位时上述数值被刷新第5个字节属于第3个EEPROM镜像第6以及7个,第8个字节全部属于计数寄存器,主要目标是让用户全面了解到更高温度分辨率而的设定,此外其还是内部温度转变和统计的短时期存储单元第9个字节属于之前所有字节的CRC校验码EEPROM存储区,主要功能是存储需要长久存放的主要信息和内容,上、下限温度报警值和核查数据,DS18B20温度传感器总共包含三位EEPROM存储区,且在存储区RAM都具有镜像,以便便于用户的执行。
在用户读取温度数据之前都需要开展相对繁杂且比较精准的时序处理,这是因为DS18B20温度采集模块的硬件简单,结果就导致在软件上要有很大的开消,这也是节省硬件资源的一种方式2.2.3温度传感器DS18B20的操作流程1.复位操作:要对DS18B20进行操作第一要直接对此类型号的传感器芯片开展复位操作,上述操作目前表示由单片机等控制器给温度传感器在单总线上最少要480uS的低电平信号假如上述传感器在得到此复位信号之后,可以在15~60uS以后给予控制器回复单个表示芯片存在的脉冲信号2.代表存在的脉冲信息:在控制器发放复位命令电平完结之后,我们就可以看到控制器此时把单总线内的电平信号不断拉高,便于在15~60uS之后可以直接接代表存在的相关脉冲信号,上述信号也是我们需要关注的内容,其表示60~240uS范围内的低电平信号此刻,控制器和DS18B20温度传感器两者之间的顺利沟通和互动基本上具有了一定的基础,此后最重要的步骤是控制器与温度传感器双方间的数据通信复位时期假如当前的低电平信号时间缺少或者数据线断路都无法得到上述代表存在的脉冲信号,所以在早期设计的时候就需要充分关注到上述意外问题出现时的解决方式。
3.由控制器下发的ROM命令:当控制器与DS18B20温度传感器双方打完了上述的沟通招呼后,就要开始进行交流读取温度数据了,温度传感器内的全部ROM指令属于有条指令,在单个工作周期只可以同时发放单个指令,上述指令主要是芯片查找、指定匹配芯片、跳跃ROM、报警芯片查找、读取ROM信息ROM指令全部属于8位数据长度,主要作用是对芯片内存在的64位光刻ROM开展操作因此现实目标是可以在总线上挂接多个同类器件时直接高效的开展数据整合非常明显的时候,在单总线上能同时期悬挂众多同类器件,此外利用读取所有器件内唯一ID号来进行分辨,基本上不会出现问题通常来说,只挂接一个温度传感器芯片时就不需要关注此ROM指令(值得关注的是:此处的跳过ROM指令并非不发送上述命令,主要是使用独有的“跳过指令”来操作和进行)4.控制器在发放对存储器的操作指令之后:在控制器将ROM指令下发给对应的传感器之后,我们就可以持续不停歇的发放对存储器操作的相关命令操作命令也是相同的8位,总共是六个指令,存储器操作的指令主要包含精准选取、详细撰写、开展拷贝以及到EEPROM存储区、把其中的报警值拷贝到RAM、温度数据转变、工作形式的转变。
存储器操作主要作用是命令此类传感器需要完成怎样的任务,在何时完成任务,上述步骤就是我们需要管控的关键部分,也是不容忽视的重要方面5.数据信息读、写:在某个存储器操作的指令全部完结以后,此时需要执行指令或者信息的操作,上述操作需要参考存储器内的相关指令来确定,不能随意进行假如要完成温度转换指令,此时控制器要全面等待传感器操作完自身指令,通常转换周期大概是500uS上下假如执行数据的读写指令,此时要全面依照以及遵守温度传感器所具备的读写时序来进行单个温度传感器假如要读出目前的真实温度信息,此刻就需要完成两个运行周期,首个工作周期主要是:复位指令、跳过ROM指令、操作温度转移存储器操作的命令[44H]、需要等待大概500uS的温度转换周期之后顺利执行接下来的周期主要是:复位指令、跳过ROM指令、顺利读取存储器操作指令、读数据(最多9个字节长度,中途能暂停操作,只读取单纯的温度值的时候读前两国字节就能顺利完成任务)2.3Modbus-rtu通信协议Modbus协议分为Modbus-rtu和Modbus-ASCII协议,实际应用时,考虑到数据传输的效率问题,所以此刻挑选Modbus-rtu协议就可以得到更好的效果,得到更大的发展,也是目前我们主要使用的方式。
Modbus属于重要的串行通信协议,出现在二十世纪八十年代左右,为采用可编程逻辑控制器(PLC)而撰写的在此之后得到良好的发现,现在逐渐变成工业以及相关行业通信协议主要遵守的准则,此外目前是工业电子设施彼此间普遍使用的重要连接形式,还是未来的发展潮流,不容忽视,需要我们深入开展分析Modbus和其他普通协议相比具备一定的优势,因此应用范围更加广泛,主要因素是:正式发表此外不存在版税标准,应用简单直接,不存在任何阻碍和限制站在供应商的角度上进行分析,修改转移原本的位或字节没有相关限制和阻碍,Modbus支持众多设施连接在相同互联网内开展通信,根据案例进行分析,某个测量温度与湿度的设施,最终把测试结果传送给计算机在数据筹集和监管监视控制系统(SCADA)内,Modbus一般功能是连接监控计算机以及remoteterminalunit(RTU)此协议现在大部分使用在串口、以太网和相关认可互联网协议的网络类型大部分Modbus设施通信可以利用串口EIA-485物理层完成操作[1]站在串行连接的角度上进行分析,只包含两类变种,主要使用数值数据代表与协议细微内容上的差异ModbusRTU属于相对紧凑,使用二进制代表数据信息的形式,ModbusASCII也是我们可以顺利读取,较长的代表形式。
上述变种都能采用串行通讯(serialcommunication)形式RTU格式未来的命令/数据都可以得到循环冗余校验的校验和,但是ASCII格式只能使用纵向冗余校验的校验和被配置成RTU变种的节点无法与设定成ASCII变种的节点通信,反过来也是如此,此部分也是需要我们格外关注的内容Modbus协议目前master/slave架构的协议其中最主要的部分是master节点,与其他采用Modbus协议参加通信的的slave节点不同所有slave设施都具有单独的,不重复的地址,也是辨别的关键点在串行与MB+网络中,必须被指定成主节点的节点才能开启命令(在以太网中,所有设施都可以发放单个Modbus命令,然而一般也存在单个主节点设施开启指令)一个ModBus命令主要涵盖准备操作的设施Modbus地址全部设施都可以得到命令,然而必须是指定位置的设施才可以执行和回应指令(地址0并非如此,指定地址0的指令是广播指令,全部得到指令的设施都可以顺利执行,但是不会进行回应)全部Modbus命令包都涵盖检查码,进而明确最终到达的命令是否被损坏通常ModBus命令可以指令单个RTU转变其寄存器的某值,控制或者读取单个I/O端口,和指挥设施回送单个或者众多寄存器内的信息内容。
有大量modems与网关支持Modbus协议,由于后者协议比较单一且便于复制其中存在的众多内容都是为协议专门设计的借助有线、无线通信脑汁短消息与GPRS的差异来顺利完成但是设计者也需要处理众多阻碍和问题,比如高延迟以及时序等相关问题事实上MODBUSRTU和ASCII之间的内容全部相同,没有任何差异,主要的不同点是ASCII后者使用“:”标识帧起始,使用“CRLF”标识帧完结校验使用LRC,将RTU帧内的字节内容转变成两个ASCII字符例如在RTU形式下设施地址01仅仅是单个字节,在ASCII形式下转换成字符串“01”(16进制的3031)前者的设施标识,功能码等基本上和MODBUSRTU类似,都能被当做是MODBUSRTU报文前边增加头,去除CRC校验尾MODBUS协议清楚确定出四类主要数据种类:可读写位数据,只读位数据,只读16位数据,可读写16位数据上述数据内容主要被叫做线圈与输入状态,输入与保持寄存器等MODBUS协议在智能设施内的使用相对普及,主要叙述内部报文和相关命令,但是智能设施怎样采用上述协议进行操作呢?假如智能设施存在开关量传送,模拟量传送和计数器等相关装置非常明显的是开关量输入能映射到10001地址,第一路开关量填写10001,第二路则是10002,„„„上述输出映射在00001地址,第一路是00001,第二路是00002,„„.模拟量输入映射到30001地址,第一路是30001,第二路是30002,„„模拟量输出与计数器输入映射在40001地址,第一路是40001,第二路是40002,„„显然还能把全部数据都存放在保持寄存器内,上述对于MODBUS主设施访问时相对轻松,工作效率也随之提升,然而操作环节较多,任务繁重。
目前设计使用modbus-rtu协议,因此,当我们挑选设施时需要根据上述选择,此外波特率选择的9600,数据位挑选八位,校验位挑选无,停止位挑选一位,设施地址确定成一上述内容是顺利通信的重要参数,假如选择不科学,通信无法顺利进行Com口可依照自身现实情况开展挑选,此刻主要使用PC机 Com1口,因此就选择此形式Modbus-rtu通讯协议,信息在最初的时候最少使用3.5个字符的起始时间(参考下表2-1内的T1-T2-T3-T4),此外根据采用的波特率,相对轻松的统计上述真实时间此后开始后面的操作,首个区的数据就是设施地址,也是最重要的部分表2-2modbus-rtu帧格式不同区允许发放的字符全部是16进制的0-9,A-F互联网设施接连监管网络内的数据内容,主要包含起始时间在得到首个地址数据的时候,不同设施的马上开始解码,进而明确是否是对应的发送全部符号完结之后,需要由单个3.5个字符的静止停止时间,此后才可以顺利发放后面全新的数据内容上述数据信息需要全部不间断的传送在传送帧信息的时候,假如存在时间超过1.5个字符的时间时,接收设施会再次接受后续的数据,上述数据无法继续使用Modbus-rtu信息帧叙述为。
2.3.1地址设置数据信息地址主要包含8位(RTU方式),高效的设施地址范围是0-247,(数据为十进制),协议内从机设施的地址在1-247范围内主机发送命令时将从机地址添加到一帧数据的地址位上,之后放数据和校验值,最终下发命令数据帧从机响应时需要最先判定地址码,假如地址码对应,需要查看上述校验值是否合理,不存在问题之后得到数据假如中间存在细微问题,上述数据废弃成为无用数据2.3.2功能码信息帧内的功能代码是8位(RTU形式)高效的数据码范围是1-225(十进制数据)在主机给予从机传送命令信息时,数据帧内的功能代码会告知从机主机需要完成的任务和操作比如读线圈具体状态,读变量内的数据值,撰写线圈(或者寄存器)的值等功能码各不相同Modbus网络属于重要的工业通信系统,由携带智能终端的可编程序控制器与计算机利用公用线路或局部单独线路联系产生其中系统结构不只包含硬件、此外也包含软件主要被使用在众多信息采集与环节监控下表2-3是具体的功能码概念表2-3ModBus功能码2.3.3数据区的内容数据区主要包含两个16进制数据,具体值是00-FF(16进制),参考串行传输形式,主要包含单个RTU字符。
2.3.4错误校验目前我们使用的Modbus-rtu总线,一般存在两类不正确的检查方式,错误区的具体内容需要按照选择的检查方式填报在采用RTU通信协议形式的时候,此时错误校验码是16位数据值,也就是两个8位的数据字节上述不正确的校验值主要是对数据帧内的数据信息内容进行测试,接收是否出现问题的重要方式,目前我们主要使用CRC-16校验方式CRC-16校验值是一帧内的最终发送内容此校验统计得出的校验码提前发送给低位字节,之后发送给高位字节,因此其中存在的高位字节数据是整帧帧数据内最终被传送的字符内容上述错误校验主要环节为如:报文(此部分和数据位相关,不包含起始位、停止位以及随意选择的奇偶校验位)被当做接连不断的二进制,此时最高有效位(MSB)首选发送报文提前和X↑16相乘(左移16位),之后选择X↑16+X↑15+X↑2+1除,X↑16+X↑15+X↑2+1能撰写成二进制数11000000000000101整数商位可以不关注,16位余数增加此报文(MSB提前发放),变成两个CRC校验字节余数内的1均进行初始化,避免全部零变成报文被接收经过以上处理包含CRC字节的报文,假如没有问题,到接收设施之后再被相同多项式(X↑16+X↑15+X↑2+1)除,此时就可以得到单个零余数(接收设施核验上述CRC字节,且把其和被传送的CRC进行对比)。
全部运算将2当做模(不存在进位)习惯于成串发放数据的设施会最先选择发送字符最右位(LSB-最低有效位)其中在形成CRC的时候,发送首位就是被除数的最高有效位MSB因为在运算中不使用进位,为方便后续操作,统计CRC时设置MSB位于最右位形成多项式的位序也需要反过来,便于维持相同多项式MSB可以忽略不关注,所以其仅仅对商产生影响和余数没有关系形成CRC-16校验字节的主要环节为:①安装16位寄存器,全部数位都是1②上述16位寄存器的高位字节和最初8位字节开展“异或”计算最终结果放到此处16位寄存器③将其整体右移一位④假如向右(标记位)移出的数位为1,此时形成多项式1010000000000001与此处寄存器开展“异或”计算;假如向右移出数位为0,此刻回到③⑤反复③与④,一直到移出八位⑥此外八位和寄存器开展“异或”计算⑦反复③~⑥,一直到上述报文全部字节都和16位寄存器开展“异或”计算,且移位八次⑧上述16位寄存器内容也就是2字节CRC错误校验,被添加到报文内的最高有效位此外值得关注的是,在部分非ModBus通信协议内也开始采用CRC16当做校验方式,此外得到大量CRC16变种,此刻主要采用CRC16多项式X↑16+X↑15+X↑2+1,第一次装入16位寄存器是0000;采用CRC16反序X↑16+X↑14+X↑1+1,第一次装入寄存器值是0000或者FFFFH。
第三章 硬件设计3.1硬件设计思路本设计开机后首先会进行数据初始化,之后开始依次读取6路DS18B20温度数据传感器的温度数据,温度报警上限值默认设置为30摄氏度,报警下限值默认为10摄氏度系统框图如图3-1所示系统由通信部分,报警部分,电源部分,单片机最小系统部分以及温度采集部分组成当前本系统的主要部分是STC89C52RC单片机,主要利用控制选择某个DS18B20,且将检测得到的温度数据传送到单片机开展后续操作,之后将操作之后的温度产送到缓冲区,等待上位机的查询命令,设置阈值时,单片机接收到上位机发来的数据后,保存到单片机的相应的数据存储区当有温度出现报警情况时,系统会根据报警发出LED报警提示,并伴有声音报警提示报警分为上下限报警和温度传感器DS18B20断线报警图3-1 系统框图当前设计主要采用开关+5V电源确保电力,系统内电源内容只进行单纯的滤波通信选择RS485方式通信,软件协议选择Modbus-rtu通信协议选择RS485的原因是RS485方式相比RS232具有通信距离远,布线少,布线更方便,抗干扰更强等一些特点3.2电路详细设计系统分为电源部分,单片机最小系统,通信电路,温度采集电路,声光报警电路等部分。
3.2.1单片机最小系统单片机最小系统内容的电路图可以参考图3-2内容图内C4,S5,R21组成内部复位电路假如在顺利运作的时候,复位管脚被电阻R21拉低,促使其位于用户顺利操作时期在S5被按下之后,将其中的复位管脚电平拉到高电平,促使其进入复位状态,C4具备一定的去抖功能C6、C7与Y1为晶振电路,保证单片机正常工作RP1为准双向口P0口的上拉电阻根据数据手册,我们知道51单片机的P0口为准双向口,即不是真正意义上的双向口,因为当P0口做输出使用时,如果不接上拉电阻,P0口是开漏输出,需要上接上拉电阻从诶呦输出高电平的能力图3-2 单片机最小系统电路3.2.2通信接口电路电路本设计选用MAX485作为通信芯片,此芯片稳定性好,与单片机接口方便如图3-3所示电路图中D9,D10与R18,R19对电路的稳定性提供了保证芯片1脚为数据输出,2脚为接收使能,3脚为驱动器输出使能,4脚为驱动器输入,5脚为GND,6脚是联系到RS485总线的A端7脚是联系到RS485总线的B端8脚是电源线引脚电源4.25V≤Vcc≤5.75VMAX485是重要的8引脚芯片,也是目前相对标准与普遍使用的RS485收发器,只可以开展半双工的通讯,内部包含单个输出驱动器与信号接收器。
主要具备低损耗优势,静态电流只有300uAMAX485具备三态输出特点,在采用MAX485时,总线最多可以一次连接32个MAX485芯片通讯波特率最高是2.5M 图3-3485通信接口电路3.2.3温度采集电路温度采集电路如图3-4所示图中包括了温度采集电路,对应的单片机采集IO为P2.4图中电阻为若上拉电阻电容的作用为去耦电容DS18B20是常用的温度传感器,具有体积小,硬件开销低,抗干扰能力强,精度高的特点DS18B20温度传感器最大精度可以达到0.0625摄氏度,测温范围为-55℃~+125℃可以支持多点组网作用,众多DS18B20能并联在单个三线上,最多可以并联八个,完成多点测温,假如数目较多,导致供电电源电压太低,进而导致信号传输不平稳本设计从安全可靠的角度考虑采用单总线,每个总线上只有一个设备的方式图3-4 温度采集电路3.2.4声光报警电路声光报警电路如图3-5所示图中的LED代表设计中的温度数据上限或下限报警声音报警是当有任何一种报警发生时,声音报警都会发出声响当P1.1输出高电平时,三极管Q1截至,蜂鸣器关闭,当输出低电平时,三极管Q1导通,蜂鸣器发出声响当单片机的管脚P1.0为低电平时,LED等点亮,电阻R2为限流电阻,当P1.0为高电平时,LED等熄灭。
图3-5声光报警电路3.2.5电源设计电源部分电路如图3-6所示图中D11为电源指示灯,当电源接通后LED亮起,当电源关闭LED熄灭,进而判定电源运作状况R23是电源指示灯的限流电阻,目前主要使用1K的限流电阻主要参考I=U/R=(5-0.3)V/1000=4.7mA,其中0.3是LED的压降因此一般工作电流通常低于20mA目前设计相对全面稳定,设计是4.7mAC9和C10全部是滤波电容可以全面去除电源文波,促使电源波形更稳定目前主要使用外部+5V的开关电源供电,所以在电源方面,主要设计出相对简洁的滤波电路图3-6 电源滤波电路系统原理图如图3-7所示图3-7 系统原理图第四章 系统软件设计4.1单片机开发环境KeilC51软件是美国KeilSoftware企业设计的51系列兼容单片机C语言软件的重要设计环境,主要程序移植效率更高Keil软件主要包含C的编译器和宏汇编、连接器与库管理,此外也有功能齐全的在线仿真调试器等比较完善的开发预案,上述全部利用集成开发环境(uVision)把上述部分搭配起来显然,运作KeilC软件的操作系统需要WIN98、WIN2000、NT、WINXP等等相关系统。
假如你挑选C语言编程,此时KeilC软件基本上就是最佳选择Keil主要发展环节现在来看是KeilμVision2、KeilμVision3、KeilμVision4、KeilμVision5等多个时期目前主要选择的开发环境是KeilμVision4,由于其在2009年初期设计和公开,在发布之后经过一定时期,得到用户的检验,此版本相对稳定,此外部分新功能便于用户的使用,效果较好4.2项目开发过程装置KeiluVision4之后,最先开启软件,主要界面参考图4-1内容进入开发环境之后点击“project”,此时出现下拉菜单,在下拉菜单中挑选“newuVision4project...”,来创建单个工程此后会弹出选择工程路径和需要命名的对话框,此时依照个人需求进行设定确定工程名之后,软件会让用户挑选CPU,此时我们主要选择Atmel菜单下的AT89C52的CPU此步骤结束之后,全部工程设定结束图4-1KeiluVision4软件开发环境此后就需要建设全新的“XXX.C”文件最先我们需要单击“File”菜单,在下拉列表中挑选“NEW…”,新建之后点击存储按键在选择保存C文件的路径和文件名之后我们就能根据自身需求开展后续设定。
此时C文件随之设置技术上述C文件通常和之前设定的工程文件保存在相同目录内4.3单片机程序功能目前单片机程序主要包含主程序,Modbus-rtu函数,CRC-16函数温度采集函数,初始化函数等本设计是基于单片机的体温测试系统,设计主要使用DS18B20来采集人体温度,使用单片机对温度信息进行读取,实现精度为0.1℃的精确检测下位机采用MODBUS协议,通过485接口与GPRS-DTU模块相连,将温度数据传输到透传云服务器上,通过电脑查看实时数据,历史数据和波形通过获取人体温度的实时数据来对温度进行控制,借助透传云系统,可以设置温度上下限当温度超过上下限时,通过微信来进行报警4.3.1主程序主程序流程图如图4-2所示单片机上电后首先初始化,将一些重要数据做初始化处理,其次调用温度采集函数读取温度数据,并作数据处理为数据通信作准备然后再调用报警函数处理报警消息,如果实时温度数据有超限发生,则对应的报警指示灯亮并伴有声音报警提示通信程序通过定时中断与UART接收中断配合使用当接收完一帧数据以后,判断这一帧命令的含义,再根据命令做数据回复具体通信处理请参考Modbus-rtu协议图4-2主程序流程图4.3.2初始化程序初始化程序是在程序运行之前做数据等处理的函数本设计的初始化函数主要是对温度的报警上下限、报警输出初始化报警流程图如图4-3所示。
初始化函数如下:/*****************************************************函数功能:报警函数***************************************************/ voidalarm(){if ((T1_Value>=Alarm1_H_Value) || (T1_Value<=Alarm1_L_Value) || (T2_Value>=Alarm2_H_Value) || (T2_Value<=Alarm2_L_Value) || (T3_Value>=Alarm3_H_Value) || (T3_Value<=Alarm3_L_Value) || (T4_Value>=Alarm4_H_Value) || (T4_Value<=Alarm4_L_Value) || (T5_Value>=Alarm5_H_Value) || (T5_Value<=Alarm5_L_Value) || (T6_Value>=Alarm6_H_Value) || (T6_Value<=Alarm6_L_Value)) //上限或下限报警 {Alarm_LED=0; //LED报警输出Alarm_Sound=0; //声音报警输出 } if ((T1_Value
温度实时数据分别放在regGroup[X]存储区本设计中的通信参数设置为波特率9600,通信地址为默认1,8位数据位,1位停止位,无校验Modbus-rtu命令功能码使用03部分代码如下:第五章 实物调试本设计实物如图5-1所示焊接好硬件控制板并且烧写单片机程序,单片机程序通过USB转TTL模块烧写,烧写软件使用宏晶官方提供的串口烧写工具485通信连接方式为控制板的A端连接DTU的485接口的A端,控制板的B端,连接DTU的485接口的B端连接好之后就可以给设备上电了图5-1 实物连接图DTU配置如图5-2所示首先进入有人官网注册云账号,之后通过串口按照步骤配置DTU设备DTU串口参数设置为波特率9600kbps,无校验,8位数据位,1位停止位之后插入一张有效的联通或是移动电话卡,再次上电后即可接入有人的云平台图5-2有人DTU配置步骤图登录有人云平台后,需要对云进行配置,有人云平台的配置首先需要添加数据模板,配置如图5-3所示图5-3有人云配置添加完数据模板后,即可添加设备,如图5-4所示按照DTU的配置参数添加设备ID和通讯密码即可设备类型选择默认设备,通讯协议选择Modbu-。




