当前位置: 首页 > news >正文

SDIO CMD 数据部分 CRC 计算规则

使用的在线 crc 计算工具网址:http://www.ip33.com/crc.html

CMD CRC7 计算

如下图为使用逻辑分析仪获取的SDIO读写SD卡时,CMD16指令发送的格式,通过逻辑分析仪总线分析,可以看到,该部分的CRC7校验值得0x05,大多数情况下,我们基本上不用考虑这个值的计算过程,但如果我们关心这个值硬件是通过什么多项式计算出来的,那可以继续往下看。

下图为使用crc在线工具计算上图的CMD16的结果

使用CRC-7参数模型默认的多项式、初始化值等参数,将需要校验的数据以hex的形式写入输入框,可以直接得到校验计算结果。

这里有一个地方,还存在疑惑,就是下面这个地方,来自STM32F407中文参考手册,说在计算CRC7的时候,不使用起始位、传输位,但通过我的计算,不带入这两位的话,是得不到正确结果的,不带入这两位的话,使用工具计算的值跟实际值是不一样的,如果有知道怎么回事的铁汁,欢迎在评论区留言,我暂且归咎于参考手册写的有问题吧,哈哈哈哈。

 数据部分 CRC16 计算规则

上图是计算使用SDIO单根线发送128字节0xFF时,得到的CRC16 校验值的例子
512 字节的 0xFF data-->CRC16= 0xEDA9(4线模式);
512 字节在用四根数据线Data0~Data3传输时,单根数据线上的数据量为 128 字节,128 字节
对应的 CRC16 = 0xEDA9;下图为发送 512 个字节时,逻辑分析仪对应的 crc16
波形图

请注意:

下图是SDIO数据发送时,单线模式和四线模式下总线上的数据发送形式

使用四线 D0~D3 传输数据时,最后的 CRC 是针对所在数据线上的数据做的 CRC16 校验。
也就是传输一个数据块的数据,CRC 校验需要 16 个时钟脉冲周期。

http://www.lryc.cn/news/395962.html

相关文章:

  • 每日一编程,早点拿offer
  • https创建证书
  • C++ 是否变得比 C 更流行了?
  • Redis-Jedis连接池\RedisTemplate\StringRedisTemplate
  • Obsidian 文档编辑器
  • Spring Boot项目中JPA操作视图会改变原表吗?
  • C++之goto陈述
  • ChatGPT提问提示指南PDF下载经典分享推荐书籍
  • 架构设计(2)云原生架构与实例部署
  • 《UDS协议从入门到精通》系列——图解0x84:安全数据传输
  • AFT:Attention Free Transformer论文笔记
  • Linux grep技巧 结合awk查询
  • 关于Qt模型插入最后一行数据中存在未填满的项,点击导致崩溃的解决办法
  • Interpretability 与 Explainability 机器学习
  • Vue3项目如何使用npm link本地测试组件库
  • 后端之路——阿里云OSS云存储
  • 大模型/NLP/算法面试题总结2——transformer流程//多头//clip//对比学习//对比学习损失函数
  • 【atcoder】习题——位元枚举
  • 世界人工智能大会 | 江行智能大模型解决方案入选“AI赋能新型工业化创新应用优秀案例”
  • css浮动及清除浮动副作用的三种解决方法
  • 图像类别生成数字标签
  • 【Python】已解决:SyntaxError: invalid character in identifier
  • RDNet实战:使用RDNet实现图像分类任务(一)
  • Java小白入门到实战应用教程-介绍篇
  • python脚本“文档”撰写——“诱骗”ai撰写“火火的动态”python“自动”脚本文档
  • 若依 / ruoyi-ui:执行yarn dev 报错 esnext.set.difference.v2.js in ./src/utils/index.js
  • 移动端Vant-list的二次封装,查询参数重置
  • SMU Summer 2024 Contest Round 2
  • Qt:11.输入类控件(QLineEdit-单行文本输入控件、QTextEdit-多行文本输入控件、QComboBox-下拉列表的控件)
  • Qt 音频编程实战项目