菅少坤,張會新*
(1.電子測試技術(shù)國家重點(diǎn)實(shí)驗(yàn)室(中北大學(xué)),太原030051; 2.儀器科學(xué)與動態(tài)測試教育部重點(diǎn)實(shí)驗(yàn)室,太原030051)
?
具有斷電續(xù)存功能固態(tài)存儲器的設(shè)計(jì)*
菅少坤1,2,張會新1,2*
(1.電子測試技術(shù)國家重點(diǎn)實(shí)驗(yàn)室(中北大學(xué)),太原030051; 2.儀器科學(xué)與動態(tài)測試教育部重點(diǎn)實(shí)驗(yàn)室,太原030051)
摘要:針對飛行器飛行過程中因偶然瞬時斷電而導(dǎo)致已存儲的數(shù)據(jù)會被覆蓋記錄的問題而提出了具有斷電續(xù)存功能固態(tài)存儲器的設(shè)計(jì)方案。以FPGA作為主控芯片,RS-422與LVDS作為硬件通信手段,NAND型FLASH為存儲核心,著重在交替雙平面存儲方式的基礎(chǔ)上通過編程實(shí)現(xiàn)了斷電續(xù)存功能。經(jīng)大量實(shí)測數(shù)據(jù)的科學(xué)分析表明,具有斷電續(xù)存功能固態(tài)存儲器的設(shè)計(jì)已成功實(shí)現(xiàn),解決了瞬時斷電后數(shù)據(jù)會被覆蓋記錄的問題,滿足某型號飛行器的需要。
關(guān)鍵詞:固態(tài)存儲器;斷電續(xù)存; FPGA; LVDS; FLASH
項(xiàng)目來源:航天一院一部項(xiàng)目
隨著科技的發(fā)展,飛行器的結(jié)構(gòu)更加的復(fù)雜,飛行器飛行過程中出現(xiàn)偶然瞬時斷電的概率越來越高,而偶然瞬時斷電會導(dǎo)致已存儲的數(shù)據(jù)被覆蓋記錄的問題,這種情況極其不利于科研。為此,設(shè)計(jì)了一種斷電并恢復(fù)供電后在不覆蓋原數(shù)據(jù)的基礎(chǔ)上繼續(xù)記錄的固態(tài)存儲器,同時可記錄斷電次數(shù)并通過斷電次數(shù)拆分出相應(yīng)瞬時斷電后所記錄的數(shù)據(jù)。在科研調(diào)試階段,多次測試后只需重新供電一次即可讀取全部數(shù)據(jù),可以減輕供配電系統(tǒng)工作負(fù)擔(dān),減少科研資金,縮短科研時間。
總體結(jié)構(gòu)設(shè)計(jì)主要分4個模塊,分別為:供電模塊、采集模塊、緩存模塊、存儲模塊。供電模塊中因采集圖像數(shù)據(jù)速度過快易受干擾,故需要單獨(dú)供電;采集模塊主要采集PCM數(shù)據(jù)和圖像數(shù)據(jù),采集的PCM數(shù)據(jù)經(jīng)電平轉(zhuǎn)換后緩存到FPGA內(nèi)部8KFIFO中,圖像數(shù)據(jù)經(jīng)數(shù)據(jù)隔離器后將數(shù)字信號緩存到FPGA內(nèi)部45KFIFO中[1-2];緩存模塊主要緩存PCM數(shù)據(jù)和圖像數(shù)據(jù),以便存儲模塊混編存儲??傮w結(jié)構(gòu)如圖1所示。
圖1 總體結(jié)構(gòu)框圖
PCM數(shù)據(jù)接收模塊采用技術(shù)非常成熟的RS-422通信接口,主控芯片為DS26C32,電平轉(zhuǎn)換芯片為SN74LV4245,電平轉(zhuǎn)換為5 V~3.3 V;圖像數(shù)據(jù)接收模塊采用速度遠(yuǎn)快于RS-422的LVDS通信,主控芯片為SN65LV1224,采集的數(shù)據(jù)經(jīng)ADUM1400進(jìn)行模數(shù)隔離,隔離后將數(shù)字信號發(fā)給FPGA。中心程序處理器采用XILINX生產(chǎn)的XC3S1400,總內(nèi)存空間為72 kbyte,給PCM數(shù)據(jù)分配8 kbyte緩存空間,圖像數(shù)據(jù)分配45 kbyte緩存空間,所以不需要配置外部FIFO即可實(shí)現(xiàn)數(shù)據(jù)的緩存[3-4]。
數(shù)據(jù)存儲模塊采用三星公司生產(chǎn)的K9WBG08U1M,該芯片內(nèi)部封裝了2個完全相同單元,各有一個片選信號CE控制,每個單元有4個plane,每個plane有2 048個block,每個block有64 個page,每個page存儲空間為4 kbyte及128 byte的擴(kuò)展存儲區(qū)。所以每片K9WBG08U1M共8個plane,每排共8個block,共2×8192block塊,4 Gbyte的存儲空間。K9WBG08U1M平面結(jié)構(gòu)示意圖如圖2所示。
圖2 K9WBG08U1M平面結(jié)構(gòu)示意圖
3.1邊擦邊寫設(shè)計(jì)
為實(shí)現(xiàn)斷電續(xù)存功能,必須解決兩個問題,第1:如何找到上次斷電時數(shù)據(jù)存儲的最后地址; 第2:如何確定斷電次數(shù)。存儲器每次執(zhí)行擦除命令時,有效數(shù)據(jù)和斷電次數(shù)歸零,所以為解決這兩個問題,必須從數(shù)據(jù)存儲特點(diǎn)入手。根據(jù)K9WBG08U1M雙片選的結(jié)構(gòu)特點(diǎn)(每片F(xiàn)LASH 有8個Plane),采用雙片選interleave two-plane頁編程方式存儲數(shù)據(jù),這樣就形成了每8個平面的8個塊為一個操作排列。block擦除操作時如果結(jié)合對片選信號的切換,那么即可實(shí)現(xiàn)雙片選雙平面block擦除的操作方式,這樣就實(shí)現(xiàn)了一次擦除一排8塊的特點(diǎn)[5-8]。雙片選雙平面block擦除的時序圖如圖3所示。
圖3 雙片選雙平面block擦除時序圖
對FLASH頁編程時,根據(jù)擦除方式對interleave two-plane頁編程方式進(jìn)行改進(jìn),加入片選后即實(shí)現(xiàn)了雙片選交替雙平面頁編程的特點(diǎn),編程的平面示意圖如圖4所示。一般的邊擦編寫順序?yàn)闄z查第N塊,擦除第N塊,頁編程第N塊;采用雙片選邊擦邊寫流程后,一次擦除8個block,然后采用圖4所示的頁編程方式,這樣保證了每次頁編程的數(shù)據(jù)塊之后總有至少8個block的“FF”塊。
圖4 雙片選交替雙片面頁編程平面示意圖
3.2斷電續(xù)存功能的實(shí)現(xiàn)
根據(jù)斷電后數(shù)據(jù)存儲的結(jié)尾處有“FF”塊的特點(diǎn),可以解決查找斷電時所存儲到的block塊地址問題。為了方便查找斷電次數(shù),在Flash頁編編程時每頁數(shù)據(jù)的第1個字節(jié)(頁計(jì)數(shù)之前)存儲斷電次數(shù),然后采用檢查無效塊的方式來確定首段“FF”塊的地址。最后,要找到“FF”塊,只需根據(jù)雙片選交替雙平面頁編程特別,查找第1個plane的每塊的第1頁的前一百個字節(jié)即可以完全確定斷電地址和斷電次數(shù)。由于無效塊的初始數(shù)據(jù)也可能為FF,所以為了確保查找“FF”塊的準(zhǔn)確性,查找前應(yīng)確定該塊為有效塊。需要注意的是:檢查無效塊時是檢查所有block塊,而查找“FF”塊則是在有效塊的基礎(chǔ)上僅檢查第1個 plane的所有block塊。具體流程圖如圖5所示。
圖5中FF_CNT表示FF字節(jié)計(jì)數(shù)器; POWER_ CNT_BUF用來緩存該塊第1個字節(jié)的數(shù)據(jù),即緩存斷電次數(shù); POWER_CNT用來存儲本次斷電次數(shù); FLASHDO表示從FLASH中讀出的數(shù)據(jù); COUNTB為塊地址計(jì)數(shù)器,提供檢查無效塊地址; COUNTB_ BUF用來緩存斷電地址。
圖5 查找斷電地址與斷電次數(shù)流程圖
當(dāng)FF_CNT= 0時表示從設(shè)定的塊地址的首頁讀出來了第1個數(shù)據(jù),將該值賦給POWER_CNT_ BEF是為了保持?jǐn)嚯姶螖?shù)實(shí)時更新,且暫存以前斷電次數(shù)。因存儲的數(shù)據(jù)格式設(shè)定為每頁第1個字節(jié)記錄的是斷電次數(shù),所以讀出來的第1個數(shù)據(jù)其值表示存儲該塊數(shù)據(jù)時的斷電次數(shù)或者為FF,若該值不為FF則表示為斷電次數(shù)。將緩存在POWER_ CNT_BUF的值賦給POWER_CNT,表示該值為存儲該塊數(shù)據(jù)時的斷電次數(shù),那么FF_CNT歸零同時塊地址計(jì)數(shù)器COUNTB加2(因同一個plane里連續(xù)block塊地址值差2,如圖2所示)進(jìn)入下一個循環(huán);若該值為FF則可能為所要查找的“FF”塊,那么FF _CNT加1然后返回繼續(xù)讀該頁的下一個字節(jié),當(dāng)連續(xù)讀出了100個FF時,即可確定找到了“FF”塊。找到“FF”塊后,斷電計(jì)數(shù)器POWER_CNT加1和FF_CNT歸零,POWER_CNT加1后表示第幾次斷電并在本次存儲數(shù)據(jù)的每頁的第1個字節(jié)寫入該值,為下次查找斷電次數(shù)做準(zhǔn)備。同時將查找到的“FF”塊的塊地址COUNTB賦給COUNTB_BUF作為本次存儲數(shù)據(jù)的起始地址。
根據(jù)本設(shè)計(jì)頁編程的特點(diǎn),斷電時每次FLASH中正在進(jìn)行頁編程的block塊一般不能全部編程完成,而重新上電后會在下一塊開始存儲,所以兩次連續(xù)斷電所記錄的數(shù)據(jù)之間一般存在一段“FF”數(shù)據(jù),“FF”數(shù)據(jù)的頁數(shù)為0~512(8×64)之間。因存儲的有效數(shù)據(jù)為PCM數(shù)據(jù)和圖像數(shù)據(jù),且在FLASH中存儲的方式為混編存儲,所以回讀上的數(shù)據(jù)需進(jìn)行拆分處理,上位機(jī)根據(jù)不同的斷電計(jì)數(shù)器的值將PCM數(shù)據(jù)和圖像數(shù)據(jù)拆分到不同的數(shù)據(jù)包中,且數(shù)據(jù)包的文件名中顯示了為第幾次斷電存儲的數(shù)據(jù)。處拆分后的數(shù)據(jù)中不包含斷電次數(shù)。根據(jù)拆分?jǐn)?shù)據(jù)的結(jié)果也可以判斷出斷電續(xù)存功能是否完成,更可以直觀的判斷出存儲數(shù)據(jù)期間存儲器斷電的次數(shù)。
3.3斷電續(xù)存功能可靠性分析
固態(tài)存儲器每次上電時首先進(jìn)行初始化,初始化工作主要是找出并記錄斷電次數(shù)和存儲的初始地址。為了不影響對固態(tài)存儲器的正常操作,初始化固態(tài)存儲器的時間必須在短時間內(nèi)執(zhí)行完,并且保存最后的斷電記錄地址和斷電次數(shù)。
初始化所用時間計(jì)算。每個block檢查2個page,一排block無效塊檢查所用時間Tb為: Tb= (tWB+tR+tRR+N×T)×8個block塊×2個page = (194.46 ns+25 μs+20 ns+27×13.89 ns)×2×8 = 409 431.84 ns=0.41 ms;
檢查一個block塊是否為“FF”塊所用時間Tf為:
tWB、tR、tRR對FLASH操作時所必須的延時,T為所選時鐘晶振的周期,晶振為72 MHz,N為運(yùn)行該程序所必須的時鐘個數(shù)。所以查“FF”塊所用時間最多為:
根據(jù)計(jì)算可知初始化時間最多為0.891 s,滿足實(shí)際需求。
以4次斷電記錄為例,4次斷電應(yīng)有5組數(shù)據(jù)(每組均包括一個圖像數(shù)據(jù)包和一個PCM數(shù)據(jù)包),將回讀數(shù)據(jù)經(jīng)拆分處理后結(jié)果如圖6所示。圖中顯示的第1個數(shù)據(jù)包為回讀上來的原始數(shù)據(jù),經(jīng)過圖中“拆分原始數(shù)據(jù)”指令后出現(xiàn)下面的5組數(shù)據(jù)。第1個括號里的數(shù)據(jù)表示回讀數(shù)據(jù)的時間和數(shù)據(jù)編號,第2個括號里的值表示存儲本文件中的數(shù)據(jù)時的斷電次數(shù),最后的數(shù)據(jù)表示為第幾次記錄的數(shù)據(jù),以P開題的文件表示PCM數(shù)據(jù),以T開頭的文件表示圖像數(shù)據(jù)。從圖中所示結(jié)果與理論結(jié)果完全相同可知,該設(shè)計(jì)成功的實(shí)現(xiàn)了存儲器的斷電計(jì)數(shù)功能。
圖6 4次斷電存儲后數(shù)據(jù)拆分結(jié)果
圖7為第3次斷電記錄的結(jié)尾與第4次斷電記錄的開始,圖中每行數(shù)據(jù)為28 672 byte(7×4 096數(shù)據(jù)),方框中的數(shù)據(jù)表示頁計(jì)數(shù),可知每行數(shù)據(jù)之間差值為7,橢圓中標(biāo)注的為第3次斷電和第4次斷電的計(jì)數(shù),箭頭表示第4次斷電的起始點(diǎn),從頁計(jì)數(shù)的值也可知斷電計(jì)數(shù)功能的成功實(shí)現(xiàn)。圖中兩次數(shù)據(jù)之間有55頁(每次的數(shù)據(jù)間隔可能不一樣,但在0~512之間變化)的“FF”數(shù)據(jù),這和理論情況完全相符。根據(jù)數(shù)據(jù)結(jié)果可知,該設(shè)計(jì)成功的查到了上次斷電的地址并在不覆蓋原數(shù)據(jù)的情況下完成了繼續(xù)存儲數(shù)據(jù)的功能。
圖7 實(shí)測數(shù)據(jù)片段
具有斷電續(xù)存功能固態(tài)存儲器已經(jīng)應(yīng)用到了某型號飛行器中,成功的解決了固態(tài)存儲器記錄數(shù)據(jù)時因偶然瞬時斷電且恢復(fù)供電后重新記錄會覆蓋原有數(shù)據(jù)的問題。經(jīng)實(shí)際測試表明,兩次斷電時間間隔至少在0.2 ms才可使系統(tǒng)準(zhǔn)確的記錄斷電次數(shù)并查找到斷電地址,而掉電時間在存儲器使用年限之內(nèi)(根據(jù)所選的FLASH而定,理論時間為8年)均可使系統(tǒng)完成預(yù)期目的。
參考文獻(xiàn):
[1]李大鵬.基于FPGA的高速LVDS接口實(shí)現(xiàn)[J].航空計(jì)算技術(shù),2012(9) : 46-47.
[2]任偉.基于LVDS的高速數(shù)據(jù)傳輸裝置的設(shè)計(jì)[J].科學(xué)技術(shù)與工程,2012(10) : 100-103.
[3]郭錚,張會新.基于FPGA的飛控系統(tǒng)數(shù)據(jù)存儲器的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測量與控,2013(1) : 304-305.
[4]孫其瑞,熊繼軍,梁庭.基于MEGA2560的低成本飛控系統(tǒng)雙存儲方案的設(shè)計(jì)[J].電子器件,2014,37(3) : 45-46.
[5]丁海飛.基于雙平面技術(shù)的固態(tài)存儲器的設(shè)計(jì)與實(shí)現(xiàn)[D].太原:中北大學(xué),2012: 5.
[6]郭鵬翔,祖靜.基于FPGA與NAND閃存的固態(tài)存儲系統(tǒng)設(shè)計(jì)[J].電子測試,2011(12) : 201-204.
[7]石亮.閃存存儲系統(tǒng)的性能優(yōu)化研究[D].中國科學(xué)技術(shù)大學(xué),2013: 5.
[8]史玉健.基于FLASH的高速記錄器的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)測量與控制,2011(12) : 147-148.
菅少坤(1988-),男,漢族,河南省安陽市內(nèi)黃縣人,現(xiàn)就讀于中北大學(xué)碩士研究生,主要研究方向?yàn)闇y試計(jì)量技術(shù)及儀器,976651004@ qq.com;
張會新(1980-),男,漢族,山西省太原市人,現(xiàn)就讀于北京理工博士學(xué)位,主要研究方向?yàn)闇y試計(jì)量技術(shù)及儀器,52167135@ qq.com。
Applications of Two-Dimensional FFT Algorithm in Radar Signal Processing of LFMCW Based on FPGA*
LIU Wenbin1,ZHU Mingri1*,ZHENG Danping2,PAN Kai1,YAO Xin1
(1.School of Electronic Engineering and Automation,Guilin University of Electronic Technology,Guilin Guangxi 541004,China; 2.School of Computer Science and Engineering,Guilin University of Electronic Technology,Guilin Guangxi 541004,China)
Abstract:There is a certain degree of difficulty to detect moving targets by linear frequency modulated continuous wave(LFMCW),two-dimensional FFT target echo signal processing techniques to extract phase information,which can effectively suppress the fixed clutter,achieve the detection of moving targets.The implementation of signal processing for Doppler velocity radar with a FPGA chip and LFMCW Doppler radar signal processing principles are introduced.The data buffer,fast algorithm for the FFT sequence of real numbers,Hilbert transform,etc of the FPGA are described.Finally,the test results show that the two-dimensional FFT algorithm can extract the distance and speed of the target.
Key words:FPGA; FFT; LFMCW; target detection
中圖分類號:TP333.1
文獻(xiàn)標(biāo)識碼:A
文章編號:1005-9490(2015) 03-0592-05
收稿日期:2014-06-25修改日期: 2014-08-08
doi:EEACC: 7210G10.3969/j.issn.1005-9490.2015.03.024