通信协议分类
通信协议通常分为并行通信和串行通信。
并行通信:在同一时刻发送多位数据(可以是多根线)。 优点:发送速度快;缺点:传输距离短,资源占用多。
串行通信:用一根线在不同的时刻发送8位数据。 优点:传输距离远,占用资源少;缺点:发送速度慢。
通信方式分类
通信的方式可以分为:全双工、半双工、单工。
单工通信:只能接受或者发送。例如:收音机、遥控器等,一般只有一根线;
半双工通信:在同一时刻只能发送或者接收。例如:对讲机,至少有两根线;
全双工通信:在同一时刻既能接收又能发送。例如:电话,至少有两根线。
常见通信协议对比
| 技术 | 大致类别 | 常见特点 | 典型场景 |
|---|---|---|---|
| UART | 串行通信接口 | 简单,常用于点对点 | 调试串口、模块通信 |
| SPI | 芯片间接口 | 同步通信,通常较快,需片选 | Flash、显示屏、转换器 |
| I²C | 芯片间总线 | 两根信号线,可挂多个设备 | 传感器、EEPROM |
| USB | 主机与外设接口 | 通用性强,常支持供电 | 电脑外设、开发板 |
| CAN | 控制器网络 | 多节点、具备仲裁和错误处理 | 汽车、工业控制 |
| RS‑485 | 电气接口标准 | 差分传输,适合工业布线 | 仪表、控制器链路 |
| Modbus | 应用层协议 | 定义请求和应答,可运行在不同链路上 | PLC、仪表、工业设备 |
| Ethernet | 有线网络技术 | 适合网络化和较大数据量通信 | 工厂网络、局域网 |
| Bluetooth | 无线通信技术 | 近距离连接,包含低功耗类型 | 耳机、手机配件、传感器 |
| Wi‑Fi | 无线局域网技术 | 适合较高数据量的联网设备 | 手机、电脑、摄像头 |
| Zigbee | 低功耗无线网络 | 多节点组网,适合小数据量 | 智能家居、传感器网络 |
| LoRa | 远距离无线技术 | 低速、低功耗,覆盖距离较远 | 远程监测、抄表 |
1. UART
约定好速度,按位依次发送
UART常用于微控制器和电脑、调试器或通信模块之间的串行通信。
发送端把数据拆成一位一位的电信号,沿TX线发出;接收端从RX线接收。
UART是异步通信,没有单独的时钟线,因此收发双方需要预先约定波特率、数据位、校验位和停止位。接收端通过起始位判断一帧数据何时开始,再按约定的节奏读取后续数据。
例如,双方约定波特率为9600,就要以相同的速度收发。若速度或帧格式设置不一致,接收端就可能读错数据。
UART通常是点对点的基础传输方式,本身不规定“这串数据代表什么命令”。具体的数据含义要由上层程序约定。
2. SPI
由时钟带着数据同步传输
SPI常用于微控制器连接Flash、显示屏、传感器等芯片。典型线路有:
- SCLK:时钟,由主设备提供
- MOSI:主设备发给从设备的数据
- MISO:从设备返回给主设备的数据
- CS:片选信号,用来指定当前通信的设备

主设备拉低某个设备的CS,再输出时钟。双方根据时钟边沿同步读取数据,因此SPI属于同步通信。主设备可以一边发送数据,一边接收返回数据。

SPI没有统一规定所有设备都必须使用哪种具体数据格式;设备手册通常会说明时钟极性、采样边沿、命令格式等参数。SPI速度通常较高,但连接多个设备时往往需要额外片选线,因此更适合短距离板级通信。
3. I²C
共享两根线,按地址访问设备
I²C使用两根线:SCL时钟线和SDA数据线。多个设备可以共享这两根线,每个设备有自己的地址。

通信通常由主设备发起:主设备先发送开始信号和目标地址;被寻址的设备确认后,双方再交换数据。每传送一组数据,都可以通过应答位表示“收到”或“继续发送”;结束时由主设备发出停止信号。
I²C的数据线和时钟线采用共享总线结构,设备通常需要上拉电阻。它节省引脚,适合连接多个低速外设;但设备增多、线路变长或总线电容变大时,通信速度和可靠性会受到影响。
简单区分:SPI靠片选线选设备,I²C靠地址选设备。TI也指出,SPI通常没有像I²C那样统一的通信格式,具体实现会随器件而变化。TI:SPI、I²C 与 UART 的比较
4. CAN
多个节点共享总线,按优先级协调发送
CAN常见于汽车和工业控制。多个控制器节点连接到同一条差分总线上,每条消息带有标识符,用来表示消息内容或优先级。

当总线空闲时,节点可以尝试发送。如果多个节点同时开始发送,它们会逐位监测总线并参与仲裁。优先级较高的消息可以继续发送,其他节点停止并等待稍后重试;仲裁过程中胜出的消息不会因此被破坏。CAN还包含错误检测、确认和故障处理机制。
可以把CAN理解为“多台设备共用一个广播频道”:每个节点都能听到总线上的消息,再根据标识符判断是否需要处理。
5. RS‑485
用一对差分信号线传送串行数据
RS‑485规定驱动器和接收器之间如何用差分电压表示信号。收发器在两根线之间产生电压差,接收端根据电压差判断逻辑状态。外部噪声如果同时影响两根线,差分接收可以抵消其中一部分共同干扰,因此它常用于工业现场布线。

多个设备可以连接到同一总线上,但通常要通过通信规则协调谁在什么时刻发送,避免多个驱动器同时占用线路。RS‑485不定义消息内容、设备地址或命令,因此常与Modbus等协议配合使用。RS‑485是物理层电气标准,不是完整的应用协议。TI:RS‑485基础
6. Modbus
规定工业数据“怎么问、怎么答”
Modbus是一种工业应用层协议,常用来读写PLC、仪表、变频器等设备的数据。它规定了命令类型、设备地址、数据位置和消息格式。

以读取数据为例,客户端发送请求,说明目标设备地址、要执行的功能以及要读取的数据位置;服务端解析请求后,返回对应数据或错误信息。常见的数据类型包括线圈、离散输入、输入寄存器和保持寄存器。
Modbus本身不规定电信号怎么在线路上传输,可以运行在不同链路上,例如串行通信或TCP/IP网络。常见搭配是Modbus RTU over RS‑485:Modbus负责消息内容和操作,RS‑485负责在线缆上传送电信号。Modbus Organization:Modbus简介 Modbus官方规范
7. Bluetooth
先发现设备,再广播或建立连接

蓝牙设备可以先通过广播和扫描发现彼此。以低功耗蓝牙(Bluetooth LE)为例,设备可以广播自身信息,附近设备扫描到后,决定是否与它建立连接。
如果建立连接,双方会按协商好的连接参数和时间安排交换数据;如果只是广播,发送设备也可以把少量信息直接发给附近正在扫描的设备。蓝牙因此既可以用于设备发现和广播,也可以用于双向连接通信。Bluetooth SIG:Bluetooth LE Primer
蓝牙并不是一种单一固定的通信模式。经典蓝牙和低功耗蓝牙适用场景不同;同属低功耗蓝牙,是否连接、怎样交换数据,也取决于具体应用。
8. Wi‑Fi
加入无线局域网,再通过网络传数据

Wi‑Fi设备通常先搜索附近的无线接入点,再根据网络名称和安全配置发起连接。连接建立后,设备就可以通过无线局域网与路由器或其他网络设备交换数据。
在本地无线链路上,Wi‑Fi会传送帧;设备接入网络后,常会继续使用IP、TCP或UDP等协议与局域网或互联网中的其他设备通信。因此,“连上Wi‑Fi”表示接入了无线局域网,并不等于某个具体的应用已经开始传输数据。
Wi‑Fi适合较高数据量的网络通信;具体速度和覆盖范围会受到设备、频段、距离、障碍物和无线干扰影响。
9. Zigbee
低功耗节点组成网络,通过节点转发数据
Zigbee是一套面向物联网设备的无线通信体系,常用于智能家居和传感器网络。设备可以组成星型、树型或网状网络。网状网络中,某些节点可以充当路由器,帮其他节点转发消息,从而把数据传得更远。
典型过程是:传感器产生一条状态消息,消息先发给直接可达的节点;如果目标设备不在直接通信范围内,网络中的路由节点可以继续转发,直到消息到达目标或协调设备。
Zigbee适合传输控制指令和状态等小数据,不适合大量音视频数据。具体设备能否互通,还要看使用的协议版本、应用规范和产品实现。Zigbee的标准覆盖从网状网络到设备间应用通信的多个部分。Connectivity Standards Alliance:Zigbee
10. USB
主机识别设备,再按类型交换数据
在常见USB连接中,主机(例如电脑)负责管理通信。设备插入后,主机会先对它进行识别和配置,这个过程称为枚举。设备会报告自身支持的功能,主机据此选择相应的驱动或设备类别。
识别完成后,主机通过不同的数据端点与设备通信。比如,键盘、存储设备和摄像头虽然都使用USB连接,但数据传输方式和应用规则可能不同。USB协议和设备类别规范共同决定如何识别、配置和传输数据。USB-IF:设备类别代码
可以把它想成“主机先登记新接入的设备,再按照设备功能与它通信”。USB连接器的外形相同,也不代表它们支持相同的数据能力或速度。
11. Ethernet
数据装进帧,通过网卡和交换机转发
Ethernet(以太网)是常用的有线网络技术。发送端把数据封装成以太网帧,帧中包含源和目标MAC地址;网络交换机根据这些地址转发帧,让数据到达局域网中的目标设备。以太网帧包含起始信息和源、目标地址等字段。
在典型网络中,以太网负责局域网链路上的帧传输;IP等协议可以在其上继续承担跨网络寻址,TCP或UDP则提供更高层的数据传输服务。因此,以太网、IP和TCP并不是同一个东西,而是可以组合工作的不同层。
12. LoRa
用无线电传输少量数据,优先考虑覆盖和能耗
LoRa是一种无线物理层技术,常用于远距离、低功耗、低数据量的设备通信。发送端把数据调制成无线信号,附近网关接收到后再转发到后端网络。
LoRa本身主要解决无线信号怎样发出和接收的问题;LoRaWAN则定义设备如何入网、数据如何管理,以及设备、网关和网络服务器怎样协作。典型LoRaWAN网络中,网关把终端发来的无线数据转交给网络服务器,终端的一条上行消息也可能被一个或多个网关接收。LoRa Alliance:LoRaWAN架构
这种方案适合远程抄表和环境监测等少量数据场景,不适合传输连续视频或大文件。LoRa的实际覆盖距离会受天线、地形、建筑和无线环境影响。
把它们连起来理解
一次实际通信可能会同时用到多项技术。例如,工业控制器读取一台仪表的数据时,可以是:
Modbus定义读取命令 → UART控制器把数据按串行方式发送 → RS‑485收发器把电信号送上双绞线 → 仪表收到并返回应答。
各部分负责不同的事:有的定义信号,有的定义传输顺序,有的定义数据含义。理解这一点,就能看懂为什么RS‑485和Modbus经常一起出现,也能更准确地比较这12种通信技术。
