一直在纠结这两种储存卡在读写扇区上的区别。
现在的STM32芯片手册都明确说支持SDHC SD2.0没有提SDXC SD3.0。
部分开发板的手册和例程里都提到SDXC的接口和HC区别很大。
所以,我在给 别人 做采集卡V3.X的时候一直回避使用 SDXC的储存卡。都采用SDHC的储存卡32GB容量。
因为有“一个月采集”的项目,回过头,去研究SDXC的标准。
2、SD卡的标准可以直接从官网上下载,但是只能下载 Simplified Specification版本的,应该只有会员才能下载完整版。
3、 下载“SD Specifications Part 1 Physical Layer Simplified Specification Version 3.01 2010” "part1_301.pdf"这个文件和”4.0”两个文件,研究。
差分信号,应该指的是SD 4.0的标准,而非SDXC (SD3.0),或者说SDXC的物理引脚应该与SDHC一致,不变。
因此,推测,SDXC的信号及协议其实是大部分与SDHC兼容!
若真是这样,那么很有可能,拥有SDHC SDIO的STM32F103单片机是可以读写SDXC 128GB储存卡的!
还有一个佐证:
以上截图出自Sandisk官网告知SD SDHC SDXC 区别的网页
它提到,SDXC的卡因为大容量,所以使用ExFAT文件系统,而一些Host设备因为固件没有支持ExFAT所以,不支持SDXC。
画线那一句,说了,只要固件或者系统支持ExFAT,那么SDHC的读卡器是可以支持SDXC的卡的!!
对于我这个系统,我的单片机,根本没有使用文件系统,对TF卡的使用,是以Flash的用法使用的,就是对扇区直接操作。
数据提取的时候,也是直接操作扇区,不存在文件系统的问题。
所以结论是,我觉得,STM32F103的SDIO外设可以读写 SDXC的扇区。没有问题!
所以,在SDXC 128GB 卡来了之后,要做这些事情确认我的猜测:
1、SDXC卡使用读卡器USB连接Win7,使用WinHex读卡的大小,和确定的最大扇区号。最大扇区号!作为一个重要常量。
2、规律或无规律选择几个测试扇区号。
3、128GB TF卡插入采集卡3.0,获取CSD寄存器内容,读出最大扇区号,观察是否与“1”一致。
4、向选定的测试扇区写数据,使用单扇区和多扇区写函数。
5、再次使用读卡器观察TF卡测试扇区,观察是否写入成功。
6、TF卡插入采集卡,观察连续写32KB 64个扇区数据是否正常,写入时间是否正常。
7、需要实施超长时间采集测试,如果可能使用高采样率,连续多天采集,全部把卡采满为止。
以上均通过,那么可以肯定系统使用128GB储存卡没有问题。但愿这样吧。
128GB TF卡测试结果:
-
XP 和 Win7 使用兼容SDHC的读卡器就能支持SDXC 128GB 卡。使用winHex软件,能够读到该卡的扇区总数:249,736,192 卡总容量 249,736,192*512 等于 127,864,930,304 字节。
-
使用小采集卡,获得的最大扇区号没有错误。
-
使用小采集卡,可以读写128G卡,连续读写时间没有计算,但是程序运行来看没有问题。