版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于 RS485 总线的多机通信系统设计摘要本文设计了一种基于 RS485 的由多单片机组成的通信系统,介绍了 RS485 的通信基本理论,并且分别从硬件和软件两个方面对系统的设计进行了阐述。在硬件方面,包括主机和从机两大部分。在主机系统中给出了基于 MCS-51 单片机的 485 通讯电路,键盘电路,LED 显示电路;在从机系统中给出了基于 MCS-51 单片机的485 通讯电路,8 位 ADC 0809 的 A/D 转换电路,2 个 8 段数码管显示电路,发光二极管指示电路。在软件方面,分别用汇编语言编制了主机和从机部分的程序,通信协议采用 Modbus 协议。所设计的多机通信系统采用主从
2、分布式网络,通过 Modbus 通信协议进行主从机通信。在文章的最后,对 RS485 多机通信的关键问题:RS485 总线抗干扰的设计,以及通信的稳定性和可靠性等进行了分析,提出了设计要点,并对现有技术进行总结,提出了改善的方向。关键词:MCS-51 单片机,RS-485,通信协议,主从控制IIAbstractThis article mainly introduces a whole design Plan of Master-slave control system base on MCS-51 Single - Chip Microcomputer. This article expat
3、iates on the design of the system from both hardware and software. In terms of hardware, including master and slave .The master system contains communication circuit based on MCS-51 Single - Chip Microcomputer, keyboard circuit and LED display circuit. The slave system contains communication circuit
4、 based on MCS-51 Single - Chip Microcomputer., AD conversion circuit ,LED display circuit and numerical code tube circuit. In relation to software,including programs what wrote by assembly language and the Modbus communication protocol.The control system uses the master-slave distributed network and
5、 can communicate by Modbus communication protocol. In the end of the article, contains the design of anti-interference ,the communication stability and reliability, and the further improve .Keywords:, MCS-51 Single - Chip Microcomputer ,RS-485,Communication Protocol, Master-slave Control目录IV第一章前言1 1
6、.1 研究背景及意义11.1.1 研究背景11.1.2 研究意义11.2 论文的主要工作2第二章系统总体方案的设计32.1 系统总体设计32.1.1 主从机部分32.1.2 RS-485 总线型通信网络42.2 系统主从通信的基本条件4第三章RS485 通信理论概述53.1 RS485 通信的基本理论53.1.1 平衡传输53.1.2 电气规定53.1.3 RS-485 的网络安装注意要点63.1.4 RS-485 传输线上电阻匹配的一些说明63.2 单片机的串行接口63.2.1 串行口控制寄存器SCON73.2.2 电源控制寄存器PCON8第四章系统硬件设计94.1 系统硬件电路设计94.1
7、.1 RS-485 总线型网络电路94.1.2 直流稳压电源124.1.3 主机硬件电路设计124.1.4 从机硬件电路的设计14第五章系统软件设计195.1 设计思路195.2 通信协议195.2.1 通信协议介绍195.2.2 RTU 模式195.2.3 RTU 帧205.2.4 错误校验215.3 单片机通信程序设计215.4 程序代码实现22第六章系统性能的改善276.1 RS-485 总线通信抗干扰设计276.1.1 防止通信电缆中的信号反射措施276.1.2 降低分布电容对RS-485 总线传输性能的影响286.1.3 电磁干扰(EMI)问题286.2 单片机多机通信系统稳定性29
8、6.3 提高RS-485 总线可靠性的几种方法29第七章总结31参考文献32致谢34附录35基于 RS485 总线的多机通信系统设计第一章前言计算机技术、自动化技术和通信技术是现代信息科学技术的重要组成部分,是现代科学技术中的核心先导技术。计算机控制是计算机技术与自动控制理论、自动化技术紧密结合并应用于实际的结果,它的应用领域非常广泛。在一个应用系统中,通常由主机对数据进行分析并处理,从机则完成数据的采集和上传等工作。单片机的应用己不仅仅局限于传统意义上的自动监测或控制,而且形成了以网络为核心的分布式多点系统发展的趋势1。1.1 研究背景及意义1.1.1 研究背景随着计算机在工业过程中的应用,
9、 由主控机和终端机或智能设备构成的分布式控制系统在工业现场愈来愈多。在这个系统中, 终端机或智能设备安放在设备现场, 完成现场信号的网络拓扑结构的测量、采集和控制工作; 通过现场总线与主控机交换信息; 主控机负责对终端机或智能设备的远程操作工作5。 多机通信作为主控机和终端机或智能设备连接的纽带,在分布式控制系统中具有非常重要的作用。RS-485 作为一种多点差分数据传输的电气规范现已成为业界应用最为广泛的标准通信接口之一,这种通信接口允许在简单的一对双绞线上进行多点双向通信它所具有的噪声抑制能力数据传输速率电缆长度及可靠性 是其他标准无法比拟的7。1.1.2 研究意义在工业控制及测量领域较为
10、常用的网络之一就是物理层采用 RS-485 通信接口所组成的工控设备网络。这种通信接口可以十分方便地将许多设备组成一个控制网络。从目前解决单片机之间中长距离通信的诸多方案分析来看,RS-485 总线通信模式由于具有结构简单、价格低廉、通信距离和数据传输速率适当等特点而被广泛应用于仪器仪表、智能化传感器集散控制、楼宇控制、监控报警等领域。RS-485 采用平衡发送和差分接收,因此具有抑制共模干扰的能力。RS-485 用于多点互连时非常方便,可以省掉许多信号线。显然 RS-485 总线可以我们带来很多好处。但RS485 总线存在自适应、自保护功能脆弱等缺点,如不注意一些细节的处理,常出现通信失败甚
11、至系统瘫痪等故障,因此提高RS-485 总线的运行可靠性至关重要。RS-485 由于使用了差分电平传输信号,传输距离比RS-232 更长,最多可以达到 3000 m,因此很适合工业环境下的应用。但与CAN总线等更为先进的现场工业总线相比,其处理错误的能力还稍显逊色,所以在软件部分还需要进行特别的设计,以避免数据错误等情况发生。另34外,系统的数据冗余量较大,对于速度要求高的应用场所不适宜用RS-485 总线。虽然RS-485 总线存在一些缺点,但由于它的线路设计简单、价格低廉、控制方便,只要处理好细节, 在某些工程应用中仍然能发挥良好的作用9。因为,多机通信系统是在日常的生活与生产中应用非常广
12、泛的技术,然而构成多机通信系统可以通过很多种方法。所以,我认为选择这个题目是将会是很贴近生活,做出来的成果还可以其他方法做出来的系统进行比较,是很有意思,很有挑战性的。因此, 立足实际, 研究基于RS485 的多机通信系统具有重要的意义。1.2 论文的主要工作本论文主要研究的内容是利用RS485 总线的原理设计出一种适合远距离的数字通讯系统。该系统是一种多节点,远距离和接受灵敏度高的 RS485 总线标准。系统设计包括硬件设计和软件设计两部分,要求控制器采用 51 单片机,当主机系统和从机系统通讯成功时主机对应的发光二极管和进行通讯的从机对应的发光二极管不断 闪烁;如果通讯失败,则四位发光二极
13、管同时闪烁。解决信号在传输过程中的突变和反射, 接地,衰减等问题。 对 RS485 总线进行硬件设计和网络组建及维护提高通讯效率。软件方面,包括主机和从机的编程和通讯协议。由 RS-485 网络的传输特性决定,任一时刻在同一物理连接网络中只能够存在一个发送节点,多节点同时发送可能会导致RS-485 总线出现竞争“锁定”;因此,只可以选择单主多从通讯协议作为 RS-485 网络的应用层通信协议,比如 ModBus 协议,或者其他“单主/多从”模式的通讯协议。一般来说, 通讯协议中规定的数据包格式由引导码、长度码、地址码、命令码、数据、校验码、尾码组成。硬件方面,包括主机和从机两部分的电路设计。R
14、S-485 需要 2 个终接电阻,其阻值要求等于传输电缆的特性阻抗。在短距离传输时可不需终接电阻,即一般在 300 米以下不需终接电阻。终接电阻接在传输总线的两端。RS-485 支持 32 个节点,因此多节点构成网络。网络拓扑一般采用终端匹配的总线型结构,不支持环形或星形网络.第二章系统总体方案的设计2.1 系统总体设计系统的总体方案设计,关系到系统功能模块的划分、硬件设备的选择和配备以及软件的设计和编制。总体方案对整个系统的性能以及运行的可靠性和稳定性有十分重要的意 义。本系统是由单片机组成的主从控制系统,多台单片机的配合是按需要将它们组成一定形式的网络,使它们之间相互通信,以完成各种功能。
15、目前,最常用的多机通信网络形式有以下 4 种:串行总线型网络结构、环型网络结构、星型网络结构、树型结构,如图 2-1 所示。图 2-1 四种计算机网络拓扑结构上述几种通信网络形式各有优缺点,通过对四种网络拓扑结构的性能比较得知总线型网络结构接口简单、使用灵活,因此在本系统使用总线型网络结构,同时为了提高系统在通信过程中的性能和进行多机通信,在设计时采用 RS-485 总线进行串行数据通信。系统是建立在 RS485 总线型网络基础上的主从分布式系统。本系统中,主机与各从机和 RS-485 总线的连接通过 MAX485 芯片来实现。本系统的结构简图如图 2-2 所示。从结构上可以分为:主、从机部分
16、和 RS-485 总线型通信网络部分。2.1.1 主从机部分工作过程如下:主机经过一定的程序后,向一号从机发出信号,(若是长时间不能与一号从机通信,主机会选择二号从机)同时准备向从机发送数据或接收从机发送上来到信号和数据。从机一方面要响应主机发出的信号,另一方面接收数据或向主机传输数据。从机在进行数据采集的时候会将数据在数码管中进行显示,对上位机发出的信号做出响应, 完成与主机的数据传输。当数据由从机传输到主机上时,主机会有 LED 指示灯进行显示数据已到达(二极管发光显示)。MAX485MAX485MAX485MAX485(主机)N 号机2 号机1 号机图 2-2 系统总体结构2.1.2 R
17、S-485 总线型通信网络分布式控制是一种常用的控制方式,要实现分布式控制,多采用主从式微机网络形式。现代控制系统越来越复杂,一个系统往往由分散目标监控系统、数据采集系统、智能仪表等几部分组成,自动控制系统大多为多站、远距离通信网络,RS-485 总线的传输距离长、抗干扰能力强,因此常采用RS-485 总线进行网络通信。由MAX485 收发器组成的差分平衡系统,抗干扰能力强、适合于远距离通信,可组成满足RS-485 标准的通信网络18。2.2 系统主从通信的基本条件为了确保主从系统通信的畅通,在通信过程中需要满足以下三个基本条件:(1) 系统中的各位从机都有各自唯一的地址码;(2) 在系统中,
18、主机直接与从机建立通信联系,主机在通信中起主导作用,进行主动通信,从机为被动通信,各从机之间不能进行直接通信,通信时需要通过主机;各从机在不进行通信时处于监听状态;(3) 在通信的任意时刻,只允许主机和一台从机进行通信,即一对一通信,而不允许多个从机同时通信3。第三章RS485 通信理论概述3.1 RS485 通信的基本理论3.1.1 平衡传输RS-485 的数据信号采用差分传输方式,也称作平衡传输,它使用一对双绞线,将其中一线定义为 A,另一线定义为 B。485 发送器如图 3-1 所示。图 3-1 485 发送器示意图通常情况下,发送驱动器 A、B 之间的正电平在+2+6V,是一个逻辑状态
19、,负电平在-2-6V,是另一个逻辑状态。另有一个信号地 C,在 RS-485 中还有一“使能”端。“使能”端是用于控制发送驱动器与传输线的切断与连接。当“使能”端起作时,发送驱动器处于高阻状态,称作“第三态”,即它是有别于逻辑“1”与“0”的第三态。接收器也作与发送端相对的规定,收、发端通过平衡双绞线将AA与BB对应相连,当在收端AB之间有大于+200mV的电平时,输出正逻辑电平,小于-200mV时,输出负逻辑电平。接收器接收平衡线上的电平范围通常在 200mV至 6V之间16。3.1.2 电气规定RS-485 是美国电气工业联合会(EIA)制定的利用平衡双绞线作传输线的多点通讯标准。它采用差
20、分信号进行传输;最大可连接 32 个驱动器和收发器;接收器最小灵敏度可达200mV。由此可见,RS-485 协议正是针对远距离、高灵敏度、多点通讯制定的标准。RS-485 具有以下特点:RS-485 的电气特性:逻辑“1”以两线间的电压差为+(26)V 表示;逻辑“0” 以两线间的电压差为-(26)V 表示。接口信号电平比 RS-232-C 降低了,就不易损坏接口电路的芯片,且该电平与 TTL 电平兼容,可方便与 TTL 电路连接;RS-485 的数据最高传输速率为 10Mbps;RS-485 接口是采用平衡驱动器和差分接收器的组合,抗共模干能力增强,即抗噪声干扰性好;RS-485 接口的最大
21、传输距离标准值为4000 英尺,实际上可达3000 米,另外RS-232-C 接口在总线上只允许连接 1 个收发器,即单站能力。而RS-485 接口在总线上是允许连接多达 128 个收发器。即具有多站能力,这样用户可以利用单一的RS-485 接口方便地建立起设备网络1。3.1.3 RS-485 的网络安装注意要点RS-485 支持 32 个节点,因此多节点构成网络。网络拓扑一般采用终端匹配的总线型结构,不支持环形或星形网络。在构建网络时,应注意如下几点:(1) 采用一条双绞线电缆作总线,将各个节点串接起来,从总线到每个节点的引出线长度应尽量短,以便使引出线中的反射信号对总线信号的影响最低。(2
22、) 应注意总线特性阻抗的连续性,在阻抗不连续点就会发生信号的反射。总之,应该提供一条单一、连续的信号通道作为总线3。3.1.4 RS-485 传输线上电阻匹配的一些说明对 RS-485 总线网络一般要使用终接电阻进行匹配。但在短距离与低速率下可以不用考虑终端匹配。理论上,在每个接收数据信号的中点进行采样时,只要反射信号在开始采样时衰减到足够低就可以不考虑匹配。但这在实际上难以掌握,美国 MAXIM 公司有篇文章提到一条经验性的原则可以用来判断在什么样的数据速率和电缆长度时需要进行匹配: 当信号的转换时间(上升或下降时间)超过电信号沿总线单向传输所需时间的 3 倍以上时就可以不加匹配。一般终端匹
23、配采用终接电阻方法,RS-485 则应在总线电缆的开始和末端都需并接终接电阻。终接电阻一般在 RS-485 网络中取 120。相当于电缆特性阻抗的电阻,因为大多数双绞线电缆特性阻抗大约在 100120。这种匹配方法简单有效,但有一个缺点,匹配电阻要消耗较大功率,对于功耗限制比较严格的系统不太适合。另外一种比较省电的匹配方式是 RC 匹配。利用一只电容 C 隔断直流成分可以节省大部分功率。但电容 C 的取值是个难点,需要在功耗和匹配质量间进行折衷。还有一种采用二极管的匹配方法。这种方案虽未实现真正的“匹配”,但它利用二极管的钳位作用能迅速削弱反射信号,达到改善信号质量的目的,节能效果显著12。3
24、.2 单片机的串行接口MCS-51 单片机内部有一个功能很强的全双工串行口,该串行口有四种工作方式,以供不同场合使用。对于波特率的设定可以由软件设置,由片内的定时器/计数器产生。接收、发送均可工作在查询方式或中断方式,使用十分灵活。MCS-51 单片机内部的串行口,有两个物理上独立的接收/发送缓冲器SBUF,可同时发送/接收数据。发送缓冲器,只能写入不能读出,接收缓冲器只能读出不能写入,两个缓冲器占用同一个地址(99H)。控制MCS-51 单片机的串行口的控制寄存器共有两个:特殊功能寄存器SCON和PCON17。3.2.1 串行口控制寄存器 SCON该寄存器的字节地址为 98H,可按位寻址。S
25、CON 的格式如表 3-1 所示。表 3-1 串行口控制寄存器 SCON 的格式D7D6D5D4D3D2D1D0SCONSM0SM1SM2RENTB8RB8TIRI位地址9F9E9D9C9B9A9998SM0、SM1:控制串行口的工作方式。SM0 和 SM1 的状态组合对应于串行口的 4 种工作方式,4 种工作方式的状态组合、功能及波特率,如表 3-2 所列。在这四种工作方式中,串行通信只使用方式 1、2、3。方式 0 主要用于扩展并行输入输出口。表 3-2 单片机串行口的工作方式SM0SM1方式功能波特率000同步移位存贮器(用于 I/O 口的扩展)fosc/120118 位 UART(通用
26、异步接收发送器)2SMOD(T1溢出率)/321029 位 UART(起始位 1,数据位 8,可编程位 1,停止位 1)2SMOD fosc/641139 位 UART2SMOD(T1溢出率)/32SM2:允许方式 2 和方式 3 进行多机通信控制位。当串行口以方式 2 或方式 3 接收效据时,若 SM2=(l 多机通信时为)l,接收到的第 9 位数据(RBS)为 1,才将接收到的前 8 位数据送人 SBUF,并申请中断:否则,所接收到的前 8 位数据丢弃。而当 SM2=0 时,则不论第 9 位数据为 0 还是为 1,都将前 8 位数据装入 SBUF 中并置位 RI 申请中断。在方式1 中.若
27、 SM2=1,则只有收到有效的停止位时才置位 RI;若 SM2=0,则 RHS 是己接收的停止位。在方式 0 中,SM2 必须为 0。REN:允许串行接收位。由软件置位时 REN=1 允许接收,由软件清零时 REN=O 禁止接收。TBS:发送数据位 8。TBS 是方式 2 和方式 3 中要发送的第 9 位数据。可以用来表示前8 位数据的奇偶性。在多机通信中,TBS 的状态表示发送的帧数据是地址还是数据:TBS=1是地址,TBS 均是数据。TBS 可由软件置位与清零。RBS:接收数据位 8。是方式 2 和方式 3 时接收到的第 9 位数据,代表着接收数据的某些特征。在方式 1,如果 SM2=0,
28、RBS 是接收到的停止位。在方式 0,不使用 RBS。TI:发送中断标志位。TI 由硬件置位,申请中断。但 CPU 响应中断后不立即清零, 需由软件来完成清零。在方式 0 串行发送第 8 位结束时置位,或在其它方式串行发送停止位的开始时自动置位。RI:接收中断标志位。RI 也由硬件置位,申请中断。CPU 响应中断后也不立即清零, 由软件来完成清零。在方式 0 串行接收到第 8 位结束时置位,或在其它方式串行接收到停止位的中间时置位。3.2.2 电源控制寄存器 PCONPCON是不可位寻址的特殊功能寄存器,其字节地址 87H。PCON的最高位为串行口波特率加倍控制位(2ms)。当SMOD=1 时
29、,波特率加倍。该寄存器中除最高位外,其他位都是虚设的。系统复位时,SMOD=0。如果需使波特率加倍,需使用指令,使SMOD=l,如不需要加倍,则可以不初始化PCON4。第四章系统硬件设计4.1 系统硬件电路设计从系统总体设计方案中,中心架构为“单片机+RS-485 总线型通信网络+单片机”。硬件电路设计包括三部分,第一部分是 485 通讯部分,第二部分是主机硬件电路设计部分, 第三部分是从机硬件电路设计部分。4.1.1 RS-485 总线型网络电路由于本系统采用的是 RS-485 总线标准,在此选择最常用的 MAX485 芯片。MAX485 芯片包含一个驱动器和一个接收器,适合于 RS-485
30、 通信标准的低功率收发器。1. 主要性能及管脚MAX485 芯片采用单一电源+5V工作,额定电流为 300A,采用半双工通讯方式。它完成将TTL电平转换为RS485 电平的功能。其引脚结构图如图 4-1 所示,MAX485 逻辑关系如表 4-1 所示。MAX485 芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。RO和DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RXD和TXD相连即可;/RE和DE端分别为接收和发送的使能端,当/RE为逻辑 0 时,器件处于接收状态;当DE为逻辑 1 时,器件处于发送状态,因为MAX485 工作在半双工状态, 所以只需用单片
31、机的一个管脚控制这两个引脚即可;A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为 1;当A的电平低于B端时,代表发送的数据为 0。在与单片机连接时接线非常简单。只需要一个信号控制MAX485 的接收和发送即可。同时将A和B端之间加匹配电阻,一般可选 100的电阻。可以串行口取电,可以驱动MAX232 与MAX485 实现通信。没加负载时电压有 5.16V,加负载后降制 3V左右11。图 4-1 MAX485 芯片引脚和结构图表 4-1MAX485 逻辑关系发送/REDEDIABXHHHLXHLLHXLXZZ接收A-B/REDERO=+0.2VLLH=-0.2VL
32、LLXHLZ采用 RS-485 构成的多机通信原理框图,如图 4-2 所示。图 4-2 多机通信原理框图在系统中由于通信载体是双绞线,它的特性阻抗为 120 欧左右,所以在设计电路时,为了减少线路上传输信号的反射,保证信号传输无毛刺,需要接匹配电阻。匹配电阻的取值应该与总线的电阻特性相当,即在RS-485 网络传输线的始端和末端各接一个 120 欧的匹配电阻。当总线上没有信号传输时,总线处于悬浮状态,容易基于 RS485 总线的多机通信系统设计受干扰信号的影响。在总系统硬件设计线上差分信号的正端A+和+5V电源间接一个10K的电阻,正端A+和负端B-间接一个 10K的电阻,负端B-和地间接一个
33、 10K的电阻,形成一个网络,当总线上没有信号传输时,正端A+的电平大约为 3.2V,负端B-的电平大约为 1.6V即使有干扰信号,也很难产生串行通信的起始信号 0,从而增加了总线抗干扰的能力9。在半双工通信情况下,发送和接收共用一个物理通道,在任意时刻只允许一台单机处于发送状态,因此要求应答的单机必须在侦听到总线上呼叫信号己经发送完毕,并且没有其他单机发出应答信号的情况下才能应答。半双工通信对主机和从机的发送和接受有严格的要求。如果在时序上配合不好,就会发生总线冲突,使整个系统通信瘫痪,无法正常工作。要做到总线上的设备在时序上的严格配合,必须遵守以下几项原则:(1) 复位时,主从机都处在接收
34、状态。MAX485 芯片的发送和接收功能转换是由芯片的/RE、DE 端控制的。/RE=l, DE=l 时,MAX485 发送状态;/RE=O,DE=0 时,MAX485 处于接收状态。一般使用单片机的一根口线连接/RE,DE 端。在上电复位时,由于硬件电路稳定需要一定的时间,并且单片机各端口复位后处于高电平状态,这样就会使总线上各个分机处于发送状态,加上上电时各电路的不稳定,可能向总线发送信息。所以,如果用一根接口线作发送和接收的控制信号,应将接口线反向后接入 MAX485 控制端,使上电时 MAX485 处于接收状态。另外,在主从机软件上也要附加若干措施,如上电或正式通信之前,对串行口做几次
35、空操作,清除端口的非法数据和命令。(2) 控制端/RE,DE 的信号的有效宽度应大于发送或接收一帧信号的宽度。在 RS-232 等全双工通信过程中,发送和接收的信号分别在不同的物理通道上传输,不存在发送、接收控制信号转换问题。在半双工通信中,由于 MAX485 的发送和接收都由同一器件完成,并且发送和接收使用同一物理通道,必须对控制信号进行切换。控制信号何时为高电平,何时为低电平,一般以单片机的标志位作为参考。8051 单片机的标志位为 Tl 和 Rl。(3) 总线上所连接的各单机的发送控制信号在时序上完全隔开。为了保证发送和接收信号的完整和正确,避免总线上信号的碰撞,对总线的使用权必须进行分
36、配才能避免竞争,连接到总线上的单机,其发送控制信号在时间上要完全隔离2。4.1.2 直流稳压电源电子电路需要有直流稳压电源来供电,直流稳压电源主要是由电源变压器、整流、滤波和稳压电路四部分组成。电源变压器是将交流电网 220V 的电压变为所需要的电压值,然后通过整流电路将交流电压变为脉动的直流电压。由于此脉动的直流电压还含有较大的纹波,必须通过滤波电路加以滤除,从而得到平滑的直流电压。但这样的电压还随着电网电压波动、负载和温度的变化而变化。因而在整流、滤波电路之后,还需要稳压电路。稳压电路的作用是当电网波动、负载和温度变化时, 维持输出直流电压稳定。这里采用市场供应的电源模块,电源模块的设计略
37、。4.1.3 主机硬件电路设计主机设计部分包括;51 单片机的最小系统(晶振电路,复位电路),键盘系统,LED 显示,485 通讯。图 4-3 主机通讯电路1. 键盘系统键盘可分为独立联结式和行列式(矩阵式)两类。当键盘数较少时,可以采用独立联结式。其每个按键都相互独立的接通一条数据输入线,是最简单的键盘结构。当任何一个键被按下后,与之相联的输入数据线即被置“0”,而平时该线为“1”。要判断是否有键按下,用单片机的位处理指令十分方便。独立式键盘如图 4-4 所示。图 4-4 独立式键盘2. 最小系统是标准的电路设计。如图 4-5 所示。3. 发光二极管显示电路图 4-5 最小系统电路设计图共阴
38、极二极管的阴极连接在一起,通常公共阴极接地。当二极管的阳极为高电平时,二极管会点亮。当与从机通讯成功,且从机已将数据发送到主机,主机的 LED显示灯将亮起,表明已接收到数据,通讯成功。如图 4-6 所示。4. 485 通讯电路图 4-6 发光二极管显示电路单片机与 485 接口电路如图 4-7 所示,之前已经对 485 进行介绍,详见第三章内容。图 4-7 485 连接电路4.1.4 从机硬件电路的设计从机电路设计包括最小系统(晶振电路,复位电路),数码管显示电路,LED显示电路,A/D 转换电路。由于在应用系统中,主机与从机相隔较远,通信线路的长度往往超过几百米, 而从机系统上电或复位又常常
39、不在同一时刻完成。若某一时刻 MAX485 芯片的 DE 端电位为“1”,那么它对应的 485 总线输出将处于发送状态,即占用了通信总线, 这样其他下位机就无法与上位机进行通信,严重情况下有可能导致系统通信崩溃。因此在电路设计时,应保证系统在上电复位时 MAX485 的 DE 端电位为“0”。由于 51 单片机在复位时,I/O 口输出为高电平,所以设计下位单片机和 MAX485 的连接如图 4-8 所示。图 4-8 从机电路1.485 通讯电路485 通讯电路如图 4-9 所示。图 4-9 从机 485 通讯电路2. 数码管显示电路在多位LED显示时,为简化硬件电路,通常将所有位的段码线相应段
40、并联在一起,由 1 个 8 位的I/O口控制,形成段码线的多路复用,而各位的共阴极由相应的I/O 线控制,形成各位的分时选通。由于各位的段码线并联,8 位I/O口输出的段码对各个显示位来说都是相同的。因此,在同一时刻,如果各位位选线都处于选通状态的话,2 位数码管就显示同样的字符。若要各位LED能够同时显示出与本位相应的显示字符,就必须采用动态显示方式,即在某一时刻,只让某一位的位选线处于选通状态,而其他各位的位选线处于关闭状态,同时段码线上输出相应位要显示的字符段码。用循环的方式显示将要显示的字符。虽然这些字符是在不同时刻出现的,而在同一时刻,只有一位显示,其他各位熄灭,但由于LED显示器的
41、余辉和人眼的视觉暂留作用,只要每位显示间隔足够短,则可以造成多位同时亮的假象,达到显示的效果。故选择了两位 7 段显示的数码管电路,加上了 2-4 译码器 74LS139 和驱动器 74LS48 电路10。显示电路如图 4-10 所示:图 4-10 数码管显示电路3. 发光二极管显示电路如图 4-11 所示。图 4-11 LED 显示电路4. A/D 转换电路ADC0809 是逐次比较的方法完成 A/D 转换的,由单一的+5V 电源供电。片内带有锁存功能的 8 路选 1 模拟开关,由 C,B,A 引脚的编码来决定所选的通道。0809 完成 1 次转换需 100us 左右,输出具有 TTL 三态
42、锁存缓冲器,可直接连到 MCS-51的数据总线上。通过适当的外接电路,0809 可对 05V 的模拟信号进行转换。A/D 转换电路如图 4-12 所示。图 4-12A/D 转换电路第五章系统软件设计5.1 设计思路整个多机通信系统设计的关键在于系统通信模块的实现。 一对多的通信模式有别于单一的一对一通信,它采用主从工作模式。 由于通信总线上并挂着多台下位机, 每一台下位机都是平等的。 上位机为了能识别下位机,需要对每一台下位机进行编址,即一个类似于以太网卡MAC 地址的十六进制编号,这个地址编号在该RS485 总线上是独一无二的。当上位机需要监控目标下位机时,首先发出具有编号的地址帧于RS48
43、5 总线上,此时总线上的每一台下位机都将接收到这个地址帧,并进行判断。若目标地址与自身相符,说明该下位机被选中,要求接收发送监控数据,即收发数据帧信息。否则,退出并回到接收地址帧状态。数据的交换过程(包括建立连接和交换数据) 采用一问一答的方式,主机询问了从机,。从机才给予应答,收到应答后, 数据交换才继续进行下去。这样的方式可以避免多个从机间没有次序的数据通信, 扰乱整个网络上数据的传输。5.2 通信协议5.2.1 通信协议介绍Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它
44、,不同厂商生产的控制设备可以连成工业网络,进行集中监控。控制器能设置为两种传输模式(ASCII 或 RTU)中的任何一种在标准的 Modbus 网络通信。在此使用 RTU 模式。5.2.2 RTU 模式RTU 模式的格式如图 5-1 所示。图 5-1 RTU 模式的格式当控制器设为在Modbus 网络上以RTU(远程终端单元)模式通信,在消息中的每个8Bit 字节包含两个4Bit 的十六进制字符。这种方式的主要优点是:在同样的波特率下,可比ASCII 方式传送更多的数据。代码系统: 8 位二进制,十六进制数0.9,A.F 消息中的每个8 位域都是一个两个十六进制字符组成每个字节的位: 1 个起
45、始位 8 个数据位,最小的有效位先发送 1 个奇偶校验位,无校验则无 1 个停止位(有校验时),2 个Bit(无校验时) 错误检测域: CRC(循环冗长检测)地址码:地址码为通讯传送的第一个字节。这个字节表明由用户设定地址码的从机将接收由主机发送来的信息。并且每个从机都有具有唯一的地址码,并且响应回送均以各自的地址码开始。主机发送的地址码表明将发送到的从机地址,而从机发送的地址码表明回送的从机地址。功能码:通讯传送的第二个字节。ModBus 通讯规约定义功能号为 1 到 127。一般情况下只运用一部分功能码,作为主机请求发送,通过功能码告诉从机执行什么动作。作为从机响应,从机发送的功能码与从主
46、机发送来的功能码一样,并表明从机已响应主机进行操作。如果从机发送的功能码的最高位为(比如功能码大与此同时 127),则表明从机没有响应操作或发送出错。数据区:数据区是根据不同的功能码而不同。数据区可以是实际数值、设置点、主机发送给从机或从机发送给主机的地址.5.2.3 RTU 帧使用RTU 模式,消息发送至少要以3.5 个字符时间的停顿间隔开始。在网络波特率下多样的字符时间,这是最容易实现的(如图 1-24 的T1-T2-T3-T4 所示)。传输的第一个域是设备地址。可以使用的传输字符是十六进制的0.9,A.F。网络设备不断侦测网络总线,包括停顿间隔时间。当第一个域(地址域)接收到,每个设备都
47、进行译码以判断是否发往自己的。在最后一个传输字符之后,一个至少3.5 个字符时间的停顿标定了消息的结束。一个新的消息可在此停顿后开始。整个消息帧必须作为一连续的流转输。如果在帧完成之前有超过1.5 个字符时间的停顿,接收设备将刷新不完整的消息并假定下一字节是一个新消息的地址域。同样地,如果一个新消息在小于3.5 个字符时间内开始,接收的设备将认为它是前一消息的延续。这将导致一个错误,因为在最后的CRC 域的值不可能是正确的。典型的消息帧如图5-2 所示:图 5-2 RTU 消息帧5.2.4 错误校验冗余循环码(CRC)包含 2 个字节,即 16 位二进制。CRC 码由发送设备计算, 放置于发送
48、信息尾部。接收信息设备再重新计算接收到信息 CRC 码,比较计算到CRC 码是否与接收到相符,两者不相符,则表明出错。3.MODBUS 汇编程序详细的程序代码在附录中。5.3 单片机通信程序设计单片机的数据通信由串行口完成,定时器 TI 作为波特率发生器,其波特率要与主机一致。数据的传送格式为 1 位起始位、8 位数据位、作为地址/数据控制位的第 9 位和 1 位停止位。采用中断方式发送和接收数据,定时器 TI 设置为工作模式 2, 串行口设置为工作方式 3,由第 9 位判断地址码或数据。当某台单片机与主机发出的地址码一致时,就发出应答信号给主机,而其他单片机则不发应答信号,这样在某一时刻主机
49、只与一台单片机传输信息。单片机主程序流程图和从机程序流程图分别如图 5-3,5-4 所示。5.4 程序代码实现这里只介绍部分程序代码,完整的程序代码见附录。1. 主机的初始化:包括定时器:TMOD,TH1,TL1,TR1=1,串口:SCON,PCON,开中断。程序代码为:ORG 0000HMOV TMOD,#20H ;波特率设置MOV TL1,#0FAH MOV TH1,#0FAH SETB TR1MOV SCON,#0D8H ;主机工作于方式 3,REN=1,TB8=1 MOV PCON,#00H;SMOD 为 0SETB EA;开中断SET ES2. 从机的初始化:包括定时器:TMOD,T
50、L1,TH1,TR1=1,串口:SCON,PCON。程序代码为:ORG 0000HMAIN:MOV TMOD,#20H ;设置波特率MOV TL1,#0FAH MOV TH1,#0FAH SETB TR1MOV SCON,#0F8H ;从机工作于方式 3,REN=1,SM2=1,TB8=1MOVPCON,#00HSETEA;开中断SET ES3. 数码管显示电路: 程序代码:DIR:MOVR0,70HMOVR3,0FEH MOVA,R3LD0: MOVDPTR,7FFCHMOVXDPTR,A MOVA,R0MOVDPTR ,#DSEGMOVCA,ADPTR DIR1:MOVDPTR ,#7FF
51、DHMOVXDPTR,A ACALLDL1msINCR0MOVA,R3JBAcc.3,LD1 JBAcc.3,LD1 RLAMOVR3,A AJMPLD0LD1:RETDL1ms:MOVR7,02HDL:MOVR6,0FFHDL6:DJNZR6,DL6DJNZR7,DLRETDSEG: DB3FH,06H,5BH,4FH,66H,6DH ;共阴极段码表DB7DH,07H,7FH,6FH,77H,7CH DB39H,5EH,79H,71H,00H开始开始键按下?RI?正确接收?RI?正确接收?RI?停止键按下?指示灯亮发送开始采集发送启动到从机初始化图 5-3 主机程序框图.开始初始化是否有指令
52、是启动?开始采集?将A/D 数据发出指示灯亮发应答启动显示 LEDA/D 转换开中断图 5-4 从机程序框图显示子程序框图如图 5-5 所示。开始显示缓冲区 70H将 LED1 的位选送低电平将 LED2 的位选送高电平将 70H 的内容查表得其字形码并送出将 71H 的内容查表得其字形码并送出将 LED1 的位选送高电平将 LED2 的位选送低电平延时延时显示图 5-5 数码管显示电路第六章系统性能的改善6.1 RS-485 总线通信抗干扰设计由于RS-485 的远距离,多节点以及传输线成本低的特性,使得EIA RS-485 成为工业应用中数据传输的首选标准。但在实际使用过程中RS-485
53、总线在抗干扰、自适应、通信效率等方面仍存在缺陷,一些细节的处理不当常会导致通信失败甚至系统瘫痪等故障,因此提高RS-485 总线的运行可靠性至关重要7。6.1.1 防止通信电缆中的信号反射措施在通信过程中,有两种情况会导致信号反射:(1)阻抗不连续。信号在传输线末端突然遇到电缆阻抗突变,造成阻抗不连续,信号在这个地方就会引起反射。消除这种反射的方法是必须在电缆的末端跨接一个与电缆特性阻抗同样大小的终端电阻,使电缆的阻抗连续。由于信号在电缆上的传输是双向的,因此,在通信电缆的另一端可跨接一个同样大小的终端电阻。从理论上分析,在传输电缆的末端只要跨接了与电缆特性阻抗相匹配的终端电阻,就再也不会出现
54、信号反射现象。但是,在实际应用中,由于传输电缆的特性阻抗与通信波特率等应用环境有关,特性阻抗不可能与终端电阻完全相等,因此或多或少还会存在信号反射。(2)阻抗不匹配。引起信号反射的另一个原因是数据收发器与传输电缆之间的阻抗不匹配。这种原因引起的反射,主要表现在通信线路处在空闲方式时,整个网络数据混乱。信号反射对数据传输的影响,归根结底是因为反射信号触发了接收器输入端的比较器, 使接收器收到了错误的信号。要减弱反射信号对通信线路的影响,通常采用噪声抑制和加偏置电阻的方法。在实际应用中,对于比较小的反射信号,为简单方便,经常采用加偏置电阻的方法。在通信波特率比较高的时候,在线路上增加偏置电阻是很有必要的。它的作用是在线路进入空闲状态后,把总线上没有数据时(空闲方式) 的电平拉离 0 电平。这样,即使线路中出现了比较小的反射信号或干扰,挂接在总线上的数据接收器也不会由于这些信号的到来而产生误动作14。在实际应用中,RS-485 总线加偏置电阻有两种方法:a. 把偏置电阻平均分配给总线上的每一个收发器。这种方法给挂接在 RS-485 总线上的每一个收发器加了偏置电阻和一个偏置电压。b. 在一段总线上只用一对偏置电阻。这种方法对总线上存在大的反射信号或干扰信号时比较有效。但要注意的是偏置电阻的加入,增加了总线的负载9。6.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 队伍教育考核制度
- 2026黑龙江哈尔滨工业大学商学院招聘备考题库附参考答案详解(模拟题)
- 2026贵州财经大学招聘4人备考题库附参考答案详解(综合题)
- 2026湖北事业单位联考孝感孝昌县招聘14人备考题库完整参考答案详解
- 2026甘肃武威古浪县公益性岗位工作人员招聘8人备考题库附答案详解ab卷
- 2026江苏南京大学医学院技术管理招聘备考题库附参考答案详解(达标题)
- 2026江西事业单位联考赣州市招聘1170人备考题库附答案详解(预热题)
- 2026福建中医药大学高层次人才招聘71人备考题库含答案详解(培优)
- 2026重庆大足区规划和自然资源局食堂白案厨师、帮厨招聘2人备考题库附答案详解
- 科普e站考核制度
- DB45∕T 2364-2021 公路路基监测技术规范
- 2025年公务员考试行测逻辑推理试题库及答案(共200题)
- 智能客户服务实务-教案
- 诊所医保审批管理制度
- 2025年云南省中考数学真题试卷及答案
- GB/T 18916.8-2025工业用水定额第8部分:合成氨
- 环境监测项目中的数据保密措施
- CISP(CISO与CISE)题库及答案解析(700道)
- 配电箱移交协议书模板
- 2024-2030年中国桉叶(油)素市场专题研究及市场前景预测评估报告
- 2024年生态环境执法大练兵比武竞赛理论考试题库-下(多选、判断题)
评论
0/150
提交评论