JEDEC標(biāo)準(zhǔn)(JESD216)S FDP對串行Flash在系統(tǒng)中的應(yīng)用
摘要:JEDEC標(biāo)準(zhǔn)(JESD216)Serial Flash Discoverable Parameter (SFDP)[1]是在串行Flash中建立一個可供查詢的描述串行Flash功能的參數(shù)表。文章主要介紹了這個串行Flash功能參數(shù)表的結(jié)構(gòu)、功能和作用,并給出其在系統(tǒng)設(shè)計(jì)中的具體應(yīng)用。
關(guān)鍵詞:JEDEC JESD216;SFDP;串行Flash;SPI
1 串行Flash的基本介紹
串行Flash是一種SPI接口的NOR Flash,屬于非揮發(fā)性儲存器件,主要被用來存放系統(tǒng)的啟動程序。其特點(diǎn)是體積小、引腳少、接口簡單和易于擴(kuò)展。主要封裝為8個引腳,有片選、數(shù)據(jù)輸入、寫保護(hù)、接地、數(shù)據(jù)輸出、時鐘、暫停和電壓引腳,見圖1。常用一進(jìn)一出的串行數(shù)據(jù)傳輸方式,省去了并行Flash的大量數(shù)據(jù)線、地址線和控制線。有些串行Flash在封裝引腳數(shù)目不變的情況下,通過引腳的功能復(fù)用,還可以支持四進(jìn)四出的數(shù)據(jù)傳輸方式,極大地提升數(shù)據(jù)的輸出速率。目前最大頻率可以支持到104MHz以上,整體數(shù)據(jù)傳輸速率已經(jīng)超過了一般并行Flash的數(shù)據(jù)傳輸速率。在主芯片功能和端口的支持下,串行Flash在一些系統(tǒng)應(yīng)用中可替代并行Flash,不但可以減少系統(tǒng)印制電路板體積,而且可以減少系統(tǒng)的布線,增強(qiáng)了系統(tǒng)整體的電磁兼容性。從整體系統(tǒng)方案的角度來看,相比支持并行Flash的主芯片而言,只支持串行Flash的主芯片可以在存儲端口的引腳數(shù)量上有大幅的減少,不僅有利于主芯片面積的縮減,對于整體的方案報(bào)價(jià)也非常有利。因此,串行Flash受到越來越多開發(fā)和設(shè)計(jì)人員的接受和青睞,也被廣泛地應(yīng)用在計(jì)算機(jī)、消費(fèi)類電子、無線通訊、車載和工控等眾多領(lǐng)域。
2 JESD216 SFDP標(biāo)準(zhǔn)產(chǎn)生的背景
隨著串行Flash市場不斷的擴(kuò)張,串行Flash的指令、功能和特性也日趨增多,而且各個廠商在串行Flash器件上的功能和特性也無法完全一致。例如,在扇區(qū)擦除功能上,支持4kB、32kB、64kB的擦除操作雖然分別有相應(yīng)的指令,但是不同廠商的器件還是會存在一些指令和功能的差異。為了準(zhǔn)確地完成系統(tǒng)的兼容性測試或者是考慮到容量的升級,開發(fā)和設(shè)計(jì)人員需要詳細(xì)閱讀每一份串行Flash的產(chǎn)品規(guī)范,了解引腳的分布和定義是否一致,操作所需要用到的功能指令是否完全兼容,從而對底層設(shè)備驅(qū)動軟件做相應(yīng)的增補(bǔ)和修改,甚至改動到硬件,這無疑給項(xiàng)目的設(shè)計(jì)、維護(hù)和更新帶來一些不便。因此,串行Flash器件迫切需要一個統(tǒng)一規(guī)范的功能參數(shù)表,可以讓開發(fā)和設(shè)計(jì)人員明確地讀取到每一個所使用串行Flash的功能和參數(shù)特性。JEDEC的新規(guī)范JESD216 SFDP就是在這樣的一個市場環(huán)境下孕育而生的。
3 JESD216 SFDP的功能和結(jié)構(gòu)
SFDP是JEDEC發(fā)布的JESD216的一個新標(biāo)準(zhǔn),目前的版本號是V1.0,用來規(guī)范存放串行Flash相關(guān)信息的功能參數(shù)表。其實(shí)現(xiàn)方式是在串行Flash中內(nèi)置一個可供查詢的統(tǒng)一規(guī)范的功能參數(shù)表,不占用串行Flash正常的容量大小。目前SFDP支持的讀取頻率為50MHz以下,即盡管串行Flash可以支持更高的系統(tǒng)頻率,但是系統(tǒng)主芯片只需要在50MHz及以下的頻率下即可順利讀取到SFDP的資料。為進(jìn)一步便于系統(tǒng)的靈活讀取,該標(biāo)準(zhǔn)還支持串行Flash的一進(jìn)一出、兩進(jìn)兩和四進(jìn)四出的數(shù)據(jù)傳輸方式。SFDP的數(shù)據(jù)在出廠時就被固定住,無法修改,只供查詢使用。其作用有些類似于并行Flash中的公共閃存接口Common Flash Interface(CFI)的功能。開發(fā)和設(shè)計(jì)人員在通過0x5A的操作指令來讀取查詢SFDP時,可以將串行Flash包含其廠商識別碼等一系列的功能和參數(shù)信息快速地呈現(xiàn)出來。這樣不僅增加了器件本身的辨識度,提升了主芯片與串行Flash的溝通運(yùn)作效能和便利性,也讓開發(fā)和設(shè)計(jì)人員可以快速了解到不同串行Flash之間的特性和差異,從而在底層設(shè)備驅(qū)動軟件上做出相應(yīng)的調(diào)整,完成設(shè)計(jì)和兼容測試。
在SFDP的功能和結(jié)構(gòu)上,SFDP標(biāo)準(zhǔn)強(qiáng)制規(guī)范必須要有SFDP標(biāo)題檔、1st參數(shù)標(biāo)題檔和對應(yīng)的JEDEC Flash基本參數(shù)表格,結(jié)構(gòu)見圖2。SFDP標(biāo)題檔主要設(shè)置了供開發(fā)和設(shè)計(jì)人員查詢確認(rèn)的簽名信息0X50444653(“S”、“F”、“D”、“P”的ASCII碼),在讀取確認(rèn)簽名信息正確后,方可認(rèn)為該串行Flash器件支持SFDP標(biāo)準(zhǔn)。在JEDEC Flash基本參數(shù)表格里面規(guī)范和定義了該器件的一些最基本的讀取方式、指令內(nèi)容、扇區(qū)大小和芯片容量等信息。其次,各家串行Flash廠商可以按照SFDP的規(guī)范依次增加2nd、3rd參數(shù)標(biāo)題檔以及對應(yīng)的參數(shù)表來擴(kuò)充一些參數(shù)特性,增強(qiáng)器件本體的參數(shù)識別度,結(jié)構(gòu)見圖3。在廠商標(biāo)題檔中,主要規(guī)范和預(yù)留了串行Flash的廠商ID識別號、SFDP版本號、參數(shù)長度以及存放參數(shù)表格的地址指針。其參數(shù)表格中則可以讓廠商根據(jù)可以放入其器件的一些其它的參數(shù)信息如電壓、特殊指令和功能支持的狀況,也可以在讀取中明確地顯示出來,但不是SFDP標(biāo)準(zhǔn)所強(qiáng)制規(guī)范的,屬于可選項(xiàng)。
4 在系統(tǒng)軟件上讀取SFDP的操作流程及代碼
系統(tǒng)對于串行Flash的任何操作,在軟件上必須按照相應(yīng)的指令和規(guī)范的流程才可以正確地操作串行Flash。讀取SFDP也必須按照規(guī)定的操作流程。開啟片選選通芯片——>發(fā)送0x5A的讀取SFDP的指令——>發(fā)送3byte的地址——>發(fā)送1byte的空周期——>在輸出腳上讀取SFDP數(shù)據(jù)——>關(guān)閉片選結(jié)束操作。 通過一進(jìn)一出方式讀取SFDP數(shù)據(jù)的時序如圖4所示。
SFDP參數(shù)表的部分軟件讀取代碼參考如下:
評論