999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

STM32與eMMC通信的存儲系統設計

2019-01-17 03:11:14,,,
單片機與嵌入式系統應用 2018年12期
關鍵詞:系統

,,,

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

引 言

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

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

1 系統硬件設計

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

圖1 系統總體框圖

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

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

2 eMMC驅動設計

圖2 多塊讀過程時序

數據記錄和文件系統的實現均以存儲設備的底層驅動為基礎,本系統存儲設備為eMMC,其底層驅動主要包括eMMC初始化,eMMC的讀、寫等。

2.1 eMMC初始化

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

2.2 eMMC讀/寫驅動操作

eMMC和STM32之間的數據傳輸是通過DAT數據線進行的,本系統數據寬度為4位,數據讀寫過程在SDR模式下進行。

2.2.1 讀驅動

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

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

2.2.2 寫驅動

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

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

圖3 多塊寫過程時序

3 FAT32文件系統設計

為了有效管理eMMC寫入的數據,使記錄數據能夠以文件形式被訪問和導出,必須將eMMC中的數據以文件形式存儲,需要在eMMC中創建常用的可以被Windows系統訪問的文件系統。本設計中采用FAT32文件系統。

3.1 FAT32文件系統簡介

FAT32文件系統是Windows98操作系統為改善磁盤管理而推出的一項新的文件管理系統。FAT32文件系統實際上就是用32位數據來描述磁盤簇分配[8]。FAT32分區的數據結構由MBR、DBR、保留扇區、FAT表和目錄及數據區5部分組成。FAT32文件系統的結構特點如下:

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

② DBR即操作系統引導扇區。一般占用512字節,該扇區由跳轉指令、操作系統名稱和版本號、BPB區、擴展BPB區、結束標志和DOS引導程序區組成。其中BPB記錄本分區的每簇扇區數、每扇區字節數、FAT表數、FAT表扇區數及根目錄簇號等重要參數。表1為FAT32文件系統的DBR數據結構。

表1 FAT32文件系統的DBR數據結構

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

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

⑤ 目錄及數據區主要由根目錄、子目錄和文件內容三個部分組成[11]。在存儲時以簇為單位,其中2號簇被分配給根目錄使用。每個目錄項占用32個字節,可以是長文件名目錄項、文件目錄項、子目錄項等。本系統使用短文件名。

3.2 本文件系統設計

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

4 測 試

4.1 文件系統

系統上電后,計算機可將eMMC識別為一個USB大容量存儲設備,可用容量為55.1 GB,計算機識別eMMC如圖4所示。

圖4 計算機識別eMMC

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

圖5 文件內容

用WinHex打開USB設備,可以看到文件系統結構如圖6所示。

圖6 文件系統結構

使用WinHex打開啟動扇區,FAT32文件系統的引導扇區DBR數據如圖7所示。

圖7 引導扇區DBR

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

4.2 存 儲

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

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

圖8 根目錄起始偏移地址

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

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

圖9 第一個文件數據

4.3 數據導出

系統記錄的數據是直接通過eMMC寫驅動寫入記錄文件數據區,可以通過USB直接復制記錄文件實現數據導出。復制文件DATA_001到計算機桌面,數據導出過程如圖10所示。

圖10 數據導出過程

結 語

猜你喜歡
系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
基于UG的發射箱自動化虛擬裝配系統開發
半沸制皂系統(下)
FAO系統特有功能分析及互聯互通探討
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
一德系統 德行天下
PLC在多段調速系統中的應用
主站蜘蛛池模板: 亚洲国产成人久久精品软件| 精品久久久久无码| 精品偷拍一区二区| 国模视频一区二区| 欧美性精品不卡在线观看| 91美女视频在线观看| 国产又爽又黄无遮挡免费观看 | 国产综合网站| 国产成人久视频免费| 青青青视频免费一区二区| 任我操在线视频| 狠狠躁天天躁夜夜躁婷婷| 91热爆在线| 天天做天天爱夜夜爽毛片毛片| 丰满的少妇人妻无码区| 好吊色国产欧美日韩免费观看| 日韩天堂视频| 9久久伊人精品综合| 免费中文字幕一级毛片| 欧美区一区| 国产成年无码AⅤ片在线| 亚洲天堂精品在线观看| 黄色a一级视频| 国产精品免费露脸视频| 国产一区免费在线观看| 国产裸舞福利在线视频合集| 激情亚洲天堂| 亚洲美女一区二区三区| 国内熟女少妇一线天| 亚洲va在线∨a天堂va欧美va| 夜夜操狠狠操| 精品精品国产高清A毛片| 国产欧美中文字幕| 亚洲精品你懂的| 毛片一区二区在线看| 欧美一区中文字幕| 国产精品无码久久久久久| AV不卡国产在线观看| a级毛片免费看| 2020国产精品视频| 久久永久精品免费视频| 久久成人国产精品免费软件| 久久精品国产91久久综合麻豆自制| 一本大道无码日韩精品影视| 天堂网亚洲系列亚洲系列| 亚洲国产日韩欧美在线| 美女裸体18禁网站| 欧美日韩国产在线观看一区二区三区| 亚洲免费三区| 色老头综合网| 一本色道久久88综合日韩精品| 亚洲精选无码久久久| 欧美a在线看| 国模沟沟一区二区三区| 精品无码一区二区在线观看| 怡红院美国分院一区二区| 天天躁夜夜躁狠狠躁图片| 久久综合伊人 六十路| 狠狠色综合网| 无码高潮喷水在线观看| 国产日韩欧美成人| 欧美啪啪视频免码| 欧美亚洲国产精品久久蜜芽| 成人国产小视频| 亚洲性网站| 国产地址二永久伊甸园| 久久青草精品一区二区三区| 国产精品无码翘臀在线看纯欲| 久久免费视频播放| 亚洲a级毛片| 宅男噜噜噜66国产在线观看| 美女国内精品自产拍在线播放| 久久动漫精品| 国产69精品久久久久孕妇大杂乱| 国产色伊人| 992Tv视频国产精品| 亚洲成综合人影院在院播放| 91久久性奴调教国产免费| 国产喷水视频| 97人人做人人爽香蕉精品| 国产女主播一区| 久久久久亚洲av成人网人人软件|