对SDHC的SD卡,用DMA,读出来就通过DMA拷出去,这样最高能做到多少兆字节/秒啊?我现在在做产品规划,看能不能满足要求。主要是读的速度。我看USB读卡器也能达到10多兆/秒。先不考虑FAT表的读写对带宽的损耗。就是挨个簇读过去。按手册写的理论带宽可以到25M时钟,那四位就是12M字节/秒。但这个考虑控制命令的传输,肯定要打折扣的。
我想知道能不能到5M字节/秒,这是底线了,就这个速度估计都不能保证系统流畅,或者我应该考虑CF卡?我只关心读的速度。
别是估计啊,有没有哪位大侠做出来过啊?给个实测的数据就可以了,代码我自己琢磨也行,别努力也还是达不到就冤了。
这个要看自己的经验的你有这个本事就能但是你想一下子就这样是不行的
下面2点意见供参考:
1. STM32 的DMA传输不是连续阵发的传输,因此DMA的传输速度不如自己写32位的Copy代码。
对于SDIO使用的DMA通道,会不会和上述的不同,还需要确认。
2. 如果是通过STM32 USB读取数据的话,单缓冲大约在0.6M/s
考虑到4:32的带宽比,DMA的速度还是要比自己写的快,我同时要把SDIO的数据直接拷到外部存储器里,也计划是DMA。另外可能还要做点处理,比如FAT表的查询,CPU压力不大,关键是速度,我现在就是想知道其他人有没有做到那么高的速度。如果有,那就可以采用这个方案了。
根据我的写SD的测试结果:
16KByte/2-3ms
这位老兄,是每读一个簇要2~3个毫秒么?那样基本也就5M字节/秒。悬啊,我想还是用CF卡吧,16位总线,速度是刚刚的。谢谢了
我的测试结果是读大概是300K Byte/s, 写170k Byte/s
我手上1G的SD卡测试结果读是800K Byte/s(含文件系统),写没测试。