> 覆盖物理层到应用层所有主流通信协议,每个协议统一结构:概述→帧格式→关键机制→开发要点→工具。
UART 是异步串行通信基础接口。RS-232/RS-485/RS-422 是基于 UART 的电气标准。
| 标准 | 拓扑 | 最大距离 | 最大速率 | 信号电平 | 收发 |
|---|---|---|---|---|---|
| ------ | ------ | ---------- | ---------- | ---------- | ------ |
| TTL UART | 点对点 | ~1m | ~5Mbps | 0/3.3V或0/5V | 1:1全双工 |
| RS-232 | 点对点 | 15m | 20kbps(标准) | ±5~±15V | 1:1全双工 |
| RS-422 | 1发10收 | 1200m | 10Mbps(12m内) | 差分±2~±6V | 全双工 |
| RS-485 | 多点 | 1200m | 10Mbps(12m内) | 差分±1.5~±5V | 半双工32节点 |
空闲(高) → 起始位(低,1bit) → 数据位(5/6/7/8bit, LSB first) → 校验位(可选:无/奇/偶) → 停止位(1/1.5/2bit, 高)
通信参数写作: 115200,8,N,1 (波特率,数据位,校验,停止位)
minicom/picocom/screen — Linux串口终端pyserial — Python串口库(跨平台)SPI (Serial Peripheral Interface) 是同步全双工串行总线。I2S (Inter-IC Sound) 是 SPI 的音频扩展。
CS# (低有效) → SCLK → MOSI(主出从入) / MISO(主入从出), MSB first
4种时钟模式: CPOL/CPHA = 00(空闲低,上升沿采样), 01(空闲低,下降沿), 10(空闲高,下降沿), 11(空闲高,上升沿)
SCLK(位时钟) → WS(字选择,左右声道) → SD(串行数据)
采样率: 44.1/48/96/192kHz, 数据: 16/24/32bit
变体: TDM(多声道时分复用)
spidev — Linux SPI (/dev/spidev0.0), 逻辑分析仪半双工同步串行总线,2线(SCL+SDA),多主多从。
起始(SCL高SDA↓) → 7位地址+R/W# → ACK → 数据(8bit×N) → ACK → 停止(SCL高SDA↑)
10位地址: 11110 + 高2位 + R/W# → ACK → 低8位 → ACK
i2cdetect/i2cget/i2cset, Arduino Wire, 逻辑分析仪多主差分串行总线,汽车/工业标准。CAN-FD 支持可变数据长度和更高数据段波特率。
CAN 2.0 标准帧:
| SOF | 11位ID | RTR | IDE | r0 | DLC(4) | 数据(0-8B) | CRC(15) | ACK | EOF |
CAN-FD: EDL(=1)标识FD, BRS切换数据段速率, DLC支持0-64B, CRC增强(17/21位)
CAN-FD DLC: 0-8直接, 9→12B, 10→16B, 11→20B, 12→24B, 13→32B, 14→48B, 15→64B
candump/cansend/cangen (SocketCAN), BUSMASTER, Vector CANoeMaxim(ADI)单总线协议,一根数据线通信+供电(寄生模式)。
复位(480μs低) → 存在脉冲(60~240μs低) → ROM命令(0x33读/0x55匹配/0xF0搜索) → 功能命令 → 数据
时间槽: 写0(60~120μs低), 写1(<15μs低), 读(<15μs低后15μs内采样)
owfs — Linux 1-Wire文件系统, DS9490R USB适配器通用串行总线,热插拔即插即用,树形拓扑。
| 类型 | 可靠性 | 用途 |
|---|---|---|
| ------ | -------- | ------ |
| Control | 保证 | 枚举/配置 |
| Bulk | 保证 | 大数据(存储) |
| Interrupt | 保证 | 键鼠 |
| Isochronous | 不保证 | 音视频 |
设备(VID/PID) → 配置 → 接口(Class/SubClass) → 端点(Address,Type,MaxPacketSize)
插入→复位(地址0)→获取设备描述符(前8B)→分配地址→完整描述符→配置描述符→选择配置→就绪
lsusb -v, usbmon, Wiresharklsusb -v, libusb, Wireshark+usbmonIEEE 802.3,从10Mbps演进到400Gbps+。
| 前导(7B) | SFD(1B) | 目的MAC(6B) | 源MAC(6B) | EtherType(2B) | Payload(46-1500B) | FCS(4B) |
最小64B, 标准1518B, Jumbo 9018B
VLAN(802.1Q): TPID(0x8100)+PCP+VID
EtherType: 0x0800(IPv4), 0x86DD(IPv6), 0x0806(ARP)
tcpdump/Wireshark, ethtool, iperf3, nmapHDLC: ISO基础链路层; PPP: LCP+NCP扩展; LAPB: X.25数据链路层。
HDLC: | 标志(0x7E) | 地址 | 控制(I/S/U帧) | 信息 | FCS | 标志(0x7E) | (0比特填充)
PPP: | 标志(0x7E) | 0xFF | 0x03 | 协议(2B) | 信息 | FCS | 标志(0x7E) |
协议: 0x0021(IP), 0x8021(IPCP), 0xC021(LCP), 0xC023(PAP), 0xC223(CHAP)
pppd, chat, minicomLoRa: Semtech CSS物理层调制。LoRaWAN: 基于LoRa的MAC层(LoRa联盟)。
| 参数 | 说明 | 可选值 |
|---|---|---|
| ------ | ------ | -------- |
| SF | 扩频因子 | 5~12(标准7~12) |
| BW | 信号带宽 | 125/250/500kHz |
| CR | 纠错编码率 | 4/5, 4/6, 4/7, 4/8 |
链路预算: SF12+BW125 ≈ 157dB (15km+); SF7@125k≈5.5kbps, SF12@125k≈250bps
| Class | 下行模式 | 场景 |
|---|---|---|
| ------- | --------- | ------ |
| A | 发送后两接收窗口 | 传感器(最低功耗) |
| B | Ping Slot接收 | 下行调度 |
| C | 持续接收 | 市电供电 |
消息格式: PHYPayload = MHDR(1B) | MACPayload | MIC(4B)
MACPayload = FHDR(DevAddr 4B + FCtrl + FCnt 2B + FOpts) | FPort | FRMPayload
Join (OTAA): 设备发Join Request(AppEUI+DevEUI+DevNonce) → NS回Join Accept(AppNonce+NetID+DevAddr, AES加密) → 派生NwkSKey/AppSKey
ABP: 预配置DevAddr+NwkSKey+AppSKey
ADR: 根据SNR/RSSI自动调整SF/BW/TxPower
ChirpStack(开源NS), TTN(公共网络), RadioHead(Arduino)3GPP R13蜂窝物联网,180kHz带宽,覆盖增强20dB,PSM/eDRX低功耗。
| 模式 | 说明 |
|---|---|
| ------ | ------ |
| In-band | LTE载波内替换一个PRB |
| Guard-band | LTE保护带 |
| Stand-alone | 独立频谱(GSM refarming) |
AT+CEREG, AT+CGATT, AT+NPSMRQNavigator, 运营商IoT平台, minicom3GPP R8 UE Cat.1, 下行10Mbps/上行5Mbps, 中速物联网,LTE广覆盖优势。
用户面: 应用 → PDCP → RLC → MAC → PHY
控制面: RRC → NAS(EMM/ESM) → EPC(MME/S-GW/P-GW/HSS)
PLMN选择 → 小区选择 → SIB → RRC建立(PRACH→Request→Setup→Complete)
→ NAS Attach Request → EPC认证(MME↔HSS AKA) → 承载建立 → Attach Accept
AT+CFUN=1; AT+CGREG?; AT+CGDCONT=1,"IP","cmnet"; AT+CGATT=1; AT+CGACT=1,1
AT+CIPSTART="TCP","server",port; AT+MQTTCONN/PUB/SUB(移远扩展)
minicom, usb_modeswitch, wvdial/pppd, qmi-utils5G New Radio: eMBB/URLLC/mMTC。
srsRAN(开源RAN), UERANSIM(5G模拟)Bluetooth Low Energy, 低功耗蓝牙。BLE 5.0: 2M PHY+长距离+广播扩展。BLE 5.2: LE Isochronous。
Central(主机) / Peripheral(从机) / Broadcaster(广播者) / Observer(观察者)
广播: 通道37/38/39 → AdvData(31B Legacy / 255B Extended) → 扫描请求/响应(可选) → 连接
Profile → Service(UUID 16/128bit) → Characteristic(值+CCCD 0x2902) → Descriptor
CCCD: 使能Notification(无确认)或Indication(有确认)
nRF Connect(手机), nRF sniffer, bleno/noble(Node.js)基于IEEE 802.15.4的Mesh网络。ZigBee PRO 2017/3.0统一配置文件。
| 拓扑 | 说明 |
|---|---|
| ------ | ------ |
| 星形 | 1协调器+N终端 |
| 树形 | 协调器→路由器→终端 |
| Mesh | 多路由冗余路径 |
设备角色: 协调器(1个网络1个), 路由器, 终端(低功耗)
端点(1~240) → 簇(Cluster, 16bit) → 属性(Attribute)
操作: Read/Write/Report/Configure Reporting
Zigbee2MQTT, XCTU(Digi)| 特性 | Wi-Fi 6 | Wi-Fi 7 |
|---|---|---|
| ------ | --------- | --------- |
| 峰值速率 | 9.6Gbps | 46Gbps |
| 频段 | 2.4/5/6GHz | 2.4/5/6GHz |
| 最大带宽 | 160MHz | 320MHz |
| 调制 | 1024-QAM | 4096-QAM |
| OFDMA | RU: 26~2×996 | MRU更灵活 |
| MU-MIMO | 8×8 | 16×16 |
| BSS Coloring | 6bit | 增强 |
iwconfig/iw, Wireshark, iperf3共 1 个版本