孫 琦,苗巖松
(太原衛星發射中心 技術部,山西 太原 030027)
隨著我國航天技術的不斷發展,為更詳盡地掌握運載火箭和衛星在發射飛行期間的工作狀態,運載火箭遙測系統和衛星測控系統遙測數據量越來越大,無線傳輸方式由于遙測帶寬和地面測控弧段所限,只能采用高速大容量存儲器記錄回放數據。另外,隨著電子技術和雷達成像技術的快速發展,各種對地成像衛星和雷達偵察衛星對圖像精度要求越來越高,致使有效載荷的分辨率越來越高,由此也帶來了高速大容量數據的存儲問題。由于發射飛行和太空工作環境極其惡劣,運載火箭和衛星上的各類存儲系統又要求掉電后能保留數據并具有較高的可靠性,因此存儲電路通常采用非易失的電路芯片。快速發展的Flash芯片因具有體積小、成本低、功耗小、壽命長、抗振動和寬溫度適應范圍等特點,逐漸成為高速大容量存儲系統設計的主流選擇。
根據運載火箭和衛星各類遙測系統對實時存儲的需求,針對遙測系統實時存儲數據容量大、讀寫速度快、可靠性要求高和使用環境苛刻等要求,提出了采用Flash芯片作為存儲介質,通過流水線技術和并行處理技術,從而實現了低速Flash芯片實時可靠存儲高速數據的目的,利用無效塊管理技術和防誤擦除技術提高了高速實時數據存儲可靠性。
為提高獲取數據的容量和可靠性,運載火箭遙測系統、衛星測控系統和衛星有效載荷數傳系統等各類遙測系統在無線遙測傳輸的基礎上,越來越多地采用存儲器實時記錄存儲遙測數據。
運載火箭遙測系統主要用于發射場測試和發射飛行期間的數據獲取,為射前決策提供數據支持,為飛行試驗結果分析提供依據[1]。運載火箭遙測系統數據傳輸方式包括無線遙測傳輸和存儲器記錄回收2種方式,中繼方式傳輸應用較少。
無線遙測傳輸方式受遙測帶寬所限,實時傳輸數據量有限。采用存儲器實時記錄,發射后對存儲器進行回收,可獲取大量詳盡的試驗數據。存儲器記錄方式還具有不受天氣和黑障影響、可靠性高等特點。
衛星測控系統用于衛星的跟蹤、遙測、遙控,遙測部分用于實時傳輸衛星保障系統(衛星平臺)的各種工作參數,檢測衛星保障系統工作情況。有效載荷數傳系統是根據遙控指令完成對有效載荷數據的接收、處理、存取、加密和射頻放大等,通過數傳天線發送至地面數據接收站[2]。衛星測控數據和有效載荷數傳系統的應用數據一般包括實時無線下傳、中繼下傳和記錄回放下傳等方式。
實時無線下傳方式受測控布站、信道容量所限,只能在測控弧段內傳輸數據。中繼方式實時發送數據量有限,只能實時下傳關鍵參數。衛星運行在非地面測控弧段時,采用存儲器記錄數據,達到測控弧段后快速讀出數據并通過無線方式下傳數據。
綜合分析運載火箭遙測系統、衛星測控系統和衛星有效載荷數傳系統等各類遙測系統的數據傳輸方式,存儲器在各類遙測系統中的應用越來越廣泛,起著越來越無法替代的作用。各類遙測系統對存儲器的需求如下:
① 存儲容量大:新型運載火箭由于采用總線技術,在提高可靠性的同時,數據量也越來越大,迫切需要提高存儲器容量,為事后結果分析提供更多數據;隨著電子技術和雷達成像技術的快速發展,各種對地成像衛星和雷達偵察衛星對圖像精度要求越來越高,致使有效載荷的分辨率越來越高,由此也帶來了高速大容量數據的存儲問題。
② 讀寫速度快:由于運載火箭飛行時間較短,衛星測控系統和數傳系統無線傳輸又受測控弧段所限,存儲器存儲容量的提升勢必對存儲器的讀寫速度提出更高的要求。只有讀寫速度提高,才能在有限的時間內,存入或讀出大量數據,滿足各類遙測系統數據量提高和短時間無線向下傳輸的需求。
③ 可靠性高:由于發射飛行和太空工作環境極其惡劣,而各類存儲器所存儲的數據又極為珍貴,一旦存儲器出現問題造成數據丟失,會給運載火箭和衛星應用帶來巨大問題,因此,運載火箭和衛星上的各類存儲系統又要求掉電后能保留數據并具有良好的容錯能力,這就要求存儲器具有較高的可靠性。
基于Flash存儲介質的高速存儲關鍵技術主要有提高寫入速度的流水線技術和并行技術、提高可靠性的無效塊管理技術和防誤擦除技術[3]。
各類遙測系統要求存儲器在瞬態存儲時,存儲器的讀寫速度往往要達到20 Mb/s以上。由于大容量、高性價比以及斷電后數據保持能力的優點,Flash芯片倍受青睞。由于Flash芯片在進行寫操作之前必須先進行擦除操作,因此Flash芯片讀數據的速度能夠滿足要求,但寫數據的速度較慢,達不到上述指標。
2.1.1 Flash芯片的固有寫入速度
典型的Flash芯片讀寫周期twc為25 ns,因此,緩沖區的峰值速度為:
fwr=1/twc=1/25 ns=40 Mb/s。
(1)
由緩沖區編程固化到Flash芯片的時間為tPROG,假設寫緩沖區和編程固化交替連續進行,則寫入Flash芯片的平均速度為:
(2)
Flash芯片編程固化一頁的數據所需時間tPROG一般為200 μs,最高不超過700 μs,將其代入式(2)得到:
2.73 Mb/s (3) 因此,Flash芯片的最高寫入速度約為8.15 Mb/s,遠遠無法達到20 Mb/s以上的寫入速度需求[4-5]。 2.1.2 流水線技術與并行技術 為了提高Flash芯片的寫入速度,達到20 Mb/s以上的讀寫速度要求,需要采取流水線技術和并行處理技術。 流水線技術在計算機領域和工業生產領域都已經得到了廣泛運用,借鑒流水線技術在進行Flash芯片寫入時可以大大節省存儲時間,提高寫入速度[6]。Flash芯片每頁數據的寫入時間和編程時間是由芯片器件本身所決定的,當寫完一頁數據后,Flash芯片需要等待寫入的數據完成自動編程,即將數據從臨時寄存器中寫入存儲單元,編程期間不能進行其余操作,編程結束后,Flash芯片才能進行下一頁數據的寫入,然后再進行編程[7]。因此如果可以對Flash芯片的編程時間加以利用,使Flash芯片在進行本頁數據編程的同時去寫入下一頁數據,這樣便可節省存儲時間,提高寫入速度[8]。 通過并行處理技術可以比較直觀地提高寫入速度:將n片低速Flash芯片并聯,使用相同的控制線和信號線,構成一個Flash芯片組。這樣n片Flash芯片并行工作,進行相同的操作,理論上寫入速度可以達到單片Flash芯片的n倍[9]。 采用流水線技術和并行處理技術后,Flash芯片在高速存儲過程中不必去考慮頁編程是否完成,從而使Flash芯片的寫入速度近似達到芯片接口寫入速度(緩沖區的峰值速度)[10]。 2.1.3 技術實現途徑 采用流水線技術后,單個Flash芯片的寫入過程包括接收數據、寫數據和存儲器編程(等待存儲器寫入數據)3道工序,如圖1所示,接收數據是指高速接收各類數據設備需要存儲的數據并將數據暫時存放到緩沖區,寫數據是將存放到緩沖區的數據高速寫入到存儲器芯片,存儲器芯片需要長時間的編程等待[11]。所以,在寫入過程的3道工序中,存儲器編程屬于瓶頸工序。 圖1 單個Flash芯片高速寫入流水線 將n片Flash芯片組成一組,將存儲器編程工序設置n-1道并行工序,采取流水線技術和并行處理技術的電路框圖如圖2所示[12-13]。第1片Flash芯片寫入第1頁數據后進入存儲器編程工序,然后第2片Flash芯片開始寫入第1頁數據,完成數據寫入后也進入存儲器編程工序,依次對第3~n片Flash芯片進行相同的操作。 圖2 n片Flash芯片并行高速寫入流水線時空圖 每片Flash芯片連續寫一頁的時間Δt為: Δt=2 048tWC=2 048×25 ns=51.2 μs, (4) n-1片Flash芯片緩存區各寫一頁的寫入時間: (n-1)Δt=(n-1)51.2 μs。 (5) 當n取15時(將15片Flash芯片組成一組,存儲器編程瓶頸工序設置14道并行工序),14片Flash芯片緩存區的寫入時間為716.8 μs。因此,當存儲器的第2~15片芯片完成寫入數據后,時間已超過了第1片芯片的編程時間tPROG(200~700 μs),此時第1片芯片已經完成上一頁數據的編程,可以接收和寫入下一頁數據,實際的讀寫速度可以達到緩沖區的峰值速度40 Mb/s。 Flash芯片的無效塊是指一個塊內含有一位或更多位的數據單元無法進行讀、寫、擦除和編程等操作。若不對無效塊進行處理,將會導致數據的丟失和不連續。NAND型Flash芯片在出廠時內部會隨機分布有無效塊(初始無效塊),在芯片的長期使用過程中不可避免地還會增加新的無效塊(新增無效塊)。因此在Flash芯片的使用過程中,需要建立一個針對無效塊的管理列表,將芯片包含的所有無效塊信息寫入此管理列表中,在新出現無效塊時也能夠及時更新無效塊管理列表。 2.2.1 建立無效塊管理列表 每一塊Flash芯片在出廠時已經標明了初始無效塊。讀取Flash芯片每一塊的第1、第2頁的第2 048個字節來判斷該塊是否為無效塊:如果第1頁和第2頁的第2 048個字節均為“FF”(16進制),則認為此塊是有效塊,否則便為無效塊。建立無效塊管理列表可以使用將其內部地址空間和Flash芯片內部塊地址一一對應的映射方法,當發現某一塊是無效塊時,只需將列表中對應此塊地址的單元寫入“0”即可,而其余的地址單元仍為“1”(代表該塊為有效塊)[14]。在對Flash芯片的每一塊進行操作之前,都需要首先讀取無效塊管理列表中對應此塊地址單元的信息,判斷該塊是否為無效塊,如果是無效塊就跳過此塊不進行操作,直至找出有效塊時再進行操作[15]。建立無效塊管理列表如圖3所示。 圖3 建立無效塊管理列表 2.2.2 更新無效塊管理列表 對于Flash芯片使用過程中新增加的無效塊,可以通過讀狀態寄存器來進行判斷。操作Flash芯片過程中,如果出現無效塊,可以先更新狀態寄存器中對應于該塊的信息,待Flash芯片操作結束后再將狀態寄存器中的信息寫入無效塊管理列表[16]。無效塊管理列表的更新過程如圖4所示。 圖4 更新無效塊管理列表 由于Flash芯片在進行寫操作之前必須先進行擦除操作。在實際使用過程中,如果出現意外,則有可能出現二次擦除,若不采取防范措施,就會出現數據丟失的災難性后果,因此如何防止誤擦除是非常關鍵的。采用“讀數法”可以避免這種誤擦除[17]:在擦除后,Flash芯片內部單元所存儲的數據均為“FFFF”,當Flash芯片開始記錄時,首先讀取Flash芯片內所存儲的一小段數據,如果該數據均為“FFFF”,表明Flash芯片已經擦除完成還未開始記錄,此時可以開始進行記錄;如果該數據不為“FFFF”,則說明Flash芯片已經存儲了有效數據,此時,不再進行擦除和寫入工作。 目前該技術已經在多種型號運載火箭的實際測試飛行中應用。如某型運載火箭為了獲取再入大氣穿越“黑障”區時遙測數據的采集任務,提高試驗數據的保密性,設計了低功耗、大容量、高讀寫速率和強抗過載的新型存儲器。存儲器模塊組成如圖5所示。 該存儲器主要包括接口保護電路、中心邏輯控制電路FPGA及E2PROM、FLASH存儲器、電壓穩壓模塊、晶體振蕩器和狀態指示電路等。其中數據接口為雙向接口,在采集狀態下為輸入接口,在讀數狀態下為輸出接口;FPGA內部采用了2 kByte的雙口RAM構成的FIFO,對數據進行緩存,保證了Flash Memory在頁編程和擦除期間數據不丟失,且讀寫速率可達150 Mbps;FLASH存儲器選用SAMSUNG公司的芯片作為基本存儲芯片,單片容量為8 G,并且可以通過簡單的芯片升級以及少量的軟件改動實現總存儲容量升級。 圖5 存儲器模塊組成 通過該型運載火箭的多次飛行試驗驗證,存儲器完整獲取了有效的飛行試驗數據,為分析運載火箭穿越“黑障”區時的力學環境,改進飛行器性能提供了可靠的數據支撐。 隨著基于Flash存儲介質的高速存儲技術的深入開發利用,實現了運載火箭地面測試和實際飛行時數據的高速可靠存儲。另外,基于Flash存儲介質的高速存儲技術在運載火箭飛行試驗數據的記錄回收、回收類航天飛行器的試驗數據記錄回收、飛機等航空產品的飛行數據記錄回收如黑匣子,炮彈的試驗數據記錄回收,汽車撞擊試驗等民用產品數據記錄方面均有廣泛的應用。 [1] 徐克俊.發射工程學概論[M].北京:國防工業出版社,2003. [2] 張育林,吳建軍.航天器[M].北京:國防工業出版社,2006. [3] 高怡禎.基于閃存的星載大容量存儲器的研究和實現[J].電子技術應用,2003(8):75-78. [4] 車艷霞,任勇峰,劉東海.一種小體積高速數據記錄器的設計與實現[J].自動化與儀表,2011(11):9-12. [5] 儲成群,焦新泉,于君.一種大容量固態飛行數據記錄器設計[J].計算機測量與控制,2011,19(1):227-229. [6] 朱知博.基于NAND Flash的高速大容量存儲系統設計[J].現代電子技術,2011,34(8):170-173. [7] 王強,文豐,任勇峰.基于FPGA的高速實時數據采集存儲系統[J].儀表技術與傳感器,2009(1):50-52. [8] 彭軍,黎福海,羅旗舞.一種多通道并行固態存儲系統的設計與實現[J].計算機工程,2013,39(12):40-44. [9] 李超,王虹現,邢孟道.高速大容量Flash存儲系統設計[J].火控雷達技術,2007,36(1):83-88. [10] 宋琪,李姍,朱巖.針對Flash存儲特性的航天器大容量固態存儲技術[J].電子設計工程,2015,23(4):169-171. [11] 吳黎慧,蒲南江,張娟娟.基于閃存陣列的高速存儲方法[J].電子測試,2011(7):89-92. [12] 李剛.合成孔徑雷達高速固態數據存儲器研究[D].北京:中國科學院,2005. [13] 張盛兵,賈寶峰.雙通道流水線Flash存儲系統的設計[J].微電子學與計算機,2008,25(8):224-228. [14] 焦亞濤,李娜娜,王雪松.一種高速固態存儲系統的設計與實現[J].電測與儀表,2011,48(551):76-79. [15] 高怡禎.提高閃速存儲器寫入速度的方法[J].電子技術,2003(5):20-23. [16] 史玉健,任勇峰,李輝景,等.基于Flash的高速數據記錄器的研究與設計[J].計算機測量與控制,2011,19(12):3158-3160. [17] 楊志勇,文豐,郝曉劍.基于Flash存儲器的抗高過載電子記錄器關鍵技術研究[J].國外電子測量技術,2009,28(7):27-29.

2.2 無效塊管理技術


2.3 防誤擦除技術
2.4 應用結果及分析

3 結束語