本文是EAP系统介绍的第三篇,主要是半导体SEMI通讯协议方面的介绍。
SEMI通讯协议属于SEMI协议中的软件部分,SEMI协议是SEMI(国际半导体产业协会)制定的一系列标准,涵盖了光伏和半导体制造的各个方面:3D-IC、设备自动化(硬件和软件)、厂务设施、气体、高亮度LED、MEMS/NEMS、材料、微光刻、封装、光伏、工艺化学品、硅材料及过程控制等。SEMI协议对产业规范和发展起到十分关键的作用。
SEMI协议组成(来源于peergroup)
下面是是半导体通讯协议SECS/GEM的学习分享,如有错误疏漏或补充的,欢迎评论区指出!
SECS/GEM协议概述
SECS(SEMI Equipment Communications Standard)/GEM(Generic Equipment Model)是半导体行业用于设备与Host端(一般是EAP)数据通信的协议。它是促进不同设备制造商(蚀刻、沉积、光刻、清洁等)制造的设备和Host端(如EAP)之间通信的消息标准。在自动化晶圆厂中,该接口可以启动和停止设备处理,收集量测数据,给机台设备下达各种命令。SECS/GEM标准以定义的方式完成所有这些操作。
SECS/GEM协议在CIM生态中的作用
标准描述
SECS/GEM协议定义涵盖的范围很广,小到设备与上层Host端通讯时的细节,大到一台设备在各种情况下应有的行为。在我们通常谈到的SECS/GEM标准中,一般包含了SEMI E4 (SECS-I)、 SEMI E5 (SECS-II)、 SEMI E30 (GEM) 和 SEMI E37 (HSMS),它们之间的关系如下图所示。SECS/GEM协议的组成
SECS/GEM协议分层结构SECS/GEM协议与一般网络分层结构类似,其中SECS-I和HSMS属于传输协议标准,描述了数据是如何通过物理媒介在设备与主机之前传输的。SECS-II属于消息格式标准,定义了在设备与主机之前进行双向会话时所使用的消息格式。GEM属于特殊功能标准,定义了通过通信链路所能看到的设备接口,指定了根据特定消息设备所应该采取的对应行为。
SECS-I
属于传输协议标准,描述数据是如何通过物理层在设备与主机之间进行传输的,通过RS-232通信来传送SECS-II数据的规范。 SEMI E4: SEMI Equipment Communications Standard 1 Message Transfer.SECS-I定义了使用RS-232作为传输媒介时点到点的数据通信。通信使⽤的是⼀个串行发送的8比特字符串,以及⼀个起始位和⼀个终⽌位。通信是双向和异步的,但是同⼀时间媒介上只能有⼀个方向的数据进⾏传输。数据被分块进⾏传输,每个数据块最⼤为254字节,⼀个消息最多能包括32767个数据块。 SECS-I标准是⽤于串⼝通讯的设备,这种设备基本都是20年前的⽼旧设备,近些年的新设备已经不再使⽤此标准了。因此对于此标准的开发需求已经很少了。硬件通讯以RS232串⼝通信协议为通讯标准,8-N-1的传输⽅式,并且采⽤半双⼯⽅式通讯,波特率⼀般采⽤9600。
数据块传输协议数据块传输协议 (Block Transfer Protocol) ⽤于建立通信并为数据块的传输提供环境。第⼀消息 (primary message) 或第⼆消息 (secondary message) 可能需要分块传输。协议使⽤单个字节进⾏握⼿,标准定义了四个握⼿编码,⽤于控制数据流,四个标准编码如下表所示:
握手信号:
标准还定义了两个超时参数,⽤于检测通信故障。下图显⽰了该协议的握⼿过程以及 T1 和 T2 两个超时参数。
T1 (Inter-Character Timeout):表示在接收数据块时每个字符之间的时间间隔。 T2 (Protocol Timeout):表示发送 ENQ 之后到接收 EOT 的时间间隔。
消息格式块数据(block data)是单块消息或多块消息中的数据部分,包括⼀个长度字节、N 个字节的数据和两个字节的校验和,其结构如下图所示。
其中各项说明如下:- Length Byte:表⽰随后有多少个字节的数据(即 N bytes),不包括最后2个字节的校验和。- Checksum:只计算N Data Bytes的校验和。- N Data Bytes:表⽰消息块中的数据部分,长度范围是10⾄254字节,它由⼗个字节的头和消息数据组成。- Message Data:表⽰消息的数据部分,由编码后的SECS-II消息构成。- 10 Byte Header:⽤于描述块数据中的数据内容,包括Device ID、Message ID、Block Number 和System Bytes,如下图所示:
10 Byte Data 结构中各项说明如下:
- Device ID:头中的第⼀和第⼆字节,其第⼀个⽐特为R-bit,其作⽤是指出消息传输的⽅向。
- Message ID:头中的第三和第四字节,其第⼀个⽐特为Wait-bit,⽤于指⽰消息的发送者是否需要回复。
- Block Number:头中的第五和第六字节,其第⼀个⽐特为End-bit,⽤于指⽰这个是否是消息的最后⼀个块。
- System Bytes:头的最后四个字节,第七和第⼋字节表示source ID,⽤于表⽰消息的发送者,第九和第⼗字节表示transaction ID,⽤于唯⼀标识每个发送的消息。
消息示例此通信标准建议每次可传输的字节最多为254,如果一个消息的大小<254个字节,则以⼀个块的形式进行传输。如果一个消息的大小>254个字节,则以分块的形式进行传输。
HSMS
属于传输协议标准,描述数据是如何通过物理层在设备与主机之间进行传输的,使用的传输媒介是以太网。通过以太网来传送SECS-II数据的规范。
SEMI E37: High-speed SECS Message Services Generic Services.HSMS可以作为SECS-I以及其他⼀些⾼级通信环境的替代。
HSMS⼜包括了两个⼦标准,分别是HSMS-SS和HSMS-GS 。HSMS-SS对母标准中的操作进⾏了简化,以便于实际应⽤。HSMS-GS定义了使⽤HSMS访问多个⼦实体的操作。
通讯连接HSMS可以使⽤任何标准 TCP/IP API 进⾏开发,⽐如BSD socket、TLI等。使⽤标准的 TCP/IP 寻址,默认的端⼝号为5000。建⽴连接的过程如下图所示:
HSMS把通信实体分为被动模式和主动模式两种:
被动模式:处于被动模式的实体侦听线路,接收主动模式的实体的连接请求。
主动模式:处于主动模式的实体发起连接请求。
被动模式下建⽴连接的步骤包括: (1) 获得⼀个连接端点,在指定的端⼝进⾏侦听; (2) 侦听到远程端点发送的连接请求; (3) 接收连接请求,发送确认。
主动模式下建⽴连接的步骤包括:(1) 获得⼀个连接端点 ;(2) 向指定端⼝号的远程端点发起连接; (3) 等待远程端点接收连接并返回确认。
状态转换
以上为HSMS的状态转换图,各状态说明如下:
- Not Connected状态:实体开始侦听,但是未建⽴任何TCP/IP连接或者之前建⽴的TCP/IP连接已经断开;
- Connected状态:已经建⽴⼀个TCP/IP连接,包括Not Selected和Selected两个⼦状态;
- Not Selected状态:Connected的⼦状态,表⽰没有创建HSMS会话或之前的会话已经结束;
- Selected状态:Connected 的⼦状态,表⽰⾄少创建了⼀个HSMS会话。
消息格式HSMS 消息以字节的⽅式作为单个的流进⾏传输,其格式如图所⽰: - Message Length:⼀个 4 字节⽆符号整数,表⽰其后Message Header加上Message Text总的字节数,其最⼩值为⼗字节。
- Message Header:消息头长度为⼗字节,格式如下图所⽰:
其中各项说明如下:
- Session ID:⼗六⽐特⽆符号整数,最⾼位必须为零,剩下⼗五⽐特⽤于唯⼀标识⼀台设备。
- Header Byte 2:对于不同类型的消息取值不同。
- Header Byte 3:对于不同类型的消息取值不同。
- PType:表⽰类型(Presentation Type)为⼋⽐特⽆符号整数,⽤于枚举表⽰层消息类型,即消息头和消息内容是以何种⽅式编码的。
- SType:会话类型(Session Type)为⼋⽐特⽆符号整数,其取值类型如下表所示:
- System Bytes:四字节⽆符号整数,⽤于唯⼀标识⼀次消息交互。
HSMS 中的控制消息包括:
Select.req:SType=1,PType=0;
Select.rsp:SType=2,PType=0,Header Byte 3 为SelectStatus项;
Linktest.req:SType=5,Ptype=0,Session ID=0xFFFF;
Linktest.rsp:SType=6,Ptype=0,Session ID=0xFFFF;
Separate.req:SType=9,PType=0;
Timeout设定
T3 Reply Timeout: 指定期望回复消息的实体等待该回复的最长时间。
T5 Connection Separation Timeout: 指定连续尝试连接到给定远程实体之间必须经过的时间。
T6 Control Transaction Timeout: 指定控制事务在被视为通信故障之前可能保持打开的时间。
T7 Not Selected timeout: 指定TCP/IP连接在被视为通信失败之前可以保持未选择状态(即没有HSMS活动)的时间。
T8 Network Inter-character Timeout: 单个HSMS报文连续字节之间的最长时间。
SECS-II属于消息格式标准,定义了在设备与主机之间进行双向会话时所使用的消息格式。 SEMI E5: SEMI Equipment Communications Standard 2 Message Content.SECS-II所有的消息按照其⾏为分类,称为Stream,每个Stream⼜包括具体的消息,称为Function。标准还定义了消息的结构,消息由数据项和数据项序列构成。SECS-II还规定了事务协议,⽤于管理消息的交换、分块等。
消息分类
(1)Stream编号含义
(2)常用指令
消息结构SECS-II消息由两种数据结构组合⽽成:数据项(item)和列表(list)。采取这样的结构的⽬的是从逻辑上划分消息内容,使消息可以自描述内部结构。
数据格式:
GEM
属于设备功能标准,GEM定义了通过通信链路所能看到的半导体设备的⾏为。SECS-II标准定义了在主机和设备之前交换的消息格式以及相关数据项。GEM标准在此基础上定了在何种情况下使⽤哪些SECS-II消息以及会发⽣哪些⾏为。
SEMI E30: Generic Model for Communications and Control of Manufacturing Equipment (制造设备通信和控制的通用模型).Host端在任何时间都可能发起任何GEM消息场景,设备必须按照GEM标准中的描述做出响应。
状态模型
状态模型从主机角度以简洁易懂的⽅式描述设备⾏为。不同设备的状态模型在有些⽅⾯相同(⽐如通信)但是在其他⽅⾯不同(⽐如加⼯)。因⽽需要把⼀个设备分为并⾏的⼏个部分,这些部分既可以单独的建模⼜可以合并起来,如下图所示:
通讯状态
通信状态模型定义了关于设备与主机之间的通讯行为,描述的是主机与设备之间交换消息的功能,GEM 中的通信状态如下图所示:
控制状态
控制状态模型定义了主机与设备之间的操作等级,此外还说明了操作员应该如何控制主机的不同层次。通信状态模型描述的是主机与设备之间交换消息的功能,控制状态模型则描述设备应该如何响应它所收到的消息。 控制状态模型为主机提供了三个基本层次的控制。在最⾼层次(REMOTE),主机可以最⼤程度的控制设备。在中间层次(LOCAL)主机 可以访问设备的所有信息,但对设备的操作有所限制。在最低层次(OFF-LINE)设备不允许主机控制且只能提供很有限的信息。控制状态图如下图所⽰:
设备加工状态
设备加⼯状态模型主要取决于设备加⼯、所采⽤的技术和类型。然⽽仍然可以⽤⼀个模型表⽰其中共同的部分。下图表⽰了⼀个实现模型,该模型示范了设备加⼯模型所需要的特性。
数据采集
数据收集功能使主机可以通过事件报告、跟踪数据报告、阀值检测和查询选定状态等来监测设备的活动,并通过收集到的数据完成优化控制。
(1)事件数据收集:事件数据收集为⽤户提供了⼀种灵活的⽅法来实现设备相关的数据表⽰以及如何向主机报告。基于事件的数据收集⽅法可以⾃动向主机提供设备的活动信息,并且可以检测设备状态以及同设备保持同步。其通信场景如下图:
(2)变量数据收集: 这个功能使主机可以查询设备的数据变量,以便于初始化和同步。通信场景如下图所示:
数据收集功能方面还有跟踪数据收集,阈值监测,状态数据收集等。
此外,GEM还有远程控制,加工程序管理,设备终端服务,原料运输管理,时钟,数据缓存等功能。
总结
以上是SECS-I,SECS-II,HSMS与GEM的介绍,SECS/GEM等SEMI半导体通讯协议对于行业生态非常重要,但随着先进制程的发展以及数据量激增,传统的SECS/GEM协议已经不能满足要求,因此EDA interface-A应运而生,EAP系列下一篇将分享interface-A协议的相关知识。
由于协议涉及的细枝末节较多,所以本文有的地方介绍比较粗略,若想了解更多详细协议内容,公众号“计算机集成”回复 SEMI协议 以获取详细文档。如有疏漏,欢迎补充,共同学习,谢谢大家!
往期半导体CIM系统介绍推荐阅读
参考资料:- SEMI Standards
关注一下,后续有更多精彩内容~
评论记录:
回复评论: