掃描二維碼
隨時(shí)隨地手機(jī)看文章
現(xiàn)今嵌入式存儲產(chǎn)品已滲透進(jìn)人們生活工作中的方方面面,從ATM 機(jī)到手持通訊設(shè)備。社會對嵌入式產(chǎn)品的性能也有越來越高的要求:大容量,高速度,斷電保護(hù),體積限制等等。當(dāng)前數(shù)據(jù)記錄儀的容量和速度普遍偏小。本文旨在研究一種的數(shù)據(jù)存儲容量達(dá)512MB 高速數(shù)據(jù)記錄儀,它可以用于多路信號采集系統(tǒng)中。重點(diǎn)研究在嵌入式linux 系統(tǒng)平臺的架構(gòu)下基于NandFlash 的存儲技術(shù)。
引言
FLASH 是一種不揮發(fā)性內(nèi)存,在無電流供應(yīng)的條件下也能夠長久地保持?jǐn)?shù)據(jù),相對于傳統(tǒng)的存儲介質(zhì)具有無可比擬的優(yōu)勢。目前主要的閃存分為兩類:Intel 首先開發(fā)的NOR flash 和東芝發(fā)布的NandFlash。
Nor FLASH 的特點(diǎn)是芯片內(nèi)執(zhí)行。應(yīng)用程序可以直接在閃存內(nèi)運(yùn)行。不必再把代碼讀到系統(tǒng)RAM 中。NOR 的傳輸效率很高,但是寫入和擦除速度很低。Nandflash 存儲單元的讀寫是以頁和塊為單位來進(jìn)行,這種結(jié)構(gòu)最大的優(yōu)點(diǎn)在于容量可以做得很大,NAND 閃存的成本較低,有利于大規(guī)模普及。主要功能是存儲資料。故而現(xiàn)在碼相機(jī)閃存卡和MP3 播放器中存儲設(shè)備幾乎全部是NandFlash。現(xiàn)在大部分的嵌入式設(shè)備廠商出于成本的考慮都選擇了NandFlash 作為存儲設(shè)備。這樣增加了軟件設(shè)計(jì)的復(fù)雜度,降低了系統(tǒng)效率而且也限制了Flash 容量。
結(jié)合兩類閃存的優(yōu)缺點(diǎn),本文中我們選擇NandFlash 作為數(shù)據(jù)記錄儀上午數(shù)據(jù)存儲器,norflash 作為數(shù)據(jù)記錄儀的程序存儲器。
圖 1:系統(tǒng)整體結(jié)構(gòu)圖圖
數(shù)據(jù)記錄儀設(shè)計(jì)整體包括兩塊,其部分是數(shù)據(jù)采集模塊一部分是數(shù)據(jù)存儲模塊,用TLC2578 芯片來實(shí)現(xiàn)數(shù)據(jù)采集AD 轉(zhuǎn)換,系統(tǒng)的調(diào)度核心是ARM 處理器,在這里使用S3c2440,ARM 主要負(fù)責(zé)核心處理和控制。存儲器負(fù)責(zé)程序和數(shù)據(jù)的存儲,其中Nand FLASH 存儲數(shù)據(jù)文件,Nor Flash 負(fù)責(zé)存儲bootloader,操作系統(tǒng)內(nèi)核和文件系統(tǒng),SDRAM 存儲系統(tǒng)運(yùn)行時(shí)的程序和數(shù)據(jù),ARM 通過GPIO 連接相關(guān)繼電器、觸發(fā)設(shè)備、輸出電壓控制設(shè)備、以及特定設(shè)備采樣A/D 并進(jìn)行驅(qū)動。
S3C2440 是三星公司的ARM920T 的ARM 控制器:支持32 b 的高速AMBA 總線接口;帶有MMU,可以進(jìn)行Linux 操作系統(tǒng)的移植;支持大頁NAND 閃存控制器。NandFlash 芯片選用K9F4G08U0M,這是Samsung 生產(chǎn)的512 MB 的NAND Flash 存儲器。內(nèi)部存儲結(jié)構(gòu)為(2K+64)字節(jié)×32 頁×4 096 塊,NAND Flash 接口信號比較少,數(shù)據(jù)線寬度只有8bit,CLE 和ALE 兩個(gè)引腳信號用來區(qū)分總線上的數(shù)據(jù)類型,沒有地址總線。Nor Flash 采用16MX16 位的E28F128J3A,NORFlash 接口與系統(tǒng)總路線完全匹配,16 個(gè)數(shù)據(jù)輸入輸出引腳,可以連接在系統(tǒng)總線上。NORFlash 有三個(gè)芯片片選引腳信號,選用作為片選信號,與處理器引腳相連。BYTE接高電平,表示Flash 在16 位數(shù)據(jù)傳輸模式下。
系統(tǒng)軟件組成
本系統(tǒng)的軟件部分包括應(yīng)用程序和系統(tǒng)程序,應(yīng)用程序主要是 AD 采集和讀寫Flash,見圖2,而系統(tǒng)程序就是應(yīng)用程序工作的軟件平臺。它由以下部分組成:系統(tǒng)引導(dǎo)程序、嵌入式操作系統(tǒng)linux 內(nèi)核、文件系統(tǒng)。
系統(tǒng)引導(dǎo)程序負(fù)責(zé)將操作系統(tǒng)內(nèi)核固化到Flash 中和系統(tǒng)初始化工作,然后將系統(tǒng)控制權(quán)交給操作系統(tǒng)。在本文里我們使用uboot 作為系統(tǒng)引導(dǎo)程序。嵌入式操作系統(tǒng)內(nèi)核是嵌入式系統(tǒng)加電運(yùn)行后的管理平臺,負(fù)責(zé)實(shí)時(shí)性任務(wù)和多任務(wù)的管理,這里選擇嵌入式linux 內(nèi)核。
文件系統(tǒng)是對一個(gè)存儲設(shè)備上的數(shù)據(jù)和元數(shù)據(jù)進(jìn)行組織的機(jī)制。Linux 文件系統(tǒng)接口實(shí)現(xiàn)為分層的體系結(jié)構(gòu),從而將用戶接口層、文件系統(tǒng)實(shí)現(xiàn)和操作存儲設(shè)備的驅(qū)動程序分隔開。JFFS2 是專門針對嵌入式系統(tǒng)中的Flash 存儲器的特性而設(shè)計(jì)的一種日志文件系統(tǒng)。YAFFS2 支持大頁面的NAND 設(shè)備,并且對大頁面的NAND 設(shè)備做了優(yōu)化。
軟件平臺固化在Nor Flash 中。根據(jù)軟件平臺的內(nèi)容 對Nor Flash 的地址空間進(jìn)行分區(qū),這里分三個(gè)區(qū),分別存放bootloader、Linux 內(nèi)核和文件系統(tǒng)。[!--empirenews.page--]
NandFlash 驅(qū)動設(shè)計(jì)
NandFlash 驅(qū)動程序框架
按照 linux 下驅(qū)動編寫規(guī)范編寫nand flash 驅(qū)動,其實(shí)主要工作就是實(shí)現(xiàn)下面這個(gè)結(jié)構(gòu)體中的函數(shù)。
s3c2440_nand_drive 這個(gè)結(jié)構(gòu)體用于向內(nèi)核注冊Nand Flash 設(shè)備,它會被platform_driver_register 函數(shù)調(diào)用到。其中s3c2440_nand_probe 是最重要的,它完成對nand 設(shè)備的探測。
Nand_scan 是在初始化nand 的時(shí)候?qū)and 進(jìn)行的一步非常好重要的操作,在nand_scan 中會對我們所寫的關(guān)于特定芯片的讀寫函數(shù)重載到nand_chip 結(jié)構(gòu)中去,并會將mtd_info 結(jié)構(gòu)體中的函數(shù)用nand 的函數(shù)來重載,實(shí)現(xiàn)了mtd 到底層驅(qū)動的聯(lián)系。并且在nand_scan 函數(shù)中會通過讀取nand 芯片的設(shè)備號和廠家號自動在芯片列表中尋找相應(yīng)的型號和參數(shù),并將其注冊進(jìn)去。
NandFlash 讀頁操作函數(shù)
NandFlash 讀數(shù)據(jù)操作以頁為單位,讀數(shù)據(jù)首先寫入讀數(shù)據(jù)命令00H(如圖3),然后輸入要讀取頁的地址,接著從數(shù)據(jù)寄存器中讀取數(shù)據(jù),最后進(jìn)行ECC 校驗(yàn)。
NandFlash 寫操作
寫操作其實(shí)就是對頁進(jìn)行編程命令。見圖4,首先寫入80h 開始編程模式,接下來寫入地址和數(shù)據(jù); 最后寫入10h 表示編程結(jié)束。程序如下:
圖3:讀NandFlash 流程
圖4: 寫NandFlash 流程[!--empirenews.page--]
NAND Flash 塊擦除
本論文所用到的Nand Flash 的塊大小是32X(2k+64)Byte,整塊擦除。命令代碼流程:首先寫入60h 進(jìn)入擦寫模式,然后輸入塊地址,接下來寫入D0h, 表示擦寫結(jié)束。
測試結(jié)果
在測試 Nand Flash 的讀寫速度時(shí),我們通過TFTP 將數(shù)據(jù)下載到RAM 中,Nand Flash 進(jìn)行讀、編程、擦寫測試。這樣可以比較真實(shí)的測試Nand Flash 的讀寫速度,測試結(jié)果表明從NandFlash 讀4MBbytes 的數(shù)據(jù)所用的時(shí)間是3886ms,向Nand Flash 寫4Mbytes 數(shù)據(jù)所用的時(shí)間是14026ms,擦除NandFlash 中的4MByte 需要的時(shí)間是6 毫秒。這個(gè)速度還是比較理想的,完成對32 路AD 采集過來數(shù)據(jù)的實(shí)時(shí)存儲是足夠的。而且512MByte 的數(shù)據(jù)存儲空間對于數(shù)據(jù)記錄儀而言是一個(gè)非常大的容量。
結(jié)論
測試結(jié)果表明數(shù)據(jù)記錄儀存儲速度是比較理想的,完成對AD 采集過來數(shù)據(jù)的實(shí)時(shí)存儲是足夠的。而且512MByte 的數(shù)據(jù)存儲空間對于數(shù)據(jù)記錄儀而言是一個(gè)非常大的容量。
Flash Memory 是一種非易失性的存儲器。在嵌入式系統(tǒng)中通常用于存放系統(tǒng)、應(yīng)用和數(shù)據(jù)等。在 PC 系統(tǒng)中,則主要用在固態(tài)硬盤以及主板 BIOS 中。
關(guān)鍵字: Flash 存儲器 嵌入式系統(tǒng)TD-SCDMA是英文Time Division-Synchronous Code Division Multiple Access(時(shí)分同步碼分多址)的簡稱,它是以我國知識產(chǎn)權(quán)為主的、被國際上廣泛接受和認(rèn)可的無線通信國...
關(guān)鍵字: TD-SCDMA HSPA+ 高速數(shù)據(jù)韓國首爾2021年11月9日 /美通社/ -- 今日,三星宣布成功開發(fā)出其業(yè)界首款基于14納米的下一代移動DRAM -- LPDDR5X(低功耗雙倍數(shù)據(jù)速率5X),將引領(lǐng)超高速數(shù)據(jù)服務(wù)市場的增長。 三星成功開發(fā)LPDD...
關(guān)鍵字: 高速數(shù)據(jù) 超高速 三星摘 要:為解決實(shí)驗(yàn)室某些海洋觀測類IO設(shè)備價(jià)格昂貴、體積較大、數(shù)量較少的問題,文中設(shè)計(jì)了一款I(lǐng)O設(shè)備模擬器。IO模擬器是一款模擬IO設(shè)備指令與相應(yīng)響應(yīng)的模塊,系統(tǒng)以STM32F103為主控制器件,將Keil MDK-AR...
關(guān)鍵字: 模擬器 STM32 Flash 設(shè)備學(xué)習(xí)