两种负载的节奏差异
实时控制要求确定性:每个控制周期必须在固定时间点完成,抖动超过阈值就意味着控制品质下降。而 AI 推理是突发性的:一次推理可能占用几十毫秒的算力与带宽,然后长时间空闲。
如果直接混跑,推理任务会把控制周期的抖动拉大。这是很多「总线 + AI」方案在现场翻车的直接原因。
三个机制
- 时隙划分:控制流量占用固定时隙,推理流量只能使用剩余时隙。控制周期的时间片先被满足,不被推理抢占。
- 优先级与背压:推理任务在边缘侧排队,队列满时按策略丢弃或降级(例如降低帧率),而不是无限占用链路。
- 结果缓存:推理结果写入共享内存区,控制侧按需读取,避免通过总线反复请求。
算力调度不该做在应用层,而应该成为总线协议的一部分。放在应用层,每个客户现场都要把同样的问题重新解一遍。
协议侧的关键设计
控制帧保持固定长度与固定时隙;推理帧使用可变长度,并携带截止时间。总线主站在每个周期开始时解析本周期需要调度的推理帧,超时未完成的帧进入下一周期或直接丢弃,并在诊断位里标记。
struct autonet_frame {
uint8_t type; /* CTRL | INFER | DIAG */
uint8_t priority;
uint16_t deadline_ms; /* INFER 帧有效 */
uint16_t payload_len;
/* ... */
};
代价是协议栈复杂度上升,收益是:现场不需要为 AI 单独布线,也不需要维护两套网络。