7549|5

1万

帖子

25

TA的资源

版主

楼主
 

【ESP32学习】两种SDIO方式文件读取速度比较 [复制链接]

 
SDIO支持4线和1线两种方式,两种方式在速度上有多大区别?我们在ESP32_psRAM_Lobo版上进行了测试。

测试程序如下:

1线方式:
  1. import os
  2. import time

  3. os.sdconfig(os.SDMODE_1LINE)
  4. os.mountsd()

  5. def file_read(n):
  6.     total = 0
  7.     with open(filename) as f:
  8.         for i in range(n):
  9.             total += len(f.read(1000))
  10.             f.seek(0, 0)
  11.     return total

  12. def time_it(f, n):
  13.     t0 = time.ticks_us()
  14.     total = f(n)
  15.     t1 = time.ticks_us()
  16.     dt = time.ticks_diff(t1, t0)
  17.     print('{:5.3f} sec : {:8.3f} Mbytes/sec'.format(dt * 1e-6, total/dt))
  18.     return total/dt

  19. N = 200
  20. filename = '/sd/1.JPG'
  21. r = 0
  22. for i in range(10):
  23.     r = max(time_it(file_read, N), r)

  24. print('max speed: {:8.3f} Mbytes/sec'.format(r))
复制代码


4线方式

  1. import os
  2. import time

  3. os.sdconfig(os.SDMODE_4LINE)
  4. os.mountsd()

  5. def file_read(n):
  6.     total = 0
  7.     with open(filename) as f:
  8.         for i in range(n):
  9.             total += len(f.read(1000))
  10.             f.seek(0, 0)
  11.     return total

  12. def time_it(f, n):
  13.     t0 = time.ticks_us()
  14.     total = f(n)
  15.     t1 = time.ticks_us()
  16.     dt = time.ticks_diff(t1, t0)
  17.     print('{:5.3f} sec : {:8.3f} Mbytes/sec'.format(dt * 1e-6, total/dt))
  18.     return total/dt

  19. N = 200
  20. filename = '/sd/1.JPG'
  21. r = 0
  22. for i in range(10):
  23.     r = max(time_it(file_read, N), r)

  24. print('max speed: {:8.3f} Mbytes/sec'.format(r))
复制代码


测试前,先准备好一个TF卡,并预先复制测试文件,可以使用任意文件,这里的测试文件是 1.JPG,是一个图片文件。

测试时,为了保证测试结果不受到其它干扰,先按下RESET键,硬复位系统,然后在分别运行程序进行测试。测试程序会连续测试10次,然后返回速度最大的结果。测试结果如下:

1线方式


  1. 1.790 sec :    0.203 Mbytes/sec
  2. 1.767 sec :    0.206 Mbytes/sec
  3. 1.768 sec :    0.206 Mbytes/sec
  4. 1.770 sec :    0.206 Mbytes/sec
  5. 1.856 sec :    0.196 Mbytes/sec
  6. 1.888 sec :    0.193 Mbytes/sec
  7. 2.402 sec :    0.152 Mbytes/sec
  8. 1.834 sec :    0.199 Mbytes/sec
  9. 1.769 sec :    0.206 Mbytes/sec
  10. 1.771 sec :    0.206 Mbytes/sec
  11. max speed :    0.206 Mbytes/sec
复制代码

4线方式

  1. 1.712 sec :    0.213 Mbytes/sec
  2. 1.689 sec :    0.216 Mbytes/sec
  3. 1.691 sec :    0.215 Mbytes/sec
  4. 1.692 sec :    0.215 Mbytes/sec
  5. 1.779 sec :    0.205 Mbytes/sec
  6. 1.810 sec :    0.201 Mbytes/sec
  7. 2.324 sec :    0.157 Mbytes/sec
  8. 1.757 sec :    0.207 Mbytes/sec
  9. 1.692 sec :    0.215 Mbytes/sec
  10. 1.694 sec :    0.215 Mbytes/sec
  11. max speed :    0.216 Mbytes/sec
复制代码

可以看出,两种方式的速度差别不大,只有5%左右。



此内容由EEWORLD论坛网友dcexpert原创,如需转载或用于商业用途需征得作者同意并注明出处

最新回复

你好,我也正在学ESP32的micropython。我刚看到你在和SD卡通信的教学,我想请教下,你是如何知道写哪些程序来完成SD通信的,具体查看什么资料。我看了Loboris的micropython介绍,发现好像没有这方面的例程或者介绍,请问你是如何学习的  详情 回复 发表于 2019-5-27 00:01
点赞 关注
 
 

回复
举报

2056

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 
这不科学吧,确定驱动没问题?

点评

最大可能还是驱动程序本身,没有优化好吧。  详情 回复 发表于 2018-9-4 09:25
 
 
 

回复

1万

帖子

25

TA的资源

版主

板凳
 
IC爬虫 发表于 2018-9-4 09:12
这不科学吧,确定驱动没问题?

最大可能还是驱动程序本身,没有优化好吧。
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

4
 
你好,我也正在学ESP32的micropython。我刚看到你在和SD卡通信的教学,我想请教下,你是如何知道写哪些程序来完成SD通信的,具体查看什么资料。我看了Loboris的micropython介绍,发现好像没有这方面的例程或者介绍,请问你是如何学习的

点评

Loboris在github上有一个简单的文档,可以参考一下。目前只能的确不多,一些功能需要多尝试一下,好在micropython通用性不错,很多地方是相通的。  详情 回复 发表于 2019-5-27 09:22
 
 
 

回复

1万

帖子

25

TA的资源

版主

5
 
13193516803 发表于 2019-5-27 00:01
你好,我也正在学ESP32的micropython。我刚看到你在和SD卡通信的教学,我想请教下,你是如何知道写哪些程序 ...

Loboris在github上有一个简单的文档,可以参考一下。目前只能的确不多,一些功能需要多尝试一下,好在micropython通用性不错,很多地方是相通的。
 
 
 

回复

1万

帖子

25

TA的资源

版主

6
 
13193516803 发表于 2019-5-27 00:01
你好,我也正在学ESP32的micropython。我刚看到你在和SD卡通信的教学,我想请教下,你是如何知道写哪些程序 ...

https://github.com/loboris/MicroPython_ESP32_psRAM_LoBo/wiki
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表