communication

常用接口

  • UART:异步串口,至少确认波特率、数据位、校验位和停止位。
  • I2C:两线总线,注意上拉电阻、设备地址和 ACK。
  • SPI:全双工接口,确认时钟极性/相位、片选和最高时钟频率。
  • CAN:适合可靠的多节点总线,末端通常需要 120 欧姆终端电阻。
  • MQTT:基于 TCP 的发布订阅协议,常用于物联网设备与服务器通信。

UART 帧例子

AA 55 | 长度 | 命令 | 数据 | 校验

协议应明确帧头、长度、命令、载荷、校验和超时规则。接收端使用状态机或环形缓冲区处理粘包、分包和错误数据。

MQTT 主题例子

device/{deviceId}/status
device/{deviceId}/command

设备上线后发布状态,订阅命令主题。生产环境使用账号、ACL 和 TLS,避免匿名 broker 暴露到公网。

经验总结

  1. RS232、RS485 与 TTL 电平不同,接线前必须确认电平和收发器型号。
  2. RS485 多点总线需要处理方向控制、终端匹配和地址冲突。
  3. BLE 通信要定义服务、特征值、读写权限和断线重连策略。
  4. RTOS 任务之间共享数据时使用队列、互斥锁或事件,不要依赖任意时序。