题目
已知待发送数据为101101(6bit),生成多项式 G(x)=x^3+x+1(对应二进制[1] 1011)。请计算 CRC 校验码(FCS),并写出最终发送的数据序列。
已知待发送数据为101101(6bit),生成多项式 $G(x)=x^3+x+1$(对应二进制[1] 1011)。请计算 CRC 校验码(FCS),并写出最终发送的数据序列。
题目解答
答案
根据题目,待发送数据 $ D = 101101 $,生成多项式 $ G(x) = x^3 + x + 1 $ 对应1011。
1. 将 $ D $ 左移3位得101101000。
2. 将101101000与1011进行二进制除法:
```
101101000 ÷ 1011 = 商(忽略)... 余数011
```
3. CRC码(FCS)为011。
4. 最终发送数据为 $ D $ 后加FCS:101101011。
答案:
CRC码(FCS)为011。
最终发送的数据序列为101101011。
解析
本题考查循环冗余校验(CRC)的计算,解题思路是先根据生成多项式确定要在待发送数据后补零的位数,然后将待发送数据左移相应位数,接着用左移后的数据除以生成多项式对应的二进制数得到余数,该余数即为CRC校验码(FCS),最后将待发送数据和CRC校验码拼接得到最终发送的数据序列。
- 确定补零位数:
生成多项式$G(x)=x^3 + x + 1$,其最高次幂为$3$,所以要在待发送数据$D = 101101$后面补$3$个$0$。
将$D$左移$3$位,根据二进制左移规则,相当于在原数据后面添加$3$个$0$,得到$101101000$。 - 进行二进制除法:
用$101101000$除以生成多项式对应的二进制数$1011$。
二进制除法过程如下:- 首先,$1011$进入$10110$,商$1$,$1\times1011 = 1011$,$10110 - 1011 = 0000$。
- 把下一位$1$移下来,得到$0001$,$1011$不能进入$0001$,商$0$。
- 再把下一位$0$移下来,得到$00010$,$1011$不能进入$00010$,商$0$。
- 把最后一位$0$移下来,得到$000100$,$1011$进入$000100$,商$1$,$1\times1011 = 1011$,$000100 - 1011 = 011$。
所以$101101000\div1011$的余数为$011$。
- 确定CRC校验码(FCS):
由上述计算可知,CRC码(FCS)为$011$。 - 得到最终发送的数据序列:
最终发送的数据序列是将待发送数据$D$和CRC校验码$FCS$拼接起来,即$101101$后面加上$011$,得到$101101011$。