没有合适的资源?快使用搜索试试~ 我知道了~
首页RS485多机通讯协议
资源详情
资源推荐
单片机 RS-485 多机通讯的实现
摘 要 本文介绍一种能利用 RS-485 电气特性和简单的结构方式,采用自定
义串行通信协议,实现单片机 RS-485 多机通讯的方法和技巧。
关键词 单片机,RS-485 总线,总线冲突,串行通信
1 简介
RS-485 串行总线接口标准以差分平衡方式传输信号,具有很强的抗共模
干扰的能力,允许一对双绞线上一个发送器驱动多个负载设备。工业现场控制
系统中一般都采用该总线标准进行数据传输,而且一般采用 RS-485 串行总线
接口标准的系统都使用 8044 芯片作为通信控制器或各分机的 CPU。8044 芯片
内部集成了 SDLC,HDLC 等通信协议,并且集成了相应的硬件电路,通过硬
件电路和标准协议的配合,使系统的通讯准确、可靠、快速。8044 在市场上日
渐稀少,虽然有 8344 可替代,但几百元的价位与普通单片机几元至几十元的
价位相差甚远,用户在开发一般的单片机应用系统时,都希望能用简单的电路
和简单的通信协议完成数据交换。譬如:利用单片机本身所提供的简单串行接
口,加上总线驱动器如 SN75176 等组合成简单的 RS-485 通讯网络。本文所
述的方法已成功地应用于工程项目,一台主机与 60 台从机通讯,通讯波特率达
64KBPS。
2 总线驱动器芯片 SN75176
常用的 RS-485 总线驱动芯片有
SN75174,SN75175,SN75176。SN75176 芯片有一个发送器和一个接收器,
非常适合作为 RS-485 总线驱动芯片。
SN75176 及其逻辑如图 1 所示。
图 1 SN75176 芯片及其逻辑关系
3 RS-485 方式构成的多机通信原理
在由单片机构成的多机串行通信系统中,一般采用主从式结构:从机不主
动发送命令或数据,一切都由主机控制。并且在一个多机通信系统中,只有一
台单机作为主机,各台从机之间不能相互通讯,即使有信息交换也必须通过主
机转发。采用 RS-485 构成的多机通讯原理框图,如图 2 所示。
图 2 采用 RS-485 构成的多机通讯原理框图
在总线末端接一个匹配电阻,吸收总线上的反射信号,保证正常传输信号
干净、无毛刺。匹配电阻的取值应该与总线的特性阻抗相当。
当总线上没有信号传输时,总线处于悬浮状态,容易受干扰信号的影响。
将总线上差分信号的正端 A
+
和+5 电源间接一个 10K 的电阻;正端 A
+
和负端 B
-
间接一个 10K 的电阻;负端 B
-
和地间接一个 10K 的电阻,形成一个电阻网络。
当总线上没有信号传输时,正端 A
+
的电平大约为 3.2V,负端 B
-
的电平大约为
1.6V,即使有干扰信号,却很难产生串行通信的起始信号 0,从而增加了总线抗
干扰的能力。
4 通信规则
由于 RS-485 通讯是一种半双工通讯,发送和接收共用同一物理信道。在
任意时刻只允许一台单机处于发送状态。因此要求应答的单机必须在侦听到总
线上呼叫信号已经发送完毕,并且没有其它单机发出应答信号的情况下,才能
应答。半双工通讯对主机和从机的发送和接收时序有严格的要求。如果在时序
上配合不好,就会发生总线冲突,使整个系统的通讯瘫痪,无法正常工作。要
做到总线上的设备在时序上的严格配合,必须要遵从以下几项原则:
1) 复位时,主从机都应该处于接收状态。
SN75176 芯片的发送和接收功能转换是由芯片的 RE
*
,DE 端控制
的。RE
*
=1,DE=1 时,SN75176 发送状态;RE*=0,DE=0 时,SN75176 处
于接收状态。一般使用单片机的一根口线连接 RE
*
,DE 端。在上电复位时,由
于硬件电路稳定需要一定的时间,并且单片机各端口复位后处于高电平状态,
这样就会使总线上各个分机处于发送状态,加上上电时各电路的不稳定,可能
向总线发送信息。因此,如果用一根口线作发送和接收控制信号,应该将口线
反向后接入 SN75176 的控制端,使上电时 SN75176 处于接收状态。
另外,在主从机软件上也应附加若干处理措施,如:上电时或正式通讯之
前,对串行口做几次空操作,清除端口的非法数据和命令。
2) 控制端 RE
*
,DE 的信号的有效脉宽应该大于发送或接收一帧信号的宽
度。
在 RS-232,RS-422 等全双工通讯过程中,发送和接收信号分别在不同
的物理链路上传输,发送端始终为发送端,接收端始终为接收端,不存在发
送、接收控制信号切换问题。在 RS-485 半双工通讯中,由于 SN75176 的发
送和接收都由同一器件完成,并且发送和接收使用同一物理链路,必须对控制
信号进行切换。控制信号何时为高电平,何时为低电平,一般以单片机的
TI,RI 信号作参考。
发送时,检测 TI 是否建立起来,当 TI 为高电平后关闭发送功能转为接收功
能;
接收时,检测 RI 是否建立起来,当 RI 为高电平后,接收完毕,又可以转为
发送。
在理论上虽然行得通,但在实际联调中却出现传输数据时对时错的现象。
根据查证有关资料,并在联调中借助存储示波器反复测试,才发现一个值得注
意的问题,我们可以查看单片机的时序:
图 3 串行口模式 3 时序图
单片机在串行口发送数据时,只要将 8 位数据位传送完毕,TI 标志即建
立,但此时应发送的第九位数据位(若发送地址帧时)和停止位尚未发出。如
果在这是关闭发送控制,势必造成发送帧数据不完整。如果单片机多机通讯采
用较高的波特率,几条操作指令的延时就可能超过 2 位(或 1 位)数据的发送
时间,问题或许不会出现。但是如果采用较低波特率,如 9600,发送一位数据
需 100μs 左右,单靠几条操作指令的延时远远不够,问题就明显地暴露出来。
接收数据时也同样如此,单片机在接收完 8 个数据位后就建立起 RI 信号,但此
时还未接收到第九位数据位(若接收地址帧时)和停止位。所以,接收端必须
延时大于 2 位数据位的时间(1 位数据位时间=1/波特率),再作应答,否则会
发生总线冲突。
3) 总线上所连接的各单机的发送控制信号在时序上完全隔开。
为了保证发送和接收信号的完整和正确,避免总线上信号的碰撞,对总线
的使用权必须进行分配才能避免竞争,连接到总线上的单机,其发送控制信号
在时间上要完全隔离。
总之,发送和接收控制信号应该足够宽,以保证完整地接收一帧数据,任
意两个单机的发送控制信号在时间上完全分开,避免总线争端。
程序流程框图,参见图 4。其中:a)为发送流程图;b)为接收流程图。
图 4 程序流程图
注:延时 T 秒的取值
(1) 传送地址帧时,T>2X(1/波特率),可以选取 T=2.5X(1/波特率)。
(2) 传送数据帧时,T>1X(1/波特率),可以选取 T=1.5X(1/波特率)。
基于 RS485 总线的多机通信系统设计方案解析
2.2 RS-485
RS-485 标准接口是单片机系统种常用的一种串行总线之一。RS-485 通
信方式 RS-485 标准是由 EIA(电子工业协会)和 TIA(通讯工业协会)共同制
订和开发的。RS-485 作为一种多点差分数据传输的电气规范,已成为业界最
广泛应用的标准通信接口之一。理论上,RS-485 标准最多接入 32 个设备(受
芯片驱动能力的影响),可以工作在半双工或全双工模式下,最大传输距离约
为 1219 米,最大传输速率约为 10Mbps[1]。然而通常 RS-485 网络采用
平衡双绞线作为传输媒体,平衡双绞线的长度与传输速率成反比,只有在
20Kbps 的传输速率下,才可能达到最大传输距离。一般 15 米长的双绞线最大
传输速率仅为 1Mbps。不过对于速率要求不是很高的控制系统来说已经足够了。
RS-485 采用平衡发送和差分接收方式来实现通信:在发送端 TXD 将串行
口的 TTL 电平信号转换成差分信号 A、B 两路输出,经传输后在接收端将差分
信号还原成 TTL 电平信号。两条传输线通常使用双绞线,又是差分传输,因此
有极强的抗共模干扰的能力,接收灵敏度也相当高。同时,最大传输速率和最
大传输距离也大大提高。如果以 10Kbps 速率传输数据时传输距离可达 12m,
而用 100Kbps 时传输距离可达 1.2km。如果降低波特率,传输距离还可进一
步提高。另外 RS-485 实现了多点互连,最多可达 256 台驱动器和 256 台接
收器,非常便于多器件的连接。不仅可以实现半双工通信,而且可以实现全双
工通信。
2.3 多机通信原理
在多机通信中,每台从机均分配有一个从机地址,主机与从机之间进行串
行通信时,通常是主机先呼叫某从机地址,唤醒被叫从机后,主、从两机之间
进行数据交换。而未被呼叫的从机则继续进行各自的工作。可是,如果在主机
与某被呼叫从机进行数据交换过程中,其他从机如果不采取相应的数据识别技
术,则这些从机就会因为串行通信线上有数据传输而时时被打断,影响正常的
工作。利用单片机的串口工作方式 2、方式 3 可以很好解决上述问题。在多机
剩余22页未读,继续阅读
YFWDM
- 粉丝: 7
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 保险服务门店新年工作计划PPT.pptx
- 车辆安全工作计划PPT.pptx
- ipqc工作总结PPT.pptx
- 车间员工上半年工作总结PPT.pptx
- 保险公司员工的工作总结PPT.pptx
- 报价工作总结PPT.pptx
- 冲压车间实习工作总结PPT.pptx
- ktv周工作总结PPT.pptx
- 保育院总务工作计划PPT.pptx
- xx年度现代教育技术工作总结PPT.pptx
- 出纳的年终总结PPT.pptx
- 贝贝班班级工作计划PPT.pptx
- 变电值班员技术个人工作总结PPT.pptx
- 大学生读书活动策划书PPT.pptx
- 财务出纳月工作总结PPT.pptx
- 大学生“三支一扶”服务期满工作总结(2)PPT.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功