红宇超高频读写模块SRR1M02通信协议重点.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
红宇超高频读写模块SRRM02通信协议 (节选自《红宇超高频读写器通用通信协议》) 1. 概述 1 2. 传输层协议 1 2.1. RS232 1 2.1.1. 传输桢结构 1 2.1.2. 传输编码补充说明 2 2.1.3. 传输错误处理 2 3. 应用层协议 2 3.1. 应用层协议数据单元 2 3.2. 应用命令集 3 3.2.1. 0x00 : connect — 连接 3 3.2.2. 0x30 : tag_inventory_query —盘存标签查询 4 3.2.3. 0x31 : tag_access_read — 读标签分区数据 5 3.2.4. 0x32 : tag_access_write — 写标签分区数据 6 3.2.5. 0x33 : tag_access_lock — 标签数据访问锁 7 3.2.6. 0x34 : tag_access_kill — 标签去功能化 8 3.2.7. 0xEF : disconnect — 断开 9 4. 附录 9 4.1. 错误编码表 9 4.2. tagID的内部格式 10 4.3. 整数EBV编码 11 4.4. 标签存储分区结构 11 4.5. tag_access_lock的lckData参数格式 12 概述 本文协议分为应用层和传输层2个逻辑层次,各层次有自己的编码规则,但都要遵循以下原则: 协议数据采用二进制字节序列编码表示。 多字节整数采用大端字节序编码,数据长度保持不变。 字节串直接复制串内容。 本章以下内容将对应用层和传输层分别进行阐述。 传输层协议 传输层定义读写器与上位机之间传输数据完整性及传输目标识别。本文将传输层的协议数据单元称为桢(Frame)。 由于传输层协议与实际的通信网络相关,所以读写器与上位机之间不同的通信网络会对应不同的桢结构,即实际的桢结构字段集合是上表的子集。本章以下将分别描述在不同通信网络中的传输桢结构。 RS232 RS232传输为一对一传输,不涉及多工作站点联网。 传输桢结构 序号 字段标识 字段类型 编码长度 字段值域 字段说明 1 head 字节串 1 B 0xAA 桢头标志 2 plsize 位域 2 B(16bits) b15: 最高位,crc字段忽略指示位,0表示传输帧包含crc字段,1表示不包含crc字段; b14-13: 保留,置0; b12-0: 载荷数据的编码字节数,[0, 1000]。 3 payload 字节串 plsize B 载荷 4 crc 整数 2 B [0, 65535] 校验。 校验范围:head到crc16字段,不包括head和crc16字段。 校验计算方法参见附录。 如果plsize b16为1,则该字段不在传输帧中出现。 5 tail 字节串 1 B 0x55 桢尾标志 传输编码补充说明 在传输桢的实际编码过程中,为了避免head和tail之间出现与head和tail相同的特征字节串干扰解码方对传输桢的识别,需要对head和tail字段之间出现的特征字节串(0xAA 和0x55)进行转义处理,规定转义符为0xFF,具体处理规则如下: 编码时,在待发送的字节序列中每个0xAA、0x55和0xFF字节前插入一个转义字节0xFF形成转义编码字节序列,然后再发送; 解码时,根据编码时的转义规则,还原实际的数据序列,然后再进行桢分析。 传输错误处理 在对传输桢的解码过程中,可能发现不完整的传输桢,包括无结尾、超时、校验错误等。解码方对这些错误传输桢采取丢弃策略,不做其它任何处理。 应用层协议 应用层协议数据单元 应用层协议数据单元(以下简称PDU)的逻辑结构和编码方案如下表: 字段序号 字段标识 字段类型 编码长度 字段值域 字段说明 1 cmd 整数 8 bits [0, 255] PDU携带的应用命令字,具体取值参见本章:应用命令集 2 errno 整数 8 bits [-128, 127] 命令处理错误码。 errno == -128表示该PDU为命令请求,errno的值本身无实际意义; errno -128表示该PDU为命令应答,errno本身取值具有实际含义,参见附录:错误代码表. 3 argtab 字节串 n B PDU携带的命令数据(参数表),字节数n由传输层plsize确定(n=plsize-2),内部结构由具体cmd单独定义,存储与具体cmd相关的请求(errno== -128)或应答(errno -128)参数表。 应用命令集 命令是指在上位机和转接器之间,为了完成某个应用功能而进行的一次信息交互。一个完整的命令在通信过程中包括一个请求PDU和一个应答PDU,这两个PDU的cmd字段相同,但这两个PDU的errno值具有不同定义:请

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

我是一名原创力文库的爱好者!从事自由职业!

1亿VIP精品文档

相关文档