一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

eMMC總線協(xié)議解析

嵌入式那些事 ? 來(lái)源:嵌入式那些事 ? 2023-12-08 14:35 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

eMMC總線拓?fù)?/p>

在eMMC總線中,可以有一個(gè)Host,多個(gè)eMMC設(shè)備。總線上的所有通信都是以Host發(fā)送一個(gè)Command給eMMC開(kāi)始的,eMMC對(duì)于收到的不同Command會(huì)做出不同的response,當(dāng)然了eMMC對(duì)于收到的部分Command可以不做response。Host一次只能與一個(gè)eMMC設(shè)備通信。

在上電啟動(dòng)后,Host會(huì)為所有eMMC設(shè)備依次分配相對(duì)地址(RCA,Relative card Address)。當(dāng)Host需要和某一個(gè)eMMC設(shè)備通信時(shí),會(huì)先通過(guò)RCA選中該eMMC設(shè)備,只有被選中的eMMC設(shè)備才會(huì)響應(yīng)Host的Command。

eMMC總線協(xié)議

在系統(tǒng)上電復(fù)位后,Host必須使用eMMC總線協(xié)議指定的message來(lái)初始化eMMC設(shè)備。每個(gè)message都由下面的一個(gè)標(biāo)記表示:

command:命令,一個(gè)命令是一個(gè)開(kāi)始操作的標(biāo)記。命令是由Host發(fā)給eMMC設(shè)備的。一個(gè)命令在CMD線上被串行傳輸。

response:響應(yīng),響應(yīng)是由eMMC設(shè)備發(fā)送給Host,用于eMMC設(shè)備對(duì)先前收到命令的回復(fù)。一個(gè)響應(yīng)在CMD線上被串行傳輸。

data:數(shù)據(jù),數(shù)據(jù)可以從Host傳輸給eMMC設(shè)備,也可以從eMMC設(shè)備傳輸給Host。數(shù)據(jù)在數(shù)據(jù)線上被傳輸。用于傳輸數(shù)據(jù)的數(shù)據(jù)線可以是1個(gè)(DAT0),4個(gè)(DAT0-DAT3)或者8個(gè)(DAT0-DAT7)。

對(duì)于每一個(gè)數(shù)據(jù)線來(lái)說(shuō),在一個(gè)時(shí)鐘周期可以傳輸1位數(shù)據(jù),也就是SDR模式(single data rate)。當(dāng)然了,在一個(gè)時(shí)鐘周期可以傳輸2位數(shù)據(jù),也就是DDR模式(dual data rate)。

eMMC的讀和寫(xiě)命令是按照block為單位進(jìn)行的。讀和寫(xiě)可以是單塊或者多塊。讀和寫(xiě)數(shù)據(jù)時(shí),數(shù)據(jù)block后面會(huì)跟CRC。

eMMC讀數(shù)據(jù)

Host從eMMC設(shè)備讀取數(shù)據(jù)的流程圖如下圖所示:

bb8e1ace-958d-11ee-8b88-92fbcf53809c.png

Snipaste_2023-10-11_20-52-40

如果Host發(fā)送的是Read Single Block的命令(CMD17),那么eMMC設(shè)備只會(huì)發(fā)送一個(gè)Block的數(shù)據(jù)(一個(gè)Block數(shù)據(jù)的字節(jié)數(shù)可以由Host通過(guò)CMD16命令設(shè)定或者為eMMC設(shè)備的默認(rèn)值)。

如果Host發(fā)送的是Read Multiple Block的命令(CMD18),并且在發(fā)送CMD18之前,先發(fā)送一個(gè)SET BLOCK COUNT命令(CMD23)來(lái)設(shè)置需要讀取的數(shù)據(jù)塊數(shù)量,那么eMMC設(shè)備在傳輸完指定數(shù)量的數(shù)據(jù)塊之后,會(huì)自動(dòng)結(jié)束數(shù)據(jù)傳輸,不需要Host主動(dòng)發(fā)送Stop Command(CMD12)。

如果Host發(fā)送的是Read Multiple Block的命令(CMD18),并且在發(fā)送CMD18之前,Host沒(méi)有發(fā)送設(shè)置讀取數(shù)據(jù)塊數(shù)量的命令,那么eMMC設(shè)備會(huì)持續(xù)發(fā)送數(shù)據(jù),直到Host主動(dòng)發(fā)送Stop Command(CMD12)。

eMMC寫(xiě)數(shù)據(jù)

Host向eMMC設(shè)備寫(xiě)入數(shù)據(jù)的流程圖如下圖所示:

bb9a1a0e-958d-11ee-8b88-92fbcf53809c.png

Snipaste_2023-10-11_21-05-03

如果Host發(fā)送的是Write Single Block的命令(CMD24),那么eMMC設(shè)備只會(huì)將后續(xù)第一個(gè)Block的數(shù)據(jù)寫(xiě)入的存儲(chǔ)器中(一個(gè)Block數(shù)據(jù)的字節(jié)數(shù)可以由Host通過(guò)CMD16命令設(shè)定或者為eMMC設(shè)備的默認(rèn)值)。

如果Host發(fā)送的是Write Multiple Block的命令(CMD25),并且在發(fā)送CMD25之前,先發(fā)送一個(gè)SET BLOCK COUNT命令(CMD23)來(lái)設(shè)置需要寫(xiě)入的數(shù)據(jù)塊數(shù)量,那么eMMC設(shè)備在接收完指定數(shù)量的數(shù)據(jù)塊之后,會(huì)自動(dòng)結(jié)束數(shù)據(jù)傳輸,不需要Host主動(dòng)發(fā)送Stop Command(CMD12)。

如果Host發(fā)送的是Write Multiple Block的命令(CMD25),并且在發(fā)送CMD25之前,Host沒(méi)有發(fā)送設(shè)置寫(xiě)入數(shù)據(jù)塊數(shù)量的命令,那么eMMC設(shè)備會(huì)持續(xù)地將接收到的數(shù)據(jù)寫(xiě)入到存儲(chǔ)器中,直到Host主動(dòng)發(fā)送Stop Command(CMD12)。

eMMC設(shè)備在接收到一個(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設(shè)備會(huì)將數(shù)據(jù)寫(xiě)入到內(nèi)部存儲(chǔ)器,此時(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設(shè)備不會(huì)進(jìn)行數(shù)據(jù)寫(xiě)入,此次傳輸?shù)暮罄m(xù)數(shù)據(jù)都會(huì)被忽略。

eMMC無(wú)數(shù)據(jù)和無(wú)響應(yīng)命令示意

在Host與eMMC設(shè)備的通信中,有部分命令是不需要進(jìn)行數(shù)據(jù)傳輸?shù)?,還有部分命令不需要eMMC設(shè)備回復(fù)Response,示意圖如下所示:

bbb23436-958d-11ee-8b88-92fbcf53809c.png

Snipaste_2023-10-11_21-19-41

eMMC命令

eMMC命令類型

eMMC協(xié)議定義了4種類型的命令,包括:bc、bcr、ac和adtc,這些命令類型的說(shuō)明如下:

bc:broadcast commands(bc),bc是廣播命令,主機(jī)發(fā)送bc命令給eMMC設(shè)備后,eMMC設(shè)備不需要回復(fù)響應(yīng)(response)。

bcr:broadcast commands with response(bcr),bcr是需要eMMC設(shè)備回復(fù)響應(yīng)的廣播命令。

ac:addressed(point-to-point) commands(ac),ac是數(shù)據(jù)線(DAT lines)無(wú)數(shù)據(jù)傳輸?shù)模╪o data transfer)點(diǎn)對(duì)點(diǎn)(point-to-point)命令。

adtc:addressed(point-to-point) data transfer commands(adtc),adtc是數(shù)據(jù)線有數(shù)據(jù)傳輸?shù)狞c(diǎn)對(duì)點(diǎn)命令。

所有的命令(command)和響應(yīng)(response)都是在CMD線上進(jìn)行傳輸?shù)?。發(fā)送命令或響應(yīng)時(shí)先發(fā)送起始位(Start bit),最后發(fā)送結(jié)束位(End bit)。

eMMC命令格式

eMMC的Command格式如下圖所示:

bbc4943c-958d-11ee-8b88-92fbcf53809c.png

Snipaste_2023-10-12_20-26-30

eMMC的Command由48 bits組成,所有的eMMC命令都以01開(kāi)始,以1結(jié)尾。所有的eMMC命令都是在CMD線上進(jìn)行傳輸?shù)?,發(fā)送命令時(shí)先發(fā)送命令的起始位(Start bit),最后發(fā)送命令的結(jié)束位(End bit)。eMMC命令各個(gè)位的說(shuō)明如下圖所示:

bbd10e60-958d-11ee-8b88-92fbcf53809c.png

Snipaste_2023-10-12_20-28-05

Start Bit:起始位,固定為0,在沒(méi)有命令傳輸?shù)那闆r下,CMD線上的信號(hào)保持高電平,當(dāng)Host將Start Bit發(fā)送到總線上時(shí),eMMC設(shè)備可以很方便檢測(cè)到命令的Start Bit(CMD線上的信號(hào)由高電平變?yōu)榈碗娖剑?,并開(kāi)始接收Command。

Transmission Bit:傳輸位,固定為1,該位指示CMD線上數(shù)據(jù)的傳輸方向,該位為1,表示CMD線上數(shù)據(jù)的傳輸方向?yàn)閺腍ost到eMMC設(shè)備。

Command Index和Argument:命令索引和命令參數(shù),Command Index和Argument是命令的具體內(nèi)容,不同的命令Command Index不同,不同的命令A(yù)rgument也不相同。

CRC:CRC校驗(yàn)值,包含Start Bit、Transmission Bit、Command Index和Argument內(nèi)容的CRC校驗(yàn)值。

End Bit:結(jié)束位,固定為1。

eMMC命令類別

eMMC的命令被劃分成多種不同的類別。每一種命令類別支持一個(gè)設(shè)備功能的子集。

Class 0是所有eMMC設(shè)備都必須支持的命令類別。其他的命令類別根據(jù)具體的設(shè)備類型可以是必須支持的,也可以是可選的。

eMMC命令類別描述如下:

bbe0823c-958d-11ee-8b88-92fbcf53809c.png

Snipaste_2023-10-12_21-24-24

Host可以通過(guò)讀取CSD寄存器的CCC [95:84]位域,來(lái)了解當(dāng)前eMMC設(shè)備對(duì)命令類別的支持情況,對(duì)應(yīng)的位域值為1,就表示該eMMC設(shè)備支持對(duì)應(yīng)的命令類別。

審核編輯:湯梓紅

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

    關(guān)注

    87

    文章

    11511

    瀏覽量

    213778
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2959

    瀏覽量

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

    關(guān)注

    0

    文章

    131

    瀏覽量

    15277
  • emmc
    +關(guān)注

    關(guān)注

    7

    文章

    229

    瀏覽量

    54008

原文標(biāo)題:Linux MMC子系統(tǒng) - 2.eMMC 5.1總線協(xié)議淺析(1)

文章出處:【微信號(hào):嵌入式那些事,微信公眾號(hào):嵌入式那些事】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    emmc,什么是emmc

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

    支持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ù)總線
    發(fā)表于 04-08 07:32

    CANOpen協(xié)議解析

    CANOpen協(xié)議解析
    發(fā)表于 08-20 17:26

    AXI總線協(xié)議解析

    總線、接口和協(xié)議,這三個(gè)詞常常被聯(lián)系在一起,但是我們心里要明白他們的區(qū)別。總線是一組傳輸通道,是各種邏輯器件構(gòu)成的傳輸數(shù)據(jù)的通道,一般由由數(shù)據(jù)線、地址線、控制線等構(gòu)成。接口是一種連接標(biāo)準(zhǔn),又常常被稱之為物理接口。
    發(fā)表于 02-05 07:30

    地址解析協(xié)議ARP

    地址解析協(xié)議ARP 地址解析協(xié)議 ARP 是一種廣播協(xié)議,主機(jī)通過(guò)它可以動(dòng)態(tài)地
    發(fā)表于 06-09 21:53 ?1219次閱讀
    地址<b class='flag-5'>解析</b><b class='flag-5'>協(xié)議</b>ARP

    地址解析協(xié)議(ARP),地址解析協(xié)議(ARP)是什么意思

    地址解析協(xié)議(ARP),地址解析協(xié)議(ARP)是什么意思 地址解析協(xié)議 (ARP) “地址
    發(fā)表于 04-06 09:07 ?2208次閱讀

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

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

    汽車(chē)網(wǎng)絡(luò)LIN總線協(xié)議解析

    LIN協(xié)議適用于汽車(chē)內(nèi)進(jìn)行低成本、短距離、低速網(wǎng)絡(luò)通信,其用途是傳輸開(kāi)關(guān)設(shè)置狀態(tài)以及對(duì)開(kāi)關(guān)變化響應(yīng)。本文詳細(xì)分析了LIN總線協(xié)議的特性、消息協(xié)議的組成、檢錯(cuò)機(jī)制等,并介紹如何基于PI
    發(fā)表于 06-04 22:21 ?1.8w次閱讀
    汽車(chē)網(wǎng)絡(luò)LIN<b class='flag-5'>總線</b><b class='flag-5'>協(xié)議</b><b class='flag-5'>解析</b>

    TCP IP協(xié)議:地址解析協(xié)議ARP

    TCP IP協(xié)議進(jìn)級(jí)講座:2,地址解析協(xié)議
    的頭像 發(fā)表于 07-03 06:05 ?4054次閱讀

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

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

    協(xié)議解析網(wǎng)關(guān)的作用

    想要了解協(xié)議解析網(wǎng)關(guān),我們不妨將這個(gè)詞拆來(lái)來(lái)看,協(xié)議+解析+網(wǎng)關(guān)三者的組合就是協(xié)議解析網(wǎng)關(guān),三者
    的頭像 發(fā)表于 09-09 11:18 ?1777次閱讀

    eMMC總線協(xié)議

    Flash Memory 是一種非易失性的存儲(chǔ)器,通常在嵌入式系統(tǒng)中用于存放系統(tǒng)、應(yīng)用和數(shù)據(jù)等,類似于 PC 系統(tǒng)中的硬盤(pán)。目前,絕大部分手機(jī)和平板等移動(dòng)設(shè)備中所使用的 eMMC 內(nèi)部的 Flash
    的頭像 發(fā)表于 12-10 15:18 ?3892次閱讀
    <b class='flag-5'>eMMC</b><b class='flag-5'>總線</b><b class='flag-5'>協(xié)議</b>

    自動(dòng)售貨機(jī)MDB總線周邊設(shè)備地址中文解析(三)

    自動(dòng)售貨機(jī)MDB協(xié)議中文解析(三)MDB總線周邊設(shè)備地址
    發(fā)表于 09-09 10:43 ?0次下載

    EMMC閃存的工作原理解析 EMMC存儲(chǔ)的讀寫(xiě)速度測(cè)試

    EMMC閃存的工作原理解析 結(jié)構(gòu)組成 EMMC是一種基于NAND閃存的存儲(chǔ)解決方案,它集成了控制器和NAND閃存在一個(gè)單一的封裝中。這種集成設(shè)計(jì)使得EMMC可以直接與設(shè)備的主處理器通信
    的頭像 發(fā)表于 12-25 09:46 ?3882次閱讀

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

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