结论
跳转到“结论”采集架构先由同步性、持续吞吐、缓存深度和最坏延迟决定,再决定把 SPI 或并行采集放到实时核还是 FPGA。平均带宽够用不代表系统不会丢样。
| 方案 | 适用条件 | 主要风险 |
|---|---|---|
| M7 直接控制 ADC | 通道少、采样率适中、外设接口匹配 | 中断抖动、DMA/缓存一致性、向 Linux 搬运 |
| FPGA 采集并缓存 | 多通道同步、高持续速率、严格触发 | FPGA 逻辑、跨时钟域和主机接口复杂度 |
| Linux 用户态直接采集 | 低速原型或控制通道 | 调度不可预测,不适合硬实时采样边界 |
数据预算
跳转到“数据预算”原始有效载荷近似为:
设计预算还要加入帧头、时间戳、状态、对齐和链路编码。缓存至少覆盖主机最大不可服务时间:
所有数值应由实测或器件时序推导;没有测量依据的“CPU 占用率”“RPMsg 极限”和“完全可行”不能作为架构结论。
分阶段验证
跳转到“分阶段验证”- 电气层:电源、参考、时钟、复位和 ADC 输出格式正确。
- 单次事务:读取固定码或已知直流输入,确认字节序和符号扩展。
- 定时连续性:用逻辑分析仪检查 DRDY、SPI/并行总线和 DMA 间隔。
- 数据完整性:为每帧加入序号,统计丢帧、重复帧、溢出和最大积压。
- 同步性:给多通道同一信号,比较幅值和相位差。
- 压力测试:在 UI、存储、网络和分析同时运行时持续采集。
- 故障恢复:验证拔插、超时、过载、进程重启和停止/恢复。
AD7606 验证清单
跳转到“AD7606 验证清单”- SPI 模式、时钟极性/相位和最大时钟符合器件要求。
- CONVST、BUSY、CS 与读时序关系有波形证据。
- 输入接地和精密直流源的码值、噪声与量程一致。
- 连续读取达到目标采样率,且丢帧计数为零。
- CPU 占用率、DMA 中断率和缓存水位在最坏负载下有余量。
i.MX8MP M7 与 Linux 协作
跳转到“i.MX8MP M7 与 Linux 协作”M7 负责确定性的采集与短期缓存,Linux 负责存储、网络、UI 和复杂分析。共享内存必须明确所有权、内存屏障和 cache 清理/失效规则。控制消息可走 RPMsg;高吞吐数据是否走 RPMsg、共享内存或设备驱动,应由持续压力测试决定。