• 博客(1691)
  • 收藏
  • 关注

原创 望获OS 实战总目录:实时Linux / PREEMPT_RT / EtherCAT / 机器人开发(持续更新)

望获OS是国科环宇推出的工业级实时Linux系统,基于PREEMPT_RT内核,实现中断响应<10μs、运动控制抖动<1μs,适配飞腾、瑞芯微等国产芯片。覆盖实时性优化、高可靠系统、工业控制与航天场景,提供从快速启动、硬实时通信到延迟排查的全链路解决方案,累计原创1600+篇,内容经读者收藏验证,每周更新。

2026-10-29 13:54:00 1604

原创 工业实时系统的抖动口径:OSADL、ETG、IEC 三套通行标准的对照

本文梳理工业实时系统中“抖动”测量的三大主流口径:OSADL实验室长跑分位数标准、ETG EtherCAT分布式同步偏差要求、IEC功能安全证据链规范。三者分别关注长期稳定性、网络同步精度与验证可追溯性,核心差异在于测量对象(延迟变化、周期偏差、超时率)、条件(负载形态、运行时长)与承诺维度(绝对值、相对比、证据链)。客户问“抖动多少”需先明确场景——按OSADL报分位数,按ETG报周期偏差,按IEC则需提供完整验证证据。三者互补,共同构建可信的实时性评估体系。

2026-11-12 15:46:49 146

原创 用 ftrace 的 irqsoff 与 preemptoff 追踪器定位最大延迟点的完整操作

本文基于Linux 6.6内核源码与trace-cmd工具,系统拆解irqsoff与preemptoff tracer的机制与操作路径。前者捕获最长关中断窗口及调用栈,后者覆盖关抢占场景,二者在RT系统中行为差异显著。通过tracefs或trace-cmd开启追踪,结合tracing_max_latency与trace文件读取最大延迟及栈快照,实现从“发现问题”到“定位根因”的闭环。关键在于解析调用栈中preempt-depth归零行与caller链,识别干扰源(如驱动后台任务),完成可操作的性能归因。

2026-11-12 15:44:15 210

原创 中断延迟、调度延迟、唤醒延迟:三个被混用的指标各自的定义与测量路径

本文拆解嵌入式系统中“延迟”概念的三大定义:中断延迟(事件到ISR执行)、调度延迟(线程可运行到被调度),以及唤醒延迟(含调度+状态恢复)。三者路径不同、测量工具各异——ftrace irqsoff 量关中断窗口,wakeup tracer 测调度延迟,cyclictest 则包含定时器处理与上下文恢复开销。厘清起点终点与代码路径后,可精准定位瓶颈,避免因口径不一致导致误判。

2026-11-12 15:41:19 165

原创 同一份代码换配置差 10 倍延迟:内核配置审计清单 20 项

本文基于Linux 6.6内核源码与文档,推演“10倍延迟”并非实测值,而是多层调试机制叠加导致的路径乘法效应:在开启lockdep、KASAN、SLUB_DEBUG_ON等调试项时,中断唤醒→内存分配→加锁等五步路径各增1.3~2倍开销,综合放大后可达两位数。强调“成组关闭”调试项的重要性,因单个关闭影响有限。提供20项可勾选清单,按“检查命令→期望值→影响→修复”四段式组织,分五组(抢占调度、时间中断、内存管理、调试项、引导运行),指导开发者从配置可信度入手,优先清理D组调试项以确保测量环境纯净,最终实

2026-11-11 15:04:58 267

原创 内核启动参数手册:isolcpus、nohz_full、threadirqs、rcu_nocbs 的组合与验证

基于 Linux 6.6 源码()与梳理。本文只做参数语义与内核解析逻辑的推演,不含任何实测数据。你在grub里加一个拼错的(少了个 s),内核启动时不会停、不会警告,只是把这串字符丢给 init 当作环境变量。你重启、验证taskset能绑、cyclictest跑出来也“还行”,于是认为配置好了。真正的失败在三个月后:某次压测里隔离核被中断打了进来,而你以为它一直是隔离的。这篇按“参数从哪来 → 怎么确认解析了 → 每个参数的真实语义 → 组合冲突 → 一次验证到位”的顺序写。

2026-11-11 15:03:32 247

原创 影响实时延迟的 12 个内核配置项:Kconfig 逐项拆解

本文基于Linux 6.6内核源码,梳理12个关键配置项对延迟的影响,强调“先查配置、再调参数、最后看代码”的排查顺序。重点分析CONFIG_PREEMPT_RT(决定实时内核模型)、CONFIG_HZ(影响调度粒度与睡眠精度)、CONFIG_HIGH_RES_TIMERS(决定高精度定时器可用性)等核心配置,揭示其代码路径、默认值及使用场景。指出配置错误会导致调优失效,并提供四类查询内核配置的可靠方法,尤其强调uname -v和/proc/timer_list可验证配置是否真正生效,避免“配置开了但未生效

2026-11-11 15:01:25 138

原创 优先级反转的三种典型代码写法与代码审查清单

本文梳理了Linux rtmutex/futex机制下三种导致优先级反转的代码写法:非PI锁引发的经典反转、锁顺序不一致导致的链式反转、临界区执行不可控操作引发的无界反转。每种形态均提供最小复现代码、时序分析及三类改法(加PI、统一锁序、移出临界区操作),强调反转常叠加出现,需通过审查清单系统排查。核心观点:反转是代码写法产物,分辨形态是修复前提,实时系统中持锁仅限原子操作。

2026-11-11 13:49:16 668

原创 实时线程里能不能用 malloc:glibc 分配器、arena 与确定性开销分析

malloc 在实时路径中不可靠,因其三条执行路径开销差异达三个数量级:tcache命中(纳秒级)、arena竞争(微秒级)、内核调用(毫秒级)。虽平均快,但尾部延迟无上界,且glibc arena锁无优先级继承,易引发不可控的优先级反转。即使启用mlockall也仅缓解缺页,无法根治锁与路径不确定性。推荐替换为tcmalloc(per-CPU模式)或jemalloc(禁用后台线程),并配合显式绑核与预热,以实现可预测的内存分配。

2026-11-11 13:46:59 327

原创 rtmutex 如何替代 spinlock:RT 内核里锁语义变化的源码对照

在 PREEMPT_RT 内核中,spin_lock() 已非传统自旋锁,而是基于 rt_mutex 的可睡眠互斥量,底层结构变为 rt_mutex_base,实现优先级继承以消除无界优先级反转。类型名不变,但语义从“忙等”转为“睡眠等待”,依赖红黑树管理等待队列,owner 指针低位标记等待状态。快速路径仅需一次 cmpxchg,慢路径则挂载等待者、让出 CPU 并触发优先级提升。raw_spinlock_t 仍保持真自旋特性,适用于绝对不可睡眠的上下文。此设计使老代码中“临界区短、不睡眠”的假设失效,强

2026-11-11 13:45:10 268

原创 Linux CPU 100% 怎么排查?top → pidstat → perf 一条完整链路(附实战案例)

本文基于Ubuntu 24.04.5 LTS,为后端开发、运维及SRE提供一套完整的CPU 100%性能排查链路:从top定位进程,top -H定位线程,结合pidstat、strace分析系统调用与上下文切换,通过perf top和火焰图精准定位用户态或内核态热点函数。实战演示死循环程序的完整排查过程,涵盖负载区分、线程状态分析、中断与软中断识别等关键场景,附速查表,实现高效、可复用的性能问题诊断。

2026-11-10 09:20:34 1079

原创 Linux 进程和线程到底有什么区别?从 fork、clone 到内核调度一次讲透

进程和线程有什么区别?这是 Linux 面试里出现频率最高的问题之一。大多数人能背出标准答案:进程是资源分配的基本单位,线程是 CPU 调度的基本单位;进程有独立地址空间,线程共享地址空间。Linux 内核里到底有没有“线程”这个结构?fork和底层差在哪?为什么说 Linux 的线程本质上是“轻量级进程”?线程切换一定比进程切换快吗?这篇文章从内核数据结构讲到代码验证,把这几个问题一次讲清楚。一句话结论与对比表内核视角:Linux 其实不区分进程和线程。

2026-11-10 09:19:22 201

原创 Linux 磁盘满了怎么排查?df / du / find 三步定位(附 inode 耗尽与“已删除未释放”两大坑)

本文针对Ubuntu 24.04下“磁盘满”问题,提供标准化排查链路:先用df -h定位分区,df -i检查inode耗尽;再通过du -xhd1逐层下钻,结合find抓大文件或旧日志;最后用lsof +L1发现已删未释放的文件。避免盲目删除,确保精准定位与安全清理,适用于运维、后端及嵌入式开发场景。

2026-11-10 09:15:23 1255 2

原创 XDMA 用户态直驱:寄存器 mmap + doorbell + 完成轮询,把系统调用移出热路径

用户态直驱通过将XDMA寄存器、doorbell及完成标志区域mmap至用户态,实现零系统调用、零内核切换的高效传输。核心在于:映射时注意权限与内存属性(如WC用于doorbell),写描述符后使用mfence确保顺序,轮询完成标志时加acquire屏障与超时机制。缓冲区需用大页、锁定并预热页表,物理地址转换在初始化阶段完成,必要时依赖轻量内核辅助建立IOVA映射。全链路规避不可预测开销,满足3μs级延迟预算。

2026-11-09 08:30:00 230

原创 用 TSC 量出 10 纳秒:隔离核指令级抖动的测试方法与完整代码

本文介绍通过背靠背读取RDTSC指令测量核隔离质量的方法:在紧凑循环中连续执行两次rdtsc,统计差值(delta)的波动。任何中断、IPI、调度抢占等都会导致delta突增,形成“指令级抖动”。该方法依赖TSC的恒定频率与单调性,比clock_gettime更精确。代码实现包含直方图分析与大抖动事件统计,可有效识别核干扰。关键点包括使用lfence/rdtscp确保时序对齐、避免循环内非必要操作,并以对数刻度展示分布。需确保CPU支持constant_tsc。

2026-11-08 13:00:00 9

原创 nohz_full 还不够:Linux 隔离核上残留的 5 类干扰,以及怎么逐项清掉

nohz_full 仅停止隔离核的周期性时钟中断,无法消除五类残留干扰:1Hz 残余 tick、未隔离硬件中断、核间 IPI、RCU 回调及不可控的 SMI。尽管通过 isolcpus、rcu_nocbs、IRQ 亲和绑定等手段可大幅降低干扰,但 IPI 与 SMI 仍无法由内核参数解决。真正实现微秒级确定性需结合内存绑定、BIOS 调优(如禁用 SMI、限制 C-state)及 TSC 抖动验证。标准 Linux 无法保证 10ns 级指令确定性,需内核改造方可达成。

2026-11-08 09:45:00 251

原创 PCIe DMA 热路径的五个固定开销:host 内存 flag、IOMMU passthrough、长驻映射、NUMA 亲和与 ASPM

3KB 数据在 PCIe Gen3 x8 上仅需 0.45μs 传输,但端到端延迟达 3μs,主因是五个可消除的固定开销:MMIO 完成轮询、IOMMU 翻译、频繁 map/unmap、跨 socket 访问与 ASPM 唤醒。通过改用 host 内存 flag 轮询、启用 IOMMU passthrough、长驻映射缓冲区、NUMA 亲和布局及禁用 ASPM,可将延迟压至 <3μs,且各优化互不冲突,协同生效。

2026-11-07 11:30:00 240

原创 Xilinx xdma.ko 一笔传输要走 7 个环节:PCIe DMA 的延迟账本逐项拆解

Xilinx 官方 xdma.ko 驱动在小包 DMA 传输中,因系统调用、锁页、IOMMU 映射、中断唤醒等 7 个环节导致延迟高达几十微秒。通过将控制面下放用户态、完成面改用内存标志轮询、数据面静态注册缓冲区,可将路径压缩至仅 3 个环节:用户态 doorbell 写 → DMA 执行 → 轮询读标志。此举彻底消除中断与调度不确定性,实现 3μs 级确定性延迟,核心在于剥离软件抖动,实现真正低延迟。

2026-11-07 09:00:00 208

原创 PCIe XDMA 读取 3KB 端到端 <3μs:一次工业级延迟实测的方法、数据与结论

在x86多核服务器+PCIe Gen3 x8+FPGA XDMA配置下,单笔3KB设备→主机内存的DMA读取,端到端最大延迟**< 3μs**。本文强调:工业实时系统应关注worst-case延迟而非平均值;端到端时间需包含doorbell触发、完成标志观察等软件路径(T0→T3);测试采用RDTSC打点、长时高负载压测、逐窗监控最大值漂移,确保结果真实可信。该性能支撑高速采集、机器视觉等微秒级控制环路设计,核心价值在于可直接纳入时序预算,无需预留安全余量。

2026-11-07 08:00:00 688

原创 望获OS实时XDMA驱动:3KB数据读取最大3微秒

望获OS基于x86多核服务器平台,通过用户态直驱、实时核完全隔离、IOMMU直通、NUMA亲和与电源管理驯化等技术,实现PCIe DMA 3KB读取端到端最大延迟小于3微秒。该方案消除中断、调度、系统调用等不确定性,结合TSC抖动测试验证10纳秒级指令确定性,使工业数据传输进入微秒级确定性时代,支撑高速采集、FPGA协处理与机器视觉等实时场景的精准时序预算。

2026-11-06 19:00:00 128 1

原创 CLOCK_MONOTONIC、REALTIME、TAI、BOOTTIME:实时系统该用哪个

本文基于 Linux 6.6 内核源码,系统梳理 clock_gettime 等时间接口的六类时钟语义差异,揭示“选错时钟”导致的严重逻辑错误。核心结论:CLOCK_MONOTONIC 受 NTP 频率调整影响,非恒速;MONOTONIC_RAW 才是真正不受校正的原始计时器。提出实用判据:“对齐时间用 REALTIME/TAI,测时长用 MONOTONIC,比偏差用 MONOTONIC_RAW”,可有效避免因时钟误用引发的超时失效、卡死等隐蔽故障。

2026-11-06 13:25:22 286

原创 hrtimer 的实现:从 clocksource 到 clockevent 的完整时间链路

本文梳理 Linux 6.6 内核中定时器机制的核心链路:clocksource(读时间)与 clockevent(设闹钟)是两条独立硬件路径。clocksource 通过 rdtsc 等指令提供高精度计数,但受 mult/shift 精度损失、回绕(max_idle_ns)及 TSC 同步问题影响;clockevent 负责触发中断,其 min_delta_ns 限制了最短定时间隔。二者协同支持 hrtimer 实现精准延时。clocksource_watchdog 每 500ms 校验稳定性,防止时间漂

2026-11-06 13:21:33 283

原创 内存调优速查表:21 个参数、9 条排查路径与八个常见误判

本文为 Linux 6.6 内核 vm.* 参数快速定位指南,聚焦实时系统调优。按功能分为四组:水位与回收(调 min_free_kbytes、watermark_scale_factor)、脏页回写(设 dirty_ratio=5~10)、分配与 OOM(overcommit_memory=2、oom_kill_allocating_task=1)、NUMA 与碎片(禁 THP、调 page-cluster=0)。辅以 cgroup v2 内存限流监控(memory.events 查 throttle)及

2026-11-06 09:30:00 1669

原创 mlockall 与内存预触实操手册:启动序、大页、NUMA 绑定的完整清单

本文基于 Linux 6.6 + glibc 2.35,阐述实时进程内存锁定的启动期优化策略。核心结论:mlockall() 放在 main() 第二行错误,应严格遵循“读配置→绑核→分配内存→预触→锁页→设优先级→关日志”的顺序。重点强调 MCL_CURRENT 需在内存分配后调用,且必须配合逐页写入预触;MCL_FUTURE 易导致 mmap 失败,需谨慎使用。同时指出 glibc 堆管理参数(如 M_MMAP_THRESHOLD、M_ARENA_MAX)对缺页行为的影响,建议固定阈值、限制 arena

2026-11-06 08:30:00 712

原创 缺页、页表与内存回收:为什么缺页是实时系统的头号杀手

一次缺页在内核中同步处理,不受优先级保护,耗时跨数量级,且可能引发同步阻塞或优先级倒挂。四种缺页类型(匿名、COW、file minor/major)成本差异显著,其中minor fault因持有mmap_lock导致完全不可抢占,major fault虽可睡眠但造成优先级倒挂。页表遍历与TLB未命中加剧延迟,大页降低访存次数但放大单次开销,而页表修改触发全局TLB shootdown,引发多核中断风暴。实时系统应避免运行期动态映射,优先启动阶段完成内存布局,以控制最坏延迟。

2026-11-06 08:00:00 675

原创 调度延迟怎么读:cyclictest 参数含义、结果判读与常见误读

本文梳理 cyclictest 2.5 与 Linux 6.6 下的测量口径与判读方法,强调其仅测量“调度器+内核唤醒路径”的延迟,不涵盖设备中断、SMI或端到端控制延迟。核心参数需合理配置:优先级(-p 90~95)、绑核(-a)、锁内存(-m)、使用 clock_nanosleep(-n),避免干扰。输出中应关注直方图形态与溢出数(Overflows)是否为零,以判断数据有效性;Max 值需结合直方图分析,避免误读。关键结论:测有效、懂含义、知下一步查什么。

2026-11-05 13:33:21 258

原创 实时线程优先级设计手册:优先级反转、优先级继承与 PI mutex 的配置要点

实时系统超时主因非优先级过低,而是优先级关系设计缺失。优先级反转会导致高优先级任务无限等待,尤其在无界反转下不可预测。建议使用优先级继承(PI)或天花板(PC)机制,并避免直接使用PTHREAD_MUTEX_INITIALIZER。应用线程优先级宜控制在1~49,留出5~10间隔以利扩展。关键锁应通过pthread_mutexattr_setprotocol配置PI,确保可调度性。优先级设计需结合中断响应与控制周期,最终通过静态分析与实测验证。

2026-11-05 13:31:05 330

原创 SCHED_FIFO 与 SCHED_DEADLINE 的内核实现:两张运行队列、两套带宽控制

本文基于Linux 6.6源码,剖析实时调度的核心机制:调度类链式结构决定任务优先级,rt_rq通过位图与100条链表实现O(1)选任务,SCHED_FIFO与SCHED_RR共用队列但入队策略不同。关键点在于:FIFO延迟不可控因队列堆积;DEADLINE准入拒绝源于带宽控制;sched_rt_runtime_us是带宽配额核心参数,配置不当将导致系统失稳。所有结论均可在源码中验证,不依赖实测数据。

2026-11-05 13:28:45 274

原创 中断延迟的 5 个来源:关中断、关抢占、软中断、IRQ 风暴、SMI 的逐项验证清单

本文剖析实时延迟的五大来源:硬件传播、关中断、关抢占、软中断积压与调度延迟,强调需拆解为可测量的独立路径。通过 irqsoff、preemptoff 等 tracer 工具,结合 /proc/softirqs 采样,实现对每段延迟的精准定位与量化。指出关中断与软中断是主要瓶颈,而 SMI 固件延迟不可消除,决定了系统抖动下限。核心思想:将“玄学”延迟转化为可排查的清单,提升系统可预测性。

2026-11-05 08:15:00 340

原创 /proc/interrupts 与 smp_affinity:把设备中断绑定到隔离核的完整操作手册

本文详解CPU隔离中常被忽视的中断亲和性配置问题。指出仅设置isolcpus无法阻止中断干扰隔离核,核心在于未配置中断亲和性。通过分析/proc/interrupts理解中断分布,重点讲解/proc/irq/N/smp_affinity_list等文件的使用,强调应以effective_affinity验证实际绑定效果,并提供x86_64与ARM64平台差异、位掩码与列表互换方法及实用命令,确保中断精准绑定至目标核,实现真正低延迟隔离。

2026-11-04 18:00:00 1921

原创 中断线程化的内核路径:从 request_threaded_irq 到 irq/N-name 线程的完整调用链

本文深入解析 Linux RT 补丁中中断线程化的实现机制,从 request_threaded_irq() 入手,梳理硬中断上下文的三大约束(无 task、关中断、不可抢占),阐明为何需将中断处理移至线程。详解四种回调组合模式,重点剖析 handler=NULL + thread_fn 的纯线程化路径,揭示 irq_default_primary_handler 的唤醒作用。指出线程在 __setup_irq() 时即创建,依赖 IRQF_ONESHOT 保证中断可恢复,强调 IRQF_NO_THREAD

2026-11-04 13:41:25 273

原创 PREEMPT_NONE、VOLUNTARY、PREEMPT、PREEMPT_RT 四种抢占模式对照表

本文梳理 Linux 内核五种抢占模式(PREEMPT_NONE、PREEMPT_VOLUNTARY、PREEMPT、PREEMPT_RT、PREEMPT_DYNAMIC)在延迟、吞吐、适用场景等12个维度的差异。强调选错模式可能导致延迟差两三个数量级,如运动控制用 PREEMPT_NONE 会严重抖动,而数据采集用 PREEMPT_RT 则吞吐下降5%~20%。特别指出 PREEMPT_DYNAMIC 不等于 PREEMPT_RT,运行时切换需谨慎。建议根据负载特性选择:高吞吐选 NONE,交互式选 PR

2026-11-04 11:17:58 1867

原创 确认实时补丁真的生效:7 个检查点逐条验证

本文基于Linux 6.6内核(含CONFIG_PREEMPT_RT)梳理了判断实时系统是否真正生效的7个检查点,重点揭示“假RT”四大常见误区:启动内核非RT、仅开启CONFIG_PREEMPT、sched_rt_runtime_us未调优、驱动禁用中断线程化。通过验证CONFIG_PREEMPT_RT=y、运行时抢占模式、中断线程化状态(ps -eLo)、中断注册与线程数对比等关键指标,确保系统具备真正的硬实时能力。强调必须全项通过才可进入调优阶段,避免因配置误解导致实时性失效。

2026-11-04 11:16:05 356

原创 PREEMPT_RT 的五类核心改动:从 spinlock 到 rtmutex 的源码级拆解

本文基于 Linux 6.6 内核源码,分析 PREEMPT_RT 补丁如何通过将自旋锁、中断等不可抢占段改造为可调度线程,实现实时性提升。核心思想是:不加速内核,而是将“不可抢占”变为“可优先级调度”。关键改动包括:spinlock_t 改为基于 rt_mutex 的可睡眠锁,中断与软中断转为线程执行,保留 raw_spinlock_t 用于原子上下文。此举使高优先级任务不再因低优先级持有锁而空转,通过优先级继承缩短等待时间。但代价包括短临界区变慢、跨 CPU 迁移风险及上下文限制,需谨慎使用。

2026-11-04 11:13:13 2000

原创 从实验室到量产:机器人实时系统的 12 项验收清单

本文针对机器人实时系统验收难题,提出12项可执行测试清单,按时序、压力、故障、时间四维度组织,明确“测什么、怎么测、合格线”,强调以分位数替代平均值、真实负载、长时运行与回归基线。核心观点:验收非一次性动作,而是建立可重复、可追溯的量化基线。文末附可领取的验收模板,助力团队从“凭感觉”转向“用数据说话”。

2026-11-02 09:15:00 653

原创 国产芯片能撑起人形机器人的实时控制吗?

国产芯片可支撑人形机器人实时控制,但需满足三大前提:正确隔离核心与中断、管控电源管理策略、验证关键驱动稳定性。文章提出五维评估标准、三项可复现测试及A/B/C三档判读线,强调“配置决定结果”,呼吁以统一标准和完整配置数据取代主观争议,推动选型科学化。

2026-11-02 08:45:00 334

原创 从传感器到关节出力:一条实时链路的完整延迟预算

本文构建了从传感器采样到关节力矩生效的完整延迟时间线,拆解为八段链路,明确各环节延迟量级与抖动来源。提出“倒着分预算、留30%余量、用分位数定义”三大原则,区分体验时间线与控制时间线,指导团队精准定位瓶颈。通过异步化、频率分层等方法实现高效优化,并提供“延迟瀑布图”绘制四步法(统一时钟、打点、真实负载、出图),强调预算表需版本管理、责任到人。最终给出八条自查清单,助力团队建立可落地的实时系统延迟治理框架。

2026-11-01 12:00:00 356

原创 ROS 2 能不能用在人形机器人量产上?

ROS 2 可量产,但不可“原样上”。其核心优势在于快速搭建系统,但默认配置难以满足实时性要求。通过五环节链路分析——QoS优化、共享内存传输、Executor调优、线程调度与资源管理——可将延迟降至百微秒级。然而,真正实现硬实时需绕过ROS 2执行器,构建独立的确定性控制环。结论:将ROS 2定位为神经系统,而非脊髓,关键控制逻辑应脱离其调度体系,结合预分配、零拷贝与隔离核等手段,方能在量产中兼顾效率与确定性。

2026-11-01 09:45:00 336

原创 人形机器人:RTOS 双系统还是实时 Linux 单系统?

典型的双系统架构是:一颗 SoC 的两个核(或两块芯片),一侧跑 RTOS(或裸机程序、实时核固件),负责运动控制、总线主站、安全逻辑;另一侧跑 Linux,负责感知、AI 推理、任务规划、人机交互。两侧通过共享内存、核间中断或网络通信交换数据。实时域和非实时域由操作系统边界隔开。RTOS 侧的内核极小、行为可预测;Linux 侧随便折腾,除非把通信链路搞挂。

2026-10-31 09:45:00 528

原创 32 个关节、1ms 总线周期:EtherCAT 的周期预算到底怎么算

1ms EtherCAT周期中,32轴典型报文约1KB,串行化时间达80µs(100Mbps下每字节80ns),叠加从站转发、主站处理与控制计算,总耗时约300–600µs,余量仅剩30%。轴数超64、频率升至4kHz、PDO增重或拓扑复杂,均易超限。解法包括精简PDO、解耦控制频率、升级至EtherCAT G、双环分段及主站优化。人形机器人推荐EtherCAT:兼顾同步精度与成熟生态;CAN FD仅适用于少轴辅助;以太网/TSN为未来方向但需谨慎落地。核心原则:先算账,再选型。

2026-10-31 08:45:00 227

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除