本帖最后由 angryBird 于 2013-8-22 22:35 编辑
题目没错,是 USB转SD卡,而不是常见到反过来。之所以说离奇,不过是因为平时没见过这种用法,故而应属少有。在网上也查了一段时间资料,几乎没有找到相关的做法。
对于STM32,两年多前,用f207做过一个CDC之类的小项目。具体是USB口链接一个移动设备,按照modem协议,通过at指令,控制和收发数据,然后用串口转给另一边的一台设备。时间有点久了,之后再没有接触过STM32。所以,这次这个USB转SD卡,一时还没有多少思路。看了一些有关SD卡SPI协议的资料,还没有深入。
活总是要干的,现在开始正式整理思路,以及要解决的问题。以前在这个论坛,也得到过大家的帮助,这次也期望各位同道中人能多多帮忙。尤其是原子老大,还有香水老师,先谢了哈。
这个项目大体是这样,用f107,做一个USB转SD的小板。一端做成SD卡触脚形式,插到另一台设备的SD卡插槽,f107的u口接U盘。原来设备读写SD卡的功能一点不动,完全通过stm32翻译、转换,实现USB转SD卡。也就是将平时用的读卡器给反过来用。
目前思路如下:
1. 安装EWARM,下载了6.1版本。上次的是什么版本早忘了,软件已经卸载,有点郁闷。
2. 学习SPI通信,因为是通过stm32的spi接口,和其它设备的SD插槽连接,实现SD卡的spi协议。
3. 学习sd卡的spi协议,整理常用的命令。读上位机读写SD卡的代码,看看都是怎么操作SD卡的 。
4. 学习FAT文件系统相关知识。 这个是我最郁闷的地方。因为我觉得上位机发来一条命令比如读一个文件,应该是按照文件系统的方式进行的吧,按照扇区读?将读sd扇区的命令转换到读U盘的扇区? 对此我表示现在还很晕,期待大家的指点:)
5. 硬件有了后,写程序框架,调试spi通信。捕捉spi接收到的读写指令。分析。
6. 读写USB。
7. 。。。
现在觉得好难啊:(
列位,支持一下哈。
|