77范文网 - 专业文章范例文档资料分享平台

CRC校验码系统的设计(3)

来源:网络收集 时间:2018-12-27 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

反馈,0 表示无反馈。每个寄存器的初始值均为0,将码组 m3m2m1m0 依次串行送入电路的最高端,相当于对其后面补三个零,除法电路经过四次移位后,寄存器 D1D2D3里的数即为余式 r (x) 。因此,编出码组 T (x) = (m3m2m1m0D1D2D3)。实际设计中,要有一个信号 K 来控制码组的输入与输出,在 K 的控制下,输入的信息码元,一方面串行输入信道,另一方面进入除法电路进行计算。当输入最末一位信息码元结束时,K 信号也为零,在时钟脉冲作用下,移位寄存器将计算结果送往信道,即在最末一位信息码元后附加监督码。

3.2译码器的设计

接收端译码的要求有两个:检错和纠错。

(1) 检错若接收码组 R (x) 与发送码组相同,即 R (x) =T (x),则R (x) 必定能被 g (x) 整除;若在传输中发生错误,即 R (x)≠T (x),则 R (x) 被 g (x) 除时可能除不尽而有余项,从而发生错误。因此,可以以余项是否为零来判断接收码组中有无错误。但是,有错码的接收码组也有可能被 g (x) 整除,这时的错码就不能检出。这种错误称为不可检错误,其误码必定超过了此编码的检错能力。

(2) 纠错

为了能够纠错,要求每个可纠正的错误图样必须与一个特定余式有一一对应关系。只有存在上述一一对应的关系时,才可能从上述余式唯一地决定错误图样,从而纠正错码。以下是为纠错而设计的。由于 (7,4) 循环码的最小码距为 d0=3,由 d0≥2t+1 得,此循环码只能纠正一个错码。当经过信道传输后发生错误时,接收码组多项式 R (x) 不再是的倍式。

其中 S (x) 是 R (x) 除以 g (x) 后的余式,是不大于 r-1次的码组多项式,称为伴随多项式或校正子多项式。时接收码组多项式 可表示为发送码组多项式 T (x) 与差错多项式 E (x) 之和,即:R (x) =T (x) +E (x)综合以上式子,我们由 就可进一步确定 E (x):

S (x) =rem[T (x) +E (x) ] =rem [E (x) ]

g (x) g (x)

对于一个 S (x),E (x) 可能有多种形式。由 S (x) 确定 E(x) 时同样使

6

用最大似然比准则。对最小码重的差错多项式 E(x),由上式求出对应的伴随多项式 S (x),将 E (x) 与 S (x) 的对应关系列成译码表。当收到任一码组 R (x) 后,利用 S (x)=rem [R (x) /g (x)] 求出 S (x),对照译码表找到 E (x),再用R (x) =T (x) +E (x) 求 T (x),即 T (x) =R (x) -E (x) 为已经纠错的原发送码组。纠错完毕之后,只需要取纠错后的前四位,即为所译码元。而在实际电路设计过程中,由于二进制只有 0 与 1 两种状态,知道错误位置后,可以直接对该位置的码元取反即可。

综上所述,纠错的步骤如下:

(1)把 接 收 码 组 R ( x) 送 入 除 法 电 路 , 得 到 余 数D1D2D3 即为伴随矩阵 S (x)。

(2)由典型生成矩阵 G 和典型监督矩阵 HT 之间的关系可进一步求得,再由 S=E.HT 可得错误图样 E(x),这样就可以确定错码的位置。

(3)根据错误的码位,对该码位的码元取反输出便可得到原发送码组 T (x)。其中,T (x) 的前四位即为译出码元 m(x)。

图3.2 译码器示意图

在运用 VHDL 设计时,将接收码组进行串并转换,进入除法电路求其伴随式,让其并行输出之后送入错误图样识别器来确定 E,以便确定出错码的位置,对其错码位取反即可。最后,通过并串转换将译码后的码组串行输出。

7

4 设计步骤

4.1系统分析

本设计在QuartusⅡ的EDA软件平台上,运用VHDL语言进行编程。程序流程图如图4.2所示:

图4.1循环码编译码框架图

循环码编译码系统结构图如图4.1所示。由定时单元(控制信号生成单元) 、信码发生器、编码器单元、模拟错码发生器、错码位置计算单元、纠错单元组成。其中错码位置计算单元和纠错单元合在一起构成译码器。

8

4.2程序流程分析

开始初始化并且输入四位信息码datain编码dataoutrout判断检错N纠错Y译码tout输出7位信息码din结束 图4.2 程序流程图

该程序流程主要通过输入一组四位信息码组,然后根据编码后的余数输出对编码进行检错判断,若输出余数为000 则无错码,若输出的余数不为000,则有错码。然后纠错并译码输出一个7位信息码组。 4.3程序设计

根据程序流程图编写程序,源程序如下所示:

其中,为了增加译码器的可读性,增加了个 judge 信号,当为 00 时表示无错码,11 时表示有错码。 LIBRARYieee;

USE ieee.std_logic_1164.all; ENTITY cycle IS PORT (

datain: IN STD_LOGIC;

clk,clr,clr2: IN STD_LOGIC;

enable1: in std_logic; enable2: in std_logic;

9

tout:outstd_logic_vector(6 downto 0); judge:outstd_logic_vector(1 downto 0) );

END cycle;

ARCHITECTURE arc_cycle OF cycle IS SIGNAL d0,d1,d2:STD_LOGIC;

signal q1,q2,q0:STD_LOGIC_vector(7 downto 0):=\signaldataout: std_logic;

signal din: std_logic_vector(6 downto 0); signal rout: std_logic_vector(2 downto 0);

--signal din: std_logic_vector(6 downto 0):=\

BEGIN

u1:process (clk)

variable g:std_logic;

variable m:integer range 1 to 8; begin

if (clk'event and clk='1') then if clr='1' then --初始状态 g:='0'; m:=1;

dataout<='0'; else

if m<=8 then

if m<=4 then --输入四位信息位 dataout<=datain; case m is

when 1 => din(6)<=dataout; when 2 => din(6)<=dataout; when 3 => din(5)<=dataout; when 4 => din(4)<=dataout; when 5 => din(3)<=dataout; when 6 => din(2)<=dataout; when 7 => din(1)<=dataout; when 8 => din(0)<=dataout; end case;

g:=datain XOR d2; else

dataout<=d2; --余数输出 case m is

10

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库CRC校验码系统的设计(3)在线全文阅读。

CRC校验码系统的设计(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/392817.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: