SDIO支持4线和1线两种方式,两种方式在速度上有多大区别?我们在ESP32_psRAM_Lobo版上进行了测试。
测试程序如下:
1线方式:
- import os
- import time
- os.sdconfig(os.SDMODE_1LINE)
- os.mountsd()
- def file_read(n):
- total = 0
- with open(filename) as f:
- for i in range(n):
- total += len(f.read(1000))
- f.seek(0, 0)
- return total
- def time_it(f, n):
- t0 = time.ticks_us()
- total = f(n)
- t1 = time.ticks_us()
- dt = time.ticks_diff(t1, t0)
- print('{:5.3f} sec : {:8.3f} Mbytes/sec'.format(dt * 1e-6, total/dt))
- return total/dt
- N = 200
- filename = '/sd/1.JPG'
- r = 0
- for i in range(10):
- r = max(time_it(file_read, N), r)
- print('max speed: {:8.3f} Mbytes/sec'.format(r))
复制代码
4线方式
- import os
- import time
- os.sdconfig(os.SDMODE_4LINE)
- os.mountsd()
- def file_read(n):
- total = 0
- with open(filename) as f:
- for i in range(n):
- total += len(f.read(1000))
- f.seek(0, 0)
- return total
- def time_it(f, n):
- t0 = time.ticks_us()
- total = f(n)
- t1 = time.ticks_us()
- dt = time.ticks_diff(t1, t0)
- print('{:5.3f} sec : {:8.3f} Mbytes/sec'.format(dt * 1e-6, total/dt))
- return total/dt
- N = 200
- filename = '/sd/1.JPG'
- r = 0
- for i in range(10):
- r = max(time_it(file_read, N), r)
- print('max speed: {:8.3f} Mbytes/sec'.format(r))
复制代码
测试前,先准备好一个TF卡,并预先复制测试文件,可以使用任意文件,这里的测试文件是 1.JPG,是一个图片文件。
测试时,为了保证测试结果不受到其它干扰,先按下RESET键,硬复位系统,然后在分别运行程序进行测试。测试程序会连续测试10次,然后返回速度最大的结果。测试结果如下:
1线方式
- 1.790 sec : 0.203 Mbytes/sec
- 1.767 sec : 0.206 Mbytes/sec
- 1.768 sec : 0.206 Mbytes/sec
- 1.770 sec : 0.206 Mbytes/sec
- 1.856 sec : 0.196 Mbytes/sec
- 1.888 sec : 0.193 Mbytes/sec
- 2.402 sec : 0.152 Mbytes/sec
- 1.834 sec : 0.199 Mbytes/sec
- 1.769 sec : 0.206 Mbytes/sec
- 1.771 sec : 0.206 Mbytes/sec
- max speed : 0.206 Mbytes/sec
复制代码
4线方式
- 1.712 sec : 0.213 Mbytes/sec
- 1.689 sec : 0.216 Mbytes/sec
- 1.691 sec : 0.215 Mbytes/sec
- 1.692 sec : 0.215 Mbytes/sec
- 1.779 sec : 0.205 Mbytes/sec
- 1.810 sec : 0.201 Mbytes/sec
- 2.324 sec : 0.157 Mbytes/sec
- 1.757 sec : 0.207 Mbytes/sec
- 1.692 sec : 0.215 Mbytes/sec
- 1.694 sec : 0.215 Mbytes/sec
- max speed : 0.216 Mbytes/sec
复制代码
可以看出,两种方式的速度差别不大,只有5%左右。
此内容由EEWORLD论坛网友dcexpert原创,如需转载或用于商业用途需征得作者同意并注明出处