【IoT死磕系列】Day 1:IOT物联网各个协议的整体了解

目录

[一、 到底什么是"协议(Protocol)"?](#一、 到底什么是“协议(Protocol)”?)

[二、 为什么不能一个协议打天下啊?](#二、 为什么不能一个协议打天下啊?)

[三、 计算机网络的"四层千层饼"(必看)](#三、 计算机网络的“四层千层饼”(必看))

[四、物联网 / AIoT 协议全景大地图](#四、物联网 / AIoT 协议全景大地图)

[1. 底层通信技术(干苦力的"泥瓦匠")](#1. 底层通信技术(干苦力的“泥瓦匠”))

[2. 传输层协议(物流骨干网)](#2. 传输层协议(物流骨干网))

[3. 应用层协议(神仙打架的业务层,绝对重点!)](#3. 应用层协议(神仙打架的业务层,绝对重点!))

[五、 今日总结与明日预告](#五、 今日总结与明日预告)


大家好,做嵌入式和物联网的兄弟们一定有个共同的感触:搞硬件外设、写底层驱动、上实时操作系统,这些虽然难,但都是可见可控的。可一旦涉及"联网通信",面对各种五花八门的协议(TCP、UDP、HTTP、MQTT、CoAP......),直接满脸问号。


很多教程一上来就给你贴代码、讲MQTT怎么连,但从来不告诉你为什么要用它。不懂底层逻辑,换个项目照样抓狂。


所以,从今天开始,我开个新坑------【IoT协议死磕系列】。我会带着大家从零开始,逐级递增,把物联网(IoT)和人工智能物联网(AIoT)里的网络协议扒个底朝天。

第一天,咱们先建立全局观,搞懂协议的基础逻辑!

一、 到底什么是"协议(Protocol)"?

别去背教科书上"规则的集合"这种废话。协议的本质,就是"暗号"和"格式"。

假设你要给远方的朋友寄一封信,你不能随便拿张卫生纸写上字就扔进邮筒。你必须按照邮局的协议来:

  1. 物理介质: 必须用信封。

  2. 格式要求: 左上角写邮编,中间写地址,右下角贴邮票。

  3. 语言互通: 你得用快递员和收信人都能看懂的文字(比如中文)。

在嵌入式开发中,你的传感器就像写信的人,云平台就像收信人。它们之间要传输0和1的数据,就必须提前约定好:谁先发?谁后发?每次发几个字节?第1个字节代表什么(比如代表温度)?第2个字节代表什么(比如代表湿度)?

这种提前约定好的"数据打包和解包规则",就是协议。


二、 为什么不能一个协议打天下啊?

很多初学者会问:既然大家都要传数据,全世界统一规定一种协议不就行了吗?为什么搞得这么复杂?

因为应用场景的鸿沟太大了。我们来看看极端对比:

  • 场景A(车联网/自动驾驶): 汽车需要传输高清摄像头画面、雷达数据给边缘计算节点。特点:电源充足、算力强大、需要极高带宽。

  • 场景B(农业物联网/智能水表): 深埋在地下的水表,靠一节纽扣电池工作5年,每天只发几十字的用水量。特点:极度缺电、单片机资源极小(可能就几KB内存)、网络极差。

如果让智能水表去跑车联网的协议,单片机连协议的"头部数据"都装不下,电池几分钟就耗干了。所以,没有最好的协议,只有最适合当前硬件资源和网络环境的协议。


三、 计算机网络的"四层千层饼"(必看)

在讲具体的HTTP或TCP之前,必须先了解网络数据是怎么发出去的。

现代网络通信是分层 的。最常用的是 TCP/IP 四层模型。为了方便理解,你把它当成寄快递的公司架构

  1. 应用层(老板/业务员): 老板只关心核心业务:"把这批货物(传感器数据)按我们的商业规则发给客户"。

    常见的应用层协议:HTTP、MQTT、CoAP、FTP。

  2. 传输层(快递公司调度中心): 不管老板卖的是什么,调度中心只负责决定运输方式。是发顺丰(绝对不丢件),还是发便宜的快递(丢了不赔)?

    这里的两大主角就是:TCP、UDP。

  3. 网络层(快递路径规划局): 负责分配地址和规划路线。包裹到了中转站,该往哪个城市发?这就是IP协议干的事(IP地址就是你在网络上的门牌号)。

  4. 网络接口层(底层卡车/飞机/物理线路): 这才是真正在物理层面运东西的。比如你用的Wi-Fi、以太网网线、4G/5G基站、蓝牙、Zigbee等底层介质。

划重点: 当你的设备要发送数据时,数据是从上往下,一层一层**"穿衣服(加包头)"**的。老板的货装进顺丰的箱子(加TCP头),再贴上地址单(加IP头),最后装上卡车(通过Wi-Fi发出去)。接收端则是一层层"脱衣服"。


四、物联网 / AIoT 协议全景大地图

你在单片机上调 I2C、SPI、配置 DMA,那叫板级通信 ;但当你跑通了RTOS,甚至想给设备加个OTA空中升级功能,要把数据扔到云端时,这就是网络通信的天下。

物联网的协议简直多如牛毛,为了不懵圈,这里严格按照网络层级,从最底层的物理传输,一直扒到最上层的业务应用。

1. 底层通信技术(干苦力的"泥瓦匠")

这是物理层和链路层干的事,决定了你的设备到底是通过"插线"还是"射频天线"把0和1发出去。

  • 【有线阵营】稳定压倒一切

    • 以太网 (Ethernet): 最常见的网线直连。STM32挂个以太网芯片(比如LAN8720),跑个LwIP协议栈,稳如老狗。

    • RS-485 / RS-232: 工业界的老古董,但至今依然在各种工控机和传感器里发光发热,抗干扰能力极强。

    • CAN 总线: 车企和机器人的最爱。多节点通信的神器,哪怕环境极其恶劣,报文也能准确送达。

    • 工业以太网 (EtherCAT, PROFINET): 搞高端工业机器人和PLC必须懂,毫秒级甚至微秒级的硬实时通信。

  • 【无线阵营 - 局域网】短距离乱战

    • Wi-Fi: 功耗大,但带宽足。适合插电的设备,比如智能音箱、大屏监控。

    • Bluetooth (BLE): 低功耗蓝牙,可穿戴设备和智能家居配网的绝对主力。

    • Zigbee / Thread: 智能家居专用的自组网协议,几十个灯泡开关互相传递信号,断了一个节点,其他节点会自动补位。

    • Matter: 最近全网爆火的"大一统"标准。苹果、谷歌、亚马逊牵头,旨在让所有智能家居跨品牌互通。

  • 【无线阵营 - 广域网】长距离大动脉(LPWAN)

    • NB-IoT: 运营商基站支持的窄带物联网。极其省电,极其便宜,适合地下水表、燃气表(几年换一次电池)。

    • LoRa: 也是低功耗远距离,但它是私有网络。在没有基站的荒郊野岭、大农场,自己架个LoRa网关就能搞定覆盖。

    • 4G / 5G / Cat.1: 视频监控、自动驾驶等需要大流量的场景必选,当然功耗也是最大的。

2. 传输层协议(物流骨干网)

这一层主要解决数据在互联网中怎么跑的问题。就两位大佬,我们今天只提名字和脾气,以后专门深挖:

  • TCP: 严谨的"保价顺丰"。发数据前必须经过经典的"三次握手"建立连接。极其可靠,绝不丢包,但开销大,占用RAM多。

  • UDP: 粗暴的"低价快递"。不建立连接,不管对方死活,直接把数据往目的IP扔。速度快,极度轻量,但可能会丢包。

尤其注意:一切应用层协议(HTTP、MQTT等)的脚下,都踩着 TCP(可靠但重)UDP(不可靠但轻快) 这两块基石。

3. 应用层协议(神仙打架的业务层,绝对重点!)

这是我们嵌入式和软件工程师日常打交道最多的地方。这层协议决定了数据长什么样。

  • 【老牌万金油】HTTP / HTTPS

    • 定位: 网页浏览的基石,请求/响应模式。

    • 在IoT中的地位: 实在太臃肿了,报文头部很大。但在物联网里依然有一席之地,特别是做 OTA(空中升级) 时,设备去服务器下载庞大的 .bin 固件包,用HTTP下载依然是最稳的。

  • 【物联网绝对霸主】MQTT

    • 定位: 基于TCP,发布/订阅模式。

    • 在IoT中的地位: 统治级。极其轻量,天生为弱网环境和低功耗设备设计。几乎所有的云平台(阿里云IoT、腾讯云、AWS)默认首推MQTT。

  • 【极度抠门的小弟】CoAP

    • 定位: 基于UDP的物联网协议。

    • 在IoT中的地位: 可以理解为"瘦身版的HTTP"。如果你的单片机资源实在太小,连TCP协议栈都跑不起来(比如一些NB-IoT设备),那就用UDP + CoAP。

  • 【高端玩家专属】DDS (Data Distribution Service)

    • 定位: 基于发布/订阅的数据分发服务,极具实时性。

    • 在IoT中的地位: 机器人(ROS2底层默认协议)和自动驾驶(车机内部通信)的御用协议。 它的特点是可以精确控制数据的传输时间、可靠性甚至历史记录,是高级别AIoT的核心。

  • 【工业自动化一哥】OPC UA

    • 定位: 跨平台工业通讯架构。

    • 在IoT中的地位: 工厂里的各种PLC(西门子、三菱)互相不服气,协议不通。OPC UA就像一个"同声传译",统一了工业控制领域的数据格式。

  • 【电信运营商的宠儿】LwM2M

    • 定位: 轻量级设备管理协议。

    • 在IoT中的地位: 基于CoAP之上,不但能传数据,还定义了怎么远程重启设备、怎么看电量。中国移动等运营商的平台非常喜欢用这个。


五、 今日总结与明日预告

今天,我们站在上帝视角,从物理层到应用层,把全网常见的物联网/机器人通信协议"点了一遍名",并梳理了网络协议的底层逻辑:

  1. 协议就是提前约定好的数据打包/解包"暗号"。

  2. 因为硬件资源和网络环境的巨大差异,诞生了各式各样的协议。

  3. 网络是分层的(应用层 -> 传输层 -> 网络层 -> 物理层)。

  4. 物联网 / AIoT 各个常见协议 科普

总结一个选型黄金法则:

如果你做工业控制和机器人,多关注 CAN、DDS、EtherCAT

如果你做普通的智能硬件上云,闭眼选 Wi-Fi/4G + TCP + MQTT

如果你做极低功耗的电池设备,研究 LoRa/NB-IoT + UDP + CoAP

有了全景地图,明天我们要开始挖细节了!

既然大家天天都在用网络,明天我们就直击网络通信的核心基石------被无数面试官问吐了,也是一切可靠通信的源头:TCP/IP协议,和它极其经典的"三次握手与四次挥手"!

弄懂了TCP的底层逻辑,你以后调MQTT、做OTA下载,遇到断线重连的问题,也就能看透其大概的本质。

关注我,每天一个IoT硬核知识,我们明天见!


个人想说的话:

网络通信这一块确实枯燥,但我会尽量用大白话给大家嚼碎了喂到嘴里。大家目前在做项目时,最头疼的网络问题是什么?

看完这份地图,大家现在手头的项目,用的都是哪一套"物理层+应用层"的组合方案?在对接云平台或者板子互相通信的时候,遇到过什么诡异的丢包或者断线问题吗?欢迎在评论区留言,我们交流避坑!

相关推荐
西城微科方案开发39 分钟前
智能充气泵PCBA充气解决方案
单片机
v先v关v住v获v取1 小时前
轴吸盘机械手关节型机器人设计含+8张CAD图+SW模型+运动仿真+说明书
科技·单片机·51单片机
学嵌入式的小杨同学1 小时前
STM32 进阶封神之路(十一):串口通信底层原理全解析 ——UART/USART 区别 + 电平标准 + 协议规范(面试重点)
stm32·单片机·嵌入式硬件·mcu·硬件架构·硬件工程·智能硬件
为搬砖记录1 小时前
杰理AC695N soundbox 3.1.2打开ble宏的编译bug
c语言·开发语言·单片机·bug
wuyikeer1 小时前
SocketTool、串口调试助手、MQTT中间件基础
单片机·嵌入式硬件·中间件
阿祖_in_coding1 小时前
面试之嵌入式基础知识:uart、i2c、spi
嵌入式硬件
济6171 小时前
STM32 I2C 总线通信实战|从原理到 OLED 屏数据收发(超详细)---STM32 HAL库专栏
stm32·嵌入式·stm32hal库编程
蓝蜂物联网1 小时前
PLC 传感器怎么快速对接手机 APP,实现无线监控?
物联网·自动化·电子电工
Hello_Embed1 小时前
LVGL 入门(四):大小坐标与盒子模型
前端·笔记·stm32·单片机·嵌入式
風清掦2 小时前
【江科大STM32学习笔记-08】DMA直接存储器存取
笔记·stm32·单片机·嵌入式硬件·学习