通信协议¶
基础知识¶
并行与串行:并行是指数据可以同时传送,而串行是指数据必须一个接着一个地传送。
单工与双工:单工是指数据只能在一个方向上传输,不能双向传输。双工是指数据可以在两个方向上传输。
半双工与全双工:半双工是指数据可以在两个方向上传输,但是不能同时进行。全双工是指数据可以在两个方向上同时传输。
波特率:用于描述UART通信时的通信速度,单位为bit per second,即每秒传送的位数。
RS232协议¶
RS232协议是一种用于串行通信的标准,规定采用了一个标准的连接器,规定了统一的引脚和电平标准。
IBM对RS232协议进行了简化,现在工业控制的RS232接口一般只使用RXD、TXD、GND三条线。
该标准规定逻辑"1"的电平为-3V到-15V,逻辑"0"的电平为+3V到+15V,其传送距离最大可达15M。
电平转换¶
虽然很多处理器都会集成UART控制器,但是处理器产生的信号一般都是TTL信号而不是符合RS232标准的信号,所以一般我们还需要在处理器的外部去添加电路对信号电平进行转换。
缺点¶
1.接口的信号电平值较高,容易烧坏芯片,需要电平转换才能与TTL电路连接
-
通信速度较低
-
抗噪声干扰性弱
-
传输距离较短
RS485¶
RS485协议能在远距离条件下以及电子噪声大的环境下有效传输信号,该标准允许连接多个收发器,这样可以利用单一的RS485接口建立起一个设备网络。
RS485采用差分信号传输,两线间的电压差为+2V到+6V表示逻辑"1",-2V到-6V表示逻辑"0",这样即使一条线上出现噪声也不会影响信号的传输。
使用差分信号极大地减少了噪声信号的干扰,延长了通信距离,最大可达1500m。
RS485接口信号的电平比RRS232降低了,所以也不易损坏接口电路的芯片,且该电平与TTL电平兼容。
RS485采用两线制,这种接线方式为总线式拓扑结构,在同一总线上可以同时存在多个节点。因为采用两线制,数据的发送和接收都要使用者这对差分信号线,发送和接收不能同时进行,所以采用半双工的方式工作。
优点¶
- 接口电平值较低,不易烧坏芯片
- 通信速度快
- 抗噪声干扰性强
- 传输距离较远
- 可实现多节点组网
MQTT¶
MQTT是基于TCP/IP的一种轻量级的发布/订阅式消息传输协议,适用于硬件性能低下或网络带宽有限的场景,主要应用在物联网小型设备上信息的传输。
目前,MQTT已经更新到5.0版本,因此这里也只介绍最新的版本。需要注意的是,设备身份注册成功后,针对同一设备身份信息,只可选择一种通信协议接入物联网平台,不可多种类型通信协议同时混用。即一个设备选择使用MQTT 5.0通信协议后,不可再使用MQTT 3.1、3.1.1通信协议。
MQTT协议需要客户端和服务端,通讯过程中有三个角色:
- 代理(Broker)
- 发布者(Publisher)
- 订阅者(Subscriber)
代理是服务器端,发布者和订阅者都是客户端。
发布者和订阅者都需要通过代理进行消息的传输,发布者在某主题下发布一个消息,所有订阅该主题的订阅者都会收到消息通知。