原创 1-Wire中CRC8的16字节表长查表程序

2009-10-18 18:33 5048 3 3 分类: MCU/ 嵌入式

1-Wire中CRC8的16字节表长查表程序


此文依据: http://blog.ednchina.com/hotpower/272834/message.aspx


CRC位域4单表查表及建表原则:
左移位域4取列表16个,大端存储模式。右移位域4取行表16个,小端存储模式。


在1-Wire中CRC的多项式为:右移CRC8=X8+X5+X4+1,即权值=0x8C,故建立16字节的CRC表格:
CRCTable[16]={0x00,0x9D,0x23,0xBE,0x46,0xDB,0x65,0xF8,0x8C,0x11,0xAF,0x32,0xCA,0x57,0xE9,0x74};


unsigned char GetCRC8(unsigned char crcinit, unsigned char crcval)
{//(可以不要初值crcinit,多字节CRC8时入口需要对crcval做处理)
unsigned char i, crc="0";
  crcval = crcinit ^ crcval;
  for(i = 0;i < 2;i ++)//1个字节位域4需要2次完成
  {
    crc = (crc >> 4) ^ CRCTable[(crc ^ crcval) & 0x0F];//位域宽4单表16个字节
    crcval >>= 4;//准备下一个位域,域宽4
  }
  return crc;
}


菜农HotPower@126.com  2009.10.18 于雁塔菜地

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
3
关闭 站长推荐上一条 /3 下一条