欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

eMMC總線(xiàn)協(xié)議

sally100 ? 來(lái)源:數(shù)字ICer ? 2023-12-10 15:18 ? 次閱讀

一、eMMC 簡(jiǎn)介

eMMC 是 embedded MultiMediaCard 的簡(jiǎn)稱(chēng)。MultiMediaCard,即MMC, 是一種閃存卡(Flash Memory Card)標(biāo)準(zhǔn),它定義了 MMC 的架構(gòu)以及訪(fǎng)問(wèn)Flash Memory 的接口和協(xié)議。而eMMC 則是對(duì) MMC 的一個(gè)拓展,以滿(mǎn)足更高標(biāo)準(zhǔn)的性能、成本、體積、穩(wěn)定、易用等的需求。

eMMC 的整體架構(gòu)如下圖片所示:

1d530490-9723-11ee-8b88-92fbcf53809c.png

eMMC 整體架構(gòu)

eMMC 內(nèi)部主要可以分為 Flash Memory、Flash Controller 以及Host Interface 三大部分。

1、Flash Memory

Flash Memory 是一種非易失性的存儲(chǔ)器,通常在嵌入式系統(tǒng)中用于存放系統(tǒng)、應(yīng)用和數(shù)據(jù)等,類(lèi)似于 PC 系統(tǒng)中的硬盤(pán)。目前,絕大部分手機(jī)和平板等移動(dòng)設(shè)備中所使用的 eMMC 內(nèi)部的 Flash Memory 都屬于 NAND Flash,關(guān)于 NAND Flash 的更多細(xì)節(jié)可以參考 Flash Memory 章節(jié)。eMMC 在內(nèi)部對(duì) Flash Memory 劃分了幾個(gè)主要區(qū)域,如下圖所示:

1d5bbd38-9723-11ee-8b88-92fbcf53809c.png

圖片:eMMC 內(nèi)部分區(qū)

1.1 BOOT Area Partition 1 & 2

此分區(qū)主要是為了支持從 eMMC 啟動(dòng)系統(tǒng)而設(shè)計(jì)的。該分區(qū)的數(shù)據(jù),在 eMMC 上電后,可以通過(guò)很簡(jiǎn)單的協(xié)議就可以讀取出來(lái)。同時(shí),大部分的 SOC 都可以通過(guò) GPIO 或者 FUSE 的配置,讓 ROM 代碼在上電后,將 eMMC BOOT 分區(qū)的內(nèi)容加載到 SOC 內(nèi)部的 SRAM 中執(zhí)行。

1.2 RPMB Partition

RPMB 是 Replay Protected Memory Block的簡(jiǎn)稱(chēng),它通過(guò) HMAC SHA-256 和 Write Counter 來(lái)保證保存在 RPMB 內(nèi)部的數(shù)據(jù)不被非法篡改。在實(shí)際應(yīng)用中,RPMB 分區(qū)通常用來(lái)保存安全相關(guān)的數(shù)據(jù),例如指紋數(shù)據(jù)、安全支付相關(guān)的密鑰等。

1.3 General Purpose Partition 1~4

此區(qū)域則主要用于存儲(chǔ)系統(tǒng)或者用戶(hù)數(shù)據(jù)。General Purpose Partition 在芯片出廠(chǎng)時(shí),通常是不存在的,需要主動(dòng)進(jìn)行配置后,才會(huì)存在。

1.4 User Data Area

此區(qū)域則主要用于存儲(chǔ)系統(tǒng)和用戶(hù)數(shù)據(jù)。User Data Area 通常會(huì)進(jìn)行再分區(qū),例如 Android 系統(tǒng)中,通常在此區(qū)域分出 boot、system、userdata 等分區(qū)。更多 eMMC 分區(qū)相關(guān)的細(xì)節(jié),請(qǐng)參考 eMMC 分區(qū)管理 章節(jié)。

2、Flash Controller

NAND Flash 直接接入 Host 時(shí),Host 端通常需要有 NAND Flash Translation Layer,即 NFTL 或者 NAND Flash 文件系統(tǒng)來(lái)做壞塊管理、ECC等的功能。eMMC 則在其內(nèi)部集成了 Flash Controller,用于完成擦寫(xiě)均衡、壞塊管理、ECC校驗(yàn)等功能。相比于直接將 NAND Flash 接入到 Host 端,eMMC 屏蔽了 NAND Flash 的物理特性,可以減少 Host 端軟件的復(fù)雜度,讓 Host 端專(zhuān)注于上層業(yè)務(wù),省去對(duì) NAND Flash 進(jìn)行特殊的處理。同時(shí),eMMC 通過(guò)使用 Cache、Memory Array 等技術(shù),在讀寫(xiě)性能上也比 NAND Flash 要好很多。

1d670ce2-9723-11ee-8b88-92fbcf53809c.png

圖片:NAND Flash 與 eMMC

3、Host Interface

eMMC 與 Host 之間的連接如下圖所示:

1d6c9338-9723-11ee-8b88-92fbcf53809c.png

圖片:eMMC Interface

各個(gè)信號(hào)的用途如下所示:

CLK用于同步的時(shí)鐘信號(hào)

Data Strobe此信號(hào)是從 Device 端輸出的時(shí)鐘信號(hào),頻率和 CLK 信號(hào)相同,用于同步從 Device 端輸出的數(shù)據(jù)。該信號(hào)在 eMMC 5.0 中引入。

CMD此信號(hào)用于發(fā)送 Host 的 command 和 Device 的 response。

DAT0-7用于傳輸數(shù)據(jù)的 8 bit 總線(xiàn)。Host 與 eMMC 之間的通信都是 Host 以一個(gè) Command 開(kāi)始發(fā)起的。針對(duì)不同的 Command,Device 會(huì)做出不同的響應(yīng)。詳細(xì)的通信協(xié)議相關(guān)內(nèi)容,請(qǐng)參考eMMC 總線(xiàn)協(xié)議 章節(jié)。

二、eMMC 分區(qū)管理

1、Partitions Overview

eMMC 標(biāo)準(zhǔn)中,將內(nèi)部的 Flash Memory 劃分為 4 類(lèi)區(qū)域,最多可以支持 8 個(gè)硬件分區(qū),分區(qū)圖見(jiàn)上節(jié)圖片eMMC 內(nèi)部分區(qū)。

1.1 概述

一般情況下,Boot Area Partitions 和 RPMB Partition 的容量大小通常都為 4MB,部分芯片廠(chǎng)家也會(huì)提供配置的機(jī)會(huì)。General Purpose Partitions (GPP) 則在出廠(chǎng)時(shí)默認(rèn)不被支持,即不存在這些分區(qū),需要用戶(hù)主動(dòng)使能,并配置其所要使用的 GPP 的容量大小,GPP 的數(shù)量可以為 1 - 4 個(gè),各個(gè) GPP 的容量大小可以不一樣。User Data Area (UDA) 的容量大小則為總?cè)萘看笮p去其他分區(qū)所占用的容量。更多各個(gè)分區(qū)的細(xì)節(jié)將在后續(xù)小節(jié)中描述。

1.2 分區(qū)編址

eMMC 的每一個(gè)硬件分區(qū)的存儲(chǔ)空間都是獨(dú)立編址的,即訪(fǎng)問(wèn)地址為 0 - partition size。具體的數(shù)據(jù)讀寫(xiě)操作實(shí)際訪(fǎng)問(wèn)哪一個(gè)硬件分區(qū),是由 eMMC 的 Extended CSD register 的 PARTITION_CONFIG Field 中 的 Bit[2:0]: PARTITION_ACCESS 決定的,用戶(hù)可以通過(guò)配置 PARTITION_ACCESS 來(lái)切換硬件分區(qū)的訪(fǎng)問(wèn)。也就是說(shuō),用戶(hù)在訪(fǎng)問(wèn)特定的分區(qū)前,需要先發(fā)送命令,配置 PARTITION_ACCESS,然后再發(fā)送相關(guān)的數(shù)據(jù)訪(fǎng)問(wèn)請(qǐng)求。更多數(shù)據(jù)讀寫(xiě)相關(guān)的細(xì)節(jié),請(qǐng)參考 eMMC 總線(xiàn)協(xié)議 章節(jié)。eMMC 的各個(gè)硬件分區(qū)有其自身的功能特性,多分區(qū)的設(shè)計(jì),為不同的應(yīng)用場(chǎng)景提供了便利。

2、Boot Area Partitions

Boot Area 包含兩個(gè) Boot Area Partitions,主要用于存儲(chǔ) Bootloader,支持 SOC 從 eMMC 啟動(dòng)系統(tǒng)。

2.1 容量大小

兩個(gè) Boot Area Partitions 的大小是完全一致的,由 Extended CSD register 的 BOOT_SIZE_MULT Field 決定,大小的計(jì)算公式如下:Size = 128Kbytes x BOOT_SIZE_MULT一般情況下,Boot Area Partition 的大小都為 4 MB,即 BOOT_SIZE_MULT 為 32,部分芯片廠(chǎng)家會(huì)提供改寫(xiě) BOOT_SIZE_MULT 的功能來(lái)改變 Boot Area Partition 的容量大小。BOOT_SIZE_MULT 最大可以為 255,即 Boot Area Partition 的最大容量大小可以為 255 x 128 KB = 32640 KB = 31.875 MB。

2.2 從 Boot Area 啟動(dòng)

eMMC 中定義了 Boot State,在 Power-up、HW reset 或者 SW reset 后,如果滿(mǎn)足一定的條件,eMMC 就會(huì)進(jìn)入該 State。進(jìn)入 Boot State 的條件如下:

Original Boot Operation

CMD 信號(hào)保持低電平不少于 74 個(gè)時(shí)鐘周期,會(huì)觸發(fā) Original Boot Operation,進(jìn)入 Boot State。

1d7aca70-9723-11ee-8b88-92fbcf53809c.png

Alternative Boot Operation在 74 個(gè)時(shí)鐘周期后,在 CMD 信號(hào)首次拉低或者 Host 發(fā)送 CMD1 之前,Host 發(fā)送參數(shù)為 0xFFFFFFFA 的 COM0時(shí),會(huì)觸發(fā) Alternative Boot Operation,進(jìn)入 Boot State。

1d957b22-9723-11ee-8b88-92fbcf53809c.png

在 Boot State 下,如果有配置 BOOT_ACK,eMMC 會(huì)先發(fā)送 “010” 的 ACK 包,接著 eMMC 會(huì)將最大為 128Kbytes x BOOT_SIZE_MULT 的 Boot Data 發(fā)送給 Host。傳輸過(guò)程中,Host 可以通過(guò)拉高 CMD 信號(hào) (Original Boot 中),或者發(fā)送 Reset 命令 (Alternative Boot 中) 來(lái)中斷 eMMC 的數(shù)據(jù)發(fā)送,完成 Boot Data 傳輸。Boot Data 根據(jù) Extended CSD register 的 PARTITION_CONFIG Field 的 Bit[5:3]:BOOT_PARTITION_ENABLE 的設(shè)定,可以從 Boot Area Partition 1、Boot Area Partition 2 或者 User Data Area 讀出。

Boot Data 存儲(chǔ)在 Boot Area 比在 User Data Area 中要更加的安全,可以減少意外修改導(dǎo)致系統(tǒng)無(wú)法啟動(dòng),同時(shí)無(wú)法更新系統(tǒng)的情況出現(xiàn)。(更多 Boot State 的細(xì)節(jié),請(qǐng)參考 eMMC 工作模式 的 Boot Mode 章節(jié))

2.3 寫(xiě)保護(hù)

通過(guò)設(shè)定 Extended CSD register 的 BOOT_WP Field,可以為兩個(gè) Boot Area Partition 獨(dú)立配置寫(xiě)保護(hù)功能,以防止數(shù)據(jù)被意外改寫(xiě)或者擦出。eMMC 中定義了兩種 Boot Area 的寫(xiě)保護(hù)模式:Power-on write protection

使能后,如果 eMMC 掉電,寫(xiě)保護(hù)功能失效,需要每次 Power on 后進(jìn)行配置。

Permanent write protection

使能后,即使掉電也不會(huì)失效,主動(dòng)進(jìn)行關(guān)閉才會(huì)失效。

3、RPMB Partition

RPMB(Replay Protected Memory Block)Partition 是 eMMC 中的一個(gè)具有安全特性的分區(qū)。eMMC 在寫(xiě)入數(shù)據(jù)到 RPMB 時(shí),會(huì)校驗(yàn)數(shù)據(jù)的合法性,只有指定的 Host 才能夠?qū)懭?,同時(shí)在讀數(shù)據(jù)時(shí),也提供了簽名機(jī)制,保證 Host 讀取到的數(shù)據(jù)是 RPMB 內(nèi)部數(shù)據(jù),而不是攻擊者偽造的數(shù)據(jù)。

RPMB 在實(shí)際應(yīng)用中,通常用于存儲(chǔ)一些有防止非法篡改需求的數(shù)據(jù),例如手機(jī)上指紋支付相關(guān)的公鑰、序列號(hào)等。RPMB 可以對(duì)寫(xiě)入操作進(jìn)行鑒權(quán),但是讀取并不需要鑒權(quán),任何人都可以進(jìn)行讀取的操作,因此存儲(chǔ)到 RPMB 的數(shù)據(jù)通常會(huì)進(jìn)行加密后再存儲(chǔ)。

3.1 容量大小

RPMB Partition 的大小是由 Extended CSD register 的 BOOT_SIZE_MULT Field 決定,大小的計(jì)算公式如下:Size = 128Kbytes x BOOT_SIZE_MULT一般情況下,Boot Area Partition (筆誤?RPMB Partition)的大小為 4 MB,即 RPMB_SIZE_MULT 為 32,部分芯片廠(chǎng)家會(huì)提供改寫(xiě) RPMB_SIZE_MULT 的功能來(lái)改變 RPMB Partition 的容量大小。RPMB_SIZE_MULT 最大可以為 128,即 Boot Area Partition(筆誤?RPMB Partition) 的最大容量大小可以為 128 x 128 KB = 16384 KB = 16 MB。

3.2 Replay Protect 原理

使用 eMMC 的產(chǎn)品,在產(chǎn)線(xiàn)生產(chǎn)時(shí),會(huì)為每一個(gè)產(chǎn)品生產(chǎn)一個(gè)唯一的 256 bits 的 Secure Key,燒寫(xiě)到 eMMC 的 OTP 區(qū)域(只能燒寫(xiě)一次的區(qū)域),同時(shí) Host 在安全區(qū)域中(例如:TEE)也會(huì)保留該 Secure Key。在 eMMC 內(nèi)部,還有一個(gè)RPMB Write Counter。RPMB 每進(jìn)行一次合法的寫(xiě)入操作時(shí),Write Counter 就會(huì)自動(dòng)加一 。通過(guò) Secure Key 和 Write Counter 的應(yīng)用,RMPB 可以實(shí)現(xiàn)數(shù)據(jù)讀取和寫(xiě)入的 Replay Protect。

3.3 RPMB 數(shù)據(jù)讀取

RPMB 數(shù)據(jù)讀取的流程如下:

1d9ca280-9723-11ee-8b88-92fbcf53809c.png

a.Host 向 eMMC 發(fā)起讀 RPMB 的請(qǐng)求,同時(shí)生成一個(gè) 16 bytes 的隨機(jī)數(shù),發(fā)送給 eMMC。

b.eMMC 將請(qǐng)求的數(shù)據(jù)從 RPMB 中讀出,并使用 Secure Key 通過(guò) HMAC SHA-256 算法,計(jì)算讀取到的數(shù)據(jù)和接收到的隨機(jī)數(shù)拼接到一起后的簽名。然后,eMMC 將讀取到的數(shù)據(jù)、接收到的隨機(jī)數(shù)、計(jì)算得到的簽名一并發(fā)送給 Host。

c.Host 接收到 RPMB 的數(shù)據(jù)、隨機(jī)數(shù)以及簽名后,首先比較隨機(jī)數(shù)是否與自己發(fā)送的一致,如果一致,再用同樣的 Secure Key 通過(guò) HMAC SHA-256 算法對(duì)數(shù)據(jù)和隨機(jī)數(shù)組合到一起進(jìn)行簽名,如果簽名與 eMMC 發(fā)送的簽名是一致的,那么就可以確定該數(shù)據(jù)是從 RPMB 中讀取到的正確數(shù)據(jù),而不是攻擊者偽造的數(shù)據(jù)。

通過(guò)上述的讀取流程,可以保證 Host 正確的讀取到 RPMB 的數(shù)據(jù)。

3.4 RPMB 數(shù)據(jù)寫(xiě)入

RPMB 數(shù)據(jù)寫(xiě)入的流程如下:

1da68e9e-9723-11ee-8b88-92fbcf53809c.png

a.Host 按照上面的讀數(shù)據(jù)流程,讀取 RPMB 的 Write Counter。

b.Host 將需要寫(xiě)入的數(shù)據(jù)和 Write Counter 拼接到一起并計(jì)算簽名,然后將數(shù)據(jù)、Write Counter 以及簽名一并發(fā)給 eMMC。

c.eMMC 接收到數(shù)據(jù)后,先對(duì)比 Write Counter 是否與當(dāng)前的值相同,如果相同那么再對(duì)數(shù)據(jù)和 Write Counter 的組合進(jìn)行簽名,然后和 Host 發(fā)送過(guò)來(lái)的簽名進(jìn)行比較,如果簽名相同則鑒權(quán)通過(guò),將數(shù)據(jù)寫(xiě)入到 RPMB 中。

通過(guò)上述的寫(xiě)入流程,可以保證 RPMB 不會(huì)被非法篡改。更多 RPMB 相關(guān)的細(xì)節(jié),可以參考 eMMC RPMB 章節(jié)。

4、General Purpose Partitions

eMMC 提供了 General Purpose Partitions (GPP),主要用于存儲(chǔ)系統(tǒng)和應(yīng)用數(shù)據(jù)。在很多使用 eMMC 的產(chǎn)品中,GPP 都沒(méi)有被啟用,因?yàn)樗诠δ苌吓c UDA 類(lèi)似,產(chǎn)品上直接使用 UDA 就可以滿(mǎn)足需求。

4.1 容量大小

eMMC 最多可以支持 4 個(gè) GPPs,每一個(gè) GPP 的大小可以單獨(dú)配置。用戶(hù)可以通過(guò)設(shè)定 Extended CSD register 的以下三個(gè) Field 來(lái)設(shè) GPPx (x=1~4) 的容量大小:

GP_SIZE_MULT_x_2

GP_SIZE_MULT_x_1

GP_SIZE_MULT_x_0GPPx 的容量計(jì)算公式如下:

Size=(GP_SIZE_MULT_x_2*2^16+GP_SIZE_MULT_x_1*2^8+GP_SIZE_MULT_x_0*2^0)*(Writeprotectgroupsize) Writeprotectgroupsize=512KB*HC_ERASE_GRP_SIZE*HC_WP_GRP_SIZE

注:

eMMC 中,擦除和寫(xiě)保護(hù)都是按塊進(jìn)行的,上述表達(dá)式中的 HC_WP_GRP_SIZE 為寫(xiě)保護(hù)的操作塊大小,HC_ERASE_GRP_SIZE 則為擦除操作的快的大小。

eMMC 芯片的 GPP 的配置通常是只能進(jìn)行一次 (OTP),一般會(huì)在產(chǎn)品量產(chǎn)階段,在產(chǎn)線(xiàn)上進(jìn)行。

分區(qū)屬性

eMMC 標(biāo)準(zhǔn)中,為 GPP 定義了兩類(lèi)屬性,Enhanced attribute 和 Extended attribute。每個(gè) GPP 可以設(shè)定兩類(lèi)屬性中的一種屬性,不可以同時(shí)設(shè)定多個(gè)屬性。

Enhanced attribute

Default, 未設(shè)定 Enhanced attribute。Enhanced storage media, 設(shè)定 GPP 為 Enhanced storage media。在 eMMC 標(biāo)準(zhǔn)中,實(shí)際上并未定義設(shè)定 Enhanced attribute 后對(duì) eMMC 的影響。Enhanced attribute 的具體作用,由芯片制造商定義。在實(shí)際的產(chǎn)品中,設(shè)定 Enhanced storage media 后,一般是把該分區(qū)的存儲(chǔ)介質(zhì)從 MLC 改變?yōu)?SLC,提高該分區(qū)的讀寫(xiě)性能、壽命以及穩(wěn)定性。由于 1 個(gè)存儲(chǔ)單元下,MLC 的容量是 SLC 的兩倍,所以在總的存儲(chǔ)單元數(shù)量一定的情況下,如果把原本為 MLC 的分區(qū)改變?yōu)?SLC,會(huì)減少 eMMC 的容量,就是說(shuō),此時(shí) eMMC 的實(shí)際總?cè)萘勘葮?biāo)稱(chēng)的總?cè)萘繒?huì)小一點(diǎn)。(MLC 和 SLC 的細(xì)節(jié)可以參考 Flash Memory 章節(jié)內(nèi)容)

1db0e862-9723-11ee-8b88-92fbcf53809c.png

Extended attribute

Default, 未設(shè)定 Extended attribute。

System code, 設(shè)定 GPP 為 System code 屬性,該屬性主要用在存放操作系統(tǒng)類(lèi)的、很少進(jìn)行擦寫(xiě)更新的分區(qū)。

Non-Persistent,設(shè)定 GPP 為 Non-Persistent 屬性,該屬性主要用于存儲(chǔ)臨時(shí)數(shù)據(jù)的分區(qū),例如 tmp 目錄所在分區(qū)、 swap 分區(qū)等。

在 eMMC 標(biāo)準(zhǔn)中,同樣也沒(méi)有定義設(shè)定 Extended attribute 后對(duì) eMMC 的影響。Extended attribute 的具體作用,由芯片制造商定義。Extended attribute 主要是跟分區(qū)的應(yīng)用場(chǎng)景有關(guān),廠(chǎng)商可以為不用應(yīng)用場(chǎng)景的分區(qū)做不同的優(yōu)化處理。

5、User Data Area

User Data Area (UDA) 通常是 eMMC 中最大的一個(gè)分區(qū),是實(shí)際產(chǎn)品中,最主要的存儲(chǔ)區(qū)域。

5.1 容量大小

UDA 的容量大小不需要設(shè)置,在配置完其他分區(qū)大小后,再扣除設(shè)置 Enhanced attribute 所損耗的容量,剩下的容量就是 UDA 的容量。

5.2 軟件分區(qū)

為了更合理的管理數(shù)據(jù),滿(mǎn)足不同的應(yīng)用需求,UDA 在實(shí)際產(chǎn)品中,會(huì)進(jìn)行軟件再分區(qū)。目前主流的軟件分區(qū)技術(shù)有 MBR(Master Boot Record)和 GPT(GUID Partition Table)兩種。這兩種分區(qū)技術(shù)的基本原理類(lèi)似,如下圖所示:

1db8b696-9723-11ee-8b88-92fbcf53809c.png

軟件分區(qū)技術(shù)一般是將存儲(chǔ)介質(zhì)劃分為多個(gè)區(qū)域,既 SW Partitions,然后通過(guò)一個(gè) Partition Table 來(lái)維護(hù)這些 SW Partitions。在 Partition Table 中,每一個(gè)條目都保存著一個(gè) SW Partition 的起始地址、大小等的屬性信息。軟件系統(tǒng)在啟動(dòng)后,會(huì)去掃描 Partition Table,獲取存儲(chǔ)介質(zhì)上的各個(gè) SW Partitions 信息,然后根據(jù)這些信息,將各個(gè) Partitions 加載到系統(tǒng)中,進(jìn)行數(shù)據(jù)存取。

MBR 和 GPT 此處不展開(kāi)詳細(xì)介紹,更多的細(xì)節(jié)可以參考 wikipedia 上 MBR 和 GPT 相關(guān)介紹。

5.3 區(qū)域?qū)傩?/p>

eMMC 標(biāo)準(zhǔn)中,支持為 UDA 中一個(gè)特定大小的區(qū)域設(shè)定 Enhanced attribute。與 GPP 中的 Enhanced attribute 相同,eMMC 標(biāo)準(zhǔn)也沒(méi)有定義該區(qū)域設(shè)定 Enhanced attribute 后對(duì) eMMC 的影響。Enhanced attribute 的具體作用,由芯片制造商定義。Enhanced attribute

Default, 未設(shè)定 Enhanced attribute。

Enhanced storage media, 設(shè)定該區(qū)域?yàn)?Enhanced storage media。在實(shí)際的產(chǎn)品中,UDA 區(qū)域設(shè)定為 Enhanced storage media 后,一般是把該區(qū)域的存儲(chǔ)介質(zhì)從 MLC 改變?yōu)?SLC。通常,產(chǎn)品中可以將某一個(gè) SW Partition 設(shè)定為 Enhanced storage media,以獲得更好的性能和健壯性。

6、eMMC 分區(qū)應(yīng)用實(shí)例

在一個(gè) Android 手機(jī)系統(tǒng)中,各個(gè)分區(qū)的呈現(xiàn)形式如下:

mmcblk0 為 eMMC 的塊設(shè)備;

mmcblk0boot0 和 mmcblk0boot1 對(duì)應(yīng)兩個(gè) Boot Area Partitions;

mmcblk0rpmb 則為 RPMB Partition,

mmcblk0px 為 UDA 劃分出來(lái)的 SW Partitions;

如果存在 GPP,名稱(chēng)則為 mmcblk0gp1、mmcblk0gp2、mmcblk0gp3、mmcblk0gp4;

root@xxx:/#ls/dev/block/mmcblk0* /dev/block/mmcblk0 /dev/block/mmcblk0boot0 /dev/block/mmcblk0boot1 /dev/block/mmcblk0rpmb /dev/block/mmcblk0p1 /dev/block/mmcblk0p2 /dev/block/mmcblk0p3 /dev/block/mmcblk0p4 /dev/block/mmcblk0p5 /dev/block/mmcblk0p6 /dev/block/mmcblk0p7 /dev/block/mmcblk0p8 /dev/block/mmcblk0p9 /dev/block/mmcblk0p10 /dev/block/mmcblk0p11 /dev/block/mmcblk0p12 /dev/block/mmcblk0p13 /dev/block/mmcblk0p14 /dev/block/mmcblk0p15 /dev/block/mmcblk0p16 /dev/block/mmcblk0p17 /dev/block/mmcblk0p18 /dev/block/mmcblk0p19 /dev/block/mmcblk0p20

每一個(gè)分區(qū)會(huì)根據(jù)實(shí)際的功能來(lái)設(shè)定名稱(chēng)。

root@xxx:/#ls-l/dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/ lrwxrwxrwxrootroot2015-01-0304:03boot->/dev/block/mmcblk0p22 lrwxrwxrwxrootroot2015-01-0304:03cache->/dev/block/mmcblk0p30 lrwxrwxrwxrootroot2015-01-0304:03custom->/dev/block/mmcblk0p3 lrwxrwxrwxrootroot2015-01-0304:03devinfo->/dev/block/mmcblk0p28 lrwxrwxrwxrootroot2015-01-0304:03expdb->/dev/block/mmcblk0p4 lrwxrwxrwxrootroot2015-01-0304:03flashinfo->/dev/block/mmcblk0p32 lrwxrwxrwxrootroot2015-01-0304:03frp->/dev/block/mmcblk0p5 lrwxrwxrwxrootroot2015-01-0304:03keystore->/dev/block/mmcblk0p27 lrwxrwxrwxrootroot2015-01-0304:03lk->/dev/block/mmcblk0p20 lrwxrwxrwxrootroot2015-01-0304:03lk2->/dev/block/mmcblk0p21 lrwxrwxrwxrootroot2015-01-0304:03logo->/dev/block/mmcblk0p23 lrwxrwxrwxrootroot2015-01-0304:03md1arm7->/dev/block/mmcblk0p17 lrwxrwxrwxrootroot2015-01-0304:03md1dsp->/dev/block/mmcblk0p16 lrwxrwxrwxrootroot2015-01-0304:03md1img->/dev/block/mmcblk0p15 lrwxrwxrwxrootroot2015-01-0304:03md3img->/dev/block/mmcblk0p18 lrwxrwxrwxrootroot2015-01-0304:03metadata->/dev/block/mmcblk0p8 lrwxrwxrwxrootroot2015-01-0304:03nvdata->/dev/block/mmcblk0p7 lrwxrwxrwxrootroot2015-01-0304:03nvram->/dev/block/mmcblk0p19 lrwxrwxrwxrootroot2015-01-0304:03oemkeystore->/dev/block/mmcblk0p12 lrwxrwxrwxrootroot2015-01-0304:03para->/dev/block/mmcblk0p2 lrwxrwxrwxrootroot2015-01-0304:03ppl->/dev/block/mmcblk0p6 lrwxrwxrwxrootroot2015-01-0304:03proinfo->/dev/block/mmcblk0p13 lrwxrwxrwxrootroot2015-01-0304:03protect1->/dev/block/mmcblk0p9 lrwxrwxrwxrootroot2015-01-0304:03protect2->/dev/block/mmcblk0p10 lrwxrwxrwxrootroot2015-01-0304:03recovery->/dev/block/mmcblk0p1

三、eMMC 總線(xiàn)協(xié)議

1、 eMMC 總線(xiàn)接口

eMMC 總線(xiàn)接口定義如下圖所示:

1d6c9338-9723-11ee-8b88-92fbcf53809c.png

各個(gè)信號(hào)的描述如下:

CLKCLK 信號(hào)用于從 Host 端輸出時(shí)鐘信號(hào),進(jìn)行數(shù)據(jù)傳輸?shù)耐胶驮O(shè)備運(yùn)作的驅(qū)動(dòng)。

在一個(gè)時(shí)鐘周期內(nèi),CMD 和 DAT0-7 信號(hào)上都可以支持傳輸 1 個(gè)比特,即SDR (Single Data Rate) 模式。此外,DAT0-7 信號(hào)還支持配置為DDR (Double Data Rate) 模式,在一個(gè)時(shí)鐘周期內(nèi),可以傳輸 2 個(gè)比特。

Host 可以在通訊過(guò)程中動(dòng)態(tài)調(diào)整時(shí)鐘信號(hào)的頻率(注,頻率范圍需要滿(mǎn)足 Spec 的定義)。通過(guò)調(diào)整時(shí)鐘頻率,可以實(shí)現(xiàn)省電或者數(shù)據(jù)流控(避免 Over-run 或者 Under-run)功能。在一些場(chǎng)景中,Host 端還可以關(guān)閉時(shí)鐘,例如 eMMC 處于 Busy 狀態(tài)時(shí),或者接收完數(shù)據(jù),進(jìn)入 Programming State 時(shí)。

CMDCMD 信號(hào)主要用于 Host 向 eMMC 發(fā)送 Command 和 eMMC 向 Host 發(fā)送對(duì)于的 Response。Command 和 Response 的細(xì)節(jié)會(huì)在后續(xù)章節(jié)中介紹。

DAT0-7DAT0-7 信號(hào)主要用于 Host 和 eMMC 之間的數(shù)據(jù)傳輸。在 eMMC 上電或者軟復(fù)位后,只有 DAT0 可以進(jìn)行數(shù)據(jù)傳輸,完成初始化后,可配置 DAT0-3 或者 DAT0-7 進(jìn)行數(shù)據(jù)傳輸,即數(shù)據(jù)總線(xiàn)可以配置為 4 bits 或者 8 bits 模式。

Data StrobeData Strobe 時(shí)鐘信號(hào)由 eMMC 發(fā)送給 Host,頻率與 CLK 信號(hào)相同,用于 Host 端進(jìn)行數(shù)據(jù)接收的同步。Data Strobe 信號(hào)只能在HS400 模式下配置啟用,啟用后可以提高數(shù)據(jù)傳輸?shù)姆€(wěn)定性,省去總線(xiàn) tuning 過(guò)程。

更詳細(xì)的工作原理請(qǐng)參考 eMMC 工作模式 章節(jié)。

2、 eMMC 總線(xiàn)模型

eMMC 總線(xiàn)中一個(gè) Host可以有多個(gè) eMMC Devices??偩€(xiàn)上的所有通訊都由 Host 端以一個(gè) Command 開(kāi)發(fā)發(fā)起,Host 一次只能與一個(gè) eMMC Device 通訊。系統(tǒng)在上電啟動(dòng)后,Host 會(huì)為所有 eMMC Device 逐個(gè)分配地址(RCA,Relative device Address)。當(dāng) Host 需要和某一個(gè) eMMC Device 通訊時(shí),會(huì)先根據(jù) RCA 選中該 eMMC Device,只有被選中的 eMMC Device 才會(huì)響應(yīng) Host 的 Command。

2.1 速率模式

隨著 eMMC 協(xié)議的版本迭代,eMMC 總線(xiàn)的速率越來(lái)越高。為了兼容舊版本的 eMMC Device,所有 Devices 在上電啟動(dòng)或者 Reset 后,都會(huì)先進(jìn)入兼容速率模式(Backward Compatible Mode)。在完成 eMMC Devices 的初始化后,Host 可以通過(guò)特定的流程,讓 Device 進(jìn)入其他高速率模式,目前支持以下的幾種速率模式。

1dca9d66-9723-11ee-8b88-92fbcf53809c.png

注:

Extended CSD byte[185] HS_TIMING 寄存器可以配置總線(xiàn)速率模式

Extended CSD byte[183] BUS_WIDTH 寄存器用于配置總線(xiàn)寬度和 Data Strobe

2.2 通信模型

Host 與 eMMC Device 之間的通信都是由 Host 以一個(gè) Command 開(kāi)始發(fā)起的,eMMC Device 在完成 Command 所指定的任務(wù)后,則返回一個(gè) Response。

Read Data

1dd667e0-9723-11ee-8b88-92fbcf53809c.png

Host 從 eMMC Device 讀取數(shù)據(jù)的流程如上圖所示。如果 Host 發(fā)送的是 Single Block Read 的 Command,那么 eMMC Device 只會(huì)發(fā)送一個(gè) Block 的數(shù)據(jù)。如果 Host 在發(fā)送 Multiple Block Read 的 Command 前,先發(fā)送一個(gè)設(shè)定需要讀取的 Block Count 的 Command。eMMC Device 在完成指定 Block Count 的數(shù)據(jù)發(fā)送后,就自動(dòng)結(jié)束數(shù)據(jù)傳輸,不需要 Host 主動(dòng)發(fā)送 Stop Command。如果 Host 沒(méi)有發(fā)送設(shè)定需要讀取的 Block Count 的 Command,發(fā)送 Multiple Block Read 的 Command 后,eMMC Device 會(huì)持續(xù)發(fā)送數(shù)據(jù),直到 Host 發(fā)送 Stop Command 停止數(shù)據(jù)傳輸。

注:

從 eMMC Device 讀數(shù)據(jù)都是按 Block 讀取的。Block 大小可以由 Host 設(shè)定,或者固定為 512 Bytes,不同的速率模式下有所不同。

Write Data

1de22648-9723-11ee-8b88-92fbcf53809c.png

Host 向 eMMC Device 寫(xiě)入數(shù)據(jù)的流程如上圖所示。如果 Host 發(fā)送的是 Single Block Write Command,那么 eMMC Device 只會(huì)將后續(xù)第一個(gè) Block 的數(shù)據(jù)寫(xiě)入的存儲(chǔ)器中。如果 Host 在發(fā)送 Multiple Block Write 的 Command 前,先發(fā)送一個(gè)設(shè)定需要讀取的 Block Count 的 Command。eMMC Device 在接收到指定 Block Count 的數(shù)據(jù)后,就自動(dòng)結(jié)束數(shù)據(jù)接收,不需要 Host 主動(dòng)發(fā)送 Stop Command。如果 Host 沒(méi)有發(fā)送設(shè)定需要讀取的 Block Count 的 Command,發(fā)送 Multiple Block Write 的 Command 后,eMMC Device 會(huì)持續(xù)接收數(shù)據(jù),直到 Host 發(fā)送 Stop Command 停止數(shù)據(jù)傳輸。eMMC Device 在接收到一個(gè) Block 的數(shù)據(jù)后,會(huì)進(jìn)行 CRC 校驗(yàn),然后將校驗(yàn)結(jié)果通過(guò) CRC Token 發(fā)送給 Host。發(fā)送完 CRC Token 后,如果 CRC 校驗(yàn)成功,eMMC Device 會(huì)將數(shù)據(jù)寫(xiě)入到內(nèi)部存儲(chǔ)器時(shí),此時(shí) DAT0 信號(hào)會(huì)拉低,作為 Busy 信號(hào)。Host 會(huì)持續(xù)檢測(cè) DAT0 信號(hào),直到為高電平時(shí),才會(huì)接著發(fā)送下一個(gè) Block 的數(shù)據(jù)。如果 CRC 校驗(yàn)失敗,那么 eMMC Device 不會(huì)進(jìn)行數(shù)據(jù)寫(xiě)入,此次傳輸后續(xù)的數(shù)據(jù)都會(huì)被忽略。

注:

向 eMMC Device 寫(xiě)數(shù)據(jù)都是按 Block 寫(xiě)入的。Block 大小可以由 Host 設(shè)定,或者固定為 512 Bytes,不同的速率模式下有所不同。

No Data在 Host 與 eMMC Device 的通信中,有部分交互是不需要進(jìn)行數(shù)據(jù)傳輸?shù)?,還有部分交互甚至不需要 eMMC Device 的回復(fù) Response。

1df3f1b6-9723-11ee-8b88-92fbcf53809c.png

Command

如上圖所示,eMMC Command 由 48 Bits 組成,各個(gè) Bits 的解析如下所示:

1dfc72aa-9723-11ee-8b88-92fbcf53809c.png

Start Bit 固定為 "0",在沒(méi)有數(shù)據(jù)傳輸?shù)那闆r下,CMD 信號(hào)保持高電平,當(dāng) Host 將 Start Bit 發(fā)送到總線(xiàn)上時(shí),eMMC Device 可以很方便檢測(cè)到該信號(hào),并開(kāi)始接收 Command。

Transmission Bit 固定為 "1",指示了該數(shù)據(jù)包的傳輸方向?yàn)?Host 發(fā)送到 eMMC Device。

Command Index 和 Argument 為 Command 的具體內(nèi)容,不同的 Command 有不同的 Index,不同的 Command 也有各自的 Argument。更多的細(xì)節(jié),請(qǐng)參考eMMC Commands 章節(jié)。

CRC7 是包含 Start Bit、Transmission Bit、 Command Index 和 Argument 內(nèi)容的 CRC 校驗(yàn)值。End Bit 為結(jié)束標(biāo)志位,固定為"1"。

注:

CRC 校驗(yàn)簡(jiǎn)單來(lái)說(shuō),是發(fā)送方將需要傳輸?shù)臄?shù)據(jù)“除于”(模2除)一個(gè)約定的數(shù),并將得到的余數(shù)附在數(shù)據(jù)上一并發(fā)送出去。 接收方收到數(shù)據(jù)后,再做同樣的“除法”,然后校驗(yàn)得到余數(shù)是否與接收的余數(shù)相同。如果不相同,那么意味著數(shù)據(jù)在傳輸過(guò) 程中發(fā)生了改變。更多的細(xì)節(jié)不在本文展開(kāi)描述,感興趣的讀者可以參考 CRC wiki 中的介紹。

Response

1e11f30a-9723-11ee-8b88-92fbcf53809c.png

eMMC Response 有兩種長(zhǎng)度的數(shù)據(jù)包,分別為 48 Bits 和 136 Bits。Start Bit 與 Command 一樣,固定為 "0",在沒(méi)有數(shù)據(jù)傳輸?shù)那闆r下,CMD 信號(hào)保持高電平,當(dāng) eMMC Device 將 Start Bit 發(fā)送到總線(xiàn)上時(shí),Host 可以很方便檢測(cè)到該信號(hào),并開(kāi)始接收 Response。

Transmission Bit 固定為 "0",指示了該數(shù)據(jù)包的傳輸方向?yàn)?eMMC Device 發(fā)送到 Host。

Content 為 Response 的具體內(nèi)容,不同的 Command 會(huì)有不同的 Content。更多的細(xì)節(jié),請(qǐng)參考eMMC Responses 章節(jié)。CRC7 是包含 Start Bit、Transmission Bit 和 Content 內(nèi)容的 CRC 校驗(yàn)值。End Bit 為結(jié)束標(biāo)志位,固定為"1"。

Data BlockData Block 由 Start Bit、Data、CRC16 和 End Bit 組成。以下是不同總線(xiàn)寬度和 Data Rate 下,Data Block 詳細(xì)格式。1 Bit Bus SDR

1e256c8c-9723-11ee-8b88-92fbcf53809c.png

CRC 為 Data 的 16 bit CRC 校驗(yàn)值,不包含 Start Bit。

4 Bits Bus SDR

1e2c17da-9723-11ee-8b88-92fbcf53809c.png

各個(gè) Data Line 上的 CRC 為對(duì)應(yīng) Data Line 的 Data 的 16 bit CRC 校驗(yàn)值。

8 Bits Bus SDR

1e327260-9723-11ee-8b88-92fbcf53809c.png

各個(gè) Data Line 上的 CRC 為對(duì)應(yīng) Data Line 的 Data 的16 bit CRC 校驗(yàn)值。

4 Bits Bus DDR

1e3b56aa-9723-11ee-8b88-92fbcf53809c.png

8 Bits Bus DDR

1e4278d6-9723-11ee-8b88-92fbcf53809c.png

在 DDR 模式下,Data Line 在時(shí)鐘的上升沿和下降沿都會(huì)傳輸數(shù)據(jù),其中上升沿傳輸數(shù)據(jù)的奇數(shù)字節(jié) (Byte 1,3,5 ...),下降沿則傳輸數(shù)據(jù)的偶數(shù)字節(jié)(Byte 2,4,6 ...)。此外,在 DDR 模式下,1 個(gè) Data Line 上有兩個(gè)相互交織的 CRC16,上升沿的 CRC 比特組成 odd CRC16,下降沿的 CRC 比特組成 even CRC16。odd CRC16 用于校驗(yàn)該 Data Line 上所有上升沿比特組成的數(shù)據(jù),even CRC16 則用于校驗(yàn)該 Data Line 上所有下降沿比特組成的數(shù)據(jù)。

注:

DDR 模式下使用兩個(gè) CRC16 作為校驗(yàn),可能是為了更可靠的校驗(yàn),選用 CRC16 而非 CRC32 則可能是出于兼容性設(shè)計(jì)的考慮。

CRC Status Token在寫(xiě)數(shù)據(jù)傳輸中,eMMC Device 接收到 Host 發(fā)送的一個(gè) Data Block 后,會(huì)進(jìn)行 CRC 校驗(yàn),如果校驗(yàn)成功,eMMC 會(huì)在對(duì)應(yīng)的 Data Line 上向 Host 發(fā)回一個(gè) Positive CRC status token (010),如果校驗(yàn)失敗,則會(huì)在對(duì)應(yīng)的 Data Line 上發(fā)送一個(gè) Negative CRC status token (101)。

讀數(shù)據(jù)時(shí),Host 接收到 eMMC Device 發(fā)送的 Data Block 后,也會(huì)進(jìn)行 CRC 校驗(yàn),但是不管校驗(yàn)成功或者失敗,都不會(huì)向 eMMC Device 發(fā)送 CRC Status Token。

Positive CRC status token

1e47c368-9723-11ee-8b88-92fbcf53809c.png

Negative CRC status token

1e4e4d28-9723-11ee-8b88-92fbcf53809c.png

3、eMMC 總線(xiàn)測(cè)試過(guò)程

當(dāng) eMMC Device 處于 SDR 模式時(shí),Host 可以發(fā)送 CMD19 命令,觸發(fā)總線(xiàn)測(cè)試過(guò)程(Bus testing procedure),測(cè)試總線(xiàn)硬件上的連通性。如果 eMMC Device 支持總線(xiàn)測(cè)試,那么 eMMC Device 在接收到 CMD19 后,會(huì)發(fā)回對(duì)應(yīng)的 Response,接著 eMMC Device 會(huì)發(fā)送一組固定的測(cè)試數(shù)據(jù)給 Host。Host 接收到數(shù)據(jù)后,檢查數(shù)據(jù)正確與否,即可得知總線(xiàn)是否正確連通。如果 eMMC Device 不支持總線(xiàn)測(cè)試,那么接收到 CMD19 時(shí),不會(huì)發(fā)回 Response??偩€(xiàn)測(cè)試不支持在 DDR 模式下進(jìn)行。

測(cè)試數(shù)據(jù)如下所示:

1e54b6ae-9723-11ee-8b88-92fbcf53809c.png

總線(xiàn)寬度為 1 時(shí),只發(fā)送 DAT0 上的數(shù)據(jù),總線(xiàn)寬度為 4 時(shí),則只發(fā)送 DAT0-3 上的數(shù)據(jù)

4、eMMC 總線(xiàn) Sampling Tuning

由于芯片制造工藝、PCB 走線(xiàn)、電壓、溫度等因素的影響,數(shù)據(jù)信號(hào)從 eMMC Device 到達(dá) Host 端的時(shí)間是存在差異的,Host 接收數(shù)據(jù)時(shí)采樣的時(shí)間點(diǎn)也需要相應(yīng)的進(jìn)行調(diào)整。而Host 端最佳采樣時(shí)間點(diǎn),則是通過(guò) Sampling Tuning 流程得到。不同 eMMC Device 最佳的采樣點(diǎn)可能不同,同一 eMMC Device 在不同的環(huán)境下運(yùn)作時(shí)的最佳采樣點(diǎn)也可能不同。在 eMMC 標(biāo)準(zhǔn)中,定義了在 HS200 模式下可以進(jìn)行 Sampling Tuning。

4.1 Sampling Tuning 流程

Sampling Tuning 是用于計(jì)算 Host 最佳采樣時(shí)間點(diǎn)的流程,大致的流程如下:

Host 將采樣時(shí)間點(diǎn)重置為默認(rèn)值

Host 向 eMMC Device 發(fā)送 Send Tuning Block 命令

eMMC Device 向 Host 發(fā)送固定的 Tuning Block 數(shù)據(jù)

Host 接收到 Tuning Block 并進(jìn)行校驗(yàn)

Host 修改采樣時(shí)點(diǎn),重新從第 2 步開(kāi)始執(zhí)行,直到 Host 獲取到一個(gè)有效采樣時(shí)間點(diǎn)區(qū)間

Host 取有效采樣時(shí)間點(diǎn)區(qū)間的中間值作為采樣時(shí)間點(diǎn),并推出 Tuning 流程上述流程僅僅是一個(gè)示例。Tuning 流程執(zhí)行的時(shí)機(jī)、頻率和具體的步驟是由 Host 端的 eMMC Controller 具體實(shí)現(xiàn)而定的。

4.2 Tuning Block 數(shù)據(jù)

Tuning Block 是專(zhuān)門(mén)為了 Tuning 而設(shè)計(jì)的一組特殊數(shù)據(jù)。相對(duì)于普通的數(shù)據(jù),這組特殊數(shù)據(jù)在傳輸過(guò)程中,會(huì)更高概率的出現(xiàn) high SSO noise、deterministic jitter、ISI、timing errors 等問(wèn)題。這組數(shù)據(jù)的具體內(nèi)容如下所示:

1e5ec3ba-9723-11ee-8b88-92fbcf53809c.png

在這里插入圖片描述

總線(xiàn)寬度為 1 時(shí),只發(fā)送 DAT0 上的數(shù)據(jù),總線(xiàn)寬度為 4 時(shí),則只發(fā)送 DAT0-3 上的數(shù)據(jù)

四、eMMC 工作模式

1、Overview

eMMC Device 在 Power On、HW Reset 或者 SW Reset 時(shí),Host 可以觸發(fā) eMMC Boot,讓 eMMC 進(jìn)入Boot Mode。在此模式下,eMMC Device 會(huì)將 Boot Data 發(fā)送給 Host,這部分內(nèi)容通常為系統(tǒng)的啟動(dòng)代碼,如 BootLoader。

如果 Host 沒(méi)有觸發(fā) Boot 流程或者 Boot 流程完成后,eMMC Device 會(huì)進(jìn)入Device Identification Mode。在此模式下,eMMC Device 將進(jìn)行初始化,Host 會(huì)為 eMMC Device 設(shè)定工作電壓、協(xié)商尋址模式以及分配 RCA 設(shè)備地址。

Device Identification Mode 結(jié)束后,就會(huì)進(jìn)入 Data Transfer Mode。在此模式下,Host 可以發(fā)起數(shù)據(jù)讀寫(xiě)流程。

進(jìn)入 Data Transfer Mode 后,Host 可以發(fā)起命令,讓 eMMC Device 進(jìn)入Interrupt Mode。在此模式下,eMMC Device 會(huì)等待內(nèi)部的中斷事件,例如,寫(xiě)數(shù)據(jù)完成等。eMMC Device 在收到內(nèi)部中斷事件時(shí),會(huì)向 Host 發(fā)送 Response,然后切換到 Data Transfer Mode,等待 Host 后續(xù)的數(shù)據(jù)讀寫(xiě)命令。

2、 Boot Operation Mode

2.1 Boot From eMMC Device

在 Power On、HW Reset 或者 SW Reset 后,如果 eMMC Device 有使能 Boot Mode(即,寄存器位 BOOT_PARTITION_ENABLE (EXT_CSD byte [179]) 指定了啟動(dòng)分區(qū)),那么 Host 有兩種方式可以讓 eMMC Device 進(jìn)入 Boot Mode,分別定義為 Original Boot 和 Alternative Boot,如下:

Original Boot:拉低 CMD 信號(hào)并保持不少于 74 個(gè)時(shí)鐘周期

Alternative Boot:保持 CMD 信號(hào)為高電平,74 個(gè)時(shí)鐘周期后,發(fā)送參數(shù)為 0xFFFFFFFA 的 CMD0 命令進(jìn)入 Boot Mode 后,eMMC Device 會(huì)根據(jù)寄存器位 BOOT_PARTITION_ENABLE 的設(shè)定,從兩個(gè) Boot partitions 和 UDA 中選擇一個(gè)分區(qū)讀取大小為 128KB × BOOT_SIZE_MULT (EXT_CSD byte [226]) 的 Boot Data 通過(guò) Data Lines 發(fā)送給 Host。

在 Boot Data 數(shù)據(jù)傳輸過(guò)程中,Host 可以打斷數(shù)據(jù)傳輸,提前結(jié)束 Boot Mode,方法如下:

Original Boot:傳輸過(guò)程中,拉高 CMD 信號(hào)

Alternative Boot:傳輸過(guò)程中,發(fā)送參數(shù)為 0xF0F0F0F0 的 CMD0 命令Host 發(fā)送參數(shù)為 0xF0F0F0F0 的 CMD0 命令,可以讓 eMMC Device 進(jìn)行 SW Reset。Host 拉高 RST_n 信號(hào)可以觸發(fā) eMMC Device 進(jìn)行 HW Reset。

2.2 Boot Acknowledge

如果寄存器位 BOOT_ACK (EXT_CSD byte [179]) 被設(shè)定為 1, eMMC Device 會(huì)在 Host 觸發(fā) Boot Mode 的 50 ms 內(nèi),在 DAT0 上發(fā)送一個(gè) "010" Boot ACK 給 Host。

2.3 Boot Bus 配置

EXT_CSD byte [177] BOOT_BUS_CONDITIONS 寄存器用于配置在 Boot Mode 時(shí),數(shù)據(jù)傳輸?shù)目偩€(xiàn)狀態(tài)。通過(guò) BOOT_BUS_CONDITIONS 寄存器配置,在 Boot Mode 時(shí),總線(xiàn)可以支持以下幾種模式:

1e79bd64-9723-11ee-8b88-92fbcf53809c.png

BOOT_BUS_CONDITIONS 寄存器還可以配置退出 Boot Mode 后,是復(fù)位還是保留當(dāng)前總線(xiàn)配置。如果配置為復(fù)位,那么退出 Boot Mode 后,總線(xiàn)會(huì)被復(fù)位為 Backward Compatible SDR x1 模式,如果配置為保留,那么退出 Boot Mode 后,總線(xiàn)會(huì)保留 Boot Mode 時(shí)的總線(xiàn)模式。

1. BOOT_BUS_CONDITIONS 寄存器為 nonvolatile 屬性,配置內(nèi)容掉電不會(huì)丟失。 2. 如果 eMMC Device 沒(méi)有經(jīng)過(guò) Boot Mode,BOOT_BUS_CONDITIONS 寄存器不會(huì)改變總線(xiàn)模式。 3. 退出 Boot Mode 后,還可以通過(guò) HS_TIMING 和 BUS_WIDTH 寄存器配置總線(xiàn)模式。

2.4 Boot Data 更新

eMMC Device 在從廠(chǎng)商出貨時(shí),沒(méi)有存儲(chǔ)內(nèi)容,也沒(méi)有使能 Boot Mode。使用 eMMC Devcie 產(chǎn)品需要先通過(guò)其他的方式(例如,通過(guò) USB、UART 等)啟動(dòng)一個(gè)下載系統(tǒng),將 Boot Data 以及其他的系統(tǒng)數(shù)據(jù)寫(xiě)入到 eMMC 中,同時(shí)使能 Boot Mode 并設(shè)定 Boot Bus 模式。而后,產(chǎn)品才能從 eMMC Device 上啟動(dòng)軟件系統(tǒng)。Boot Data 的更新與其他數(shù)據(jù)的寫(xiě)入類(lèi)似,更多的數(shù)據(jù)寫(xiě)入細(xì)節(jié),請(qǐng)參考 Data Transfer Mode 小節(jié)。

3、Device Identification Mode

如果 Host 沒(méi)有觸發(fā) Boot 流程或者 Boot 流程完成后,eMMC Device 會(huì)進(jìn)入 Device Identification Mode。eMMC Device 在退出 Boot Mode 后或者沒(méi)使能 Boot Mode 時(shí) Power On、HW Reset 或者 SW Reset 后,會(huì)進(jìn)入 Device Identification Mode 的 Idle State。在 Idle State 下,eMMC Device 會(huì)進(jìn)行內(nèi)部初始化,Host 需要持續(xù)發(fā)送 CMD1命令,查詢(xún) eMMC Device 是否已經(jīng)完成初始化,同時(shí)進(jìn)行工作電壓和尋址模式協(xié)商。Host 發(fā)送的 CMD1 命令的參數(shù)中,包含了 Host 所支持的工作電壓和尋址模式信息,eMMC Device 在接收到這些信息后,會(huì)進(jìn)行匹配。如果 eMMC Devcie 和 Host 所支持的工作電壓和尋址模式不匹配,那么 eMMC Device 會(huì)進(jìn)入Inactive State。eMMC Device 在接收到 CMD1 命令后,會(huì)將 OCR register 的內(nèi)容作通過(guò) Response 返回給 Host,其中包含了 eMMC Device 是否完成初始化的標(biāo)志位、設(shè)備工作電壓范圍 Voltage Range 和存儲(chǔ)訪(fǎng)問(wèn)模式 Memory Access Mode 信息。eMMC Device 完成初始化后,就會(huì)進(jìn)入 Ready State。在該 State 下,Host 會(huì)發(fā)送 CMD2 命令,獲取 eMMC Device 的 CID。

CID,即 Device identification number,用于標(biāo)識(shí)一個(gè) eMMC Device。它包含了 eMMC Device 的制造商、OEM、設(shè)備名稱(chēng)、設(shè)備序列號(hào)、生產(chǎn)年份等信息,每一個(gè) eMMC Device 的 CID 都是唯一的,不會(huì)與其他的 eMMC Device 完全相同。eMMC Device 接收到 CMD2 后,會(huì)將 127 Bits 的 CID register 的內(nèi)容通過(guò) Response 返回給 Host。發(fā)送完 CID 后,eMMC Device 接著就會(huì)進(jìn)入 Identification State。而后,Host 會(huì)發(fā)送參數(shù)包含 16 Bits RCA 的 CMD3 命令,為 eMMC Device 分配 RCA。設(shè)定完 RCA 后,eMMC Devcie 就完成了 Devcie Identification,進(jìn)入 Data Transfer Mode。

節(jié)只描述了單個(gè) eMMC Device 的 Devcie Identification 過(guò)程,多個(gè) eMMC 的 Device Identification 過(guò)程與此類(lèi)似,更多的細(xì)節(jié)可以參考 eMMC Spec。

3.1 Voltage Range

eMMC Device 支持 3.3v 和 1.8v 兩種工作電壓模式。在 1.8v 模式下,eMMC Device 會(huì)更加的省電。

3.2 Memory Access Mode

Memory Access Mode 決定了 eMMC Device 在響應(yīng) Host 的數(shù)據(jù)讀寫(xiě)請(qǐng)求時(shí),是如何訪(fǎng)問(wèn)內(nèi)部存儲(chǔ)器的。在 eMMC 標(biāo)準(zhǔn)中存在兩種 Memory Access Mode:Byte Access Mode 和Sector Access Mode。在數(shù)據(jù)讀寫(xiě)的 Command 中,Host 會(huì)將讀寫(xiě)的地址 A 作為 Command 的參數(shù)發(fā)送給 eMMC Device,在 Byte Access Mode 下,eMMC Device 將從第 A 個(gè) Byte 開(kāi)始進(jìn)行讀寫(xiě)操作,而在 Sector Access Mode 下,eMMC Device 將會(huì)從第 A 個(gè) Sector 開(kāi)始進(jìn)行讀寫(xiě)操作,一個(gè) Sector 的大小為 512 Bytes 或者 4 KBytes,更大的 Sector 支持更大容量的存儲(chǔ)器訪(fǎng)問(wèn)。使用 Byte Access Mode 更加的靈活高效,但是由于尋址位數(shù)的限制,不能訪(fǎng)問(wèn)超過(guò) 2GB 的存儲(chǔ)內(nèi)容。Sector Access Mode 則支持大容量存儲(chǔ)的訪(fǎng)問(wèn),其中 512 Bytes Sector 可以支持最大 256 GB 容量的存儲(chǔ)訪(fǎng)問(wèn),更大容量的需求則可以使用 4 KBytes Sector。

3.3 RCA - Relative device Address

RCA 是在 Devcie Identification 過(guò)程中,由 Host 分配的 16 Bits 的設(shè)備地址,主要用于 Data Transfer Mode 下進(jìn)行通信時(shí),選定具體要進(jìn)行操作的 eMMC Devcie。Host 分配的 RCA 通常從 1 開(kāi)始遞增,0 地址作為廣播地址。eMMC Devcie 的 RCA register 保存了 Host 分配的 RCA。

3.4 Data Transfer Mode

eMMC Device 完成 Device Identification 后,就會(huì)進(jìn)入到 Data Transfer Mode 的 Standby State。在 Standby State 時(shí),Host 可以通過(guò)發(fā)送 CMD5 命令,讓 eMMC Devcie 進(jìn)入 低功耗的 Sleep State,而后再發(fā)送 CMD5 命令則可以讓 eMMC Device 退出 Sleep State。在 Standby State 時(shí),Host 可以通過(guò)發(fā)送 CMD7 命令,讓 eMMC Devcie 進(jìn)入 Transfer State,而后再發(fā)送 CMD7 命令則可以讓 eMMC Device 退出 Transfer State。

3.5 Read Data

在 Transfer State 時(shí),Host 可以發(fā)送以下的命令,觸發(fā)數(shù)據(jù)讀取流程:

1e811942-9723-11ee-8b88-92fbcf53809c.png

eMMC Device 在接收到上述幾個(gè) CMD 時(shí),就會(huì)進(jìn)入 Sending-data State。在此 State 下,eMMC Device 會(huì)持續(xù)將數(shù)據(jù)發(fā)送給 Host,直到指定數(shù)量的數(shù)據(jù) Block 傳輸完成或者接收到 Host 發(fā)送的 CMD12 傳輸停止命令。eMMC Device 在停止發(fā)送數(shù)據(jù)后,會(huì)返回到 Transfer State。如果 Host 在發(fā)送 CMD18 前,先發(fā)送一個(gè)設(shè)定需要讀取的 Block Count 的 CMD23。eMMC Device 在完成指定 Block Count 的數(shù)據(jù)發(fā)送后,就自動(dòng)結(jié)束數(shù)據(jù)傳輸,不需要 Host 主動(dòng)發(fā)送停止命令 CMD12。如果 Host 沒(méi)有發(fā)送設(shè)定需要讀取的 Block Count 的 Command,發(fā)送 Multiple Block Read 的 Command 后,eMMC Device 會(huì)持續(xù)發(fā)送數(shù)據(jù),直到 Host 發(fā)送 Stop Command 停止數(shù)據(jù)傳輸。

如果在發(fā)送 CMD18 前,先發(fā)送 CMD23 設(shè)定需要讀取的 Block Count,那么 eMMC Device 會(huì)在發(fā)送完指定數(shù)量的 Block 后,自動(dòng)停止發(fā)送數(shù)據(jù)。

3.6 Write Data

在 Transfer State 時(shí),Host 可以發(fā)送以下的命令,觸發(fā)數(shù)據(jù)寫(xiě)入流程:

1e8fd2fc-9723-11ee-8b88-92fbcf53809c.png

CID 寄存器值通常是只能寫(xiě)一次,由廠(chǎng)家在生產(chǎn)時(shí)確定并寫(xiě)入 CSD 寄存器值的部分位則可以多次改寫(xiě)。

eMMC Device 在接收到上述幾個(gè) CMD 時(shí),就會(huì)進(jìn)入Receive-data State,在此 State 下,eMMC Devcie 會(huì)持續(xù)從 Host 接收數(shù)據(jù),并存儲(chǔ)到內(nèi)部的 Buffer 或者寄存器中。

如果 Host 在發(fā)送 CMD25 前,先發(fā)送一個(gè)設(shè)定需要寫(xiě)入的 Block Count 的 CMD23。eMMC Device 在完成指定 Block Count 的數(shù)據(jù)接收后,就自動(dòng)結(jié)束數(shù)據(jù)傳輸,不需要 Host 主動(dòng)發(fā)送停止命令 CMD12。

如果 Host 沒(méi)有發(fā)送設(shè)定需要寫(xiě)入的 Block Count 的 Command,發(fā)送 Multiple Block Write 的 Command 后,eMMC Device 會(huì)持續(xù)接收數(shù)據(jù),直到 Host 發(fā)送 Stop Command 停止數(shù)據(jù)傳輸。

eMMC Device 在開(kāi)始進(jìn)行寫(xiě)入操作時(shí),會(huì)先將接收到的數(shù)據(jù)存儲(chǔ)在內(nèi)部 Buffer 中,然后在后臺(tái)將 Buffer 中的數(shù)據(jù)寫(xiě)入到 Flash 中。通常情況下,Host 發(fā)送數(shù)據(jù)的速度會(huì)比 eMMC 寫(xiě)入 Flash 的速度快,所以?xún)?nèi)部的 Buffer 會(huì)出現(xiàn)寫(xiě)滿(mǎn)的狀態(tài),此時(shí) eMMC Devcie 會(huì)將 DAT0 信號(hào)線(xiàn)拉低作為 Busy 信號(hào)。Host 收到 Busy 信號(hào)后,就會(huì)暫停發(fā)送數(shù)據(jù),等到 eMMC Device 將 Buffer 中的數(shù)據(jù)處完一部分并解除 Busy 信號(hào)后,再重新發(fā)送數(shù)據(jù)。

當(dāng) eMMC Device 完成數(shù)據(jù)接收后,就會(huì)進(jìn)入到 Programming State,將內(nèi)部 Buffer 中剩余未寫(xiě)入的數(shù)據(jù)寫(xiě)入到 Flash 中。在該 State 下,eMMC Device 會(huì)持續(xù)將 DAT0 拉低,作為 Busy 信號(hào)。如果在完成寫(xiě)入前,有收到新的寫(xiě)入命令,那么 eMMC Device 會(huì)立刻退回到 Receive-data State,進(jìn)行數(shù)據(jù)接收;如果在完成寫(xiě)入前,沒(méi)有收到新的寫(xiě)入命令,則會(huì)在完成寫(xiě)入后,退回到 Transfer State。

如果 eMMC Devcie 在 Programming State 時(shí),還沒(méi)有完成寫(xiě)入操作,就收到參數(shù)不等于自身 RCA 的 CMD7 命令,那么 eMMC Device 會(huì)進(jìn)入到 Disconnect State。在該 State 下,eMMC Device 會(huì)繼續(xù)進(jìn)行寫(xiě)入操作,寫(xiě)入完成后則進(jìn)入到 Stand-by State。

如果 eMMC Device 在 Disconnect State 時(shí),還沒(méi)有完成寫(xiě)入操作,就收到參數(shù)等于自身 RCA 的 CMD7 命令,那么 eMMC Devcie 會(huì)從新回到 Programming State。

3.7 Packed Commands - Packed Read and Packed Write

eMMC 標(biāo)準(zhǔn)中,支持將對(duì)多個(gè)不連續(xù)地址的數(shù)據(jù)讀取或者寫(xiě)入。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式系統(tǒng)
    +關(guān)注

    關(guān)注

    41

    文章

    3626

    瀏覽量

    129774
  • 總線(xiàn)協(xié)議
    +關(guān)注

    關(guān)注

    0

    文章

    117

    瀏覽量

    14902
  • emmc
    +關(guān)注

    關(guān)注

    7

    文章

    219

    瀏覽量

    52924

原文標(biāo)題:eMMC總線(xiàn)協(xié)議

文章出處:【微信號(hào):數(shù)字ICer,微信公眾號(hào):數(shù)字ICer】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    emmc,什么是emmc

    詳細(xì)介紹什么是emmcemmc主要應(yīng)用在哪些地方,并說(shuō)明了EMMC的結(jié)構(gòu)及優(yōu)點(diǎn)。
    發(fā)表于 08-23 10:58 ?7.9w次閱讀

    CAN總線(xiàn)協(xié)議知識(shí)科普

    本文說(shuō)的CAN即是一種總線(xiàn),也是一種協(xié)議。因此,我們常聽(tīng)見(jiàn)CAN總線(xiàn),也常聽(tīng)見(jiàn)CAN協(xié)議。
    發(fā)表于 09-15 12:47 ?3372次閱讀

    淺談CAN FD總線(xiàn)協(xié)議幀格式

    假期更新了一文搞懂CAN總線(xiàn)協(xié)議幀格式,CAN FD總線(xiàn)協(xié)議怎能錯(cuò)過(guò)?本篇博文將講解CAN FD總線(xiàn)協(xié)議
    發(fā)表于 10-14 12:49 ?3536次閱讀
    淺談CAN FD<b class='flag-5'>總線(xiàn)</b><b class='flag-5'>協(xié)議</b>幀格式

    eMMC總線(xiàn)協(xié)議解析

    eMMC總線(xiàn)中,可以有一個(gè)Host,多個(gè)eMMC設(shè)備。總線(xiàn)上的所有通信都是以Host發(fā)送一個(gè)Command給eMMC開(kāi)始的,
    的頭像 發(fā)表于 12-08 14:35 ?3069次閱讀
    <b class='flag-5'>eMMC</b><b class='flag-5'>總線(xiàn)</b><b class='flag-5'>協(xié)議</b>解析

    什么是APB協(xié)議/總線(xiàn)?APB總線(xiàn)入門(mén)

    上一篇文章簡(jiǎn)單講解了什么是AMBA總線(xiàn),簡(jiǎn)單來(lái)說(shuō),AMBA總線(xiàn)是一系列協(xié)議。定義了適用于不同場(chǎng)景的總線(xiàn)家族。今天我們就來(lái)將AMBA總線(xiàn)中最簡(jiǎn)
    的頭像 發(fā)表于 01-02 11:37 ?4087次閱讀
    什么是APB<b class='flag-5'>協(xié)議</b>/<b class='flag-5'>總線(xiàn)</b>?APB<b class='flag-5'>總線(xiàn)</b>入門(mén)

    支持emmc4.51主控能對(duì)emmc5.0協(xié)議的片子進(jìn)行讀寫(xiě)嗎?

    emmc5.0。 現(xiàn)在的問(wèn)題是:支持emmc4.51主控能對(duì)emmc5.0協(xié)議的片子進(jìn)行讀寫(xiě)嗎??使用的是8位數(shù)據(jù)總線(xiàn)。
    發(fā)表于 04-08 07:32

    初始化EMMC時(shí),它出現(xiàn)總線(xiàn)錯(cuò)誤的原因?

    這是我啟動(dòng) EMMC 計(jì)劃的程序。 當(dāng)我調(diào)用該函數(shù)時(shí),它會(huì)輸入總線(xiàn)錯(cuò)誤。 我懷疑在啟用模塊時(shí)出現(xiàn)了問(wèn)題。 當(dāng)我調(diào)用庫(kù)函數(shù)向該寄存器寫(xiě)入數(shù)據(jù)時(shí),遇到了問(wèn)題。
    發(fā)表于 05-29 07:34

    emmc是什么意思?

    。之前emmc幾乎統(tǒng)治了移動(dòng)市場(chǎng),這一標(biāo)準(zhǔn)從emmc4.3一路發(fā)展到現(xiàn)在的5.1,傳輸速度也從50MB/S一路狂飆600MB/S的速度。后來(lái)更強(qiáng)大的ufs就登場(chǎng)了,同樣都是閃存芯片,讀寫(xiě)速度確高不少,ufs2.0理論速度達(dá)到780MB/S、UFS 2.1更是高達(dá)1.5GB
    發(fā)表于 07-22 09:07

    基于協(xié)議棧的現(xiàn)場(chǎng)總線(xiàn)協(xié)議轉(zhuǎn)換通用化設(shè)計(jì)

    基于協(xié)議棧的現(xiàn)場(chǎng)總線(xiàn)協(xié)議轉(zhuǎn)換通用化設(shè)計(jì):摘要:為實(shí)現(xiàn)不同現(xiàn)場(chǎng)總線(xiàn)之間的通信和提供統(tǒng)一的設(shè)計(jì)模式,達(dá)到屏蔽現(xiàn)場(chǎng)總線(xiàn)異構(gòu)性的目的,對(duì)多種現(xiàn)場(chǎng)
    發(fā)表于 10-10 15:33 ?14次下載

    SD/SDIO/eMMC 協(xié)議分析儀

    品牌:Prodigy公司致力于提供記憶存儲(chǔ)SD/eMMC綜合測(cè)試解決方案,目前測(cè)試產(chǎn)品主要包括SD/eMMC總線(xiàn)協(xié)議分析儀(PGY-SSM)、SD卡模擬..
    發(fā)表于 12-02 16:50 ?96次下載

    CAN總線(xiàn)協(xié)議是什么?CAN總線(xiàn)協(xié)議有哪些?CAN總線(xiàn)協(xié)議知識(shí)分析

    本文說(shuō)的CAN即是一種總線(xiàn),也是一種協(xié)議。因此,我們常聽(tīng)見(jiàn)CAN總線(xiàn),也常聽(tīng)見(jiàn)CAN協(xié)議。CAN協(xié)議和CANOpen
    的頭像 發(fā)表于 10-03 19:53 ?7.5w次閱讀
    CAN<b class='flag-5'>總線(xiàn)</b><b class='flag-5'>協(xié)議</b>是什么?CAN<b class='flag-5'>總線(xiàn)</b><b class='flag-5'>協(xié)議</b>有哪些?CAN<b class='flag-5'>總線(xiàn)</b><b class='flag-5'>協(xié)議</b>知識(shí)分析

    AXI總線(xiàn)協(xié)議總結(jié)

    在介紹AXI之前,先簡(jiǎn)單說(shuō)一下總線(xiàn)、接口以及協(xié)議的含義。總線(xiàn)、接口和協(xié)議,這三個(gè)詞常常被聯(lián)系在一起,但是我們心里要明白他們的區(qū)別。
    發(fā)表于 02-04 06:00 ?10次下載
    AXI<b class='flag-5'>總線(xiàn)</b><b class='flag-5'>協(xié)議</b>總結(jié)

    IIC總線(xiàn)協(xié)議及應(yīng)用

    IIC總線(xiàn)協(xié)議及應(yīng)用I2C總線(xiàn)知識(shí)I2C總線(xiàn)物理拓?fù)浣Y(jié)構(gòu)I2C總線(xiàn)特征I2C總線(xiàn)
    發(fā)表于 11-20 15:21 ?10次下載
    IIC<b class='flag-5'>總線(xiàn)</b><b class='flag-5'>協(xié)議</b>及應(yīng)用

    如何選擇合適的總線(xiàn)協(xié)議

    在現(xiàn)代電子系統(tǒng)中,總線(xiàn)協(xié)議扮演著至關(guān)重要的角色,它負(fù)責(zé)協(xié)調(diào)各個(gè)組件之間的數(shù)據(jù)傳輸。選擇合適的總線(xiàn)協(xié)議可以確保系統(tǒng)的高性能、可靠性和可擴(kuò)展性。 1. 理解
    的頭像 發(fā)表于 12-31 09:41 ?140次閱讀

    總線(xiàn)通信協(xié)議解析及應(yīng)用

    在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,總線(xiàn)通信協(xié)議扮演著至關(guān)重要的角色。它們定義了數(shù)據(jù)如何在處理器、內(nèi)存、輸入/輸出設(shè)備等組件之間傳輸。 總線(xiàn)通信協(xié)議的基本概念 總線(xiàn)
    的頭像 發(fā)表于 12-31 10:07 ?226次閱讀