请下载论文,论文为word格式,只上传部分查看,如果需要此参考论文,请点击-下载论文,下载资料。
在通信过程中用C 语言实现CRC 校验
摘要:通信的目的是要把信息及时可靠地传送给对方,因此要求一个通信系统传输消息必
须可靠与快速,在数字通信系统中可靠与快速往往是一对矛盾。为了解决可靠性,通信系统都
采用了差错控制。本文简述CRC 算法原理,给出一种查表计算方法,并给出用C 语言编写的
算法源程序。
关键词:通信;循环冗余校验;CRC;多项式;查表法
1 概 述
在数字通信系统中可靠与快速往往是一对矛盾。若要求快速,则必然使得每个数据码元所占地时间缩短、波形变窄、能量减少,从而在受到干扰后产生错误的可能性增加,传送信息的可靠性下降。若是要求可靠,则使得传送消息的速率变慢。因此,如何合理地解决可靠性与速度这一对矛盾,是正确设计一个通信系统的关键问题之一。为保证传输过程的正确性,需要对通信过程进行差错控制。差错控制最常用的方法是自动请求重发方式(ARQ) 、向前纠错方式(FEC) 和混合纠错(HEC) 。在传输过程误码率比较低时,用FEC 方式比较理想。在传输过程误码率较高时,采用FEC 容易出现“乱纠”现象。HEC 方式则是ARQ 和FEC 的结合。在许多数字通信中,广泛采用ARQ 方式,此时的差错控制只需要检错功能。实现检错功能的差错控制方法很多,传统的有:奇偶校验、校验和检测、重复码校验、恒比码校验、行列冗余码校验等,这些方法都是增加数据的冗余量,将校验码和数据一起发送到接受端,接受端对接受到的数据进行相同校验,再将得到的校验码和接受到的校验码比较,如果二者一致则认为传输正确。但这些方法都有各自的缺点,误判的概率比较高。
循环冗余校验CRC(Cyclic Redundancy Check) 是由分组线性码的分支而来,其主要应用是二元码组。编码简单且误判概率很低,在通信系统中得到了广泛的应用。CRC 的实现分为硬件和软件两种方法,其中软件实现的关键在于计算速度。如果单纯模拟硬件实现方法,则计算速度较慢。本文中重点介绍了CRC 校验的原理及查表法计算CRC 的实现。
相关热词:在通信过程中用C 语言实现CRC 校验