RS485及Modbus RTU在嵌入式系统的应用
最近在学习IOT全栈课程,工作中正巧用了常用的工作总线RS485,下面说一下,阶段的调试经验。
首先,先简要介绍一下,RS485总线,EIA-485(过去叫做RS-485或者RS485)是隶属于OSI模型物理层的电气特性规定为2线、半双工、平衡传输线多点通信的标准。是由电信行业协会(TIA)及电子工业联盟(EIA)联合发布的标准。实现此标准的数字通信网可以在有电子噪声的环境下进行长距离有效率的通信。在线性多点总线的配置下,可以在一个网络上有多个接收器。因此适用在工业环境中。EIA一开始将RS(Recommended Standard)做为标准的前缀,不过后来为了便于识别标准的来源,已将RS改为EIA/TIA。电子工业联盟(EIA)已结束运作,此标准目前是电信行业协会(TIA)维护,名称为TIA-485,但工程师及应用指南仍继续用RS-485来称呼此一协议。
RS485只是电气信号接口,本身是通信协议,有许多通信协议使用RS485准位的电气信号,但RS485规格书本身没有提到通信速度、格式以及资料传输的通信协议。若二台不同厂商的设备都使用RS485,即使是类似性质的设备,若只有电气信号接口相同,不保证互操作性。RS485上最常使用的协议都是属于异步串列通信,不过也有其他的通信,例如简易传感器接口协议(SSI)
常用到的电气特性如下图:
因为RS485常用作网络通讯,而且必须是主从的形式,器网络形式多如下图:
因为RS485只定义了物理层协议,我们在使用时,还需要搭建应用层,通讯层协议,这里使用到的modbsu RTU协议,下面简要介绍一些该协议:
Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气 Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工业领域通信协议事实上的业界标准,并且现在是工业电子设备之间常用的连接方式。 Modbus比其他通信协议使用的更广泛的主要原因有:公开发表并且无著作权要求、易于部署和维护、对供应商来说,修改移动本地的比特或字节没有很多限制,Modbus允许多个 (大约240个)
Modbus协议是一个master/slave架构的协议。有一个节点是master节点,其他使用Modbus协议参与通信的节点是slave节点。每一个slave设备都有一个唯一的地址。在串行和MB+网络中,只有被指定为主节点的节点可以启动一个命令(在以太网上,任何一个设备都能发送一个Modbus命令,但是通常也只有一个主节点设备引导指令)。
其通讯地址图如下图所示:
通讯地址的链表如下:
嵌入式IOT系统在使用modbus及RS485 从端来看是对UART外设的操作,从应用来看,可以是对freemodbus或是modbus lib标准的操作。
- 点赞
- 收藏
- 关注作者
评论(0)