关于ZYNQ-700是否支持大容量SD卡
不支持。
下午问了客服的FAE给的答案是不清楚,我自己调研了一下为什么。
调查结果:
1. 大容量的SD卡为什么不支持?
SD2.0规范中(SDHC)硬件支持的最大容量是32GB
SD3.01规范中(SDXC)硬件支持的最大容量可以到2T--参考资料:http://kb-cn.sandisk.com/app/answers/detail/a_id/5302
我们使用的ZYNQ使用的是SD2.0规范,所以只能最大支持到32GB。在Xilinx公司的官网wiki中给出只有携带【SD3.0 /eMMC 4.5 Host Controller】控制器机制才能支持SD 3.0。官网给出Wiki只有如图型号的Xilinx产品才支持。参考:https://www.xilinx.com/products/intellectual-property/1-5clj0b.html#productspecs
例如,目前的产品中,Freecale公司的I.MX6系列(CortexA9架构)和三星公司的S5P4418(Cortex A9架构)支持SD3.0(UHS-I) 。通常处理器如果支持这个功能,制造商一定会写在最明显的位置。
2. E-MMC可行性
- 在ZYNQ的ARM部分,ZYNQ的手册上给出E-MMC也采用SD卡接口模式,实际上这个EMMC也相当于接了一个SD卡,支持大小受到ZYNQ自身SD2.0限制,挂载个数受到ZYNQ的SD接口限制。所以,在ARM这边无论如何都无法支持超过32GB的存储的。
- 若将EMMC直接接到FPGA部分,相当于FPGA充当emmc存储控制器,需要在FPGA上实现eMMC总线协议,驱动一片大容量eMMC(与FLASH不同,eMMC总线协议中规定,通过传输数据长度指令来指定读写长度,而不需要使用地址线来寻址。参考协议:http://blog.csdn.net/wuyusheng314/article/details/64127687 )
但在FPGA上面实现eMMC总线协议栈,工作量十分巨大,性能也有影响。
3. USB-OTG挂在U盘方法
在ZYNQ上有一个USB-OTG接口,可以考虑挂在一个容量大的U盘,U盘会挂在到Linux的文件系统上,使用常规方法就可以进行U盘的数据读写。
PS:有人反馈存在问题就是随着容量的使用,U盘会出现掉速现象,这个正在测试中。。。