通信可以分为两个方面:

硬件层:RS485解决的是数据传输问题,也就是说如何将一个“0”或“1”传输到另外一端。(保证了数据可以转移到另一端)

软件层:modbus是在硬件基础上的传输协议,解决的是数据传输的含义或意义。

MCU要想实现RS485通信,必须借助电平转换芯片。 因为MCU是TTL电平信号,RS485是差分信号,如何将单端信号转换成差分信号就需要电平转换芯片。

TTL电平在传输信号特性逻辑“0”对应的电气信号为0V,逻辑“1”对应的电气信号为5V。

RS485通常有两根差分信号线,A和B,RS485的电平特性规定逻辑“0”指的是信号B的电压>A的电压,逻辑“1”指的是信号A的电压>信号B的电压。

TTL电平转换为RS485差分信号之后,抗干扰能力得到一定的增强,传输距离得到了很大的提高。

要想实现两个MCU能进行RS485通信,二者必须都有一个电平转换芯片。

MCU二者连接一般使用的是双绞线,在信号传输过程中,在一根线上出现的干扰一般也会在另一根线上出现,二者基本可以抵消,所以抗干扰能力大大增强。

结合所描述的内容,也就是说RS485通信实际上是硬件层的一个通信标准,它解决了TTL中的0和1如何通过485芯片转成差分信号之后,然后再传输到另一端的过程。

(两线制)差分信号线不可能同时传输数据,是一种半双工的通信,如果是四线制RS485,也可以是全双工通信,同时通信方式也和选择的接口芯片有关系。

下图是485其中的一种芯片电路:

RE和DE是控制传输方向的, RO信号的输出,DI信号的输入。和UART的唯一区别就是需要控制方向。

通信协议主要是为了不同厂商能够遵循相同的通信约定进行相互连接,工业上有一个标准叫做modbus通信协议,接下来可以了解一下:

基于RS485的modbus通信协议的一个硬件环境:一般遵循的是主从通信,一般来讲系统中会有一个主机,如果我们借助RS485通信,在用二线制的半双工的通信时,它支持一主多从的通信方式,也就是说,主机上有两根信号线,在信号线上可以挂多个从机。

硬件层借助RS485,软件层借助Modbus协议。

注意:

(1)在整个总线系统通信过程只有一台设备是主机,主从通信方式。

(2)系统中的从机不可以主动的向主机发送数据。

(3)系统上电之后,主机和从机所有的设备都应该处于监听总线的状态,也就是接收状态。

(4)如果想要发送数据实现通信,都必须由主机主动发起通信(任何一次的通信或数据交换)。

RS485并没有总线仲裁机制,只支持主从通信,在这个过程中,并没有优先级的设定。RS485支持问答机制:主机询问(轮询),从机应答。

主机要发送数据的时候需要注意:主机首先转换为发送模式,发送完之后立即转为接收模式,等待接收从机的应答。(模式切换借助芯片中的RE和DE引脚)

主机的寻址帧一般有两种传输方式,RTU(16进制方式)、ASCII。

modbus通信报文或数据包格式:地址码+功能码+数据区+校验码(CRC)

通信地址:1-127(不同的设备有不同的地址)指定地址0的指令是广播指令,所有收到指令的设备都会运行,不过不回应指令。

通过Modbus poll和Modbus slave实现主从机的通信,设备ID为1,选用03功能码(读单个寄存器)实现下面的功能。软件链接:

链接:https://pan.baidu.com/s/1tvIJXZsEYJFsvk8yX6W5RA?pwd=d4w7 
提取码:d4w7

从图中可以分析理解03功能码(从从机读单个或多个数据):

那么主机发送从机接收是如何识别这一包数据的呢?

我们靠的是时间间隔,规定了一包数据和一包数据最大的时间间隔为3.5个字符时间,假如是9600波特率,一个字符是10bit,3.5字符是35bit,计算出最大时间间隔W为:(3.5*10)/9600=3.6ms;一个包不同字符之间最大间隔时间不能超过1.5个字符时间。

寄存器地址只是为了统一变量的数据,具体变量可以自定义。

06功能码:写单个寄存器(向从机写数据)地址码(8bit)+功能码(8bit)+寄存器地址(16bit)+数据(19bit)+CRC(16bit)

16功能码 :写多个寄存器地址(向从机写多个数据)

如果对这篇博客有任何问题,可以评论区留言哈

基于RS485通信的Modbus通信协议相关推荐

  1. STM32:RS485通信和Modbus通信协议汇总

    RS485通信和Modbus通信协议汇总 1. 主从模式 RS-485上的软件层协议ModBus主要依赖于主从模式.主从模式是指在半双工通讯方式上,2个或者2个以上的设备组成的通讯系统中: (1) 至 ...

  2. 干货分享:RS485通信和Modbus通信协议汇总

    https://zhuanlan.zhihu.com/p/24134130 在工业控制.电力通讯.智能仪表等领域,通常情况下是采用串口通信的方式进行数据交换.最初采用的方式是RS232接口,由于工业现 ...

  3. RS-485总线和Modbus通信协议的关系

    一.RS-485总线 RS-485总线技术只是规定了接口的电气标准,并没有规定RS-485接口的电缆,插件以及通信协议,只是OSI规范中物理层的一个标准,RS-485总线采用差分平衡传输方式.由于RS ...

  4. RS485通信和Modbus协议

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

  5. 【物联网毕设基础】单片机:RS485 通信与 Modbus 协议

    文章目录 RS485 通信与 Modbus 协议 单片机 RS485 通信接口.控制线.原理图及程序实例 RS485 通信与 Modbus 协议 在工业控制.电力通讯.智能仪表等领域,通常情况下是采用 ...

  6. RS-485通信和ModBus详解

    RS-485通信和ModBus详解   博主在做一些项目的时候,用到一些模块,经常会是485的接口,而且485也是工业上常用的通信方式,在工业应用中建立连向PC机的分布式设备网络.其他数据收集控制器. ...

  7. RS485 通信与 Modbus 协议

    文章目录 RS485 通信与 Modbus 协议 单片机 RS485 通信接口.控制线.原理图及程序实例 RS485 通信与 Modbus 协议 在工业控制.电力通讯.智能仪表等领域,通常情况下是采用 ...

  8. RS485与Modbus通信协议教程!

    原文:RS485与Modbus通信协议教程!_接口_信号_传输 1979年施耐德电气制定了一个用于工业现场的总线协议Modbus协议,现在工业中使用RS485通信场合很多都采用Modbus协议,所以今 ...

  9. 什么是modbus通信协议?

    Modbus是一种用于工业通信的通信协议,最初由Modicon在1979年推出,现在已经成为工业自动化领域中最流行的协议之一.Modbus通常用于控制和监视自动化设备,如PLC.传感器.计量器等.本篇 ...

  10. STM32应用开发实践教程:基于 RS-485 总线的多机通信应用开发

    5.1.1 任务分析 本任务要求设计一个基于 RS-485 总线的多机通信系统,系统中有两台设备(理论上最多可 接入 32 台设备).其中一台设备作为主机,连接 OLED 显示屏:另一台设备作为从机, ...

最新文章

  1. SpringBoot中使用rabbitmq
  2. 在vue-cli生成的项目中使用karma+chrome进行单元测试
  3. nacos作注册中心+feign接口调用进行服务提供和服务消费代码示例
  4. USACO Section1.5 Superprime Rib 解题报告
  5. 如何使用facenet详解_如何使用冰箱更节能 使用冰箱节能技巧介绍【详解】
  6. logstash windows
  7. 分割法和填补法_“聚合”法与“分割”法
  8. struts拦截器+注解实现网络安全要求中的日志审计功能
  9. 使用CSS控制页面的4中方法
  10. Cache 和 Buffer 有什么区别
  11. 优衣库真的是一家技术驱动型公司?
  12. ROS 接口调参 加载参数 动态参数 从NodeHandle中加载参数
  13. 1919 Problem A 二叉排序树
  14. 微信小程序解码emoji表情
  15. 镭速介绍关于高速数据传输!
  16. springboot毕设项目牙无忧6ayy4(java+VUE+Mybatis+Maven+Mysql)
  17. 蚂蚁特工吱指南|用来吃的AR游戏机,奥利奥终于对自己下手了
  18. Warning: preg_match(): Compilation failed: PCRE does not support
  19. 初学者的图片SEO指南 - 为搜索引擎优化图片
  20. STM32F407-外部中断

热门文章

  1. chrome 内核的浏览器pdf 字体显示问题
  2. 关于ms17010渗透
  3. MATLAB全局变量
  4. 生成BDS卫星1和卫星2的B1C信号的数据分量主码、 导频分量主码和子码
  5. python 批量创建文件夹
  6. 大道至简:企业需要的中台是什么?答案是:指挥官体系
  7. 又一家流血上市!AI四小龙之首商汤科技冲刺IPO,三年半巨亏242亿
  8. Linux 驱动开发:USB无线wifi驱动开发(MT7601)、完成WIFI管理工具安装
  9. 在vue中使用html表格
  10. iphone手机投影到电脑屏幕上