覆盖物理层到应用层所有主流通信协议,每个协议统一结构:概述→帧格式→关键机制→开发要点→工具。
UART 是异步串行通信基础接口。RS-232/RS-485/RS-422 是基于 UART 的电气标准。
标准拓扑最大距离最大速率信号电平收发TTL UART点对点1m5Mbps0/3.3V或0/5V1:1全双工RS-232点对点15m20kbps(标准)±5~±15V1:1全双工RS-4221发10收1200m10Mbps(12m内)差分±2~±6V全双工RS-485多点1200m10Mbps(12m内)差分±1.5~±5V半双工32节点
text
空闲(高) → 起始位(低,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 的音频扩展。
text
CS# (低有效) → SCLK → MOSI(主出从入) / MISO(主入从出), MSB first
4种时钟模式: CPOL/CPHA = 00(空闲低,上升沿采样), 01(空闲低,下降沿), 10(空闲高,下降沿), 11(空闲高,上升沿)
text
SCLK(位时钟) → WS(字选择,左右声道) → SD(串行数据)
采样率: 44.1/48/96/192kHz, 数据: 16/24/32bit
变体: TDM(多声道时分复用)
spidev — Linux SPI ( /dev/spidev0.0), 逻辑分析仪半双工同步串行总线,2线(SCL+SDA),多主多从。
text
起始(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 标准帧:
text
| 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)单总线协议,一根数据线通信+供电(寄生模式)。
text
复位(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不保证音视频
text
设备(VID/PID) → 配置 → 接口(Class/SubClass) → 端点(Address,Type,MaxPacketSize)
text
插入→复位(地址0)→获取设备描述符(前8B)→分配地址→完整描述符→配置描述符→选择配置→就绪
lsusb -v, usbmon, Wiresharklsusb -v, libusb, Wireshark+usbmonIEEE 802.3,从10Mbps演进到400Gbps+。
text
| 前导(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扩频因子512(标准712)BW信号带宽125/250/500kHzCR纠错编码率4/5, 4/6, 4/7, 4/8
链路预算: SF12+BW125 ≈ 157dB (15km+); SF7@125k≈5.5kbps, SF12@125k≈250bps
Class下行模式场景A发送后两接收窗口传感器(最低功耗)BPing 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-bandLTE载波内替换一个PRBGuard-bandLTE保护带Stand-alone独立频谱(GSM refarming)
AT+CEREG, AT+CGATT, AT+NPSMRQNavigator, 运营商IoT平台, minicom3GPP R8 UE Cat.1, 下行10Mbps/上行5Mbps, 中速物联网,LTE广覆盖优势。
text
用户面: 应用 → PDCP → RLC → MAC → PHY
控制面: RRC → NAS(EMM/ESM) → EPC(MME/S-GW/P-GW/HSS)
text
PLMN选择 → 小区选择 → SIB → RRC建立(PRACH→Request→Setup→Complete)
→ NAS Attach Request → EPC认证(MME↔HSS AKA) → 承载建立 → Attach Accept
text
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) → 扫描请求/响应(可选) → 连接
text
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个), 路由器, 终端(低功耗)
text
端点(1~240) → 簇(Cluster, 16bit) → 属性(Attribute)
操作: Read/Write/Report/Configure Reporting
Zigbee2MQTT, XCTU(Digi)特性Wi-Fi 6Wi-Fi 7峰值速率9.6Gbps46Gbps频段2.4/5/6GHz2.4/5/6GHz最大带宽160MHz320MHz调制1024-QAM4096-QAMOFDMARU: 26~2×996MRU更灵活MU-MIMO8×816×16BSS Coloring6bit增强
iwconfig/ iw, Wireshark, iperf3