在线采集靠USB实时上传,但遇到雷击、开关浪涌等瞬态事件,USB带宽和延迟根本来不及。D223的SRAM硬件记录仪就是为了解决这个问题而设计的。
一、为什么需要SRAM记录仪?
D223有两种工作模式note_63:
c
enum _deviceWorkMode {
_deviceWorkMode_Stop = 0x00, // 空闲停止
_deviceWorkMode_sendBusy, // 发送忙
_deviceWorkMode_sramRecord, // SRAM记录中
_deviceWorkMode_getSramRecord, // 读取SRAM记录
_deviceWorkMode_onlineRecord, // 在线实时采集
_deviceWorkMode_adcCalib = 0xff, // ADC校准模式
};
在线采集模式:FPGA控制AD7606采样 → STM32通过QSPI读取 → 双缓冲打包 → USB实时上传。适合连续监测,但受USB带宽限制。
SRAM记录仪模式:FPGA直接将ADC数据写入板载SRAM,不走USB,等采集完成后再由STM32读取上传。适合捕捉瞬态事件。
核心区别在于:SRAM记录时数据路径不经过STM32和USB,完全由FPGA硬件控制,响应速度极快。
二、SRAM记录仪的工作流程
2.1 配置阶段
上位机设置以下参数后点击"开始采集"word_5:
- 采样率
- 采集时间(ms)
- 通道使能状态
- 是否使用DIN外部触发
这些参数通过USB写入采集卡,FPGA进入待触发状态。
2.2 触发阶段
SRAM记录仪支持外部DIN触发功能word_5:
- DIN输入为PNP型
- 需要NPN型数字接口对其接地边沿触发
- 最简单的NPN接口:通过一个开关和数字输入的GND短接
- 板载DIN输入灯亮的瞬间触发记录仪开始采集
D223固件中,dio_tim_task()每1ms扫描8路DI输入状态,检测到配置的触发边沿后调用fun_dinTrig_StartSramRecord()启动记录word_4。
2.3 采集阶段
FPGA按照预设的采样率和采集时间进行采集,数据直接写入SRAM。采集过程中,"已采集时间"按秒累加显示word_5。
2.4 读取阶段
采集完成后,STM32切换到读取SRAM模式note_63:
c
// 1. 通知FPGA停止记录
_regA2FMap.REG_SRAM_WORK_STATE1 = 2;
fpga_write_register();
// 2. 循环读取SRAM并通过USB上传
while(未读完) {
QSPI_ReadDatas_DMA(0xEB, 6, ...); // 从SRAM读取数据
usb_sendMsg(...); // USB上传
}
QSPI命令码0xEB用于读取SRAM记录数据,使用24位地址、6个dummy cyclenote_63。
SRAM记录的数据可以多次读取,不容易因为误码导致数据丢失word_5。
三、采样率档位与资源限制
SRAM记录仪的采样率受通道数和功能使能情况影响word_5:
| 条件 | 最大SRAM采样率 |
|---|---|
| 开启1~2个ADC通道 | 35K |
| 开启3~4个ADC通道 | 30K |
| 开启>4个ADC通道 | 25K |
| 同时开启DAC或PWM功能 | 10K |
注意:以上为DABL-7606的SRAM档位限制。D223由于采用FPGA+STM32H743架构,SRAM采样率能力有所提升,但具体档位以最新固件为准word_5note_63。
四、SRAM记录仪 vs 在线采集对比
| 对比项 | 在线采集 | SRAM记录仪 |
|---|---|---|
| 数据路径 | FPGA→QSPI→STM32→USB | FPGA→SRAM(不经过STM32) |
| 触发方式 | 软件启动 | 软件启动 / 外部DIN硬件触发 |
| 响应延迟 | 受USB调度影响 | 硬件触发,纳秒级响应 |
| 数据上传 | 实时连续上传 | 采集完成后批量上传 |
| 适合场景 | 连续监测 | 瞬态事件捕获(雷击、浪涌等) |
| 多次读取 | 不支持 | 支持,可反复读取 |
五、应用场景
场景1:变电站雷击波形捕获
客户需要在变电站捕捉雷击波形,USB实时传输来不及。使用SRAM记录仪模式:
- 上位机配置采样率和采集时间
- 使能DIN外部触发
- 雷击发生时,DIN信号触发FPGA开始记录
- 记录完成后,STM32读取SRAM数据上传
- 波形完整保存,触发前后数据均可获取
场景2:开关浪涌捕捉
机械开关动作时产生的浪涌波形持续时间极短,通过SRAM记录仪的外部触发功能可以精确捕捉。
场景3:长时间离线记录
采集卡与上位机断开连接时,数据可以先存入SRAM,后续再连接上位机读取word_5。
六、当前功能状态
注意:SRAM环形缓冲自动捕获异常事件功能目前尚未开发note_244。当前SRAM记录仪支持的是单次触发记录模式,不支持自动循环捕获异常事件的环形缓冲模式。
七、总结
D223的SRAM硬件记录仪通过FPGA直接写SRAM的方式,绕过了USB带宽瓶颈,实现了对瞬态事件的精确捕获。配合外部DIN触发功能,可以满足雷击、浪涌等微秒级事件的波形记录需求。
核心设计思路:在线采集解决"看实时",SRAM记录仪解决"抓瞬间",两种模式互补。
下篇预告:《D223的标定系统与FRAM非易失存储:两点校准如何实现0.01%FSR精度》