基于Flash的(de)大(dà)容量高(gāo)速數據記錄儀設計

     現今嵌入式存儲産品已滲透進人(rén)們生活工作中的(de)方方面面,從ATM 機到手持通(tōng)訊設備。社會對(duì)嵌入式産品的(de)性能也(yě)有越來(lái)越高(gāo)的(de)要求:大(dà)容量,高(gāo)速度,斷電保護,體積限制等等。當前數據記錄儀的(de)容量和(hé)速度普遍偏小。本文旨在研究一種的(de)數據存儲容量達512MB 高(gāo)速數據記錄儀,它可(kě)以用(yòng)于多(duō)路信号采集系統中。重點研究在嵌入式linux 系統平台的(de)架構下(xià)基于NandFlash 的(de)存儲技術。

引言

FLASH 是一種不揮發性内存,在無電流供應的(de)條件下(xià)也(yě)能夠長(cháng)久地保持數據,相對(duì)于傳統的(de)存儲介質具有無可(kě)比拟的(de)優勢。目前主要的(de)閃存分(fēn)爲兩類:Intel 首先開發的(de)NOR flash 和(hé)東芝發布的(de)NandFlash。

Nor FLASH 的(de)特點是芯片内執行。應用(yòng)程序可(kě)以直接在閃存内運行。不必再把代碼讀到系統RAM 中。NOR 的(de)傳輸效率很高(gāo),但是寫入和(hé)擦除速度很低。Nandflash 存儲單元的(de)讀寫是以頁和(hé)塊爲單位來(lái)進行,這(zhè)種結構最大(dà)的(de)優點在于容量可(kě)以做(zuò)得(de)很大(dà),NAND 閃存的(de)成本較低,有利于大(dà)規模普及。主要功能是存儲資料。故而現在碼相機閃存卡和(hé)MP3 播放器中存儲設備幾乎全部是NandFlash。現在大(dà)部分(fēn)的(de)嵌入式設備廠商出于成本的(de)考慮都選擇了(le)NandFlash 作爲存儲設備。這(zhè)樣增加了(le)軟件設計的(de)複雜(zá)度,降低了(le)系統效率而且也(yě)限制了(le)Flash 容量。

結合兩類閃存的(de)優缺點,本文中我們選擇NandFlash 作爲數據記錄儀上午數據存儲器,norflash 作爲數據記錄儀的(de)程序存儲器。

圖 1:系統整體結構圖圖

數據記錄儀設計整體包括兩塊,其部分(fēn)是數據采集模塊一部分(fēn)是數據存儲模塊,用(yòng)TLC2578 芯片來(lái)實現數據采集AD 轉換,系統的(de)調度核心是ARM 處理(lǐ)器,在這(zhè)裏使用(yòng)S3c2440,ARM 主要負責核心處理(lǐ)和(hé)控制。存儲器負責程序和(hé)數據的(de)存儲,其中Nand FLASH 存儲數據文件,Nor Flash 負責存儲bootloader,操作系統内核和(hé)文件系統,SDRAM 存儲系統運行時(shí)的(de)程序和(hé)數據,ARM 通(tōng)過GPIO 連接相關繼電器、觸發設備、輸出電壓控制設備、以及特定設備采樣A/D 并進行驅動。

S3C2440 是三星公司的(de)ARM920T 的(de)ARM 控制器:支持32 b 的(de)高(gāo)速AMBA 總線接口;帶有MMU,可(kě)以進行Linux 操作系統的(de)移植;支持大(dà)頁NAND 閃存控制器。NandFlash 芯片選用(yòng)K9F4G08U0M,這(zhè)是Samsung 生産的(de)512 MB 的(de)NAND Flash 存儲器。内部存儲結構爲(2K+64)字節×32 頁×4 096 塊,NAND Flash 接口信号比較少,數據線寬度隻有8bit,CLE 和(hé)ALE 兩個(gè)引腳信号用(yòng)來(lái)區(qū)分(fēn)總線上的(de)數據類型,沒有地址總線。Nor Flash 采用(yòng)16MX16 位的(de)E28F128J3A,NORFlash 接口與系統總路線完全匹配,16 個(gè)數據輸入輸出引腳,可(kě)以連接在系統總線上。NORFlash 有三個(gè)芯片片選引腳信号,選用(yòng)作爲片選信号,與處理(lǐ)器引腳相連。BYTE接高(gāo)電平,表示Flash 在16 位數據傳輸模式下(xià)。

系統軟件組成

本系統的(de)軟件部分(fēn)包括應用(yòng)程序和(hé)系統程序,應用(yòng)程序主要是 AD 采集和(hé)讀寫Flash,見圖2,而系統程序就是應用(yòng)程序工作的(de)軟件平台。它由以下(xià)部分(fēn)組成:系統引導程序、嵌入式操作系統linux 内核、文件系統。

系統引導程序負責将操作系統内核固化(huà)到Flash 中和(hé)系統初始化(huà)工作,然後将系統控制權交給操作系統。在本文裏我們使用(yòng)uboot 作爲系統引導程序。嵌入式操作系統内核是嵌入式系統加電運行後的(de)管理(lǐ)平台,負責實時(shí)性任務和(hé)多(duō)任務的(de)管理(lǐ),這(zhè)裏選擇嵌入式linux 内核。

文件系統是對(duì)一個(gè)存儲設備上的(de)數據和(hé)元數據進行組織的(de)機制。Linux 文件系統接口實現爲分(fēn)層的(de)體系結構,從而将用(yòng)戶接口層、文件系統實現和(hé)操作存儲設備的(de)驅動程序分(fēn)隔開。JFFS2 是專門針對(duì)嵌入式系統中的(de)Flash 存儲器的(de)特性而設計的(de)一種日志文件系統。YAFFS2 支持大(dà)頁面的(de)NAND 設備,并且對(duì)大(dà)頁面的(de)NAND 設備做(zuò)了(le)優化(huà)。

軟件平台固化(huà)在Nor Flash 中。根據軟件平台的(de)内容 對(duì)Nor Flash 的(de)地址空間進行分(fēn)區(qū),這(zhè)裏分(fēn)三個(gè)區(qū),分(fēn)别存放bootloader、Linux 内核和(hé)文件系統。

NandFlash 驅動設計

NandFlash 驅動程序框架

按照(zhào) linux 下(xià)驅動編寫規範編寫nand flash 驅動,其實主要工作就是實現下(xià)面這(zhè)個(gè)結構體中的(de)函數。

s3c2440_nand_drive 這(zhè)個(gè)結構體用(yòng)于向内核注冊Nand Flash 設備,它會被platform_driver_register 函數調用(yòng)到。其中s3c2440_nand_probe 是最重要的(de),它完成對(duì)nand 設備的(de)探測。

Nand_scan 是在初始化(huà)nand 的(de)時(shí)候對(duì)nand 進行的(de)一步非常好重要的(de)操作,在nand_scan 中會對(duì)我們所寫的(de)關于特定芯片的(de)讀寫函數重載到nand_chip 結構中去,并會将mtd_info 結構體中的(de)函數用(yòng)nand 的(de)函數來(lái)重載,實現了(le)mtd 到底層驅動的(de)聯系。并且在nand_scan 函數中會通(tōng)過讀取nand 芯片的(de)設備号和(hé)廠家号自動在芯片列表中尋找相應的(de)型号和(hé)參數,并将其注冊進去。

NandFlash 讀頁操作函數

NandFlash 讀數據操作以頁爲單位,讀數據首先寫入讀數據命令00H(如圖3),然後輸入要讀取頁的(de)地址,接著(zhe)從數據寄存器中讀取數據,最後進行ECC 校驗。

 轉載互聯網:http://www.donews.com/tele/201011/265280.shtm

my boyfriend thinks i cheated link how to cheat on your boyfriend

本文關鍵詞:
相關區(qū)域關鍵字:

河北百拓自動化科技有限公司

服務電話(huà): 400-900-5633

銷售熱(rè)線: 13795321951

郵 編:201500

地址:中國.上海.金山

Copyright @ 上海繹捷版權所有    京ICP證000000号

(周一到周六:9:00-17:00)

掃一掃,關注官方微信

分(fēn)享到: