趙德權,蘇 琳,李 翠
(中國電子科技集團公司第四十七研究所,沈陽110032)
基于SST39VF640x閃存的擦寫器設計
趙德權,蘇 琳,李 翠
(中國電子科技集團公司第四十七研究所,沈陽110032)
為了實現對SST39VF640x閃存4M空間的字編程,需要搭建一個16位的數據通道,使得C51微處理器每次對外存的訪問,都能以雙字節的方式進行,同時,須補齊系統指令尋址能力的短板,以滿足對4M地址的I/O操作需求。實施中,充分利用C51外總線固有時序,并引入一定數量的寄存器,預設或鎖存地址和數據,在讀/寫周期內,借助/RD、/WR和ALE的協調,完成總線信息的歸并及拆分。通過總線接口的再構造,使本質上屬于字節操作的微系統具有了字傳輸能力,并對擦/寫流程進行簡化,提出了具體實施方案,大幅縮短了試驗周期,加快了試驗進程。
閃存;字編程;總線接口;歸并;拆分;簡化流程
近年來,非易失性存儲器的發展非常迅速,應用極為廣泛。國內廠家也先后加入進來,開發設計了一些產品,與其相關的可靠性研究日益受到重視,耐擦寫能力試驗便是其中一部分。為了預測和驗證存儲器這一重要指標,從一些摸底測試到最終產品檢驗,一般要進行成千上萬次的試驗,對這種循環工作方式,傳統意義上的編程器使用起來人工干預過多,效率極低。因此,制造一個專用儀器,能夠小批量的連續進行操作,已非常必要。
(1)訪問外存指令和時序
C51微處理器具有專門的外部存儲器訪問指令,MOVX A,@DPTR為讀指令形式,MOVX@DPTR,A為寫指令形式。DPTR攜帶16位地址,寄存器A存放輸入輸出的數據。
系統提供了完善的總線時序,低位地址A7-A0和數據D7-D0分時復用端口0,高位地址A15-A8由端口2輸出。在寫周期內,數據剛好在/WR信號有效之前出現在端口0上,并一直保持在那里,直到/WR無效為止。在讀周期內,讀入端口0的字節,應該在讀選通信號/RD無效之前讀完[1]。
(2)總線擴展
擦寫對象SST39VF640x閃存為4M×16的物理結構(如圖4所示),地址線22條(A21-A0),數據線16條(DQ15-DQ0),片選及讀寫控制線3條(CE#,OE#,WE#),硬件復位RST#和寫保護WP#。若要以外存方式實現與CPU的對接,需要進行總線擴展,具體見圖1總線邏輯結構圖[2-3]。
引入U4寄存器,在T1(P3.5)選通信號作用下,將預先輸出到端口2的地址A23-A16(A23,A22預留)鎖存起來,以實現地址預設;

圖1 總線邏輯結構圖
引入U2寄存器,由T0(P3.4)選通將預先輸出到端口2的數據D15-D8鎖存起來,完成數據預設,在寫周期內(/WR低有效),作為高8位數據使用;
上述預設過程是在執行外部訪問指令之前的準備動作,選通信號的形成及端口輸出操作,并非系統固有時序;
引入U1寄存器,在讀周期內,來自外存的高8位字節D15-D8被暫存起來,借用/RD信號上跳沿自動打入。設計上使U1的三態控制端常有效,端口1總為輸入狀態,用1個短指令(MOV A,P1)即可方便地獲取數據;
引入U3寄存器,讀/寫周期內,由ALE信號鎖存先出現的低8位地址A7-A0,實現端口復用[4]。以總線接口為界,CPU端具有字節特征,存儲器端則具有字特征。
在執行寫外存指令(MOVX@DPTR,A)時,預設于U4中的A21-A16及鎖存在U3中的A7-A0,與輸出到端口2的A15-A8歸并到一起,于/WR下跳之前形成穩定地址輸出;預設在U2中的D15-D8與輸出到端口0的D7-D0歸并成一體,于/WR上跳之前成為16位穩定的數據輸出。
在執行讀外存指令(MOVX A,@DPTR)時,地址歸并方式不變,且于/RD下跳之前形成穩定的地址輸出。數據于/RD上跳之前已變成穩定的輸入,到達接口的16位數據被拆分為兩部分,D7-D0靠指令的固有時序從端口0讀入A寄存器;D15-D8則被/RD上沿鎖入U1寄存器。
在讀/寫周期內,數據的輸入輸出完全按指令(MOVX@DPTR)固有的時序進行,這種簡單的接口設計,有利于提高數據的傳輸能力。
(3)供電與電平轉換
總線邏輯信號電壓范圍為4.5V-5.5V,設計時提供5V供電;SST39VF640x的讀寫電壓范圍為2.7V-3.6V,設計時提供3.3V供電。5V電壓由外部提供,3.3V電壓由5V電壓轉換(如圖2供電轉換電路),芯片采用AMS1117-3.3。

圖2 供電轉換電路
由于總線邏輯和外存供電不同,須進行電平轉換。電平轉換電路由74LVX4245實現,圖3給出一個8路電平轉換電路的示例,地址信號、控制信號單向傳輸,X端接GND;數據信號雙向傳輸,X端接/RD。高電壓一側(X0-X7)連接總線接口,低電壓一側(Y0-Y7)連接SST39VF640x外存。
接口信號A21-A0,轉換后連接外存的同名管腳;接口信號D15-D0轉換后連接外存DQ15-DQ0;/RD轉換為OE#;/WR轉換為WE#;INT0轉換為CE#;INT1轉換為RST#。而WP#端用4.7K電阻上拉接VDD3V3。

圖3 電平轉換電路
(4)外存讀寫時序
圖4為SST39VF640x閃存的組成框圖。

圖4 SSTV39VF640x組成框圖
讀操作:片選CE#變低,選擇芯片;讀使能OE#變低,使數據D15-D0通過I/O緩沖送出,OE#變高,CE#變高,完成一次讀操作。
寫操作:片選CE#變低,寫使能WE#變低,二者后發生的下跳沿鎖存地址信號;WE#變高,CE#變高,二者先發生的上跳沿鎖存數據信號。之前有三個字節裝載時序為軟件數據保護。寫入過程為異步操作,典型周期為7μs。
相對WE#和OE#,程序中保證CE#的下沿先發生,上沿后發生,/WR對接WE#,/RD對接OE#,總線時序與外存時序恰好吻合。
擦寫器配一個標準RS232C通訊接口[5],與遠端操控器[6](或電腦)聯接,實現信息交換。
擦寫器只執行最簡單的操作:擦除、寫入和讀等,為減少數據傳輸,擦寫器中通常也含有校驗環節。更多的操作在遠端操控器內完成,如設置參數,計數,數據分析等。
(1)流程簡化
根據閃存特性,寫入只能將字節中為“1”的位寫成“0”,擦除則是將所有的“0”位擦成“1”,因此,在寫數據之前,要有擦除操作。擦寫流程為:擦除—查空—寫入—校驗。
一些耐擦寫試驗需要重復幾萬次,甚至上百萬次,周期長達數周或數月,如能在基本步驟上做到合理簡化,對于提高效率,加快擦寫進程具有十分重要的意義。
采用互為反碼寫入模式[7],即相鄰兩輪寫入的數據互為反碼,可簡化掉查空步驟。
在某個區域上,若Q(n)為第n次擦寫結果,Q(n+1)為第n+1次擦寫結果,都有Q(n+1)=/Q(n)成立(1≤n),則第n+1次擦除是完整的。因為,對區域上的任一位q,若q(n)=0,按照約束條件Q(n+1)= /Q(n),必有q(n+1)=1(1≤n)。即第n步為“0”的位,在第n+1步均變為“1”,說明擦除過程是完整的,查空步驟可以省去。
采用互為反碼寫入模式,前后互相聯系且彼此“否定”,通過擦除和寫入,要求每一位必須發生翻轉。前次的“0”未變為“1”,說明擦的不完整,前次的“1”未變為“0”,說明寫的不完整,二者皆可在校驗環節測試出來。
(2)數據模型
如上定義,若Q(n+1)=/Q(n)成立,就有Q(1)=Q(3)=……=Q(2n-1)和Q(2)=Q(4)=……=Q(2n)成立,(1≤n),意味著兩個模型奇偶次交替且互反,一旦Q(1)確定,那么后續的模型就都變為已知。程序只須驗證擦寫結果,就可判定擦除和寫入的完整性。
事實上,任何長度不超過測試空間的數據,都可作寫入模型,以字節長度選擇模型大小,操作起來比較方便,也節省存儲空間。
盡量避免使用類似00H和FFH這種組合方式,因為一些來自字節內的位與位間的邏輯“粘連”或串擾,容易被掩蓋掉。通常以55H(01010101B)和AAH (10101010B)作為一組測試模型,以解除這種擔憂。
對于像SST39VF640x這樣規模的器件,進行100,000次擦寫試驗要花費數月之久。擦寫器的效率變得十分重要。
在接口設計上,由于U4存儲最高端地址,U2存放的是數據模型,變換頻率較低,預設操作又在循環的外層,所以對程序影響甚微,讀取操作也更為簡單,僅增一條短指令,同樣傳輸16位數據,總體效果要快于單純的字節I/O方式。
考慮到速度問題,對外存訪問的驅動程序用匯編語言編寫,其它用C語言編寫[8]。
在具體實施中,由于程序輪寫周期大于字編程時間(7μs),所以,制約試驗進程的是指令用時,又查空和校驗都涉及外存的讀取,程序復雜度不低于寫入過程,輪次操作都在秒級(7μs×4M)以上,而毫秒級的擦除時間(40ms)完全可以忽略。因此,省去一步查空操作,可使試驗耗時減少3成,其意義不可小覷。
[1]陳章龍,婁興棠,曹名揚,等.實用單片機大全[M].哈爾濱:黑龍江科學技術出版社,1989. Chen Zhanglong,Lou Xingtang,Cao Mingyang,et al.Practical single-chip daqo[M].Haerbin:Heilongjiang science and technology press,1989.
[2]劉錫軒,丁恒,侯曉音.計算機應用基礎[M].北京:清華大學出版社,2013. Liu Xixuan,Ding Heng,Hou Xiaoyin.Computer application foundation[M].Beijing:Tsinghua university press,2013.
[3]崔瑋.PROTEL 99SE電路原理圖與電路板設計教程[M].北京:海洋出版社,2005. Cui Wei.PROTEL 99SE circuit schematic diagram and PCB design tutorial[M].Beijing:Ocean press,2005.
[4]王曉明,曾紅.單片機教程[M].沈陽:東北大學出版社,2001. Wang Xiaoming,Zeng Hong.Single-chip tutorial[M]. Shenyang:Northeastern university press,2001.
[5]陳國棟,何玉表,徐中佑,等.集成電路應用設計手冊[M].沈陽:遼寧科學教育出版社,1986. Chen Guodong,He Yubiao,Xu Zhongyou,etc.Application of integrated circuit design manual[M].Shenyang:Liaoning science and education press,1986.
[6]龐振泰,王彩斐,屈宗明.CMOS器件手冊[M].北京:清華大學出版社,1997. Pang Zhentai,Wang Caifei,Qu Zongming.CMOS device handbook[M].Beijing:Tsinghua university press,1997.
[7]楊吉祥,成松林.微處理機實用30例[M].南京:江蘇科學技術出版社,1985. Yang Jixiang,Cheng Songlin.Microprocessor practical 30 cases [M].Nanjing:Jiangsu science and technology press, 1985.
[8]徐愛鈞,彭秀華.單片機高級語言C51應用程序設計[M].北京:電子工業出版社,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
趙德權(1962-),男,遼寧省鐵嶺市昌圖縣人,工程師,主研方向:計算機應用及可靠性技術。
2016-04-26