02、SECS-II 通信协议介绍

这篇具有很好参考价值的文章主要介绍了02、SECS-II 通信协议介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这里我们先学习 SECS-II 协议,给我的感受是先学完 SECS-II 协议,再去学习 SECS-I 和 HSMS 协议更加容易理解,所以这里我先介绍 SECS-II 协议。

文章的内容基本上来自参考资料和自己看的文档,若有侵权,请联系删除,谢谢。

1、SECS-II 概述

消息协议用于在主机和设备( Host and Equipment)之间发送 SECS-II 消息。每个SECS-II消息都包含一条主消息( primary message )和一个可选的次回复消息( optional secondary reply message)。这也被称为一个事务(transaction)

02、SECS-II 通信协议介绍

  • Primary: 是由主机或设备发送的SECS-II消息。这里要注意,既可以是 HOST 发送,也可以是 EQUIPMENT 发送,谁先发送就认定为 Primary
  • Secondary: 是一个可选的SECS-II消息是作为对 Primary 的响应而发送的。也就是说,在SECS-II通信中,当接收到主要消息时,可以选择发送一个可选的响应消息。

SECS-II 标准定义了使用如SECS-I、HSMS等传输协议在设备和主机之间交换的消息的形式和含义。

定义了以消息的形式在设备和主机之间传递信息,消息按其流分类,称为Stream。有很多不同流的Stream,每个Stream又包括具体的消息,称为Function

标准还定义了消息的结构,消息由数据项和数据项列表 ( items and lists of items ) 构成。该结构允许自描述数据格式,以保证对消息的正确解释。

SECS-II还规定了事务协议,用于管理消息的交换、分块等,对SECS-II实现提出了一些最低要求。

2、Streams and Functions

2.1 Streams and Functions 基础介绍

SECS-II消息被称为流和函数(Streams and Functions)每条消息都有一个流值(Sx)和一个函数值(Fy)。比如:Stream 1 Function 1,写作:S1F1,并被称为“S1F1”。流是消息的类别,而函数是该类别中的特定消息。

注意:

Stream和Function按照数字进行编号。所有的Primary Message的Function编号为奇数,其对应的Secondary Message(即 Reply Message)的Function编号为偶数且为其Primary Message的Function编号加1。

如果Primary Message不需要应答,则其对应的偶数编号(Primary Message Function 编号加1)的Function不使用,保留。

我们来看一个例子:

02、SECS-II 通信协议介绍

接下来我们一起看看哪些 Streams and Functions 是保留的,那些是我们可以自定义的。

Stream Function Availability
0 0 to 255 系统保留的
1 to 63 0 to 63 系统保留的
64 to 127 0 系统保留的
1 to 63 64 to 255 用户可自定义使用的
64 to 127 1 to 255 用户可自定义使用的

注意:

All function 0’s have a special meaning. They are sent as a reply to an aborted primary message.

上面这句话的意思是:所有Stream中Function编号为0的Message保留,用于中止事务。

2.2 Stream 的分类

上面我们了解了 Streams and Functions 的基础介绍,接下来一起学习下 Stream 的分类。

Stream Catagory 含义
1 Equipment Status 设备状态
2 Equipment Control and Diagnostics 设备控制和诊断
3 Material Status 原料状态
4 Material Control 原料控制
5 Alarm Handling 异常处理
6 Data Collection 数据采集
7 Recipe Management 工艺程序管理
8 Control Program Transfer 控制程序传输
9 System Errors 系统错误
10 Terminal Services 终端服务
11 Host File Services (Deleted) 主机文件服务(已删除)
12 Wafer Mapping 晶片图形布置
13 Data Set Transfers 数据集传输
14 Object Services:对象服务; 对象服务
15 Recipe Management 配方管理
16 Processing Management 工艺进程管理
17 Equipment Control and Diagnostics 设备控制和诊断
18 Subsystem Control and Data 子系统控制和数据

3、事务和会话协议

3.1 事务

事务:是信息交换的基础一个事务由不需要Reply的Primary Message或需要Reply的Primary Message及其Reply Message组成。这里我理解的事务指的是:一次完整的请求或者一次完整的请求响应。

下列是SECS-II在事务层面所规定的要求:

  • 使用S1F2来响应S1F1;
  • 对于接收到的任何设备无法处理的消息,使用Stream 9发送相应的错误消息;
  • 格式化任何其他受支持的消息;
  • 在检测到设备上的事务超时后,向主机发送S9F9;
  • 在收到Function 0的Message作为对Primary Message的回复后,终止相关事务。该设备不应向主机发送任何错误消息。

3.2 会话

会话是用于完成特定任务的一系列的一个或多个相关事务。会话应包括完成任务所需的所有事务,会话结束时,会话双方应释放相关资源。

会话超时表示会话在规定时间内未完成会话超时时间和检测由用户应用程序自定义

会话超时将终止会话的进一步操作,并将允许清除任何已提交的资源。在设备上检测到会话超时后,应发送S9F13给主机。

SECS-II中定义了7种类型的会话:

1、一个无需回复的Primary Message是最简单的会话。此消息必须是一个单块的SECS-II消息。

2、如果响应端有发起端想要的数据,则会使用Primary Message请求这些数据,响应端将这些数据作为Reply Message回复给发起端。这是一个 request / data conversation(请求/数据对话)。

3、如果发起端将单块消息中的数据发送给响应端,并期望从响应端回复确认。这是一个 send / acknowledge conversation(发送/确认会话)。

4、如果发起端有一个要为特定的交互发送的多块消息,则发起端必须在发送数据之前获得响应端的许可。

​ 会话中的第1个事务请求发送权限,响应端授予或拒绝发送权限。如果授予权限,发起端发送数据,响应端进行相应地回复。

​ 这是一个 inquire / grant / send / acknowledge conversation(询问/授予/发送/确认对话)。

5、一个关于在设备和主机之间传输未格式化的数据集的对话,这个会话在 Stream 13 中有详细描述。

6、 一个关于设备之间原料处理的会话。这个会话在 Stream 4中详细描述。

7、发起端可以向响应端请求需要一段时间才能获取的信息(例如,操作员的输入)。

​ 会话中的第一个事务请求信息,并且响应端以三种方式之一响应:(1)返回信息,(2)响应端表示不能或不会获得信息,(3)响应端表示将在随后的事务中获得并返回信息。

  对于方式(3),响应端将在信息可用时启动后续事务返回信息。方式(3)是一个 request / acknowledge / send / acknowledge conversation(请求/确认/发送/确认对话)。

4、消息的数据结构

所有根据SECS-II标准的消息使用两种数据结构,即 Item (项目) 和 List(列表)。消息数据结构定义了消息的逻辑划分,与消息传输协议的物理划分不同。

消息的数据结构旨在为在设备和主机之间传递的消息提供一个自描述的内部结构。

4.1 Item

一个Item是一个具有长度和格式的信息包。由Item Header 和 Item Body 组成。

Item的前2个、前3个或前4个字节称为 Item Header,用以描述Item的长度和格式。Item Header后的字节称为 Item Body,Item Body是Item的实际数据。

下图是 Item Header 的结构图:

02、SECS-II 通信协议介绍

这个图看着是不是挺复杂的,不用急,我们一步一步的捋清楚后,就会发现并不难。

LSB和MSB的含义:

  • MSB(Most Significant Bit):最高有效位,二进制中代表最高值的比特位,这一位对数值的影响最大。

  • LSB(Least Significant Bit):最低有效位,二进制中代表最低值的比特位

例如,在二进制的1001(十进制的9)中,最左边的“1”即是MSB对数值影响最大,从1到9的变化幅度。而最右边的1是LSB因为仅会让数值产生8到9的变化。

总结:MSB指二进制中表示的最高有效位,LSB指数据的最低有效位,1(MSB)001(LSB

从上图中我们知道,Header的第1个字节为Format byte,其后的字节为Length byte。

注意这里的其后的字节为 Length byte,这里的 字节数不是固定的。

Format byte 被分割成了两部分,前面两位表示:Item Body的长度,后面的表示:数据的格式,即ItemBody中的字节数据类型

  • Format byte的第1位和第2位:

    定义Format byte后面有几个字节来表述Item Body的长度。取值只能1、2、3。如果值为2,则表示有2个字节表述Item Body的长度,即第2个和第3个字节。值为0是非法的,会产生错误。

    这里就解释了上面为什么说:其后的字节为 Length byte,这里的 字节数不是固定的。因为Format byte的第1位和第2位一共有意义的值有1、2、3,即 Item Header 的 字节可能为 :前2个、前3个或前4个字节。

    这里有一个需要特别注意的点,图中的 No. of length bytes 为 0 时,说的是错误的数据格式。但是我看其他的文档,说的是 0 代表 无Item 。这里暂不清楚谁对谁错,也可能是不同的设备厂商有不同的定义。这里大家一定要注意!!!

02、SECS-II 通信协议介绍

  • Format byte的第3位至第8位:

    定义数据的格式,即ItemBody中的字节数据类型。下图为数据类型定义表:

02、SECS-II 通信协议介绍

4.2 List

List是一组有序的元素,其中元素可以是Item或List

List 的Header与数据类型为0的Item的Header形式相同。不过List的Header中的长度表示List中元素的个数,Item的Header中的长度表示数据字节的个数。

这里的意思就是说,List 的Header中长度表示的是 List中元素的个数,即 List 中有多少个 其他类型的元素(后面去看看 sml 指令的格式就明白了)。
Item的Header中的长度则数据字节的个数。

4.3 Localized Character String Items

本地化字符串项是一个用于表示由多字节字符组成的字符串的Item。其Header中的Format Code为22(Octal)。它由string header和string组成。

因为字符有许多不同的编码方案,所以有一个附加的string header来表述字符集。

string header 是一个2字节16位的数字,它在 Item Header 之后,在string之前。

string header 是 Item 的 实际数据的一部分,所以它的长度计算包含在Item Header 的 Length byte 中。

下图为string header的编码集对应。

02、SECS-II 通信协议介绍

4.4 不同Item的数据实例

上面看了这么多理论,接下来一起看看几个 Item 的数据实例,来帮助我们进行理解。

1、包含一个二进制数据 10101010 的 Item。

  00100001  Item, binary, 1 length byte
  00000001  1 byte length
  10101010  data byte

02、SECS-II 通信协议介绍

理解了上面这张图代表的含义,上面说的内容基本上就理解了。

2、 包含三个ASCII字符ABC的Item。

  01000001  Item ASCII, 1 length byte
  00000011  Three bytes long
  01000001  ASCII A
  01000010  ASCII B
  01000011  ASCII C

3、包含三个2字节有符号整型数字的Item。

  01101001  Item, 2-byte integers
  00000110  6 bytes total (6/2=3 integers)
  xxxxxxxx   MSByte number x
  xxxxxxxx   LSByte number x
  yyyyyyyy  MSByte number y
  yyyyyyyy  LSByte number y
  zzzzzzzz  MSByte number z
  zzzzzzzz  LSByte number z

4、 包含一个4字节浮点数的Item。

  10010001  Item, 4-byte floating point  
   00000100  4 bytes (4/4=1 number)
  ffffffff
  ffffffff  Floating point number
  ffffffff 
  ffffffff

5、Message Layout(消息布局)

SECS-II 消息包含一个 structure or layout (结构或布局)。该布局定义了SECS-II消息的所有数据项。布局是消息中遵循Stream and Function notation (流和函数符号)的一部分。

02、SECS-II 通信协议介绍

上面中 L、A 这种是什么意思呢,还记得我们在 4.1 Item 中介绍的 Format byte 中 第3位到第8位 的作用吗?这里就是的 L、A 就是表示 Item Body 中的数据类型。我们称之为Data Item。接下来一起看看有哪些 Data Item吧。

数据项由 format codes(格式代码)定义。下表中列出了所有可能的数据项及其格式代码。格式代码仅由6位来定义。

需要注意的是,List 类型的数据项可以包含 其他数据项,当然了,也可以包含 List 数据项。

Type 缩写 Type 含义 Format Code
L List 列表 000000
A ASCII ASCII字符 010000
B Binary 二进制数 001000
Boolean Boolean 布尔值 001001
I1 1-byte Singed Integer 1字节有符号整数 011001
I2 2-byte Singed Integer 2字节有符号整数 011010
I4 4-byte Singed Integer 4字节有符号整数 011100
I8 8-byte Singed Integer 8字节有符号整数 011000
U1 1-byte UnSinged Integer 1字节无符号整数 101001
U2 2-byte UnSinged Integer 2字节无符号整数 101010
U4 4-byte UnSinged Integer 4字节无符号整数 101100
U8 8-byte UnSinged Integer 8字节无符号整数 101000
F4 4-byte Floating-Point 4 字节浮点数 100100
F8 8-byte Floating-Point 8字节浮点数 100000
JIS-8 网上的资料说是:JIS-8是一种
半导体器件的防水等级标准,
表示该器件能够在水深超过1米
的水下保持正常工作。
不知道对不对哈
010001

SECS-II消息可以使用几个约定进行注释。下面显示了两个更常见的惯例:

  • SEMI Standard

02、SECS-II 通信协议介绍

  • SML(SECS Message Language) Format

02、SECS-II 通信协议介绍

按照我的理解,这里的A[6] 是不对的,第一个 A[6]应该是A[4]。第二个 A[6]应该是A[7]。

6、Layout Encoding(布局编码)

这里我放出来我看的文档的英文原版,大家自行理解。

Before a SECS-II message can be sent, the layout must be encoded. Each data item in the message layout is encoded and becomes part of the Data Structure. This is repeated until all the data items in the layout are encoded. The Data Structure is subsequently sent via the SECS-I protocol.

说说我的理解:

在发送SECS-II消息之前,我们要对数据进行编码,这里的数据指的是 5、Message Layout 中的完整数据。消息布局中的每个数据项都被编码,并成为数据结构的一部分。将重复此操作,直到布局中的所有数据项都被编码为止。数据结构随后通过 SECS-I 协议发送。(这里其实还可以通过 HSMS协议发送)

02、SECS-II 通信协议介绍

6.1 Data Item 如何编码

接下来我们要重点理解了,我们将一起来看看如何将 Data Item 编码:

这里我们先对 Item 有一个整体的认知,方便后面的叙述:

02、SECS-II 通信协议介绍

Encoded Data Item的第一个字节包含数据项的 format code(格式代码),并定义了接下来的将用几个字节来表示数据项的长度。format code用第2位到第7位表示, the number of length bytes用第0位和第1位表示,那可以知道,数据项的长度的取值范围是:0字节、1字节、2字节、3字节。

02、SECS-II 通信协议介绍

接下来的0、1、2或3个字节定义了数据的长度。例如,如果数据的大小为1000字节,那么将需要2个长度的字节来表示1000(03 E8十六进制 或 00000011 11100100二进制)

下表显示了可以用长度字节数表示的最大数据字节数。

Number of length bytes Max data size
0 Empty item
1 256 bytes
2 64 Kbytes
3 7.99 Mbytes

接下来的n个字节包含了该数据项的数据。

02、SECS-II 通信协议介绍

下面显示了如何对ASCII数据项进行编码。根据它所包含的数据字节数,它可能需要0、1、2或3个长度的字节来表示数据字节的总数。
02、SECS-II 通信协议介绍

010000 -> 表示 ASCII 。

下面显示了一个示例SECS-II消息布局是如何编码的。请注意,在本例中,只有消息布局被编码,流和函数没有被编码。所有数值均以十六进制为单位,(例如: 52 = 01010010)

02、SECS-II 通信协议介绍

这里的 01、02 共同组成了 Item Header。

其中 01 中的 Format code 是:000000,表示 List 类型。长度是: 01,表示接下的一个字节表示数据的长度。

02 则表示 有2个元素。

6.2 Multi-Block Messages

由于SECS-I协议中的数据大小限制,编码的SECS-II消息(数据结构)可能不适合于一个SECS-I事务。因此,编码的SECS-II消息被划分为更小的块,一次发送一个块。这被称为多块消息传递。

每个SECS-I消息块被限制为244个已编码的SECS-II消息字节。消息块的最大数量为32,767,因此SECS-II编码的最大消息大小为 244 x 32,767 字节长。

6.3 SECS-II Parameters

SECS-II Parameters : 用于在实现消息协议时定义一些边界。下表显示了SECS-II控制系统中的参数:

SECS-II Parameters 描述
T3 Reply Timeout
T4 Inter-Block Timeout
  • T3: 从发送端发送 Primary Message 到接收到响应端回复的 Secondary Message之间的时间间隔。

  • T4: 多块传输中,接收到相邻块之间的时间间隔。

02、SECS-II 通信协议介绍

6.4 Interleaving Messages

这是指一次要处理不止一个事务。事务是发送主消息和可选的接收辅助应答。一个事务在等待回复时被“打开”。交错是指有多个“打开”事务的能力。这允许发送多个主消息,而无需首先等待辅助回复。支持此特性并不是SECS-II的要求。

7、常见的 SECS-II Messages

这里我们列出了常见的SECS-II指令。
注意:

这里一定要注意,指令是具有方向性的,有一些是 Host 发送给 Euipment的,这个需要主动触发,有一些是 Equipment 发送给 Host 的,这个是Equipment 自动发送的。自动发送也是有条件的!

1、第一组消息通常在初始化时使用。

SECS-II Description
S1F1 Say hello to the equipment
S1F13 Establish communications with the equipment
S2F15 Set equipment constants
S2F43 Turn off spooling
S2F33 Create / Delete reports
S2F35 Link reports to events
S2F37 Enable / Disable events
S5F3 Enable / Disable alarms

2、这些信息可用于配方选择、远程启动、晶圆片选择等

SECS-II Description
S2F41 Remote equipment control

3、这些消息可用于数据收集。

SECS-II Description
S6F3 Older version of Event Reports
S6F9 Older version of Event Reports
S6F11 Event Reports

这些指令就是 Euipment 发送给 Host,是主动发送的。

S6F3是机台主动上报给host的一种消息类型。它是SECS协议中的一种事件报告消息,用于向上层主机报告机台的状态和事件信息。机台可以在特定的条件下主动发送S6F3消息,例如当发生故障、完成特定的任务或达到特定的状态时。主机可以通过接收S6F3消息来了解机台的状态和事件信息,以便进行相应的处理和控制。

4、S5F1用于处理设备报警

5、S9 这一类用于当设备检测到之前的消息错误时,由设备发送。

特别感谢 SECS半导体设备通讯-3 SECS-II通信标准 这边文章,让我对 SECS协议有一个入门的了解。

参考资料:

SECS半导体设备通讯-3 SECS-II通信标准

清晰讲解LSB、MSB和大小端模式及网络字节序文章来源地址https://www.toymoban.com/news/detail-454993.html

到了这里,关于02、SECS-II 通信协议介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 我们常说这个pycharm里有陷阱,第三方库导入失败,看这里!

    最近有小伙伴遇到了明明安装了 python 第三方库,但是在 pycharm 当中却导入不成功的问题。 ​ 一直以来,也有不少初学 python 的小伙伴,一不小心就跳进了虚拟环境和系统环境的【陷阱】中。 本文就基于此问题,来说说在 pycharm 当中如何使用系统环境、虚拟环境。 pycharm 当中

    2024年02月04日
    浏览(44)
  • 计算机网络学习day02|HTTP协议

    目录 一、HTTP报文格式长什么样?是如何分割的? 请求行 状态行 头部字段 常用头字段 小结 二、HTTP提供了哪些方法?GET和POST的区别是什么? 1.HTTP有哪些方法 2.GET/HEAD 3.PSOT/PUT 小结 三、URI和URL URI 的格式 URI 的基本组成 URI 的查询参数 小结 四、HTTP有哪些状态码?分别代表什

    2024年04月23日
    浏览(46)
  • Modbus通信协议介绍以及Modbus Poll、Slave软件使用介绍

    Modbus Slave是一个模拟Modbus协议从机的上位机软件,主要用于模拟测试跟其他主机设备通信的过程。与之成套存在的另一个软件--Modbus Poll,则是模拟Modbus协议主机的上位机软件。该软件内部封装Modbus协议,通过图形化界面使得操作更为简单。软件支持ModbusRTU、ASCII、TCP/IP协议。

    2024年02月09日
    浏览(44)
  • 国密SSL通信协议详细介绍与抓包分析

    最近研究有关SSL协议的物联网安全协议,看了很多资料并且结合TASSL在ubuntu上跑了一个简单的demo,因此有了一些自己的理解,那么就详细讲解一下我所知道的SSL,相信这一篇文章就可以让你全面了解SSL。 SSL:Secure Sockets Layer 安全套接字协议 ,位于 TCP/IP 协议与各种应用层协议

    2023年04月17日
    浏览(36)
  • AT24C02(I2C总线)通信的学习

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 学习AT24C02(I2C总线)芯片 RAM()存储速度较快,但容易丢失数据。ROM(Read Only Memory)存储速度较慢,但掉电不丢失数据。在使用时需要两者结合先存入RAM再转存到ROM中。 AT24C02是一种可以实现掉电不丢失

    2024年02月20日
    浏览(45)
  • LoRaWAN网关与网络服务器(NS)的通信CUPS 协议介绍

    LoRa Basics™ Station 定期查询 CUPS 服务器以获取更新。该协议是 HTTP/REST,使用Credentials中描述的客户端/服务器身份验证方法。对于每个查询,工作站都会提供有关其当前状态的信息,并接收包含其 LNS 和 CUPS 凭证更新的二进制 blob,以及具有任意更新的通用数据段。 通用数据段

    2024年02月13日
    浏览(40)
  • 【从零学习python 】02. 开发工具介绍

    根据我们之前介绍的知识,我们知道,所谓代码其实就是将一段普通文本按照一定的规范编写,然后交给电脑解析并且执行。那既然是一段文本,那我们是否可以直接使用文本编辑器来编码呢?答案是肯定的,但是这样开发起来,效率会很低。 实际上,在我们实际工作中,如

    2024年02月14日
    浏览(34)
  • 工业自动化控制通信协议Profinet系列-3、CoDeSys软PLC方案介绍

    之前在树莓派desktop上已经成功编译运行测试程序,但是还需要主站去和其交互才能看到比较完整的profinet交互过程,因此这里我们需要搭建运行profinet主站,并和之前的从站程序交互运行,这里一番查找后最终确认先使用软PLC方案来搭建主站验证,等到实际场景可以买PLC硬件

    2024年02月07日
    浏览(40)
  • STM32进阶学习(6)-通信协议之CAN详解

    CAN通信的背景可以追溯到上世纪80年代初,当时汽车制造商面临着一个共同的挑战: 如何有效地传输和共享大量的传感器数据和控制信息 。 传统的电缆布线方式非常复杂且容易出错,而且无法满足日益增长的数据传输需求。 为了解决这个问题,德国的汽车制造商奔驰(Mer

    2024年02月03日
    浏览(35)
  • 【STM32】STM32学习笔记-I2C通信协议(31)

    I2C(Inter-Integrated Circuit)总线 是一种由NXP(原PHILIPS)公司开发的两线式串行总线,用于连接微控制器及其外围设备。多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性。 串行的 8 位双向数据传输位速率在标准模式下可

    2024年01月23日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包