关于利用LFSR实现模2除法的原理,我没能理解,找了很多资料,但一个也没有理解。 接下来的一个还算可靠。 首先记住,以后有时间的话就按照这个思路慢慢引导吧。
转自) 3358 www.elecfans.com/dianzichangshi/2009101396345.html
实现模式2除法的线路循环校验码核心逻辑线路是实现模式2除法的线路。 根据上述方法,可以将除以模具2的步骤分解为两个操作。 如果被除数或馀数的最高值为0,则将馀数直接左移一位。 被除数或部分馀数的最高有效位的值为1时,将生成多项式gx )作为模2减,将馀数左移1位。
对于生成图2.2模式2除法的逻辑图以上述gx )=1011表示) 7、4 )校验码的例子,可以采用图2.2所示的电路,生成3位数的馀数。 图中的模2减法通过异或门实现,左移一位通过移位寄存器实现; 通过异或门的输出控制左1位寄存器的D输入端,可以同时实现模式2的减法和左移。 控制是否用最左边的位数的可取值进行模2的减法,如果它是1,要减去的数为生成多项式gx )=1011。 其中被除数d逐位串行传送到移位寄存器,由CP脉冲同步。
实现图2.3gx )=1011的线性) 7、4 )分组码型2的电路图是g ) x )一定的,所以可以省略G2; 因为只求3位数的余数,所以G3和T0也失去了意义。 图2.2可以简化为图2.3a )。 在图2.3a )的线路中,在发送侧,输入的信息符号d为1100,被串行地从低位发送,首先向左移位3位而形成1100000,进而除以7步模式2,从而移位寄存器T3T2T1中的馀数010 在接收端,在对7位CRC码字1100010执行了7步模式2除法之后,如果在T3T2T1中获得000,则表示CRC码字没有错误; 如果馀数不是全0,就可以从表2.4中确定错误位置。 将Ti作为T3T2T1的某个触发器的当前状态,将ti作为下一状态,可以用下一状态方程式表示图2.3a )的模式2除法电路: T3=T2,T2=T3t1,t1=T3d。 分别用被除数1100000和1010000验证被除数为010和011的工作过程,见表2.6。 读者可以用竖式2计算和比较各步骤的结果。 表2.6图2.3a )线路工作过程的例子http://www.Sina.com/http://www.Sina.com/http://www.Sina.com.3358 ww.Sina.com/3358 ww.com
1
2
3
4
5
6
7,000
1 001
1 011
0 110
0 111
0 101
0 001
0 010 0 000
1 001
0 010
1 101
0 001
0 010
0 100
0 011通过对图2.3a )的线路稍加变更,得到图2.3 ) b )的线路,可以作为g ) x )=1011的系统线性) 7、4 )分组编码的编码线路使用。 要编码的信息d从上层发送,CRC码从t发送。 开始时,开关K1闭合,K2命中b位置,输入信息进入除法线的同时发送到t输出。 经过步骤4,T3T2T1剩余。 然后,K1关闭,K2命中a,T3T2T1只有移位功能,正好把剩余连接到信息代码上用t送出。 在图2.3b )中,开关K1闭合,K2击中b,T3T2T1以及输出t为: T=b=D,T3=T2、T2=t1T3d,t1=T3T3888889; 当开关K1断开且K2对应于a时,t3t2T1及输出t可表达为:t=a=t3d=t3d为0 )、T3 )=t2、T2 )=t1、t1 )=0。 用信息代码1100和1010获取的CRC代码1100010和1010011的作业步骤如表2.7所示。
表2.7图2.3b )线路编码过程示例http://www.Sina.com/http://www.Sina.com/http://www.Sina.com/http://www.Sina.com/3353358
1
2
3
4
5
6
7,000
1 011 1
1 101 1
0 001 0
0 010 0
0 100 0
0 000 1
0 000 0 0 000 0
1 011 1
0 110 0
1 100 1
0 011 0
0 110 0
0 100 1
0 000 1