快捷搜索:  汽车  科技

plcmodbus地址表:用示波器看透PLC中ModBus通讯的UART物理传输表达方式

plcmodbus地址表:用示波器看透PLC中ModBus通讯的UART物理传输表达方式只有看透了UART物理表达,PLC中ModBus通讯才不会"缺一门"。异步收发,没有时钟线,那就得有约定,这个约定就是"UART硬件通讯协议",本文的主角。Receiver/Transmitter早于ModBus的硬件通讯器,用于并行数据转为串行进行传输,实现增距减线的目的。同步收发,有时钟线,就像节拍器,打一拍,收发一个数位(0或1),短距离传输还好,长距离传输时钟线就会惹麻烦,这就有了异步收发。

ModBus通信协议

一种串行应用层软件通信协议,由Modicon公司(如今的施耐德电气)在1979年为PLC通信而制定。现已成为工业通讯业界标准,并且也设备间常用的通信协议。

UART / 串口

通用异步收发传输器

Universal

Asynchronous

Receiver/Transmitter

早于ModBus的硬件通讯器,用于并行数据转为串行进行传输,实现增距减线的目的。

同步收发,有时钟线,就像节拍器,打一拍,收发一个数位(0或1),短距离传输还好,长距离传输时钟线就会惹麻烦,这就有了异步收发。

异步收发,没有时钟线,那就得有约定,这个约定就是"UART硬件通讯协议",本文的主角

只有看透了UART物理表达,PLC中ModBus通讯才不会"缺一门"。

下面我将通过示波器,让您看透"UART硬件通讯协议"——物理传输表达方式

plcmodbus地址表:用示波器看透PLC中ModBus通讯的UART物理传输表达方式(1)

ModBus通讯在串行链路上的约定

ModBus协议是一个层级很少的的协议,从应用层直接跨接到数据链路层。

plcmodbus地址表:用示波器看透PLC中ModBus通讯的UART物理传输表达方式(2)

UART是在最底层(第1层)负责用逻辑电平,来把信号,从一端传递到另外一端,并能正确接收。

一个ModBus数据帧是这样约定的,如下图:

plcmodbus地址表:用示波器看透PLC中ModBus通讯的UART物理传输表达方式(3)

UART负责传输的是添加了地址和CRC校验域的串行链路PDU。

每个串行链路PDU,都是由多个字节(8数位组成的最小记录单位)组成,用UART硬件协议格式实施物理传输,如下图:

plcmodbus地址表:用示波器看透PLC中ModBus通讯的UART物理传输表达方式(4)

由于TTL、RS422、RS485、RS232都能表达物理传输的逻辑,为了便于我们识别,我们使用基带信号TTL电平的表达方式来实验。

搭建测试电路 和 程序

1个usb转422通讯接口

plcmodbus地址表:用示波器看透PLC中ModBus通讯的UART物理传输表达方式(5)

1个422转TTL双向接口

plcmodbus地址表:用示波器看透PLC中ModBus通讯的UART物理传输表达方式(6)

1个stc单片机,并编一个echo程序,让收到的信息原样发送出来,同时生成一个波特率脉冲与数据对齐。

plcmodbus地址表:用示波器看透PLC中ModBus通讯的UART物理传输表达方式(7)

RS422实际上是双工的RS485,使用这种接口来下载程序和测试串口,可以使用机载电源,也就是不让usb给系统供电,这是产品化过程中的优化考虑。

下面我们把422通讯线连接起来

plcmodbus地址表:用示波器看透PLC中ModBus通讯的UART物理传输表达方式(8)

接入usb准备下载程序和串口调试

plcmodbus地址表:用示波器看透PLC中ModBus通讯的UART物理传输表达方式(9)

用充电宝,独立给系统供电,与usb供电无关。

plcmodbus地址表:用示波器看透PLC中ModBus通讯的UART物理传输表达方式(10)

接入示波器,通道1观察TXD发送端的TTL波形,通道2,观察程序产生的波特率脉冲,这样有助于我们理解每一个数位是在什么时刻传输的。

plcmodbus地址表:用示波器看透PLC中ModBus通讯的UART物理传输表达方式(11)

示波器解读UART的每一个数位的传送

1、空闲状态

plcmodbus地址表:用示波器看透PLC中ModBus通讯的UART物理传输表达方式(12)

2、发送55H

plcmodbus地址表:用示波器看透PLC中ModBus通讯的UART物理传输表达方式(13)

3、发送56H

plcmodbus地址表:用示波器看透PLC中ModBus通讯的UART物理传输表达方式(14)

4、发送57H

plcmodbus地址表:用示波器看透PLC中ModBus通讯的UART物理传输表达方式(15)

5、发送58H

plcmodbus地址表:用示波器看透PLC中ModBus通讯的UART物理传输表达方式(16)

6、用起始位解读数据位接收的采样过程

plcmodbus地址表:用示波器看透PLC中ModBus通讯的UART物理传输表达方式(17)

所有的UART硬件传输协议,都在上面这些图片里。

8位数据打包成带有校验功能的11位帧进行发送和接收。

ModBus协议规定:

波特率19200bps

偶校验

1位起始位、8位数据位

1位校验位、1位停止位

这样的11位传输格式是必须的,也可以有其他波特率和无校验位(校验位由1填充)的格式也是兼容的。

猜您喜欢: