@john-lee
2023-07-05T01:53:24.000000Z
字数 5024
阅读 741
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。