欢迎来到天天文库
浏览记录
ID:33637206
大小:59.50 KB
页数:6页
时间:2019-02-27
《单片机rs-485多机通讯的实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、单片机RS-485多机通讯的实现 摘 要 本文介绍一种能利用RS-485电气特性和简单的结构方式,采用自定义串行通讯协议,实现单片机RS-485多机通讯的方法和技巧。 关键词 单片机,RS-485总线,总线冲突,串行通讯1 简介 RS-485串行总线接口标准以差分平衡方式传输信号,具有很强的抗共模干扰的能力,答应一对双绞线上一个发送器驱动多个负载设备。产业现场控制系统中一般都采用该总线标准进行数据传输,而且一般采用RS-485串行总线接口标准的系统都使用8044芯片作为通讯控制器或各分机的CPU
2、。8044芯片内部集成了SDLC,HDLC等通讯协议,并且集成了相应的硬件电路,通过硬件电路和标准协议的配合,使系统的通讯正确、可靠、快速。8044在市场上日渐稀少,固然有8344可替换,但几百元的价位与普通单片机几元至几十元的价位相差甚远,用户在开发一般的单片机应用系统时,都希看能用简单的电路和简单的通讯协议完成数据交换。譬如:利用单片机本身所提供的简单串行接口,加上总线驱动器如SN75176等组合成简单的RS-485通讯网络。本文所述的方法已成功地应用于工程项目,一台主机与60台从机通讯,通讯波特
3、率达64KBPS。2 总线驱动器芯片SN75176 常用的RS-485总线驱动芯片有SN75174,SN75175,SN75176。SN75176芯片有一个发送器和一个接收器,非常适合作为RS-485总线驱动芯片。 SN75176及其逻辑如图1所示。图1 SN75176芯片及其逻辑关系3 RS-485方式构成的多机通讯原理 在由单片机构成的多机串行通讯系统中,一般采用主从式结构:从机不主动发送命令或数据,一切都由主机控制。并且在一个多机通讯系统中,只有一台单机作为主机,各台从机之间不能相互通讯,
4、即使有信息交换也必须通过主机转发。采用RS-485构成的多机通讯原理框图,如图2所示。图2 采用RS-485构成的多机通讯原理框图 在总线末端接一个匹配电阻,吸收总线上的反射信号,保证正常传输信号干净、无毛刺。匹配电阻的取值应该与总线的特性阻抗相当。 当总线上没有信号传输时,总线处于悬浮状态,轻易受干扰信号的影响。将总线上差分信号的正端A+和+5电源间接一个10K的电阻;正端A+和负端B-间接一个10K的电阻;负端B-和地间接一个10K的电阻,形成一个电阻网络。当总线上没有信号传输时,正端A+的电
5、平大约为3.2V,负端B-的电平大约为1.6V,即使有干扰信号,却很难产生串行通讯的起始信号0,从而增加了总线抗干扰的能力。4 通讯规则 由于RS-485通讯是一种半双工通讯,发送和接收共用同一物理信道。在任意时刻只答应一台单机处于发送状态。因此要求应答的单机必须在侦听到总线上呼唤信号已经发送完毕,并且没有其它单机发出应答信号的情况下,才能应答。半双工通讯对主机和从机的发送和接收时序有严格的要求。假如在时序上配合不好,就会发生总线冲突,使整个系统的通讯瘫痪,无法正常工作。要做到总线上的设备在时序上的
6、严格配合,必须要遵从以下几项原则: 1)复位时,主从机都应该处于接收状态。 SN75176芯片的发送和接收功能转换是由芯片的RE*,DE端控制的。RE*=1,DE=1时,SN75176发送状态;RE*=0,DE=0时,SN75176处于接收状态。一般使用单片机的一根口线连接RE*,DE端。在上电复位时,由于硬件电路稳定需要一定的时间,并且单片机各端口复位后处于高电平状态,这样就会使总线上各个分机处于发送状态,加上上电时各电路的不稳定,可能向总线发送信息。因此,假如用一根口线作发送和接收控制信号,应
7、该将口线反向后接进SN75176的控制端,使上电时SN75176处于接收状态。 另外,在主从机软件上也应附加若干处理措施,如:上电时或正式通讯之前,对串行口做几次空操纵,清除端口的非法数据和命令。 2)控制端RE*,DE的信号的有效脉宽应该大于发送或接收一帧信号的宽度。 在RS-232,RS-422等全双工通讯过程中,发送和接收信号分别在不同的物理链路上传输,发送端始终为发送端,接收端始终为接收端,不存在发送、接收控制信号切换题目。在RS-485半双工通讯中,由于SN75176的发送和接收都由同
8、一器件完成,并且发送和接收使用同一物理链路,必须对控制信号进行切换。控制信号何时为高电平,何时为低电平,一般以单片机的TI,RI信号作参考。 发送时,检测TI是否建立起来,当TI为高电平后封闭发送功能转为接收功能; 接收时,检测RI是否建立起来,当RI为高电平后,接收完毕,又可以转为发送。 在理论上固然行得通,但在实际联调中却出现传输数据时对时错的现象。根据查证有关资料,并在联调中借助存储示波器反复测试,才发现一个值得留意的题目,我们可以查看单片机
此文档下载收益归作者所有