跳转至

AirLink物理层描述

当前支持2个模式, SPI和UART, 将来可能添加更多模式, 例如SDIO, I2C

SPI主从模式

  1. 以其中一端作为SPI主机, 另一端作为SPI从机
  2. 管脚包括: SPI协议所需要(CLK/MISO/MOSI/CS), 额外的RDY/IRQ脚

由于不同平台的SPI从机支持的波特率不同, 调试时务必协商好两端的SPI速度

管脚描述:

  1. CLK 主机提供时钟
  2. MOSI 主机输出数据到从机
  3. MISO 从机输出数据到主机
  4. CS 提供片选信号, 拉低有效
  5. RDY 从机就绪信号, 拉底有效, 若RDY为高电平, 不可进行SPI通信
  6. IRQ 从机数据通知主机, 拉低有效, 可选

支持轮询和中断模式, 若IRQ不选用, 则为轮询模式, 轮询周期默认5ms, 可配置

SPI数据, 当前固定收发长度是 1600 字节, 发送数据不足时,填0xFF或0x00均可.

SPI帧数据描述

uint8_t [1600]; // 固定收发1600字节, 通过链路层

基本时序

  1. SPI主机拉低CS
  2. SPI主机等待从机拉低RDY脚
  3. SPI主机开始全双工通信, 直至传输完1600字节
  4. SPI主机拉高CS

数据处理:

  1. 基于SPI的CS高低电平, 自然实现包的整体分割
  2. 通过查找到magic的位置后, 裁剪后返回到链路层

UART模式

  1. 两端是对等的UART通信, 必须使用相同的波特率, 停止位, 校验位, 通信期间不支持切换
  2. 推荐波特率为2M, Air780E/EPM等可支持6M

管脚描述:

A设备与B设备, 通过UART交叉连接, 确保电平一致, 稳定共地

  1. A UART TX --> B UART RX
  2. A UART RX <-- B UART TX
  3. IRQ 从机数据通知主机, 拉低有效, 可选

数据处理:

  1. 所有链路层数据, 均按0x7E规则进行转换
  2. 包头为 0x7E, 包尾是 0x7E
  3. 包内数据, 若出现 0x7E, 转义为 2字节的 0x7D 0x01, 若出现 0x7D, 转义为 0x7D 0x02
  4. 不符合转义规则的数据, 抛弃
  5. 单个链接层数据包, 最大1600字节(转义前, 即未编码的)