CRC校验流程

2023-10-26

通常我们在涉及到传输指令或者命令行的时候,为了保证数据传输的正确性和准确性,会涉及到校验码的问题,而我们通常会采用CRC校验,CRC是比较常用的对命令行和指令行的校验方法,一般会放在指令的后面,用以核对数据的正确性。

其实如果是比较简单的指令或者不是传输准确性要求不高的数据,可以用简单的异或进行校验。

通俗点讲,CRC校验采用的是异或的方法,选择好了比较的位数(8位或者16位),采用每一位相同为0,不同为1 的标准去一一计算就好了。但是其计算的流程不是简单的数据异或,一般分为一下几步:

1 预留一个16位的寄存器为0xFFFF,该寄存器为CRC寄存器

2 将要发送的数据的第一个8bit数据与CRC寄存器的低八位进行异或,高八位保持不变

3 将得到的CRC寄存器的值右移一位,高位用0代替,并检查移出位

4 如果移出位为0,重复第3步,继续右移一位

5 如果移出位为1,CRC寄存器与多项式进行异或(A001:1010 0000 0000 0001);

6 重复右移直至移动了8位,第一个8位的数据的处理就完成了

7 重复用上一个CRC的结果与数据信息中下一个字节进行相同的处理

8 将该通讯信息帧所有字节按上述步骤计算完成后,得到的16位CRC寄存器的高、低字节进行交换,得到CRC码

最后,至于是高8位在前,还是低8位在前,就看需求了,代码的实现是灵活的,网上也有网页能帮你计算,CRC(循环冗余校验)在线计算_ip33.com,如果不想自己算,可以去这个网站,输入你要计算的数据帧,一键就能帮你算出来。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CRC校验流程 的相关文章

  • Verilog中forever、repeat、while、for四类循环语句(含Verilog实例)

    当搭建FPGA逻辑时 使用循环语句可以使语句更加简洁易懂 Verilog中存在四类循环语句 如标题 几种循环语句的具体介绍和用法如下 1 forever 连续的执行语句 语法格式 forever
  • Verilog实例-AMBA(AHB)协议

    目录 一 简介 1 1 AHB 1 2 signal list 1 3 Bus interconnection 总线互联 1 4 Overview of AMBA AHB operation 1 4 1 Basic transfer 1 4
  • 紫光同创 FPGA 开发跳坑指南(三)—— 联合 Modelsim 仿真

    Modelsim 是 FPGA 开发中重要的 EDA 设计仿真工具 主要用于验证数字电路设计是否正确 紫光 Pango Design Suite 开发套件支持联合 Modelsim 仿真 这里作简要的介绍 添加仿真库 方法一 打开 Pang
  • Verilog HDL——分频 计数

    分频 计数 module traffic Clk 50M Rst Clk30 Clk 1Hz input Clk 50M Rst output Clk30 Clk 1Hz 分频器 reg Clk 1Hz 分频器 50M分频 reg 31 0
  • 二、RISC-V SoC内核注解——译码 代码讲解

    tinyriscv这个SoC工程的内核cpu部分 采用经典的三级流水线结构进行设计 即大家所熟知的 取值 gt 译码 gt 执行三级流水线 另外 在最后一个章节中会上传额外添加详细注释的工程代码 完全开源 如有需要可自行下载 上一篇博文中注
  • 用Vscode编辑verilog代码配置

    这篇教程感觉很详细了 我这里分享一下vscode和插件的安装包链接 都是官网下载的 放心食用 用VSCode编辑verilog代码 iverilog编译 自动例化 自动补全 自动格式化等常用插件 链接 https pan baidu com
  • MOS管的知识,看这一篇就可以了

    转载 21ic电子网 2020 11 15 18 19 以下文章来源于记得诚电子设计 作者记得诚 记得诚电子设计 分享电子硬件知识 永远相信美好的事情即将发生 今天的文章简单总结一下MOS管 如下是本文目录 场效应管分类 场效应管分为结型
  • C语言动态内存开辟,malloc,calloc,free,realloc函数使用

    目录 一 内存的动态分配 1 函数malloc 2 函数calloc 3 函数realloc 4 函数free 关于动态内存错误的操作案例 一 内存的动态分配 1 函数malloc 函数原型 void malloc size t size
  • 八、RISC-V SoC外设——GPIO接口 代码讲解

    前几篇博文中注释了RISC V的内核CPU部分 从这篇开始来介绍RISC V SoC的外设部分 另外 在最后一个章节中会上传额外添加详细注释的工程代码 完全开源 如有需要可自行下载 目录 0 RISC V SoC注解系列文章目录 1 结构
  • 如何零基础自学c/c++语言?

    现在零基础学习C C 无非就两种方法 一种是自学还有 一种就是报班学习 关于报班学习在这里就不多说了 那么今天就说怎么从零基础开始自学C C 编程吧 先学习C语言入门 那么问题来了 怎么去学习C语言呢 一开始肯定是要看书 这里推荐的入门书籍
  • xilinx xdma PCIe中断bug

    xilinx xdma PCIe中断存在bug bug1 此中断虽然是msi或者msx中断 但是不中断cpu bug2 此中断不是边沿中断 而是电平中断 在驱动层需要不断地轮训查询中断事件 bug3 此中断持续时间必须长 而且在收到中断应答
  • BUCK电路分析(二)

    BUCK电路分析 二 PSIM仿真同步BUCK电路 在上片文章中 初步的分析了BUCK电路的工作原理 本章使用PSIM软件仿真BUCK电路 观察分析BUCK电路器件关键波形 图1是同步BUCK电路图 开关频率设置为200K 固定占空比 在仿
  • [从零开始学习FPGA编程-28]:进阶篇 - 基本组合电路-奇偶校验生成器(Verilog语言版本)

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 目录 第1章 奇偶校验生成器 1 1 什么是奇校验 1 2 Verilog语言描述
  • 基于FPGA的AHT10传感器温湿度读取

    文章目录 一 系统框架 二 i2c接口 三 i2c控制模块 状态机设计 状态转移图 START INIT CHECK INIT IDLE TRIGGER WAIT READ 代码 四 数据处理模块 串口 代码 五 仿真 testbench设
  • 8-1运用指针比较三个数的大小

    include
  • 6-15 复制字符串

    include
  • 8-2比较三个字符串大小(指针)

    include
  • 硬核 | 从零制作一个激光雷达需要多久?

    编辑 ADS智库 点击下方 卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 点击进入 自动驾驶之心 硬件交流 技术交流群 本文只做学术分享 如有侵权 联系删文 激光雷达 LiDAR 是激光探测及测距系统的简称 目前广泛应用在无
  • 时序约束理解

    异步配置信息 跨时钟域 配置信息一般set max delay按照3delay来约束 2 异步回读 rst clear信号 设置set false path 放松时序约束要求 不应分析设计中的逻辑路径 因为不关心点到点时序要求
  • Matlab图像处理系列——图像复原之噪声模型仿真

    微信公众号上线 搜索公众号 小灰灰的FPGA 关注可获取相关源码 定期更新有关FPGA的项目以及开源项目源码 包括但不限于各类检测芯片驱动 低速接口驱动 高速接口驱动 数据信号处理 图像处理以及AXI总线等 本节目录 一 图像复原的模型 二

随机推荐

  • 网站视频服务器架设,云服务器架设网站视频教程

    云服务器架设网站视频教程 内容精选 换一换 安装MySQL本文档以 CentOS 6 5 64bit 40GB 操作系统为例 对应MySQL版本为5 1 73 CentOS 7及以上版本将MySQL数据库软件从默认的程序列表中移除 需执行s
  • Keil常见错误警告

    1 warning 767 D conversion from pointer to smaller integer 解释 将指针转换为较小的整数 影响 可能造成的影响 容易引起数据截断 造成不必要的数据丢失 如果出现 bug 很难 调试
  • mybatis 的mapper接口注入到spring 容器的源码解析

    一 环境准备 1 创建一个maven 项目 其POM文件如下
  • pytorch笔记12--无监督的AutoEncoder(自编码)

    1 AutoEncoder 给特征属性降维 2 Data gt 压缩 提取Data的关键信息 减小网络的运算压力 gt data 具有代表性的特征 gt 解压 还原数据信息 gt Pred Data 3 使用Mnist数据集训练 将数据先压
  • CentOS7安装wps

    第一步 首先到wps官网 http linux wps cn 下载 wps for linux 选择合适自己的系统位数的rpm包 如下图所示 第二步 打开终端 cd进入文件下载的路径 我下载的存放路径是 home zjh Downloads
  • 大数据课程L4——网站流量项目的Hive离线批处理

    文章作者邮箱 yugongshiye sina cn 地址 广东惠州 本章节目的 掌握网站流量项目的 Hive 的占位符与文件的调用 掌握网站流量项目的 Hive 离线批处理过程 掌握网站流量项目的定时任务改造Hive离线处理过程 一 Hi
  • 数据库设计——关系数据理论(超详细)

    问题 什么是一个好的数据库逻辑设计 关系型数据库逻辑设计 针对一个具体问题应如何构造一个适合于它的数据模式 即应构造几个关系 每个关系由哪些属性组成等 eg 这样的设计是一个好的设计吗 观察这个表所对应的一个实例 在某个时刻student模
  • 域名服务器中存放主机的什么位置,域名服务器中存放主机的域名

    域名服务器中存放主机的域名 内容精选 换一换 本文档重点介绍在CCE容器中如何配置域名解析 在创建相应的后端工作负载 Deployment或ReplicaSet 以及在需要访问它的任何工作负载之前创建服务 当Kubernetes启动容器时
  • 基于Python的淘宝自动回复助手

    前言 看到有人从blink上发需要用python做一个类似于淘宝自动回复助手的作业 好久没玩python了 就写了一下 实现了 1 退货 2 查库存 3 商品查看 这三个功能 整理一下心路历程 搞到一份源码 def find answer
  • 安装 Django1.11

    Django1 11 安装Django的步骤 联网 在命令行窗口中直接运行 pip install django 1 11 i https pypi tuna tsinghua edu cn simple 或使用离线方式安装 执行命令 pi
  • 初级(上) 二维码的生成

    吼吼 阳仔的第一篇博客开写啦 以下的内容都是我从imooc上面听课的总结 当然是只针对二维码 作为一个初级程序媛 也是要坚持学习的 首先 谢谢imooc网上的老师发放的免费视频 让我自己有了一些简单的了解 接下来 就把我的总结贴出来吧 第一
  • 微信公众号开发之绑定微信开发者

    第一步 登录微信公众号 绑定网页开发者 在登录后的界面中 我们向下拉在左侧会看到有一个 开发者工具 点击 这时在开发者工具中 会看到有好几个工具 其中有一个 web开发者工具 我们点击进入 在这里 我们就会看到有一个 绑定开发者微信号 按钮
  • LDO的原理及应用

    01 LDO定义 LDO即lowdropoutregulator 是一种低压差线性稳压器 这是相对于传统的线性稳压器来说的 传统的线性稳压器 如78XX系列的芯片都要求输入电压要比输出电压至少高出2V 3V 否则就不能正常工作 但是在一些情
  • Javascript:window.close()不起作用?

    一般的窗口关闭的JS如下写法 window close 但是呢 chrome firefox等中有时候会不起作用 改为下面的写法 window open about blank self close 或者 window open self
  • 服务端 TCP 连接的 TIME_WAIT 过多问题的分析与解决

    https blog csdn net zxlyx article details 120397006 本文给出一个 TIME WAIT 状态的 TCP 连接过多的问题的解决思路 非常典型 大家可以好好看看 以后遇到这个问题就不会束手无策了
  • ubuntu安装anaconda及创建桌面快捷启动图标

    第一步 下载anaconda 1 因为跑代码的原因 我要下载python3 6的anaconda 如果大家也有版本的要求 首先需要查看python与anaconda的版本对应关系 详细可见https blog csdn net yuejis
  • verilog实例-仲裁(Arbiter)

    目录 1 仲裁 2 仲裁方案 3 严格优先级轮询 1 design detil 2 time 3 code 4 公平轮询 1 design detil 2 time 3 code 5 公平轮询 仲裁w o死周期 1 design detil
  • 【Arduino实验05 基于环境光的LED灯亮度感应控制】

    目录 一 实验目的 二 实验设备与环境 三 实验重点 四 实验难点 五 实验内容 5 1实验任务 5 2实验原理 5 3实验内容 5 4实验结果 5 5思考题 一 实验目的 1熟悉光敏传感器原理与功能 2理解串联电路获取传感器数据原理 3
  • 基于烟花算法的单目标优化问题求解及Matlab实现

    基于烟花算法的单目标优化问题求解及Matlab实现 烟花算法 Fireworks Algorithm 是一种新型的群智能算法 模拟了烟花爆炸时颜色花火 噪声花火等不同类别的行为特征 通过对爆炸位置 高度 数量等参数进行调整来求解单目标优化问
  • CRC校验流程

    通常我们在涉及到传输指令或者命令行的时候 为了保证数据传输的正确性和准确性 会涉及到校验码的问题 而我们通常会采用CRC校验 CRC是比较常用的对命令行和指令行的校验方法 一般会放在指令的后面 用以核对数据的正确性 其实如果是比较简单的指令