-
Com
通讯接口协议(草稿)
概述
此通
讯协议标准主要是规定了
Reader
与主机之间的通讯方式,
此通讯协议是建立在
RS232
串行通讯基础上的,实现的是单
点对单点的通讯,类似于
3964
通讯协议,通讯中有
很多往返确认的控制信息,不大适合在网络环境中使用。
(一)报文格式
< br>报文帧包含报文的不同字段和控制信息。
实际数据字段的前面有首部信息,
而后面有包
含关于传输正确性检查信息的数据安全部分(故障识别)<
/p>
一、编码方式:
< br>协议规定以
ASCII
(美国标准信息交换代码)模式通
信,在传输过程中,除了标志字符
和结束字符以外,其余字节按照
16
进制的数值拆分成两个
ASCII
字符表示。这样报文中的
字节都是可见的
ASCII
字符,而且在一个比较小的范围内。如果有规定范围以外的字符出
现,则
为非法字符。
代码:
(共计20个字符)
?
十六进制,
ASCII
字符
0...9
,
A...F
(不使用小写字母)
?
标志字
符:开始符:’
:
’
(0x3A
)和地址标志符:’
@
’
(0x40
)
?
结束字符:
CR(0x0D)
和
LF(0x0A)
报文帧中允许出现的合法字符如下表:
Hex
0x30
0x31
0x32
0x33
0x34
0x35
0x36
0x37
0x38
0x39
字符
0
1
2
3
4
5
6
7
8
9
Hex
0x41
0x42
0x43
0x44
0x45
0x46
0x3A
0x40
0x0D
0x0A
字符
A
B
C
D
E
F
:
@
CR
LF
二、报文帧格式:
协议规定有两种帧格式,不带地址码的短帧格式和有地址码的长帧格式。
p>
1
、命令帧:一个报文帧数据由
7
部分组成,报文帧各部分的数据长度(
Hex
)
如下表:
开始
1Byte
帧编号
1Byte
功能码
数据长度
1 Byte
2Byte
数据包
0
…
.nByte
校验码
2Byte
结束
2Byte
< br>在这个地方程序实际发送数据长度已经按照编码结构,是这个展开的数据长度了,
就是
2
倍了。
按照协议的编码规定,报文帧的编码结构应该如下表所示:
开始
1Byte
帧编号
2 Byte
功能码
数据长度
2 Byte
4Byte
数据包
0
…
.2nByte
校验码
4Byte
结束
2Byte
< br>注意:为方便描述,下面涉及编码的地方,都以
16
进制
数据的方式表述。
报文帧的各部分说明如下:
(
1
)开始:
协议规
定以字符‘
:
’
(Hex
0x3A)
作为报文帧的起始标志。
(
2
)帧编号:
帧编号是由发送方设定的帧序列号。
接收方收到帧以后,
回
发
“应答帧”
,
“应
< br>答帧”必须带有相同的帧编号。帧编号从0开始,长度是
1Byte
,循环使用。
(
3
)功能码
定义长度为
1Byte
,编码范围
p>
0x00
—
0xFF
。分为四种,定义范围和作用,
如下
面列表:
功能码
0x00
~
0xBF
0xC0
~
0xCF
0xD0
0xD1
~
0xFF
名称
指令帧
预留
预留
预留
作用
上位机对
Reader
,发送的各种指
令,具体定义看第三
部分(指令集)
预留
预留
p>
(
4
)数据长度:
标记数据包部分的数据长度。规定
长度为
2Byte
。
(
5
)数据
包:
是报文帧携带的状态和数据部分。数据长度不固定。
如果报文帧是指令帧,数据包部分就是指令参数。
如果报
文帧是应答帧
/
数据帧,数据包部分就是传送的状态和数据,数
据格式
由主机指令规定。
状态部分就是接收报文的错误代码。如果接收正确,状态值为“
00
p>
”
。
(
6
)校验码:
协议规定报文帧数据校验方式是
Cyclical
Redundancy Check (CRC-16)
方式。
CRC Definition
CRC type
Length
Polynomial
Direction
ISO/IEC 13239
16bits
0x8408
Backward
Preset
‘
FFFF
’
Residue
‘
F0B8
’
三、通讯方式:
< br>协议支持规的通讯方式:主
—
从应答方式。
校验范围是帧编号、
功能码、源地址、数据包长度和数据包。
不包括起始字符和结
束
字符。
计算结果是
2
字节,加入报文帧时,低字节在前,高字节在后。
(
7
)结束符:
协议规定报文帧的结束标志是‘
CR-
LF
’
(
Hex 0x0D
和
0x0A
)
主
—
p>
从应答方式:
当主机发送一帧到接收端时
,接收端必须回复一个应答帧
/
数据帧,并且在应答帧
/
数据帧里加上错误信息代码。
指令帧只能是上位机发给机具的。
应
答帧
/
数据帧只能是机具发送给上位机的。
Master
指令帧
Reader
Time
应答帧
/
数据帧
报文帧传送过程图
错误信息代码定义表
Error Code (HEX)
0x00
Description
0x0F
No Reply
0x10
0x11
0x12
无错误
没有读到标签
/
卡
通讯错误
Command
not supported by Reader
Command not
allowed
Hardware Type not
compatible
四、应答帧
/
数据帧定义:
应答帧
/
数据帧一般指的是机具对上位机,发送的报文
帧。