首页 > 其他分享 >SPI与SDIO两种操作方式读写SD卡速度测试

SPI与SDIO两种操作方式读写SD卡速度测试

时间:2023-08-15 19:24:57浏览次数:47  
标签:字节 SPI 读出 读写 SDIO SD

SPI与SDIO两种操作方式读写SD卡速度测试

 

目前嵌入式应用中,若要用到SD卡,一般有两种操作方式可选:

一种是SPI操作SD卡的方式;

一种是SDIO操作SD卡的方式。

一般是SPI操作SD卡方式使用较多,因为一般正常的MCU都带有SPI接口,但SDIO接口一般存在于大容量MCU中,中小容量的MCU一般不带有SDIO接口。

 

测试平台:

CH32V307VCT6+SD卡(16G)

 

测试程序配置:

SPI+DMA+FatFs

SDIO+DMA+FatFs

 

SPI读写SD卡速度测试:

(1)时钟配置:

程序当中,系统主频设置为120MHz,APB2总线时钟为系统主频1分频,为120MHz,SPI时钟经APB2总线时钟4分频,为30MHz。

(2)测试方法:

采用定时器中断计数方式进行测速,定时器1ms进入一次中断,计数值(全局变量)cnt+1,每进一次中断加一次,在读写之前获取一次计数值,读写之后获取一次计数值,根据前后差值计算读写的时间。关于读写,以for循环的方式读出或写入一组数据(1024字节),循环10000次,这样就写入或读出都是10M字节,根据以上数据就可计算出读写时间:

具体程序参考如下:

定时器中断配置:

写入程序:

读出程序:

根据上述方法,打印值如下:

由上述信息可以得出:

SPI写入10M字节用时12927ms,即12.927s,写入速度为:773.6字节/s;

SPI读出10M字节用时6038ms,即6.038s,读出速度为:1656.2字节/s;

 

SDIO读写SD卡速度测试:

(1)时钟配置:

程序当中,系统主频设置为144MHz,AHB总线时钟为系统主频,SDIO时钟为48MHz。

(2)测试方法:

与SPI测试方法一致,程序基本也是一样的。

打印结果如下:

由上述信息可以得出:

SDIO写入10M字节用时10889ms,即10.889s,写入速度为:918.4字节/s;

SDIO读出10M字节用时3725ms,即3.725s,读出速度为:2684.6字节/s;

 

结果汇总如下:

操作方式

写入

读出

SPI+DMA+FatFs

773.6字节/s

1656.2字节/s

SDIO+DMA+FatFs

918.4字节/s

2684.6字节/s

以上数据只是一个简单的测试数据,可以看出SDIO的操作方式相较于SPI读写速度还是快上不少的,若要将代码继续优化一下,各自的速度应该还能提升不少。

标签:字节,SPI,读出,读写,SDIO,SD
From: https://www.cnblogs.com/liaigu/p/17632219.html

相关文章

  • 机器人编程教程5使用Git和SD卡副本备份代码
    5使用Git和SD卡副本备份代码在本章中,您将学习到以下内容:代码是如何破坏或丢失的策略1-将代码保存在电脑上并上传策略2:使用Git回溯历史策略3-制作SD卡备份5.1代码是如何破坏或丢失的代码和它的近亲--配置,都需要时间和艰苦的努力。代码需要配置才能运行,例如Ra......
  • [Note] Jetson设备使用SDK Manager刷机遇到apt-get网络不畅的问题
    前提:在SDKmanager烧录完成os后,安装cuda等组件的过程中容易出现因为apt-get源导致的失败。解决方案:完成系统烧录,获得jetson设备的IP地址192.168.55.1,此时系统会停在弹出框上,让用户确认是否通过ssh的方式继续安装后续组件,此时先不继续。在host机器上通过ifconfig-a检查是否......
  • SDFZ 8 月联考游记
    前言现在写的时候已经是\(\mathsf{15}\)号了。省流:\(100+100+100+100=400\)。Day0大颓,打原神+崩铁。崩铁刷出极品双爆衣,感觉明天会寄掉了。晚上随便刷点区间dp睡觉。Day1\(8:00\)到校,发现\(9:00\)才开考。清峥说会有矩阵乘法的题目,所以复习了一下。接下来就是......
  • redis数据结构sds
    简单字符串sds数据结构structsdshdr{//记录buf数组中已使用字节的数量//等于SDS所保存字符串的长度intlen;//记录buf数组中未使用字节的数量intfree;//字节数组,用于保存字符串charbuf[];};特性空间预分配空间预分配用于优化SDS的字符串年增长操作:当SD......
  • 深入解析美颜SDK:算法、效果与实现
    在当今数字化社会中,图像处理和美化技术已经成为了许多应用领域的重要组成部分,尤其在视频直播领域,美颜技术更是无处不在。直播美颜SDK作为一种集成的软件工具包,为开发者和应用提供了强大的美颜功能。一、算法原理磨皮算法通过降低图像中的高频细节,达到皮肤更光滑的效果。美白算法调......
  • 关于CH32系列MCU SDI虚拟串口功能的使用
    该功能需要配合EVT对应例程以及对应WCH-LinkUtility工具使用,WCH-LinkUtility下载链接如下:https://www.wch.cn/downloads/WCH-LinkUtility_ZIP.html该功能目前仅支持以下型号MCU,如下图,且需要配合WCH-LinkE使用,具体可见WCH-Link使用说明5.2.11小节,WCH-Link使用说明下载链接如下:ht......
  • ASPICE流程集成和测试
    ASPICE流程集成和测试是指将各个模块集成在一起,并进行整体测试,确保系统的功能和接口都符合要求。这一过程包括以下步骤:集成计划:编制集成计划,确定集成顺序、集成方法、集成时间等。模块集成:逐步将各个模块集成到整个系统中,确保每个模块的功能和接口都正确。系统测试计划:根据系统架构......
  • SDGSAT-1 GUI数据
    LH.tif有三个波段,前两个波段分别对应的是PL、PH,最后那个波段是PL和PH的加权和,即PL和PH波段各占50%。其实PL和PH的差别并不明显,都是全色波段,他们的数值相差也不多。只不过一个是针对低照度、一个针对高亮区域,比如说城市中心。RGB的话,其实是放在一起使用的。很明显的可以看出来不同......
  • 制作catvsdog_path_dataset.tfrecords的代码 数据集制作完成路径为: E:\catanddog\t
    #-*-coding:utf-8-*--##PROJECT_NAME:081200#Name:01#Author:GG#Date:2023/8/12importtensorflowastfimportosimportnumpyasnpimportcv2file_dir="E:\\catanddog\\train0"save_dir="E:\\catanddog\\train1"images=[]#每张图片的路径......
  • oracle归档日志暴增原因分析,Oracle归档日志满导致数据库性能异常慢 转发 https://b
    ============= oracle数据库archivelog暴增分析====================前言归档量突然增长到981G/天,导致归档目录使用率告警归档日志量异常暴增会导致磁盘空间爆满,数据库异常1、归档日志量统计SELECTTRUNC(FIRST_TIME)"TIME",SUM(BLOCK_SIZE*BLOCKS)/1024/1024/102......