02/SECS-II 通信协议介绍

科技资讯 投稿 5500 0 评论

02/SECS-II 通信协议介绍

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

1、SECS-II 概述

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

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

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

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

2、Streams and Functions

2.1 Streams and Functions 基础介绍

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

注意:

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

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 用户可自定义使用的

注意:

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

2.2 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组成。这里我理解的事务指的是:一次完整的请求或者一次完整的请求响应。

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

3.2 会话

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

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

S9F13给主机。

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

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

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

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

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

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

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的实际数据。

Header 的结构图:

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

Format byte,其后的字节为Length byte。

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

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

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

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

4.2 List

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

这里我页不太明白,清楚的朋友,请不吝赐教。

4.3 Localized Character String Items

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

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

4.4 不同Item的数据实例

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

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

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 (流和函数符号)的一部分。

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

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

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
    SML(SECS Message Language) Format

6、Layout Encoding(布局编码)

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

说说我的理解:

SECS-I 协议发送。(这里其实还可以通过 HSMS协议发送)

6.1 Data Item 如何编码

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

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

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

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

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

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

6.2 Multi-Block Messages

由于SECS-I协议中的数据大小限制,编码的SECS-II消息(数据结构)可能不适合于一个SECS-I事务。因此,编码的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: 多块传输中,接收到相邻块之间的时间间隔。

6.4 Interleaving Messages

7、常见的 SECS-II Messages

这里我们列出了更常用的SECS-II消息。

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

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

参考资料:

清晰讲解LSB、MSB和大小端模式及网络字节序

编程笔记 » 02/SECS-II 通信协议介绍

赞同 (25) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽