keepburning89 发表于 2012-5-6 19:27:11

请教基于NIOS的sd卡sd模式 的一些问题

近期正在做sd卡的部分,先前用的spi模式,但是写的速度很慢,只有100多kb/s,现在正在做sd模式,暂时用的是1线模式,一开始能够单块的写一个扇区,但是连续的写却写不成功,后来看sd的协议发现每写一个扇区之后都要等待一个busy时间来让sd卡将数据写入sd卡内部flash,可以通过发送cmd13来看是否不忙,这就带来了一个问题,nios必须一直的询问sd卡是否不忙,这里就花了很多的时间,初步的测试下来,差不多也是100kb/s,希望做过这方面的能给些指导。

另外sd模式每次发送命令和写数据都要进行crc校验,这也占用了很多的时间,这样1线的sd模式相对于spi模式几乎没有优势,

aozima 发表于 2012-5-6 19:38:04

1线制SDIO模式仅是时钟不停?
都串行的,理论上不会有什么大的提高。
NIOS里面实现CRC肯定要由硬件去完成,而不会用软核,CRC的开销可以不计了吧?
可以实现4bit模式?

keepburning89 发表于 2012-5-6 19:51:07

本帖最后由 keepburning89 于 2012-5-6 19:52 编辑

aozima 发表于 2012-5-6 19:38 static/image/common/back.gif
1线制SDIO模式仅是时钟不停?
都串行的,理论上不会有什么大的提高。
NIOS里面实现CRC肯定要由硬件去完成, ...

CRC如果用软件实现的话肯定会花不少时间啊,比如每次写入512个字节,都要对这个512个字节进行crc校验,用spi的好处就是不需要crc校验

或许可以考虑实施能不能用verilog做个crc校验,然后外挂在总线上,然后nios要用crc的时候再用,硬件实现的crc肯定比软件快很多,不知道这样的想法是否可行?

暂时还么有做到4线的,打算先把1线的做好

aozima 发表于 2012-5-6 20:01:57

不校验数据出错了都不知道。我现在SD时钟跑到37.5M,有个布得差的板频繁CRC出错。

CRC肯定要硬件做,不然要NIOS做什么。 硬件CRC基本可以认为时间上是0开销。

我不会FPGA,没有写过HDL。

纯帮顶,勿怪。

keepburning89 发表于 2012-5-6 20:14:59

aozima 发表于 2012-5-6 20:01 static/image/common/back.gif
不校验数据出错了都不知道。我现在SD时钟跑到37.5M,有个布得差的板频繁CRC出错。

CRC肯定要硬件做,不然 ...

恩,先谢谢了,请问你是用什么做的呢?现在速度能够达到多少?

90999 发表于 2012-5-6 21:31:31

SPI傻等模式带PFATFS上300KB/S. 红果果480KB/S (16MHZ)

keepburning89 发表于 2012-5-7 21:16:37

90999 发表于 2012-5-6 21:31 static/image/common/back.gif
SPI傻等模式带PFATFS上300KB/S. 红果果480KB/S (16MHZ)

请问你这个16Mhz是什么?sd的时钟吗?我是用nios做的,通过管脚来模拟的时钟,只能达到5MHZ啊

90999 发表于 2012-5-7 22:09:31

keepburning89 发表于 2012-5-7 21:16 static/image/common/back.gif
请问你这个16Mhz是什么?sd的时钟吗?我是用nios做的,通过管脚来模拟的时钟,只能达到5MHZ啊 ...

我用CM0的,是SD的时钟, 5MHZ跑SD有点难度,除非开4bit了....

ycthink 发表于 2012-10-23 21:01:36

楼主你好,你现在速度能达到多少了?是sd1线模式还是sd 4线模式。         急求{:smile:}

hxw 发表于 2013-2-28 13:04:12

页: [1]
查看完整版本: 请教基于NIOS的sd卡sd模式 的一些问题