为了满足持续功率监控的严格实时要求,并确保不会丢失关键数据,计量库采用高效的分离式处理架构。这种设计将时间敏感型任务与执行频率较低、计算量较大的任务分离开来,优化资源利用率并保持系统响应性。该架构大致分为两个主要处理层:后台处理和前台处理。
后台处理:
以高频率执行(通常与模数转换器 (ADC) 采样率同步),后台处理任务在中断服务例程 (ISR) 内处理。该层的主要职责包括:
- 原始样本采集:从 ADC 中读取最新的电压和电流样本。
- 基本预处理:对原始采样值执行最少量的时间关键操作,例如进行直流估算和滤波以消除直流偏置。
- 核心累积:在指定的测量窗口(通常为一个或多个市电周期)内计算并累积基本点积和运算(例如电压采样平方和、电流采样平方和、电压与电流乘积之和)。这些累积构成了大多数后续计量计算的基础。
- 数据缓冲和同步:管理数据缓冲区并准备累加的数据,以便将其安全地传输到前台任务。
后台处理的主要设计原则是尽量缩短 ISR 的执行时间,以保持高采样精度,并允许系统响应其他关键中断。
前台处理:
前台任务在主应用循环中以较低频率运行,一旦后台处理累积了完整的数据块,就会被触发。该层处理计算量更大的计算任务,包括:
- 检索累加数据:安全地读取后台任务记录的一致的点积集合和其他相关数据。
- 应用校准:使用预先确定的校准系数校正原始累积值,以补偿传感器误差及模拟前端的偏差。
- 计算最终参数:使用校准后的数据计算整套计量参数,例如 RMS 电压和电流、有功功率、无功功率和视在功率、功率因数、频率、THD 及电压骤降/骤升事件。
- 能量累积:对功率值随时间进行累积计算以得到能耗。更新结果:为应用提供最终的校准测量值以进行显示、记录或通信。
数据传输机制:
这种分离架构的一个关键要素是后台 ISR 与前台任务之间可靠的数据传输机制。该库采用同步交接技术,通常称为双缓冲,以保持数据完整性。过程如下:
- 后台 ISR 会不断使用每个样本的数据更新主要累加器集合。
- 当一个完整的测量块(例如指定数量的样本或市电周期)累积完成后,后台任务会将这些主要累加器的当前值复制到辅助“已记录”变量集合中。
- 然后,后台任务设置状态标志,向前台任务发出信号,表示已记录的变量中有一个新的一致数据块已就绪。
- 在主应用循环中运行的前台任务会定期检查此状态标志。检测到该标志被设置时,系统就知道“已记录”的累加器中存在一组完整且一致的数据。然后,它会继续使用此数据进行计算。