望”和古罗马地中海诸城市中的“悬灯为号”,可以说是传递信息的原始方式。随着社会生产的发展,科学技术的进步,人们对传递信息的要求急剧增加。到了20世纪20年代,如何提高传递信息的能力和可靠性已经成为普遍重视的话题。在传输过程中发生错误后能在接收端自行发现或纠正的码。仅用来发现错误的码一般常成为检错码。为使一种码具有检错或纠错能力,须对原码字增加多余的码元,以扩大码字之间的差别,即把原码字按某种规则变成有一定冗余度的码字,并使每个码字的码之间有一定的关系。关系的建立成为编码。码字到达接收端后,可以根据编码规则是否满足以判定有无错误。当不满足时,按一定规则确定错误所在位置并予以纠正。纠错并恢复原码字的过程成为译码。检错码与其它手段相结合,可以使用。
1948年香农在他的开创性论文“通信的数学理论”中,首次阐明了有扰信道中实现可靠通信的方法,提出了著名的有扰信道编码定理,奠定了纠错码的基石。自此以后汉明、普兰奇等人在50年代初,根据香农的思想给出了一系列设计好码和有效译码的方法。以后,纠错码受到了越来越多的通信和数学工作者,特别是代数学家的重视,使纠错码在理论和实践中都得到飞速发展。
在数据通信和计算机通信传输过程中,由于通道传输特性不理想,并且受到噪声或干扰的影响,传输到接收端后可能发生错误判决影响,使接收端收到的信息与发送端发送的信息不一致,即接收端收到的信息产生了误码。为了尽可能地降低通信的误码率,提高数字通信系统的可靠性,往往要采用差错控制编码。用差错控制编码可以发现可能产生的误码(检错码),或发现并纠正错误(纠错码)。差错控制的目的是提高通信的可靠性。差错控制最常用的方法有三种:自动请求重发方式(ARQ)、向前纠错方式(FEC)和混合纠错方式(HEC)。其中FEC和HEC是基于纠错编码,而ARQ是基于检错编码。FEC依赖于在发送码字中有控制的加入冗余信息。信号在噪声信道中进行传输时会产生误码现象,从而需要进行误码检测和纠正。不管接收码字的译码是否成功,接收机都不进行进一步的处理。因此,使用于FEC的信道编码技术只要求发射机和接收机之间是单向的链接。ARQ的基本思想完全不同于FEC。ARQ采用冗余的目的完全是为了进行误码检测。当在传输的码字中检测到错误时,接收机就要求重传错误的码字,这就需要使用一条返回路径(反馈信道)。因此,ARQ只能用于半双工或全双工的链路。实现检错功能的差错控制方法有很多,常用的有:奇偶校验、校验和检测、重复码检验、横比码检验、行列冗余码校验等。HEC是FEC和ARQ的结合。为了不破坏数据的完整性,差错控制借助于前向纠错FEC的方法来实现。离散信源产生二进制的信息,发射几种的信道编码器收到比特信息后,按照指定的规则加上冗余发送到接收端。接收机中的译码器对收到的数据进行误码检测和纠错。循环冗余校验CRC是由分组线性码的分支而来,其主要应用时二元码组。由于检错能力强,误判概率低等优点,被广泛应用于工业测控和数据通信领域。
差错控制编码的基本思想是:发送端在传送的信息码元序列中附加一些冗余的监督码元(校验码),这些监督码和信息码之间按编码规则形成一定的关系,接收端则通过检查这种关系来发现或纠正可能产生的误码。循环冗余校验CRC方法是以数据块为对象进行校验的,是一种高效、可靠的检错和纠错方法。
随着通信技术、计算机技术和控制技术的快速发展,多位数据的并行处理成为了人们关注的焦点,如何对多位并行数据进行快速编码及校验成为了数据处理中的研究热点。如果采用一般的串行CRC编码处理方式,在处理速度方面一定会大打折扣,若要满足快速的处理能力,就必须提高系统时钟频率,这样就增加了系统的功耗和系统的硬件实现难度。针对以上问题本文以具有更强差错校验能力的CRC-16校验码为例,用FPGA实现了32位并行数据的CRC-16编码。这一实现使得系统能够在较低时钟频率下,对32位并行数据进行快速编码和差错控制,保证了多位数据的快速处理和传输的可靠性。 基于FPGA的循环冗余校验算法研究(2):http://www.youerw.com/tongxin/lunwen_11520.html