注册名:

密码:

个人注册

企业注册

商务申请

商务管理平台

企业管理平台

个人管理平台

我的工控博客

中国工控网www.chinakong.com

首页 | 新闻中心 | 工控论坛 | 经验视点 | 工控商务 | 电气手册 | 工控博客 | 招聘求职 | 网上调查 | 企业中心 | 供求信息 | 资料中心 | 工控书店

所在位置:工控博客苑 -- 何先生工控博客 -- CRC校验码

中国工控网搜索:

何先生

     学历:大学本科
     职称:工程师
     年龄:44岁
       新闻信息(0/0)
       工作图片(0)
       技术论文(0/0)
       交流论坛(2/1)
       留言信箱(0)
       浏览人次:2105
发表人:hequan005 发表时间:2010/10/8 12:49:00

 

发表新论题

 本栏论题: CRC校验码  [2437]
    FUNCTION FC300: VOID
   
    VAR_INPUT
    Source:ARRAY[0..19] OF BYTE;
    Number:INT;
    END_VAR
   
    VAR_OUTPUT
    CrcHigh,CrcLow:BYTE;
   
    END_VAR
   
   
   
    VAR_TEMP
    Crc16Low, Crc16High, CLow, CHigh:BYTE;
    SaveLow, SaveHigh:BYTE;
    i, j:INT;
    END_VAR
    BEGIN
    Crc16Low:=B#16#FF;
    CRC16High:=B#16#FF;
    CLow:=B#16#1;
    CHigh:=B#16#A0;
   
    FOR i:= 0 TO Number-1 BY 1 DO
    Crc16Low:= Crc16Low XOR Source[i];
   
    FOR j:= 0 TO 7 BY 1 DO
    SaveHigh:= Crc16High;
    SaveLow:= Crc16Low;
    Crc16High:=SHR(IN:=Crc16High,N:=1);
    Crc16Low:=SHR(IN:=Crc16Low,N:=1);
    IF ((SaveHigh AND 2#1)=2#1) THEN
    Crc16Low:= Crc16Low OR 2#10000000;
    END_IF;
    IF ((SaveLow AND 2#1) = 2#1) THEN //如果LSB为1,则与多项式码进行异或
    CRC16High:= CRC16High XOR CHigh;
    Crc16Low:= Crc16Low XOR CLow;
    END_IF;
   
    END_FOR;
   
   
    END_FOR;
   
    CrcHigh:=Crc16High;
    CrcLow:=Crc16Low;
   
    END_FUNCTION
   
    1、装载16#FFFF到一个16位CRC寄存器;
    2、将CRC寄存器的高8位字节与信息中的第一个8位字节相异或,结果返回到CRC寄存器中;
    3、将CRC寄存器数据向右移动一位;
    4、如果溢出的位等于1,则将CRC寄存器与16#A001相异或,结果返回到CRC寄存器中;
    4、如果溢出的位等于0,则重复第3步;
    5、重复第3、4步骤,直到已经移位了8次;
    6、将CRC寄存器的高8位字节与信息中的下一个8位字节相异或,结果返回到CRC寄存器中;
    7、重复第3步到第6步,直到信息中所有字节都与CRC寄存器相异或,并都移位了8次;
    8、最后的CRC寄存器中的结果即为CRC校验码,最后被添加到信息(数据)的末尾(交换!低8位
   
 

以下是关于《CRC校验码》论题的回复(共1篇)

回复人:wly1984

 回复时间:2015/2/2 10:30:00

    学习下

如果要回复本栏论题,请首先登陆网站

·如果你已经是中国工控网www.chinakong.com成员,请直接登录。

·如果你还不是中国工控网www.chinakong.com成员,请首先注册,注册为免费!

注册名:

密  码:

           注册中国工控网www.chinakong.com
           忘记密码
 
     相关技术论坛:

    ·高低字节关系

    ·CRC校验码

关于我们     免责声明     服务项目     广告联系     友情链接     联系方式     意见反馈     设为首页     加入收藏

 ©2023-2025 中国工控网(www.chinakong.com) 版权所有 豫ICP备17046657号

管理员信箱:chinakong98@163.com  服务热线:13525974529

洛阳博德工控自动化技术有限公司

中国    洛阳