FSK添加CRC

FSK添加CRC,第1张

进行数据白造化处理。

会根据选择的调制解调器的类型,从databuffer读取数据净荷,与寄存器中的物理层的帧头配置,共同组装成物理层的帧结构,并添加CRC到物理帧的尾部,然后进行数据的白噪化(Whitening)处理,把二进制数据流送给选择的调制解调器。

一、什么是CRC校验

这里要介绍一下数据链路层的三个基本问题:

1.封装成帧

这里写图片描述

加上首部和尾部,尾部包含FCS冗余校验码(专门为了检错而添加的帧验证序列)。

说明:CRC和FCS,没有关系,添加的FCS码既可以用CRC校验,也可以用其他方法校验。

2.透明传输

这里的透明传输是指任何东西否可以封装成帧来传输,就是透明传输。

3.差错校验

数据链路层广泛采用CRC校验。

循环冗余校验(Cyclic Redundancy Check),简称CRC校验。是IOS网络结构中,数据链路层的一种差错校验的技术。

二、CRC校验出现的原因

数据在传输的过程中,比特位可能发生错乱,1可能变成0,0可以变成1。

传输中错误的比特位占总数的比例称为误码率BER(Bit Error Rate)。数据传输不管怎么样,误码率都存在,因此,为了保证数据传输的可靠性,在数据链路层广泛使用CRC校验。

三、CRC校验的原理

举例: 现在有一段待发送的数据M=101001,k个比特位(这里k=6)。CRC运算就是在数据M后面加上n位冗余码。然后构成一个帧发送出去。

n为冗余码这么获得呢?

二进制模2运算乘M得到被除数:2n∗M

,被除数是双方商定好的(n+1位)P=1101。

用被除数除以除数可以得到 n位的余数。

101001000%1101=001

把得到的余数加到M后面就是发送的FCS:101001001。这个数除以P,余数为0。

每段帧在CRC校验后两种情况:

<1>.若得出余数为0,那么这个帧没有出错,接受。

<2>.要是得到余数≠0,那么出错,丢弃。

一种更方便的方法来标示循环冗余校验过程。

P(X)=X3+X2+1

,根据X的次方对应得到(P=1101)。

总结:在数据链路层,发送端检验校验序列FCS的生成和接收端CRC校验都是硬件完成,不会影响到数据传输的效率,在数据链路层仅用CRC校验,只能对帧做到无差错接受,(因为只有不出错才接受),所以凡是接收端收到了链路层的帧,那么认为这些帧的传输过程中没有产生差错。

ISO的观点是让数据链路向上提供可靠传输,因此在CRC校验的基础上,加入了帧编号,确认,重传机制。

1、首先在电脑中,找到并选择要查看CRC校验码的文件。

2、然后鼠标右击该文件,在d出的选项中选择“添加到xx.rar”。

3、成功以后,会在选中的那个目录生成一个与选择文件同名的rar压缩文件,双击打开该压缩文件。

4、压缩文件打开后会发现个名为CRC32的项目,那下面的一串数字就是这个文件的CRC32校验码,这个是十六进制的。

5、如果需要查看很多文件的CRC32校验码,可以将这些文件一次性打包成rar,然后打开新生产的rar压缩包,这样在对应文件后面的CRC32列下面就会有相应的CRC32校验么。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/7705794.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-08
下一篇2023-04-08

发表评论

登录后才能评论

评论列表(0条)

    保存