女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux MMC子系統簡介

嵌入式那些事 ? 來源:嵌入式那些事 ? 2023-11-30 13:57 ? 次閱讀

前言

下面首先簡單的介紹了MMC,SDSDIO,對這些名詞有個概念即可。

從本文開始會重點講講eMMC相關的內容(Linux MMC子系統系列文章介紹的eMMC協議為:eMMC 5.1協議),對eMMC相關的知識有了一定的了解之后,后續文章也會對Linux的MMC子系統做一個介紹,包括MMC子系統的初始化過程,MMC host驅動與host設備是如何匹配的,MMC host驅動的基本框架,MMC驅動和MMC卡設備是如何關聯起來的,MMC子系統是如何實現塊設備驅動的等等。

對于MMC卡,SD卡或者SDIO接口的設備,Linux MMC子系統同樣適用。

好了,廢話不多說,下面開始本文的內容吧。

MMC SD SDIO介紹

MMC

多媒體卡(MMC)全稱Multi Media Card,是由西門子公司和SanDisk公司于1997年推出的多媒體記憶卡標準。MMC卡尺寸為32mm x 24mm x 1.4mm,它將存儲單元和控制器一同做到了卡上,這種攜帶方便、可靠性高、重量輕的數據載體一經推出,市場占有率不斷上升,廣泛應用于移動電話,數碼相機,MP3等產品。

MMC卡具有MMC和SPI兩種工作模式,MMC模式是默認工作模式,具有MMC的全部特性。而SPI模式則是MMC協議的一個子集,主要用于低速系統。

SD

SD卡(Secure Digital Memory Card)是一種基于半導體快閃存記憶器的新一代記憶存儲設備。SD卡是由松下東芝和SanDisk公司于1999年8月共同開發的新一代記憶卡標準,已完全兼容MMC標準。SD卡比MMC卡多了一個進行數據著作權保護的暗號認證功能。

SD卡尺寸為32mm x 24mm x 2.1mm,長寬和MMC卡一樣,只是比MMC卡厚了0.7mm,以容納更大容量的存儲單元。SD卡與MMC卡保持向上兼容,也就是說,MMC卡可以被新的設有SD卡插槽的設備存取,但是SD卡卻不可以被設有MMC插槽的設備存取。

SDIO

SDIO全稱為Secure Digital Input and Output,中文名稱為:安全數字輸入輸出接口。SDIO是在SD標準上定義的一種外設接口,它使用SD的I/O接口來連接外圍設備,并通過SD上的I/O數據接口與這些外圍設備傳輸數據。現在已經有很多手持設備支持SDIO接口,而且許多SDIO外設也被開發出來,目前常見的SDIO外設有:WIFI Card、GPS Card、 Bluetooth Card等等。

eMMC介紹

eMMC卡全稱為Embedded Multi Media Card,是MMC協會所制定的內嵌式存儲器標準規格。通俗點講,eMMC就是一個類似于SD卡一樣的存儲芯片。eMMC主要應用于智能手機和平板電腦等產品。eMMC在封裝中集成了一個控制器,提供標準接口來管理閃存,使得產品開發過程中不再需要考慮NAND Flash兼容性問題和管理問題,讓產品開發人員能夠專注于產品開發,縮短產品推向市場的時間。

eMMC整體結構

eMMC的整體結構如下圖所示:

3432bb26-8f38-11ee-939d-92fbcf53809c.png

Snipaste_2023-10-10_20-35-50

eMMC主要由設備控制器和存儲陣列組成。設備控制器主要提供主機接口和存儲管理功能。

eMMC主機接口

HOST和eMMC之間的接口連接如下圖所示:

345e8f44-8f38-11ee-939d-92fbcf53809c.png

Linux_MMC子系統_eMMC主機接口

eMMC與HOST之間的通信涉及的信號線描述如下:

CLK:時鐘線上的每個時鐘周期,意味著命令線上傳輸了1bit命令,或者數據線上完成了1bit或者2bit的數據傳輸。時鐘頻率的范圍為:0~最大時鐘頻率。

CMD:該信號線主要用于傳輸HOST到eMMC的command和eMMC到HOST的response。

DAT0~DAT7:用于傳輸數據的8bit數據線。在上電或者復位以后,僅僅只有DAT0數據線可以用于數據傳輸。可以通過eMMC主機控制器來配置eMMC的數據總線位寬,eMMC支持的數據線寬度有:1bit(DAT0),4bit(DAT0~DAT3),8bit(DAT0~DAT7)。

Data Strobe:該信號是從eMMC設備輸出給Host的時鐘信號,頻率和CLK信號相同,用于Host進行接收數據的同步。該信號只在HS400模式下使用,啟用后可以提高數據傳輸的穩定性,省去總線tuning過程。

HOST和eMMC之間的通信都是以HOST發送一個Command給eMMC開始的,eMMC對于收到的不同Command會做出不同的response,當然了eMMC對于收到的部分Command可以不做response。

聊了這么久的eMMC,到底eMMC長什么樣,大多數的eMMC芯片一般是黑色的外觀,來欣賞下某廠商的eMMC芯片外觀圖:

3473bfc2-8f38-11ee-939d-92fbcf53809c.png

foresee emmc

大多數的eMMC芯片一般采用BGA封裝,下圖是某廠商的BGA封裝的eMMC芯片引腳圖:

34a24068-8f38-11ee-939d-92fbcf53809c.png

Snipaste_2023-10-11_20-16-29

eMMC接口各個引腳的輸入輸出類型以及相關描述可以參考下圖進行理解:

34cebaf8-8f38-11ee-939d-92fbcf53809c.png

Snipaste_2023-10-11_20-28-18

eMMC存儲陣列

eMMC的存儲陣列是由非易失性的存儲器組成,目前,絕大多數eMMC芯片內部的存儲器都是由Nand Flash組成的。

智能手機或者其他嵌入式設備中,可以使用eMMC的存儲陣列來存放操作系統,應用數據等信息。

eMMC存儲管理

eMMC芯片內部的設備控制器具有存儲管理功能,主要用于對Nand Flash的管理,包括:擦寫均衡,壞塊管理,ECC校驗等。相比于直接將NAND Flash連接到Host端,采用eMMC芯片屏蔽了NAND Flash的物理特性,可以減少Host端軟件的復雜度,讓Host端專注于上層業務,省去對NAND Flash進行特殊的處理。同時,eMMC通過使用Cache、Memory Array等技術,在讀寫性能上也比NAND Flash要好很多。

eMMC尋址

以前實現的eMMC協議(比如eMMC 4.1協議)采用的是32位域的字節尋址。這種尋址機制限制了eMMC的最大容量為2GB。

為了支持更大容量的eMMC,后續的eMMC協議(比如eMMC 5.1協議)增加了sector尋址方式(1 sector=512B)。容量大于2GB的eMMC,都是采用sector尋址的方式。

為了確定eMMC的尋址模式,主機可以讀取eMMC的OCR寄存器,通過OCR寄存器的bit[30:29]可以知道eMMC的尋址模式。

eMMC速率模式

隨著eMMC協議的不斷更新,eMMC總線的速率越來越高。為了兼容舊版本的eMMC,所有eMMC在上電啟動或者Reset后,都會先進入兼容速率模式(Backwards Compatibility with legacy MMC card)。在完成對eMMC的初始化后,Host可以通過特定的流程,讓eMMC進入其他高速率模式,目前支持以下幾種速率模式。

34f3e490-8f38-11ee-939d-92fbcf53809c.png

Snipaste_2023-10-11_21-09-03

Extended CSD寄存器的HS_TIMING[185],可以配置總線速率模式。

Extended CSD寄存器的BUS_WIDTH[183],可以配置總線寬度和Data Strobe。

在一個時鐘周期內,DAT0~DAT7信號線上傳輸1個比特時,就是SDR(Single Data Rate)模式。

在一個時鐘周期內,DAT0~DAT7信號線上傳輸2個比特時,就是DDR(Double Data Rate)模式。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 半導體
    +關注

    關注

    335

    文章

    28600

    瀏覽量

    232532
  • Linux
    +關注

    關注

    87

    文章

    11459

    瀏覽量

    212790
  • 子系統
    +關注

    關注

    0

    文章

    114

    瀏覽量

    12674
  • emmc
    +關注

    關注

    7

    文章

    228

    瀏覽量

    53721

原文標題:Linux MMC子系統 - 1.eMMC簡介

文章出處:【微信號:嵌入式那些事,微信公眾號:嵌入式那些事】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    Linux下輸入子系統上報觸摸屏坐標

    ??在 Linux 中,輸入子系統是由輸入子系統設備驅動層、輸入子系統核心層(Input Core)和輸入子系統事件處理層(Event Ha
    的頭像 發表于 09-25 08:56 ?2895次閱讀
    <b class='flag-5'>Linux</b>下輸入<b class='flag-5'>子系統</b>上報觸摸屏坐標

    Linux LED子系統詳解

    Linux LED子系統詳解
    的頭像 發表于 06-10 10:37 ?1797次閱讀
    <b class='flag-5'>Linux</b> LED<b class='flag-5'>子系統</b>詳解

    Windows10內置Linux子系統使用

    周圍的同學都已經用win10內置的Linux子系統了,在堅持過幾個Linux實驗后,我也懷著好奇心試了一把。
    發表于 07-26 07:10

    如何使用Linux內核中的input子系統

    的 input 子系統下提供的 API 函數接口,完成設備的注冊即可。在本章節中我們來學習一下如何使用 Linux內核中的 input 子系統
    發表于 12-29 07:20

    s3c2440 mmc和camera的linux驅動

    本站提供的s3c2440 mmc和camera的linux驅動資料,詳細講訴了s3c2440 mmc和camera的linux驅動的步驟,希望對你的學習有所幫助。
    發表于 05-25 15:53 ?54次下載
    s3c2440 <b class='flag-5'>mmc</b>和camera的<b class='flag-5'>linux</b>驅動

    基于Linux內核輸入子系統的驅動研究

    Linux因其完全開放的特性和穩定優良的性能深受歡迎,當推出了內核輸入子系統后,更方便了嵌入式領域的驅動開放。介紹了Linux的設備驅動基礎,詳細闡述了基于Linux內核輸入
    發表于 09-12 16:38 ?23次下載

    Linux內核輸入子系統的驅動研究

    Linux內核輸入子系統的驅動研究
    發表于 10-31 14:41 ?14次下載
    <b class='flag-5'>Linux</b>內核輸入<b class='flag-5'>子系統</b>的驅動研究

    詳細了解Linux設備模型中的input子系統

    linux輸入子系統linux input subsystem)從上到下由三層實現,分別為:輸入子系統事件處理層(EventHandler)、輸入
    發表于 05-12 09:04 ?1141次閱讀
    詳細了解<b class='flag-5'>Linux</b>設備模型中的input<b class='flag-5'>子系統</b>

    Embeded linux中的MMC驅動

    Embeded linux中的MMC驅動
    發表于 05-14 16:08 ?1299次閱讀
    Embeded <b class='flag-5'>linux</b>中的<b class='flag-5'>MMC</b>驅動

    Windows 子系統助力 Linux 2.0

    Windows 子系統助力 Linux 2.0
    的頭像 發表于 01-04 11:17 ?841次閱讀

    Linux系統中NFC子系統架構分析

    目前在Linux系統中,每個廠家都使用不同的方式實現NFC驅動,然后自己在應用層上面做適配。但是Linux也已經推出NFC子系統,很多廠家也逐步在統一。
    發表于 01-04 14:01 ?2436次閱讀

    linux-usb子系統的核心描述

    本文將描述linux-usb子系統的核心,主要分析其核心的初始化流程,文中源碼基于內核版本:4.1.15。
    的頭像 發表于 01-14 09:37 ?3071次閱讀

    Linux MMC開發指南

    介紹 Linux 內核中 SD/MMC 子系統的接口及使用方法,為 SD/MMC 設備驅動的開發提供參考。
    的頭像 發表于 03-06 10:21 ?3711次閱讀
    <b class='flag-5'>Linux</b> <b class='flag-5'>MMC</b>開發指南

    Linux內核之LED子系統(一)

    Linux內核的LED子系統是一種重要的框架,用于管理和控制設備上的LED指示燈。在嵌入式系統和物聯網設備中,LED子系統發揮著關鍵作用,為開發者提供了一種統一的方式來控制和定制LED
    發表于 10-02 16:53 ?1696次閱讀
    <b class='flag-5'>Linux</b>內核之LED<b class='flag-5'>子系統</b>(一)

    Linux clock子系統是什么

    clock子系統 Linux的時鐘子系統由CCF(common clock framework)框架管理, CCF向上給用戶提供了通用的時鐘接口,向下給驅動開發者提供硬件操作的接口 。各結構體關系
    的頭像 發表于 09-27 14:25 ?1071次閱讀
    <b class='flag-5'>Linux</b> clock<b class='flag-5'>子系統</b>是什么