找回密码
 立即注册
查看: 764|回复: 18

有没有速度快的四线crc16的算法|已解决

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:165
  • 最近打卡:2025-04-30 08:22:37

14

主题

87

回帖

734

积分

高级会员

积分
734
发表于 2024-11-14 20:31:16 | 显示全部楼层 |阅读模式
sd卡在四线写的时候,要在最后在每一条线上发送每条数据线对应数据的crc16.我只有单线crc16的代码,需要把发送的数据按发送格式分别写到四个缓冲区里,再分别计算对应crc16。有没有比这个方法快的

2025/1/26:方法在下面的帖子里

针对模拟SDIO中的CRC算法优化 - 其他技术交流 国芯技术交流网站 - AI32位8051交流社区
截图202411142030084265.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:123
  • 最近打卡:2025-04-19 16:12:35
已绑定手机

60

主题

777

回帖

4001

积分

论坛元老

自定义头衔

积分
4001
发表于 2024-11-15 00:19:58 来自手机 | 显示全部楼层
能否详细说说你的痛点?

你指的是CRC16算法太麻烦?还是这128次循环太麻烦?为什么要把数据这样排列呢
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:165
  • 最近打卡:2025-04-30 08:22:37

14

主题

87

回帖

734

积分

高级会员

积分
734
发表于 2024-11-15 00:41:44 | 显示全部楼层
VC*** 发表于 2024-11-15 00:19
能否详细说说你的痛点?

你指的是CRC16算法太麻烦?还是这128次循环太麻烦?为什么要把数据这样排列呢 ...

就是128次太麻烦了,不知道有没有一次就可以算完的
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:123
  • 最近打卡:2025-04-19 16:12:35
已绑定手机

60

主题

777

回帖

4001

积分

论坛元老

自定义头衔

积分
4001
发表于 2024-11-15 01:24:57 来自手机 | 显示全部楼层
zrl 发表于 2024-11-15 00:41
就是128次太麻烦了,不知道有没有一次就可以算完的

大概推演了一下,你代码里是把每4个字节重新排列成了新的4个字节

8051指令集里确实并没有这样的指令可以一键完成这件事。但你的代码仍然有一些优化空间

1000058249.jpg

例如可以将左右移运算符替换为按位逻辑与,结合if else运算符。8051在执行这个操作时会快一些

例如在重复处理arr0~arr3时,提前将数据存入8051的bdata区,将数据按位直接访问处理
联系我请点击左下角的【回复】按钮,否则我收不到消息提
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2024-11-15 05:37:09 | 显示全部楼层
有点好奇, 既然要求按每一路求 CRC16, 那么最后求出的 CRC0~CRC3 , 如何再发送出去? 难道再次打乱组合成 单路串行模式 发送?

回复 支持 0 反对 1

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-02 07:55:56
已绑定手机

19

主题

3190

回帖

4870

积分

论坛元老

积分
4870
发表于 2024-11-15 07:30:22 来自手机 | 显示全部楼层
本帖最后由 soma 于 2024-11-15 07:33 编辑

STC8H2K32U系列有硬件CRC16应该比较快
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:165
  • 最近打卡:2025-04-30 08:22:37

14

主题

87

回帖

734

积分

高级会员

积分
734
发表于 2024-11-15 10:13:34 来自手机 | 显示全部楼层
LAOXU 发表于 2024-11-15 05:37
有点好奇, 既然要求按每一路求 CRC16, 那么最后求出的 CRC0~CRC3 , 如何再发送出去? 难道再次打乱组合成 单 ...

不用,算出来就直接用对应数据线发送就好了,dat0发crc0,dat1发crc1

点评

芯片用什么型号? 用 51没啥好方法再优化, 楼上的 转存 位寻址RAM中, 依靠位判断, 能提速, 但有限. 如用 251, 依靠算法, 能有较大幅度的提速.  详情 回复 发表于 2024-11-15 13:10
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2024-11-15 13:10:49 | 显示全部楼层
zr*** 发表于 2024-11-15 10:13
不用,算出来就直接用对应数据线发送就好了,dat0发crc0,dat1发crc1

芯片用什么型号?
用 51没啥好方法再优化, 楼上的 转存 位寻址RAM中, 依靠位判断, 能提速, 但有限.
如用 251, 依靠算法, 能有较大幅度的提速.
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

717

主题

1万

回帖

1万

积分

管理员

积分
15617
发表于 2024-11-16 12:59:13 | 显示全部楼层
截图202411161254507367.jpg



截图202411161257267560.jpg



截图202411161257598341.jpg


截图202411161258474648.jpg


截图202411161259094802.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:123
  • 最近打卡:2025-04-19 16:12:35
已绑定手机

60

主题

777

回帖

4001

积分

论坛元老

自定义头衔

积分
4001
发表于 2024-11-16 13:43:50 来自手机 | 显示全部楼层
神农鼎 发表于 2024-11-16 12:59

神农鼎老师,您没有审题,

他问的是CRC运算之前的QSPI数据预处理过程的优化
而不是CRC运算的优化

{:5_284:}

点评

秀了下肌肉  详情 回复 发表于 2024-11-16 15:09
联系我请点击左下角的【回复】按钮,否则我收不到消息提
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 08:54 , Processed in 0.624344 second(s), 116 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表