摘 要: 為提高視頻記錄器的實時性和穩定性,并結合數字視頻數據量較大的特點,在此設計了一種新型視頻記錄器。該記錄器接口采用基于FPGA+DSP架構的設計方法,設計了K9WBG08U1M存儲陣列讀寫時序,實現了對K9WBG08U1M陣列的實時讀寫。采用該記錄器分別對紅外熱像儀輸出圖像和CCD相機采樣圖像進行連續錄播實驗,實驗結果表明,采用該方法設計的視頻記錄器,由16片K9WBG08U1M存儲器組成的陣列可實現連續兩個半小時的視頻實時錄取和播放。該視頻記錄器滿足圖像實時性要求,魯棒性好。
關鍵詞: NAND FLASH; K9WBG08U1M; 視頻記錄器; 讀寫時序
中圖分類號: TN964?34 文獻標識碼: A 文章編號: 1004?373X(2013)18?0097?04
0 引 言
當前各類嵌入式系統開發設計中,存儲模塊設計是不可或缺的重要方面[1]。隨著半導體技術的發展,固態存儲器以其優異的性能逐漸成為數據存儲系統的首選存儲介質[2],其中以閃速存儲器(FLASH Memory)發展的最快。FLASH根據芯片內部邏輯架構設計上的差異主要分為NOR FLASH和NAND FLASH兩種[3]。NAND FLASH作為一種安全、快速的存儲體,因其具有體積小、容量大、成本低、掉電數據不丟失等一系列優點,已逐步取代其他半導體存儲元件,成為嵌入式系統中數據存儲的主要載體[4]。NAND FLASH以頁為單位讀寫數據,而以塊為單位擦除數據[5]。與傳統的硬盤相比,NAND FLASH作為一種新興的半導體存儲器件具有存儲密度高、可靠性高、體積小、質量輕、功耗小、壽命長、無噪聲、抗震動、能適應惡劣的力學和溫度環境等優點[6]。主要應用在需要記錄、保存大量數據的存儲設備中。
本文需要對CCD鏡頭采集的圖像數據進行實時記錄與并按圖像格式進行播放,因此需要大量的圖像數據記錄和播放,且要求速度較高,經過比較和實驗,K9WBG08U1M是一個比較理想的選擇。
1 K9WBG08U1M的特性
K9WBG08U1M的內部存儲空間為(4G+128M)×8 b,采用NAND結構,存儲空間按“塊?頁”結構組織,一頁為(2K+64)B,一塊為64頁,一片K9WBG08U1M由兩個K9WAG08U0M單元組成,可通過CE1,CE2信號選擇,共32 768塊。2.7~3.6 V單電源供電,典型頁編程周期為200 μs[7],典型塊擦除時間為1.5 ms,可進行(2K+64)B的頁寫操作及(128+4)KB的塊擦除操作,在讀操作過程中可將字節數據在25 ns內讀出。且其功耗低,速度快,可靠性較高。K9WAG08U0M的內部存儲結構和地址結構如圖1所示[8]。
2 K9WBG08U1M在視頻記錄器中的應用
2.1 系統構架
本圖像記錄器存儲的圖像格式為256×512,刷新頻率為50 Hz,每分鐘的數據量為393 216 K,每片K9WBG08U1M可存儲10 min的圖像數據,本系統采用16片K9WBG08U1M作為存儲陣列,可連續錄制或播放兩個半小時的視頻圖像。圖像采集、存儲陣列控制、圖像按格式播放由DSP和FPGA聯合控制。控制程序在DSP內完成,PFGA將操作命令和片選地址進行譯碼,選通相應的K9WBG08U1M并產生K9WBG08U1M的相應時序。系統示意框圖如圖2所示。
CCD采樣圖像后圖像數據按8位輸入系統,為提高存儲速度,每兩片K9WBG08U1M組成一個16位存儲組,圖像數據按16位存儲。系統將CCD采集的8位圖像數據先在FPGA內拼接為16位數據,通過EDMA導入DSP存入K9WBG08U1M陣列。在播放時,由DSP從K9WBG08U1M存儲陣列中讀出數據,通過EDMA導入FPGA,在FPGA中再將16位圖像數據拆分成8位圖像數據按視頻格式進行播放。
2.2 K9WBG08U1M的硬件接口設計
K9WBG08U1M有8位地址、數據復用的I/O口,兩個片選信號,5個控制信號和兩個狀態輸出信號。接口說明見表1。
2.3 K9WBG08U1M的軟件接口設計
K9WBG08U1M的地址結構分為行地址(Row Address)和列地址(Column Address),行地址用來指明具體的塊和頁,列地址用來指明頁內具體的寄存器,即為頁內偏移地址。
本文所介紹設計采用DSP+FPGA聯合操控,軟件操作在DSP內完成,FPGA將對應的指令譯碼成FLASH的相應操作時序,本設計有編程靈活、更改簡單等特點。
對K9WBG08U1M的主要操控有:Block Erase(塊擦除)、Page Program(頁編程)、Read Operation(讀操作)、Read Status(讀狀態)。下面對這三種常用操作進行介紹。
2.3.1 Block Erase
K9WBG08U1M在進行存儲數據之前必須進行擦除,數據只有在擦除后才能寫入,擦除操作以塊為單位進行的[9]。塊擦除包括下面3個步驟:
(1)寫入塊擦除建立命令60 h;
(2)分三個字節寫入塊地址;
(3)寫入塊擦除命令D0h。擦除操作完成后通過檢測狀態位I/O0判斷是否擦除成功。軟件流程圖3所示。
3 結 語
隨著基于NAND技術的FLASH固態存儲器的快速發展,其存儲密度也越來越大,而體積、功耗和成本卻在減小,這使得NAND型FLASH在大容量高速存儲設備的研制中得到廣泛應用[10]。本文介紹了NAND FLASH的特點,并設計了基于DSP+FPGA架構的控制電路,及其軟件接口設計。并編寫了用戶界面,通過其選擇塊擦除操作或頁編程操作或者讀操作,通過串口發送控制命令來引導程序進行相應操作。采用該記錄器分別對紅外熱像儀輸出圖像和CCD相機采樣圖像進行連續錄播實驗,試驗表明,本視頻錄放設備可連續進行兩個半小時的視頻錄制或播放。如需更大容量的存儲數據,FLASH陣列可以進一步擴大,并不增加復雜度。
參考文獻
[1] 謝偉華,譚永東,徐偉華.NAND FLASH的驅動程序設計[J].單片機與嵌入式系統應用,2009(2):35?38.
[2] 雷磊.NAND型FLASH海量存儲系統的設計與實現[D].南京:南京理工大學,2008.
[3] 陳國,高揚.NAND FLASH在大容量存儲技術中的應用[J].航天計算技術,2009,39(2):113?116.
[4] 何金偉,史斌寧,羅力.NAND FLASH存儲管理在DSP系統中的實現[J].微計算機信息,2009,25(4):92?95.
[5] 漢澤西,呂飛.大容量NAND FLASH在嵌入式系統中的應用[J].石油儀器,2006(2):62?66.
[6] 李華,賈振國.基于NAND FLASH的大容量視頻存儲系統的設計[J].物聯網技術,2012(2):33.
[7] 鄭文靜,李明強,舒繼武.FLASH存儲技術[J].計算機研究與發展,2010(4):716?724.
[8] Samsung Electromics. K9WAG08U0M flash memory datasheet [R]. South Korea: Samsung Electromics, 2007.
[9] 李洋,Michael Collier.數字電視NAND FLASH驅動程序的設計與實現[J].電腦知識與技術,2012(1):70?73.
[10] 朱知博.基于NAND FLASH的高速大容量存儲系統設計[J].現代電子技術,2011,34(8):173?175.