- 博客(81)
- 收藏
- 关注
原创 【必读】拒绝黑盒:一套可验证的 EtherCAT 主站 FPGA 开发方法论(专栏导读)
本专栏本专栏导读系统梳理 EtherCAT 主站 FPGA 开发路线,从协议帧解析、FMMU/PDO/SDO 机制,到 DC 分布式时钟、ModelSim 时序仿真、Testbench 验证,再到 ARM+FPGA 软硬协同与多模块联调。内容来自实际主站开发复盘,拒绝开源栈黑盒调用,重点呈现可验证的底层实现思路、调试方法和工程化 Checklist,适合从事工业以太网、运动控制、FPGA 逻辑与嵌入式开发的工程师阅读。
2026-10-04 10:54:41
559
原创 芯片里藏着看不见的时钟?一文彻底搞懂 FPGA 时序约束的“隐藏杀手”
你是否遇到过设计逻辑极其简单,却死活跑不到目标频率的抓狂时刻?明明代码逻辑毫无问题,Vivado 报告却一片红(Setup 违例)?或者明明路径很短,却依然报红(Hold 违例)?这背后很可能隐藏着“时钟不确定性(Uncertainty)”这个隐形杀手,以及 FPGA 底层物理布局的博弈。本文将带你穿透枯燥的公式,结合 Vivado 的 Timing Report,从物理底层揭秘 FPGA 时序的终极真相,并提供一套拿来即用的时序收敛(Timing Closure)工程实战方法论。
2026-11-09 20:31:58
83
原创 从CDC到IO Delay:FPGA时序约束的避坑指南与工程实践
本文系统梳理 FPGA IO 时序约束中 input delay 与 output delay 的计算公式,对比系统同步与源同步的本质差异,并给出芯片手册未提供 Tco 参数时的工程处理方法
2026-11-07 16:25:10
358
原创 跨时钟域与时序约束:从亚稳态到 SDC 的完整工程方法论
很多 FPGA 工程师对 CDC 和 SDC 的理解停在"打两拍 + 写个 create_clock"。但真正决定一个多时钟系统能不能稳定跑起来的,是你能不能把**"信号在传什么信息"**和**"工具该怎么分析这条路径"**这两件事同时讲清楚。
2026-11-07 15:24:54
442
原创 抓包分析 EtherCAT 初始化:从广播探测到进入 OP,逐帧字节明细大公开
本文详述SOEM库实现EtherCAT主站初始化的逐帧字节细节,涵盖从站探测、复位默认值、逐站编址至同步配置等9个阶段共14帧报文。每帧按以太网头、EtherCAT帧头、数据报头及数据字段解析,明确命令码、地址偏移、长度与WKC处理规则,重点说明小端字节序下的内存直写机制与帧结构计算(总长=28+len),并提供关键寄存器操作示例(如清零FMMU、SM、DC参数等),为嵌入式开发提供精准的协议调试依据。
2026-10-29 10:02:55
301
原创 EtherCAT 主站上电全过程揭秘:初始化报文全流程与工程隐患速查
EtherCAT主站初始化,从上电到操作态(OP)共分四阶段:①网卡初始化(不发帧);②探测从站(4帧,复位并统计数量);③全局配置(13帧,复位寄存器、设置控制权);④逐站枚举与EEPROM读取(每站6+帧),通过流水线方式读取厂商ID、产品码等信息。关键帧包括广播写(BWR)、定点读写(FPWR/FPRD)、轮询等待及条件触发机制,确保从站地址分配与参数配置正确,最终完成主站初始化。
2026-10-29 09:47:10
281
原创 SOEM 扫出从站之后,工业现场还缺哪几层防护
本文基于 SOEM(Simple Open EtherCAT Master)从站初始化源码,结合 EtherCAT ETG.1000 规范与工业现场实战经验,对“逐站枚举与地址分配”过程进行了一次深度审计与加固思考
2026-10-23 08:29:48
264
原创 逐字节拆 EtherCAT:扫描、SDO、PDO 映射、DC 同步的完整报文实例
六帧真实报文、逐字节拆解,覆盖扫描、SDO、PDO 映射、周期 PDO 与 DC 同步全过程,附可复现构造脚本与排错速查表,带你把 EtherCAT 主站从 Init 跑到 OP。
2026-10-21 20:35:43
337
原创 SOEM 初始化流程深度解析 —— 从原始套接字到 OP 态的每一步寄存器动作
本文按代码执行顺序拆解 SOEM 主站的启动链路:ec_init() → ec_config_init() →ec_config_map() → ec_configdc() → 状态机推进 → 周期数据交换。对每一个子步骤给出「读/写了哪个 ESC 寄存器、用什么命令、为什么必须这样做、失败时现象是什么」
2026-10-18 19:56:00
297
原创 字节发完就走:EtherCAT 命令通道仲裁器的 FPGA 实现
ecat_arb_min 是面向FPGA EtherCAT主站的命令通道门控模块,核心解决周期PDO与非周期命令帧共享发送通道的时序冲突。通过tx_frame_done精准释放总线、五重放行条件(含动态Slot校验)及超时兜底机制,确保PDO绝对优先。创新采用“发送期即占用期”理念,结合诊断信号(pdo_delayed、cmd_starved、arb_timeout)实现运行时自检,显著提升多轴运动控制中命令调度的可靠性与可维护性。
2026-10-18 15:51:11
353
原创 当“最终会稳定“这个假设崩塌 —— 一段 47 行代码,如何把“从站数变了没有“这个问题拆成三级
本文剖析了工业以太网中从站数量实时检测的深层挑战。传统防抖算法依赖“信号终将稳定”等假设,在现场强干扰、接触不良等场景下失效,导致误判或标定风暴。核心问题在于:比较基准错误(用前一拍而非已确认值)、计数单位错配(时钟周期非PDO周期)。文中提出两级改进方案:第一级以“已确认稳定值”为基准滤除毛刺,保留跳变证据供振荡检测;第二级采用PDO周期为单位计数,确保稳定性判断与物理变化尺度一致。关键启示是:算法必须基于真实信号特性重构,而非理想化假设。
2026-10-18 15:46:35
170
原创 当我在 EtherCAT 主站 FPGA(命令帧执行引擎) 里修了 20 个 BUG 之后,我学到了什么
本文复盘 ARM+FPGA 架构 EtherCAT 主站命令帧执行引擎 的设计与调试过程。该模块负责把 ARM 下发的非实时命令打包成 EtherCAT datagram,在不干扰周期 PDO 帧的前提下塞进总线间隙。
2026-10-11 20:56:17
351
原创 EtherCAT 主站拓扑判定的三级防护:从去抖到振荡检测
做工控协议栈,最大的挑战往往不是协议本身,而是如何在复杂的工业现场保证系统的绝对可靠。本文以 EtherCAT 主站的拓扑判定为例,拆解了从“能通”到“真的通了”背后的三层防线。为什么工业系统不允许“容忍少量抖动”?一个简单的计数器里,藏着实验室代码与工业级代码最本质的区别。
2026-10-11 19:03:10
240
原创 OP 模式下插入 SDO 帧:SOEM 与 IGH 的机制对比和四种工程解法
OP 态插 SDO 不是"能不能"的问题,而是"怎么插才不撑破帧、不卡住周期"——IGH 的异步 request 开箱即用,SOEM 得自己把异步那层补上
2026-10-10 12:33:44
151
原创 配完 PDO 却进不了 OP?——EtherCAT PDO 映射的六个真相
写给正在调 EtherCAT 主站(SOEM / TwinCAT / IgH)的你,配完PDO却进不了OP的真相
2026-10-06 23:26:30
196
原创 把 EtherCAT 初始化从 FPGA 搬到 ARM:命令通道的接口设计与11个坑
在 ARM+FPGA 架构的 EtherCAT 主站中,把从站初始化序列从 FPGA 状态机搬到 ARM,是"换伺服不用重综合"的关键一步。但这不等于可以拆掉 FPGA 侧的帧传输逻辑。本文讲清楚:搬迁之后 FPGA 还剩什么职责、命令通道的接口该怎么设计、以及实践中容易踩的坑。全文不贴源码,只讲设计思路与接口约定。
2026-10-04 19:47:46
516
原创 EtherCAT DC 分布式时钟同步的 ModelSim 仿真:从帧模板到从站行为建模
以 32 从站线型拓扑为例,讲解 EtherCAT DC 分布式时钟同步的 ModelSim 仿真环境搭建。剖析 tb 三大核心设计:74 拍一帧的发送节拍模型、2 拍/8000 拍的应答超时模型、基于 DL Status 0x0110 的从站行为建模(末从站识别)。指出末从站建模错误是"sync_done 出不来"的头号原因,并给出 fork/join 白等、白盒建模、组合逻辑竞争三处隐患的改进方案。附波形 do 文件与 15 条 checklist。
2026-10-02 23:01:11
431
原创 EtherCAT DC 节拍发生器 testbench 全公开:1179 行源码 + 9张 ModelSim 截图
本文是《EtherCAT DC 节拍发生器 ModelSim 仿真踩坑实录》的姊妹篇,完整公开配套 testbench 源码并逐段解析。文章按 tb 的实际结构展开:时钟与复位模型、DUT 参数覆盖、内部信号别名、DC 时间模型、帧应答模型、诊断设施、事件驱动等待任务库、DC 跳变注入任务,每段源码都说明它解决什么问题、在波形上长什么样。
2026-10-02 13:24:49
524
原创 EtherCAT主站 DC 节拍发生器 ModelSim 仿真踩坑实录:从 period_meas=60000 到 26 个测试全绿
复盘 EtherCAT DC 节拍发生器 ModelSim 仿真中的七个典型陷阱:时钟整数除法截断、帧预算不足、激励注入时钟沿竞争、告警阈值误算、单拍脉冲漏检、锁定帧序偏差、编译与编号漂移。给出帧预算公式、事件驱动等待等 testbench 方法论与 14 条 checklist,适合做 EtherCAT 主站 FPGA 实现与硬实时仿真的工程师参考。
2026-10-02 12:46:39
423
原创 拒绝SOEM黑盒!死磕EtherCAT主站:ARM+FPGA架构、DC同步与状态机修复等,50+篇实战开发文档全公开
ARM+FPGA/ZYNQ架构的ethercat主站开发过程中的核心文档目录,涵盖了从理论分析、FPGA逻辑设计到ARM端控制的全流程,重点解决了多个工业级痛点。
2026-09-28 12:46:53
264
原创 改周期就掉线?EtherCAT 主站 DC PDO 节拍发生器:工业级DC 预测器、重锚控制器与周期平滑切换的硬核设计
本文基于一个真实模块的七轮代码迭代,所有故障推演都带具体数字,不讲故事,直击痛点,工业级硬核设计!
2026-09-23 13:48:27
215
原创 从抓包到手算:一文讲透 EtherCAT 的 PDO、SDO、FMMU 与完整报文(附逐字节拆解)
EtherCAT 最让人头大的不是"它快",而是 PDO / SDO / FMMU / SyncManager 这四个东西搅在一起——看文档觉得懂了,一抓包就懵。本文从以太网帧的最外层开始,一层层剥到 SDO 的命令字,给出 **15 个逐字节手算的完整报文**(FCS 全部实算,可直接粘进 Wireshark 对照),并回答两个高频争议问题:站地址 `0x03E9` 能不能改?过程数据 RAM 地址是不是固定的?
2026-09-22 14:52:59
373
原创 深入 EtherCAT 主站核心:高精度 PDO 发帧节拍发生器的设计与实现
EtherCAT 同步总对不齐?可能是你的 PDO 发帧节拍发生器没调好,告别周期抖动:手把手教你设计 EtherCAT 主站 PDO 节拍发生器
2026-09-19 13:36:24
421
原创 EtherCAT PDO / SDO 帧结构详解(逐字节拆解 + 完整实例)
本文从以太网帧第 0 字节起,逐字节拆解 EtherCAT 的 PDO 与 SDO 报文结构,覆盖子报文头位域、SyncManager / FMMU 配置寄存器、PDO 映射对象字典,以及 SDO 的 Mailbox / CoE / 命令字三层封装,并给出可直接复现的完整报文实例。
2026-09-18 09:06:12
336
原创 EtherCAT EEPROM访问三步序列 — 帧数据与目的详解
本文档详细分析 EtherCAT 主站初始化过程中,通过 ESC(EtherCAT Slave Controller)寄存器访问从站 EEPROM 的三步序列(状态3→4→5),以及访问结束后的控制权归还(状态15)。每个状态对应一帧完整的46字节数据,标注每个数据段的生成模块。
2026-09-17 17:02:04
231
原创 32 轴伺服初始化全流程拆解(附调用链与帧结构)
本文基于SOEM API实现ARM+FPGA架构下32轴CiA402伺服的完整初始化,通过配置周期2ms、DC同步及PDO映射(控制字+目标位置/状态字+实际位置),结合FPGA实现硬件级周期同步与数据交换。关键参数可灵活调整,无需重新综合FPGA,支持看门狗、使能延时等安全机制,确保高实时性与系统可靠性。
2026-09-16 18:55:27
345
原创 搞定100ns抖动:ARM+FPGA混合EtherCAT主站实战方案
本方案采用FPGA与STM32混合架构,FPGA负责硬实时的周期性帧装配与收发,STM32通过FMC映射的DPRAM透传数据,实现100ns级抖动控制。
2026-09-16 12:49:16
109
原创 重磅:EtherCAT 周期校准与传播延迟测量详解1
本文基于SOEM源码分析FPGA实现EtherCAT DC时钟同步的完整机制,详述上电初始化流程:主站读取从站DC能力,广播清零端口时间戳,逐个计算并写入偏移(0x0920)与传播延迟(0x0928),经15000次静态补偿后进入同步完成态。通过状态机控制各阶段,确保多轴系统精确同步,运行中由从站ESC硬件PLL自动补偿漂移,显著降低抖动,适用于高精度运动控制场景。
2026-09-11 12:51:18
130
原创 从 7 帧数据看 EtherCAT 主站初始化:DC 同步机制的字节级剖析
最近在实现EtherCAT 主站 FPGA IP 核的初始化,结合 EtherCAT 规范,发现这 7 帧恰好串起了主站进入 OPERATIONAL 前的 DC(Distributed Clocks,分布时钟)同步完整流程——从总线复位、能力探测、延时测量,到偏移读取、动态/静态补偿,再到 ARMW 核心同步帧。
2026-09-09 12:49:44
541
原创 详细剖析ethercat中容易混淆的三种抖动
周期抖动源自主站调度,决定发送间隔稳定性;同步抖动关乎从站间SYNC0对齐精度,可达纳秒级;从站输出抖动由硬件决定。另有伪抖动“时钟漂移”,由主从时钟频率偏差导致周期性相位跳变,表现为电机规律性抖一下,需调DC补偿,区别于随机调度抖动。
2026-09-01 14:48:59
354
原创 soem之ec_receive_processdata() 深度分析
接收函数流程、WKC处理(特别是LRW/LWR的WKC×2补偿)、expectedWKC计算公式等。
2026-08-31 20:45:21
172
原创 soem之ec_send_processdata() 深度分析
SOEM协议栈中发送过程数据帧的实现,包括分组、重叠模式、逻辑地址、LRD/LWR/LRW分支、DC同步帧、分段循环和索引栈等。摘要要简洁涵盖主要流程和关键机制。
2026-08-31 20:30:13
191
原创 读懂 EtherCAT 主站源码:SOEM 分层架构与 STM32H7+FPGA 移植实战
基于SOEM在STM32F407上理解五层架构,移植到STM32H7+FPGA只需修改两个函数(bfin_EMAC_send/recv),其余保留。简明扼要。
2026-08-31 18:51:03
559
原创 FPGA 高扇出信号优化指南:复位不走全局网络怎么办?
本文针对FPGA设计中高扇出信号(如复位信号)的布线问题,提出4种解决方案:1)使用BUFG全局缓冲器强制信号走全局网络;2)采用异步复位同步释放(ARSR)技术优化复位信号;3)通过综合属性(MAX_FANOUT/GLOBAL)指导工具自动优化;4)手动寄存器复制降低单点扇出。这些方法可有效解决因局部布线导致的驱动能力不足、时钟偏移和布线拥塞问题,并附有完整的Verilog实现代码。文章建议优先考虑ARSR方案,在资源受限时可结合属性约束与寄存器复制技术。
2026-08-19 20:53:11
209
原创 FPGA RGMII时序约束解析:彻底讲透Input/Output Delay计算公式与工程避坑
本文详细解析了FPGA项目中RGMII千兆以太网接口的时序约束方法。针对125MHz DDR双沿采样带来的8ns极短周期挑战,文章从PHY芯片参数、PCB延时出发,推导出RX/TX方向完整的时序计算公式,并给出可直接用于量产项目的SDC约束代码。重点强调了DDR接口必须使用-add_delay参数进行双沿约束,避免隐性时序错误。同时分析了DDIO硬件原语的特性,指出普通寄存器实现DDR采样的弊端,为高速以太网接口设计提供了规范的时序收敛方案。
2026-08-18 19:42:10
674
原创 FPGA RGMII 接收深度剖析:DDIO‑IN、底层原语、PLL 移相方案对比
本文针对Intel Cyclone系列FPGA中RGMII千兆接收设计的常见问题进行技术解析。文章指出工程师常踩的三大坑点:直接使用negedge寄存器、混淆invert_input_clock参数含义、误用PLL双相时钟模拟DDR采样。通过对比ALTDDIO_IN IP与底层DDIO原语的关系,详解了硬件本质与工程风险,指出直接使用negedge寄存器会导致时序恶化,而PLL双时钟方案虽然可行但时序收敛难度大。文章给出四种实现方案对比,推荐量产项目优先采用ALTDDIO_IN IP方案,并提供了完整的SD
2026-08-18 14:32:12
320
原创 RKNN‑Toolkit2 模型转换全流程
本文详细介绍了瑞芯微RKNN-Toolkit2模型转换工具的使用方法。该工具支持将PyTorch、ONNX、TensorFlow等主流框架训练的模型转换为.rknn格式,部署到RK3588等瑞芯微NPU硬件上。文章重点讲解了模型转换的6大步骤:初始化RKNN对象→配置模型参数→加载原始模型→构建量化模型→导出RKNN模型→释放资源。其中详细解析了核心API的功能和关键参数设置,包括预处理配置、量化策略选择等。同时提供了一个完整的PyTorch到RKNN的转换示例代码,并总结了常见问题及解决方案。通过本文,开
2026-08-17 19:51:58
587
原创 rknn demo初试
本文简要介绍了在虚拟机上运行rknn自带yolov5 demo的步骤:1)进入rknn-toolkit2目录下的onnx/yolov5/路径;2)执行python test.py运行程序;3)查看输出结果。文中配有操作过程截图,并预告下节将重点讲解模型转换方法。该教程为开发者提供了快速验证yolov5模型在rknn平台运行的实践指引。(98字)
2026-08-17 19:33:55
43
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅