三. SECS/GEM封装库RapidSecs开发手记-SECS/GEM基础知识-2

5. SECS-II通信标准

       SECS-II 标准定义了设备和主机之前发送的消息所表达的含义。所有的消息按照其行为分类,称为Stream,每个Stream又包括具体的消息,称为Function。标准还定义了消息的结构,消息由数据项和数据项序列构成。SECS-II还规定了事务协议,用于管理消息的交换、分块等。

5.1 消息分类

       标准把所有的消息按照行为分为各种Stream,然后在每种Stream中再按照其功能分为Function,即每个具体的消息。Stream和Function 都按照数字进行编号,所有的第一消息的Function编号为奇数,对应第二消息的Function编号为偶数且为第一消息Function编号加一。如果第一消息不需要回复消息,则第一消息Function编号加一的第二消息保留。所有Function编号为0的消息保留。所有Stream编码及其功能描述如下表所示:

一些Stream和Function 编号组合被标准保留,其他的可以由用户自定义。保留的 Stream和Function编号为:

  • Stream 1,Function 0-255
  • Stream 1-63,Function 0-63
  • Stream 64-127,Function 0

上述编号分配情况如下图所示:

5.2 消息结构

       SECS-II 消息由两种数据结构组合而成:数据项(item)和列表(list)。采取这样的结构的目的是从逻辑上划分消息内容,使消息可以自描述内部结构。

  • 数据项(item):数据项即一个带长度和格式的信息包。前 2、3 或 4 个字节作为数据项头(item header),描述该数据项的格式和长度信息。如图 2-22 所示。头由格式字节和长度字段组成。第一个字节是格式字节,其高六位表示这个数据项的格式,低二位表示紧随其后有多少个字节表示该数据项的长度,取值只能为1、2 和 3,如果为 0 则该数据项格式错误。高六位的取值及对应格式见表 2-8。根据格式字节的低二位确定长度字段为几个字节,若为 1 则该数据项最长为255字节;若为 2 则该数据项最长为 64K 字节;若为 3 则该数据项最长为 7.99M 字节。长度字段的第一个字节为最高位字节。

  • 列表(list):列表是一组有序的元素集合,集合中的元素既可以是数据项也可以是列表本身。列表头和格式编码为 0 的数据项头有着相同的格式。长度字段表示该列表中有多少个元素。列表的作用是将若干个有着不同格式的相关数据项组合到一个表示一个有自身含义的结构。

下面列举 4 个数据项和列表编码示例:

(1) 一个包含二进制数据 10101010 的数据项:

(bit 87654321)

00100001 (数据项,二进制数据,一个字节表示长度)

00000001 (长度为 1 字节)

10101010 (数据)

(2) 一个包含 3 ASCII 字符 ABC 的数据项:

(bit 87654321)

01000001 (数据项,ASCII 数据,一个字节表示长度)

00000011 (长度为 3 字节)

0

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值