• 公众演讲
  • 竞聘演讲
  • 就职演说
  • 安全生产
  • 爱国演讲
  • 英语演讲
  • 开幕闭幕
  • 庆典致辞
  • 领导讲话
  • 婚丧嫁娶
  • 祝福祝贺
  • 主持词
  • 广播稿
  • 贺电慰问
  • 会议发言
  • 国旗下讲话
  • 标语大全
  • 导游词
  • 经典语录
  • 您现在的位置:站轩范文网 > 演讲稿 > 经典语录 > 正文

    [计算法简单实现crc校验] crc校验

    来源:站轩范文网 时间:2018-08-25
    前一段时间做协议转换器的时间用到CRC-16校验,查了不少资料发现都不理想。查表法要建表太麻烦,而计算法觉得那些例子太罗嗦。最后只好自己写了,最后发现原来挺简单嘛:)

    两个子程序搞定。这里用的多项式为:
    CRC-16    = X16 + X12 + X5 + X0 = 2^0+2^5+2^12+2^16=0x11021

    因最高位一定为“1”,故略去计算只采用0x1021即可

    CRC_Byte:计算单字节的CRC值
    CRC_Data:计算一帧数据的CRC值
    CRC_High  CRC_Low:存放单字节CRC值
    CRC16_High  CRC16_Low:存放帧数据CRC值

    ;<>-------------------------------------------------------------
    ;      Function:       CRC one byte
    ;      Input:             CRCByte
    ;      Output:           CRC_High CRC_Low
    ;<>-------------------------------------------------------------

    CRC_Byte:
           clrf         CRC_Low
           clrf         CRC_High
           movlw           09H
           movwf           v_Loop1
           movf              CRCByte, w
           movwf           CRC_High
    CRC:
           decfsz            v_Loop1                              ;8次循环,每一位相应计算
           goto        CRC10
           goto        CRCend
    CRC10
           bcf                STATUS, C
    &

    [1] [2] [3] [4] [5] [6] [7] [8] 下一页

    推荐访问:计算法简单实现crc校验 crc校验简单介绍 crc校验matlab实现