老是忘记一些基础知识点,最近使用modbus老是与串口打交道,再此做下笔记。为方便自己理解在作者原文基础上有一些轻微修改。
本文转载地址:http://www.eepw.com.cn/article/201605/291509.htm

RS232接口是一种用于近距离(最大30-60米)、慢速度、点对点通讯的通讯协议,在RS232中一个信号只用到一条信号线,采取与地电压参考的方式,因而在长距离传输后,发送端和接收端地电压有出入,容易造成通讯出错或速度降低。

RS485/422接口采用不同的方式:每个信号都采用双绞线(两根信号线)传送,两条线间的电压差用于表示数字信号。例如把双绞线中的一根标为 A(正),另一根标为B(负),当A为正电压(通常为+5V),B为负电压时(通常为0),表示信号“1”;反之,A为负电压,B为正电压时表示信号 “0”。RS485/422允许通讯距离可达到1200米,采用合适的电路可达到2.5MB/s的传输速率。

RS422与RS485采用相同的通讯协议,但有所不同:它采用两根双绞线,数据可以同时双向传递(全双工)。 而RS485则采用一根双绞线,输入输出信号不能同时进行(半双工),RS485可用于多点通讯,一条信号线上可连接多个设备,它通常采用主/从结构。

在RS485(半双工)通信中,发送信号时,由TXD输出的TTL电平信号经RS485转换器转换后,从发送器(A和B)输出RS485信号;接收信号时,RS485信号经接收器(A和B)接收后,然后RS485转换器将信号转换为TTL电平信号,传给RXD。(注意:2个需要通讯设备之间是各有一个RS485转换器并不是它们的信号只经过了一个RS485转换器就成功通讯了

在RS422(全双工)通信中,因信号的输入和输出分开,所以需要两根双绞线来传送输入和输出信号,标为A、B、Y、Z(A为输入信号的正极,B为输入信 号的负极,Y为输出信号的正极,Z为输出信号的负极)。发送信号时,由TXD输出的TTL电平信号经RS422转换器后,从发送器(Y和Z)输出RS485/RS422 信号;接收信号时,RS485/RS422信号经接收器(A和B)接收后,RS422转换器将信号转换为TTL电平信号,传给串口的RXD。

图1:DM系列RS485/RS422接口转换器原理图(半双工)


图2:DM系列RS485/RS422接口转换器原理图(全双工)

以上图片只是贴出了一半的接线图,这里给出一张多机通讯的RS485接线原理图(半双工)

二、典型接法

DM485的输出端最多可以连接256个RS485接口,其典型接法如图3(半双工)和图4(全双工)所示。在最远的两个终端上,输入和输出端之间各需接 上一个120欧姆的电阻。在RS485/RS422的接口连接时,甲接口的输出端接乙接口的输入端,双绞线的正极接正极,负极接负极;甲接口的输入端接乙 接口的输出端,双绞线的正极接正极,负极接负极。

四、注意事项

1、在长距离传输中,一定要使用用双绞线

2、多终端传输时,距离最远的两个终端上,输入和输出端之间一定连接120欧姆的电阻。

补充:我不知道为什么那么多的资料都没有说明RS485通信发送和接收数据时的细节,都只说2根线就能发送和接收数据??? 注意:485芯片有个控制端,控制端高电平时候为接收数据,低电平时候为发送数据。而我们在实际项目开发的时候,在使用RS485通信时,如果自己的电路并没有设计成RS485硬件自收发切换的电路,则需要自己控制485的收发使能引脚。即发送数据时,需要拉低485芯片控制端的IO口;相反接收数据时,需要拉高控制端的IO口。

需要自己控制收发的485芯片原理图:

控制策略:UART_CON为低电平,485处于接收状态;UART_CON为高电平,485处于发送状态。通过切换UART_CON的电平来达到485收发状态的切换。

485芯片硬件自动收发切换电路:

接收:默认没有数据时,在接收数据的过程中,TXD引脚是一直保持高电平的,三极管导通,RE低电平使能,485芯片处于接收状态,然后485芯片的RO引脚(也就是接RXD的引脚)就会反应AB传输过来的数据。

发送:发送数据时,TX会先有一个下拉的电平(起始位-由高向低),表示开始发送数据,此时三极管截止,DE为高电平发送使能。当发送数据“0”时,由于DI接口相当于接地,此时数据“0”就会传输到AB扣,A-B<0,则传输“0”,完成低电平传输,当发送“1”时,此时三极管导通,RE变为低电平,按理说会让接收使能,但是由于还处于发送数据中,这种状态下MAX485处于高阻态,此时的状态通过A上拉电阻(R5),B下拉电阻(R4)决定,此时A-B>0传输“1”,完成高电平的传输。

注意:这里面有个疑惑,发送数据“1”,三极管RE低电平有效,应该是接收使能,为什么芯片是高阻态呢?这是因为UART发送数据是有一定格式的,TX和RX数据均以“位”为最小单位进行传输,在发送数据之前,UART之间要约定好数据传输速率,即波特率,数据传输格式(数据位,校验,停止),平时数据线处于空闲状态(1状态),当发送数据时,TX由“1”变为“0”维持1位的时间,这样接收方检测到开始位后,再等待1.5位时间就开始一位一位的进行数据传输了,也就是说,已经确定好发送状态,电路发送“1”时RE虽然有效,但是由于它处于发送阶段,芯片也不会收,即芯片处于高阻状态。

对于RS485硬件自动收发切换的电路设计,可以看下这3篇文章:
https://blog.csdn.net/karaxiaoyu/article/details/108354192
https://blog.csdn.net/yanglianzhuang/article/details/81736947
https://blog.csdn.net/electrocrazy/article/details/72356631

rs422/rs485通信接口原理图相关推荐

  1. linux下rs422串口通信,RS232/RS422/RS485通信接口區別

    一 串口控制 通常我們對於視頻服務器.錄像機.切換台等直接播出.切換控制主要使用串口進行,主要使用到RS-232.RS-422與RS-485三種接口控制.下面就串口的接口標准以及使用和外部插件和電纜進 ...

  2. TTL/RS232/RS422/RS485串行通信接口区别与波形

    TTL/RS232/RS422/RS485通信接口区别与波形 串行通信接口区别 串口数据帧格式 接线图 波形图 串行通信接口区别 TTL/RS232/RS422/RS485指的是电平接口标准,都属于串 ...

  3. 通信接口:RS-232 / RS-422 / RS-485三者概述与区别

    1. RS232概述 RS-232接口符合美国电子工业联盟(EIA)制定的串行数据通信的接口标准,原始编号全称是EIA-RS-232(简称232,RS232).它被广泛用于计算机串行接口外设连接.连接 ...

  4. RS232, RS422, RS485 引脚布局区别

    RS232, RS422, RS485在接线接口方面都使用DB9 9针接口,但各引脚的含义不同.各接口的引脚区别如下表描述. Pin Mode RS232 RS422 RS485 1   DCD DC ...

  5. 对比 RS232,RS422,RS485

    对比 RS232,RS422,RS485 首先, 串口.UART口.COM口.RJ45网口.USB口是指的物理接口形式(硬件). TTL.RS-232.RS-485.RS-422是指的电平标准(电信号 ...

  6. RS232/RS422/RS485串口引脚连线

    RS232/RS422/RS485引脚如何?串口线应该分别如何制作,才能正确的使用RS232/RS422/RS485? Pin 信 号 定 义 RS232 RS232 (DB9)引脚定义 DCD :载 ...

  7. 工业机器人(8)-- UART和RS-232、RS-422、RS-485通信接口

    目录 一.UART是什么 二.RS-232标准 三.RS-485/ RS-422标准 四.RS-232与RS-485对比 五.RS-422与RS-485对比 六.影响RS-485总线通讯速度和通信可靠 ...

  8. 学习modbus(八)——单片机RS485通信接口、控制线、原理图及程序实例

    RS232 标准是诞生于 RS485 之前的,但是 RS232 有几处不足的地方: 接口的信号电平值较高,达到十几 V,使用不当容易损坏接口芯片,电平标准也与TTL 电平不兼容. 传输速率有局限,不可 ...

  9. 单片机RS485通信接口、控制线、原理图及程序实例

    RS232 标准是诞生于 RS485 之前的,但是 RS232 有几处不足的地方: 接口的信号电平值较高,达到十几 V,使用不当容易损坏接口芯片,电平标准也与TTL 电平不兼容. 传输速率有局限,不可 ...

  10. RS232,RS422,RS485的区别和RS485通讯线缆注意事项

    1.RS-232-C是美国电子工业协会EIA(Electronic Industry Association)制定的一种串行物理接口标准.RS是英文"推荐标准"的缩写,232为标识 ...

最新文章

  1. ccat – 使用语法突出显示输出内容
  2. 新冠肺炎数据里学到的四个数据分析和机器学习知识
  3. 收藏 | 一文打尽AI、机器学习网络资源!
  4. nginx 稳定版 1.16.0 发布,支持动态加载 SSL 证书
  5. [Redis]Redis章2 Redis 持久化
  6. ARM WFI和WFE指令
  7. RTC 融合通信服务架构与场景应用 | 2021稀土开发者大会音视频专场
  8. 树莓派3 kali linux很卡,树莓派3装kali Linux 成功写入 但是点不亮 为什么?
  9. 无忧PHP企业网站内容管理系统源码v2.8 标准版
  10. C#LeetCode刷题之#110-平衡二叉树(Balanced Binary Tree)
  11. java 枚举的实现原理
  12. 【python】面向对象的封装、继承、多态的练习题
  13. 企业网站+Axure企业官网通用模板+公司官网通用模板+web端高保真原型+门户官网+物流企业+门户网站+服务中心+产品中心+新闻中心+帮助中心+企业官网+公司官网+公司网站+登录注册+高保真交互
  14. 2440 6.0BSP 移植过程之OAL
  15. Eclipse中的快捷键……希望朋友们能熟练使用
  16. LINUX SHELL中echo如何处理特殊字符
  17. 如何将音乐上传到YouTube音乐
  18. Proteus仿真之工业顺序控制实验
  19. android基带版本,Android - 基带版本为未知时自动隐藏
  20. 爸爸给女儿存了一份养老险,女儿50多岁时可以领取30多万

热门文章

  1. 基于STM32cubemx的STM32F107vct6的代码生成,实验四串口与DMA
  2. linux udp转发脚本,使用Socat转发TCP和UDP流量搭建跳板教程及一键脚本
  3. 电子科技大学软件工程大一到大二课程
  4. 计算机软件方面的核心期,计算机方面期刊_计算机方面适合阅读的期刊_计算机八大核心期刊...
  5. cαr怎么发音_英语c的发音怎么读
  6. 狂神SSM项目整合(含完整代码免费)
  7. JAVA-消息队列及分布式消息队列原理
  8. 音频知识之OGG格式分析
  9. [经验分享] 收费版文字转语音,免费使用
  10. 电商后台管理项目的步骤分析