串口校验方式分析
串口校验方式分析串口通讯过程中有五种校验方式,分别是无校验(None),奇校验(Odd),偶校验(Even),1校验(Mark),0校验(Space)。在RS232/RS485/RS422通讯中,通过
串口校验方式分析 串口通讯过程中有五种校验方式,分别是无校验(None),奇校验(Odd), 偶校验(Even),1校验(Mark),0校验(Space)。 在RS232/RS485/RS422通讯中,通过串口发送一字节(8BIT)数据时,首先 发送起始位(固定为0),然后发送8位数据(先低位后高位),如果校验方式不 是无校验(None),则紧接着会发送一位校验位,最后发送停止位。停止位固定为 1。 停止位依据串口属性的设置可为1位,1.5位或2位。为了说明简洁起见, 下面均假设停止位位数为1而数据位位数为8。 在数据发送时,如果校验方式设置为无校验(None),则不发送校验位;否 则会发送一位校验位。 具体地,如果校验方式设置为1校验(Mark),校验位固定为1;如果校验 方式设置为0校验(Space),校验位固定为0;如果校验位为奇校验(Odd),或 者偶校验(Even),那么校验位可能为0也可能为1,依据所发送的数据计算得 出。计算方法:如果是奇校验,那么8位数据和1位校验位的累加和必是奇数;对 应的,如果是偶校验,8位数据和1位校验位的累加和必为偶数。比如,数据37, 其二进制编码为00100101,编码中含有5个0和3个1,5*0+3*1=3,如果采用奇 校验,那么校验位为0;如果使用偶校验,校验位则为1。 串口MSComm控件在接收数据时,如果无校验,则只要检测到串口出现了数 据,数据总能收到(试验发现,即使停止位为0也不会被认为是错误帧而遭遇抛 弃);而采用了某种校验后,只有校验通码正确的数据才能被正确地收到。 试验中发现,发生校验错的那些数据在后面能校验通过的数据被收到时才被 输出,输出值一律为5BH。

