好文档 - 专业文书写作范文服务资料分享网站

通信原理实验17 CRC码的编解码实验

天下 分享 时间: 加入收藏 我要投稿 点赞

实验十六 CRC的编解码实验

实验十七 CRC码的编解码实验

实 验 内 容

1. 熟悉CRC码编码实验。 2.熟悉CRC码译码实验。

一、实验目的

1.加深对CRC码的理解 2.掌握CRC码的编解码过程

3. 学习通过CPLD编程实现CRC码编译码实验

二、实验电路工作原理

在实际的基带传输系统中,并不是所有码字都能在信道中传输。例如,含有直流和低频成分的基带信号就不适宜在信道中传输,因为它有可能造成信号严重畸变。同时,一般基带传输系统都从接收到的基带信号流中提取收定时信号,而收定时信号却又依赖于传输的码型,如果码型出现长时间的连“0”或连“1”符号,则基带信号可能会长时间的出现0电位。从而使收定时恢复系统难以保证收定时信号的准确性。实际的基带传输系统还可能提出其它要求,因而对基带信号也存在各种可能的要求。归纳起来,对传输用的基带信号的主要要求有两点:

① 对各种代码的要求,期望将原始信息的符号编制成适合于传输用的码型, ② 对所传码型的电波波形要求,期望电波波形适宜于在信道中传输。

前一问题称为传输码型选择,后一问题称为基带脉冲的选择。这是两个既有独立性又有联系的问题,也是基带传输原理中十分重要的两个问题。

传输码(又称线路码)的结构将取决于实际信道特性和系统工作的条件。在较为复杂的基带传输系统中,传输码的结构应具有下列主要特性:

① 能从其相应的基带信号中获取定时信息;

② 相应的基带信号无直流成分和只有很小的低频成分; ③ 不受信息源统计特性的影响,即能适应于信息源的变化; ④ 尽可能地提高传输码型的传输效率; ⑤ 具有内在的检错能力,等等。 1.CRC简介

90

实验十六 CRC的编解码实验

CRC又称循环冗余校验码,属于循环码的一种,在计算机通信和移动通信中广为应用。它能够检测出如下错误:

(1) 突发长度?n-k的突发错误;

(2) 大部分突发长度=n-k+1的错误,其中不可检测的这类错误只占2?(n?k?1); (3) 大部分突发长度〉n-k+1的错误,不可检测的这类错误只占2?(n?k); (4) 所有与许用码组码距?dmin-1的错误; (5) 所有基数个随机错误。

2.CRC编码原理

实验中采用的生成多项式为:x?x?x?1。产生的规则:将要发送的二进制序列左移r位(即乘以2r)后,再除以一个生成多项式,最后的到的数就是CRC码。 实现方法:

process(clk,rst) begin if rst='0' then

temp<=\elsif clk'event and clk='1' then if i=24 then

temp<=\ elsif i<24 then i<=i+1; temp(1)<=temp(0); temp(2)<=temp(1); temp(3)<=temp(2); if flag='1' then

temp(4)<=temp(3); temp(5)<=temp(4); temp(0)<=datain; else

temp(0)<=(datain xor temp(7)); temp(4)<=(temp(3)xor temp(7)); temp(5)<=(temp(4)xor temp(7)); end if; temp(6)<=temp(5);

temp(7)<=temp(6);--x^8+x^5+x^4+1;

91

854实验十六 CRC的编解码实验

datain_temp(0)<=datain; datain_temp(1)<=datain_temp(0); datain_temp(2)<=datain_temp(1); datain_temp(3)<=datain_temp(2); datain_temp(4)<=datain_temp(3); datain_temp(5)<=datain_temp(4); datain_temp(6)<=datain_temp(5); datain_temp(7)<=datain_temp(6);

if i>15 then flag<='1';--did'nt include feedback else flag<='0';--include feedback end if;

if i>16 then dataout<=temp(7); else dataout<=datain_temp(7); end if; end if; end if; end process;

3.CRC解码原理

解码规则:将数据进行再次CRC编码,得到的余数为零就是正确的。 注:长除时,不是直接减,而是异或的结果。 4.仿真波形:

其中:datain 是二进制序列,dataout4 是CRC编码结果,注意位数不一样,想一想

为什么?dataout为解码结果,后面的几位为零,表示校验正确,没有误码。

三、实验内容 拨码开关识别注意点:

SWD01拨上为“1”,拨下为“0”,SWD01拨上为“0”,拨下为“1”,同时输入信号从高

92

实验十六 CRC的编解码实验

位算起(即第八位向第一位开始算起)。

1.将SWD02 ( 8位的拨码开关) 拨到你想要输入的数据;

2.将SWD01(4位的拨码开关)拨为1101,选择CRC编解码,按动RST复位程序; 3.用示波器观测TDP07的发送信号码元波形,TPD13的时钟信号,观察发送码元的发

光管DD01,DD02……DD08显示;

4.观察TPD05的编码波形,记录并分析CRC码的编码规则; 5.观察TPD08处的CRC码解码码元,分析CRC码的解码算法; 6.将1步骤中的数据改变,再重复以上步骤。

四、实验报告要求

1.根据你拨的数据,手算一下编码结果,和编码器的结果对比,看看是否正确,加深对CRC编码过程的理解。

2.根据实验现象要求整理数据,画出你拨的数据对应CRC编码输出波形,进一步学习VHDL语言。

五、测试点说明

1.TPD07:基带信号输入,码型与输入相对应;

2.TPD13:时钟信号; 3.TPD05:CRC码编码输出; 4.TPD08:CRC码译码输出。

备注:实验由试样程序实现,有兴趣的同学可以自己用QUARTUSⅡ自己编译,测试点可以自己定义,电路原理图见附录。

93

7k4rf4h6jo4oweh0q68m0sr9z0p01l00nxk
领取福利

微信扫码领取福利

微信扫码分享