目前道长入坑了一家智能家居公司,以后会分享记录一些智能家居相关的知识,如果有问题,希望小伙伴交流指正。

一、RS-485

1.1 RS-485 来源

RS485是美国电子工业协会(EIA)在1983年批准了一个新的平衡传输标准(balanced transmission standard),EIA一开始将RS(Recommended Standard)做为标准的前缀,不过后来为了便于识别标准的来源,已将RS改为EIA/TIA。目前标准名称为TIA-485,但工程师及应用指南仍继续使用RS-485来称呼此标准。
   RS-485仅是一个电气标准,描述了接口的物理层,像协议、时序、串行或并行数据以及链路全部由设计者或更高层协议定义。 RS485定义的是使用平衡(也称作差分)多点传输线的驱动器(driver)和接收器(receiver)的电气特性。

1.2 RS-485 通信原理

把MCU出来的一条的TTL信号经过芯片转换为两根线(线A、线B)上的信号。当MCU给转换器输入低TTL电平时,转换器会使得B的电压比A的电压高,反之,A的电压比B的电压高。
    RS485协议规约两条电平线上差值为多少表示0或者1,电压是通过仪表可以测量得到的,所以说RS485是硬件层协议。RS485协议的接收端可能是另一个MCU,MCU管脚也只接受TTL电平,转换芯片过来的是两条线的电压,所以需要对此两条线差分电压转换为TTL电平。
   
                                                        图一 RS485通讯原理

RS485能够进行远距离传输主要得益于使用差分信号进行传输,当有噪声干扰时仍可以使用线路上两者差值进行判断,使传输数据不受噪声干扰。
           
                                                        图二 差分信号传输

1.3 RS-485 总线

RS485采用半双工工作方式,支持多点数据通信。RS485总线网络拓扑一般采用终端匹配的总线型结构。即采用一条总线将各个节点串接起来,不支持环形或星型网络。

                                                        图三 RS485总线

RS485总线只是一种电气标准,并不是什么新的协议,与232差不多,当然这么说不是很恰当,但是有助于大家理解。现在的总线格式很多,RS485相对于其他的总线有什么特点?首先,就比较一下大家耳熟能详的CAN总线。

1.4 CAN 总线

CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由研发和生产汽车电子产品著称的德国BOSCH公司开发了的,并最终成为国际标准(ISO11898)。
    相比于CAN总线,RS232、RS485只能代表通讯的物理介质层和链路层,如果要实现数据的双向访问,就必须自己编写通讯应用程序,但这种程序多数都不能符合ISO/OSI的规范,只能实现较单一的功能,适用于单一设备类型,程序不具备通用性。
    CAN(Controller Area Network)属于现场总线的范畴,它是一种以ISO/OSI模型为基础的,具有完整的软件支持系统,能够解决总线控制、冲突检测、链路维护等问题。现场总线设备自动成网,无主/从设备之分或允许多主存在。在同一个层次上不同厂家的产品可以互换,设备之间具有互操作性。

  • CAN总线 VS RS485总线

                                                            图四 CAN总线与RS485总线对比

1.5 RS-485 协议

RS485协议一般含有指令头、功能码、设备地址、数据、校验码等部分组成,如朗园灯控485协议所示:
                                                        图五 RS485 协议指令格式举例

二、Modbus-RTU

2.1 Modbus来源

Modbus是一种串行通信协议,施耐德电气(Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工业领域通信协议的业界标准(De facto),并且现在是工业电子设备之间常用的连接方式。
    对于串行连接,存在两个变种,它们在数值数据表示不同和协议细节上略有不同。Modbus RTU(远程终端模式)是一种紧凑的,采用二进制表示数据的方式,Modbus ASCII是一种人类可读的,冗长的表示方式。这两个变种都使用串行通信(serial communication)方式。RTU格式后续的命令/数据带有循环冗余校验的校验和,而ASCII格式采用纵向冗余校验的校验和。被配置为RTU变种的节点不会和设置为ASCII变种的节点通信,反之亦然。
    对于通过TCP/IP(例如以太网)的连接,存在多个Modbus/TCP变种,这种方式不需要校验和计算。

2.2 原理

Modbus协议是一个master/slave架构的协议。有一个节点是master节点,其他使用Modbus协议参与通信的节点是slave节点。每一个slave设备都有一个唯一的地址。在串行和MB+网络中,只有被指定为主节点的节点可以启动一个命令(在以太网上,任何一个设备都能发送一个Modbus命令,但是通常也只有一个主节点设备启动指令)。
    一个ModBus命令包含了打算执行的设备的Modbus地址。所有设备都会收到命令,但只有指定位置的设备会执行及回应指令(地址0例外,指定地址0的指令是广播指令,所有收到指令的设备都会运行,不过不回应指令)。所有的Modbus命令包含了检查码,以确定到达的命令没有被破坏。基本的ModBus命令能指令一个RTU改变它的寄存器的某个值,控制或者读取一个I/O端口,以及指挥设备回送一个或者多个其寄存器中的数据。

2.3 Modbus 协议

2.3.1 Modbus TCP 数据帧

Modbus TCP 的数据帧可分为:MBAP(报文头) + PDU(帧结构),PDU由功能码和数据组成。
    报文头长度为7字节,由事务处理标识、协议标识符、长度、单元标识符组成,协议标识符一般指协议的类型,比如00 00标识Modbus TCP,消息头结构如下:

                                                        图六 Modbus 报文头

2.3.2 Modbus操作对象

有四种:线圈、离散输入、保持寄存器、输入寄存器

  • 线圈 :PLC(可编程逻辑控制器)的输出位,开关量,在Modbus中可读可写
  • 离散量 :PLC的输入位,开关量,在Modbus中只读
  • 输入寄存器 :PLC中只能从模拟量输入端改变的寄存器,在Modbus中只读
  • 保持寄存器 :PLC中用于输出模拟量信号的寄存器,在Modbus中可读可写

根据操作对象不同,Modbus功能码有不同的区分,例如如下常用功能码:

01 (0x01) 读线圈
02 (0x02) 读离散量输入
03 (0x03) 读保持寄存器
04 (0x04) 读输入寄存器
05 (0x05) 写单个线圈
06 (0x06) 写单个寄存器
15 (0x0F) 写多个线圈
16 (0x10) 写多个寄存器

2.3.3 帧结构


                                                        图七 Modbus 帧结构

从远程设备中读保持寄存器连续块的内容的Modbus 指令实例如下:
    0x03:读保持寄存器
    请求:MBAP 功能码 起始地址H 起始地址L 寄存器数量H 寄存器数量L(共12字节)
    响应:MBAP 功能码 数据长度 寄存器数据(长度:9+寄存器数量×2)
    如:起始地址是0x0000,寄存器数量是 0x0003
        00 01 00 00 00 06 01 03 00 00 00 03
    回:数据长度为0x06,第一个寄存器的数据为0x21,其余为0x00
        00 01 00 00 00 09 01 03 06 00 21 00 00 00 00

2.4 与RS485的关系

MODBUS只是通信协议的一种,就像汉语和英语一样的一种用来交流的语言,一种机器之间交流的语言。在交流之前肯定要有沟通的桥梁,那就是传输媒介485或232或其他电气规则。同一种协议可以用不同的传输媒介方式如485或232,但是同一传输线路上不能同时存在两种协议。其中Modbus的协议栈如下图所示:

                                                        图八 Modbus 协议栈

Modbus协议主要描述的是应用层的信息封装格式,处于OSI模式的第七层(应用层)。Modbus的物理层可以是RS-485、Ethernet II /802.3。使用EIA/TIA-485这种串行通讯方式的Modbus协议框图如下所示:
           
                                                        图九 基于RS485的Modbus-RTU协议栈

Modbus 与 RS485 的区别与联系相关推荐

  1. 硬件:RS232、RS422和RS485的区别

    RS232.RS422和RS485的区别 RS-232是最常见的串口,是大部分兼容Windows的桌面计算机的一个标准组件.如今通过USB到RS-232转换器使用RS-232更为常见.RS-232只允 ...

  2. RS232(Modbus RTU)+RS485(Modbus RTU)协议RFID识别磁导航AGV小车传感器|定位仪CK-GL16-AB的安装与磁处理方法

    RS232(Modbus RTU)+RS485(Modbus RTU)协议RFID识别磁导航AGV小车传感器|定位仪CK-GL16-AB是一款面向AGV行业新推出的一款"跨界"传感 ...

  3. 计算机监控通信网络 rs485和rs232,一文详解RS232和RS485的区别之处

    有用过PLC的朋友,应该都知道PLC与控制设备之间的通信基本上都是基于串行通信接口,采用其对应的通信协议进行控制的,而对于串行通信接口,包括RS232.RS422.RS485,RS422在三菱的PLC ...

  4. 深入理解UART、IIC、SPI与RS232以及RS485的区别

    个人理解: uart.IIC.SPI都是一种具有协议特征的收发器.接口.总线,它规定数据按照什么的时序传输,rs232,.rs485是传输时候的电平标准,规定了按照上述协议传输的高电平与低电平的电压都 ...

  5. UART、RS-232、RS-422、RS-485的区别

    v3学院带你一次性认清UART.RS-232.RS-422.RS-485的区别 https://www.cnblogs.com/laokai/p/6488910.html 通讯问题,和交通问题一样,也 ...

  6. TTL、 RS-232,RS-485的区别

    TTL. RS-232,RS-485的区别 参考:[gt+]TTL, RS-232,RS-485的区别 前言:串口.UART口.COM口.USB口是指的物理接口形式(硬件).而TTL.RS-232.R ...

  7. 三菱fx-5u轴定位,Modbus RTU RS-485与测微计通信案例

    三菱fx-5u轴定位,Modbus RTU RS-485与测微计通信案例 ,包含编程软件,plc和维伦触摸屏程序,plc地址规划表,手册,轴定位和Modbus通信视频教程,设备运行视频等. plc程序 ...

  8. Modbus和RS485是什么关系

    RS485是一个物理接口,简单的说是硬件. MODBUS是一种国际标准的通讯协议,用于不同厂商之间的设备交换数据(一般是工业用途):所谓协议,也可以理解为上面有人说的"语言"吧,简 ...

  9. 485通信少发一个字节_一文搞懂Modbus与RS485通信协议

    在工业控制.电力通讯.智能仪表等领域,通常情况下是采用串口通信的方式进行数据交换.最初采用的方式是RS232接口,由于工业现场比较复杂,各种电气设备会在环境中产生比较多的电磁干扰,会导致信号传输错误. ...

  10. rs232接口_RS232接口与RS485的区别

    微信号:通信电源人  ID:TelecomPowerSystem 通信电源维护 你我一起同行... RS232与RS485一直是弱电常见的接口,很多朋友提到他们之间的区别,那么今天我们一起来了解下它们 ...

最新文章

  1. PAT1127 如何根据后序遍历中序遍历建树?
  2. php 连接hadoop hdfs,Hadoop HDFS操作
  3. 3、使用Oracle Logminer同步Demo
  4. 记一次内核模块查看 - 初步通过文件厂商判断有无可疑内核模块
  5. 【Java23】maven加强,分布式RPC框架Dubbo
  6. java local_java.time.LocalDateTime with()方法
  7. HTML颜色代码表/颜色名(网摘)
  8. [bzoj 4774]修路
  9. Linux系统编程(4)——文件与IO之ioctl函数
  10. linux i2c驱动协议
  11. 熊海cms v1.0 SQL注入漏洞复现
  12. 2022-2028年中国自行车行业市场全景评估及投资前景规划报告
  13. 获取两个指定数之间的随机数(万能公式)
  14. 如何用计算机求一个正数的算术平方根,《用计算器求一个正数的算术平方根》教学设计...
  15. 机器人操作系统ROS(9)Gazebo物理仿真(摄像头仿真)
  16. 推荐21款最佳 HTML 5 网页游戏
  17. win7摄像头软件_GIF图片编辑、剪切、缩帧软件,ScreenToGif
  18. ffmpeg 编码器AVCodecContext 的配置参数
  19. 震动硅谷!43 岁知名技术大佬当街遇刺身亡,马斯克怒批暴力犯罪
  20. onedrive的多电脑同步妙用

热门文章

  1. Vivado 2019使用教程
  2. Android字体设置,Roboto字体使用
  3. python提取停用词_python文本处理 数据挖掘 停用词检索
  4. 微信小程序模板文件的引入
  5. 读书笔记之《Redis开发与运维》—— 一
  6. window 上 shell 连接工具
  7. 软件测试简历职业规划怎么写,职业规划测试
  8. psftp上传文件到服务器,使用PsFtp将文件上传到FTP Powershell
  9. 【转载】太完美_Windows XP SP3 极度精简克隆版 【2014】
  10. xmind 拖拽_XMind 2020