半导体基础SECS协议(SECS - II)

发布时间 2023-11-20 11:38:14作者: 略茫然

  SECS - II协议定义了使用如SECS-I、HSMS等传输协议在设备和主机之间交换的消息的形式和含义,是SECS四项基础协议中的核心。

  往下,HSMS、SECS-I等物理协议为其服务,通过某种传输介质,在设备间传输SECS-II消息(此时SECS-II消息存储在物理层协议消息结构的DATA部分中,详见随笔 - HSMS/SECS-I);往上,GEM协议是SECS-II的具体实现(详见随笔 - GEM),规定特定设备在特定场景下的实际通信流程(哪些场景下应当以什么顺序收发哪些SECS-II消息)

  笔者将按Stream&Function、事务与会话以及SECS-II消息结构/实例这三部分来介绍SECS - II协议。

 

1. Stream&Function

1.1 概述

  SECS-II消息1可按照各自的行为被归类至不同的Stream中,在Stream中再细分,按功能划分至不同Function,即

即一个Stream中的一个Function对应一种具体的行为功能消息。

1.2 Stream编号情况*

  目前有18类Stream:

Stream

职责

1

Equipment Status:设备状态

2

Equipment Control and Diagnostics:设备控制和诊断

3

Material Status:原料状态

4

 Material Control:原料控制

5

Exception Handling:异常处理

6

Data Collection:数据采集

7

Process Program 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:子系统控制和数据

 

1.3 Stream&Function编号

1.3.1 Function编号规则

  SECS消息分为两类:

  Primary Message 与 Secondary Message。

  所有Primary Message的Function编号为奇数,其对应的Secondary Message(Reply Message)的Function编号为其Function编号+1;

  如果Primary Message不需要应答(体现为物理层消息中的Wait-bit),其对应的Secondary Message并不适用,但编号会被保留;

  任一Stream中都存在编号为0的Function,用于中止事务。

1.3.2 Stream和Function的编号图*

  SECS-II已定义的Stream和Function编号:

  Stream 0,Function0-255;

  Stream 1-63,Function 0-63;

  Stream 64-217,Function 0;

  可供自定义的Stream和Function编号范围:

  Stream 1-63,function 64-255;

  Stream 64-127,Function 1-255;

  已定义S&F与预留S&F如下图所示:

                                                         

 2. 事务与会话*

2.1 事务*

  事务是信息交换的基础,一个事务由不需要回复的Primary Message或Primary +Secondary 消息组构成。

  SECS - II在事务层作了一些规定:

  1)使用SXFY+1来响应SXFY

  2)对于接收到的任何设备无法处理的消息,使用Stream 9发送相应的错误消息;

  3)格式化任何其他受支持的消息;

  4)在检测到设备上的事务超时后,向主机发送S9F9;

  5)在收到Function 0的Message作为对Primary Message的回复后,终止相关事务。该设备不应向主机发送任何错误消息。

 

2.2 会话*

  会话是用于完成特定任务的系列相关事务,会话双方将在会话结束时释放所有资源。

  若在用户规定时间内,会话未完成,此刻会话的进一步操作将被终止,任意已提交的资源将被删除(并向主机发送S9F13)。

  SECS - II在会话层面所作规定如下:

  1)最简单的会话是一个无需回复的Primary Message。它是一个单Block的SECS-II消息(于SECS - I)。

  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)发起端可以向响应端请求延迟信息(例如,机台等待稍后操作员的输入)。

  8)对于会话中的第一个事务请求信息,响应段可能做出的三种响应:[1]返回信息, [2]响应端表示不能或不会获得信息, [3] 相应段表示将在随后的事务中获得并返回信息。   其中的[3],响应端将在信息可用时再启动后续事务,将信息返回。这是一个request/acknowledge/send/acknowledge 会话。

 

3. SECS - II 消息/数据格式

  SECS - II消息并非仅使用SECS-II协议的消息,而是指在物理层协议所定义消息结构的DATA部分遵守SECS-II数据结构的讯息(例如SECS - I消息结构为1 + 10 +N + 2[字节],其中N字节部分遵守SECS-II协议)。此部分将介绍DATA部分常用的基础数据结构、定义。

  使用SECS - II标准的消息使用的数据结构有两种 -- Item、List

3.1 List

  List是多个Item/List的集合。

3.2 Item

  

   Item由Item Header 以及Item Body两部分组成。Item的前2|3|4个字节为ItemHeader,用于描述Item的长度,内容数据格式,其结构如上图所示,ItemBody则包含Item的实际数据部分。

3.2.1 Item Header

  Item Header的长度范围为[2, 4],这是由第一字节Format Byte的末两位决定的(笔者偏好将其称为Length Bit),这个两位二进制数描述着后续Length Byte的长度,而Length Byte的数值描述着Item Body的长度,也就是真正的数据长度(List被视为一个特殊格式的Item,其Length Byte描述后续List中的元素数而非字节数)。

  第一字节Format Byte的前六位则被称为Format Code,描述着当前Item所属的数据类型,格式编码表如下所示:

Format Code

 

Meaning

Binary Bit

Octal

 

000000

00

LIST

001000

10

Binary

001001

11

Boolean

010000

20

ASCII1

010001

21

JIS-8

010010

22

2-byte character

011000

30

8-byte integersigned

011001

31

1-byte integersigned

011010

32

2-byte integersigned

011100

34

4-byte integersigned

100000

40

8-byte floating point

100100

44

4-byte floating point

101000

50

8-byte integerunsigned

101001

51

1-byte integerunsigned

101010

52

2-byte integerunsigned

101100

54

4-byte integerunsigned

3.2.2 Item Body

  根据Item Format,存放着某种格式的数据。对于List而言,Body可由Item和List构成,从而形成树状结构(这个树状结构由SML*进行描述,测机软件的可视化遵守SML)。

3.3.3 Localized Character String Items*

  本地化字符串Item是一个由多字节字符构成字符串组成的Item。结构类似普通Item,Format Code为22(Octal)。与常见Item不同的是,字符串有许多编码方案,故该Item拥有一个额外Header来表述字符集,其为两字节,在Item Header后,Item Body(String)前,属于Body部分,被Length统计。

  一些String Header编码如下所示:

  

Encoding Code

Encoding Scheme

Notes

0

None

Reserved

1

ISO 10646 UCS-2

Unicode 2.0

2

UTF-8

Transformation of ISO10646 UCS-2

3

ISO 646-1991

ASCII, 7-bit

4

ISO 8859-1

ISO Latin-1,Western Europe

5

ISO 8859-1(proposed)

Thai

6

TIS 620

Thai(will be supported by ISO 8859-11)

7

IS 13194(1991)

ISCⅡ

8

Shift JIS

 

……

……

 

 

4. 一些简单的Item例子

4.1 包含一个二进制数据“10101010”的Item(Binary)

  00100001 —— 前六位“001000”为Format Code,代表后续Body数据格式为Binary,后两位为Length Bit,说明Length Byte长为1

  00000001 —— Length Byte,值为一,Item Body长为1字节

  10101010 —— Item Body, 一个二进制数据“10101010”

4.2 包含三个ASCII字符“A”、“B”、“C”(Binary)

  01000001 —— 前六位“010000”,ASCII格式,后两位“01”,Length Byte长为1

  00000011 —— Body长为3字节

  01000001 —— “A”

  01000010 —— “B”

  01000011 —— “C”

4.3 包含三个两字节有符号整数“X”“Y”“Z”(Binary)

  01101001 —— 前六位“011010”,2I格式,后两位“01”,Length Byte长为1

  00000110 —— Body长为6字节

  xxxxxxxx —— MS Byte number x

  xxxxxxxx —— LS Byte number x

  yyyyyyyy —— MS Byte number y

  yyyyyyyy —— LS Byte number y

  zzzzzzzz —— MS Byte number z

  zzzzzzzz —— LS Byte number z

 

下一节:半导体基础SECS协议(GEM)