趙德權(quán),蘇 琳,李 翠
(中國(guó)電子科技集團(tuán)公司第四十七研究所,沈陽110032)
基于SST39VF640x閃存的擦寫器設(shè)計(jì)
趙德權(quán),蘇 琳,李 翠
(中國(guó)電子科技集團(tuán)公司第四十七研究所,沈陽110032)
為了實(shí)現(xiàn)對(duì)SST39VF640x閃存4M空間的字編程,需要搭建一個(gè)16位的數(shù)據(jù)通道,使得C51微處理器每次對(duì)外存的訪問,都能以雙字節(jié)的方式進(jìn)行,同時(shí),須補(bǔ)齊系統(tǒng)指令尋址能力的短板,以滿足對(duì)4M地址的I/O操作需求。實(shí)施中,充分利用C51外總線固有時(shí)序,并引入一定數(shù)量的寄存器,預(yù)設(shè)或鎖存地址和數(shù)據(jù),在讀/寫周期內(nèi),借助/RD、/WR和ALE的協(xié)調(diào),完成總線信息的歸并及拆分。通過總線接口的再構(gòu)造,使本質(zhì)上屬于字節(jié)操作的微系統(tǒng)具有了字傳輸能力,并對(duì)擦/寫流程進(jìn)行簡(jiǎn)化,提出了具體實(shí)施方案,大幅縮短了試驗(yàn)周期,加快了試驗(yàn)進(jìn)程。
閃存;字編程;總線接口;歸并;拆分;簡(jiǎn)化流程
近年來,非易失性存儲(chǔ)器的發(fā)展非常迅速,應(yīng)用極為廣泛。國(guó)內(nèi)廠家也先后加入進(jìn)來,開發(fā)設(shè)計(jì)了一些產(chǎn)品,與其相關(guān)的可靠性研究日益受到重視,耐擦寫能力試驗(yàn)便是其中一部分。為了預(yù)測(cè)和驗(yàn)證存儲(chǔ)器這一重要指標(biāo),從一些摸底測(cè)試到最終產(chǎn)品檢驗(yàn),一般要進(jìn)行成千上萬次的試驗(yàn),對(duì)這種循環(huán)工作方式,傳統(tǒng)意義上的編程器使用起來人工干預(yù)過多,效率極低。因此,制造一個(gè)專用儀器,能夠小批量的連續(xù)進(jìn)行操作,已非常必要。
(1)訪問外存指令和時(shí)序
C51微處理器具有專門的外部存儲(chǔ)器訪問指令,MOVX A,@DPTR為讀指令形式,MOVX@DPTR,A為寫指令形式。DPTR攜帶16位地址,寄存器A存放輸入輸出的數(shù)據(jù)。
系統(tǒng)提供了完善的總線時(shí)序,低位地址A7-A0和數(shù)據(jù)D7-D0分時(shí)復(fù)用端口0,高位地址A15-A8由端口2輸出。在寫周期內(nèi),數(shù)據(jù)剛好在/WR信號(hào)有效之前出現(xiàn)在端口0上,并一直保持在那里,直到/WR無效為止。在讀周期內(nèi),讀入端口0的字節(jié),應(yīng)該在讀選通信號(hào)/RD無效之前讀完[1]。
(2)總線擴(kuò)展
擦寫對(duì)象SST39VF640x閃存為4M×16的物理結(jié)構(gòu)(如圖4所示),地址線22條(A21-A0),數(shù)據(jù)線16條(DQ15-DQ0),片選及讀寫控制線3條(CE#,OE#,WE#),硬件復(fù)位RST#和寫保護(hù)WP#。若要以外存方式實(shí)現(xiàn)與CPU的對(duì)接,需要進(jìn)行總線擴(kuò)展,具體見圖1總線邏輯結(jié)構(gòu)圖[2-3]。
引入U(xiǎn)4寄存器,在T1(P3.5)選通信號(hào)作用下,將預(yù)先輸出到端口2的地址A23-A16(A23,A22預(yù)留)鎖存起來,以實(shí)現(xiàn)地址預(yù)設(shè);
圖1 總線邏輯結(jié)構(gòu)圖
引入U(xiǎn)2寄存器,由T0(P3.4)選通將預(yù)先輸出到端口2的數(shù)據(jù)D15-D8鎖存起來,完成數(shù)據(jù)預(yù)設(shè),在寫周期內(nèi)(/WR低有效),作為高8位數(shù)據(jù)使用;
上述預(yù)設(shè)過程是在執(zhí)行外部訪問指令之前的準(zhǔn)備動(dòng)作,選通信號(hào)的形成及端口輸出操作,并非系統(tǒng)固有時(shí)序;
引入U(xiǎn)1寄存器,在讀周期內(nèi),來自外存的高8位字節(jié)D15-D8被暫存起來,借用/RD信號(hào)上跳沿自動(dòng)打入。設(shè)計(jì)上使U1的三態(tài)控制端常有效,端口1總為輸入狀態(tài),用1個(gè)短指令(MOV A,P1)即可方便地獲取數(shù)據(jù);
引入U(xiǎn)3寄存器,讀/寫周期內(nèi),由ALE信號(hào)鎖存先出現(xiàn)的低8位地址A7-A0,實(shí)現(xiàn)端口復(fù)用[4]。以總線接口為界,CPU端具有字節(jié)特征,存儲(chǔ)器端則具有字特征。
在執(zhí)行寫外存指令(MOVX@DPTR,A)時(shí),預(yù)設(shè)于U4中的A21-A16及鎖存在U3中的A7-A0,與輸出到端口2的A15-A8歸并到一起,于/WR下跳之前形成穩(wěn)定地址輸出;預(yù)設(shè)在U2中的D15-D8與輸出到端口0的D7-D0歸并成一體,于/WR上跳之前成為16位穩(wěn)定的數(shù)據(jù)輸出。
在執(zhí)行讀外存指令(MOVX A,@DPTR)時(shí),地址歸并方式不變,且于/RD下跳之前形成穩(wěn)定的地址輸出。數(shù)據(jù)于/RD上跳之前已變成穩(wěn)定的輸入,到達(dá)接口的16位數(shù)據(jù)被拆分為兩部分,D7-D0靠指令的固有時(shí)序從端口0讀入A寄存器;D15-D8則被/RD上沿鎖入U(xiǎn)1寄存器。
在讀/寫周期內(nèi),數(shù)據(jù)的輸入輸出完全按指令(MOVX@DPTR)固有的時(shí)序進(jìn)行,這種簡(jiǎn)單的接口設(shè)計(jì),有利于提高數(shù)據(jù)的傳輸能力。
(3)供電與電平轉(zhuǎn)換
總線邏輯信號(hào)電壓范圍為4.5V-5.5V,設(shè)計(jì)時(shí)提供5V供電;SST39VF640x的讀寫電壓范圍為2.7V-3.6V,設(shè)計(jì)時(shí)提供3.3V供電。5V電壓由外部提供,3.3V電壓由5V電壓轉(zhuǎn)換(如圖2供電轉(zhuǎn)換電路),芯片采用AMS1117-3.3。
圖2 供電轉(zhuǎn)換電路
由于總線邏輯和外存供電不同,須進(jìn)行電平轉(zhuǎn)換。電平轉(zhuǎn)換電路由74LVX4245實(shí)現(xiàn),圖3給出一個(gè)8路電平轉(zhuǎn)換電路的示例,地址信號(hào)、控制信號(hào)單向傳輸,X端接GND;數(shù)據(jù)信號(hào)雙向傳輸,X端接/RD。高電壓一側(cè)(X0-X7)連接總線接口,低電壓一側(cè)(Y0-Y7)連接SST39VF640x外存。
接口信號(hào)A21-A0,轉(zhuǎn)換后連接外存的同名管腳;接口信號(hào)D15-D0轉(zhuǎn)換后連接外存DQ15-DQ0;/RD轉(zhuǎn)換為OE#;/WR轉(zhuǎn)換為WE#;INT0轉(zhuǎn)換為CE#;INT1轉(zhuǎn)換為RST#。而WP#端用4.7K電阻上拉接VDD3V3。
圖3 電平轉(zhuǎn)換電路
(4)外存讀寫時(shí)序
圖4為SST39VF640x閃存的組成框圖。
圖4 SSTV39VF640x組成框圖
讀操作:片選CE#變低,選擇芯片;讀使能OE#變低,使數(shù)據(jù)D15-D0通過I/O緩沖送出,OE#變高,CE#變高,完成一次讀操作。
寫操作:片選CE#變低,寫使能WE#變低,二者后發(fā)生的下跳沿鎖存地址信號(hào);WE#變高,CE#變高,二者先發(fā)生的上跳沿鎖存數(shù)據(jù)信號(hào)。之前有三個(gè)字節(jié)裝載時(shí)序?yàn)檐浖?shù)據(jù)保護(hù)。寫入過程為異步操作,典型周期為7μs。
相對(duì)WE#和OE#,程序中保證CE#的下沿先發(fā)生,上沿后發(fā)生,/WR對(duì)接WE#,/RD對(duì)接OE#,總線時(shí)序與外存時(shí)序恰好吻合。
擦寫器配一個(gè)標(biāo)準(zhǔn)RS232C通訊接口[5],與遠(yuǎn)端操控器[6](或電腦)聯(lián)接,實(shí)現(xiàn)信息交換。
擦寫器只執(zhí)行最簡(jiǎn)單的操作:擦除、寫入和讀等,為減少數(shù)據(jù)傳輸,擦寫器中通常也含有校驗(yàn)環(huán)節(jié)。更多的操作在遠(yuǎn)端操控器內(nèi)完成,如設(shè)置參數(shù),計(jì)數(shù),數(shù)據(jù)分析等。
(1)流程簡(jiǎn)化
根據(jù)閃存特性,寫入只能將字節(jié)中為“1”的位寫成“0”,擦除則是將所有的“0”位擦成“1”,因此,在寫數(shù)據(jù)之前,要有擦除操作。擦寫流程為:擦除—查空—寫入—校驗(yàn)。
一些耐擦寫試驗(yàn)需要重復(fù)幾萬次,甚至上百萬次,周期長(zhǎng)達(dá)數(shù)周或數(shù)月,如能在基本步驟上做到合理簡(jiǎn)化,對(duì)于提高效率,加快擦寫進(jìn)程具有十分重要的意義。
采用互為反碼寫入模式[7],即相鄰兩輪寫入的數(shù)據(jù)互為反碼,可簡(jiǎn)化掉查空步驟。
在某個(gè)區(qū)域上,若Q(n)為第n次擦寫結(jié)果,Q(n+1)為第n+1次擦寫結(jié)果,都有Q(n+1)=/Q(n)成立(1≤n),則第n+1次擦除是完整的。因?yàn)?,?duì)區(qū)域上的任一位q,若q(n)=0,按照約束條件Q(n+1)= /Q(n),必有q(n+1)=1(1≤n)。即第n步為“0”的位,在第n+1步均變?yōu)椤?”,說明擦除過程是完整的,查空步驟可以省去。
采用互為反碼寫入模式,前后互相聯(lián)系且彼此“否定”,通過擦除和寫入,要求每一位必須發(fā)生翻轉(zhuǎn)。前次的“0”未變?yōu)椤?”,說明擦的不完整,前次的“1”未變?yōu)椤?”,說明寫的不完整,二者皆可在校驗(yàn)環(huán)節(jié)測(cè)試出來。
(2)數(shù)據(jù)模型
如上定義,若Q(n+1)=/Q(n)成立,就有Q(1)=Q(3)=……=Q(2n-1)和Q(2)=Q(4)=……=Q(2n)成立,(1≤n),意味著兩個(gè)模型奇偶次交替且互反,一旦Q(1)確定,那么后續(xù)的模型就都變?yōu)橐阎?。程序只須?yàn)證擦寫結(jié)果,就可判定擦除和寫入的完整性。
事實(shí)上,任何長(zhǎng)度不超過測(cè)試空間的數(shù)據(jù),都可作寫入模型,以字節(jié)長(zhǎng)度選擇模型大小,操作起來比較方便,也節(jié)省存儲(chǔ)空間。
盡量避免使用類似00H和FFH這種組合方式,因?yàn)橐恍﹣碜宰止?jié)內(nèi)的位與位間的邏輯“粘連”或串?dāng)_,容易被掩蓋掉。通常以55H(01010101B)和AAH (10101010B)作為一組測(cè)試模型,以解除這種擔(dān)憂。
對(duì)于像SST39VF640x這樣規(guī)模的器件,進(jìn)行100,000次擦寫試驗(yàn)要花費(fèi)數(shù)月之久。擦寫器的效率變得十分重要。
在接口設(shè)計(jì)上,由于U4存儲(chǔ)最高端地址,U2存放的是數(shù)據(jù)模型,變換頻率較低,預(yù)設(shè)操作又在循環(huán)的外層,所以對(duì)程序影響甚微,讀取操作也更為簡(jiǎn)單,僅增一條短指令,同樣傳輸16位數(shù)據(jù),總體效果要快于單純的字節(jié)I/O方式。
考慮到速度問題,對(duì)外存訪問的驅(qū)動(dòng)程序用匯編語言編寫,其它用C語言編寫[8]。
在具體實(shí)施中,由于程序輪寫周期大于字編程時(shí)間(7μs),所以,制約試驗(yàn)進(jìn)程的是指令用時(shí),又查空和校驗(yàn)都涉及外存的讀取,程序復(fù)雜度不低于寫入過程,輪次操作都在秒級(jí)(7μs×4M)以上,而毫秒級(jí)的擦除時(shí)間(40ms)完全可以忽略。因此,省去一步查空操作,可使試驗(yàn)耗時(shí)減少3成,其意義不可小覷。
[1]陳章龍,婁興棠,曹名揚(yáng),等.實(shí)用單片機(jī)大全[M].哈爾濱:黑龍江科學(xué)技術(shù)出版社,1989. Chen Zhanglong,Lou Xingtang,Cao Mingyang,et al.Practical single-chip daqo[M].Haerbin:Heilongjiang science and technology press,1989.
[2]劉錫軒,丁恒,侯曉音.計(jì)算機(jī)應(yīng)用基礎(chǔ)[M].北京:清華大學(xué)出版社,2013. Liu Xixuan,Ding Heng,Hou Xiaoyin.Computer application foundation[M].Beijing:Tsinghua university press,2013.
[3]崔瑋.PROTEL 99SE電路原理圖與電路板設(shè)計(jì)教程[M].北京:海洋出版社,2005. Cui Wei.PROTEL 99SE circuit schematic diagram and PCB design tutorial[M].Beijing:Ocean press,2005.
[4]王曉明,曾紅.單片機(jī)教程[M].沈陽:東北大學(xué)出版社,2001. Wang Xiaoming,Zeng Hong.Single-chip tutorial[M]. Shenyang:Northeastern university press,2001.
[5]陳國(guó)棟,何玉表,徐中佑,等.集成電路應(yīng)用設(shè)計(jì)手冊(cè)[M].沈陽:遼寧科學(xué)教育出版社,1986. Chen Guodong,He Yubiao,Xu Zhongyou,etc.Application of integrated circuit design manual[M].Shenyang:Liaoning science and education press,1986.
[6]龐振泰,王彩斐,屈宗明.CMOS器件手冊(cè)[M].北京:清華大學(xué)出版社,1997. Pang Zhentai,Wang Caifei,Qu Zongming.CMOS device handbook[M].Beijing:Tsinghua university press,1997.
[7]楊吉祥,成松林.微處理機(jī)實(shí)用30例[M].南京:江蘇科學(xué)技術(shù)出版社,1985. Yang Jixiang,Cheng Songlin.Microprocessor practical 30 cases [M].Nanjing:Jiangsu science and technology press, 1985.
[8]徐愛鈞,彭秀華.單片機(jī)高級(jí)語言C51應(yīng)用程序設(shè)計(jì)[M].北京:電子工業(yè)出版社,1998. Xu Aijun Peng Xiuhua.Single-chip computer high-level language C51 application design [M].Beijing:Electronic industry press,1998.
Design of Programmer Based on SST39VF640x Flash Memory
Zhao Dequan,Su Lin,Li Cui
(The 47th Research Institute of China Electronics Technology Group Corporation,Shenyang 110032,China)
In order to achieve SST39VF640x flash 4M word programming space,we need to build a 16-bit data path so that the microprocessor C51 performs double-byte manner in each external memory access.The system shall be filled with instruction addressing capability to meet demands for 4M address I/O operations.During implementation,it fully uses external bus C51 inherent timing,and introduces a number of registers,the default or latched address and data,read/write cycle, coordinating aid/RD,/WR and ALE to complete the bus information merger and split.Though the reconstruction of bus interface,the micro-system belonging to byte operations in nature has the word transmission capacity.It simplifies the erase/write process,makes specific embodiments,substantially shortens the test period and speeds up the test process.
Flash memory;Word–program;Bus interface;Merge;Split;Simplify Process
10.3969/j.issn.1002-2279.2017.01.019
TN492
A
1002-2279-(2017)01-0076-03
趙德權(quán)(1962-),男,遼寧省鐵嶺市昌圖縣人,工程師,主研方向:計(jì)算機(jī)應(yīng)用及可靠性技術(shù)。
2016-04-26