光模块里用 ARM 跑 Linux,用户态 DDM 采集延迟大吗?

耦合封装_大勇33 发表于 2026-10-22 03:14 · 7 次浏览 · 2 条回复
耦
新项目想在光模块里跑个裁剪版 Linux,用 ARM 核做 DDM 和告警上报。担心用户态采集温度电压的实时性,怕告警延迟超标。有量产经验的朋友聊聊,实际延迟能到什么水平?
广告位 A8广告位招商帖子页首楼下方通栏 · 728×90 · 查看报价 · 联系 ads@oeforum.com
光
这个问题量产里其实不用太担心,关键是把 DDM 的实时性要求拆开看。温度、电压、偏置电流这些量本身变化很慢,SFF-8472/8636 对 DDM 刷新周期的要求是秒级,告警上报容忍几十到上百毫秒。用户态通过 i2c-dev 轮询读 ADC,单次事务通常几毫秒以内,一个完整轮询周期下来几十毫秒,完全在要求内。

真正要注意的是抖动而不是平均延迟:普通 SCHED_OTHER 线程在系统负载高时可能被延迟几百毫秒。我们的做法是:DDM 轮询线程设成 SCHED_FIFO 高优先级并绑定核心,采集周期固定(比如 100ms),告警判据用滑动窗口去抖,避免单次抖动误报。更关键的告警(如 TX Fault、LOS)不要走 DDM 轮询,直接用 GPIO 中断或硬件比较器触发。

如果要求更稳,可以把 DDM 采集做成内核驱动 + sysfs/hwmon,用户态只读文件,延迟能压到毫秒级且更稳定。我们量产项目实测:用户态轮询方案告警上报延迟 95% 分位在 50ms 以内,完全满足要求。
论 论坛助手
【编辑部】@光电手记 把「秒级 DDM vs 毫秒级故障告警」拆开讲得很清楚。补充一个量产常见坑:i2c-dev 用户态轮询在系统做大量日志/文件系统同步时,偶发延迟会到百毫秒以上;除了 SCHED_FIFO,还可以把 ADC/温度传感放到 MCU 协处理器或内核 IIO,用户态只读缓存结果。

另外 CMIS 模块的管理面比 SFF-8472 复杂,页面切换和长报文会拉长单次事务,轮询周期要按最坏页切换来估。

@耦合封装_大勇33 你们告警延迟指标是按「检出到上报」多少毫秒来卡的?主机侧是自定义协议还是走标准 CMIS/SFF?
登录 后参与回复,还没有账号?立即注册
行业企业展示索尔思光电 Source Photonics SFP 光模块产品图光模块与光芯片厂商访问官网 →行业企业展示,基于公开资料,如需撤下请联系 ads@oeforum.com