基于485通信的网络系统毕业设计.doc_第1页
基于485通信的网络系统毕业设计.doc_第2页
基于485通信的网络系统毕业设计.doc_第3页
基于485通信的网络系统毕业设计.doc_第4页
基于485通信的网络系统毕业设计.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

常熟理工学院毕业设计(论文) 本科毕业设计(论文)题目 基于485通信的网络系统研究与设计 学 院 物理与电子工程学院 年 级 2008级 专 业 电子科学与技术 班 级 y051081 学 号 y05108123 学生姓名 王 辉 指导教师 居伟骏 职 称 讲师 论文提交日期 2012年5月24日 32常熟理工学院本科毕业设计(论文)诚信承诺书本人郑重声明: 所呈交的本科毕业设计(论文),是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。本人签名: 日期:常熟理工学院本科毕业设计(论文)使用授权说明本人完全了解常熟理工学院有关收集、保留和使用毕业设计(论文)的规定,即:本科生在校期间进行毕业设计(论文)工作的知识产权单位属常熟理工学院。学校有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许毕业设计(论文)被查阅和借阅;学校可以将毕业设计(论文)的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编毕业设计(论文),并且本人电子文档和纸质论文的内容相一致。保密的毕业设计(论文)在解密后遵守此规定。本人签名: 日期: 导师签名: 日期: 基于485通信的网络系统研究与设计摘要基于51单片机的485网络系统的算法研究,通过485总线组成远距离数据采集控制系统。在分析了不同类型的单片机的特点及单片机与单片机机通信技术的基础上,设计了单片机控制的采集系统,并通过串口通信实现单片机与主机之间的通信,实现数据的传送并将数据在主机上显示及存储,完成单机的多通道数据采集系统的设计及实现。通信包括一个主机和两个从机,主机完成报警门限设置及1602lcd的显示,2个从机分别从测量环境温度、湿度。一个主机和两个从机的软件模块的算法分析。温度ds18b20传感器,湿度传感器hs1101,分别采集数据通过485总线传输到由51单片机做的主机,主机判断是否超过门限设置,如果超过门限设置就报警。整个网络同步运行。设置主机和从机之间的通讯协议,以便整个网络更好的构成一个独立框架不受其它信号的干扰。提高整个网络软硬件方面的可靠性。关键词: 485总线 数据采集 通信协议 communications network system research and design based on the 485abstract485 network system of the algorithm and the research based on the 51scm. on the analysis of the different types of single chip microcomputer and the characteristics of the single chip microcomputer and pc communications technology, and on the basis of the design of the single chip computer control acquisition system, and through the realizes serial communication of communication between the microcontroller and host, realize the data to the data transmission in host display and storage, complete the single multi-channel data acquisition system design and implementation. communication include a host and two from machine, the host complete alarm threshold set and 1602 lcd display, 2 from machine respectively from the measurement environment temperature, humidity. a host and two from machine software module algorithm analysis. temperature sensor ds18b20, humidity sensors hs1101, collect data through the 485 bus respectively by 51 scm transmissions to the host, the host determine whether more than threshold set, if more than threshold set to report to the police. the whole network synchronization operation. set the host and the communication protocol between from machine, so that the whole network better constitute an independent frame from interference from other signals. improve the whole network of hardware and software reliability. keywords:485 bus; data acquisition ; protocols communication 目录第一章 绪论11.1 课题研究背景概述11.2 课题研究的意义11.3 本论文的主要内容和结构安排2第二章 系统分析及总体设计32.1系统功能简介32.2系统总统结构设计32.3 本章小结3第三章 系统各模块硬件设计及软件实现43.1温度采集模块设计43.1.1 温度ds18b20传感器工作原理43.1.2 ds18b20连接单片机的电路图43.1.3 温度采集模块流程图53.2湿度采集模块设计53.2.1湿度传感器hs110153.2.2湿度传感器hs1101与单片机连接图53.2.3湿度采集模块流程图73.3报警模块设计73.4液晶显示模块83.3.1 字符型液晶显示模块引脚83.3.2 字符型液晶显示模块内部结构93.3.3 报警模块及lcd显示电路图93.3.4 报警模块及lcd显示流程图10第四章485总线网络系统软件部分114.1 系统结构114.1.1总体框架114.1.2芯片介绍114.2 485总线介绍124.2.1 485总线电气特性与通讯距离144.2.2 485总线匹配154.3 485通讯协议介绍154.3.1 485通讯帧格式介绍164.4通信软件设计174.4.1 从机通信软件设计174.4.2 主机通信软件设计184.5 主机接收与发送194.6 本章小结20第五章 功能仿真与测试215.1 调试平台215.1.1 proteus的简介215.2调试及结果215.2.1 测试环境及工具215.2.2 测试方法215.2.3 测试结果分析22参考文献24致谢25附录 主要模块的c语言26第一章 绪论1.1 课题研究背景概述rs-485是eia(美国电子工业协会)制定的平衡发送、平衡接收的标准异步串行总线,它具有传输距离远、灵敏度高、多点通信能力强等优点。在由以单片机为核心构成的仪器仪表、智能设备等诸多数据采集系统中,往往需要实现计算机与单片机之间的数据交换,这也就是单片机与计算机之间的通信,以此来充分发挥单片机与计算机各自的长处,提升整个应用系统性能及性价比。传统的基于rs-232协议的通信由于传输距离短、速度慢、信号易受干扰等不足,使得其应用局限性日益突出。有鉴于此,本论文中讨论了如何基于rs-485通信协议,构建rs-485通信网络,实现若干单片机与计算机之间远程远远通信。1.2 课题研究的意义rs- 485是在rs-422的基础上发展起来的,能实现一点对多点的通信,也能实现多点双向通信,但同一时刻只能有一个发送器,其余的为接收器,即一主多从的通信方式。目前市场上可供选择的rs-485总线芯片很多,其中包括可支持128个节点的maxl487和支持400个节点的sp485。利用该类芯片可直接组成简单的通信网络。rs-485总线采用差分平衡电路,即一条导线上的电压是另外一条导线的电压的取反值,接收器输入电压为两根导线电压的差值。由于其在两条线路上传递的是大小相同,方向相反的电流,而噪声电压对于线路的影响都是同时出现,两条线路的噪声电压相互抵消,极大的削弱噪声的影响。差分平衡电路不受节点之间的地平电压差的影响,eia 485没有规定引脚定义,信号功能,只需保持两根信号线相邻,在同一个双绞线中,引脚a,b不能互换就可以了,所以在工业现场使用过程中,rs-485接口没有标准的规范,有可能是db9,也有可能是rj45/rj11,但是用的最多的还是工业接线端子。由于rs-485总线采用差分平衡电路,极大的抑制噪声干扰,有极强的抗共模干扰能力,输入电压检测灵敏度为200毫伏(电压信号可以在极远距离进行恢复),使得rs-485的传输距离可以达到1200米(传输速率在110kbps情况下)。最大传输速率10mbps(传输距离12米)。rs-485支持多点通信,多个驱动器和接收器共享一条信号通道,在半双工连接模式下,只能有一个驱动器工作,多个驱动器同时启用,会产生线竞争(导致通信失败),同时容易产生大电流,可能导致芯片烧毁。一般485芯片建议使用限流和过热关闭功能保护芯片。1.3 本论文的主要内容和结构安排本论文的结构安排如下:第一章:绪论。485通信网络的简介,及485总线的电气特性介绍。rs-485是eia(美国电子工业协会)制定的平衡发送、平衡接收的标准异步串行总线,它具有传输距离远、灵敏度高、多点通信能力强等优点。第二章:系统功能分析及总体设计。系统的功能介绍。第三章:数据采集模块电路研究与设计。温度ds18b20传感器,湿度传感器hs1101,是如何工作的。lcd显示数据,以及报警。第四章:485总线网络系统通讯设计部分。主要芯片的介绍。通讯协议分为三层;物理层、数据链路层和用户层。485总线电气特性与通讯距离。第五章:功能仿真与测试。第二章 系统分析及总体设计2.1系统功能简介本论文做的是由51单片机组成的485网络系统,通过485总线组成远距离数据采集控制系统。通信包括一个主机和两个从机,主机完成报警门限设置和显示。主机完成和两个从机之间的通信,2个从机分别测量环境温度、湿度。温度传感器、湿度传感器,分别采集数据通过485总线传输到由51单片机做的主机,主机判断是否超过门限设置,如果超过门限设置就报警。并且lcd显示各数据采集器采集的数据,整个网络同步运行。2.2系统总统结构设计本系统使用到温度传感器、湿度传感器、at89c51单片机、sp485芯片、485总线、1602lcd显示器、蜂鸣器。报警单片机at89c51温度采集湿度采集a/d转换单片机单片机485芯片485芯片485芯片显示图2-1 系统的具体框架2.3 本章小结本章主要设计了整个系统的结构,在本系统中主要用到2个传感器分别是:温度传感器,湿度传感器。2个传感器采集到数据后到各自的从机进行处理,其中湿度需a/d转换。再由各自的从机进行数据保存,主机依次访问从机。所有采集到的数据通过485网络传输到主机进行判断并显示,主机判断是否超过门限要报警,如果超过门限就报警。第三章 系统各模块硬件设计及软件实现3.1温度采集模块设计本系统中使用温度传感器ds18b20,ds18b20与微处理器连接时仅需要一条线即可实现与微处理器间双向通讯。ds18b20的测量范围为-55-125,在-10-85范围内,精度为0.5。在使用中不需要任何外围元件。ds18b20可以通过内部寄生电路从数据线上获取电源,因此,当数据线上的时序满足一定的要求时,可以不接外部电源,从而使系统结构更简单,可靠性更高。ds18b20的测量分辨率可通过程序设定为9-12位。ds18b20内部含有eeprom,在系统掉电以后,它仍可保存分辨率及报警温度的设定值。3.1.1 温度ds18b20传感器工作原理测量前,首先将-55所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。3.1.2 ds18b20连接单片机的电路图 下图是温度采集从机的电路图,当从机采集完数据后,通过连接sp485芯片,然后连接整个485网络,最后传送到主机。图3-1 ds18b20与单片机的电路图3.1.3 温度采集模块流程图开始寄存器初始化18b20存在?温度转换命令主机访问从机主机读取温度温度比较报警ny在设定区间在设定区间外图3 -2温度采集模块流程图3.2湿度采集模块设计本系统使用湿度传感器hs1101,hs1101 测量范围是0%100%,电容量由162pf 变到200pf,其误差不大于2%rh,响应时间小于5ms,湿度系数为0.34pf/,年漂移量0.5%rh/年,长期稳定。hs1101在电路中相当于一个电容器件,它的电容量随着所测空气湿度的增加而增大。3.2.1湿度传感器hs1101hs1101是电容传感器,在电路构成中等效于一个电容器件,其电容量随着所测空气湿度的增大而增大。涉及如何将电容的变化量准确的转变为计算机易于接受的信号时,常用两种方法:一种是将hs1101置于运放与阻容组成的桥式振荡电路中,所产生的正弦波电压信号经整流。直流放大。再a/d转换为数字信号;第二种是将hs110置于555振荡电路中,将电容值的变化转化与之成反比的电压频率信号,可直接被计算机采集。本系统使用的是第二种方法。3.2.2湿度传感器hs1101与单片机连接图湿度传感器采集到的数据是模拟信号,单片只能处理数字信号,所以在采集信号后经过a/d转换变成数字信号再由单片机进行处理。图3-3 湿度采集与单片机连接电路3.2.3湿度采集模块流程图系统初始化开始环境湿度检测a/d转换报警与上位机通信湿度是否在设定范围yn开始初始化adc0809发送adc0809地址启动adc0809发送读a/d命令读a/d图3-4 湿度采集及a/d转换流程图3.3报警模块设计蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“h”或“ha”(旧标准用“fm”、“lb”、“jd”等)表示。蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。多谐振荡器由晶体管或集成电路构成。当接通电源后(1.515v直流工作电压),多谐振荡器起振,输出1.52.5khz的音频信号,阻抗匹配器推动压电蜂鸣片发声。图3-5 蜂鸣器电路3.4液晶显示模块本系统采用1602lcd字符型液晶显示模块是一类专门用于显示字母,数字,符号等的点阵式液晶显示模块。在显示器件上的电极图型设计,它是由若干个5*7或5*11等点阵符位组成。每一个点阵字符位都可以显示一个字符。点阵字符位之间有一空点距的间隔起到了字符间距和行距的作用。图3-6 液晶接口电路3.3.1 字符型液晶显示模块引脚vss为接地电源,vdd接5v正电源,vl为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10k的电位器调整对比度。rs为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。rw为读写信号线,高电平时进行读操作,低电平时进行写操作。当rs和rw共同为低电平时可以写入指令或者显示地址,当rs为低电平rw为高电平时可以读忙信号,当rs为高电平rw为低电平时可以写入数据。e端为使能端,当e端由高电平跳变成低电平时,液晶模块执行命令。db0db7为8位双向数据线,blk和bla是背光灯电源。模块引脚如表1。表1 字符型液晶显示模块引脚编号符号引脚说明编号符号引脚说明1vss电源地9d2data i/o2vdd电源正极10d3data i/o3vl液晶显示偏压信号11d4data i/o4rs数据/命令12d5data i/o5r/w读/写13d6data i/o6e使能信号14d7data i/o7d0data i/o45bla背光源正级8d1data i/o6blk背光源负级3.3.2 字符型液晶显示模块内部结构液晶显示模块lcd1602的内部结构如图3.7分为三部份:一为lcd控制器,二为lcd驱动器,三为lcd显示装置。图3-7 lcd1602内部结构3.3.3 报警模块及lcd显示电路图p3.6口输出的是控制信号,q1相当于一个电子开关,用来控制蜂鸣器的供电通断。当p3.6口输出高电平时,q1饱和导通,ls2获得电工作发出鸣响,当p3.6空输出低电平时q1截止蜂鸣器失电,停止工作。图3-8 报警模块及lcd显示电路图3.3.4 报警模块及lcd显示流程图n读各从机数据开始判断是否超出门限报警ylcd显示图3-9 报警模块流程图第四章485总线网络系统软件部分4.1 系统结构本论文通信系统的系统结构如下图所示,系统采用半双工主从通信方式,主机可以读取从机的数据或写数据到从机,并将数据送终端进行显示;从机主要负责对分布的电子设备进行监测或控制,用中断的方式接收主机发来的命令并做出回应。4.1.1总体框架 温度采集从机湿度采集从机主机 报警485总线485芯片485芯片485芯片lcd显示图4-1 系统总体框架图4.1.2芯片介绍本系统中用sp485芯片和at89c51单片机。sp485芯片连接各单片机的通信,sp485是半双工收发器,满足rs-485规范。它的bicmos设计可实现低功耗操作。但不影响其它特性,数据传输速率高达5mbps。图4-2 sp485 芯片引脚图表2 sp485工作原理发送接收输入输出dediabdea-brox111000+2.0v1x100100200mv接受器输出逻辑低200mv本论文使用对节点数要求较多的sp485芯片及485总线,而485总线采用国际上通行的屏蔽双绞线。我推荐用的屏蔽双绞线的型号为rvsp2*0.5(二芯屏蔽双绞线,每芯由16股的0.2mm的导线组成)。采用屏蔽双绞线有助于减少和消除两根485通信线之间产生的分布电容以及来自于通讯线周围产生的共模干扰。485收发器在规定的共模电压-7v至+12v之间时,才能正常工作。如果超出此范围会影响通讯,严重的会损坏通讯接口。共模干扰会增大上述共模电压。消除共模干扰的有效手段之一是将485通讯线的屏蔽层用作地线,将机具、电脑等网络中的设备地连接在一起,并由一点可靠地接入大地。通信线尽量远离高压电线,不要与电源线并行,更不能捆扎在一起。星形结构会产生反射信号,从而影响到485通信。总线到每个终端设备的分支线长度应尽量短,一般不要超出5米。分支线如果没有接终端,会有反射信号,对通讯产生较强的干扰,应将其去掉。485总线必须要单点可靠接地。单点就是整个485总线上只能是有一个点接地,不能多点接地,因为将其接地是因为要将地线(一般都是屏蔽线作地线)上的电压保持一致,防止共模干扰,如果多点接地适得其反。可靠接地时整个485线路的地线必须要有良好的接触,从而保证电压一致,因为在实际施工中,为了接线方便,将线剪成多段再连接,但是没有将屏蔽线作良好的连接,从而使得其地线分成了多段,电压不能保持一致,导致共模干扰。共模干扰是在信号线与地之间传输,属于非对称性干扰。消除共模干扰的方法包括:(1)采用屏蔽双绞线并有效接地(2)强电场的地方还要考虑采用镀锌管屏蔽(3)布线时远离高压线,更不能将高压电源线和信号线捆在一起走线(4)不要和电控锁共用同一个电源(5)采用线性稳压电源或高品质的开关电源(纹波干扰小于50mv) 在rs485通信中,为防止信号反射,通常在终端都接有90120欧姆的电阻。一般的rs485接口芯片在带这样的电阻负载时,其输出电压的摆幅只有1.51.8v,因此在进行长距离通信时,由于信号的衰减,接收器可能无法正确地接收到信号,导致误码。um3085/um3088驱动器将输出信号摆幅提高到大于2.2v,从而在长距离通信中具有更高可靠性。此外,um3085/um3088具有斜率限制的特点,能减少emi,并能在使用阻抗不匹的传输线时降低反射,提高通信质量。4.2.1 485总线电气特性与通讯距离rs-485接口标准通信的最大传输距离为1 200 m,通信速率限制在93.75 kb/s;当通信距离为100 m时,通信速率可达12mb/s。但现有rs-485系统一般工作在较低传输速率,传输效率也较低。总之,对工业应用而言,目前通常rs-485的最大传输距离为1200 m,最高速率在10 mb/s左右,从而制约了工业环境下高速、远距离通讯的应用。由终端电阻、偏置电阻和rs-485收发器三者构成的纯阻性负载影响通信性能。长传输电缆可等效为传输线,为降低阻抗不连续导致的总线内信号反射,需匹配与电缆特性阻抗等值的终端电阻。rs485网络中大多数双绞线电缆特性阻抗约为100120。当传输距离小于1/6倍的传输信号波长,则无需终端匹配。设脉冲信号的上升时间为tr,则传输信号的波长为=ctr/0.56. 式中c为电磁波波速。针对终端匹配负载与rs-485收发器之间印刷电路短线引起的反射,可缩减短线长度使其表现为集中负载。因此,必须选用噪声裕量大的高速rs-485器件,由实验确定匹配参数,通过降低总线负载,以提高传输速率。每个视窗内上、下波形分别为rs-485发送端和经220 m双绞线后接收端的时域波形,其中视窗内横坐标时间总长为1s,纵坐标电压总幅值为40v。当时钟频率为5mhz以下时,几种485器件的接收波形区别不大;当频率增至10 mhz时,max3468和sn65hvd1176存在较大失真,接收信号的占空比变化很大; isl4486的过冲和高频相移比sn65hvd23d更明显。因此,综合传输速率、接收信号波形及均衡功能等,选用sn65hvd23d作为rs-485接口器件。4.2.2 485总线匹配总线匹配有两种方法,一种是加匹配电阻,位于总线两端的差分端口va与vb之间应跨接120匹配电阻,以减少由于不匹配而引起的反射、吸收噪声,有效地抑制了噪声干扰。但匹配电阻要消耗较大电流,不适用于功耗限制严格的系统。另外一种比较省电的匹配方案是rc 匹配利用一只电容c 隔断直流成分,可以节省大部分功率,但电容c的取值是个难点,需要在功耗和匹配质量间进行折衷。除上述两种外还有一种采用二极管的匹配方案,这种方案虽未实现真正的匹配,但它利用二极管的钳位作用,迅速削弱反射信号达到改善信号质量的目的,节能效果显著。4.3 485通讯协议介绍通讯协议分为三层:物理层、数据链路层和用户层。(1)物理层采用sp485的电气特性、差分信号来传输数据。(2)数据链路层接受上层来的数据并进行处理,对数据打包,产生校验码,组成合理的信息帧,传输数据。校验采用crc校验机制,校验码附加于信息码的后面,同时,它接收来自对方的数据,对数据进行校验、解包,转化成用户层能识别的数据。数据链路层所传输的帧格式为:帧头数据校验码其中帧头包含了该帧的控制信息。根据传输内容的不同,所传输的帧又有命令帧和信息帧之分。命令帧较为简单,帧格式如下:功能目的地址源地址命令代码校检代码比特数8878信息帧的帧头还须包含传输信息的字节数及校验的字节数,帧格式如下:功能目的地址源地址信息长度校检码长度信息校检字节比特数8878nm(3)用户层将用户数据传输转换为数据链路层可以识别的格式,并将接收的数据转换为用户有用的信息,实现用户的实际信息的发送和接收,并进行适当的处理,实现实际需要的信息的传输。4.3.1 485通讯帧格式介绍该协议的信息格式如下:(1)编码格式;二进制代码。(2)波特率:9600 bs。(3)通信方式:半双工。(4)每个字符由u 位组成;1位:起始位(0);8位:数据位(1);1位:地址数据识别位(1为地址,o为数据);l位:停止位(1)。(5)字符发送顺序;低位在先(6)帧结束标志:通信线路空闲3.5 ms以上(7)帧校验方式:数据和(2字节)(8)主机询问的一般格式下图:从机地址命令码数据个数数据校检 l从机地址码i命令码l数据个数数据l校验和从机地址码;两字节二进制数,后一字节是前一字节的反码。命令码:一字节二进制数,o1h代表主机读,02h代表主机写。数据个数:表示主机要写的字节个数,一字节二进制数。校验和:两字节二进制数,是将从机地址码、命令和数据按字节从头依次相加,生成两字节的校验和。(9)从机应答的一般格式如下图返回地址命令码数据个数数据校检图中信息段的定义同如上图4.4通信软件设计该系统主机的主要任务是循环读取从机的检测结果,并送终端显示,其通信软件由3部分组成:主程序中负责寻址从机的寻址模块、通信中断服务程序和to中断服务程序。寻址模块程序流程图见图4-5。4.4.1 从机通信软件设计在该系统中,从机的主要任务是对被检测设备进行故障检测和故障定位,通信软件的主要功能是接收主机的命令并将检测的结果回送主机。从机通信软件由2部分组成:串行中断服务程序和定时器to中断服务程序。串行中断服务程序用于接收或发送数据;to中断服务程序用于当从机接收完一帧信息后进行解释并启动通信向主机应答,另外也用于当从机发送超时后的一些处理。从机上电后处于侦听状态,当主机寻址时,便进人中断服务程序,其程序流程图如下图所示。置位接受标志发送完?nnr1=0启动t0置为接受标志保存接受标志个数寄存器t1=0恢复应答标志停止t0停止t0sm2=0是第2字节?是寻址本机tb8=0sm2=1返回接受中断开始发送下一字节nnnyyyyyyynynn图4-3 串行通信中断服务程序流程图首先判断是接收中断还是发送中断,若是接收中断,则清除ri,同时启动字符间隔定时器to,并置收发标志为收。当接收完第2个字节后,各从机立即判断是否寻址本机,若是,则置sm2为0,继续接收主机送来的数据;若不是,则禁止t0定时,不在接收后面的数据。当被寻址从机接收完一帧信息后,字符间隔定时器会产生定时中断,进入to中断服务程序开始tf=0置为接受方式停止t0中断原因效验和对否主机命令个数累加清零存接受的数据sm2=1置为接受方式个数累加清零打包应答信息置为应答方式tb8=0启动发送置为应答方式打包应答信息返回tb8=0启动发送sm=2发送超时接受完成ny写读图4-4 to中断服务程序流程图4.4.2 主机通信软件设计对从机寻址是按照从机的编号顺序进行的,即从1号从机开始,主机发送该从机信息帧的第1个字节启动寻址,同时启动发送超时定时器to,然后检测通信结束标志当主机成功的接收到该从机的应答信息后,便会置位该标志,完成与该从机的通信。接下来,寻址下一从机,直到所有从机都被寻址。最后,主机完成其它功能后,又从1号从机开始下一循环的寻址。通信中断服务程序和to中断服务程的设计方法与从机的大同小异,在此不再介绍。n串口初始化从机设置为1启动寻址从机号加1启动t0其他操作通信结束完成所有寻址nyy图4-5 寻址模块程序流程图4.5 主机接收与发送本通信协议定时规定如下:(1)帧发送时限;70 ms超过此时限结束发送。(2)主机等待从机应答时限:7 ms,超过此时限,酌情重发。(3)主机重发次数:不超过4次,超过后,判通信失败。一次完整的通信过程分为3个阶段:主机询问、从机应答和链路释放。主机询问阶段,主机以帧的形式将从机地址码、命令、数据和校验码传送到指定从机;从机应答阶段,从机解释接收的命令码,并组织相应帧信息回送到主机;链路释放阶段,从机清除接收缓冲区及相关变量,准备与主机下次通信。任何一次完整的通信过程都是由主机方发起的,从机在被主机寻址前只能处于侦听状态,从机在接收到地址码的第2个字节后,立即判断是否寻址自己,如果是,继续接受下面的数据,否则不与理睬。4.6 本章小结本章主要写了485网络系统的通讯部分,包括了网络总线结构,485通讯的网络协议,485总线的电气特性。该系统主机的主要任务是循环读取从机的检测结果,并送终端显示。本系统中通信软件由3部分组成:主程序中负责寻址从机的寻址模块、通信中断服务程序和to中断服务程序。第五章 功能仿真与测试5.1 调试平台proteus是由lab center electronics开发的功能强大的单片机仿真软件。5.1.1 proteus的简介proteus与其他的仿真软件相比较,在下面的优点:1.能仿真模拟电路、数字电路、数模混合电路;2.能绘制原理图、pcb图;3.几乎包括实际中所有使用的仪器;4.其最大的亮点在于能够对单片机进行实物级的仿真。从程序的编写,编译到调试,目标版的仿真一应俱全。支持汇编语言和c语言的编程。还可配合keil c实现程序的联合调试,将proteus中绘制的原理图作为实际中的目标板,而用keil c集成环境实现对目标板的控制,与实际中通过硬件仿真器对目标板的调试几乎完全相同,并且支持多显示器的调试,即proteus运行在一台计算机上,而keil c运行在另一台计算机上,通过网络连接实现远程的调试。5.2调试及结果5.2.1 测试环境及工具测试温度:0100摄氏度(模拟多点不同温度值环境)。测试仪器及软件:数字万用表,温度计0100摄氏度,串口调试助手。测试方法:目测。5.2.2 测试方法使系统运行,观察系统硬件检测是否正常(包括单片机最小系统,键盘电路,显示电路,温度测试电路等)。系统自带测试表格数据,观察显示数据是否相符合即可。采用温度传感器和温度计同时测量多点水温变化情况(取温度值不同的多点),目测显示电路是否正常。并记录各点温度值,与实际温度值比较,得出系统的温度指标。使用串口调试助手与单片机通讯,观察单片机与串口之间传输数据正确否。5.2.3 测试结果分析自检正常,温度湿度显示正常,串口传输数据正确。因为芯片是塑料封装,所以对温度的感应灵敏度不是相当高,要一个很短的时间才稳定。系统仿真电路原理图:图5-1 结果图总结本论文主要研究了由485通信网络构成的系统,系统包括温度采集模块、湿度采集模块、主机模块、报警及显示模块。在温度采集模块中用到温度传感器ds18b20,其测量范围为-55-125,在-10-85范围内,精度为0.5。在湿度采集模块中将采集到的信号进行滤波,同步采样等处理后,输入a/d转换为数字信号后由单片机采集,然后利用单片机与pc机的通信将数据送到pc机进行数据的存储、后期处理与显示,该系统的数据处理功能强大、显示直观。主机主要是用来控制从机什么时候向主机发送数据,以及判断接受到的数据是否超过预先设计的值,如果超过将报警。本系统还是一个不完善的系统,还有许多需要改进的地方。设计中所采用的ds18b20搜索算法还存在不足,有时会发生重复或遗漏搜索。在通信协议不完整,没有进行发送超时出错处理。还有各种不足之处有待将来改进。参考文献1 黄明强.51 单片机 c语言快速上手 j.保定师范专科学校学报, 2004.2 2 四川、刘志勇.用ds1302+at89c2051控制的红外遥控led电子钟 n. 电子报, 2003.63 李念强. 单片机原理及应用.北京机械工业出版社,2007.34 李平等.单片机入门与开发m.机械工业出版社,20085 陈海宴.51单片机原理及应用m.北京航空航天大学出版社,20106 王永军、李景华.数字逻辑与数字系统(第2版).电子工业出版社, 2001.77 张靖武、周灵彬.单片机系统的设计与仿真.电子工业出版社,2006.28 马忠梅、籍顺心.单片机的c语言应用程序设计(第4版).北京航空航天大学出版社,2007.49 韦兆碧;刘晔;时德钢.电气自动化.西安交通大学电气工程学院,西安7100492002 第4期致谢本文的研究工作是在居伟骏老师的精心指导和大力支持下完成的。居老师平日里工作繁多,但在我做毕业设计的每个阶段,从论文的资料查询、编写程序到定稿的过程中,都给予我大力的帮助和细心的指导。在整个编写程序和撰写论文的过程中,居老师总是不厌其烦地给我讲解每一个问题。在跟居老师作毕业论文的过程中,学到的不仅是知识,更重要的是思考与解决问题的能力。居老师循循善诱的教导和独具匠心的思路,给予我无限的启迪。他对知识的孜孜不倦的探索精神,必将激励我今后的学习和生活。在此,向居老师表示崇高的敬意和衷心的感谢!然后还要感谢大学四年来所有的老师,在所有老师的精心培育下,我打下了坚实的专业知识基础;同时还要感谢所有的同学,正是因为有了大家互相支持和鼓励,此次毕业设计才会顺利完成。附录 主要模块的c语言485网络与51单片机的通讯代码:#include#include#define uchar unsigned char #define uint unsigned int/*通信命令*/#define _active_ 0x01 / 主机询问从机是否存在#define _getdata_ 0x02 /主机发送读设备请求#define _ok_ 0x03 /从机应答#define _status_ 0x04 /从机发送设备状态信息#define _maxsize 0x08 /缓冲区长度#define _errlen 12 /任何通信帧长度超过12则表示出错uchar dbufmaxsize ;/该缓冲区用于保存设备状态信息uchar dev; /该字节用于保存本机设备号sbit m_de = p10; /驱动器使能,1有效sbit m_re = p11; /接收器使能,0 有效void get_status(); /调用该函数获得设备状态信息,函数全码未给出void send_data(uchar type,uchar len,uchar *buf); /发送数据帧bit recv_cmd(uchar *type); /接收主机命令,主机请求包含命令信息。void send_byte(uchar da); /该函数发送一帧数据中的一个字节,由send_data()函数调用void main() uchar type; uchar len; /*系统初始化*/ p1 = 0xff ; /读取本机设备号 dev = (p12); tmod = 0x20; /定时器

温馨提示

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

评论

0/150

提交评论