网络常见协议:

在嵌入式系统中,严格遵循 OSI 七层模型的应用非常少,实际开发中更多采用简化的分层模型(如 TCP/IP 五层模型,或更精简的 “物理层 - 数据链路层 - 应用层” 三层模型)。

1. OSI七层模型(嵌入式使用较少,由于资源约束和通讯场景的专一性)
OSI(Open System Interconnect)七层模型是一种将计算机网络通信协议划分为七个不同层次的标准化框架。每一层都负责不同的功能,从物理连接到应用程序的处理。这种模型有助于不同的系统之间进行通信时,更好地理解和管理网络通信的过程。
OSI定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层),即ISO开放互连系统参考模型。

应用层(Application Layer):这是网络体系结构中的最顶层,提供用户接口和应用程序之间的通信服务。在这一层,用户可以访问各种网络应用程序,如电子邮件、文件传输和远程登录。
表示层(Presentation Layer):该层负责数据的格式化、加密和压缩,以确保数据在不同系统之间的交换是有效的和安全的。它还提供了数据格式转换和语法转换的功能。\
会话层(Session Layer):会话层管理应用程序之间的通信会话,负责建立、维护和终止会话。它还提供了数据的同步和检查点恢复功能,以确保通信的完整性和持续性。
传输层(Transport Layer):传输层为应用程序提供端到端的数据传输服务,负责数据的分段、传输控制、错误恢复和流量控制。它主要使用 TCP(传输控制协议)和 UDP(用户数据报协议)来实现这些功能。
网络层(Network Layer):网络层负责数据包的路由和转发,以及网络中的寻址和拥塞控制。它选择最佳的路径来传输数据包,以确保它们能够从源主机到目标主机进行传输。
数据链路层(Data Link Layer):数据链路层提供点对点的数据传输服务,负责将原始比特流转换为数据帧,并检测和纠正传输中出现的错误。它还控制访问物理媒介的方式,以及数据帧的传输和接收。
物理层(Physical Layer):物理层在物理媒介上传输原始比特流,定义了连接主机的硬件设备和传输媒介的规范。它确保比特流能够在网络中准确地传输,例如通过以太网、光纤和无线电波等媒介。

2.通讯场景的专一性

(1)交互对象固定,拓扑简单:板内通信、总线通信、无线通信

(2)数据格式与长度固定,无冗余:传感数据固定、控制指令下发、协议极简

(3)通讯目的单一,无复杂会话:数据采集类、控制类、低功耗类

(4)协议选型固定,无需兼容多协议

TCP/IP 五层模型

         TCP/IP 五层模型互联网接入类嵌入式设备的核心参考架构,但会根据资源约束做深度精简,只保留与场景强相关的层级功能。

一、 嵌入式 TCP/IP 五层模型的核心特点

嵌入式设备(如 ESP32、STM32 + 以太网模块)使用 TCP/IP 五层模型的核心原则:

  1. 按需裁剪:小型 MCU 只实现关键层级,非必要功能(如复杂路由、多协议兼容)全部舍弃。
  2. 轻量协议栈:优先使用开源精简协议栈(如 FreeRTOS-Plus-TCP、lwIP),而非 PC 端的完整协议栈。
  3. 硬件加速:利用 MCU 外设(如以太网 MAC 控制器、DMA)降低 CPU 占用。
  4. 高可靠低功耗:针对嵌入式场景优化(如 TCP 心跳包机制、休眠唤醒)。

二、 TCP/IP 五层模型在嵌入式中的分层实现

三、 各层级的嵌入式关键实现细节

1. 物理层 + 数据链路层:底层硬件驱动是核心

这两层是嵌入式 TCP/IP 通信的基础,硬件驱动的稳定性直接决定通信可靠性

  • 以太网场景

    • 硬件:STM32 + LAN8720 PHY 芯片,通过 RMII 接口连接(仅需 7 根线,比 MII 更省引脚)。
    • 驱动:实现 PHY 芯片初始化(配置速率、双工模式)、MAC 帧收发、中断处理(避免轮询占用 CPU)。
    • 核心 API:low_level_init()(底层初始化)、low_level_output()(发送帧)、low_level_input()(接收帧)。
  • WiFi 场景

    • 硬件:ESP32 内置 WiFi 模块,或 STM32 + ESP8266 透传模块。
    • 驱动:若用透传模块,通过 AT 指令配置 WiFi 连接(极简);若用原生协议栈,需实现 WiFi 射频驱动、关联 AP、获取 IP。

2. 网络层:仅实现 IP 终端功能,不做路由

嵌入式设备作为网络终端,不需要路由器的 IP 转发功能,协议栈只保留核心能力:

  • IP 地址获取
    • 静态 IP:适合工业场景(固定设备地址,方便管理)。
    • DHCP 客户端:适合智能家居场景(自动从路由器获取 IP,无需手动配置)。
    • 协议栈优化:lwIP 等精简协议栈的 DHCP 客户端仅占用几十 KB RAM,适合小型 MCU。
  • 数据包处理
    • 只接收目标 IP 为自身的数据包,丢弃其他数据包。
    • 限制最大数据包长度(如 1500 字节,以太网 MTU 值),避免分片(分片会增加重组开销)。

3. 传输层:TCP/UDP 二选一,按需选择

嵌入式场景中,TCP 和 UDP 的选择完全由业务需求决定,没有绝对优劣。

4. 应用层:优先轻量物联网协议

嵌入式设备算力有限,复杂应用层协议会显著增加开发和运行成本,优先选择以下方案:

  1. 首选 MQTT 协议(物联网领域事实标准)

    • 轻量:报文头最小仅 2 字节,占用带宽少。
    • 发布 / 订阅模式:适合多设备组网(如传感器上报数据到云端,多个客户端订阅)。
    • 嵌入式实现:使用 paho-mqtt 精简版库,核心 API 仅 mqtt_connect()mqtt_publish()mqtt_subscribe()
  2. 次选 CoAP 协议(受限网络专用)

    • 基于 UDP,比 HTTP 更轻量,适合电池供电设备(如智能水表)。
    • 支持 RESTful 接口,与 HTTP 类似,但报文开销更小。
  3. 自定义极简协议(工业控制场景)

    • 若无需接入互联网,可基于 TCP/UDP 封装自定义指令,例如:

      plaintext

      帧格式:设备地址(1字节) + 功能码(1字节) + 数据(n字节) + CRC校验(2字节)
      功能码定义:0x01=读取温度,0x02=设置电机转速
      
    • 优势:解析速度快,占用资源少,安全性高(非标准协议,不易被攻击)。

五、 典型嵌入式 TCP/IP 应用案例:ESP32 通过 MQTT 上报传感器数据

  1. 物理层 + 数据链路层:ESP32 内置 WiFi,连接路由器 AP。
  2. 网络层:通过 DHCP 获取 IP 地址(如 192.168.1.100)。
  3. 传输层:使用 TCP 连接 MQTT 服务器(默认端口 1883)。
  4. 应用层
    • 传感器采集温湿度数据,封装为 JSON 格式:{"temp":25.5,"humi":60}
    • 通过 MQTT 发布到主题 sensor/room1
    • 云端服务器订阅该主题,接收并存储数据。

物理层 - 数据链路层 - 应用层” 三层模型

        “物理层 - 数据链路层 - 应用层” 三层模型,是嵌入式领域最主流、最实用的协议分层方案(尤其适用于板内 / 短距离总线 / 低功耗无线通信场景),完全适配嵌入式 “通信场景专一性” 和 “资源受限” 的核心特点,也是脱离互联网接入类场景(无需 TCP/IP)时的首选架构。      

一、嵌入式三层模型的核心设计逻辑

相比 OSI 七层 / TCP/IP 五层,三层模型的核心是合并冗余层级、聚焦核心功能

  • 砍掉 “网络层 / 传输层”:嵌入式短距离通信(如 I²C/CAN/ 蓝牙 BLE)无需跨网络路由、端到端可靠性保障,这两层完全无用;
  • 合并 “会话层 / 表示层” 到应用层:数据加密、格式解析、交互规则等都直接在应用层实现,无需单独分层;
  • 保留 “物理层 + 数据链路层”:这是所有通信的基础,负责信号传输和帧级别的错误检测;
  • 强化 “应用层”:承载嵌入式设备的核心业务逻辑(如指令交互、数据解析)。

简单来说:三层模型 = 硬件传输(物理层) + 帧级可靠(数据链路层) + 业务逻辑(应用层)

二、三层模型各层级的嵌入式核心定义

        

嵌入式常见使用协议

嵌入式系统的协议选择高度依赖通信场景(如板内通信、短距离无线、长距离有线 / 无线),核心原则是 轻量级、低功耗、高可靠。以下按通信范围和物理层分类,梳理嵌入式开发中最常用的协议,包含原理、特点和典型应用。

一、 板内 / 芯片间通信协议(短距离、高速)

这类协议用于同一电路板上的芯片互联(如 MCU 与传感器、显示屏、存储芯片),通常是同步 / 异步串行通信。

1. I²C(Inter-Integrated Circuit)

  • 核心特点
    • 双线制(SDA 数据线 + SCL 时钟线),半双工通信。
    • 支持一主多从架构,从设备通过 7 位 / 10 位地址区分。
    • 速率分三档:标准模式(100kbps)、快速模式(400kbps)、高速模式(3.4Mbps)。
    • 硬件开销小,仅需两根线,无需额外片选线。
  • 底层原理:主设备控制时钟线,发起起始信号 → 发送从设备地址 + 读写位 → 从设备应答 → 数据传输 → 主设备发送停止信号。
  • 典型应用:传感器(温湿度、加速度计)、EEPROM、OLED 显示屏、实时时钟(RTC)。
  • 嵌入式优势:协议简单,MCU 硬件自带 I²C 外设,驱动开发成本低。

2. SPI(Serial Peripheral Interface)

  • 核心特点
    • 四线制(MOSI 主发从收 + MISO 主收从发 + SCLK 时钟 + CS 片选),全双工通信。
    • 支持一主多从(通过片选线区分从设备),也可多主架构。
    • 速率远高于 I²C,可达几十 Mbps(取决于 MCU 时钟)。
    • 无应答机制,通信效率高,适合高速数据传输。
  • 底层原理:主设备产生时钟信号,拉低对应从设备的 CS 线 → 主从设备同步移位,同时收发数据 → 传输完成后拉高 CS 线。
  • 典型应用:Flash 存储芯片、LCD 显示屏、WiFi 模块(如 ESP8266)、ADC/DAC 芯片。
  • 嵌入式优势:高速、全双工,适合大数据量传输,硬件实现简单。

3. UART(Universal Asynchronous Receiver/Transmitter)

  • 核心特点
    • 双线制(TX 发送 + RX 接收),异步通信(无需时钟线,通过波特率同步)。
    • 全双工通信,支持点对点连接(不支持多设备)。
    • 常用波特率:9600、19200、38400、115200 bps。
    • 数据帧格式:起始位 + 数据位(7/8) + 校验位(可选) + 停止位(1/2)。
  • 底层原理:发送端按波特率将并行数据转为串行帧,接收端按相同波特率解析成并行数据。
  • 典型应用:串口调试打印、GPS 模块、蓝牙模块、Modbus 串口通信。
  • 嵌入式优势:几乎所有 MCU 都自带 UART 外设,协议极简,调试成本低。

4. CAN(Controller Area Network)

  • 核心特点
    • 差分双线制(CAN_H、CAN_L),支持多主多从,总线仲裁机制。
    • 速率:最高 1Mbps(传输距离 <40m),距离越远速率越低(10km 时 5kbps)。
    • 错误检测与自动重传,抗干扰能力极强(适合工业环境)。
    • 数据帧长度固定(最大 8 字节),轻量级。
  • 底层原理:采用 CSMA/CA + 非破坏性总线仲裁,优先级高的报文(ID 小)优先占用总线,避免冲突。
  • 典型应用:汽车电子(发动机控制、车身控制)、工业控制(PLC 通信)、机器人。
  • 嵌入式优势:高可靠、抗干扰,适合恶劣环境,是工业和车载领域的事实标准。

         

二、 短距离无线通信协议(10m 内)

用于设备间无线互联(如 MCU 与手机、传感器节点组网),注重低功耗和易用性。

1. 蓝牙(Bluetooth)

  • 主流版本
    • 经典蓝牙:速率 1-3Mbps,适合语音和中等数据传输(如蓝牙耳机、键盘)。
    • 蓝牙 BLE(低功耗蓝牙):蓝牙 4.0 及以上,功耗极低(待机电流 μA 级),速率 1Mbps,是嵌入式的主流选择。
  • 核心特点
    • 工作频段 2.4GHz ISM 频段,支持点对点、广播模式。
    • BLE 支持 GATT 协议栈,定义了数据传输的属性(服务、特征),开发标准化。
  • 典型应用:智能手环、智能家居传感器、蓝牙串口透传模块。
  • 嵌入式优势:模块成本低(如 HC-05/06),AT 指令即可配置,无需深入协议栈。

2. Zigbee(IEEE 802.15.4)

  • 核心特点
    • 工作频段 2.4GHz(全球通用),速率 250kbps,传输距离 10-100m。
    • 支持 星型、网状、树型 组网,最大节点数可达 65535 个。
    • 极低功耗(休眠电流 <1μA),适合电池供电的传感器节点。
    • 抗干扰能力强,采用扩频通信技术。
  • 典型应用:物联网传感器网络(如智慧农业、楼宇安防)、工业无线测控。
  • 嵌入式优势:组网能力强,适合大规模分布式节点,是低功耗物联网的核心协议之一。

3. WiFi(IEEE 802.11)

  • 核心特点
    • 工作频段 2.4GHz/5GHz,速率可达几十到几百 Mbps。
    • 支持 TCP/IP 协议栈,可直接接入互联网,无需网关。
    • 功耗高于蓝牙 BLE 和 Zigbee,适合市电供电设备。
  • 典型应用:智能家居网关、摄像头、智能音箱、WiFi 模块(如 ESP8266/ESP32)。
  • 嵌入式优势:与互联网无缝对接,协议栈成熟(如 FreeRTOS-Plus-TCP),适合需要远程访问的设备。

        


三、 长距离通信协议(1km 以上)

用于设备与远程服务器或网关的通信,通常是有线或蜂窝网络。

1. Modbus
  • 核心特点
    • 工业领域的标准串行通信协议,支持 RTU(二进制)和 ASCII(文本)两种传输模式。
    • 基于 UART/CAN/Ethernet,主从架构,支持多从机。
    • 数据帧简单,包含地址、功能码、数据、校验位,可靠性高。
    • 功能码定义了明确的操作(如读寄存器、写寄存器),开发标准化。
  • 典型应用:工业仪表、PLC、变频器、远程数据采集。
  • 嵌入式优势:协议公开免费,几乎所有工业设备都支持,驱动开发简单。
2. LoRa(Long Range)
  • 核心特点
    • 基于扩频通信技术,工作在 Sub-GHz 免授权频段(如 433MHz、868MHz)。
    • 超远距离传输(可达 3-10km 视距),低功耗(电池寿命数年)。
    • 速率低(几十到几百 bps),适合小数据量、低频次传输。
    • 支持 LoRaWAN 协议栈,实现大规模物联网组网。
  • 典型应用:智慧农业(土壤墒情监测)、智能水表 / 电表、城市路灯监控。
  • 嵌入式优势:免流量费,低功耗,适合偏远地区的物联网设备。
3. 蜂窝物联网协议(NB-IoT / Cat-M1)
  • 核心特点
    • 基于蜂窝网络(4G/5G),工作在授权频段,覆盖广(可穿透地下室、偏远地区)。
    • NB-IoT:窄带物联网,速率 100kbps 左右,功耗极低,支持深度休眠。
    • Cat-M1:速率 1Mbps 左右,支持移动性(如车载设备)。
    • 支持 TCP/UDP 协议,可直接接入互联网,通过运营商基站通信。
  • 典型应用:共享单车、智能停车、远程抄表、资产跟踪。
  • 嵌入式优势:无需自建网关,覆盖广,适合需要远程联网的设备,模块成本逐渐降低。

四、 嵌入式协议选型对比表

五、 嵌入式协议开发的核心要点

  1. 优先用硬件外设:MCU 自带的 I²C/SPI/UART/CAN 外设,比软件模拟更稳定、更省 CPU 资源。
  2. 低功耗优化:对于电池供电设备,选择 BLE/Zigbee/LoRa/NB-IoT 等协议,并合理设计休眠策略。
  3. 抗干扰设计:工业环境优先选 CAN/Modbus,无线通信选扩频技术(LoRa、WiFi)。
  4. 协议栈选型:复杂协议(如 TCP/IP、BLE)优先用成熟的开源协议栈(如 FreeRTOS-Plus-TCP、Nordic BLE 协议栈),避免重复造轮子
Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐