您现在的位置: 主页 > 嵌入式处理器 > FPGA > 基于FPGA的循环冗余校验实验系 - FPGA/ASIC技术 -
本文所属标签:
为本文创立个标签吧:

基于FPGA的循环冗余校验实验系 - FPGA/ASIC技术 -

来源: 网络用户发布,如有版权联系网管删除 2018-08-18 

  一、引言

  文章首先分析了循环冗余校验码的功能,在此基础上提出了基于FPGA的实现方法,详细阐述了CRC校验编解码的实现方法,并提出了基于现有的实验箱设备实现小型的CRC校验系统的总体设计框架和设计思路,完成了CRC校验实验系统的设计,充分提高了设备的使用效率。

  在教学过程中,我们尝试利用现有的EDA实验箱设备,设计实现小型的CRC校验系统,拓展设备的功能,提高设备使用效率。

  二、系统总体设计

  循环冗余校验CRC是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。它的基本原理是:在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码又叫(N,K)码。对于一个给定的(N,K)码,可以证明存在一个最高次幂为N-K=R的多项式G(x)。根据G(x)可以生成K位信息的校验码,而G(x)叫做这个CRC码的生成多项式。

  校验码的具体生成过程为:假设发送信息用信息多项式C(x)表示,将C(x)左移R位,则可表示成C(x)*2R,这样C(x)的右边就会空出R位,这就是校验码的位置。通过C(x)*2R除以生成多项式G(x)得到的余数就是校验码。

  生成多项式是接受方和发送方的一个约定,也就是一个二进制数,在整个传输过程中,这个数始终保持不变。在发送方,利用生成多项式对信息多项式做模2除(异或运算)生成校验码。在接受方利用生成多项式对收到的编码多项式做模2除(异或运算)检测,当被传送信息(CRC

  码)任何一位发生错误时,被生成多项式做模2除(异或运算)后应该使余数不为0。

  基于这样的原理,利用FPGA实现的小型的循环冗余校验实验系统可以由五个部分组成:数据输入电路、CRC编码处理电路、CRC解码处理电路、时钟电路、显示电路。作为CRC校验的输入部分,本设计采用通用的数字机械式键盘。本系统显示信息电路采用共阴极8位7段数码管显示码值,使用3-8译码器译码。CRC校验结果提示电路用LED灯显示,方便、简洁。时钟电路使用可调数字信号源产生时钟。编解码处理电路使用FPGA适配器。发送端首先将数据写入设计好的FIFO存储器,然后依次地调出数据进行编码,然后将生成的CRC码发送出去,并给以接收端一个接收信号;接收端收到信号后,开始对接收到的数据进行解码,并将解码信息反馈给发送方。当解码正确时,发送方继续发送下一个数据,当解码错误时,发送方把刚发的数据重新调出,进行编码,发送出去。系统原理图见图1。

  

 

  三、系统具体设计

  1、CRC编解码的设计

  本系统最主要的部分是CRC编解码的设计。

  首先来讨论编码的设计。本文设计完成12位信息位加5位CRC校验位的通信系统的发送和接收,CRC模块的端口的数据定义如下:

  sdata:12位待发送的信息 datald:sdata的装载信号

  error:误码警告信号 datafini:数据接收完成

  rdata:接收模块接收的12位有效信息数据

  clk:时钟信号

  datacrc:附加5位CRC校验码的17位CRC吗,在生成模块发送,被接收模块接收

  hsend、hrecv:生成、检错模块的握手信号,协调相互之间的关系

  设计的总体思路:首先装载信息位12位数据,取出其中的高6位与生成多项式系数作异或运算,得到的结果取其低5位与原来信息码的低6位并置并在其后补上一个”0”,补足12位,再与生成多项式做同样的异或运算,连续作7次这样的运算,最后得到的异或结果就是CRC校验位。这样通过巧妙的移位运算实现多项式的相除运算。

 

              查看评论 回复



嵌入式交流网主页 > 嵌入式处理器 > FPGA > 基于FPGA的循环冗余校验实验系 - FPGA/ASIC技术 -
 

"基于FPGA的循环冗余校验实验系 - FPGA/ASIC技术 -"的相关文章

网站地图

围观()