0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

睿远研究院丨IO-Link规范解读(八):M-Sequence Type 与消息处理状态机

传感器专家网 2025-11-07 16:18 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

上回咱们分解到IO-Link的消息处理模块,消息处理模块就是对每个字节进行初步分析,按照不同的通道交给不同的处理模块来处理,可以认为他是初步的消息分拣机制,合格的消息交给后续处理,不合格的消息直接丢弃,减少后端工作量。

那么今天我们就来深入研究下,消息处理模块中提到的各类M-Sequence,以及主从站的消息处理状态机!

wKgZPGkMgg-AVKHlAAJr-sk1GZ4754.png

1 M-Sequence Type

上回讲到主站发出来的MC和CKT两个报文,其中CKT 前的2bit是指M-Sequence Type,那么这个M-Sequence type到底有啥用,我们看规范里M-Sequence有好多种,到底怎么区分,今天就来好好讲讲。

在规范的A.2.6部分,就详细介绍了关于STARTUP、PREOPERATE、OPERATE三种模式下的M-Sequence Type。

01 STARTUP下的M-Sequence Type

wKgZPGkMghCAbOn-AAAebS1acIE171.png

上图就是STARTUP模式下的M-Sequence Type,规范就定了一种即TYPE_0,1字节,同时规定了其最小recovery time是100TBit。

这个最小的recovery time简单理解为循环时间就行,也就是主站每隔100TBit主动发起数据,这个时间和通讯速率有关系,如果是COM3,则是400多us的时间;如果低于这个时间在规范看来是不合理的。

02 PREOPERATE下的M-Sequence Type

wKgZPGkMghCAYlC5AABRztNVFy4524.png

PREOPERATE模式下,M-Sequence Type 可以有TYPE_0和TYPE_1,TYPE_1又分解为TYPE_1_2和TYPE_1_V,也就是OD字节长度不一样而已;

一般市面上的从站,都是TYPE_1_V类型,字节长度在8字节左右,也有部分是2字节,比如巴鲁夫的某些产品就是2字节。

M-Sequence code就是对他的编码,用于在IO-Link报文中进行传输,可以看到PREOPERATE模式下有4个code可以用。

03 OPERATE下的M-Sequence Type

wKgZPGkMghCAdGz_AACt-L6n7QU572.png

再来看看OPERATE下的M-Sequence Type,其一下子增加了好多code,有21个之多,但大部分都是重复的0,而且没有2和3这两个code,很是奇怪。

那么这么多code怎么来区分呢,它是根据OD的字节和PD字节来区分的。

1~4行:

这里很好辨认,就是OD字节不同,其code也不同,OD的字节只有1,2,8,32四种,没有其他字节选项;

5~13行:

OD都是1个字节(除了兼容1.0版本OD是2个字节外),然后根据PD的字节数,拆分为多个类型,覆盖TYPE_2_1~TYPE_2_V;

14~21行:

根据不同的OD字节,确定不同的code,但都是TYPE_2_V类型。

2 主站消息处理状态机

wKgZPGkMghCAJjeaAAF3HN7P-U8593.png

wKgZPGkMghGAb0uZAASCoEztO2U720.png

3从站消息处理状态机

wKgZPGkMghGAJELKAADA0kD2MYA756.png

wKgZPGkMghGAC_haAAJyRh_JmZo886.png

1

T1

从Inactive_0到Idle_1,通过消息模块的初始化实现。

2

T2

从Idle_1到GetMessage_2,当物理层有中断,接收到一个报文后,触发PL_Transfer事件,在OPERATE状态下动"MaxUARTframeTime"和"MaxCycleTime"定时器

3

T3

持续接收报文,每次接到报文需要重新启动"MaxUARTframeTime"计时器,用于判断下一个消息是否会超时。

4

T4

判断报文接收完毕后,触发”Completed”事件,进入CheckMessage_3状态,重置"MaxUARTframeTime"定时器,直到下次收报文的循环再开启。

5

T5

检查接收的报文是否有错误,如果没有错误则开始发送相关回应的报文,需要调用OD.ind和PD.ind服务。

6

T6

编译并调用PL_Transfer.rsp服务回应报文,此时设备发送响应消息。

7

T7

检查主站发送的报文,如果是Checksum Error,则直接回到Idel状态。

8

T8

检查主站发送的报文,如果不是checksun error ,而是M-Sequence的Type错误,则通过MHInfo(ILLEGAL_MESSAGETYPE)将错误指示给DL-mode处理程序。

9

T9

在GetMessage_2状态下,如果超过了最大MaxUARTframeTime,则返回Idle状态,并重置"MaxUARTframeTime"和"MaxCycleTime"两个计时器。

10

T10

超过MaxCycleTime时间,则通知传感器或者执行器采取相关措施。

11

T11

从站收到MH_Conf_INACTIVE事件,将状态更改为Inactive_0。

结语

本篇内容就先介绍到这里,下期我们开始分解PD和OD处理模块!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • IO-Link
    +关注

    关注

    2

    文章

    204

    浏览量

    20955
  • IO-Link收发器

    关注

    0

    文章

    17

    浏览量

    6327
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    研究院IO-Link规范解读(十五):数据类型详解

    前言 本篇对IO-Link规范的附录F的数据类型做个详细解释,附录定义了  基本数据类型 (Basic Data Types) 和  组合数据类型 (Composite Data Types),并
    的头像 发表于 01-14 18:25 6127次阅读
    <b class='flag-5'>睿</b><b class='flag-5'>远</b><b class='flag-5'>研究院</b><b class='flag-5'>丨</b><b class='flag-5'>IO-Link</b><b class='flag-5'>规范</b><b class='flag-5'>解读</b>(十五):数据类型详解

    研究院IO-Link规范解读(十四):DS模块详解

    前言   上回说到PM模块,那么紧跟着的一定就是DS模块了。DS的全称是Data Storage。虽然DS是很多单词的缩写,在IO-Link领域可是比较神圣的一个模块,还有一个汽车品牌也是DS的缩写
    的头像 发表于 12-23 18:28 9310次阅读
    <b class='flag-5'>睿</b><b class='flag-5'>远</b><b class='flag-5'>研究院</b><b class='flag-5'>丨</b><b class='flag-5'>IO-Link</b><b class='flag-5'>规范</b><b class='flag-5'>解读</b>(十四):DS模块详解

    研究院IO-Link规范解读(十三):参数模块解析

    Manager定义 在IO-Link规范中,特别定义了一个Parameter Manager这个模块,它要负责处理完整的数据检查以及参数的
    的头像 发表于 12-12 21:51 7709次阅读
    <b class='flag-5'>睿</b><b class='flag-5'>远</b><b class='flag-5'>研究院</b><b class='flag-5'>丨</b><b class='flag-5'>IO-Link</b><b class='flag-5'>规范</b><b class='flag-5'>解读</b>(十三):参数模块解析

    研究院IO-Link规范解读(十二):SM模块与CM模块解析

    Manager,负责协调主站的各个应用程序模块,并根据端口状态启动或停止其他应用程序。 1 System Manager模块 System Manager 模块作为IO-Link最核心的模块,承上启下,把从最底层
    的头像 发表于 12-04 18:27 6035次阅读
    <b class='flag-5'>睿</b><b class='flag-5'>远</b><b class='flag-5'>研究院</b><b class='flag-5'>丨</b><b class='flag-5'>IO-Link</b><b class='flag-5'>规范</b><b class='flag-5'>解读</b>(十二):SM模块与CM模块解析

    研究院IO-Link规范解读(十一):ISDU状态机与EVENT事件

    上篇我们介绍了ISDU的典型编码格式和应用案例,本篇我们就来详细介绍下,ISDU的状态机,并把EVENT事件的逻辑,给大家好好解析下。 1主站ISDU状态机 如上图所示,ISDU的状态机的核心
    的头像 发表于 11-29 18:28 4991次阅读
    <b class='flag-5'>睿</b><b class='flag-5'>远</b><b class='flag-5'>研究院</b><b class='flag-5'>丨</b><b class='flag-5'>IO-Link</b><b class='flag-5'>规范</b><b class='flag-5'>解读</b>(十一):ISDU<b class='flag-5'>状态机</b>与EVENT事件

    研究院IO-Link规范解读(十):ISDU详解

    的参数。传感器的各项参数设置都要靠它,它不仅可以设置参数,也可以作为只读参数来读取,甚至可以作为命令,基本是无所不能了。 1 ISDU总览 ISDU与PD数据不同,在请求的状态下才会发起,一般由主站发起相关请求,比如读ISDU和写ISDU。 ISDU的数据可以和PD数据一起传输,即在发送
    的头像 发表于 11-24 10:37 6167次阅读
    <b class='flag-5'>睿</b><b class='flag-5'>远</b><b class='flag-5'>研究院</b><b class='flag-5'>丨</b><b class='flag-5'>IO-Link</b><b class='flag-5'>规范</b><b class='flag-5'>解读</b>(十):ISDU详解

    研究院IO-Link规范解读(七):消息处理模块

    ,特别是固定的协议一般都有协议的报文头和报文尾,根据简单规则过滤该报文是否为合法报文,避免进一步的深度解析,减少MCU的处理压力。 1 M-Sequence定义 11.8 主站与从站的交互,通过一系列的消息来交换数据,因此我们称之为“M
    的头像 发表于 11-01 17:43 9280次阅读
    <b class='flag-5'>睿</b><b class='flag-5'>远</b><b class='flag-5'>研究院</b><b class='flag-5'>丨</b><b class='flag-5'>IO-Link</b><b class='flag-5'>规范</b><b class='flag-5'>解读</b>(七):消息<b class='flag-5'>处理</b>模块

    研究院IO-Link规范解读(六):主从站状态机解析

    前言 书接上文,今天我们就来好好聊聊主从站的DL-Mode状态机,还请各位童鞋前排坐好! 1主站状态机解析 主站的DL-Mode状态机有5个大状态,也是我们很熟悉的 建立通信、开始、预
    的头像 发表于 10-28 17:34 6495次阅读
    <b class='flag-5'>睿</b><b class='flag-5'>远</b><b class='flag-5'>研究院</b><b class='flag-5'>丨</b><b class='flag-5'>IO-Link</b><b class='flag-5'>规范</b><b class='flag-5'>解读</b>(六):主从站<b class='flag-5'>状态机</b>解析

    研究院IO-Link规范解读(三):物理层概览

    前言 物理层是 IO-Link 通信的 “硬件底座”,它直接决定了系统的可靠性、抗干扰能力和部署灵活性。打个比方,就像盖房子,物理层就是地基和骨架,地基不稳、骨架不牢,房子肯定住着不踏实。本期我们
    的头像 发表于 10-21 17:26 3499次阅读
    <b class='flag-5'>睿</b><b class='flag-5'>远</b><b class='flag-5'>研究院</b><b class='flag-5'>丨</b><b class='flag-5'>IO-Link</b><b class='flag-5'>规范</b><b class='flag-5'>解读</b>(三):物理层概览

    IO-Link规范解读(五):数据链路层解析

    前言 本篇就来讲讲IO-Link的数据链路层。 01 链路层总览 数据链路层(Data Link Layers)在整个IO-Link协议栈起到承上启下的作用,通过物理链路在主从站之间传递 消息,其
    的头像 发表于 10-20 18:08 4645次阅读
    <b class='flag-5'>IO-Link</b><b class='flag-5'>规范</b><b class='flag-5'>解读</b>(五):数据链路层解析

    研究院IO-Link规范解读(二):IO-Link通信技术概述

    前言 今天我们继续解读IO-Link 1.1.4规范,本篇文章将给大家介绍IO-Link技术的概览,包含IO-Link命名的含义、主从站交互
    的头像 发表于 09-25 19:25 1347次阅读
    <b class='flag-5'>睿</b><b class='flag-5'>远</b><b class='flag-5'>研究院</b><b class='flag-5'>丨</b><b class='flag-5'>IO-Link</b><b class='flag-5'>规范</b><b class='flag-5'>解读</b>(二):<b class='flag-5'>IO-Link</b>通信技术概述

    研究院IO-Link规范解读(一):技术定义与组织规范

      IO-Link 技术定义与组织规范 从今日起,小将开始长篇连载IO-Link规范解读系列文
    的头像 发表于 09-18 18:17 1435次阅读
    <b class='flag-5'>睿</b><b class='flag-5'>远</b><b class='flag-5'>研究院</b><b class='flag-5'>丨</b><b class='flag-5'>IO-Link</b><b class='flag-5'>规范</b><b class='flag-5'>解读</b>(一):技术定义与组织<b class='flag-5'>规范</b>

    南京工业互联网 IO-link智能传感器通信解决方案

    南京工业互联网有限公司 是一家技术驱动的工业通信及工业物联网解决方案提供商,构建了以IO-Link技术为核心的产品矩阵,提供产品的定制开发、技术服务以及相关解决方案,致力于以标准化、低成本
    的头像 发表于 09-08 18:09 963次阅读
    南京<b class='flag-5'>睿</b><b class='flag-5'>远</b>工业互联网 <b class='flag-5'>IO-link</b>智能传感器通信解决方案

    RASIGHT IO-Link智能传感器通信解决方案

      南京工业互联网有限公司 是一家技术驱动的工业通信及工业物联网解决方案提供商,构建了以IO-Link技术为核心的产品矩阵,提供产品的定制开发、技术服务以及相关解决方案,致力于以标准化、低成本
    的头像 发表于 08-11 17:42 896次阅读
    RASIGHT <b class='flag-5'>睿</b><b class='flag-5'>远</b> <b class='flag-5'>IO-Link</b>智能传感器通信解决方案

    Analog Devices / Maxim Integrated MAXREFDES177 IO-Link通用模拟IO特性/框图

    Analog Devices MAXREFDES177 IO-Link通用模拟IO是一款完备的IO-Link®通用模拟输入-输出 (IO) 参考设计,采用内置集成保护功能的MAX225
    的头像 发表于 06-30 09:30 1035次阅读
    Analog Devices / Maxim Integrated MAXREFDES177 <b class='flag-5'>IO-Link</b>通用模拟<b class='flag-5'>IO</b>特性/框图