07、GEM协议介绍
本章的内容主要参考了 SECS半导体设备通讯-4 GEM通信标准 ,外加上自己看的一些其他的文档。也加上了一些自己的理解,特此记录。若有侵权,请联系删除,谢谢。
再次特别感谢 SECS半导体设备通讯-4 GEM通信标准 的作者。
注意,本文只是对 GEM 协议有一个大概的了解,更加详细的介绍,还是需要看相应的文档。
1、 概述
1.1 GEM基础概念介绍
GEM: Generic Model for Communications and Control of Manufacturing Equipment。
GEM标准定义了通信链路上的半导体设备的行为。
SECS-II 标准
定义了在主机和设备之间交换的消息和相关数据项。GEM标准
则定义了在哪种情况下应该使用哪些SECS-II消息以及由此产生的结果行为。
GEM为所有半导体设备定义了SECS-II的标准实现。它定义了一套通用的设备行为和通信能力,这些设备行为和通信能力提供了支持半导体设备制造商的制造自动化程序的功能和灵活性。
设备供应商可以提供GEM中不包括的附加SECS-II功能,只要该附加功能不与GEM中定义的任何行为或功能相冲突。
这些附加功能可能包括SECS-II消息、收集事件、警报、远程命令代码、处理状态、可变数据项(数据值、状态值或设备常量)或类特有的其他功能(蚀刻器、步进等)或设备的具体实例。
下面显示了GEM消息是SECS-II消息的一个子集:
1.2 GEM Compliance(GEM 标准)
什么是 GEM 的标准?
GEM标准包含两个规范:
- Fundamental GEM Requirements (GEM基本要求)
- Additional GEM Capabilities (额外的GEM功能)
下表显示了GEM的基本要求:
Requirement |
---|
State Models |
Equipment Processing States |
Host-Initiated S1F13/F14 Scenario |
Event Notification |
On-line Notification |
Error Messages |
Control (Operator-Initiated) |
Documentation |
Variable data items (as they apply) |
SECS-II data item restrictions (as they apply) |
Collection Events (as they apply) |
额外的GEM功能:
Capability |
---|
Establish Communications |
Event Notification |
Dynamic Event Report Configuration |
Variable Data Collection |
Trace Date Collection |
Limits Monitoring |
Status Data Collection |
On-line Identification |
Alarm Management |
Remote Control |
Equipment Constants |
Process Program Management |
Material Movement |
Equipment Terminal Services |
Error Messages |
Clock |
2、状态模型
状态模型以一种紧凑和易于理解的格式从主机的角度描述设备的行为。不同设备的状态模型在某些领域(如通信)将是相同的,但在其他领域(如处理)可能会有所不同。
因而需要把一个设备分为并行的几个模块,这些模块既可以单独的建模又可以合并起来,如下图所示:
设备制造商必须使用状态模型方法来记录其设备的运行行为,状态模型的文档应包括以下三个要素:
- 显示系统或系统组件的可能状态以及从一个状态到另一个状态的所有可能转换的状态图。这些状态和转换都必须各自进行标记;
- 一个过渡表,列出每个过渡、开始和结束状态、触发过渡的因素,以及作为过渡的结果所采取的任何行动;
- 每个状态的定义,指定当该状态为活动状态时的系统行为。
2.1 状态模型方法
状态模型的基本单位
是状态。
一个状态是一组静态的条件。如果满足这些条件,则该状态为当前状态。这些条件可能涉及传感器读数、开关位置、工作时间等。
一个状态的另一部分是对特定刺激的反应的描述(例如,如果接收到消息Sx,Fy,生成回复消息Sx,Fy+1)。刺激可能相当多样,但对于半导体设备,将包括接收到的SECS消息、到期的计时器、设备终端的操作员输入以及传感器读数的变化。
为了帮助澄清对本文档的解释和本文中描述的状态模型的解释,区分一个状态和一个事件以及两者之间的关系是很有用的
。一个事件是动态的,而不是静态的。它代表了条件的变化,或者更具体地说,是对这种变化的认识
。事件可能涉及传感器读数超过限制、开关改变位置或超过时间限制。
2.2 通信状态模型
通信状态模型定义了设备与主机有无通信连接时的行为。此模型适用于设备和主机之间的逻辑连接,而不是物理连接。
在建立通信链路时发生通信连接事务失败,这是由通信故障,或在回复超时时间限制内未接收S1F14回复,或S1 F14的接收格式不当或结果未设置为0引起的。
在第一次成功完成任何一个S1、F13/F14事务后,建立一个通信链路
。
通信状态模型图和转化表如下:
# | Current State | Trigger | New State | Action | Comment |
---|---|---|---|---|---|
1 | (Entry to COMMUNICATIONS) | System initialization. | System Default | None. | The system default may be set to DISABLED or ENABLED. |
2 | DISABLED | Operator switches from DISABLED to ENABLED. | ENABLED | None. | SECS-II communications are enabled. |
3 | ENABLED | Operator switches from ENABLED to DISABLED. | DISABLED | None. | SECS-II communications are prohibited(禁止). |
4 | (Entry to ENABLED) | Any entry to ENABLED state. | NOT COMMUNICATING | None. | May enter from system initialization to ENABLED or through operator switch to ENABLED. |
5 | (Entry to EQUIPMENTINITIATED CONNECT) | (Any entry to NOT COMMUNICATING) | WAIT CRA | Initialize communications. Set CommDelay timer “expired.” Send S1,F13. | Begin the attempt to establish communications. |
6 | WAIT CRA | Connection transaction failure. | WAIT DELAY | Initialize CommDelay timer. Dequeue all messages queued to send. | If appropriate, dequeued messages shall be placed in spool buffer in the order generated. Wait for timer to expire. |
7 | WAIT DELAY | CommDelay timer expired. | WAIT CRA | Send S1,F13 | Wait for S1,F14. May receive S1,F13 from Host. |
8 | WAIT DELAY | Received a message other than S1,F13. | WAIT CRA | Discard message. No reply. Set CommDelay timer “expired”. Send S1,F13. | Indicates opportunity to establish communications. |
9 | WAIT CRA | Received expected S1,F14 with COMMACK = 0. | COMMUNICATING | None. | Communications are established. |
10 | (Entry to HOSTINITIATED CONNECT) | (Any entry to NOT COMMUNICATING) | WAIT CR FROM HOST | None. | Wait for S1,F13 from Host. |
14 | COMMUNICATING | Communication failure. (See SEMI E4 or SEMI E37 for a protocol-specific definition of communication failure.) | NOT COMMUNICATING | Dequeue all messages queued to send. | Dequeued messages may be placed in spool buffer as appropriate. |
15 | WAIT CR FROM HOST | Received S1,F13. | COMMUNICATING | Send S1,F14 with COMMACK = 0. | Communications are established. |
SECS通信有两种主要状态,即 Disabled 和 Enabled
。系统默认状态必须在设备上可用户配置。一旦实现系统初始化,操作员应能够随时通过设备终端功能或瞬时开关改变通信状态的选择。
Enabled状态:有2个子状态,即:
- 1、Not Communicating
在此状态下,不得发送除S1 F13、S1 F14、S9 Fx以外的任何消息。
设备应丢弃除S1、F13或S1、F14以外的任何从主机接收到的任何信息(建立通信确认)。还应定期尝试通过发出S1,F13来与主机建立通信,直到通信成功建立为止。
Not Communicating 状态有两个子状态,Host Initiated Connect 和 Equipment Initiated Connect。
Not Communicating - Equipment-Initiated Connect 状态:这个状态有两个子态,Wait CRA 和 Wait DELAY。
在进入 Not Communicating 状态时,每当 Equipment Initiated Connect 状态首先被激活时,就会发生向 Wait CRA状态的过渡,通信延迟计时器被设置为“过期”,并立即尝试发送S1,F13。
Not Communicating - Equipment-Initiated Connect - Wait CRA 状态:已发送了一个建立通信请求。该设备将等待主机确认该请求。
Not Communicating - Equipment-Initiated Connect - Wait Delay 状态:已发生了连接事务失败。通信延迟计时器已初始化。该设备将等待计时器过期。
Not Communicating - Host Initiated Connect:这个状态描述了在Communicating状态未激活时,设备响应主机启动的S1、F13的行为。
Not Communicating - Host Initiated Connect - Wait CR From Host:设备等待来自主机的S1、F13。如果接收到S1、F13,则该设备尝试发送带有通信结果为0(成功)的S1、F14。
- 2、Communicaing
通信已经建立。设备可以接收来自主机的任何消息,包括S1、F13。
当设备正在进行通信时,必须维护与主机计算机的SECS通信。此状态一直处于活动状态,直到通信被禁用或发生通信故障。
如果设备处于Communicating子状态下从主机接收到S1、F13,则应该用S1、F14回复结果设置为0的消息。
DISABLED状态:
与主机没有SECS-II通信。如果操作员从 Enabled 切换到 Disabled,所有SECS-II通信必须立即停止。任何排队等待发送的消息都将被丢弃,并且对任何开放的事务和会话的所有进一步行动都将被终止。
被禁用的状态可能是系统的默认状态。
2.3 控制状态模型
控制状态模型定义了主机和设备之间的操作等级。它还指定了操作员如何在不同级别的主机控制上进行交互。
通信状态模型解决了主机和设备交换消息的能力,而控制模型则解决了设备对其接收到的消息采取行动的责任
。
控制模型为主机提供了三个基本的控制级别:
- 最高级别(Remote),主机可以尽可能地控制设备。
- 中间级别(Local)允许主机完全访问信息,但对对设备的操作有一些限制。
- 最低级别(OFF-Line),设备不允许主机控制且只提供非常有限的信息。
控制状态模型图和转换表如下:
控制状态转换表:
# | Current State | Trigger | New State | Action | Comment |
---|---|---|---|---|---|
1 | (Undefined) | Entry into CONTROL state (system initialization). | CONTROL (Substate conditional on configuration). | None | Equipment may be configured to default to ON-LINE or OFF-LINE . |
2 | (Undefined) | Entry into OFF-LINE state. | OFF-LINE (Substate conditional on configuration.) | None | Equipment may be configured to default to any substate of OFF-LINE. |
3 | EQUIPMENT OFF-LINE | Operator actuates ON-LINE switch. | ATTEMPT ON-LINE | None | Note that an S1,F1 is sent whenever ATTEMPT ON-LINE is activated. |
4 | ATTEMPT ON-LINE | S1,F0. | New state conditional on configuration. | None | This may be due to a communication failure, reply timeout, or receipt of S1,F0. Configuration may be set to EQUIPMENT OFF-LINE or HOST OFF-LINE. (这可能是由于通信故障、应答超时或接收到S1、F0所致。配置可以设置为设备脱机或主机脱机。) |
5 | ATTEMPT ON-LINE | Equipment receives expected S1,F2 message from the host. | ON-LINE | None | Host is notified of transition to ON-LINE at transition 7. (主机在过渡7时收到过渡到在线的通知。) |
6 | ON-LINE | Operator actuates OFF-LINE switch. | EQUIPMENT OFF-LINE | None | “Equipment OFF-LINE” event occurs. Event reply will be discarded while OFF-LINE is active.(发生“设备离线”事件。当断线处于活动时,事件响应将被丢弃。) |
7 | (Undefined) | Entry to ON-LINE state. | ON-LINE (Substate conditional on REMOTE/LOCAL switch setting.) (联机(远程/本地交换机设置下的子状态条件。)) | None | “Control State LOCAL” or “Control State REMOTE” event occurs. Event reported based on actual ON-LINE substate activated. (发生“控制状态本地”或“控制状态远程”事件。基于实际已激活的在线子状态报告的事件。) |
8 | LOCAL | Operator sets front panel switch to REMOTE. | REMOTE | None | “Control State REMOTE” event occurs. (发生“控制状态远程”事件。) |
9 | REMOTE | Operator sets front panel switch to LOCAL. | LOCAL | None | “Control State LOCAL” event occurs. |
10 | ON-LINE | Equipment accepts “Set OFF-LINE” message from host (S1,F15). | HOST OFF-LINE | None | Equipment OFF-LINE” event occurs. |
11 | HOST OFF-LINE | Equipment accepts host request to go ON-LINE (S1,F17). (设备接受主机上线的请求(S1、F17)。) | ON-LINE | None | Host is notified to transition to ONLINE at transition 7 |
12 | HOST OFF-LINE | Operator actuates OFF-LINE switch. | EQUIPMENT OFF-LINE | None | “Equipment OFF-LINE” event occurs. |
2.4 设备处理状态模型
记录设备在执行其预期功能时的行为。该处理状态模型高度依赖于设备的工艺、采用的技术和类型。
状态模型图和转换表如下:
处理状态转换表:
# | Current State | Trigger | New State | Action | Comment |
---|---|---|---|---|---|
1 | INIT | Equipment initialization complete.(设备初始化完成。) | IDLE | None | None |
2 | IDLE | Commit has been made to set up. | SETUP | None | None |
3 | SETUP | All setup activity has completed and the equipment is ready to receive a START command. (所有安装活动已完成,设备准备接收启动命令。) | READY | This activity is equipment-specific. (此活动是特定于设备的。) | None |
4 | READY | Equipment has received a START command from the host or operator console. | EXECUTING | This activity is equipment-specific. | None |
5 | EXECUTING | The processing task has been completed. | IDLE | None | None |
6 | PROCESSING ACTIVE | Equipment has received a STOP command from host or operator console. (设备已收到来自主机或操作员控制台的停止命令。) | IDLE | None | None |
7 | PROCESSING ACTIVE | Equipment has received an ABORT command from host or operator console. (设备已从主机或操作员控制台收到中止命令。) | IDLE | This activity is equipment-specific. | None |
8 | PROCESS | The equipment decides to PAUSE due to a condition such as alarm.(由于报警等情况,设备决定暂停。) | PAUSE | This activity is equipmentspecific. | For this type of problem, an operator assist is usually required.(对于这类问题,通常需要一个操作员的协助。) |
9 | PROCESS | Equipment has received a PAUSE command from host or operator console.(设备已收到来自主机或操作员控制台的暂停命令。) | PAUSE | This activity is equipmentspecific. | None |
10 | PAUSE | Equipment has received a RESUME command from host or operator console.(设备已收到来自主机或操作员控制台的恢复命令。) | Previous PROCESS substate | This activity is equipmentspecific. | None |
IDLE:设备正在等待指示。
PROCESSING ACTIVE:此状态是存在处理程序执行上下文的所有子态的父状态。
PROCESS:此状态是指处理程序的主动准备和执行的子状态的父状态。
SETUP:在这种状态下,满足了工艺执行所需的所有外部条件,如确保材料存在于设备上,输入/输出端口处于正常状态,温度和压力值等参数在限制范围内等。如果所有的设置操作都已经完成,将转换到下一个状态。
READY:在这种状态下,设备已准备好要执行处理程序,并正在等待来自操作员或主机的启动命令。
EXECUTING:处理程序执行中。
PAUSE:处理程序暂停。
3、 设备功能和场景
功能是由半导体制造设备所执行的操作。这些操作是通过使用SECS-II通信接口的消息发起的。场景是一组为了实现特定功能的SECS-II消息。
下列是GEM所定义的场景:
- Establish Communications
- Event Notification
- Dynamic Event Report Configuration
- Variable Data Collection
- Trace Data Collection
- Limits Monitoring
- Status Data Collection
- On-line Identification
- Alarm Management
- Remote Control
- Equipment Constants
- Process Program Management
- Material Movement
- Equipment Terminal Services
- Error Messages
- Clock
特别注意,下面的场景只是特别简单的说了个过程,实际上的过程会复杂特别多。
3.1 建立通信
建立通信提供了一系列在系统初始化或通信节点丢失通讯之后正式建立通信的方法,以及通知远程通信节点通信发生了中断。
3.2 数据收集
数据收集使主机可以通过事件报告、跟踪数据报告、阈值监视和查询所选状态或其他变量数据来监视设备活动。
3.2.1 Event Data Collection(事件数据报告)
事件报告为用户提供了一种动态和灵活的方法,定制化地满足主机对数据表示和呈现的个性需求。基于事件的数据收集方法可以主动向设备活动的主机提供通知,并且在监测设备状态和同设备保持同步。
3.2.2 Variable Data Collection (变量数据收集)
该功能允许主机查询设备数据变量,用于初始化和同步。
3.2.3 Trace Data Collection (跟踪数据收集)
跟踪数据收集提供了一种定期采样数据的方法。这种基于时间的数据收集方法便于跟踪和分析数据的趋势,便于在某个时间段内重复应用程序,便于监测连续数据。
3.2.4 Limits Monitoring (阈值监视)
阈值监视能力为主机提供了一种监控设备状况的灵活、高效和异步方法,使设备之间一致。它消除了主机对当前状态值不断轮询设备的需要。此外,该功能允许主机根据需要实现监控范围内的更改。该功能既适用于生产操作和诊断/测试场景,也适用于统计过程控制。
3.2.5 Status Data Collection (状态数据收集)
状态数据收集功能使主机可以向设备查询选定的状态信息,便于和设备状态保持同步。
3.2.6 On-line Identification (在线确认)
设备在线和通信时的时候接受到来自主机的S1、F1,并用S1、F2作出响应。
3.3 Alarm Management (报警管理)
报警管理功能使主机可以管理设备上发生的报警状态,获得报警通知。主机可以打开或关闭某个报警,要求设备上传警报信息等。
3.4 Remote Control ( 远程控制)
远程控制功能使主机按不同级别对设备请求执行操作。设备向主机提供的操作包括:开始工艺、选择工艺配方、停止工艺、暂停工艺、恢复工艺和取消工艺。
3.5 Equipment Constants (设备常量)
该功能为主机提供了一种读取和更改设备上所选设备常量值的方法。
3.6 Process Program Managemen(工艺程序管理)
工艺程序和配方必须通过设备和主机系统之间的交互来进行管理。工艺程序管理提供了一种方法来传送或接收工艺程序,并在主机和设备之间共享这些工艺程序或配方的管理。
工艺程序允许工程师设置和修改设备的工艺和和工艺参数,以达到不同的结果。不同的产品可能需要不同的工艺程序,而通常相同的工艺程序将用于所有大量给定的产品。
工程师必须能够创建,修改,并从设备存储中删除程序。
为了主机确认设备上有适当的工艺程序,必须有一种从设备到主机及从主机到设备的传送工艺程序的方法。主机还可能需要从设备的存储器中删除程序,以便为下载新程序腾出空间。
此外,当工艺程序的内容或状态发生变化时,必须随时通知主机。
3.7 Material Movement(原料运输)
原料运输功能包括原料在设备、缓冲区和载具之间的物理传输。该功能可以通知主机原料是否已从设备的某个端口接收或传输。
3.8 Equipment Terminal Services (设备终端服务)
设备终端服务允许主机能够在设备的显示器上显示信息,操作员能够在设备工作站与主机交换信息。
3.9 Error Messages (错误消息)
错误消息向主机提供由设备检测到的特定消息或通信故障的原因的信息。
3.10 Clock( 时钟)
时钟功能使主机能够管理与设备相关的与时间相关的活动和事件。
时钟的主要目的是为收集事件和警报报告提供时间戳。时间戳的使用利于分清事件或警报的发生顺序,并使主机能够调度设备行为。
该功能使主机能把设备的内部时钟设定为某个特定值,同时设备也可以向主机询问当前日期和时间。
3.11 Spooling(共享池)
Spooling功能使设备可以在发生通信错误时存储消息并在通信修复之后继续向主机发送这些消息。数据缓存的目的在于当发生通信错误时保存消息以免信息丢失。
3.12 control (控制)
控制功能用于配置并操作控制状态图,使用户或主机可以修改设备的控制相关行为。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)