当前位置:文档之家› 系统串口通讯协议

系统串口通讯协议

ZHET
系统串口通讯协议






型号:SYRDS1-485 (SYRDSSS1)
SYRDL1-485 (SYRLSSS1)
玺瑞国际企业有限公司
SYRIS International Corp.
通讯技术手册
通讯协议(Protocol)
卡片阅读机模块(Reader Module)的通讯协议(Protocol)皆出自于SYRIS 的一种标准通讯协议,这种协议格式如下表:
1.SOH 和 END 都是一个字节的控制字符:
SOH 控制器端定义为 <0x09>
模块端定义为 <0x0A>
END 控制器及模块端均固定为 <0x0D>
其中 <0x> 为十六进制表示法.
2.TYPE 为模块型式编号,固定为一个字节,本型式编号固定为“A”.
3.ID为模块端的识别代码,这一字节的 ASCII 字符必须是在 1 <0x31> 到
8 <0x38> 的范围内,假如控制器端传送之ID值与模块地址编号相同时,
则该模块将会接收控制器端所传送的数据,而模块响应时,也会传回相同的地址编号.
4.FC是通讯功能码(Function Code)和资料(DATA)有相关性,固定为一个
字节,这些资料请参考通讯协议表及相关说明.
5.错误讯息判断代码(Error Code)为两个字节,第一个字节为固定为
<0x0E> ,第二个字节为错误代码,请参考错误讯息代码表.
6.8 BITS BCC是所有字符的检查字段,为二个字节,有关 8 BITS BCC 的
信息和范例程序,请参考附录A.
7.RS485传输协议请设定为”E,8,1”,速率为”19200”.
错误讯息代码表(Error Code Table)
※ Error Code #1固定为 <0x0E>.
控制器与模块通讯协议表
Controller & Module Protocol Table
读取模块出厂序号(Get Module Factory Code)
FC: B
说明(COMMENTS):
此功能为读取卡片阅读机模块出厂序号,共有8码,第1码至第2码至出厂年份,第3码至第4码为出厂周别,第5码至第8码为该型号流水号码.
控制器发送讯息(Controller Transceiver Message):
模块代码(ID):<1> ~ <8>
资料(DATA):<None>
模块响应讯息(Module Response Message):
资料(DATA):<98030001>
FC: C
说明(COMMENTS):
此功能为设定地址编号,使用模块出厂序号.
控制器发送讯息(Controller Transceiver Message): 模块代码(ID):固定为 <X>
资料(DATA):出厂序号 <98030001> ,模块代码 <1>
模块响应讯息(Module Response Message):
资料(DATA):<None>
FC: D
说明(COMMENTS):
此功能为读取地址编号,使用模块出厂序号.
控制器发送讯息(Controller Transceiver Message): 模块代码(ID):固定为 <X>
资料(DATA):出厂序号 <98030001>
模块响应讯息(Module Response Message): 资料(DATA):模块代码 <1>
读取卡片资料(Read Card Data)
FC: F
说明(COMMENTS):
此功能为读取卡片阅读机所读到之卡片资料,长度随着不同形式卡片而有不同长度,如下表:
卡片形式及格式表(Card Type & Format Table)
控制器发送讯息(Controller Transceiver Message): 模块代码(ID):<1> ~ <8> ,资料(DATA):<None>
模块响应讯息(Module Response Message):
(有卡片感应)
资料(DATA):<00000FF1A >(*附注)
模块响应讯息(Module Response Message) :
(无卡片感应)
资料(DATA):<None>
附注:
资料(DATA):00000FF1A
第1码为卡片形式代号,一般SYRIS 32 bits R/O serial number代号为0,第2码以后为卡片内码(CARD ID),编码方式为两个字符代表一个16进位码,若32Bits则有8个0-F字符。

重新读取卡片资料(Read Card Data)
FC: G
说明(COMMENTS):
此功能为重新读取卡片阅读机所读到之卡片资料.
控制器发送讯息(Controller Transceiver Message):
模块代码(ID):<1> ~ <8> ,资料(DATA):<None>
模块响应讯息(Module Response Message):
资料(DATA):<00000FF1A >(*附注)
附注:
卡片阅读机 Power ON 时,如果未曾联机读取资料,则感应到卡片时,卡片阅读机哔一声且LED会亮一下,若有联机读取过资料时,则感应到卡片时,LED会一直亮绿灯且不能够再感应卡片,直到收到读取卡片资料(FC=”F”)后才会变回红灯且恢复正常读卡。

附录A
计算一个 BCC 检查字符
BCC检查字符是将所有要传送出去的信号讯息,以逻辑互斥或XOR(exclusive-or)所产生的结果为BCC的值.
The SYRDS1-485 format looks like table below:
BCC的计算有4个步骤:
1.排除 BCC 及 END,不加入 XOR.
2."SOH" 与 "TYPE" XOR,产生一个二进制的值.
3.将步骤 2 所 XOR 的结果,与 "ID" XOR.
4.再将步骤 3 所产生的结果与 "FC" XOR,以此方法,继续将
"DATA" 内容先后 XOR,则最后所互斥或的结果,即是 BCC 的值.
以下为计算 BCC 时的范例:
此范例中,卡片阅读机的 ID 为 1,功能参数码 F.
1. Assign the values:
2.将 "SOH" 与 "TYPE" 两者的值 XOR,ANS表示运算后的结
果.
SOH 0000 1001
XOR XOR
TYPE 0100 0001
---- ----
ANS 0100 1000
3.将步骤 2 的结果 ANS 与 ID 的值 XOR.
ANS 0100 1000
XOR XOR
ID 0011 0001
---- ----
ANS 0111 1001
4.将其它 Byte 运算完后,最后一个结即是 BCC 的值.
ANS 0111 1001
XOR XOR
FC 0100 0110
---- ----
ANS 0011 1111
3 F
则 BCC 之值为:
Hi Byte 为 33(HEX) (字符“3” ASCII code 为 33(HEX)).
Low Byte 为 46(HEX) (字符“F” ASCII code 为 46(HEX)).
以下为用 BASIC 程序来产生"BCC"的范例
Program to generate BCC values:
10 ‘**************************************************
20 ‘* Generate Block Check Character * 30 ‘**************************************************
40 MESSAGE$ = CHR$(10) +TYPE$ + ID$ + FC$ + DATA$
50 BCC = 0
60 FOR I = 1 TO LEN ( MESSAGE$ )
70 BCC = BCC XOR ASC ( MID$ ( MESSAGE$ , I , 1 ) )
80 NEXT I
若有程式方面之問題,請聯絡代理商或經銷商.。

相关主题