5. SECS-II通信标准
SECS-II 标准定义了设备和主机之前发送的消息所表达的含义。所有的消息按照其行为分类,称为Stream,每个Stream又包括具体的消息,称为Function。标准还定义了消息的结构,消息由数据项和数据项序列构成。SECS-II还规定了事务协议,用于管理消息的交换、分块等。
5.1 消息分类
标准把所有的消息按照行为分为各种Stream,然后在每种Stream中再按照其功能分为Function,即每个具体的消息。Stream和Function 都按照数字进行编号,所有的第一消息的Function编号为奇数,对应第二消息的Function编号为偶数且为第一消息Function编号加一。如果第一消息不需要回复消息,则第一消息Function编号加一的第二消息保留。所有Function编号为0的消息保留。所有Stream编码及其功能描述如下表所示:
一些Stream和Function 编号组合被标准保留,其他的可以由用户自定义。保留的 Stream和Function编号为:
- Stream 1,Function 0-255
- Stream 1-63,Function 0-63
- Stream 64-127,Function 0
上述编号分配情况如下图所示:
5.2 消息结构
SECS-II 消息由两种数据结构组合而成:数据项(item)和列表(list)。采取这样的结构的目的是从逻辑上划分消息内容,使消息可以自描述内部结构。
- 数据项(item):数据项即一个带长度和格式的信息包。前 2、3 或 4 个字节作为数据项头(item header),描述该数据项的格式和长度信息。如图 2-22 所示。头由格式字节和长度字段组成。第一个字节是格式字节,其高六位表示这个数据项的格式,低二位表示紧随其后有多少个字节表示该数据项的长度,取值只能为1、2 和 3,如果为 0 则该数据项格式错误。高六位的取值及对应格式见表 2-8。根据格式字节的低二位确定长度字段为几个字节,若为 1 则该数据项最长为255字节;若为 2 则该数据项最长为 64K 字节;若为 3 则该数据项最长为 7.99M 字节。长度字段的第一个字节为最高位字节。
- 列表(list):列表是一组有序的元素集合,集合中的元素既可以是数据项也可以是列表本身。列表头和格式编码为 0 的数据项头有着相同的格式。长度字段表示该列表中有多少个元素。列表的作用是将若干个有着不同格式的相关数据项组合到一个表示一个有自身含义的结构。
下面列举 4 个数据项和列表编码示例:
(1) 一个包含二进制数据 10101010 的数据项:
(bit 87654321)
00100001 (数据项,二进制数据,一个字节表示长度)
00000001 (长度为 1 字节)
10101010 (数据)
(2) 一个包含 3 个 ASCII 字符 ABC 的数据项:
(bit 87654321)
01000001 (数据项,ASCII 数据,一个字节表示长度)
00000011 (长度为 3 字节)
01000001 (ASCII 字符 A)
01000010 (ASCII 字符 B)
01000011 (ASCII 字符 C)
(3) 一个包含三个 2 字节有符号整数的数据项:
(bit 87654321)
01101001 (数据项,2 字节有符号整数,一个字节表示长度)
00000110 (长度为 6 字节)
xxxxxxxx (整数 x 的高位)
xxxxxxxx (整数 x 的低位)
yyyyyyyy (整数 y 的高位)
yyyyyyyy (整数 y 的低位)
zzzzzzzz (整数 z 的高位)
zzzzzzzz (整数 z 的低位)
(4) 一个包含 4 字节浮点数的数据项
(bit 87654321)
10010001 (数据项,4 字节浮点数,一个字节表示长度)
00000100 (长度为 4 字节)
f f f f f f f f (4 字节浮点数)
f f f f f f f f
f f f f f f f f
f f f f f f f f
5.3 SECS 消息语言
SECS 消息语言(SECS Message Language, SML)是一种用于描述 SECS-II 消息内容的符号语言。它同 SECS-II 标准中的相关定义十分相识,但描述更加准确和通用。主要用于半导体设备手册说明所使用的 SECS-II 消息内容。
SML 对数据项的定义如下:
<type [count] value>
其中 type 表示数据类型,count 表示个数,value 表示该数据的值。每个数据项都由一个尖括号封装。Type 的取值如下表所示:
SML 对一个完整消息定义如下:
SnFm W item .
其中 SnFm 表示 stream 编号为 n 且 function 编号为 m 的 SECS-II 消息。W 表示W 比特位,如果设置为 0 则忽略,如果回复可选则用方括号括起来。Item 即上述数据项。最后消息以一个句号“.”结束。
例如 S5F1 消息,其结构在 SEMI 标准中描述如下图所示:
然而使用 SML 可以更准确的描述该结构,如下图所示:
6. GEM通信标准
GEM (Generic Model for Communications and Control of Manufacturing Equipment)定义了通过通信链路所能看到的半导体设备的行为。SECS-II 标准定义了在主机和设备之前交换的消息格式以及相关数据项。GEM标准在此基础上定了在何种情况下使用哪些SECS-II消息以及会发生哪些行为。主机电脑在任何时间都可能发起任何GEM消息场景,设备必须按照 GEM标准中的描述做出响应。
GEM标准为所有半导体制造设备定义了实现SECS-II的标准方法。标准定义了设备行为和通信功能的通用集合,这样为支持半导体设备的自动化加工程序提供了功能性和弹性。设备提供商可以提供GEM中没有的额外功能,但是不能与GEM中已定义的行为和功能相冲突。
E5、E37标准规定了主机如何同设备建立起通信,以及传输数据的格式。
在实际上,设备可能只需要采用SECS-II的某部分信息便可使工厂主控电脑达到控制设备的功能,并不需要完全使用SECS-II的所有信息。
于是E30 GEM (通用设备模型通讯与控制标准)标准被制定了出来。
6.1 状态模型
状态模型从主机角度以简洁易懂的方式描述设备行为。不同设备的状态模型在有些方面相同(比如通信)但是在其他方面不同(比如加工)。因而需要把一个设备分为并行的几个部分,这些部分既可以单独的建模又可以合并起来,如下图所示:
6.1.1 通信状态图
通信状态模型定义了关于设备与主机之间的通讯行为,描述的是主机与设备之间交换消息的功能,GEM 中的通信状态如下图所示:
6.1.2 控制状态图
控制状态模型定义了主机与设备之间的操作等级,此外还说明了操作员应该如何控制主机的不同层次。通信状态模型描述的是主机与设备之间交换消息的功能,控制状态模型则描述设备应该如何响应它所收到的消息。
控制状态模型为主机提供了三个基本层次的控制。在最高层次(REMOTE),主机可以最大程度的控制设备。在中间层次(LOCAL)主机可以访问设备的所有信息,但对设备的操作有所限制。在最低层次(OFF-LINE)设备不允许主机控制且只能提供很有限的信息。控制状态图如下图所示:
6.1.3 设备加工状态图
设备加工状态模型主要取决于设备加工、所采用的技术和类型。然而仍然可以用一个模型表示其中共同的部分。下图表示了一个实现模型,该模型示范了设备加工模型所需要的特性。
6.2 设备功能
设备功能即半导体制造设备提供的操作,这些操作通过使用 SECS-II 消息由通信接口发起。通信场景即为了实现某个功能按顺序排列的一组 SECS-II 消息。
6.2.1 建立通信
建立通信功能提供了一系列在系统初始化或通信节点丢失了通讯之后正式建立通信的方法,以及通知远程通信节点通信发生了中断。通信在主机和设备分别发送 S1F13 和 S1F14 消息之后正式建立,通信场景如下图所示:
6.2.2 数据收集
数据收集功能使主机可以通过事件报告、跟踪数据报告、阀值检测和查询选定状态等来监测设备的活动,并通过收集到的数据完成优化控制。
- 事件数据收集
事件数据收集为用户提供了一种灵活的方法来实现设备相关的数据表示以及如何向主机报告。基于事件的数据收集方法可以自动向主机提供设备的活动信息,并且可以检测设备状态以及同设备保持同步。其通信场景如下图:
- 变量数据收集
这个功能使主
机可以查询设备的数据变量,以便于初始化和同步。通信场景如下图所示:
- 跟踪数据收集
跟踪数据收集提供了一种定期对数据采样的方法。这种基于时间的数据收集方法便于跟踪数据趋势、在某个时间间隔内重复应用和检测某个连续变量。通信场景如下图所示:
- 阀值监测
阀值监测功能为主机提供了一种异步监测设备状态的方法,使主机不用持续的向设备查询状态值。通信场景如下图:
- 状态数据收集
状态数据收集功能使主机可以向设备查询选中的状态信息,便于同设备状态保持同步。通信场景如下图:
- 在线确认
在线确认用于设备响应主机发送的 S1F1 消息。通信场景如下图:
6.2.3 报警管理
报警管理功能使主机可以管理设备上发生的警报状态并获得相应通知。主机可以打开或关闭某个报警,要求设备上传警报信息等。通信场景如下图:
6.2.4 远程控制
远程控制功能使主机按不同层次对设备进行操作。设备向主机提供的操作包括:开始加工、选择某个加工程序或配方、停止加工、暂时挂起加工程序、恢复加工和取消加工。通信场景如下图所示:
6.2.5 设备常量
设备常量功能使主机可以读取并改变选中的设备常量。通信场景如下图:
6.2.6 加工程序管理
加工程序管理功能使主机能够通过同设备的接口来管理加工程序和配方。加工程序使工程师按不同目的配置设备的加工和加工所需要的相关参数。不同的产品可能需要不同的加工程序,因此工程师必须能够在设备的存储器中创建、修改和删除这些程序。为了使主机能够确保相应的程序存储在设备中正确的位置,该功能提供了从设备到主机和从主机到设备的传送程序的方法。主机还可以删除设备存储器中的某些程序,以便为下载新程序腾出空间。此外,主机还应该知道设备上的加工程序在内容和状态上发生了哪些改变。配方的管理同程序的管理类似,稍有不同的是配方在传输过程中参数连同配方一起传输。通信场景如下图:
6.2.7 原料运输
原料运输功能包括原料在设备、缓冲区和存储工具之间的物理传输。该功能可以通知主机原料是否已从设备的某个端口接收或传输。通信场景如下图:
6.2.8 设备终端服务
设备终端服务功能使主机能够在设备的显示装置上显示信息,并且使设备的操作员能够向主机发送消息。通信场景如下图:
6.2.9 错误消息
错误消息功能用于向主机提供设备检测到的消息或通信错误的相关信息。通信场景如下图:
6.2.10 时钟
时钟功能使主机能够管理设备上与时间相关的行为和事件。时钟的主要目的是为收集事件和警报报告提供时间戳。时间戳的使用利于分清事件或警报的发生顺序,并使主机能够调度设备行为。该功能使主机能把设备的内部时钟设定为某个特定值,同时设备也可以向主机询问当前日期和时间。通信场景如下图:
6.2.11 数据缓存
数据缓存功能使设备可以在发生通信错误时存储消息并随后在通信修复之后继续向主机发送这些消息。数据缓存的目的在于当发生通信错误时保存消息以免信息丢失。数据缓存状态图如下图所示:
6.2.12 控制
控制功能用于配置并操作控制状态图,使用户或主机可以修改设备的控制相关行为。通信场景如下图:
6. 最后
以上就是在开发SECS/GEM时将会涉及到的主要知识点,但是本文介绍的都还比较粗浅,想要真正的深入了解还需要仔细的研究SEMI的相关文档。下面列出的是主要的相关文档,有需要的可自行查阅:
- SEMI E4-0699:SEMI设备通信标准1消息传送(SECS-I)
- SEMI E5-0304:SEMI设备通信标准2消息内容(SECS-II)
- SEMI E30-1103:通信的一般模式和SEMI设备的控制(GEM)
- SEMI E39-0703:目标服务标准:概念、性能和服务
- SEMI E40-0304:加工过程管理标准
- SEMI E87-0304:运载管理暂行规范
- SEMI E90-0304:衬底跟踪规范
- SEMI E116-0703:设备运行跟踪暂行规范
- SEMI E94-0702:控制工作管理暂行规范
- SEMI E95-1101:设备人机界面规范
现在FAB厂使用的GEM标准主要有2套,分别是GEM200(8寸)、GEM300(12寸),对标准的要求如下:
其实简单一点来说GEM就是:
- 从工厂主机的角度来看,设备应该具有什么功能。
- 在什么情况下,使用哪些SECS-II 消息。
那么设备一般应该具有哪些功能?如下:
现在应该知道自己的设备需要支持哪些标准、哪些功能了?