亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        STM32與eMMC通信的存儲系統(tǒng)設(shè)計

        2019-01-17 03:11:14,,,
        關(guān)鍵詞:塊數(shù)存儲設(shè)備扇區(qū)

        ,,,

        (1.中北大學(xué) 信息與通信工程學(xué)院,太原 030051;2.北京航空航天大學(xué);3.北京鐳航世紀(jì)科技有限公司)

        引 言

        在目前的存儲系統(tǒng)中,存儲介質(zhì)扮演著非常重要的角色,如固態(tài)硬盤SSD、NAND Flash、eMMC等。這些存儲介質(zhì)各具特色:SSD具有寫入速度快、功耗低、讀取延遲小等優(yōu)勢,但其封裝體積較大;NAND Flash芯片具有存儲容量大、價格便宜等優(yōu)點(diǎn),但存在兼容性差、操作復(fù)雜度高、需要過多關(guān)注壞塊管理、損耗均衡以及誤碼率等一些固有的缺陷[1]。在充分考慮存儲芯片的封裝體積、容量、帶寬要求等參數(shù)后,本系統(tǒng)選用eMMC作為存儲設(shè)備。eMMC是一種內(nèi)嵌式存儲芯片,具有接口簡單、存儲容量大、傳輸速度快和集成度高等優(yōu)點(diǎn)[2],eMMC將NAND Flash和主控芯片封裝成一個微型的BGA芯片,內(nèi)部集成Flash控制器,主要包括ECC糾錯機(jī)制、平均擦寫存儲區(qū)塊技術(shù)、壞區(qū)管理、掉電保護(hù)等控制技術(shù)。

        為了滿足存儲系統(tǒng)快速啟動、緊急掉電數(shù)據(jù)保護(hù)、便捷導(dǎo)出等設(shè)計要求,本系統(tǒng)采用STM32F7作為控制器,使用SDIO接口掛載eMMC,并通過高速USB接口將其實(shí)現(xiàn)為USB大容量存儲設(shè)備,計算機(jī)可通過USB接口直接對記錄文件進(jìn)行導(dǎo)出操作。記錄文件通過自己建立的文件系統(tǒng)進(jìn)行初始化,記錄過程中數(shù)據(jù)直接由eMMC讀寫驅(qū)動寫入文件數(shù)據(jù)區(qū)。這樣存儲系統(tǒng)可以在不進(jìn)行USB大容量存儲設(shè)備枚舉的情況下實(shí)現(xiàn)快速啟動進(jìn)行數(shù)據(jù)記錄,并且在緊急掉電情況下記錄文件不會受到損壞,同時數(shù)據(jù)仍然可以通過USB對大容量存儲設(shè)備的訪問實(shí)現(xiàn)導(dǎo)出。

        1 系統(tǒng)硬件設(shè)計

        系統(tǒng)選用由意法半導(dǎo)體公司生產(chǎn)的采用Cortex-M7內(nèi)核的STM32系列32位處理器STM32F7,該處理器性能優(yōu)異、功耗超低、集成度高,搭配SDIO控制接口,提供高速USB接口,并內(nèi)置高速USB PHY,極大地簡化了外圍電路設(shè)計。選用鎂光公司的MTFC64GAKAEEY-4M IT作為存儲芯片,存儲容量為64 GB,可支持的最大時鐘頻率為52 MHz,SDR模式下連續(xù)寫數(shù)據(jù)能力最大可達(dá)40 MB/s,連續(xù)讀數(shù)據(jù)能力最大可達(dá)90 MB/s[4]。

        圖1 系統(tǒng)總體框圖

        存儲系統(tǒng)主要由STM32控制模塊、eMMC存儲模塊和電源模塊三部分組成。系統(tǒng)總體框圖如圖1所示。

        其中,控制模塊通過SDIO接口與eMMC進(jìn)行通信,SDIO接口包括時鐘信號CLK、命令信號CMD和4位數(shù)據(jù)線DAT0~DAT3[5]。

        2 eMMC驅(qū)動設(shè)計

        圖2 多塊讀過程時序

        數(shù)據(jù)記錄和文件系統(tǒng)的實(shí)現(xiàn)均以存儲設(shè)備的底層驅(qū)動為基礎(chǔ),本系統(tǒng)存儲設(shè)備為eMMC,其底層驅(qū)動主要包括eMMC初始化,eMMC的讀、寫等。

        2.1 eMMC初始化

        設(shè)備的初始化過程為:eMMC收到軟件復(fù)位命令CMD0或者進(jìn)行硬件復(fù)位后,就切換到Idle狀態(tài),STM32首先發(fā)送CMD1命令來獲取eMMC的工作條件;然后通過發(fā)送廣播命令CMD2,eMMC向STM32回應(yīng)其獨(dú)一無二的設(shè)備識別號;完成識別之后,eMMC切換到Identification狀態(tài);接著STM32發(fā)送CMD3命令為eMMC分配唯一的相對地址,用于數(shù)據(jù)傳輸模式下對eMMC進(jìn)行尋址選定,eMMC只要收到相對地址RCA,其狀態(tài)就切換到Stand-by,eMMC初始化完成。

        2.2 eMMC讀/寫驅(qū)動操作

        eMMC和STM32之間的數(shù)據(jù)傳輸是通過DAT數(shù)據(jù)線進(jìn)行的,本系統(tǒng)數(shù)據(jù)寬度為4位,數(shù)據(jù)讀寫過程在SDR模式下進(jìn)行。

        2.2.1 讀驅(qū)動

        數(shù)據(jù)讀過程包括單塊讀和多塊讀兩種類型,本系統(tǒng)采用多塊讀方式。多塊讀過程包括兩種形式:一種形式是通過CMD18命令預(yù)先指定讀取的塊數(shù),所有數(shù)據(jù)塊讀取結(jié)束之后自動返回到數(shù)據(jù)傳輸狀態(tài);另外一種形式是開放式讀取,不設(shè)定讀取塊數(shù),設(shè)備會持續(xù)發(fā)出數(shù)據(jù)直到收到主機(jī)的停止傳輸命令,本文采用第一種方式。本系統(tǒng)設(shè)定連續(xù)讀數(shù)據(jù)長度為32塊。

        多塊讀流程為:STM32首先發(fā)送CMD16命令設(shè)置單塊的長度為512字節(jié),設(shè)置結(jié)束后,發(fā)送eMMC芯片多塊讀命令CMD18,包含讀起始地址參數(shù),并指定連續(xù)讀數(shù)據(jù)長度為32塊。多塊讀只需發(fā)送一次CMD18命令,每讀取一塊,讀取塊數(shù)就加1,數(shù)據(jù)線間隔NAC個時鐘周期之后接著讀取下一塊數(shù)據(jù),直至讀取到第32塊,多塊讀結(jié)束[6]。多塊讀過程時序如圖2所示。

        2.2.2 寫驅(qū)動

        數(shù)據(jù)寫過程包括單塊寫和多塊寫兩種類型,本系統(tǒng)采用多塊寫方式。多塊寫分為兩種方式,一種是設(shè)置預(yù)定塊數(shù)的寫入,另一種是開放式流寫入,本系統(tǒng)采用第一種方式[5],設(shè)定連續(xù)寫數(shù)據(jù)長度為32塊。

        多塊寫流程為:STM32首先發(fā)送CMD16命令設(shè)置單塊長度為512字節(jié),設(shè)置結(jié)束后,發(fā)送多塊寫命令CMD25,包含起始扇區(qū)地址,并指定連續(xù)寫數(shù)據(jù)長度為32塊。待eMMC芯片收到響應(yīng)后,就可以進(jìn)行寫操作,一旦CMD25響應(yīng)錯誤或超時,則需要再次發(fā)送。當(dāng)設(shè)定為寫入塊數(shù)方式時,命令結(jié)束NWR個時鐘周期之后則開始寫入數(shù)據(jù)。每一塊后面都會進(jìn)行CRC校驗(yàn),以確保寫入數(shù)據(jù)正確[7]。每正確寫入一塊,寫入塊數(shù)就加1,直至寫數(shù)據(jù)到第32塊時,數(shù)據(jù)將開始編程寫入Flash陣列。多塊寫過程時序如圖3所示。

        圖3 多塊寫過程時序

        3 FAT32文件系統(tǒng)設(shè)計

        為了有效管理eMMC寫入的數(shù)據(jù),使記錄數(shù)據(jù)能夠以文件形式被訪問和導(dǎo)出,必須將eMMC中的數(shù)據(jù)以文件形式存儲,需要在eMMC中創(chuàng)建常用的可以被Windows系統(tǒng)訪問的文件系統(tǒng)。本設(shè)計中采用FAT32文件系統(tǒng)。

        3.1 FAT32文件系統(tǒng)簡介

        FAT32文件系統(tǒng)是Windows98操作系統(tǒng)為改善磁盤管理而推出的一項(xiàng)新的文件管理系統(tǒng)。FAT32文件系統(tǒng)實(shí)際上就是用32位數(shù)據(jù)來描述磁盤簇分配[8]。FAT32分區(qū)的數(shù)據(jù)結(jié)構(gòu)由MBR、DBR、保留扇區(qū)、FAT表和目錄及數(shù)據(jù)區(qū)5部分組成。FAT32文件系統(tǒng)的結(jié)構(gòu)特點(diǎn)如下:

        ① MBR即主引導(dǎo)扇區(qū),位于整個硬盤的0 磁道0 柱面1 扇區(qū),包括硬盤主引導(dǎo)記錄MBR和分區(qū)表DPT兩部分,主要用于檢查分區(qū)表是否正確并確定引導(dǎo)分區(qū)的地址,同時便于在程序結(jié)束時把引導(dǎo)分區(qū)的啟動程序調(diào)入內(nèi)存加以執(zhí)行。

        ② DBR即操作系統(tǒng)引導(dǎo)扇區(qū)。一般占用512字節(jié),該扇區(qū)由跳轉(zhuǎn)指令、操作系統(tǒng)名稱和版本號、BPB區(qū)、擴(kuò)展BPB區(qū)、結(jié)束標(biāo)志和DOS引導(dǎo)程序區(qū)組成。其中BPB記錄本分區(qū)的每簇扇區(qū)數(shù)、每扇區(qū)字節(jié)數(shù)、FAT表數(shù)、FAT表扇區(qū)數(shù)及根目錄簇號等重要參數(shù)。表1為FAT32文件系統(tǒng)的DBR數(shù)據(jù)結(jié)構(gòu)。

        表1 FAT32文件系統(tǒng)的DBR數(shù)據(jù)結(jié)構(gòu)

        ③ 保留扇區(qū)位于FAT32文件系統(tǒng)起始部分,由若干個扇區(qū)組成,該扇區(qū)的大小記錄在DBR扇區(qū)中。

        ④ FAT表的含義是文件分配表,該區(qū)是FAT32文件系統(tǒng)管理磁盤空間和文件的最重要區(qū)域。它通過位示圖法來保存邏輯盤數(shù)據(jù)區(qū)各簇使用情況信息。文件所占用的存儲空間及空閑空間的管理都是通過它來實(shí)現(xiàn)的。FAT32一般包含兩份FAT,F(xiàn)AT1是第一份,即主FAT,位于邏輯32扇區(qū)。在FAT表中,每簇占用4字節(jié),其中開頭的8字節(jié)用來存放該盤介質(zhì)類型編號。如果某個文件占用很多簇,則第一個FAT項(xiàng)用于記錄下一個FAT項(xiàng)簇號,如果這個文件結(jié)束了,則用“0FFF FFFF”表示。

        ⑤ 目錄及數(shù)據(jù)區(qū)主要由根目錄、子目錄和文件內(nèi)容三個部分組成[11]。在存儲時以簇為單位,其中2號簇被分配給根目錄使用。每個目錄項(xiàng)占用32個字節(jié),可以是長文件名目錄項(xiàng)、文件目錄項(xiàng)、子目錄項(xiàng)等。本系統(tǒng)使用短文件名。

        3.2 本文件系統(tǒng)設(shè)計

        本系統(tǒng)在eMMC上移植FAT32文件系統(tǒng)。系統(tǒng)上電后,計算機(jī)通過高速USB接口將eMMC識別為一個USB大容量存儲設(shè)備,因而不需要進(jìn)行分區(qū)。系統(tǒng)數(shù)據(jù)帶寬為5 MB/s,存儲時間為3 min,則單個文件占用的最大存儲容量為900 MB,本系統(tǒng)設(shè)定的單個文件固定大小為2 000 MB。設(shè)定FAT32文件系統(tǒng)的DBR參數(shù)如下:每扇區(qū)字節(jié)數(shù)為512、每個簇占用32個扇區(qū)、保留扇區(qū)數(shù)為32、FAT表數(shù)為1、每個FAT表所用扇區(qū)數(shù)為28 225、根目錄第1簇的簇號為2,計算出單個文件占用128 000個簇,系統(tǒng)文件使用短文件名。

        4 測 試

        4.1 文件系統(tǒng)

        系統(tǒng)上電后,計算機(jī)可將eMMC識別為一個USB大容量存儲設(shè)備,可用容量為55.1 GB,計算機(jī)識別eMMC如圖4所示。

        圖4 計算機(jī)識別eMMC

        打開USB設(shè)備,可以看到設(shè)備內(nèi)存在兩個文件DATA_001和DATA_002,并且每個文件大小為2 048 000 KB,即2 000 MB,與系統(tǒng)設(shè)定的文件大小一致,文件內(nèi)容如圖5所示。

        圖5 文件內(nèi)容

        用WinHex打開USB設(shè)備,可以看到文件系統(tǒng)結(jié)構(gòu)如圖6所示。

        圖6 文件系統(tǒng)結(jié)構(gòu)

        使用WinHex打開啟動扇區(qū),F(xiàn)AT32文件系統(tǒng)的引導(dǎo)扇區(qū)DBR數(shù)據(jù)如圖7所示。

        圖7 引導(dǎo)扇區(qū)DBR

        可以看到每扇區(qū)字節(jié)數(shù)為512、每個簇為32扇區(qū)、保留扇區(qū)數(shù)為32、FAT表數(shù)為1即FAT1、每個FAT的扇區(qū)數(shù)為28 225、根目錄起始簇號是2,與設(shè)定的參數(shù)一致。

        4.2 存 儲

        (1)根目錄起始偏移地址定位

        根目錄起始扇區(qū)=保留扇區(qū)數(shù)+FAT×1+(起始簇-2)×每簇的扇區(qū)數(shù),由引導(dǎo)扇區(qū)DBR中可知根目錄起始簇號為2,所以求得根目錄起始扇區(qū)為32+28 225+(2-2)×32=28 257,則FAT表所在的起始偏移位置為DCC200。DCC200處的內(nèi)容如圖8所示,可以看到根目錄起始扇區(qū)與圖6顯示一致。

        圖8 根目錄起始偏移地址

        (2)第一個文件位置的定位

        將系統(tǒng)的多路串口數(shù)據(jù)以數(shù)據(jù)流形式寫入數(shù)據(jù)區(qū)。第一個文件開始扇區(qū)=根目錄開始扇區(qū)+(簇編號-2)×每簇的扇區(qū)數(shù),第一個文件簇編號為128,則第一個文件扇區(qū)為28 257+(128-2)×32=32 289,則第一個文件所在的起始偏移位置為FC400,第一個文件數(shù)據(jù)如圖9所示,可以看出第一個文件扇區(qū)地址與圖6顯示的一致,且數(shù)據(jù)為連續(xù)數(shù)據(jù)流。

        圖9 第一個文件數(shù)據(jù)

        4.3 數(shù)據(jù)導(dǎo)出

        系統(tǒng)記錄的數(shù)據(jù)是直接通過eMMC寫驅(qū)動寫入記錄文件數(shù)據(jù)區(qū),可以通過USB直接復(fù)制記錄文件實(shí)現(xiàn)數(shù)據(jù)導(dǎo)出。復(fù)制文件DATA_001到計算機(jī)桌面,數(shù)據(jù)導(dǎo)出過程如圖10所示。

        圖10 數(shù)據(jù)導(dǎo)出過程

        結(jié) 語

        猜你喜歡
        塊數(shù)存儲設(shè)備扇區(qū)
        比薩里的“三角形數(shù)”
        移多補(bǔ)少
        分階段調(diào)整增加扇區(qū)通行能力策略
        南北橋(2022年2期)2022-05-31 04:28:07
        U盤故障排除經(jīng)驗(yàn)談
        Windows 7下USB存儲設(shè)備接入痕跡的證據(jù)提取
        基于Flash芯片的新型存儲設(shè)備數(shù)據(jù)恢復(fù)技術(shù)研究
        基于貝葉斯估計的短時空域扇區(qū)交通流量預(yù)測
        重建分區(qū)表與FAT32_DBR研究與實(shí)現(xiàn)
        用批處理管理計算機(jī)USB設(shè)備的使用
        怎樣切,塊數(shù)最多?
        成人国产精品免费视频| 久久综合九色综合久久久| 中文字幕人妻在线少妇完整版| 国产在线拍91揄自揄视精品91| 亚洲天堂免费成人av| 亚洲不卡av二区三区四区| 精品人妻久久一区二区三区| 欧美性受xxxx黑人猛交| 97日日碰人人模人人澡| 欧美国产精品久久久乱码| 大地资源网更新免费播放视频| 国产成人精品三级麻豆| 无码人妻精品一区二区三区下载| 极品少妇被猛的白浆直喷白浆| 国产精品一区二区久久乐下载 | 欧美a级在线现免费观看| 久久青草免费视频| 国产一线视频在线观看高清 | 国产精品亚洲av一区二区三区 | 潮喷大喷水系列无码久久精品| 亚洲熟妇少妇任你躁在线观看无码| 人人妻人人澡人人爽国产一区| 成人免费a级毛片| 精品国精品国产自在久国产应用| 在线精品国内视频秒播| 丰满少妇人妻无码超清| 日本一区二区三区看片| 手机在线播放成人av| 久久久99精品免费视频| 国产成人精品免费视频大全软件| 曰本女人与公拘交酡| 国内精品伊人久久久久影院对白| 日本公妇在线观看中文版| 精品2021露脸国产偷人在视频 | 明星性猛交ⅹxxx乱大交| 国产三级在线视频播放| 国产成人精品免费久久久久| 亚洲国产一区二区三区在观看 | 日本韩国一区二区高清| 老熟妇乱子伦牲交视频| 中文字幕人妻无码一夲道|