tanxia
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 16 個(gè)
工控威望: 149 點(diǎn)
下載積分: 611 分
在線時(shí)間: 137(小時(shí))
注冊時(shí)間: 2010-03-04
最后登錄: 2012-07-11
查看tanxia的 主題 / 回貼
樓主  發(fā)表于: 2010-04-07 21:48
最近在做三菱FX2N與歐母龍變頻器的通信,遇到一個(gè)問題,就是看不明白歐母龍變頻器通信格式中的異常檢查-CRC-16要如何計(jì)算,請各位幫幫忙
meiyouleya
天黑路滑,社會復(fù)雜!!
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 385 個(gè)
工控威望: 422 點(diǎn)
下載積分: 1377 分
在線時(shí)間: 119(小時(shí))
注冊時(shí)間: 2006-11-01
最后登錄: 2021-08-13
查看meiyouleya的 主題 / 回貼
1樓  發(fā)表于: 2010-04-07 23:46
說明:CRC循環(huán)冗余錯(cuò)誤校驗(yàn)計(jì)算方法  
  CRC—16(循環(huán)冗余錯(cuò)誤校驗(yàn))生成CRC—16校驗(yàn)字節(jié)的步驟如下:  
  (1)裝入一個(gè)16位寄存器,所有數(shù)位均為1。  
  (2)該16位寄存器的高位字節(jié)與開始8位字節(jié)進(jìn)行“異或”運(yùn)算。運(yùn)算結(jié)果放入這個(gè)16位寄存器。  
  (3)把這個(gè)16位寄存器向右移1位。  
  (4a)若向右(標(biāo)記位)移出的數(shù)位是1,則生成多項(xiàng)式1010000000000001和這個(gè)寄存器進(jìn)行“異或”運(yùn)算。  
  (4b)若向右移出的數(shù)位是0,則返回(3)。  
  (5)重復(fù)(3)和(4),直至移出8位。  
  (6)另外8位與該16位寄存器進(jìn)行“異或”運(yùn)算。  
  (7)重復(fù)(3)—(6),直至該報(bào)文所有字節(jié)均與16位寄存器進(jìn)行“異或”運(yùn)算,并移位8次。  
  (8)這個(gè)16位寄存器的內(nèi)容即2字節(jié)CRC錯(cuò)誤校驗(yàn)
如果還是不明白可以在網(wǎng)上下載一個(gè)例子程序看下。