SBC-T113產品特性:
? 采用Allwinner公司Cortex-A7雙核T113-i處理器,運行最高速度為1.2GHZ;
? 內置64位玄鐵C906 RISC-V CPU和 DSP,提供高效的計算能力;
? 支持1080P 視頻編碼,多格式1080P 60fps視頻解碼 (H.265,H.264, MPEG-1/2/4)
? 支持LVDS/MIPI-DSI,分辨率最高1920x1080;
? 支持512-1G? Bytes DDR3 SDRAM;
? 支持SPI NAND啟動和存儲(256MB默認;512MB可選);可選EMMC啟動和存儲( 4G默認;8GB可選);
? 支持4路USB2.0 HOST和1路OTG,1路I2C,6路UART(RS232), 1路PWM(應用于背光)
? 支持雙路CAN BUS通信
? 支持雙路以太網,一路10/100M;一路10/100/1000M;
? 標準3.5寸主板, 尺寸為:146*102MM
SBC-T113功能評估圖:

以下為Micro SD 卡數據存儲:
MicroSDCard,原名Trans-flash Card(TF卡),MicroSD卡是一種極細小的快閃存儲器卡。MicroSD卡相比標準SD卡,外形上更加小巧,是SD卡類型中尺寸最小的一種SD卡。盡管MicroSD卡的外形大小及接口形狀與原來的SD卡有所不同,但接口規(guī)范保持不變,確保了兼容性。截止目前為止,Micro SD卡有如下幾種類型:
類型實際圖片存儲容量說明

2000年(V1.01):SD卡橫空出世,初始版本總線帶寬為12.5MB/s,文件系統(tǒng)為FAT12/16,容量上限為2GB。
▲2004年(V1.10):推出高速總線,帶寬翻倍至25MB/s。
▲2005年(V1.20):microSD卡魔童降世,身材更苗條,生態(tài)更廣闊。
2006年(V2.00):推出SDHC標準,文件系統(tǒng)更新為FAT32,容量上限提升至32GB,并首次發(fā)布速度等級標識(Class 2、Class 4、Class 6)。
▲2009年(V3.00):推出SDXC標準,文件系統(tǒng)更新為exFAT,容量上限提升至2TB,并拓展速度等級至Class 10。
▲2010年(V3.01):推出UHS-I總線,帶寬飆升至104MB/s,并發(fā)布UHS速度等級標識U1。
▲2011年(V4.00):推出UHS-II總線,帶寬提升兩倍至312MB/s。
▲2013年(V4.20):拓展UHS速度等級至U3。
▲2016年(V5.00):發(fā)布視頻速度等級標識(V6、V10、V30、V60、V90)。
▲2016年(V5.10):發(fā)布應用效能等級標識A1,關注隨機讀寫性能。
▲2017年(V6.00):推出UHS-III總線,帶寬翻倍至624MB/s,并拓展應用效能等級至A2,還發(fā)布低電壓信號標識LV(然而并未推廣)。
▲2018年(V7.00):推出SDUC標準,容量上限提升至128TB,同時推出吊炸天的SD Express總線,帶寬提升至985MB/s。
▲2019年(V7.10):microSD卡引入SD Express總線。
二十年來,SDA讓SD卡身材越來越小、容量越來越大、速度越來越快、規(guī)格標識越來越透明。但是當看到卡的時候,還是讓人眼花繚亂。同時,這里還有一個疑問,T113-i(主控制器)的SD卡接口符合哪個一個標準呢?到底T113-i(主控制器)的對TF卡的讀寫性能如何?本處通過兩點來判斷,一點是T113-i的TF卡接口符合什么標準,另外一點是TF卡到底實現了什么讀寫性能,只有兩者搭配起來才能做最后判斷。以下是T113-i的規(guī)格書中針對于TF卡接口的描述:
The SMHC0 controls the devices that comply with the protocol SecureDigital Memory (SD mem-version 3.0)

從這個信息可以看出來,T113-i的SD接口符合SD3.0的標準,但是因為T113-i供電給SD接口的IO是3.3V(因處理器設計原因無法適配1.8V),因此最高的性能是DDR mode 50Mhz。那根據https://zhuanlan.zhihu.com/p/118686845這個鏈接上的信息和以下關于讀寫速度的對應表,基本可以明確的是T113-i大概讀寫的速度是10MB/s。

以下是本次測試用卡的實際圖片,可以看到它是一個來自SANDISK品牌,容量為32GB的卡,它符合的標準是SDHC(UHS-I)標準,速度等級是10MB/s。

1)插入TF卡后的終端信息
root@T113-Embfly:/embfly_test#
[14564.155110] sunxi-mmc 4020000.sdmmc: sdc set ios:clk 0Hz bm PP pm UPvdd 21 width 1 timing LEGACY(SDR12) dt B
[14564.166378] sunxi-mmc 4020000.sdmmc: no vqmmc,Check if there isregulator
[14564.186534] sunxi-mmc 4020000.sdmmc: sdc set ios:clk 400000Hz bm PP pmON vdd 21 width 1 timing LEGACY(SDR12) dt B
[14564.210798] sunxi-mmc 4020000.sdmmc: sdc set ios:clk 400000Hz bm PP pmON vdd 21 width 1 timing LEGACY(SDR12) dt B
[14564.225428] sunxi-mmc 4020000.sdmmc: sdc set ios:clk 400000Hz bm PP pmON vdd 21 width 1 timing LEGACY(SDR12) dt B
[14564.239348] sunxi-mmc 4020000.sdmmc: sdc set ios:clk 400000Hz bm PP pmON vdd 21 width 1 timing LEGACY(SDR12) dt B
[14564.253988] sunxi-mmc 4020000.sdmmc: sdc set ios:clk 400000Hz bm PP pmON vdd 21 width 1 timing LEGACY(SDR12) dt B
[14564.353251] mmc1: host does not support reading read-only switch,assuming write-enable
[14564.364816] sunxi-mmc 4020000.sdmmc: sdc set ios:clk 400000Hz bm PP pmON vdd 21 width 1 timing SD-HS(SDR25) dt B
[14564.376547] sunxi-mmc 4020000.sdmmc: sdc set ios:clk 50000000Hz bm PPpm ON vdd 21 width 1 timing SD-HS(SDR25) dt B
[14564.388423] sunxi-mmc 4020000.sdmmc: sdc set ios:clk 50000000Hz bm PPpm ON vdd 21 width 4 timing SD-HS(SDR25) dt B
[14564.400216] mmc1: new high speed SDHC card at address 5048
[14564.407618] mmcblk1: mmc1:5048 SD32G 29.7 GiB
[14564.418198]? mmcblk1: p1
[14564.580538] FAT-fs (mmcblk1p1): Volume was not properly unmounted.Some data may be corrupt. Please run fsck.
可以看到“mmc1: new high speed SDHC card at address 5048”信息,這個信息表示這張卡是一張高速的SDHC的卡。另外看到的信息是“mmcblk1: mmc1:5048 SD32G
29.7 GiB”,這個信息表示它的容量是29.7GiB,其實它是一張標稱32GB的卡(為什么容量少,用戶可自行baidu)。
2)查看TF卡容量
通過fdisk-l命令可以查詢到TF卡分區(qū)信息及容量:
root@T113-Embfly:/]# fdisk -l
Disk /dev/mmcblk1: 29.8 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/mmcblk1p1??????8192 62357503 62349312 29.7G? cW95 FAT32 (LBA)
3)通過df -h命令可以查詢到TF卡掛載情況:
root@T113-Embfly:~# df -h
Filesystem??????????????? Size????? Used Available Use% Mounted on
/dev/root?????????????? 991.9M??? 315.6M???660.3M? 32% /
tmpfs?????????????????? 233.7M???????? 0???233.7M?? 0% /dev/shm
tmpfs?????????? ????????242.9M???? 72.0K???242.9M?? 0% /tmp
tmpfs?????????????????? 242.9M??? 172.0K???242.8M?? 0% /run
devtmpfs??????????????? 233.7M???????? 0???233.7M?? 0% /dev
/dev/mmcblk0p5????????? 991.9M??? 315.6M???660.3M? 32% /run/media/mmcblk0p5
/dev/mmcblk1p1?????????? 29.7G????? 1.6G????28.1G?? 6% /run/media/mmcblk1p1
/dev/mmcblk0p1????????? 127.7M????? 4.5M???123.2M?? 4% /run/media/mmcblk0p1
從以上信息可以看到TF卡已經自動掛載到/run/media/mmcblk1p1目錄。
4)一般是通過dd+time指令來判斷TF卡的性能。因此先通過dd --help命令查看dd指令支持的相關參數。從以下信息中可以看到,該Linux系統(tǒng)的dd指令所帶的參數中,只有設置conv=fsync這個參數時,寫文件才是不帶緩沖的寫入,那么寫入一個文件的時間才是可信賴的。
root@T113-Tronlong:/run/media/mmcblk1p1# dd --help
BusyBox v1.29.3 (2024-02-03 17:43:05 CST) multi-call binary.
Usage: dd [if=FILE] [of=FILE] [ibs=N] [obs=N] [bs=N] [count=N] [skip=N]
??????? [seek=N][conv=notrunc|noerror|sync|fsync] [iflag=skip_bytes|fullblock]
Copy a file with converting and formatting
??????? if=FILE???? ????Read from FILE instead of stdin
??????? of=FILE???????? Write to FILE instead of stdout
??????? bs=N??????????? Read and write N bytes at a time
??????? ibs=N?????????? Read N bytes at a time
??????? obs=N?????????? Write N bytes at a time
??????? count=N???????? Copy only N input blocks
??????? skip=N????????? Skip N input blocks
??????? seek=N????????? Skip N output blocks
??????? conv=notrunc??? Don't truncate output file
??????? conv=noerror??? Continue after read errors
??????? conv=sync?????? Pad blocks with zeros
??????? conv=fsync????? Physically write data out beforefinishing
??????? conv=swab?????? Swap every pair of bytes
??????? iflag=skip_bytes??????? skip=N is in bytes
??????? iflag=fullblock Read fullblocks
??????? status=noxfer?? Suppress rate output
??????? status=none???? Suppress all output
5) TF卡的性能測試
性能測試主要測試linux系統(tǒng)下往TF卡中寫入文件的速度和從TF卡中讀文件的速度,當測試往TF卡寫入文件時,要先進入到TF卡的掛載目錄。
[if !supportLists]l? [endif]寫文件測試
root@T113-Embfly:/run/media/mmcblk1p1#time dd if=/dev/zero of=test_write bs=1M count=100 conv=fsync
100+0 records in
100+0 records out
real??? 0m6.490s
user??? 0m0.001s
sys???? 0m1.212s
root@T113-Embfly:/run/media/mmcblk1p1#
從信息上可以看到,寫入100MB的數據,實際用時為6.49s,通過計算得出寫磁盤速度為15.4MB/s(該數據僅供參考)。
[if !supportLists]l? [endif]讀文件測試(把文件讀到內存)
root@T113-Embfly:/run/media/mmcblk1p1#echo 3 > /proc/sys/vm/drop_caches
[ 3165.661585] sh(1554): drop_caches: 3
root@T113-Embfly:/run/media/mmcblk1p1#
root@T113-Embfly:/run/media/mmcblk1p1#? time?dd if=tempfile of=/dev/null bs=1M
100+0 records in
100+0 records out
real??? 0m4.439s
user??? 0m0.000s
sys???? 0m0.345s
root@T113-Embfly:/run/media/mmcblk1p1#? time?dd if=tempfile of=/dev/null bs=1M
100+0 records in
100+0 records out
real??? 0m0.237s
user??? 0m0.000s
sys???? 0m0.238s
root@T113-Tronlong:/run/media/mmcblk1p1#
從以下信息得知,通過“echo 3 > /proc/sys/vm/drop_caches“指令清除緩存后,從SD卡讀數據tempfile(這個文件是在測試寫文件速度時建立的100M的文件)用時4.439s,經過計算得出來的速度是22MB/s;第二次再運行“time? dd if=tempfile of=/dev/nullbs=1M”指令時,實際上因第一次運行該指令時已經將數據讀的是緩沖區(qū),因此第二次執(zhí)行讀的速度要比第一次快。