SECS半导体设备通讯-3 SECS-II通信标准
一 SECS-II 概述
SECS-II 标准定义了使用如SECS-I、HSMS等传输协议在设备和主机之间交换的消息的形式和含义。
定义了以消息的形式在设备和主机之间传递信息,消息按其行为分类,称为Stream。有很多不同的行为Stream,每个Stream又包括具体的消息,称为Function。
标准还定义了消息的结构,消息由数据项和数据项列表 ( items and lists of items ) 构成。该结构允许自描述数据格式,以保证对消息的正确解释。
SECS-II还规定了事务协议,用于管理消息的交换、分块等,对SECS-II实现提出了一些最低要求。
二 Stream and Function
所有的消息按照行为分为不同的Stream,在每种Stream中再按照其功能分为Function,即一个Stream中的一个Function对应一种具体行为功能的消息。
2.1 Strem的分类
- Stream 1 Equipment Status:设备状态;
- Stream 2 Equipment Control and Diagnostics:设备控制和诊断;
- Stream 3 Material Status:原料状态;
- Stream 4 Material Control:原料控制;
- Stream 5 Exception Handling:异常处理;
- Stream 6 Data Collection:数据采集;
- Stream 7 Process Program Management:工艺程序管理;
- Stream 8 Control Program Transfer:控制程序传输;
- Stream 9 System Errors:系统错误;
- Stream 10 Terminal Services:终端服务;
- Stream 11 Host File Services (Deleted):主机文件服务(已删除);
- Stream 12 Wafer Mapping:晶片图形布置;
- Stream 13 Data Set Transfers:数据集传输;
- Stream 14 Object Services:对象服务;
- Stream 15 Recipe Management:配方管理;
- Stream 16 Processing Management:工艺进程管理;
- Stream 17 Equipment Control and Diagnostics:设备控制和诊断;
- Stream 18 Subsystem Control and Data:子系统控制和数据。
2.2 Stream和Function的编号
Stream和Function按照数字进行编号。所有的Primary Message的Function编号为奇数,其对应的Secondary Message(即 Reply Message)的Function编号为偶数且为其Primary Message的Function编号加1。
如果Primary Message不需要应答,则其对应的偶数编号(Primary Message Function 编号加1)的Function不使用,保留。
所有Stream中Function编号为0的Message保留,用于中止事务。
下列Stream和Function编号组为SECS-II标准所定义:
- Stream 0, Functions 0-255;
- Streams 1-63, Functions 0-63;
- Streams 64-127, Function 0。
下列Stream和Function可由用户自定义:
- Streams 1-63, Functions 64-255;
- Streams 64-127, Functions 1-255。

三 事务和会话协议
3.1 事务
事务:是信息交换的基础。一个事务由不需要Reply的Primary Message或需要Reply的Primary Message及其Reply Message组成。
下列是SECS-II在事务层面所规定的要求:
- 使用S1F2来响应S1F1;
- 对于接收到的任何设备无法处理的消息,使用Stream 9发送相应的错误消息;
- 格式化任何其他受支持的消息;
- 在检测到设备上的事务超时后,向主机发送S9F9;
- 在收到Function 0的Message作为对Primary Message的回复后,终止相关事务。该设备不应向主机发送任何错误消息。
3.2 会话
会话:是用于完成特定任务的一系列一个或多个相关事务。会话应包括完成任务所需的所有事务,会话结束时,会话双方应释放相关资源。
会话超时:表示会话在规定时间内未完成。会话超时时间和检测有用户应用程序自定义。
会话超时将终止会话的进一步操作,并将允许清除任何已提交的资源。在设备上检测到会话超时后,应发送S9F13给主机。
SECS-II中定义了7种类型的会话:
1. 一个无需回复的Primary Message是最简单的会话。此消息必须是一个单块的SECS-II消息。
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. 发起端可以向响应端请求需要一段时间才能获取的信息(例如,操作员的输入)。
会话中的第一个事务请求信息,并且响应端以三种方式之一响应:(1)返回信息,(2)响应端表示不能或不会获得信息,(3)响应端表示将在随后的事务中获得并返回信息。
对于方式(3),响应端将在信息可用时启动后续事务返回信息。方式(3)是一个 request / acknowledge / send / acknowledge conversation。
四 消息的数据结构
所有根据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的实际数据。
下图是ItemHeader的结构图。

Header的第1个字节为Format byte,其后的字节为Length byte。
Format byte的第1位和第2位:
定义Format byte后面有几个字节来表述Item Body的长度。取值只能1、2、3。如果值为2,则表示有2个字节表述Item Body的长度,即第2个和第3个字节。值为0是非法的,会产生错误。
Format byte的第3位至第8位:
定义数据的格式,即ItemBody中的字节数据类型。下图为数据类型定义表:

4.2 List
List是一组有序的元素,其中元素可以是Item或List。
List的Header与数据类型为0的Item的Header形式相同。不过List的Header中的长度表示List中元素的个数,Item的Header中的长度表示数据字节的个数。
4.3 Localized Character String Items
本地化字符串项是一个用于表示由多字节字符组成的字符串的Item。其Header中的Format Code为22(Octal)。它由string header和string组成。
因为字符有许多不同的编码方案,所以有一个附加的string header来表述字符集。
string header 是一个2字节16位的数字,它在 Item Header 之后,在string之前。
string header 是 Item 的 实际数据的一部分,所以它的长度计算包含在Item Header 的 Length byte 中。
下图为string header的编码集对应。

4.4 不同Item的数据实例
1. 包含一个二进制数据10101010的Item。
00100001 Item, binary, 1 length byte
00000001 1 byte length
10101010 data byte
01000001 Item ASCII, 1 length byte
00000011 Three bytes long
01000001 ASCII A
01000010 ASCII B
01000011 ASCII C
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
10010001 Item, 4-byte floating point
00000100 4 bytes (4/4=1 number)
f f f f f f f f
f f f f f f f f Floating point number
f f f f f f f f
f f f f f f f f
说明:
SECS-II 定义的标准Stream Fuction消息,这些Stream Function的描述和含义未做进一步阐述 . . .
标准消息所应使用的数据项未作进一步阐述 . . .
未完待续 . . .
以上为SECS通信基础知识的整理-3。
SECS半导体设备通讯-3 SECS-II通信标准的更多相关文章
- SECS半导体设备通讯-1 SECS的基本概念
一 什么是SECS SECS(SEMI Equipment Communication Standard),半导体设备通讯标准. 此标准由SEMI (Semiconductor Equipment a ...
- SECS半导体设备通讯-4 GEM通信标准
一 概述 GEM标准定义了通信链路上的半导体设备的行为. SECS-II标准定义了在主机和设备之间交换的消息和相关数据项.GEM标准则定义了在哪种情况下应该使用哪些SECS-II消息以及由此产生的结果 ...
- SECS半导体设备通讯-2 HSMS通信标准
一 HSMS通信标准概述 HSMS定义了使用 TCP/IP 作为物理传输媒质时的通信接口. HSMS使用TCP/IP流支持,提供了可靠的双向同步传输,可以用来作为SECS-I通信以及其他更高级的通信环 ...
- secs/gem协议
介绍SECS/GEM SEMI SECS/GEM标准概述 SECS/GEM是由国际半导体设备与材料协会(SEMI)制定的连接性标准.此连接性标准用于在设备和工厂的资讯和控制系统间建立通讯. SECS是 ...
- TD-SCDMA风雨20年:中国3G标准的由来以及国家通信战略
.国际电信标准是咋回事? 当年作为通信专业的学生,我曾长期困惑一个问题,为什么同一项通信技术总会有美国和欧洲两种国际标准?比如电话语音的数字化就有欧洲A律和美国u(谬)律两种. 学习后发现,两种标准的 ...
- STM32学习笔记(十) CAN通讯测试(环回模式)
1.CAN通讯的理解 想学习CAN通讯,那么要对通讯协议有一定的认知.通讯协议是指通信双方对数据传送控制的一种约定.约定中包括对数据格式,同步方式,传输速度,传送步骤,检纠错方式以及控制字符定义等问题 ...
- openfire+asmack搭建的安卓即时通讯(一) 15.4.7
最进开始做一些android的项目,除了一个新闻客户端的搭建,还需要一个实现一个即时通讯的功能,参考了很多大神成型的实例,了解到operfire+asmack是搭建简易即时通讯比较方便,所以就写了这篇 ...
- IM-即时通讯技术概述
IM-即时通讯技术概述 简述 即时通讯技术(IM)支持用户在线实时交谈.如果要发送一条信息,用户需要打开一个小窗口,以便让用户及其朋友在其中输入信息并让交谈双方都看到交谈的内容.大多数常用的即时通讯发 ...
- Mac OS X 在捕捉AppLAN通信包
Mac OS X 在捕捉AppLAN通信包 一.拍摄模式 由于工作关系.经常要分析App wifi通讯协议.我的开发电脑是Mac Book. 大体有例如以下几种模式: + App与server进行ht ...
随机推荐
- 串口应用:遵循uart协议发送N位数据(状态优化为3个,适用任意长度的输入数据,取寄存器中的一段(用变量作为边界))
上一节中成功实现了发送多个字节的数据.把需要发送的数据分成多段遵循uart协议的数据依次发送.上一节是使用状态机实现的,每发一次设定为一个状态,所以需要发送的数据越多,状态的个数越多,代码越长,因而冗 ...
- P4289 【一本通提高篇广搜的优化技巧】[HAOI2008]移动玩具
[HAOI2008]移动玩具 题目描述 在一个 4 × 4 4\times4 4×4 的方框内摆放了若干个相同的玩具,某人想将这些玩具重新摆放成为他心中理想的状态,规定移动时只能将玩具向上下左右四个方 ...
- CF1702A Round Down the Price 题解
题意:给定一个数 \(n\),找出一个数为 \(10^k \leq n\),求二者的差. 建立一个数组,储存 \(10^k\),每次直接查询求差输出. 注意数据范围. #include<cstd ...
- java------注释、关键字、字面量
注释(对代码的一种解释说明) 单行注释 // 多行注释 /* */ 文档注释 /** */ 注释使用细节: 注释内容不参与编译和运行,所以只在java文件中存在 不管是单行注释还是多行注释 ...
- 利用基于Python的Pelican打造一个自己的个人纯静态网站
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_100 其实呢这么多年以来我一直建议每个有技术追求的开发者都要有写技术博客记笔记的良好习惯,一来可以积累知识,二来可以帮助别人,三来 ...
- Vue3.0工程创建 && setup、ref、reactive函数 && Vue3.0响应式实现原理
1 # 一.创建Vue3.0工程 2 # 1.使用vue-cli创建 3 # 官方文档: https://cli.vuejs.org/zh/guide/creating-a-project.html# ...
- 深入Synchronized各种使用方法
深入学习Synchronized各种使用方法 在Java当中synchronized通常是用来标记一个方法或者代码块.在Java当中被synchronized标记的代码或者方法在同一个时刻只能够有一个 ...
- @Autowired注解 --required a single bean, but 2 were found出现的原因以及解决方法
@Autowired注解是spring用来支持依赖注入的核心利器之一,但是我们或多或少都会遇到required a single bean, but 2 were found(2可能是其他数字)的问题 ...
- 倒计时2日!基于 Apache DolphinScheduler&TiDB 的交叉开发实践,从编写到调度让你大幅提升效率
当大数据挖掘成为企业赖以生存.发展乃至转型的生命,如何找到一款好软件帮助企业满足需求,成为了许多大数据工程师困扰的问题.但在当下高速发展的大数据领域,光是一款好软件似乎都不足以满足所有场景业务需求,许 ...
- Apache DolphinScheduler 使用文档(5/8):使用与测试
本文章经授权转载,原文链接: https://blog.csdn.net/MiaoSO/article/details/104770720 目录 5. 使用与测试 5.1 安全中心(Security) ...