[关闭]
@john-lee 2023-07-05T01:53:24.000000Z 字数 5024 阅读 646

CR200 设计需求

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

LED 指示灯和声音控制

CR200 有两个LED指示灯(红和蓝),有个蜂鸣器,都由中控控制。CR200 收到的帧使用通信协议解封后得到如下控制协议:

bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
byte 0 0x04
byte 1 忽略 声音控制:
  • 0: 忽略
  • 1: 响 0.4 秒后停止
  • 2: 忽略
  • 3: 忽略
忽略
byte 2 忽略 蓝 LED 控制:
  • 0: 灭
  • 1: 亮
  • 2: 闪烁
  • 3: 忽略
红 LED 控制:
  • 0: 灭
  • 1: 亮
  • 2: 闪烁
  • 3: 忽略

LED 的闪烁周期:0.25秒亮,0.25秒灭。

错误监测

当 CR200 内部发生错误时,可以发送两个字节的信息(也需要使用通信协议封装)到串口:

字节 说明
byte 0 0x16 -
byte 1 - 错误信息,0表示无错误,其它值由 CR200 设计确定。

当 CR200 收到 NAK(没有包含在控制帧中)时,需要发送以上的错误监测帧。

测试方法

  1. 二维码测试
    使用下表的原始数据和二维码生成工具生成一个二维码,然后用 CR200 扫描,对照检查串口收到的数据和下表的输出数据:

    二维码原始数据CR200 串口输出数据(16进制)
    0123456789ABCDEF
    0x02, 0x17, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35,
    0x36, 0x37, 0x38, 0x39, 0x41, 0x42, 0x43, 0x44,
    0x45, 0x46, 0x03, 0x11
    9D5A4CAB3437D223
    0x02, 0x17, 0x39, 0x44, 0x35, 0x41, 0x34, 0x43,
    0x41, 0x42, 0x33, 0x34, 0x33, 0x37, 0x44, 0x32,
    0x32, 0x33, 0x03, 0x1E
    A1342BDC0EFE1C54
    0x02, 0x17, 0x41, 0x31, 0x33, 0x34, 0x32, 0x42,
    0x44, 0x43, 0x30, 0x45, 0x46, 0x45, 0x31, 0x43,
    0x35, 0x34, 0x03, 0x12
    2D/z04ZKLybETxMZ/RCZMH22P9T92Q6E
    Q8xmhKXohjoUmFFFvrrUo9X3WgDPsBCG
    kZQQ8OhSW7J61Ca6QOkixm8iE6Vs+TKZ
    piaWkKfq67lg/0lqvUmc8hrnuMlZFTVE
    0x02, 0x17, 0x32, 0x44, 0x2f, 0x7a, 0x30, 0x34,
    0x5a, 0x4b, 0x4c, 0x79, 0x62, 0x45, 0x54, 0x78,
    0x4d, 0x5a, 0x2f, 0x52, 0x43, 0x5a, 0x4d, 0x48,
    0x32, 0x32, 0x50, 0x39, 0x54, 0x39, 0x32, 0x51,
    0x36, 0x45, 0x51, 0x38, 0x78, 0x6d, 0x68, 0x4b,
    0x58, 0x6f, 0x68, 0x6a, 0x6f, 0x55, 0x6d, 0x46,
    0x46, 0x46, 0x76, 0x72, 0x72, 0x55, 0x6f, 0x39,
    0x58, 0x33, 0x57, 0x67, 0x44, 0x50, 0x73, 0x42,
    0x43, 0x47, 0x6b, 0x5a, 0x51, 0x51, 0x38, 0x4f,
    0x68, 0x53, 0x57, 0x37, 0x4a, 0x36, 0x31, 0x43,
    0x61, 0x36, 0x51, 0x4f, 0x6b, 0x69, 0x78, 0x6d,
    0x38, 0x69, 0x45, 0x36, 0x56, 0x73, 0x2b, 0x54,
    0x4b, 0x5a, 0x70, 0x69, 0x61, 0x57, 0x6b, 0x4b,
    0x66, 0x71, 0x36, 0x37, 0x6c, 0x67, 0x2f, 0x30,
    0x6c, 0x71, 0x76, 0x55, 0x6d, 0x63, 0x38, 0x68,
    0x72, 0x6e, 0x75, 0x4d, 0x6c, 0x5a, 0x46, 0x54,
    0x56, 0x45, 0x03, 0x53
    2D/z04ZKLybETxMZ/RCZMH22P9T92Q6E
    Q8xmhKXohjoUmFFFvrrUo9X3WgDPsBCG
    kZQQ8OhSW7J61Ca6QOkixm8iE6Vs+TKZ
    piaWkKfq67lg/0lqvUmc8hrnuMlZFTVE
    lw==
    原始数据超过 128 字节,丢弃。
  2. 刷卡测试
    当刷卡时,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

    注意:此固件专用于测试刷卡,不用于实际产品中。

  3. 声音和 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 不响
  4. 错误信息测试:
    使用串口测试软件工具对 CR200 发出一个字节 0x15, 在没有错误的情况下,CR200 应响应:0x02, 0x16, 0x00, 0x03, 0x16

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注