半导体行业通信标准SECS/GEM协议一看就懂的
半导体行业通信标准SECS/GEM透析
HSMS通信的设备端通常为客户端(Equipment)(也可称为Active 在通信中主动连接对方的),工厂会部署服务端(Host)(也可称为Passive 被动等待对方连接)。
一、HSMS报文格式
HSMS 报文详情如下
二、消息长度:
①消息长度:用一个 4 字节无符号整数表示,它表示消息头部和消息文本的总字节数,在传输过程中,高字节在前,低字节在后。消息长度的最小值是 10。和 SECS-I 中块的信息头部类似,HSMS 消息头部的字节数也是 10(注意:这个长度不包含自己的4个字节)。
如:如果要发送的如图1所示的报文,那消息长度就是 “报文头”+“数据内容的长度”。即22个字节。对应的16进制就是16.所以消息长度为:00 00 00 16。
图一
三、消息头部:
HSMS 消息头部各个字节的含义见表 1.1。
表1.1 HSMS 消息头部字节含义
SxFy表示所有的功能。通常SxFy中y是奇数则是发送消息,y是偶数表示响应消息.
① 会话标识:设备的ID标记设备的唯一标识,低位在后,高位在前。
如:00 00
②头部字节2:在数据消息中,它表示等待位(W-Bit)和消息的 SECS 流(SECS Stream)。【如果这个指令需要回复,则8位里面,最高位是1。如果这个指令不需要回复则8位里面最高位是0】一般都是1000+Stream(S1F1就是“0001”)
如:S1F1,头部字节2:“1000 +0001”,前面的1000(0x80)是一般都是这个,后面+的就是S后面跟着的数值,即1000 0001,16进制就是 81。
③头部字节3:用法和头部字节 2 相似,不同之处在于在数据消息中,它表示 SECS 功能 (SECS Function);表示类型是一个 8 位无符号整数。
如:S1F1,在F后面跟着的“1”就是上述要填入头部字节3的值。即 01
④表示类型Ptype:消息的编码格式(SECS-II 编码格式 取值为0 ,所以该位就是0),一般都是00。
⑤会话类型SType:消息的类型(等于0表示为数据信息,不等于0表示控制信息),具体消息类型如下表2.2所示。
表2.2 SType不同取值表示的消息类型
⑥系统字节:标记这次指令的ID,通常用于超时判断(响应时依据发送者指令的最后4字节作为回复,发送时生成不重复的4个字节)。
如:
四、消息文本(构成:长度字节数&数据项格式代码 + 长度字节+实际数据)
SECS-II 协议定义了设备和主机之间传送消息的格式和含义,在 SECS-II 协议中,传输的消息使用两种数据结构进行格式化:数据项(Item)和列表(List)。SECS-II 协 议使用数据项和列表对消息进行逻辑划分(Logical Division)。
+
①长度字节数:定义了数据项的格式和表示数据项长度的字节数,第 1、2 位表示长度字节的个数,其取值范围是 1-3(因为只有两个字节,所以一共只有0,1,2,3这4种取值情况)。
如:发送的是“hellosecs”,总共就是9位,一个字节16位。所以一个字节就可以放下。所以长度字节数位1,即01。
②数据项格式代码:第 3-8 位定义了数据项的格式,即数据项的数据类型,目前 SECS-II 协议一共定义了 16 种数据项类型代码,它们的取值和含义如表 3.3 所示。
表3.3 SType不同取值表示的消息类型
如:当发送是ASCLL码,数据项格式代码为010000
③长度字节:表示数据项内容(Item Body/IB)的长度。
如:发送“ABC123”,长度是6,那长度字节组就是0000 0110。
④实际数据:
如:如果发送字符串“ 12A”,对应的ASCLL码就是00110001、00110010、 01000001。
SECS-II 的 例子1:
例如需要发送一个字符串是ABC,
则类型字节就是前六位01000,因为ABC数量为3,1个字节就可以表示,所以最后2位为01,即长度字节组的长度为1。
长度字节组就是00000011表示3,
而ABC去查对应的ASCII码,也就是01000001(十进制就是65),01000010(66),01000011。
所以最终需要发送的数据用字节表示就是
01000001 格式字节(01000+01)
00000011 长度字节
01000001 “A” 实际数据
01000010 “B” 实际数据
01000011 “C” 实际数据
注释:1字=2字节,1字节=8位,1字=16位。
半导体行业通信标准SECS/GEM协议一看就懂的的更多相关文章
- secs/gem协议
介绍SECS/GEM SEMI SECS/GEM标准概述 SECS/GEM是由国际半导体设备与材料协会(SEMI)制定的连接性标准.此连接性标准用于在设备和工厂的资讯和控制系统间建立通讯. SECS是 ...
- SECS半导体设备通讯-2 HSMS通信标准
一 HSMS通信标准概述 HSMS定义了使用 TCP/IP 作为物理传输媒质时的通信接口. HSMS使用TCP/IP流支持,提供了可靠的双向同步传输,可以用来作为SECS-I通信以及其他更高级的通信环 ...
- Python 标准类库- 因特网协议于支持之UUID
标准类库- 因特网协议于支持之UUID by:授客 QQ:1033553122 测试环境 python3 UUID生成函数定义 uuid.getnode() 获取一个表示硬件地址的48位正整数.第 ...
- Python 标准类库 - 因特网协议与支持之socketserver
标准类库 - 因特网协议与支持之socketserver by:授客 QQ:1033553122 socketserver 模块,简化网络服务编写任务. 创建服务的步骤 1 通过子类化BaseReq ...
- Android之Http通信——1.初识Http协议
Android之Http通信--1.初识Http协议 引言: 今天是六一儿童节,先在这里给各位超龄儿童说声节日快乐哈~( ╯□╰ ),小猪也象征性地给群里的小朋友们派了红包-嗯,忙碌的五月最终过去了, ...
- 打造游戏金融小程序行业测试标准腾讯WeTest携各专家共探品质未来
在获客成本不断上升的时代里,产品品质愈发是互联网应用的决胜标准.随着用户需求更加多样,开发者不仅要深挖应用功能,更需要面向业务所在领域,建立全面.专业的测试架构,掌控开发进度.提高开发效率,才能在互联 ...
- 半导体行业MES系统应用案例
半导体行业的发展是受惠在集成电路上的,但是收到技术瓶颈的阻碍,所以工业时期对半导体行业就造成了严重的冲击. 为了推动半导体行业快速发展,扭转像IBM.东芝以及富士康等IDM大厂利用晶圆代工对半导体制造 ...
- 第14讲 | HTTP协议:看个新闻原来这么麻烦
第14讲 | HTTP协议:看个新闻原来这么麻烦 http://www.163.com 是个 URL,叫作统一资源定位符. 之所以叫统一,是因为它是有格式的.HTTP 称为协议,www.163.com ...
- Windows进程通信之一看就懂的匿名管道通信
目录 进程通信之一看就懂的匿名管道通信 一丶匿名管道 1.1何为匿名管道 1.2创建匿名管道需要注意的事项 1.3 创建匿名管道需要的步骤 1.4代码例子 1.5代码运行截图 进程通信之一看就懂的匿名 ...
- php spl标准库简介(SPL是Standard PHP Library(PHP标准库)(直接看代码实例,特别方便)
php spl标准库简介(SPL是Standard PHP Library(PHP标准库)(直接看代码实例,特别方便) 一.总结 直接看代码实例,特别方便易懂 thinkphp控制器利眠宁不支持(说明 ...
随机推荐
- 2021-08-15:给定一个字符串Str,返回Str的所有子序列中有多少不同的字面值。
2021-08-15:给定一个字符串Str,返回Str的所有子序列中有多少不同的字面值. 福大大 答案2021-08-15: 返回值=上+新-修正. 时间复杂度:O(N) 空间复杂度:O(N). 代码 ...
- 2021-10-26:给定一个数组arr,arr[i] = j,表示第i号试题的难度为j。给定一个非负数M。想出一张卷子,对于任何相邻的两道题目,前一题的难度不能超过后一题的难度+M。返回所有可能的卷
2021-10-26:给定一个数组arr,arr[i] = j,表示第i号试题的难度为j.给定一个非负数M.想出一张卷子,对于任何相邻的两道题目,前一题的难度不能超过后一题的难度+M.返回所有可能的卷 ...
- get()、get_or_create()、first()、last()、latest()、earliest()、in_bulk()
get() 查询. get_or_create() 不存在时更新.存在时查询并返回. first() 获取第一笔. last() 获取最后一笔. 使用latest和earliest时需要在元数据(me ...
- flutter 中使用 WebView加载H5页面异常net:ERR_CLEARTEXT_NOT_PERMITTED
最近有个flutter项目中根据搜索结果跳转到相应的H5页面发现老是报错,曾现在闲暇拉出来解决哈 先来看一个搜索功能的测试 已进入详情页面就提示错误,尴尬了. 只有去检测代码了撒 Search.dar ...
- 自动化测试-基础知识—Bash基础
Bash 在 Bash 中,美元符号 $ 可以用于引用变量或者表达式的值.Bash 中的变量并不需要事先声明,而是在第一次赋值时自动创建.基于这个特性,我们可以通过给变量名加上 $ 的方式来引用它的值 ...
- MVCC-数据库
参考地址:看一遍就理解:MVCC原理详解 - 掘金 (juejin.cn) 1. 相关数据库知识点回顾 1.1 什么是数据库事务,为什么要有事务 事务,由一个有限的数据库操作序列构成,这些操作要么全部 ...
- python -----类反射
#反射#描述:反射就是指在程序运行时,动态的去确定对象的类型,并且可以通过字符串的形式去调用对应的属性# ,方法,导入模块,是一种基于字符串的事情驱动# class User:# def __init ...
- CompTIA Pentest+
关于学习后CompTIA Pentest+笔记 渗透测试工具 讲述了nmap,burp Suite,Metasploit,Nessus,hydra的入门使用 nmap:https://www.cnbl ...
- tryhackme-OWASP
tryhackme-OWASP Top 10部分记录 敏感信息泄露 在assets目录中 可以看到到一个sqlite数据库的webapp.db文件 使用sqlite3 webapp.db .table ...
- Win32 GUI 汇编
获取句柄 API函数 GetModuleHandle 取模块句柄,lpModuleName 是一个指向模块名称字符串的指针,使用 NULL 获取当前程序句柄. invoke GetModuleHand ...