首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
8051单片机串口通信中的检错方法
来源:本站整理  作者:佚名  2009-12-08 08:52:52




1.3 汉明码(Hamming)
    汉明码是在一组代码中加入一定数量的冗余,以形成一组新的数据。新加入的冗余数据被称为校验位。若某个信息位出错,则将引起几组奇偶校验结果均出错,由此根据奇偶组的检错,便可确定误码的信息位及性质。汉明码具有如下特点:
    码长:N=2m-1
    信息码位:k=2m-m-1
    监督码位:r=N-k=m,其中m≥2正整数
    由于本文中的检错对象是串口发送,一次发送8 bits数据,故需要的冗余位为4 bits,本文采用的汉明码为(12,8),其编码由8 bits数据和4bits组成。设数据分别为a0,a1,a2,a3,a4,a5,a6,a7。检验位为a8,a9,a10,a11,它们可按下面的式子决定:

   


2 测试环境及原理
    本文的测试平台分为两部分,即PC串口发送部分和8051串口接收部分。PC通过串口发送数据,每次串口发送的单位为8 bits。8051通过串口接收PC发送的数据。由于硬件的限制,8051中存储数据的buffer最大为512 bytes。所以PC端的数据每次也只发送512 bytes,总共测试的数据大小为8 K bytes,传输完8 K bytes的数据需要16次。串口传输的波特率为57600。8051接收来自PC的数据,每次接收512 bytes数据,并进行错误检测。若检测到错误,则给PC发送一个重传请求,若没有检测到错误,则给PC发送一个继续传输的命令。
    为了提高传输效率,在不影响检错的情况下,可分别对奇偶校验、CRC校验、汉明码校验采用不同的数据传输结构。
    奇偶校验每发送8 bits数据就算出1 bit的奇偶位,在算出8 bits的奇偶位之后,再将校验位一起发送到8051,其中数据D为512 bytes,Group为64bytes,data为8 bits数据。其数据结构如图2所示。

    CRC校验时,每512 bytes数据产生1bytes校验位并发送到8051,其数据结构如图3所示。其中D为512 bytes,data为512 bytes,CRC byte为8bit。即每512个bytes得到一个CRC校验值。汉明码由于采用了(12,4),每8 bits数据产生4 bits的校验位。故其数据结构如图4所示,图中,D为512 bytes的数据,data为8 bits的数据。

上一页  [1] [2] [3] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:189,121.10000 毫秒