TF卡作为一种微型存储卡,可以在手机、平板、相机等设备中存储数据。不同的TF卡有不同的容量和速度,可以满足不同的需求。而对于开发板来说,TF卡的读写速度也直接影响了传输数据的快慢。如果TF卡的读写速度过慢,可能会导致数据丢失,系统崩溃,文件损坏等问题。因此,选择一款高品质、高规格、高兼容性的TF卡是很必要的。
那如何测试TF卡在开发板上的读写速度呢?本文将使用万象奥科HD-G2UL-EVM评估板测试不同TF卡在该开发板下的读写性能表现。
测试对象
HD-G2UL-EVM评估板是一款基于RZ/G2UL微处理器的工业级核心板,配备Cortex®-A55 (1 GHz) CPU、16位DDR3L/DDR4、双路USB2.0、支持256GB扩展TF卡槽等丰富的接口和多种视频接口,适用于工业现场和嵌入式设备。
测试结果
表1 测试结果
TF卡 | 写 | 读 |
闪迪C10 128GB | 15.9MB/s | 55.4MB/s |
闪迪C4 16GB | 2.2 MB/s | 17.0MB/s |
爱国者U3 32GB | 1.0 MB/s | 8.9 MB/s |
金士顿C10 32GB | 16.6MB/s | 58.2MB/s |
金士顿C4 32GB | 3.5 MB/s | 17.6MB/s |
海康威视C10 16GB | 3.8MB/s | 18.4MB/s |
金士顿C10 64GB | 2.0 MB/s | 9.5 MB/s |
金士顿C4 8GB | 807 kB/s | 14.6MB/s |
一般来说,写入速度和读取速度越高,TF卡的性能越好,但价格可能越高,从表1中可以看出,闪迪C10 128GB TF卡具有最高的写入速度和读取速度,不考虑预算的话它是最佳选择。如果不需要容量大的,金士顿C10 32GB TF卡也是一个不错的选择。
测试原理
dd命令
Linux dd 命令用于读取、转换并输出数据。
dd 可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。
测试指令如下:
写速度测试:dd if=/dev/zero of=$mount_point/largefile bs=16k count=16384 oflag=direct
清除页面缓存:sync && echo 3 > /proc/sys/vm/drop_caches
读速度测试:dd if=$mount_point/largefile of=/dev/null bs=16k count=16384
dd的相关解释
if 代表输入文件。如果不指定 if,默认就会从 stdin 中读取输入。
of 代表输出文件。如果不指定 of,默认就会将 stdout 作为默认输出。
bs 代表字节为单位的块大小。
count 代表被复制的块数。
/dev/zero 是一个字符设备,会不断返回 0 值字节(\0)。
测试过程
硬件准备
HD-G2UL-EVM评估板(512MB+8GB)、网线、Type-c数据线、5V电源适配器、电脑主机。
测试准备
准备5种以上不同规格品牌TF卡选取测试,如表2所示。
表2 TF卡
测试环境
读写测试
以读写FAT32文件系统为例,写读大小为256MB的文件。
闪迪C10 128GB
进行写性能测试...预计写入256M大小的largefile文件
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 16.8738 s, 15.9 MB/s
清除缓存...
进行读性能测试...预计读256M大小的largefile文件
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 4.84136 s, 55.4 MB/s
测试时长: (0 hours 0 minutes 33 seconds.)
测试完成!
闪迪C4 16GB
进行写性能测试...预计写入256M大小的largefile文件
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 120.232 s, 2.2 MB/s
清除缓存...
进行读性能测试...预计读256M大小的largefile文件
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 15.7637 s, 17.0 MB/s
测试时长: (0 hours 2 minutes 23 seconds.)
测试完成!
爱国者U3 32GB
进行写性能测试...预计写入256M大小的largefile文件
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 259.502 s, 1.0 MB/s
清除缓存...
进行读性能测试...预计读256M大小的largefile文件
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 30.0122 s, 8.9 MB/s
测试时长: (0 hours 5 minutes 2 seconds.)
测试完成!
金士顿C10 32GB
进行写性能测试...预计写入256M大小的largefile文件
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 16.1571 s, 16.6 MB/s
清除缓存...
进行读性能测试...预计读256M大小的largefile文件
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 4.61386 s, 58.2 MB/s
测试时长: (0 hours 0 minutes 28 seconds.)
测试完成!
金士顿C4 32GB
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 76.8466 s, 3.5 MB/s
清除缓存...
进行读性能测试...预计读256MB大小的largefile文件
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 12.5822 s, 17.6 MB/s
测试时长: (0 hours 1 minutes 35 seconds.)
测试完成!
海康威视C10 16GB
进行写性能测试...预计写入256M大小的largefile文件
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 71.558 s, 3.8 MB/s
清除缓存...
进行读性能测试...预计读256M大小的largefile文件
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 14.6249 s, 18.4 MB/s
测试时长: (0 hours 1 minutes 35 seconds.)
测试完成!
金士顿C10 64GB
进行写性能测试...预计写入256M大小的largefile文件
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 131.653 s, 2.0 MB/s
清除缓存...
进行读性能测试...预计读256M大小的largefile文件
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 28.3016 s, 9.5 MB/s
测试时长: (0 hours 2 minutes 51 seconds.)
测试完成!
金士顿C4 8GB
进行写性能测试...预计写入256M大小的largefile文件
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 332.638 s, 807 kB/s
清除缓存...
进行读性能测试...预计读256M大小的largefile文件
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 18.3718 s, 14.6 MB/s
测试时长: (0 hours 5 minutes 58 seconds.)
测试完成!