前面介绍过启动流程,下面介绍一下IgH的主要设计思想 FSM

当驱动加载完成后就启动了Idle线程,idle线程就开始执行状态机函数

idle线程会一直调用主站的fsm->state函数,在函数中对state函数指针赋值,从而改变fsm->state调用的函数。每当完成一个功能就把下一个功能的函数指针赋值给state,下次执行的就是新的功能函数了,执行完成后会赋值完成状态,通过判断就知道一个流程的完成。

idle线程中还会判断从站的state,执行从站的state,当主站给从站状态机赋值后,从站的状态机也开始执行,同时可以在从站中启动一个扫描的状态机,从站执行这个状态机,等执行完成后,再继续下面流程。

IgH内部的流程基本都是通过状态机实现的,通过控制不同的条件变量来启动不同流程的状态机。有了状态机的概念能帮助更好的阅读IgH源码,理解IgH运行流程。

IgH详解十一、IgH(FSM)有限状态机相关推荐

  1. segment routing详解十一问

    文章目录 1 传统mpls存在什么问题? 2 什么是segment routing? 3 什么是sr mpls? 4 什么是srv6? 5 sdn openflow和sr的对比? 6 什么是sr控制平 ...

  2. IgH详解十三、igh支持 hot connect

    一般使用场景不会涉及到EtherCAT总线上的设备支持热插拔情况,当总线上有从站掉线了,一般会当做出现故障处理. 在某些场景下,用户希望一个从站掉线后,不影响其它从站运行,或者可以更换成其它的从站.在 ...

  3. IgH详解 一、概述

    IgH源码地址: EtherLab / EtherCAT · GitLab IgH是开源的EtherCAT主站协议栈,虽然功能上和从站兼容性比不上商业协议栈,但完全能满足学习和普通场景的使用,公司也可 ...

  4. IgH详解十、EtherCAT DC(3)IgH实现

    IgH DC计算 IgH在主站启动后,等待从站状态机扫描完从站后,就开始计算传输延时. ec_master_attach_slave_configs  //主站绑定从站配置信息 通过前面的分析我们知道 ...

  5. IgH详解十五、igh线缆冗余

    线缆冗余是为了应对EtherCAT通信线缆断开的补救措施.通常环形拓扑结构就要用到线缆冗余.如果环线在一些点中断,仍然可以达到两个分支. 如果一个线缆断开,则在断开的线缆两端的帧将分别被处理.因此这两 ...

  6. IgH详解九、IgH PDO配置(2)

    通过ethercat命令行可以看到和pdo相关的几个数据结构,可以表示成下图,主站中也是通过链表这么存储的.如果从站支持邮箱协议,0,1默认给邮箱通信使用. ecrt_master_create_do ...

  7. IgH详解十六、双主站

    IgH支持双主站,只需要在配置文件中,配置双主站的MAC地址即可. 启动主站后,可以看到两个主站. IgH分别创建了EtherCAT0和EtherCAT1两个设备,分别对应双主站. 根据主站个数初始化 ...

  8. IgH详解十、EtherCAT DC(4)主站做参考时钟和从站作参考时钟性能对比

    前面介绍过从站做参考时钟要比主站做参考时钟稳定,通过IgH主站和从站作参考时钟对比下两者的实际差异. 总线上接了两个清能德创的伺服 通过上面两个接口监控0x92c 寄存器的变化 以主站为参考时钟效果如 ...

  9. IgH详解十四、igh添加总线链路状态监测功能

    在工业现场有可能因为复杂的现场环境导致ethercat网络链路出现异常.监测链路的异常是分析总线异常一个很重要的功能. 链路异常有两种情况: 1.网络断开 2.链路受到干扰有错包 EtherCAT从站 ...

最新文章

  1. 卷积神经网络中十大拍案叫绝的操作!
  2. 浅谈windows句柄表
  3. 90%的开发都不太考虑这个,但只要出问题直接公司完蛋!
  4. python pandas读取excel-Python用Pandas读写Excel
  5. Linux系统基本命令之vim编辑器的使用
  6. python自动化pdf报告_[Python] 自动化办公 PDF提取文字、表格、图片
  7. python运维开发培训_运维架构师-Python 自动化运维开发-014
  8. bootstrap中分页、面包屑导航、列表组、卡片、下拉菜单、折叠
  9. 用C#实现图片数据库存储与显示
  10. 徒手撸框架--高并发环境下的请求合并
  11. Python使用matplotlib可视化模拟学生课程分数雷达图
  12. Linux系统如何安装PDF编辑器,在Ubuntu中编辑PDF文件的5种方法
  13. android炫彩跑马灯特效,盘点一下那些自带酷炫跑马灯效果的手机,最后一款几乎没人知道...
  14. clion ros debug clion配置ros环境及调试
  15. python爬取豆瓣电影排行榜函数_摆脱剧荒:教你用Python爬取豆瓣电影最新榜单
  16. 基于MATLAB的语音去噪处理系统
  17. 编写一个函数isprime(n).判断整数n是否为素数.编写程序使用此函数,当输入一个整数时,对它进行判断,当为素数时,输出1.否则,输出0....
  18. 电子纸/墨水屏的一些了解
  19. matlab求四元数夹角,如何求出两个四元数之间的夹角?
  20. 在linux中如何解压.tgz

热门文章

  1. 【原创】吉他指板音名训练器 Guitar Tone Trainer
  2. 淘宝链接中的spm参数
  3. 用U盘安装XP原版(原创教程)
  4. ST-GCN源码阅读
  5. 1997-2016年各省环境污染来信总数
  6. 【BZOJ2864】战火星空
  7. 删除lpt1.css.asp或com8.index.asp这类文件的方法_asp木马无法删除解决办法
  8. 【leetcode】【套路题】476. Number Complement
  9. 上个时代的3A游戏,使用的是什么光照技术?| GAMES104实录 - 现代游戏引擎:从入门到实践
  10. 【MySQL】经典面试题总结-史上最全面试题思维导图总结(2022最新版)