1前言
慣性導(dǎo)航系統(tǒng)、各種導(dǎo)引頭及空間飛行器等測試和記錄應(yīng)用系統(tǒng),,都需要自主,、實(shí)時(shí)、可靠存儲大量的關(guān)鍵信息,,并保證即使整個系統(tǒng)掉電,,所采集到的數(shù)據(jù)仍能長時(shí)間保持不丟失,實(shí)現(xiàn)歷史數(shù)據(jù)查詢,,便于數(shù)據(jù)分析,。NAND Flash閃速存儲器(簡稱閃存)以其掉電非易失、功耗低,、壽命長,、容量大、升級容易等獨(dú)有的特點(diǎn)迅速成為數(shù)據(jù)存儲的最佳選擇,。
某型激光陀螺慣導(dǎo)單元需要在湖試和海試試驗(yàn)過程中記錄大量導(dǎo)航參數(shù),,為了便于在試驗(yàn)結(jié)束后有效分析數(shù)據(jù)。這里提出一種基于大容量閃存器件K9KAG08UOM與DSP的接口設(shè)計(jì)方案,。在激光慣導(dǎo)的計(jì)算機(jī)板上集成了一片NAND Flash閃速存儲器,,根據(jù)試驗(yàn)的次數(shù)和每個航次存儲數(shù)據(jù)量的大小,,選用SAMSUNG公司的K9KAG08UOM存儲器,;為滿足導(dǎo)航控制的周期和算法的復(fù)雜程度,選用TI公司的浮點(diǎn)DSPTMS320C6713B作為主控處理器。TMS320C6713B的主頻可達(dá)300 MHz,,浮點(diǎn)運(yùn)算速度可達(dá)1.8 GFLO/S,,是目前運(yùn)算速度最快的浮點(diǎn)器件之一,已成為嵌入式系統(tǒng)設(shè)計(jì)中的主流處理器,。其中NAND Flash與DSP的接口設(shè)計(jì)是整個計(jì)算機(jī)板設(shè)計(jì)的關(guān)鍵部分,,這里詳細(xì)介紹大容量NAND Flash與DSP接口設(shè)計(jì)的硬件接口電路和軟件實(shí)現(xiàn)方法。
2 大容量閃存K9KAG08UOM簡介
K9KAG08UOM是大容量,、高可靠性的NAND Flash存儲器,。其存儲容量為2 G字節(jié)(2 Gx8 bit);可將數(shù)據(jù)線與地址線復(fù)用為8條I/O線,。并分別提供命令控制信號線,;命令、地址和數(shù)據(jù)信息均通過8條I/O線傳輸,,不會因存儲容量的增加而增加引腳數(shù),,從而極大方便系統(tǒng)設(shè)計(jì)和產(chǎn)品升級,而無需更改外部硬件連接,,因此成為嵌入式系統(tǒng)中實(shí)時(shí)存儲大容量數(shù)據(jù)的最佳選擇,。
K9KAG08UOM引腳排列如圖1所示,其引腳功能如下:
I/O0~I(xiàn)/O7:8根地址,、數(shù)據(jù)和命令復(fù)用信號,。用于輸入命令、數(shù)據(jù),、地址及輸出數(shù)據(jù),。
CE:片選信號。用于選擇控制器件,。
WE:寫使能信號,。通過該端口可在寫脈沖的上升沿鎖存指令、地址和數(shù)據(jù),。
RE:讀使能信號,。在讀信號的下降沿,輸出數(shù)據(jù)有效,,并可累加其內(nèi)部數(shù)據(jù)地址,。
CLE:命令鎖存使能信號。CLE為高電平時(shí),,命令通過I/O端口線在寫信號的上升沿被鎖存入命令寄存器,。
ALE:地址鎖存信號。在寫信號的上升沿且地址鎖存信號為高電平時(shí),,地址被鎖存,。
WP:寫保護(hù)信號。WP為低電平時(shí),禁止寫或擦除操作,。
R/B:準(zhǔn)備就緒或忙輸出顯示信號,,當(dāng)R/B為低電平時(shí),表示有編程,、擦除或隨機(jī)讀操作正在進(jìn)行,,操作完成后.R/B信號自動返回至高電平。
3 硬件接口設(shè)計(jì)
3.1 計(jì)算機(jī)板設(shè)計(jì)方案
激光陀螺慣導(dǎo)計(jì)算機(jī)板以CPU為核心,,完成數(shù)據(jù)的采集,、運(yùn)算、通信,、數(shù)據(jù)存儲等任務(wù),。計(jì)算機(jī)板的設(shè)計(jì)原理如圖2所示。
計(jì)算機(jī)板主要包括:核心CPU完成導(dǎo)航計(jì)算及對外圍接口的管理與控制等:監(jiān)控與導(dǎo)航Flash完成程序的自主加載引導(dǎo),;NAND Flash完成試驗(yàn)數(shù)據(jù)的記錄與下載,;FPGA輔助完成A/D轉(zhuǎn)換時(shí)序控制、總線譯碼控制,、開關(guān)電路控制,、分頻及脈沖計(jì)數(shù)等功能:4通道串行控制器 TL16C754控制4個通道串口。
主機(jī)CPU選用DSP器件 TMS320C6713B,,其內(nèi)含浮點(diǎn)數(shù)值處理器,,支持64位浮點(diǎn)運(yùn)算,內(nèi)部RAM容量為256 K字節(jié),,主頻最高可達(dá)300 MHz,,帶有的鎖相環(huán)電路使其能夠通過軟件編程設(shè)置實(shí)際工作頻率。
根據(jù)系統(tǒng)時(shí)序控制和計(jì)數(shù)等功能需要邏輯門的大?。瓼PGA選用ACTEL公司的APA300,。該器件內(nèi)部自帶ROM,上電后自主運(yùn)行,,無需外部ROM引導(dǎo),,可靠性高。
串行通信控制器選用,,TI公司的TL16C754B,。該器件采用3.3 V供電,功耗低,,內(nèi)部有4個并行的串行通信控制器,,內(nèi)部白帶FIFO模式,與DSP無縫接口,,使用靈活方便,,滿足系統(tǒng)設(shè)計(jì)需要,。
3.2 NAND Flash與DSP硬件接口設(shè)計(jì)
大容量閃存NAND Flash與DSP之間的接口設(shè)計(jì)是CPU板設(shè)計(jì)的關(guān)鍵。DSP主要通過EMIF外部存儲器接口訪問片外存儲器,,TMS320C6713B可與大多數(shù)的同步存儲器和異步存儲器靈活配置,使用簡單方便,。TMS320C6713B與K9KAG08UOM的硬件接口電路如圖3所示,。
TMS320C6713B的外部存儲器接口包括:20位地址線、32位數(shù)據(jù)線,、4個片選控制線及讀寫控制信號線,。4個片選信號分別對應(yīng)4個存儲空間,CE3對應(yīng)的地址空間為OxB0000000-OxBFFFFFFF,,設(shè)計(jì)中通過地址譯碼實(shí)現(xiàn)地址空間的分隔,,其中大容量閃存器件K9KAG08UOM的片選面對應(yīng)的地址為OxB0400000。
K9KAG08UOM無地址線,,命令,、地址和數(shù)據(jù)信息均通過I/00~I(xiàn)/07傳輸。雖然K9KAG08UOM的容量達(dá)到2 G字節(jié),,遠(yuǎn)遠(yuǎn)超出TMS320C6713B存儲區(qū)域CE3的可尋址容量256 M字節(jié),,但由于訪問NAND Flash的地址是通過I/O端口輸入,無需通過地址線尋址,,因此不用考慮邏輯存儲空間與實(shí)際物理空間的映射問題,,簡化了DSP與NAND Flash的硬件接口。
TMS320C6713B和K9KAG08UOM的工作電壓均是3.3 V,,因此兩者引腳可直接連接,,無需電平轉(zhuǎn)換。設(shè)計(jì)中K9KAG-08UOM的ALE和CLE兩個信號分別由DSP的最低兩位地址EA3和EA2控制,。DSP的低8位數(shù)據(jù)線直接與NAND Flash的I/00~I(xiàn)/07相連,。DSP的通用輸人輸出端口GP3接R/B,用于監(jiān)測NAND Flash的工作狀態(tài),。當(dāng)R/B處于低電平時(shí),,表示有編程、擦除或隨機(jī)讀操作正在進(jìn)行,;當(dāng)R/B處于高電平時(shí),,表示操作已經(jīng)完成。K9KAG08UOM的讀寫控制信號RE和WE由DSP的讀寫控制信號ARE和AWE和譯碼產(chǎn)生的片選信號CE通過邏輯或得到,,只有當(dāng)DSP的讀寫控制信號和片選同時(shí)有效即為低電平時(shí)才能對K9KAG08UOM進(jìn)行讀寫操作,。
該硬件接口設(shè)計(jì)利用DSP的地址線EA3、EA2分別控制NAND Flash的命令鎖存ALE和地址鎖存CLE信號,,此時(shí)對K9KAG08UOM的訪問相當(dāng)于訪問地址分別為OxB0400002,、OxB0400001和OxB0400000的3個端口.分別對應(yīng)K9KAG08UOM的地址端口,、命令端口和數(shù)據(jù)端口。DSP對K9KAG08UOM的命令,、地址和數(shù)據(jù)操作可通過不同端口進(jìn)行,。簡化了對K9KAG08UOM讀寫控制和軟件編程設(shè)計(jì)的難度。
4 軟件設(shè)計(jì)
NAND Flash的基本操作主要包括:讀數(shù)據(jù),,編程(寫)數(shù)據(jù),,擦除、讀器件ID號等,。NAND Flash的軟件設(shè)計(jì)主要關(guān)注以下幾個方面:
(1)讀,、寫操作以頁為單位;
(2)擦除操作以塊為單位,;
(3)對NAND Flash寫數(shù)據(jù)時(shí),,位數(shù)據(jù)只能由1變?yōu)?,因此對Flash寫操作前必須把寫單元所在塊擦除,;
(4)NAND Flash同其他固體存儲器一樣會產(chǎn)生壞塊,,如果將數(shù)據(jù)存儲在壞塊區(qū)域?qū)?dǎo)致無法正常恢復(fù),。壞塊區(qū)域一般不超過器件總?cè)萘康?‰,,如果系統(tǒng)的工作狀態(tài)允許存儲的數(shù)據(jù)可以出現(xiàn)少量錯誤,比如圖像記錄功能,,軟件設(shè)計(jì)時(shí)可不用標(biāo)記為壞區(qū),;如果系統(tǒng)的工作狀態(tài)不允許存儲的數(shù)據(jù)出錯,則需根據(jù)器件出廠時(shí)自帶的壞塊信息表標(biāo)記壞塊區(qū)域,,以保證數(shù)據(jù)不被寫到壞塊區(qū)域,。
(5)在對NAND Flash進(jìn)行擦除、編程或者讀取操作流程時(shí),,不允許有中斷信號打斷CPU的工作,,否則會讀寫錯誤。在軟件設(shè)計(jì)時(shí),,如果對NAND Flash進(jìn)行存取操作,,需先屏蔽中斷,讀寫操作完成后再把中斷重新打開,。
NAND Flash最基本的塊擦除,、頁編程時(shí)序流程如圖4和圖5所示。
5 結(jié)束語
由于NAND Flash具有非易失性,、大容量,、低成本、接口簡單等優(yōu)點(diǎn),。在組合導(dǎo)航數(shù)據(jù)存儲設(shè)備,,激光慣導(dǎo)單元及紅外導(dǎo)引頭的圖像采集等智能儀器中得到廣泛應(yīng)用,。詳細(xì)介紹了大容量閃存K9KAG08UOM與TMS320C6713B的硬件接口電路和軟件程序設(shè)計(jì),所采用的接口技術(shù)靈活,、簡單,、可靠,在激光慣導(dǎo)單元進(jìn)行的湖試和海試試驗(yàn)中成功地實(shí)現(xiàn)了數(shù)據(jù)的存儲,。該接口設(shè)計(jì)方法可推廣應(yīng)用于大容量閃存器件與單片機(jī),、ARM及其他型號的DSP設(shè)計(jì)中。