中国工控培训网· CRC-16 生成 式 原 理
发布时间:2018-06-21 13:10:39
CRC-16
生成
式
原
理
CRC
运
算
时
,
首
先
将
一个
16
位
的
寄存器
预
置
为
全
1
,
然后中国工控培训网
连
续把
数据帧
中的
8
位字
节
与
该
寄存器
的
当
前
值
进
行
运
算
,
仅仅
每
个
字
8
个
数据
位
参
与
生成
CRC
,
起始位
和
终
止
位以
及
可
能使用
的
奇偶
位
都
不
响
CRC
。
在
生成
CRC
时
,
每
个
8
位字
节
与
寄
存器
中
的
内容
进
行
异
或
,
然后
将
结果
向
低
位
移
位
,
高
位
则
用
0
”
补充
,最
低
位
(
L
SB
)
移
出
并检
测
,如
果
是
1
,
该
寄
存器
就
与
一个
预
设
的
固
定
值
进
行
一次
异
或
运
算
,如
果
最
低
位
为
0
,
不作
任何
处
理
。
上
述
处
理
重
复
进
行
,知
道
执
行
完
了
8
次
位
操作,
当
最
后
一
位
(
第
8
位
)
移完
以
后
,下
一个
8
位字
节
与
寄存器
材
的
当
前
值
进
行
异
或
运
算
,同
样
进
行
上
述
的
另
一个
8
次
移
位
异
或
操作,
当
数据帧
中的
所
有
字
节
都
作了
处
理
,
生成
的最
终
值
就
是
CRC
值
。
生成
一个
C
RC
的
流
程
为
:
a)
预
置
一个
16
位
寄存器
为
0FFF
FH
(
全
1
)
,
称
之
为
C
RC
寄存器
;
b)
把
数据帧
中
的第一个
8
位字
节
与
CRC
寄
存器
中的
低
字
节
进
行
异
或
运
算,
结果
存
回
CRC
寄存器
;
c)
将
CRC
寄
存器
向右移
一
位
,最
高
位
填
以
0
,最
低
位
移
出
并检
测
;
d)
如
果
最
低
位
为
0
:
重
复
第
三步
(
下一次
移
位
)
;
e)
如
果
最
低
位
为
1
:
将
C
RC
寄
存器
与
一个
预
设
的
固
定
值
(
0A001H
)
进
行
异
或
运
算
;
f)
重
复
第
三步
和
第
四
步直
到
8
次
移
位
。
这
样处
理
完
了
一个
完整
的
八
位
;
g)
重
复
第
2
步
到
第
5
步
来
处
理
下
一个
八
位
,
直
到所
有的
字
节
处
理
结
束
;
h)
最
终
CRC
寄
存器
得值
就
是
CRC
的
值
。