關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 一種支持多種閃存的自適應(yīng)驅(qū)動(dòng)設(shè)計(jì)

一種支持多種閃存的自適應(yīng)驅(qū)動(dòng)設(shè)計(jì)

作者: 時(shí)間:2012-05-23 來(lái)源:網(wǎng)絡(luò) 收藏

引言

本文引用地址:http://m.butianyuan.cn/article/202324.htm

Flash存儲(chǔ)器具有快速訪問(wèn)、低功耗、尺寸小、重量輕等特性,在系統(tǒng)電源關(guān)閉的情況下依然可保留數(shù)據(jù)。隨著技術(shù)的發(fā)展,F(xiàn)lash因其在性能和成本方面的優(yōu)勢(shì)逐漸成為系統(tǒng)存儲(chǔ)的工業(yè)標(biāo)準(zhǔn)。目前市面上,NOR Flash和NAND Flash是兩種主要的Flash存儲(chǔ)器。因NORFlash能在芯片內(nèi)執(zhí)行程序,一般在非大容量存儲(chǔ)設(shè)備中采用NOR Flash作為程序存儲(chǔ)器和非易失性數(shù)據(jù)存儲(chǔ)器,本文以NOR Flash存儲(chǔ)器為例,闡述一種支持多Flash的自適應(yīng)方法。

產(chǎn)品在批量生產(chǎn)時(shí),同一款產(chǎn)品在不同的生產(chǎn)階段常常會(huì)因價(jià)格或者貨源等原因而采用不同型號(hào)、硬件接口兼容的Flash存儲(chǔ)器,不同的Flash存儲(chǔ)器對(duì)應(yīng)不同的驅(qū)動(dòng)程序。這樣,產(chǎn)品因采用了不同廠商、不同容量、不同型號(hào)的Flash存儲(chǔ)器,導(dǎo)致在一種器件上開(kāi)發(fā)的驅(qū)動(dòng)軟件無(wú)法兼容另外一種器件,而需要對(duì)軟件版本做一些額外的管理工作。當(dāng)前所采用的方法是當(dāng)產(chǎn)品選用不同類型的Flash存儲(chǔ)器后,就添加一個(gè)軟件版本,由生產(chǎn)線工人針對(duì)不同的Flash存儲(chǔ)器來(lái)選擇不同的Bin燒寫文件和不同的軟件版本,這樣不僅生產(chǎn)效率低,而且容易出錯(cuò)。本文

提出一種Flash的驅(qū)動(dòng)自適應(yīng)的實(shí)現(xiàn)方法,對(duì)傳統(tǒng)軟件設(shè)計(jì)方法進(jìn)行改進(jìn),實(shí)現(xiàn)同一驅(qū)動(dòng)軟件同時(shí)支持多Flash存儲(chǔ)器,提高了生產(chǎn)效率。

1 傳統(tǒng)Flash存儲(chǔ)器

1.1 傳統(tǒng)Flash存儲(chǔ)器的驅(qū)動(dòng)模型

NOR Flash的讀取如同RAM和EEPROM一樣不需要特殊的指令,但對(duì)Flash的寫入、復(fù)位、讀取ID等操作則需要特殊的編程指令序列。通常不直接寫入Flash的主要原因是為了防止加電/掉電時(shí)產(chǎn)生的脈沖破壞Flash的原始數(shù)據(jù)。Flash支持的命令集也因器件系列和廠商的不同而不同,因此需要根據(jù)Flash支持的指令集編寫驅(qū)動(dòng)程序。

a.JPG

傳統(tǒng)的Flash存儲(chǔ)器驅(qū)動(dòng)模型如圖1所示。驅(qū)動(dòng)層與Flash指令集相關(guān),提供基本的操作函數(shù)給適配層調(diào)用,不同廠商的Flash指令集不同,對(duì)應(yīng)的驅(qū)動(dòng)層代碼不同。適配層將Flash操作函數(shù)進(jìn)行一系列包裝以實(shí)現(xiàn)某一功能,它為應(yīng)用層提供標(biāo)準(zhǔn)的應(yīng)用接口,適配層代碼在移植過(guò)程中一般不需要修改。應(yīng)用層函數(shù)調(diào)用適配層函數(shù)以實(shí)現(xiàn)某一具體功能。

1.2 Flash常用接口

Flash作為系統(tǒng)的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器,ARM處理器對(duì)Flash的操作有以下幾種:

◆初始化配置

◆讀數(shù)據(jù)

◆寫數(shù)據(jù)

◆擦除

◆擦除狀態(tài)查詢

◆暫停擦除

◆恢復(fù)擦除

1.3 Flash的兼容性設(shè)計(jì)

傳統(tǒng)Flash模型只針對(duì)一種特定指令集的Flash芯片,如配置模塊是針對(duì)Flash_A的時(shí)序和指令集來(lái)編寫的,其對(duì)應(yīng)的軟件為Software_ A,沒(méi)有考慮其兼容性。但在產(chǎn)品的后續(xù)生產(chǎn)過(guò)程中,當(dāng)需要將Flash_A更換為接口兼容的Flash_B時(shí),需要為其重新編寫配置接口模塊,對(duì)應(yīng)的軟件為Software_B。Software_A支持Flash_A,Software_B支持Flash_B,由此就帶來(lái)一個(gè)軟件版本的管理問(wèn)題。

b.JPG

為了便于產(chǎn)品的升級(jí),產(chǎn)品在軟硬件設(shè)計(jì)過(guò)程中往往要考慮其兼容性,硬件的兼容相對(duì)軟件與軟件的兼容要容易得多。如圖2所示,NOR Flash的引腳主要有:8/16位的數(shù)據(jù)總線,地址總線(與Flash大小相關(guān)),控制引腳(OE#、CE#、AVD#、WE#、WP#)。同一系列Flash芯片的電氣特性基本兼容,包括其引腳連接、封裝方式、直流和交流特性等,如Toshiba公司的ty5701111183kc04和Spansion公司的S29NS128N、S29N 128N的引腳基本兼容。

硬件的兼容由芯片廠商來(lái)完成,而軟件的兼容則需要改善Flash驅(qū)動(dòng)模型來(lái)實(shí)現(xiàn)。NOR Flash的生產(chǎn)廠商很多,F(xiàn)lash支持的指令集也岡器件系列和生產(chǎn)廠商的不同而不同。

c.JPG

針對(duì)以上問(wèn)題,本文提出一種Flash存儲(chǔ)器自適應(yīng)的設(shè)計(jì)方法,在傳統(tǒng)Flash驅(qū)動(dòng)模型中添加自適應(yīng)層,同時(shí)在硬件驅(qū)動(dòng)層中添加多種Flash的接口函數(shù)。系統(tǒng)在自適應(yīng)層中自動(dòng)搜索相應(yīng)Flash的函數(shù)接口,從而實(shí)現(xiàn)Software_AB同時(shí)支持Flash_A和Flash_B。自適應(yīng)方法與傳統(tǒng)方法的比較如圖3所示。


上一頁(yè) 1 2 3 4 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉