BCD到ASCII校验和

时间:2013-06-26 19:00:48

标签: ascii checksum bcd

我有一个非常旧的设备,我通过串口连接。当我发送数据时,它希望用它来计算校验和。我将字符串字符的所有ascii值加起来并将总和转换为BCD。这导致非法的BCD字符,例如1011.在提供的唯一示例中,它们将1011转换为“;”。当我在示例中发送数据时,校验和清除正常。但是,当我使用“;”对于其他非法字符,它失败了。有谁看过使用“;”之前和如果有的话,是否有人知道其他非法字符的值是什么?

编辑:我的示例:

STX       000    0010
1         011    0001
2         011    0010
3         011    0011
CR        000    1101
A         100    0001
B         100    0010
C         100    0011
CR        000    1101
EXT       000    0011

Total    10111   1011
Convert To BCD 1  0111 1011
Checksum       1   7   ;

1 个答案:

答案 0 :(得分:0)

看起来他们正在使用接下来的六个ASCII字符:

DEC    HEX1    HEX2    BIN1    BIN2    CHAR
48     3       0       0011    0000    0
49     3       1       0011    0001    1
50     3       2       0011    0010    2
51     3       3       0011    0011    3
52     3       4       0011    0100    4
53     3       5       0011    0101    5
54     3       6       0011    0110    6
55     3       7       0011    0111    7
56     3       8       0011    1000    8
57     3       9       0011    1001    9
58     3       A       0011    1010    :
59     3       B       0011    1011    ;
60     3       C       0011    1100    <
61     3       D       0011    1101    =
62     3       E       0011    1110    >
63     3       F       0011    1111    ?