存储卡性能与格式化参数选取(fat32/fat16/簇大小),请看测试! 昨天测了手头上的几块sd卡,发现现在用的创见4g150xsd卡表现非常之差,一度怀疑是否被JS骗了。 今天闲来无事,决定找找原因。先是用我的数码相机对卡做了低格(只能格成fat32),放到手机上一测,结果性能大幅提高! 遂怀疑可能与格式化参数有关,于是找到一个格式化工具storage tool, 用不同的参数格式化sd卡,看性能有无变化。结果见图 测试手机:Mio-A701, OS:wm5-rzx-1015 所用测试软件:spb-benchmark 图中f16、f32表示文件系统类型,b后面的数字表示簇大小
结论: 1.创见4g150xsd卡采用fat32格式/簇大小64k,spb测试综合性能最佳!采用fat16/64k性能略差,但基本与fat32相当。 2.采用fat32时如果簇大小选择过小,会严重影响大文件写到sd卡的速度,例如拍张照片存到卡上的速度。 3.测试结果显示各种情况下从卡读取数据的速度都差不多,这正好解释了我平时使用时的感觉,因为我大部分的应用都是读卡,写卡的时候很少。 4.根据测试结果,fat32只要簇大小选择合适,其性能并不比fat16差! 有些帖子里提到fat16比fat32速度快,原因很可能是格式化成fat32时,簇大小都比较小(估计是4k),而fat16对于容量较大的卡,簇大小都比较大,例如对于1G、2G、4G的卡,fat16的簇大小的最小值是16k、32k、64k。 我怀疑这块sd卡买来时的簇大小是512或1024(现在已经看不到了,被我格了),原来的测出来综合指数为49.3,而现在重新设置后是110! 现在我把簇大小设成64K,速度是提高了,但缺点是比较浪费空间;大约每个文件平均浪费32KB, 1000个文件浪费32MB! 注意:格式化成f32b64时,把卡插到读卡器上在PC上往卡上拷东西会有问题!提示磁盘已满,而f16b64没问题!
|
玩导航仪的人肯定会经常格式化TF卡(一般都选择快速格式化),而且现在大多数人都在用松下公司出品的那个格式化小软件进行。并且也都经常有人在买到一个新卡时,会用测速软件测一下它的读写速度。但是本人最近买了一个带行车记录功能的导航仪,里面有一个对记录仪专用TF卡的格式化选项,当你用这个选项对卡进行格式化后,你会发现它会将卡格式化成64KB簇的。当时我就想,为什么它不将簇大小格成4KB、8KB、16KB、32KB、128KB,甚至更大一些呢?是不是格成64KB的具有最好的效果(读写速度和卡的利用率都兼顾了)?带着这个疑问,用测速软件实测了一个8G的TF卡(是C4的),结果显示:按不同数据块大小的读写速度,在一定区间内有明显的差异,比如当以32KB数据块读写时,它的写入速度是9.9M/秒,而以64KB数据块读写时它的写入速度竟然达到了11.59M/秒,再往后它的写入速度提高就不太明显了。至此才明白:对于8G-16G的TF卡来说,格成64KB簇的是最好的选择,即提高了读写速度(写入速度变化明显,读入速度在一定区间里变化不大),又降低不了多少利用率。这相比格成32KB簇来说,写入速度可是提高了17%,不小的数字啊!
所以我的体会是:
1、如果你的卡是8-16G的,请不要用松下的那个格卡工具,因为它默认只格成32KB簇大小的,这个大小的簇虽然卡的利用率高一点,但是写入速度不行。建议在电脑上(XP系统)进入控制面板→管理工具→计算机管理→磁盘管理,点击可移动磁盘,在这个界面里进行格式化,但是要注意:不要用电脑的默认值,要选择“64KB”这个选项进行快速格式化。这样格式化后,你再回到“我的电脑”界面查看这个卡的属性,发现它就是64KB的了。
2、如果你是4G的TF卡的话,你是无法格成64KB的,它会弹出错误对话框。你最大只能格成32KB的。记住,同样不能用它的默认值,这个默认值只有4KB,而格成4KB大小的话则卡的写入速度是很慢的,与32KB的没法比。
3、如果你的TF卡是8G以上的,而且是用作拍照或录影用的,那么你完全可以格成128或256KB簇的,因为实际上影音文件没有小于128KB的,所以格成128或者256KB时不存在降低利用率的问题,相反还提高了读写速度。
纯属经验之谈,大家可以验证后在作批评。
- 大小: 32.9 KB
分享到:
相关推荐
- **簇大小**:在SD卡上,簇大小通常为4KB或更大,以优化空间利用率。然而,更大的簇可能导致小文件浪费更多空间,因为每个文件必须占用至少一个完整的簇。 - **性能**:FAT16在SD卡上的读写速度相对较低,尤其是在...
这款STM32F103ZET6本身的flash...SD卡(三种卡的统称)的存储空间是由一个一个扇区组成的,SD卡的扇区大小是512byte,若干个扇区又可以组成一个分配单元(也被成为簇),分配单元常见的大小为4K、8K、16K、32K、64K。
2. **初始化过程**:在读写SD卡之前,必须先进行初始化,这包括发送特定的命令序列,比如CMD0复位、CMD8检查版本、ACMD41设置电压范围、CMD58读OCR(Operating Conditions Register)等,直到SD卡返回就绪状态。...
在嵌入式系统中,使用SD卡进行数据存储是常见的需求,因为SD卡提供了大容量、易于扩展的存储解决方案。"28335_SD-Fatfs.zip"是一个针对28335 DSP的SD卡实验调试程序,它包含了在该芯片上实现FAT文件系统所需的所有...
`SD卡存储`可能是包含实际代码或数据的文件,用于演示或测试51单片机对SD卡的读写操作。在实际项目中,开发者需要编写代码来处理各种异常情况,确保数据的完整性和可靠性。 总的来说,实现51单片机对SD卡的读写功能...
扇区是SD卡最小的可寻址单位,通常每个扇区大小为512字节。在文件系统层面上,这些扇区组合成簇,进一步组织成文件。 在“SD卡读写扇区测试”中,我们关注的是直接对扇区进行读写操作,而非通过文件系统。这是低...
SD卡是一种广泛应用于移动设备、数码相机和其他便携式设备的存储介质,它采用闪存技术,具有容量大、体积小、速度快等优点。在深入理解SD卡的运作机制时,我们需要关注三个核心概念:文件系统、底层驱动和FAT(File ...
例如,设置扇区大小、簇大小、文件系统类型等。 3. **初始化**:在程序启动时调用FATFs的初始化函数,如`f_mount()`,将SD卡挂载到一个逻辑驱动器上。 4. **文件操作**:使用FATFs提供的API进行文件操作,如`f_...
SPI(Serial Peripheral Interface)模式是SD卡与微控制器通信的一种常见方式,因为它只需要四条线(MOSI、MISO、SCK和CS),相比其他接口如I²C或UART,SPI提供了更高的数据传输速率。 在C语言中实现SD卡驱动,...
4. **块大小设置**:在读写操作之前,需要通过CMD16命令设置数据传输的块大小,通常为512字节,这是SD卡的标准块大小。 5. **读写操作**:读操作通常使用CMD17(读单块)或CMD18(读多块)命令,写操作使用CMD24...
3. **块大小设置**:在格式化时,用户可以选择不同的簇大小(或块大小)。较大的块大小可以提高读写效率,但可能导致空间浪费。选择合适的块大小取决于SD卡的容量和用途。 4. **高速格式化**:某些专业格式化工具,...
在STM32上移植FATFS,需要包含相应的库文件,设置文件系统参数,如扇区大小、簇大小等,并挂载SD卡上的分区为文件系统。 4. **程序升级流程** - 首先,BOOTLOADER检测到特定的升级触发条件(如按键、网络命令等)...
这包括下载FATFS源码,将其包含到工程中,并根据项目需求进行必要的配置,如定义扇区大小、簇大小等参数。同时,需要编写SD卡驱动代码,处理与SD卡的低级通信,如发送命令、读写数据等。 在固件中,FATFS提供了标准...
2. 初始化:检测SD卡,设置相应的I/O操作,例如SPI或MMC/SD总线协议。 3. 发送命令:执行如初始化序列、读写块等操作的命令。 4. 数据传输:通过DMA(直接内存访问)或中断驱动的I/O进行数据交换。 5. 错误处理:...
在 SD 卡中,每个扇区的大小为 512 字节。读取 SD 卡的内容需要了解 SD 卡的文件结构。使用 WinHex 分析 SD 卡可以得到第一数据区,即根目录区。根目录区位于第 520 区,每扇区 512 字节。 SD 卡文件结构的掌握是 ...
FAT16中的簇大小通常是512字节到4096字节,具体取决于磁盘的大小。文件系统会为每个簇分配一个编号,并在FAT表中记录下一个簇的编号,以此来构建文件的物理链接。此外,FAT16还支持目录结构,每个目录项占据32字节的...
SD卡,全称为Secure Digital Memory Card,是一种广泛应用于便携式设备中的非易失性存储卡。SD卡规范详细定义了这种卡片的物理尺寸、电气特性、通信协议以及文件系统等方面,是开发SD卡驱动程序的基础。本文档将深入...
在STM32项目中,我们需要配置FATFS的参数,如盘符分配、扇区大小、簇大小等,并实现扇区读写函数,这些函数将调用SPI接口来与SD卡交互。一旦配置完成,我们就可以使用标准的f_open、f_read、f_write、f_close等函数...