RS485以及MODBUS学习

学习目的:

1、什么是485?

2、485如何通信?

3、如何使用熟能生巧?

        RS485是一种四总线通信,分别是VCC、GND、485_A、485_B。两根负责通信,两根负责进行供电。

 RS485通信

    硬件层:解决的是数据传输问题,也就是如何将“0”和“1”传输到另外一端设备。

    软件层:ModBus协议则是解决数据传输的含义和意义

那么单片机则是如何进行485通信的?

        单片机需要进行485通信,则需要进行电平转换以及485驱动芯片,一般现在市面上有两种驱动芯片(隔离芯片、非隔离芯片),在进行设计电平转换方案也是有几种:

        1、隔离电源+非隔离芯片+(高速)光耦隔离                成本低

        2、隔离电源+隔离芯片                                                   通信接口安全

通常485驱动芯片 VB > VA为“0”,反之VA > VB为“1”.其通信流程如下

        因为在通信是采用的差分通信,则在两线制的485通信中,则只能进行单向传输,也就是半双工传输,不能进行同步双向传输。在半双工传输芯片中,一般会有RE和DE也就是控制485通信驱动芯片的传输方向,这部分则是485通信硬件层的解决。

 ModBus协议:        主从通信                在半双工通信中可以一主多从(驱动芯片决定从机数量)

  ModBus 通信:

        通信机制:      主机轮询,从机应答的机制

        1、系统中只有一个主机:主从通信

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

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

        4、如果想要发起一次通信,那么必须有主机主动发起通信(任何一次通信或数据交换必须有主机来发起)

        主机想要发送则:        先将驱动芯片改为发送模式,在进行发送数据包。

        立马转换为接收模式

地址码(通信地址):1-247

        指定地址0的指令是广播指令,所有收到的设备都会运行但不会回复。

常用功能码: 01/05/15      03/06/16

例如:

更具体点分析如下:

06则是主机发送什么从机就应答什么。

而485通信断帧的时间大约10ms或者3ms,也就是超过时则认为这个数据包结束了。

那么通信协议的定制,可以使用别人定制好的,拿来改进行自己使用,如下:

在开发过程中需要制定RS485的通信协议:RS485 MODBUS-RTU等格式

开发辅助工具:ModBus Poil (主机) 、ModBus Slave(从机)

目前来看485协议不是很难,只要注意协议就行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啵啵520520

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值