CoM-T536产品特性:
- 采用Allwinner公司Cortex-A55四核T536处理器,最高速度为1.6GHZ;
- 支持2TOPS NPU,仅特定型号支持;
- 支持4K/25fps H.264视频编码,支持4K/15fps MJPEG编码;
- 支持1-4G Bytes LPDDR4 SDRAM;
- 支持EMMC 4G-64G大容量电子盘,可启动;或支持SPI NAND启动;
- 支持双通道LVDS,分辨率最高1920x1080@60fps;支持MIPI DSI显示, 分辨率最高1920x1020@60fps;
- 支持PCIE2.1;支持最多17路UART;支持四路CANFD;支持双路千兆以太网;
- 稳定的操作系统的支持,可预装LINUX 5.10/Ubuntu 20.04
- 邮票孔198POS设计, 尺寸为:53.5*45MM
CoM-T536功能图
STK-T536评估板功能图:
3.6、Micro SD卡数据存储
MicroSD Card,原名 Trans-flash Card(TF卡),MicroSD卡是一种极细小的快闪存储器卡。MicroSD卡相比标准SD卡,外形上更加小巧,是SD卡类型中尺寸最小的一种SD卡。尽管MicroSD卡的外形大小及接口形状与原来的SD卡有所不同,但接口规范保持不变,确保了兼容性。截止目前为止,Micro SD卡有如下几种类型:
类型 | 实际图片 | 存储容量 | 说明 |
microSD | 2GB和更小 | 停产 | |
microSDHC | 超过2GB,最高32GB | 可以买到 | |
microSDXC | 超过32GB,最高2TB | 目前市场主流 | |
microSDUC | 超过2TB,最高128TB | 未来主流 |
2000年(V1.01):SD卡横空出世,初始版本总线带宽为12.5MB/s,文件系统为FAT12/16,容量上限为2GB。
▲2004年(V1.10):推出高速总线,带宽翻倍至25MB/s。
▲2005年(V1.20):microSD卡魔童降世,身材更苗条,生态更广阔。
2006年(V2.00):推出SDHC标准,文件系统更新为FAT32,容量上限提升至32GB,并首次发布速度等级标识(Class 2、Class 4、Class 6)。
▲2009年(V3.00):推出SDXC标准,文件系统更新为exFAT,容量上限提升至2TB,并拓展速度等级至Class 10。
▲2010年(V3.01):推出UHS-I总线,带宽飙升至104MB/s,并发布UHS速度等级标识U1。
▲2011年(V4.00):推出UHS-II总线,带宽提升两倍至312MB/s。
▲2013年(V4.20):拓展UHS速度等级至U3。
▲2016年(V5.00):发布视频速度等级标识(V6、V10、V30、V60、V90)。
▲2016年(V5.10):发布应用效能等级标识A1,关注随机读写性能。
▲2017年(V6.00):推出UHS-III总线,带宽翻倍至624MB/s,并拓展应用效能等级至A2,还发布低电压信号标识LV(然而并未推广)。
▲2018年(V7.00):推出SDUC标准,容量上限提升至128TB,同时推出吊炸天的SD Express总线,带宽提升至985MB/s。
▲2019年(V7.10):microSD卡引入SD Express总线。
二十年来,SDA让SD卡身材越来越小、容量越来越大、速度越来越快、规格标识越来越透明。但是当看到卡的时候,还是让人眼花缭乱。同时,主控制器的SD卡接口符合哪个一个标准,这也决定了卡读写的速度。以下是T536规格书中针对于TF卡接口的描述:
The SMHC0 controls the devices that comply with the protocol Secure Digital Memory (SD mem-version 3.0)
从这个信息可以看出来,T536的SD接口符合SD 3.0的标准,因此最高的性能是SDR mode 200Mhz。根据这个链接上的信息和以下关于读写速度的对应表,基本可以判断T536读的速度超过SDR104MB/s。
下表是速度等级标识(Speed Class)
备注:代表持续稳定的最低写入速度(即视频文件最低写入速度)。
以下是本次测试用卡的实际图片,可以看到它是一个来自SANDISK品牌,容量为32GB的卡,它符合的标准是SDHC(UHS-I)标准,写速度等级是10MB/s。
1) 插入TF卡后的终端信息如下:
[ 98.106177] sunxi:sunxi_mmc_host-4020000.sdmmc:[INFO]: sdc set ios:clk 0Hz bm PP pm OFF vdd 0 width 1 timing LEGACY(SDR12) dt B [ 134.648748] sunxi:sunxi_mmc_host-4020000.sdmmc:[INFO]: sdc set ios:clk 0Hz bm PP pm UP vdd 23 width 1 timing LEGACY(SDR12) dt B [ 134.661771] sunxi:sunxi_mmc_host-4020000.sdmmc:[INFO]: no vqmmc,Check if there is regulator [ 134.683661] sunxi:sunxi_mmc_host-4020000.sdmmc:[INFO]: sdc set ios:clk 400000Hz bm PP pm ON vdd 23 width 1 timing LEGACY(SDR12) dt B [ 134.697207] sunxi:sunxi_mmc_host-4020000.sdmmc:[INFO]: used kernel tuning, delay = 32 [ 134.718599] sunxi:sunxi_mmc_host-4020000.sdmmc:[INFO]: sdc set ios:clk 400000Hz bm PP pm ON vdd 23 width 1 timing LEGACY(SDR12) dt B [ 134.732019] sunxi:sunxi_mmc_host-4020000.sdmmc:[INFO]: used kernel tuning, delay = 32 [ 134.743742] sunxi:sunxi_mmc_host-4020000.sdmmc:[INFO]: sdc set ios:clk 400000Hz bm PP pm ON vdd 23 width 1 timing LEGACY(SDR12) dt B [ 134.757162] sunxi:sunxi_mmc_host-4020000.sdmmc:[INFO]: used kernel tuning, delay = 32 [ 134.768396] sunxi:sunxi_mmc_host-4020000.sdmmc:[INFO]: sdc set ios:clk 400000Hz bm PP pm ON vdd 23 width 1 timing LEGACY(SDR12) dt B [ 134.781983] sunxi:sunxi_mmc_host-4020000.sdmmc:[INFO]: used kernel tuning, delay = 32 [ 134.794233] sunxi:sunxi_mmc_host-4020000.sdmmc:[INFO]: sdc set ios:clk 400000Hz bm PP pm ON vdd 23 width 1 timing LEGACY(SDR12) dt B [ 134.808682] sunxi:sunxi_mmc_host-4020000.sdmmc:[INFO]: used kernel tuning, delay = 32 [ 134.875697] sunxi:sunxi_mmc_host-4020000.sdmmc:[INFO]: sdc set ios:clk 0Hz bm PP pm ON vdd 23 width 1 timing LEGACY(SDR12) dt B [ 134.888733] sunxi:sunxi_mmc_host-4020000.sdmmc:[INFO]: no vqmmc,Check if there is regulator [ 134.910676] sunxi:sunxi_mmc_host-4020000.sdmmc:[INFO]: sdc set ios:clk 400000Hz bm PP pm ON vdd 23 width 1 timing LEGACY(SDR12) dt B [ 134.924324] sunxi:sunxi_mmc_host-4020000.sdmmc:[INFO]: used kernel tuning, delay = 32 [ 134.942299] mmc0: host does not support reading read-only switch, assuming write-enable [ 134.951919] sunxi:sunxi_mmc_host-4020000.sdmmc:[INFO]: sdc set ios:clk 400000Hz bm PP pm ON vdd 23 width 4 timing LEGACY(SDR12) dt B [ 134.965331] sunxi:sunxi_mmc_host-4020000.sdmmc:[INFO]: used kernel tuning, delay = 32 [ 134.975741] sunxi:sunxi_mmc_host-4020000.sdmmc:[INFO]: sdc set ios:clk 400000Hz bm PP pm ON vdd 23 width 4 timing UHS-SDR104 dt B [ 134.988840] sunxi:sunxi_mmc_host-4020000.sdmmc:[INFO]: used kernel tuning, delay = 32 [ 134.997620] sunxi:sunxi_mmc_host-4020000.sdmmc:[INFO]: sdc set ios:clk 150000000Hz bm PP pm ON vdd 23 width 4 timing UHS-SDR104 dt B [ 135.011088] sunxi:sunxi_mmc_host-4020000.sdmmc:[INFO]: used kernel tuning, delay = 32 [ 135.019846] sunxi:sunxi_mmc_host-4020000.sdmmc:[INFO]: start tuning, tuning clk = 150000000 opcode=19 [ 135.030260] sunxi:sunxi_mmc_host-4020000.sdmmc:[INFO]: ----speed mode = 6 [ 135.077811] sunxi:sunxi_mmc_host-4020000.sdmmc:[INFO]: tuning section: [ 135.077820] sunxi:sunxi_mmc_host-4020000.sdmmc:[INFO]: [0-10|11] [ 135.085230] sunxi:sunxi_mmc_host-4020000.sdmmc:[INFO]: [16-53|38] [ 135.092057] sunxi:sunxi_mmc_host-4020000.sdmmc:[INFO]: [60-63|4] [ 135.098967] sunxi:sunxi_mmc_host-4020000.sdmmc:[INFO]: [ 135.111611] sunxi:sunxi_mmc_host-4020000.sdmmc:[INFO]: tuning result: 16 - 53, best: 35 [ 135.120701] mmc0: new ultra high speed SDR104 SDHC card at address 5048 [ 135.129432] mmcblk0: mmc0:5048 SD32G 29.7 GiB [ 135.137163] mmcblk0: p1 p2可以看到“mmc0: new ultra high speed SDR104 SDHC card at address 5048”信息,这个信息表示这张卡是一张高速的超高速卡。另外看到的信息是“mmcblk0: mmc0:5048 SD32G 29.7 GiB”,这个信息表示它的容量是29.7GiB,其实它是一张标称32GB的卡(容量少的原因用户可自行baidu)。
2)查看TF卡容量
通过fdisk-l命令可以查询到TF卡分区信息及容量:
root@T536-embfly:~# fdisk -l Disk /dev/mmcblk0: 29.73 GiB, 31927042048 bytes, 62357504 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x00000000 Device Boot Start End Sectors Size Id Type /dev/mmcblk0p1 8192 62357503 62349312 29.7G c W95 FAT32 (LBA)从以上信息可得知该TF卡只有一个分区。如果是两个分区,还应该存在/dev/mmcblk0p2节点,依次类推。
3)可通过df -h命令可以查询到TF卡挂载情况:
root@T536-embfly:/# df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9G 601.9M 1.3G 31% / tmpfs 972.3M 0 972.3M 0% /dev/shm tmpfs 974.7M 268.0K 974.5M 0% /tmp tmpfs 974.7M 352.0K 974.4M 0% /run devtmpfs 972.3M 0 972.3M 0% /dev /dev/mmcblk2p1 127.7M 5.3M 122.4M 4% /media/mmcblk2p1 /dev/mmcblk2p6 5.0G 4.0K 5.0G 0% /media/mmcblk2p6 cgroup 974.7M 0 974.7M 0% /sys/fs/cgroup /dev/root 1.9G 601.9M 1.3G 31% /var/lib/docker /dev/mmcblk0p1 29.7G 2.1G 27.6G 7% /media/mmcblk0p1从以上信息可以看到TF卡已经自动挂载到/media/mmcblk0p1目录。
4) TF卡的性能测试
性能测试主要测试linux系统下往TF卡中写入文件的速度和从TF卡中读文件的速度,当测试往TF卡写入文件时,要先进入TF卡的挂载目录。
备注:一般是通过dd+time指令来判断TF卡的性能。可先通过dd --help命令查看dd指令支持的相关参数。
- 写文件测试
Target#time dd if=/dev/zero of=tempfile bs=1M count=100 conv=fsync //写入100M数据
root@T536-embfly:/media/mmcblk0p1$ 0 conv=fsync2x:/media/mmcblk0p1$ time dd if=/dev/zero of=tempfile bs=1M count=100 100+0 records in 100+0 records out real 0m6.369s user 0m0.000s sys 0m1.261s root@T536-embfly:/media/mmcblk0p1$从信息上可以看到,写入100MB的数据,实际用时为6.369s,通过计算得出写磁盘速度为15.7MB/s(该数据仅供参考)。
- 读文件测试(把文件读到内存),测试指令如下:
Target#echo 3 > /proc/sys/vm/drop_caches //清除缓存
Target#time dd if=tempfile of=/dev/null bs=1M //读100MB数据,tempfile是刚刚写入的
root@T536-embfly:/media/mmcblk0p1$ echo 3 > /proc/sys/vm/drop_caches [ 409.963972] sh (536): drop_caches: 3 root@T536-embfly:/media/mmcblk0p1$ time dd if=tempfile of=/dev/null bs=1M 100+0 records in 100+0 records out real 0m1.538s user 0m0.000s sys 0m0.149s root@T536-embfly:/media/mmcblk0p1$从以下信息得知,通过“echo 3 > /proc/sys/vm/drop_caches“指令清除缓存后,从SD卡读数据tempfile(这个文件是在测试写文件速度时建立的100M的文件)用时1.538s,经过计算得出来的速度是65MB/s,该数据仅供参考。