chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>電子百科>通信技術(shù)>數(shù)據(jù)通信>

8位crc校驗(yàn)分析及程序

2017年12月04日 10:28 網(wǎng)絡(luò)整理 作者: 用戶評(píng)論(0

  CRC 中的生成多項(xiàng)式,是有很多標(biāo)準(zhǔn)的。其統(tǒng)一的規(guī)律是:最高位、最低位都為1。8位CRC校驗(yàn)通常用的是CRC-8,其生成多項(xiàng)式為:107H = 1 0000 0111B進(jìn)行異或運(yùn)算時(shí),最高位,就算是移出去了,因此,只用 07H 進(jìn)行異或計(jì)算即可。

  CRC校驗(yàn)實(shí)用程序庫 在數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)通訊領(lǐng)域,為了保證數(shù)據(jù)的正確,就不得不采用檢錯(cuò)的手段。在諸多檢錯(cuò)手段中,CRC是最著名的一種。CRC的全稱是循環(huán)冗余校驗(yàn),其特點(diǎn)是:檢錯(cuò)能力極強(qiáng),開銷小,易于用編碼器檢測(cè)電路實(shí)現(xiàn)。從其檢錯(cuò)能力來看,它所不能發(fā)現(xiàn)的錯(cuò)誤的幾率僅為0.0047%以下。

  從性能上和開銷上考慮,均遠(yuǎn)遠(yuǎn)優(yōu)于奇偶校驗(yàn)及算術(shù)和校驗(yàn)等方式。因而,在數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)通訊領(lǐng)域,CRC無處不在:著名的通訊協(xié)議X.25的FCS(幀檢錯(cuò)序列)采用的是CRC-CCITT,WinRAR、NERO、ARJ、LHA等壓縮工具軟件采用的是CRC32,磁盤驅(qū)動(dòng)器的讀寫采用了CRC16,通用的圖像存儲(chǔ)格式GIF、TIFF等也都用CRC作為檢錯(cuò)手段。下面介紹硬件生成與計(jì)算CRC的過程。

  8位CRC校驗(yàn)程序

  //本程序是完成CRC-8的方程式為X^8+X^2+X+1的源代碼,經(jīng)調(diào)試后正確通過!

  #include “reg52.h”

  #define CRCnum 5

  char CRCArray[CRCnum]={0x16,0x0f,0x17,0xe9,0x03};//需要CRC計(jì)算一串?dāng)?shù)0x160f17e903

  unsigned char cal_crc(unsigned char *ptr, unsigned char len);

  void main()

  {

  char CRC;

  CRC=cal_crc(CRCArray,CRCnum);//得到CRC的代碼

  }

  unsigned char cal_crc(unsigned char *ptr, unsigned char len)

  {

  unsigned char i; unsigned char crc=0; while(len--!=0)

  {

  for(i=0x80; i!=0; i/=2)

  {

  if((crc&0x80)!=0)

  {

  crc*=2; crc^=0x07;

  } /* 余式CRC乘以2再求CRC */

  else

  crc*=2;

  if((*ptr&i)!=0)

  crc^=0x07; /* 再加上本位的CRC */ } ptr++;

  }

  return(crc);

  }

  CRC8位校驗(yàn)程序分析

  crc8校驗(yàn)查表法實(shí)現(xiàn)方法——查表法 生成多項(xiàng)式X^8+X^6+X^4+X^3+X^2+X^1

  const uchar crctable[] = {

  0, 94,188,226, 97, 63,221,131,194,156,126, 32,163,253, 31, 65,

  157,195, 33,127,252,162, 64, 30, 95, 1,227,189, 62, 96,130,220,

  35,125,159,193, 66, 28,254,160,225,191, 93, 3,128,222, 60, 98,

  190,224, 2, 92,223,129, 99, 61,124, 34,192,158, 29, 67,161,255,

  70, 24,250,164, 39,121,155,197,132,218, 56,102,229,187, 89, 7,

  219,133,103, 57,186,228, 6, 88, 25, 71,165,251,120, 38,196,154,

  101, 59,217,135, 4, 90,184,230,167,249, 27, 69,198,152,122, 36,

  248,166, 68, 26,153,199, 37,123, 58,100,134,216, 91, 5,231,185,

  140,210, 48,110,237,179, 81, 15, 78, 16,242,172, 47,113,147,205,

  17, 79,173,243,112, 46,204,146,211,141,111, 49,178,236, 14, 80,

  175,241, 19, 77,206,144,114, 44,109, 51,209,143, 12, 82,176,238,

  50,108,142,208, 83, 13,239,177,240,174, 76, 18,145,207, 45,115,

  202,148,118, 40,171,245, 23, 73, 8, 86,180,234,105, 55,213,139,

  87, 9,235,181, 54,104,138,212,149,203, 41,119,244,170, 72, 22,

  233,183, 85, 11,136,214, 52,106, 43,117,151,201, 74, 20,246,168,

  116, 42,200,150, 21, 75,169,247,182,232, 10, 84,215,137,107, 53};

  備注:在數(shù)據(jù)傳輸中CRC或傳過來的數(shù)據(jù),可能低字節(jié)在前,高字節(jié)在后,這就造成查表法表中被查數(shù)據(jù)不同。

  unsigned char crc_array[256] = {

  0x00, 0x5e, 0xbc, 0xe2, 0x61, 0x3f, 0xdd, 0x83,

  0xc2, 0x9c, 0x7e, 0x20, 0xa3, 0xfd, 0x1f, 0x41,

  0x9d, 0xc3, 0x21, 0x7f, 0xfc, 0xa2, 0x40, 0x1e,

  0x5f, 0x01, 0xe3, 0xbd, 0x3e, 0x60, 0x82, 0xdc

  0x23, 0x7d, 0x9f, 0xc1, 0x42, 0x1c, 0xfe, 0xa0,

  0xe1, 0xbf, 0x5d, 0x03, 0x80, 0xde, 0x3c, 0x62,

  0xbe, 0xe0, 0x02, 0x5c, 0xdf, 0x81, 0x63, 0x3d,

  0x7c, 0x22, 0xc0, 0x9e, 0x1d, 0x43, 0xa1, 0xff,

  0x46, 0x18, 0xfa, 0xa4, 0x27, 0x79, 0x9b, 0xc5,

  0x84, 0xda, 0x38, 0x66, 0xe5, 0xbb, 0x59, 0x07,

  0xdb, 0x85, 0x67, 0x39, 0xba, 0xe4, 0x06, 0x58,

  0x19, 0x47, 0xa5, 0xfb, 0x78, 0x26, 0xc4, 0x9a,

  0x65, 0x3b, 0xd9, 0x87, 0x04, 0x5a, 0xb8, 0xe6,

  0xa7, 0xf9, 0x1b, 0x45, 0xc6, 0x98, 0x7a, 0x24,

  0xf8, 0xa6, 0x44, 0x1a, 0x99, 0xc7, 0x25, 0x7b,

  0x3a, 0x64, 0x86, 0xd8, 0x5b, 0x05, 0xe7, 0xb9,

  0x8c, 0xd2, 0x30, 0x6e, 0xed, 0xb3, 0x51, 0x0f,

  0x4e, 0x10, 0xf2, 0xac, 0x2f, 0x71, 0x93, 0xcd,

  0x11, 0x4f, 0xad, 0xf3, 0x70, 0x2e, 0xcc, 0x92,

  0xd3, 0x8d, 0x6f, 0x31, 0xb2, 0xec, 0x0e, 0x50,

  0xaf, 0xf1, 0x13, 0x4d, 0xce, 0x90, 0x72, 0x2c,

  0x6d, 0x33, 0xd1, 0x8f, 0x0c, 0x52, 0xb0, 0xee,

  0x32, 0x6c, 0x8e, 0xd0, 0x53, 0x0d, 0xef, 0xb1,

  0xf0, 0xae, 0x4c, 0x12, 0x91, 0xcf, 0x2d, 0x73,

  0xca, 0x94, 0x76, 0x28, 0xab, 0xf5, 0x17, 0x49,

  0x08, 0x56, 0xb4, 0xea, 0x69, 0x37, 0xd5, 0x8b,

  0x57, 0x09, 0xeb, 0xb5, 0x36, 0x68, 0x8a, 0xd4,

  0x95, 0xcb, 0x29, 0x77, 0xf4, 0xaa, 0x48, 0x16,

  0xe9, 0xb7, 0x55, 0x0b, 0x88, 0xd6, 0x34, 0x6a,

  0x2b, 0x75, 0x97, 0xc9, 0x4a, 0x14, 0xf6, 0xa8,

  0x74, 0x2a, 0xc8, 0x96, 0x15, 0x4b, 0xa9, 0xf7,

  0xb6, 0xe8, 0x0a, 0x54, 0xd7, 0x89, 0x6b, 0x35,

  };

非常好我支持^.^

(1) 100%

不好我反對(duì)

(0) 0%

( 發(fā)表人:龔婷 )

      發(fā)表評(píng)論

      用戶評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?