communication
常用接口
- UART:异步串口,至少确认波特率、数据位、校验位和停止位。
- I2C:两线总线,注意上拉电阻、设备地址和 ACK。
- SPI:全双工接口,确认时钟极性/相位、片选和最高时钟频率。
- CAN:适合可靠的多节点总线,末端通常需要 120 欧姆终端电阻。
- MQTT:基于 TCP 的发布订阅协议,常用于物联网设备与服务器通信。
UART 帧例子
AA 55 | 长度 | 命令 | 数据 | 校验
协议应明确帧头、长度、命令、载荷、校验和超时规则。接收端使用状态机或环形缓冲区处理粘包、分包和错误数据。
MQTT 主题例子
device/{deviceId}/status
device/{deviceId}/command
设备上线后发布状态,订阅命令主题。生产环境使用账号、ACL 和 TLS,避免匿名 broker 暴露到公网。
经验总结
- RS232、RS485 与 TTL 电平不同,接线前必须确认电平和收发器型号。
- RS485 多点总线需要处理方向控制、终端匹配和地址冲突。
- BLE 通信要定义服务、特征值、读写权限和断线重连策略。
- RTOS 任务之间共享数据时使用队列、互斥锁或事件,不要依赖任意时序。