大佬教程收集整理的这篇文章主要介绍了SECS半导体设备通讯-3 SECS-II通信标准,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
SECS-II 标准定义了使用如SECS-I、HSMS等传输协议在设备和主机之间交换的消息的形式和含义。
定义了以消息的形式在设备和主机之间传递信息,消息按其行为分类,称为Stream。有很多不同的行为Stream,每个Stream又包括具体的消息,称为Function。
标准还定义了消息的结构,消息由数据项和数据项列表 ( items and lists of items ) 构成。该结构允许自描述数据格式,以保证对消息的正确解释。
SECS-II还规定了事务协议,用于管理消息的交换、分块等,对SECS-II实现提出了一些最低要求。
所有的消息按照行为分为不同的Stream,在每种Stream中再按照其功能分为Function,即一个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和Function可由用户自定义:
事务:是信息交换的基础。一个事务由不需要Reply的PriMary message或需要Reply的PriMary message及其Reply message组成。
下列是SECS-II在事务层面所规定的要求:
会话:是用于完成特定任务的一系列一个或多个相关事务。会话应包括完成任务所需的所有事务,会话结束时,会话双方应释放相关资源。
会话超时:表示会话在规定时间内未完成。会话超时时间和检测有用户应用程序自定义。
会话超时将终止会话的进一步操作,并将允许清除任何已提交的资源。在设备上检测到会话超时后,应发送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(列表)。消息数据结构定义了消息的逻辑划分,与消息传输协议的物理划分不同。
消息的数据结构旨在为在设备和主机之间传递的消息提供一个自描述的内部结构。
一个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中的字节数据类型。下图为数据类型定义表:
List是一组有序的元素,其中元素可以是Item或List。
List的Header与数据类型为0的Item的Header形式相同。不过List的Header中的长度表示List中元素的个数,Item的Header中的长度表示数据字节的个数。
本地化字符串项是一个用于表示由多字节字符组成的字符串的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的编码集对应。
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
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半导体设备通讯-3 SECS-II通信标准所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。