【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硬核知识,我们明天见!


个人想说的话:

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

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

相关推荐
国科安芯2 小时前
空间站机械臂中MCU与CANFD抗辐照芯片的集成研究
单片机·嵌入式硬件·fpga开发·架构·risc-v
王景程2 小时前
构建带有科学型数据云的IoT应用
物联网
7yewh2 小时前
The most detailed analysis of the MCU startup process
单片机·嵌入式硬件
fly的fly2 小时前
浅析 QT远程部署及debug方案
qt·物联网·arm
隔壁大炮12 小时前
【串口】通信协议
单片机·嵌入式硬件·pid·江协科技
qqssss121dfd13 小时前
STM32H750XBH6的ETH模块的流控功能分析
stm32·单片机·嵌入式硬件
推敲模拟13 小时前
Chapter 2 Linear Regulators
嵌入式硬件
追梦人电立电子14 小时前
硅芯片的神秘世界:7805电压调节器探秘
单片机·嵌入式硬件·追梦人电力电子·7805
ChenYY~15 小时前
手把手教你使用vscode开发stm32!
vscode·stm32·嵌入式·软件开发·学习经验