主机边界:默认使用标准库模型、C 源文件和测量序列;没有目标板也能完成换算、拟合、滤波和故障注入。
目标机边界:真实参考电压、输入建立、传感器安装、环境、温漂、噪声、仪器和安全范围必须回到当前芯片、器件、板卡和官方资料。
01 · ADC MEASUREMENT MODEL
模数转换模型:从电压到码值
ADC 把连续的电压输入映射成有限位宽的数字码,但参考电压、输入范围、分辨率、量化、偏置、增益和输入拓扑共同决定码值的含义。本单元先建立从引脚到工程量的模型,再区分转换器能测到的事实与软件想象出来的精度。
8.1.1 ADC 的输入范围和参考
ADC 的满量程常由参考电压和输入拓扑共同定义,但不同器件可能有内部参考、外部参考、增益级、差分范围或保留码。一个 3.3 V 系统不代表每个通道都能安全测到 3.3 V。先查绝对最大额定值、模拟输入范围和参考连接,再写换算公式。
8.1.2 分辨率、LSB 与量化
理想 N 位 ADC 的码宽约为满量程除以 2^N,LSB 只是量化步长,不是测量准确度。量化误差通常在半个 LSB 附近,但参考偏差、输入噪声、偏置、增益、INL/DNL 和布局可能远大于它。报告位数时必须同时说明有效分辨率和误差预算。
C · ADC CODE TO VOLTAGEuint32_t code_to_mv(uint32_t code, uint32_t vref_mv, uint8_t bits) { uint32_t full_scale = (1u << bits) - 1u; return (code * vref_mv + full_scale / 2u) / full_scale; }
理想换算不包含参考误差、偏置、增益、输入建立或目标 ADC 非线性。
PYTHON · ADC REPORTdef voltage(code, vref, bits): if not 0 <= code < (1 << bits): raise ValueError("code out of range") return code * vref / ((1 << bits) - 1)
主机公式只验证单位和边界;现场 Vref 和模拟输入必须单独测量。
8.1.3 码值到电压:公式的条件
从码值换算电压至少要记录 raw_code、bits、vref、输入模式、校准系数、端点策略和单位。公式是确定的,不代表输入端真的获得了该电压;参考源和模拟地没有测过时,换算结果只能称为基于名义条件的估计。
| 层次 | 应留下的证据 | 不能直接推出 |
|---|---|---|
| 范围 | 输入/参考/端点 | 位数就是准确度 |
| 换算 | 码值/单位/系数 | 公式推出现场 Vref |
| 边界 | 饱和/误差/质量 | 稳定码值必是真实值 |
8.1.4 饱和、欠量程与负输入
超量程可能饱和到最大码,欠量程可能被钳位或触发保护,负输入在单端 ADC 上通常没有物理意义。饱和计数应保留,不要把它们送入滤波后假装是边界内数据。过压、异常电流、输入保护导通或发热时停止并断开来源。
8.1.5 单端、差分与共模范围
差分 ADC 测量的是两个输入的差,同时还要求共模电压处于允许范围;单端 ADC 则相对模拟地测量。输入保护、负端噪声、增益设置和通道配对都会改变结果。一个差分公式不能被直接套到单端通道。
从左到右是思考顺序,不是把原始码、换算、滤波和结论压缩成一个“通过”。
8.1.6 理想分辨率不等于准确度
准确度还包含 offset error、gain error、INL、DNL、噪声、参考误差、温漂和采样网络误差。提高位宽只缩小理想量化步长,不会自动修复参考、布局或输入驱动。读数据手册时把静态误差、动态噪声和系统误差分成不同字段。
8.1.7 码值序列与物理现象
原始码序列应与输入源、时间戳、参考电压、通道、采样时间和环境一起保存。一个均值很稳定的序列可能来自输入被短路、通道没切换或 ADC 饱和。趋势、跳变和饱和比例需要与外部电压或已知标准对照。
8.1.8 本节交付:ADC 输入与换算卡
ADC 输入与换算卡包括 channel、input_mode、range、vref_source、vref_measured、resolution、raw_code、formula、calibration、saturation、uncertainty 和 raw_samples。它把‘读到一个数’改成有条件、有单位、可复核的测量对象。
请围绕“模数转换模型:从电压到码值”写出对象、输入/参考和环境条件、采样/换算/滤波机制、输出和质量标志、一个误差或时间约束、一个失败路径和对应证据。没有目标板时,运行主机路径并把未执行字段标为未执行;拥有目标机时,也要补齐芯片、传感器、引脚、供电、参考、仪器、安装和观察条件。不要用一个最终浮点数、一个均值或一张曲线截图覆盖没有做过的验证。
02 · SAMPLE AND HOLD
采样保持与时序:什么时候读到
ADC 转换前的采样保持阶段会让内部电容与输入源建立电压,采样时间、源阻抗、通道切换、触发频率、转换时间和 DMA/中断读取共同决定数据是否代表目标信号。时序错误会产生系统性偏差,即使数字码看起来很稳定。本单元把‘采样频率’拆成完整时间合同。
8.2.1 采样保持的两个阶段
采样保持通常先闭合开关让内部电容追随输入,再断开进入转换;采样时间越短,源必须越快地给电容充电。数据手册给出的最大源阻抗、采样周期和误差条件要与前端电阻、电容、运放输出能力一起核对,不能只看 ADC 时钟。
8.2.2 源阻抗与建立时间
高阻分压、NTC、桥式传感器或长线会让采样电容看到一个有时间常数的源。连续采同一通道可能表现正常,快速切换通道却会把前一通道电压带入下一次。增加采样时间、加缓冲或安排 dummy conversion 都是有代价的设计选择,应以原始码和输入波形验证。
C · SAMPLE BUDGETuint32_t sample_period_cycles(uint32_t sample_cycles, uint32_t convert_cycles) { return sample_cycles + convert_cycles; } bool trigger_rate_ok(uint32_t adc_clk, uint32_t period_cycles, uint32_t trigger_hz) { return period_cycles * trigger_hz <= adc_clk; }
真实 ADC 还受通道序列、过采样、触发同步和 DMA 服务能力约束。
C · CHANNEL RECORDtypedef struct { uint16_t raw; uint8_t channel; uint32_t sample_index; uint64_t trigger_tick; } sample_t;
记录索引和触发时刻,避免把 DMA 回调时间误当物理采样时间。
8.2.3 通道扫描与串扰
扫描序列中的 rank、采样时间、通道切换和 DMA 索引必须一一对应。把 DMA 数组的第 0 项当作‘通道 0’而没有保存序列,是多通道错位的常见来源。用高/低已知输入交替并观察残留,是发现串扰比看均值更有效的办法。
| 层次 | 应留下的证据 | 不能直接推出 |
|---|---|---|
| 源 | 阻抗/RC/带宽 | 任意源都能短采样 |
| 时序 | 采样/转换/触发 | 触发率就是采样率 |
| 数据 | 序列/DMA/时间戳 | 回调时间就是样本时间 |
8.2.4 触发频率、吞吐与转换时间
一次转换的周期包含采样、转换、可能的过采样和数据传输;最大触发率由最慢通道和序列总长度决定。触发频率超过吞吐时,硬件可能丢触发、覆盖数据或改变间隔。配置值要和实际 DMA 时间戳、更新事件和错误标志对账。
8.2.5 定时器触发与采样抖动
由定时器触发比软件 while 循环更容易形成稳定采样相位,但定时器时钟、触发边沿、ADC 同步延迟和低功耗恢复仍会改变时刻。一个‘1 kHz 采样’结论应说明触发源、通道顺序、允许抖动和是否跨睡眠。
从左到右是思考顺序,不是把原始码、换算、滤波和结论压缩成一个“通过”。
8.2.6 DMA 缓冲、半满和时间戳
DMA half/full 回调发生在内存达到某个水位之后,不是每个样本的物理采样时刻。应由触发计数或硬件时间戳推断样本索引,避免用回调时间给整块数据打同一个时间。缓存一致性和所有权也会影响消费者何时能安全读取。
8.2.7 混叠、带宽与前端滤波
若输入信号在 Nyquist 频率以上,ADC 会把它折叠成另一个低频成分;平均或数字滤波不能恢复已经混叠的信息。前端抗混叠滤波、采样率、触发抖动和有效带宽应一起设计,并用已知频率扫描验证频谱而非只看一张波形。
8.2.8 本节交付:采样时序卡
采样时序卡包括 source_impedance、front_end_rc、sample_cycles、adc_clock、channel_sequence、trigger_source、conversion_period、dma_layout、timestamp_source、aliasing_limit 和 raw_capture。它让后续校准、滤波和传感器换算知道每个样本的来历。
请围绕“采样保持与时序:什么时候读到”写出对象、输入/参考和环境条件、采样/换算/滤波机制、输出和质量标志、一个误差或时间约束、一个失败路径和对应证据。没有目标板时,运行主机路径并把未执行字段标为未执行;拥有目标机时,也要补齐芯片、传感器、引脚、供电、参考、仪器、安装和观察条件。不要用一个最终浮点数、一个均值或一张曲线截图覆盖没有做过的验证。
03 · SENSOR DATA PATH
传感器数据链:从物理量到工程量
传感器系统通常包含物理量、敏感元件、模拟/数字接口、ADC、原始码、校准、补偿、滤波、单位换算和有效性标志。每层都有自己的坐标、时间和误差;把驱动返回的一个浮点数当作‘真实温度/压力’会丢掉全部条件。本单元建立端到端数据链。
8.3.1 传感器量程与 ADC 量程不是一回事
传感器量程描述物理量能覆盖多大范围,ADC 量程描述电气输入能转成多大电压,前端增益/分压还会在两者之间建立映射。一个温度传感器输出 0.5–2.5 V 不等于 ADC 直接测摄氏度;每个比例、参考和方向都要写在数据合同。
8.3.2 模拟传感器与数字传感器
模拟传感器把电压/电流交给 ADC,数字传感器可能在内部完成采样、补偿和量化,再通过 I²C/SPI 返回寄存器。后者仍可能有转换时间、内部校准、状态位和数据格式。看到一个数字接口不代表已经绕过了测量误差。
C · SENSOR PIPELINEtypedef struct { int32_t raw; int32_t value_milli; uint64_t timestamp; uint32_t quality; } sensor_sample_t; sensor_sample_t convert(int32_t raw, int32_t scale, int32_t offset) { return (sensor_sample_t){raw, raw * scale + offset, now_ticks(), QUALITY_VALID}; }
单位、系数、状态和样本年龄需要由具体传感器合同填充。
C · DATA_READY GUARDif (!sensor_data_ready()) { record_quality(QUALITY_STALE); return ERR_NOT_READY; } read_sensor_registers(raw);
读取成功不等于拿到新样本;ready/busy、序号和转换延迟必须验证。
8.3.3 灵敏度、偏置与单位换算
工程单位换算通常是 raw → 电压/计数 → 灵敏度/增益 → 偏置/补偿 → 单位。每层要保留中间值和版本;只保存最终浮点会让别人无法判断错误发生在 ADC、驱动、系数还是单位。
| 层次 | 应留下的证据 | 不能直接推出 |
|---|---|---|
| 对象 | 物理量/量程 | 传感器数字就是工程单位 |
| 数据 | raw/scale/status | 读取成功就是新样本 |
| 质量 | age/range/reference | 异常可以替换为 0 |
8.3.4 数据 ready、busy 和转换延迟
许多传感器先启动一次转换,等待 data-ready 或 busy 清除,再读取结果;过早读取可能得到上一次样本。时间戳应标出转换完成而非总线读取,状态寄存器和样本序号可帮助发现旧数据。超时和 busy 风暴必须有上限和恢复。
8.3.5 时间戳和样本年龄
样本年龄是读取时刻减去测量/转换完成时刻,慢速温度传感器和快速控制回路对它的容忍不同。把串口打印时刻当作样本时刻会造成延迟误判。驱动接口应返回 timestamp、age 或 freshness,并让应用根据 deadline 决定是否使用。
从左到右是思考顺序,不是把原始码、换算、滤波和结论压缩成一个“通过”。
8.3.6 质量标志、范围和异常码
质量标志可以表示 out_of_range、saturated、disconnected、crc_error、not_ready、self_test_failed、stale 或 calibration_missing。无效样本不应被静默替换为 0 或上一次值;如果必须保持输出,也要附上质量和替代原因。
8.3.7 环境、安装和对照仪器
传感器的安装位置、热阻、气流、机械耦合、供电噪声和激励电流会改变读数。对照仪器的精度、探头位置、同步方式和稳定时间要记录;同一型号换一块板或换一处安装,不一定是同一个测量条件。
8.3.8 换型号时哪些字段必须重核对
换型号时重新核对地址/片选、寄存器格式、字节序、量程、灵敏度、转换时间、状态位、补偿公式和上电默认值。兼容接口只保证函数能调用,不保证物理单位、响应时间和质量字段含义相同。
8.3.9 本节交付:传感器数据合同
传感器数据合同包括 sensor_identity、physical_quantity、range、excitation、raw_source、scale、offset、compensation、timestamp、age、status、quality、environment、reference_instrument 和 limits。它把读数变成可以追溯的工程量。
请围绕“传感器数据链:从物理量到工程量”写出对象、输入/参考和环境条件、采样/换算/滤波机制、输出和质量标志、一个误差或时间约束、一个失败路径和对应证据。没有目标板时,运行主机路径并把未执行字段标为未执行;拥有目标机时,也要补齐芯片、传感器、引脚、供电、参考、仪器、安装和观察条件。不要用一个最终浮点数、一个均值或一张曲线截图覆盖没有做过的验证。
04 · CALIBRATION AND ERROR
校准与误差预算:偏置、增益、温漂
校准不是把一个数字调到看起来正确。零点偏置、增益误差、非线性、参考偏差、温度、装配、重复性和参考仪器不确定度都可能需要不同方法和不同证据。本单元用误差预算连接两点校准、温度补偿、验证和版本管理。
8.4.1 零点偏置与增益误差
零点偏置让整条转换曲线整体平移,增益误差让斜率改变;两点校准可以在理想线性模型下同时修正它们。真正的 ADC/传感器还可能有非线性、迟滞、噪声和温漂,两个点上的完美匹配不等于整段范围都准确。
8.4.2 两点校准与线性拟合
线性校准可写成 engineering = slope × raw + intercept,但 raw 的来源、单位、参考点和有效范围必须固定。保存系数时同时保存拟合点、残差、方法、温度、参考仪器和版本;否则别人只能看到一个不能复算的魔法常数。
PYTHON · TWO-POINT CALIBRATIONdef fit_two_points(raw_a, eng_a, raw_b, eng_b): if raw_a == raw_b: raise ValueError("reference points must differ") slope = (eng_b - eng_a) / (raw_b - raw_a) intercept = eng_a - slope * raw_a return slope, intercept
拟合参数必须附带参考不确定度、温度、范围、残差和版本。
C · CALIBRATION VALIDATIONfloat corrected = raw * slope + intercept; float residual = corrected - reference; if (fabs(residual) > LIMIT) record_calibration_failure();
验证点应独立于拟合点,并保存原始值、参考值和环境。
8.4.3 非线性、迟滞与重复性
非线性需要更多点、分段、查表或模型补偿;迟滞要分别记录上行/下行;重复性要在相同条件下重复采样并报告分布。若校准过程本身噪声很大,增加小数位只会把不确定度写得更长。
| 层次 | 应留下的证据 | 不能直接推出 |
|---|---|---|
| 模型 | offset/gain/残差 | 两点修复整条曲线 |
| 参考 | 仪器/环境/不确定度 | 参考值就是绝对真值 |
| 版本 | 系数/CRC/有效期 | 校准参数永久有效 |
8.4.4 参考仪器与不确定度
参考仪器不是绝对真值,它有准确度、分辨率、漂移、温度系数和校准证书。被测改进小于参考不确定度时,不能声称改善已证明。把参考仪器、连接、稳定时间、读数平均和环境噪声写入误差预算。
8.4.5 温漂、热稳定和时间漂移
传感器与 ADC 常有热启动、封装热阻和自发热;温度扫描若未等待稳定,系数会把瞬态误差写入永久参数。长期漂移还可能来自老化、湿度、机械应力和供电变化。校准有效期和再校准触发条件应成为合同字段。
从左到右是思考顺序,不是把原始码、换算、滤波和结论压缩成一个“通过”。
8.4.6 系数存储、版本与回滚
校准参数写入 Flash/EEPROM 时要有版本、长度、CRC、默认值和原子更新策略。掉电中断可能留下半个系数;启动时若发现无效参数,应回到安全的名义系数并标出 calibration_missing,而不是继续输出高置信度数据。
8.4.7 校准后的验证点选择
独立验证点不能与拟合点完全相同,应覆盖低、中、高和必要的负向/回程点。验证输入、预测输出、实测输出、残差和允许范围要先写后测。用校准点自证最容易把过拟合误认为准确。
8.4.8 本节交付:校准与误差卡
校准与误差卡包括 calibration_id、raw_unit、engineering_unit、reference_points、reference_uncertainty、slope、intercept、residuals、temperature、stability_time、parameter_crc、version、valid_range 和 acceptance_limit。它把修正值放回测量事实的上下文。
请围绕“校准与误差预算:偏置、增益、温漂”写出对象、输入/参考和环境条件、采样/换算/滤波机制、输出和质量标志、一个误差或时间约束、一个失败路径和对应证据。没有目标板时,运行主机路径并把未执行字段标为未执行;拥有目标机时,也要补齐芯片、传感器、引脚、供电、参考、仪器、安装和观察条件。不要用一个最终浮点数、一个均值或一张曲线截图覆盖没有做过的验证。
05 · FILTERING AND QUALITY
滤波、过采样与异常:让数据可用
滤波不是把曲线变平。移动平均、IIR、median、过采样、抽取、限幅、迟滞和异常剔除都在延迟、带宽、噪声、阶跃响应和故障可见性之间取舍。本单元把滤波器作为带时间和质量标志的测量组件,而不是一个无条件的平滑按钮。
8.5.1 移动平均的窗口和延迟
长度为 N 的移动平均会把噪声平均掉,但也会让阶跃在窗口内逐步出现并带来近似半窗口延迟。窗口越长不一定越好:控制回路、报警和人机界面对响应速度有不同要求。滤波前后都应保留时间戳和有效性,而不是只保存平滑值。
8.5.2 IIR 系数与稳定性
IIR 用当前输入和历史输出递归,计算量小但系数、采样率和定点表示决定其截止频率、稳定性和响应。系数改变而采样率不变时,物理带宽才可解释;定点乘加还要防止溢出、截断和累积偏置。
PYTHON · MOVING AVERAGEdef moving_average(values, window): if window < 1 or len(values) < window: raise ValueError("insufficient samples") return [sum(values[i-window+1:i+1]) / window for i in range(window - 1, len(values))]
平均降低部分噪声但增加延迟;原始样本和质量标志不能丢弃。
C · QUALITY GATEif (raw >= ADC_MAX || raw <= ADC_MIN || sensor_crc_bad()) { quality |= QUALITY_INVALID; reset_filter_state(); } if (quality == QUALITY_VALID) publish(value);
异常策略、边界和恢复条件必须按传感器与应用风险定义。
8.5.3 median 与离群点
median 对孤立毛刺有韧性,却可能延迟窄脉冲或改变边沿;平均对高斯噪声有效,却会把异常扩散进窗口。选择算法要看噪声模型、真实信号最短变化、允许延迟和故障策略,并用原始序列重放。
| 层次 | 应留下的证据 | 不能直接推出 |
|---|---|---|
| 算法 | 窗口/系数/带宽 | 越平滑越准确 |
| 时间 | 延迟/阶跃/deadline | 滤波没有时间代价 |
| 质量 | 异常/饱和/恢复 | 平均可以修复断线 |
8.5.4 过采样、平均和有效位数
过采样提高样本数量,只有在噪声独立、带宽、时钟和数字处理满足条件时才可能改善有效分辨率。把 16 次平均直接称为多 2 位准确度是不完整的;参考噪声、输入漂移和相关噪声会限制收益。
8.5.5 抽取与抗混叠
抽取前如果信号带宽超过新的 Nyquist 频率,频谱会折叠;数字滤波太晚无法恢复。模拟抗混叠、采样率、数字滤波和抽取率要成套设计,记录阶跃、扫频、噪声和 CPU/内存成本。
从左到右是思考顺序,不是把原始码、换算、滤波和结论压缩成一个“通过”。
8.5.6 异常、饱和与断线检测
断线、饱和、CRC 错误、超范围和不合理跳变应产生质量标志,必要时旁路滤波或清空历史,避免旧值拖延故障发现。连续异常的计数、进入/退出阈值和恢复动作要写清,不能让滤波器把故障变成‘稳定’。
8.5.7 滤波延迟与控制 deadline
滤波后的报警或控制触发时间等于原始采样时刻加算法/缓冲/调度延迟。端到端预算应包含 DMA 批量、窗口填充、线程唤醒和输出动作;均值曲线漂亮但触发晚了,仍可能违反系统合同。
8.5.8 本节交付:滤波与质量卡
滤波与质量卡包括 raw_samples、sample_rate、algorithm、window_or_coeff、fixed_point_format、latency、bandwidth、outlier_rule、saturation_rule、quality_flags、reset_policy 和 deadline。它让数据可用与数据好看分开。
请围绕“滤波、过采样与异常:让数据可用”写出对象、输入/参考和环境条件、采样/换算/滤波机制、输出和质量标志、一个误差或时间约束、一个失败路径和对应证据。没有目标板时,运行主机路径并把未执行字段标为未执行;拥有目标机时,也要补齐芯片、传感器、引脚、供电、参考、仪器、安装和观察条件。不要用一个最终浮点数、一个均值或一张曲线截图覆盖没有做过的验证。
06 · MEASUREMENT DELIVERY
测量交付:从原始码到可复查结论
本章最后把 ADC、采样、传感器、校准和滤波收束为一份测量交付包:对象和端点、参考和范围、原始码、采样时间、换算与校准、滤波参数、质量标志、环境、参考仪器、主机测试和目标机边界。可复查的结论必须把数字放回条件,而不是只展示最终曲线。
8.6.1 交付文件的最小集合
可重算交付包至少包含准确对象、输入端点、参考源、ADC 配置、原始码和时间戳、换算公式、校准系数、滤波参数、质量标志、环境、仪器和测试命令。最终曲线只应作为索引;没有原始材料和版本,任何小数都无法复核。
8.6.2 芯片、传感器与资料版本
换芯片修订、传感器批次、参考电压、前端电阻、安装位置、SDK/驱动或滤波版本,都可能改变结果。保存数据手册/协议 URL、访问日期、工具版本和固件哈希,并标出哪些结论需要重新校准或重测。
PYTHON · MEASUREMENT RECORDfrom dataclasses import dataclass @dataclass class Measurement: raw: int timestamp: int value: float quality: str calibration_id: str def apply(raw, scale, offset): return raw * scale + offset
主机记录帮助重算;它不能证明 Vref、安装、温漂或参考仪器已经验证。
SHELL · MEASUREMENT HASHsha256sum build/firmware.elf evidence/raw_adc.csv evidence/sensor.log evidence/calibration.json python tools/replay_measurement.py --config evidence/calibration.json --input evidence/raw_adc.csv
目标工具链或重放工具未安装时仍应保存命令、版本、原始数据和未验证字段。
8.6.3 参考、环境和仪器设置
参考电压、环境温度、原始码、时间戳、校准前后值和滤波输出要用共同时间轴关联。若把串口打印时刻当采样时刻,或者只保存平均值,无法解释突发噪声、样本年龄和滤波延迟。
| 层次 | 应留下的证据 | 不能直接推出 |
|---|---|---|
| 身份 | 芯片/传感器/版本 | 同型号就是同条件 |
| 事实 | raw/参考/环境 | 最终曲线覆盖全部证据 |
| 边界 | 主机/目标/停止 | 未验证项可以省略 |
8.6.4 原始码、时间戳和质量对账
质量对账可把 ADC 转换数、DMA 写入数、驱动有效数、滤波输出数和报警数并列,异常/饱和/断线计数要能追溯到原始样本索引。被滤掉的样本不能删除;应保存原因和恢复策略。
8.6.5 主机路径:公式、拟合和故障注入
没有目标板时可运行码值换算、两点校准、误差预算、移动平均、median、饱和/断线故障注入和单位链测试;不能声称现场 Vref、输入建立、传感器温漂、安装误差或参考仪器精度已验证。
从左到右是思考顺序,不是把原始码、换算、滤波和结论压缩成一个“通过”。
8.6.6 目标机路径:安全连接和输入边界
目标机实验先用限流供电、已知安全输入和可恢复固件,确认模拟地、参考、输入保护、采样时间和量程,再接真实传感器。出现过压、输入发热、参考异常、饱和失控或无法解释的噪声时停止并保存现场。
8.6.7 单变量测量回归
单变量回归可以只改采样时间、触发率、参考源、校准系数、滤波窗口、安装位置或环境温度,但不能同时换板、换传感器和换仪器。先预测 raw、engineering、残差、延迟和 quality,再比较原始证据。
8.6.8 资料卡:HAL、Zephyr、Linux IIO 与模拟前端
STM32 HAL ADC 展示轮询、中断、DMA、过采样和校准入口;Zephyr ADC/传感器文档展示通道、触发、Fetch/Get 与 Read/Decode;Linux IIO 说明 scale、offset 和缓冲抽象;模拟前端资料提醒接地和噪声的边界。它们不能替代当前板级测量。
8.6.9 本章结业:交给驱动与闭环的接口
交给后续驱动、联网和闭环章节的接口包括 sensor_identity、channel、raw_code、timestamp、age、scale、offset、calibration_id、filter、quality、uncertainty、reference、limits 和 unverified_scope。后续控制逻辑应从这些字段决定是否使用数据。
请围绕“测量交付:从原始码到可复查结论”写出对象、输入/参考和环境条件、采样/换算/滤波机制、输出和质量标志、一个误差或时间约束、一个失败路径和对应证据。没有目标板时,运行主机路径并把未执行字段标为未执行;拥有目标机时,也要补齐芯片、传感器、引脚、供电、参考、仪器、安装和观察条件。不要用一个最终浮点数、一个均值或一张曲线截图覆盖没有做过的验证。
资料卡(访问日期:2026-09-04):STM32 HAL ADC、Zephyr ADC/传感器、Linux IIO 和模拟前端资料展示不同生态的测量入口。通用 API 不能替代当前芯片的参考电压、输入建立、传感器安装、环境、仪器和安全条件。