一、引言
文章首先分析了循环冗余校验码的功能,在此基础上提出了基于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校验位。这样通过巧妙的移位运算实现多项式的相除运算。
部分程序代码的实现如下:
解码部分的设计与编码部分类似,不过更加简单,只需要将接收的crc码直接与发端相同的生成多项式相除,除尽表示没有出现传输差错,直接去掉校验位,就可以得到信息码了。关键的部分代码如下:
2、其他部分的设计
(1)数据输入电路部分:将其设计成为一个fifo的数据缓存器,这样做的目的,可以接收源源不断传来的数据,另一方面考虑到可能传输出现差错,可以从缓存将数据调出来重新传输一遍,直到正确传输为止,才删去数据。
(2)显示电路部分:输入数据与输出数据都可以采用数码管来进行显示,通过数码管显示可以清楚地观察到传输过程中数据传输的准确性。传输过程出现的差错可以由接收端反馈,在发送端可以用led灯进行提示。
(3)按键消抖电路部分:由于设计采用开关是机械开关结构,因此在开关切换的瞬间会在接触点出现信号来回弹跳的现象。基于vhdl的按键消抖法主要有三种:电平检测消抖法、定时检测消抖法以及脉宽检测消抖法。本系统采用定时检测消抖法可以进行按键的消抖。
至于时钟电路,对于数码显示电路而言,需要额外提供一个较高频率的扫描电路,其他的时钟可以用普通的时钟提供。
实验系统的实物图如下:
四、结束语
基于以上的系统的架构和主要的设计思想,我们通过两台eda实验箱完成了crc循环冗余校验,模拟了现实的完整的包含发送、传输和接收模块的系统,实验证明,系统能够完成crc校验,拓展了设备的功能,提高了设备的利用率,达到了设计的目的。
华为mate10确定10月16日发布!外观基本确定,与iPhoneX对抗的重量级产品
尼康1系列无反相机走向终结:或将是为全画幅无反相机做准备
印制板铜皮走线的注意事项
分析师预言英特尔10纳米技术细节
泰克MSO/DPO2000B示波器系列简化和加快复杂设计的调试
基于FPGA的循环冗余校验实验系统
一款抢答器的质疑
尼泊尔和韩国联合资助Chameliya水电项目助力尼泊尔国家电网
邬贺铨院士:工业互联网ICT的新挑战
云计算与5G等新兴技术融合,推动传统企业数字化转型
射频开关设计和选择合适的开关
常用的振荡器类型有哪些,微控制器应用中如何选择
TMS320C6211 DSK及其在短波软件无线电侦察中的应
UAA3545收发器的应用电路
什么是射频电路_射频电路基础知识
Uber无人驾驶要凉,放弃还是坚持?
铜线拉丝机生产的常见问题与产生原因
基于LabVIEW开发平台的功率放大器测试与分析系统的设计
中国联通与IBM认知物联网联合成立了创新中心
LCD驱动电路分析 绿、红、蓝三个节点波形产生