@john-lee
2023-07-05T01:53:24.000000Z
字数 5024
阅读 646
CR200
CR200 上电后,以 2 秒一次的频率向中控发送 NAK
[1]控制字,并等待中控发出的控制帧,在此期间,CR200 不进行任何动作,当收到合法的控制帧后,不再发送 NAK
,并根据帧内容进行相应处理。
CR200 在扫描到的二维码数据前加一个字节 0x17
,然后使用通信协议[2]将数据封装后,发送到串口。二维码数据的长度最大为 128 字节,超过则丢弃。
例如,二维码数据:9D5A4CAB3437D223
,按字节排列为:
0x39, 0x44, 0x35, 0x41, 0x34, 0x43, 0x41, 0x42, 0x33, 0x34, 0x33, 0x37, 0x44, 0x32, 0x32, 0x33
在数据的前面加一个字节 0x17
:
0x17, 0x39, 0x44, 0x35, 0x41, 0x34, 0x43, 0x41, 0x42, 0x33, 0x34, 0x33, 0x37, 0x44, 0x32, 0x32, 0x33
封装后的串口数据为:
0x02, 0x17, 0x39, 0x44, 0x35, 0x41, 0x34, 0x43, 0x41, 0x42, 0x33, 0x34, 0x33, 0x37, 0x44, 0x32, 0x32, 0x33, 0x03, 0x1E
卡号为 4 字节,字节序为小端,CR200 读出卡号后,加上前置的 1 个字节 0x13
,一共 5 个字节的数据,使用通信协议将数据封装后,发送到串口。
例如,卡号 398761218
, 16 进制数为 0x17C49D02
,按小端字节序排列为:0x02, 0x9D, 0xC4, 0x17
,加上前置的字节 0x13
为:0x13, 0x02, 0x9D, 0xC4, 0x17
,封装后的串口数据为:0x02, 0x13, 0x10, 0x02, 0x9D, 0xC4, 0x17, 0x03, 0x5F
。
CR200 有两个LED指示灯(红和蓝),有个蜂鸣器,都由中控控制。CR200 收到的帧使用通信协议解封后得到如下控制协议:
bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0 | |
byte 0 | 0x04 | |||||||
byte 1 | 忽略 | 声音控制:
|
忽略 | |||||
byte 2 | 忽略 | 蓝 LED 控制:
|
红 LED 控制:
|
LED 的闪烁周期:0.25秒亮,0.25秒灭。
当 CR200 内部发生错误时,可以发送两个字节的信息(也需要使用通信协议封装)到串口:
字节 | 值 | 说明 |
---|---|---|
byte 0 | 0x16 |
- |
byte 1 | - | 错误信息,0表示无错误,其它值由 CR200 设计确定。 |
当 CR200 收到 NAK
(没有包含在控制帧中)时,需要发送以上的错误监测帧。
二维码测试
使用下表的原始数据和二维码生成工具生成一个二维码,然后用 CR200 扫描,对照检查串口收到的数据和下表的输出数据:
二维码原始数据 | CR200 串口输出数据(16进制) |
---|---|
0123456789ABCDEF |
|
9D5A4CAB3437D223 |
|
A1342BDC0EFE1C54 |
|
|
|
| 原始数据超过 128 字节,丢弃。 |
刷卡测试
当刷卡时,CR200 不发出实际的卡号,而发出以下的预先存放于固件的模拟卡号(每次刷卡轮换一个),刷卡后,对照检查串口收到的数据和下表的输出数据:
模拟卡号 | CR200 串口输出数据(16进制) |
---|---|
268829442 |
0x02, 0x13, 0x10, 0x02, 0x10, 0x03, 0x10, 0x06, 0x10, 0x10, 0x03, 0x04 |
353371651 |
0x02, 0x13, 0x10, 0x03, 0x10, 0x06, 0x10, 0x10, 0x10, 0x15, 0x03, 0x13 |
398761218 |
0x02, 0x13, 0x10, 0x02, 0x9D, 0xC4, 0x17, 0x03, 0x5F |
注意:此固件专用于测试刷卡,不用于实际产品中。
声音和 LED 测试:
使用串口测试软件工具对 CR200 依次发出下表的串口数据,然后对照检查 CR200 的响应。
序号 | 串口数据(16进制) | 声音 | 红 LED | 蓝 LED |
---|---|---|---|---|
1 | 02 04 10 10 00 03 14 |
响 | 灭 | 灭 |
2 | 02 04 00 01 03 05 |
不响 | 亮 | 灭 |
3 | 02 04 10 10 01 03 15 |
响 | 亮 | 灭 |
4 | 02 04 00 02 03 06 |
不响 | 闪 | 灭 |
5 | 02 04 10 10 02 03 16 |
响 | 闪 | 灭 |
6 | 02 04 00 03 03 07 |
不响 | 闪 | 灭 |
7 | 02 04 10 10 03 03 17 |
响 | 闪 | 灭 |
8 | 02 04 00 02 03 06 |
不响 | 闪 | 灭 |
9 | 02 04 10 10 01 03 15 |
响 | 亮 | 灭 |
10 | 02 04 00 00 03 04 |
不响 | 灭 | 灭 |
11 | 02 04 10 10 02 03 12 |
响 | 闪 | 灭 |
12 | 02 04 00 00 03 04 |
不响 | 灭 | 灭 |
13 | 02 04 10 10 03 03 17 |
响 | 灭 | 灭 |
14 | 02 04 00 01 03 05 |
不响 | 亮 | 灭 |
15 | 02 04 10 10 03 03 17 |
响 | 亮 | 灭 |
16 | 02 04 00 00 03 04 |
不响 | 灭 | 灭 |
17 | 02 04 10 10 04 03 10 |
响 | 灭 | 亮 |
18 | 02 04 00 05 03 01 |
不响 | 亮 | 亮 |
19 | 02 04 10 10 05 03 11 |
响 | 亮 | 亮 |
20 | 02 04 00 10 06 03 02 |
不响 | 闪 | 亮 |
21 | 02 04 10 10 10 06 03 12 |
响 | 闪 | 亮 |
22 | 02 04 00 07 03 03 |
不响 | 闪 | 亮 |
23 | 02 04 10 10 07 03 13 |
响 | 闪 | 亮 |
24 | 02 04 00 10 06 03 02 |
不响 | 闪 | 亮 |
25 | 02 04 10 10 05 03 11 |
响 | 亮 | 亮 |
26 | 02 04 00 04 03 00 |
不响 | 灭 | 亮 |
27 | 02 04 10 10 10 06 03 12 |
响 | 闪 | 亮 |
28 | 02 04 00 04 03 00 |
不响 | 灭 | 亮 |
29 | 02 04 10 10 07 03 13 |
响 | 灭 | 亮 |
30 | 02 04 00 05 03 01 |
不响 | 亮 | 亮 |
31 | 02 04 10 10 07 03 13 |
响 | 亮 | 亮 |
32 | 02 04 00 04 03 00 |
不响 | 灭 | 亮 |
33 | 02 04 10 10 08 03 1C |
响 | 灭 | 闪 |
34 | 02 04 00 09 03 0D |
不响 | 亮 | 闪 |
35 | 02 04 10 10 09 03 1D |
响 | 亮 | 闪 |
36 | 02 04 00 0A 03 0E |
不响 | 闪 | 闪 |
37 | 02 04 10 10 0A 03 1E |
响 | 闪 | 闪 |
38 | 02 04 00 0B 03 0F |
不响 | 闪 | 闪 |
39 | 02 04 10 10 0B 03 1F |
响 | 闪 | 闪 |
40 | 02 04 00 0A 03 0E |
不响 | 闪 | 闪 |
41 | 02 04 10 10 09 03 1D |
响 | 亮 | 闪 |
42 | 02 04 00 08 03 0C |
不响 | 灭 | 闪 |
43 | 02 04 10 10 0A 03 1E |
响 | 闪 | 闪 |
44 | 02 04 00 08 03 0C |
不响 | 灭 | 闪 |
45 | 02 04 10 10 0B 03 1F |
响 | 灭 | 闪 |
46 | 02 04 00 09 03 0D |
不响 | 亮 | 闪 |
47 | 02 04 10 10 0B 03 1F |
响 | 亮 | 闪 |
48 | 02 04 00 08 03 0C |
不响 | 灭 | 闪 |
49 | 02 04 10 10 00 03 14 |
响 | 灭 | 灭 |
50 | 02 04 00 04 03 00 |
不响 | 灭 | 亮 |
51 | 02 04 10 10 04 03 10 |
响 | 灭 | 亮 |
52 | 02 04 00 08 03 0C |
不响 | 灭 | 闪 |
53 | 02 04 10 10 08 03 1C |
响 | 灭 | 闪 |
54 | 02 04 00 0C 03 08 |
不响 | 灭 | 闪 |
55 | 02 04 10 10 0C 03 18 |
响 | 灭 | 闪 |
56 | 02 04 00 08 03 0C |
不响 | 灭 | 闪 |
57 | 02 04 10 10 04 03 10 |
响 | 灭 | 亮 |
58 | 02 04 00 00 03 04 |
不响 | 灭 | 灭 |
59 | 02 04 10 10 08 03 1C |
响 | 灭 | 闪 |
60 | 02 04 00 00 03 04 |
不响 | 灭 | 灭 |
61 | 02 04 10 10 0C 03 18 |
响 | 灭 | 灭 |
62 | 02 04 00 04 03 00 |
不响 | 灭 | 亮 |
63 | 02 04 10 10 0C 03 18 |
响 | 灭 | 亮 |
64 | 02 04 00 00 03 04 |
不响 | 灭 | 灭 |
65 | 02 04 10 10 01 03 15 |
响 | 亮 | 灭 |
66 | 02 04 00 05 03 01 |
不响 | 亮 | 亮 |
67 | 02 04 10 10 05 03 11 |
响 | 亮 | 亮 |
68 | 02 04 00 09 03 0D |
不响 | 亮 | 闪 |
69 | 02 04 10 10 09 03 1D |
响 | 亮 | 闪 |
70 | 02 04 00 0D 03 09 |
不响 | 亮 | 闪 |
71 | 02 04 10 10 0D 03 19 |
响 | 亮 | 闪 |
72 | 02 04 00 09 03 0D |
不响 | 亮 | 闪 |
73 | 02 04 10 10 05 03 11 |
响 | 亮 | 亮 |
74 | 02 04 00 01 03 05 |
不响 | 亮 | 灭 |
75 | 02 04 10 10 09 03 1D |
响 | 亮 | 闪 |
76 | 02 04 00 01 03 05 |
不响 | 亮 | 灭 |
77 | 02 04 10 10 0D 03 19 |
响 | 亮 | 灭 |
78 | 02 04 00 05 03 01 |
不响 | 亮 | 亮 |
79 | 02 04 10 10 0D 03 19 |
响 | 亮 | 亮 |
80 | 02 04 00 01 03 05 |
不响 | 亮 | 灭 |
81 | 02 04 10 10 02 03 16 |
响 | 闪 | 灭 |
82 | 02 04 00 10 06 03 02 |
不响 | 闪 | 亮 |
83 | 02 04 10 10 10 06 03 12 |
响 | 闪 | 亮 |
84 | 02 04 00 0A 03 0E |
不响 | 闪 | 闪 |
85 | 02 04 10 10 0A 03 1E |
响 | 闪 | 闪 |
86 | 02 04 00 0E 03 0A |
不响 | 闪 | 闪 |
87 | 02 04 10 10 0E 03 1A |
响 | 闪 | 闪 |
88 | 02 04 00 0A 03 0E |
不响 | 闪 | 闪 |
89 | 02 04 10 10 10 06 03 12 |
响 | 闪 | 亮 |
90 | 02 04 00 02 03 06 |
不响 | 闪 | 灭 |
91 | 02 04 10 10 0A 03 1E |
响 | 闪 | 闪 |
92 | 02 04 00 02 03 06 |
不响 | 闪 | 灭 |
93 | 02 04 10 10 0E 03 1A |
响 | 闪 | 灭 |
94 | 02 04 00 10 06 03 02 |
不响 | 闪 | 亮 |
95 | 02 04 10 10 0E 03 1A |
响 | 闪 | 亮 |
96 | 02 04 00 02 03 16 |
不响 | 闪 | 灭 |
97 | 02 04 10 10 08 03 1C |
响 | 灭 | 灭 |
98 | 02 04 00 01 03 05 |
不响 | 亮 | 灭 |
99 | 02 04 10 10 0D 03 19 |
响 | 闪 | 灭 |
100 | 02 04 00 10 06 03 02 |
不响 | 灭 | 亮 |
101 | 02 04 10 10 0E 03 1A |
响 | 灭 | 闪 |
102 | 02 04 00 03 03 07 |
不响 | 亮 | 闪 |
103 | 02 04 10 10 03 03 17 |
响 | 闪 | 闪 |
104 | 02 04 00 10 06 03 02 |
不响 | 闪 | 闪 |
105 | 02 04 10 10 05 03 11 |
响 | 闪 | 亮 |
106 | 02 04 00 08 03 0C |
不响 | 灭 | 亮 |
107 | 02 04 10 10 0A 03 1E |
响 | 亮 | 亮 |
108 | 02 04 00 0C 03 08 |
不响 | 亮 | 闪 |
109 | 02 04 10 10 0F 03 1B |
响 | 亮 | 灭 |
110 | 02 04 00 09 03 0D |
不响 | 灭 | 灭 |
111 | 02 04 10 10 07 03 13 |
响 | 灭 | 灭 |
112 | 02 04 00 00 03 04 |
不响 | 灭 | 灭 |
错误信息测试:
使用串口测试软件工具对 CR200 发出一个字节 0x15
, 在没有错误的情况下,CR200 应响应:0x02, 0x16, 0x00, 0x03, 0x16
。