Flash編程器的FPGA方案的實(shí)現(xiàn) 吳 豫,孟憲元 (清華大學(xué)電子工程系 , 北京 100084)
發(fā)布時(shí)間:2007/8/24 0:00:00 訪問次數(shù):615
1 引言
閃速存儲(chǔ)器(Flash Memory)以其集成度高、成本低、使用方便等許多優(yōu)點(diǎn),廣泛應(yīng)用于通訊設(shè)備、辦公設(shè)備、家用電器、醫(yī)療設(shè)備等領(lǐng)域。利用其保存信息的非易失性和在線更新數(shù)據(jù)參數(shù)的特性,可將其作為具有一定靈活性的只讀存儲(chǔ)器(ROM)使用。
現(xiàn)在的數(shù)字電路應(yīng)用系統(tǒng)設(shè)計(jì)中,經(jīng)常遇到大容量的數(shù)據(jù)存儲(chǔ)問題。Flash由于容量大、存儲(chǔ)速度快、體積小、功耗低等諸多優(yōu)點(diǎn),而成為應(yīng)用系統(tǒng)中數(shù)據(jù)存儲(chǔ)器件的首選。由于在研制實(shí)時(shí)信號(hào)處理系統(tǒng)時(shí),需要一塊大容量的Flash來存儲(chǔ)坐標(biāo)變換的數(shù)據(jù)作查找表,因此面臨一個(gè)如何對Flash進(jìn)行編程,將數(shù)據(jù)寫入Flash的問題。由于我們選用的Flash芯片為SST39SF010/020,是最新生產(chǎn)的型號(hào),需要自己開發(fā)編程器來滿足設(shè)計(jì)需要,達(dá)到既經(jīng)濟(jì)又實(shí)用的目的。這一型號(hào)的Flash采用的是標(biāo)準(zhǔn)的5V電壓供電,器件在命令控制下自己產(chǎn)生內(nèi)部的擦除電壓Vpp,從而完成數(shù)據(jù)的寫入和芯片的擦除等各種功能。而FPGA這種大規(guī)模的可編程器件十分適合邏輯電路的設(shè)計(jì),能方便地控制和產(chǎn)生 Flash編程操作中的各種控制命令,實(shí)現(xiàn)編程器的功能。
2 Flash的性能參數(shù)和操作時(shí)序
以最新的Flash芯片型號(hào)SST39SF010/020為例,容量為1/2Mbit(×8)。
它的主要性能有:
● 單一的5.0V電壓讀寫操作;
● 高可靠性,超過100年的數(shù)據(jù)保持能力;
● 快速擦除和字節(jié)編程功能
——扇區(qū)擦除時(shí)間典型值只需7ms;
——片擦除時(shí)間典型值只需15ms;
——字節(jié)編程需時(shí)間典型值只需20微秒;
——片重寫時(shí)間需3ms(SST39SF010)
● 片內(nèi)部產(chǎn)生Vpp編程電壓,實(shí)現(xiàn)自動(dòng)讀寫時(shí)序;
● I/O兼容TTL;
各引腳功能:
Ams~A0:地址輸入 ——提供存儲(chǔ)器地址;
DQ7~DQ0:數(shù)據(jù)輸入/輸出 ——在讀時(shí)序時(shí)輸
出數(shù)據(jù),在寫時(shí)序時(shí)接收輸入的數(shù)據(jù);
CE#:片選使能——當(dāng)CE#為低電平有效;
OE#:輸出使能——選通輸出緩存器;
WE#:寫使能——控制寫時(shí)序;
VDD:接5V電源;
VSS:接地。
在對Flash進(jìn)行編程操作前,必須保證存儲(chǔ)單元為空。如果不為空,就必須先對Flash芯片進(jìn)行擦除操作。由于Flash采用了模塊分區(qū)的陣列結(jié)構(gòu),使得各個(gè)存儲(chǔ)模塊既可以整個(gè)芯片一齊被擦除,還可以使各個(gè)存儲(chǔ)模塊被獨(dú)立的分別擦除。只需在地址和數(shù)據(jù)端寫入不同的操作命令即可實(shí)現(xiàn)不同的擦除操作。
SST39SF010的編程操作分三步驟:第一步是連續(xù)載入三字節(jié)命令的軟件數(shù)據(jù)保護(hù)操作,第二步是寫入字節(jié)地址和字節(jié)數(shù)據(jù),在編程操作過程中,地址是在CE#或WE#的下降沿時(shí)有效,而數(shù)據(jù)則是在CE#或WE#的上升沿時(shí)有效;第三步是芯片內(nèi)部的編程操作,該操作在CE#或WE#的第四個(gè)上升沿有效,隨后該內(nèi)部編程操作在30微秒內(nèi)即可完成。這部分的時(shí)序如圖所示。
Flash的編程操作是自動(dòng)字節(jié)操作,編程時(shí)要特別注意編程時(shí)間參數(shù)和使用的命令集。編程和擦除時(shí)鐘周期的定時(shí)參數(shù)如表所示。
3 FPGA實(shí)現(xiàn)Flash編程器的設(shè)計(jì)
Flash編程器的關(guān)鍵是要保證Flash地址和數(shù)據(jù)信號(hào)在時(shí)序上的嚴(yán)格要求,由SST39SF010的編程和擦除周期時(shí)序參數(shù)得知,它的地址或數(shù)據(jù)信號(hào)的建立和保持時(shí)間的最小時(shí)鐘周期僅為30ns。為此,我們采用了40MHz的晶振作為FPGA的驅(qū)動(dòng)時(shí)鐘,它的最小時(shí)鐘周期為25ns,完全可滿足最小的時(shí)間周期要求。
采用FPGA來實(shí)現(xiàn)Flash編程器,主要是如何對Flash進(jìn)行寫操作,利用VHDL語言編寫的寫操作進(jìn)程表示如下:
process(rst,clkin,wea)--program cycle
variable count:integer range 0 to 900 ;
begin
if(rst='0') then
ce<='1'; ——片選使能
oe<='1'; ——輸出使能
we<='1'; ——寫使能
addr<=(others =>'Z'); ——地址總線
addr_1<=(others =>'0');
dq<=(others =>'Z'); ——數(shù)據(jù)總線
req<='0';
count:=0;
elsif(wea='1') then
if(clkin'event and clkin='1') then
case count is
when 0 =>
ce<='1';
oe<='1';
we<='1';
addr<=(others =>'Z');
dq<=(others =>'Z');
count:=count+1;
when 1 =>
ce<='0';
count:=count+1;
when 2 => ——第一步:軟件保護(hù)命令
addr<="00101010101010101";——5555
dq<="10101010"; ——AA
count:=count+1;
when 3 =>
we<='0';
count:=coun
1 引言
閃速存儲(chǔ)器(Flash Memory)以其集成度高、成本低、使用方便等許多優(yōu)點(diǎn),廣泛應(yīng)用于通訊設(shè)備、辦公設(shè)備、家用電器、醫(yī)療設(shè)備等領(lǐng)域。利用其保存信息的非易失性和在線更新數(shù)據(jù)參數(shù)的特性,可將其作為具有一定靈活性的只讀存儲(chǔ)器(ROM)使用。
現(xiàn)在的數(shù)字電路應(yīng)用系統(tǒng)設(shè)計(jì)中,經(jīng)常遇到大容量的數(shù)據(jù)存儲(chǔ)問題。Flash由于容量大、存儲(chǔ)速度快、體積小、功耗低等諸多優(yōu)點(diǎn),而成為應(yīng)用系統(tǒng)中數(shù)據(jù)存儲(chǔ)器件的首選。由于在研制實(shí)時(shí)信號(hào)處理系統(tǒng)時(shí),需要一塊大容量的Flash來存儲(chǔ)坐標(biāo)變換的數(shù)據(jù)作查找表,因此面臨一個(gè)如何對Flash進(jìn)行編程,將數(shù)據(jù)寫入Flash的問題。由于我們選用的Flash芯片為SST39SF010/020,是最新生產(chǎn)的型號(hào),需要自己開發(fā)編程器來滿足設(shè)計(jì)需要,達(dá)到既經(jīng)濟(jì)又實(shí)用的目的。這一型號(hào)的Flash采用的是標(biāo)準(zhǔn)的5V電壓供電,器件在命令控制下自己產(chǎn)生內(nèi)部的擦除電壓Vpp,從而完成數(shù)據(jù)的寫入和芯片的擦除等各種功能。而FPGA這種大規(guī)模的可編程器件十分適合邏輯電路的設(shè)計(jì),能方便地控制和產(chǎn)生 Flash編程操作中的各種控制命令,實(shí)現(xiàn)編程器的功能。
2 Flash的性能參數(shù)和操作時(shí)序
以最新的Flash芯片型號(hào)SST39SF010/020為例,容量為1/2Mbit(×8)。
它的主要性能有:
● 單一的5.0V電壓讀寫操作;
● 高可靠性,超過100年的數(shù)據(jù)保持能力;
● 快速擦除和字節(jié)編程功能
——扇區(qū)擦除時(shí)間典型值只需7ms;
——片擦除時(shí)間典型值只需15ms;
——字節(jié)編程需時(shí)間典型值只需20微秒;
——片重寫時(shí)間需3ms(SST39SF010)
● 片內(nèi)部產(chǎn)生Vpp編程電壓,實(shí)現(xiàn)自動(dòng)讀寫時(shí)序;
● I/O兼容TTL;
各引腳功能:
Ams~A0:地址輸入 ——提供存儲(chǔ)器地址;
DQ7~DQ0:數(shù)據(jù)輸入/輸出 ——在讀時(shí)序時(shí)輸
出數(shù)據(jù),在寫時(shí)序時(shí)接收輸入的數(shù)據(jù);
CE#:片選使能——當(dāng)CE#為低電平有效;
OE#:輸出使能——選通輸出緩存器;
WE#:寫使能——控制寫時(shí)序;
VDD:接5V電源;
VSS:接地。
在對Flash進(jìn)行編程操作前,必須保證存儲(chǔ)單元為空。如果不為空,就必須先對Flash芯片進(jìn)行擦除操作。由于Flash采用了模塊分區(qū)的陣列結(jié)構(gòu),使得各個(gè)存儲(chǔ)模塊既可以整個(gè)芯片一齊被擦除,還可以使各個(gè)存儲(chǔ)模塊被獨(dú)立的分別擦除。只需在地址和數(shù)據(jù)端寫入不同的操作命令即可實(shí)現(xiàn)不同的擦除操作。
SST39SF010的編程操作分三步驟:第一步是連續(xù)載入三字節(jié)命令的軟件數(shù)據(jù)保護(hù)操作,第二步是寫入字節(jié)地址和字節(jié)數(shù)據(jù),在編程操作過程中,地址是在CE#或WE#的下降沿時(shí)有效,而數(shù)據(jù)則是在CE#或WE#的上升沿時(shí)有效;第三步是芯片內(nèi)部的編程操作,該操作在CE#或WE#的第四個(gè)上升沿有效,隨后該內(nèi)部編程操作在30微秒內(nèi)即可完成。這部分的時(shí)序如圖所示。
Flash的編程操作是自動(dòng)字節(jié)操作,編程時(shí)要特別注意編程時(shí)間參數(shù)和使用的命令集。編程和擦除時(shí)鐘周期的定時(shí)參數(shù)如表所示。
3 FPGA實(shí)現(xiàn)Flash編程器的設(shè)計(jì)
Flash編程器的關(guān)鍵是要保證Flash地址和數(shù)據(jù)信號(hào)在時(shí)序上的嚴(yán)格要求,由SST39SF010的編程和擦除周期時(shí)序參數(shù)得知,它的地址或數(shù)據(jù)信號(hào)的建立和保持時(shí)間的最小時(shí)鐘周期僅為30ns。為此,我們采用了40MHz的晶振作為FPGA的驅(qū)動(dòng)時(shí)鐘,它的最小時(shí)鐘周期為25ns,完全可滿足最小的時(shí)間周期要求。
采用FPGA來實(shí)現(xiàn)Flash編程器,主要是如何對Flash進(jìn)行寫操作,利用VHDL語言編寫的寫操作進(jìn)程表示如下:
process(rst,clkin,wea)--program cycle
variable count:integer range 0 to 900 ;
begin
if(rst='0') then
ce<='1'; ——片選使能
oe<='1'; ——輸出使能
we<='1'; ——寫使能
addr<=(others =>'Z'); ——地址總線
addr_1<=(others =>'0');
dq<=(others =>'Z'); ——數(shù)據(jù)總線
req<='0';
count:=0;
elsif(wea='1') then
if(clkin'event and clkin='1') then
case count is
when 0 =>
ce<='1';
oe<='1';
we<='1';
addr<=(others =>'Z');
dq<=(others =>'Z');
count:=count+1;
when 1 =>
ce<='0';
count:=count+1;
when 2 => ——第一步:軟件保護(hù)命令
addr<="00101010101010101";——5555
dq<="10101010"; ——AA
count:=count+1;
when 3 =>
we<='0';
count:=coun
熱門點(diǎn)擊
- 寄存器和移位寄存器
- 稅控收款機(jī)專用IC卡應(yīng)用研究 張 劍,郭玉東
- 光纖收發(fā)器基本連接方式
- 無速度傳感器異步電機(jī)矢量控制方法
- 大容量串行E2PROM AT24C512及其
- 距離保護(hù)特性元件躲過渡電阻能力分析與研究
- 超聲波測距與嵌入式SPT-K控制器在汽車自動(dòng)
- 新一代DRSEM系統(tǒng)SEMViSiOnG2
- 先進(jìn)芯片封裝技術(shù) 鮮 飛 (烽火通信科技股份
- PXI模塊化儀器特點(diǎn)及應(yīng)用
推薦技術(shù)資料
- 按鈕與燈的互動(dòng)實(shí)例
- 現(xiàn)在趕快去看看這個(gè)目錄卞有什么。FGA15N120AN... [詳細(xì)]
- AMOLED顯示驅(qū)動(dòng)芯片關(guān)鍵技
- CMOS圖像傳感器技術(shù)參數(shù)設(shè)計(jì)
- GB300 超級芯片應(yīng)用需求分
- 4NP 工藝NVIDIA Bl
- GB300 芯片、NVL72
- 首個(gè)最新高端芯片人工智能服務(wù)器
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究