摘 要: 機(jī)載防護(hù)型綜合記錄系統(tǒng)對(duì)存儲(chǔ)容量和數(shù)據(jù)可靠性有著較高的要求,但大容量固態(tài)存儲(chǔ)器均存在不同程度的誤碼問(wèn)題。為此,提出一種數(shù)據(jù)不等長(zhǎng)編碼保護(hù)方案,利用RS碼作為主要編碼方式,針對(duì)飛參、艙音、圖片及視頻不同數(shù)據(jù)類型采用不同的編碼冗余,兼顧記錄容量和存儲(chǔ)可靠性。試驗(yàn)驗(yàn)證表明,該方案可有效提高機(jī)載防護(hù)型綜合記錄系統(tǒng)數(shù)據(jù)傳輸和存儲(chǔ)可靠性,提高數(shù)據(jù)還原率,兼顧存儲(chǔ)效率。
關(guān)鍵詞: 飛參; 艙音; 視頻; 不等長(zhǎng)編碼; 存儲(chǔ)容量; 存儲(chǔ)可靠性
中圖分類號(hào): TN911.21?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2016)13?0055?04
Abstract: The airborne?protection integral record system has high demand in memory capacity and data reliability. Howe?ver, the high?capacity solid?state memory has the bit error problem to a certain extent. That is why an unequal length coding protection scheme is proposed for data, in which the Reed Solomon (RS) code is utilized as the main coding scheme. The different coding redundancies are adopted for various data types, such as flight parameters, cockpit voice, image and video to ensure the recording capacity and storage reliability. The results of experimental verification demonstrate that the proposed scheme can effectively improve the data transmission and storage reliability of the airborne integrated record system for data protection, and data recovery rate while ensuring the storage efficiency.
Keywords: flight parameter; cockpit voice; video; unequal length coding; memory capacity; storage reliability
0 引 言
隨著科技迅猛發(fā)展,目前采用音頻/視頻/飛參信號(hào)采集、壓縮大容量存儲(chǔ)技術(shù)的綜合數(shù)據(jù)記錄系統(tǒng)開(kāi)始在新型飛機(jī)上推廣應(yīng)用,在飛行監(jiān)控、科學(xué)維修、故障診斷、事故原因分析等方面發(fā)揮著重要作用。為了保證飛機(jī)事故后能得到真實(shí)、客觀的記錄數(shù)據(jù),機(jī)載防護(hù)型綜合記錄系統(tǒng)對(duì)數(shù)據(jù)記錄的準(zhǔn)確性及可靠性有著極高的要求?,F(xiàn)階段由于所需記錄的各種類型數(shù)據(jù)量激增,綜合數(shù)據(jù)記錄系統(tǒng)的存儲(chǔ)容量已經(jīng)突破256 Gb,通常采用NAND閃存實(shí)現(xiàn),實(shí)際統(tǒng)計(jì)表明,NAND閃存存在由單個(gè)電路故障引發(fā)的硬錯(cuò)誤、由α粒子引發(fā)的軟錯(cuò)誤,同時(shí)數(shù)據(jù)高速傳輸和記錄過(guò)程中由于復(fù)雜的電磁環(huán)境也會(huì)引入各種類型的傳輸錯(cuò)誤[1?3]。
本文分析機(jī)載電磁環(huán)境下多路數(shù)據(jù)存儲(chǔ)過(guò)程中干擾類型、產(chǎn)生錯(cuò)誤的原因,給出了一種不等長(zhǎng)編碼保護(hù)的糾錯(cuò)碼方案,對(duì)視頻/音頻/飛行參數(shù)提供不同程度的編碼保護(hù)。
1 錯(cuò)誤類型分析
大容量NAND閃存的主要錯(cuò)誤是單個(gè)電路故障所引起的一位或相關(guān)多位錯(cuò),而隨機(jī)獨(dú)立的多位錯(cuò)誤極少。在按字節(jié)組織的內(nèi)存儲(chǔ)器中,主要錯(cuò)誤模式為單字節(jié)錯(cuò);在按位組織的內(nèi)存儲(chǔ)器中,主要錯(cuò)誤模式為單位錯(cuò)。半導(dǎo)體存儲(chǔ)器的錯(cuò)誤大體上分為硬錯(cuò)誤和軟錯(cuò)誤,其中主要為軟錯(cuò)誤。硬錯(cuò)誤表現(xiàn)的現(xiàn)象是在某個(gè)或某些位置上存取數(shù)據(jù)重復(fù)地出現(xiàn)錯(cuò)誤,出現(xiàn)這種現(xiàn)象的原因是一個(gè)或幾個(gè)存儲(chǔ)單元出現(xiàn)故障。軟錯(cuò)誤主要是由α粒子引起的,存儲(chǔ)器芯片的材料中含有微量放射性元素,它們會(huì)間斷地釋放α粒子。這些粒子以相當(dāng)大的能量沖擊存儲(chǔ)電容,改變其電荷,從而引起存儲(chǔ)數(shù)據(jù)的錯(cuò)誤[1~3]。另外,大容量NAND閃存多為MLC疊層結(jié)構(gòu),由于其工藝問(wèn)題,如果不使用其內(nèi)部的ECC編碼,則數(shù)據(jù)存儲(chǔ)的誤碼率極高[4]。
引起軟錯(cuò)誤的另一原因是噪聲干擾。由于機(jī)載設(shè)備生存的電磁環(huán)境較復(fù)雜,尤其飛機(jī)事故前的關(guān)鍵時(shí)刻,機(jī)載電磁環(huán)境會(huì)更加復(fù)雜,采集到的數(shù)據(jù)在傳輸過(guò)程中極有可能受到各種類型噪聲的干擾而發(fā)生傳輸錯(cuò)誤。
2 詳細(xì)設(shè)計(jì)
2.1 不等長(zhǎng)編碼方案
針對(duì)機(jī)載防護(hù)型綜合記錄系統(tǒng)的特殊需求和特點(diǎn),以提高數(shù)據(jù)記錄可靠性為目的,同時(shí)兼顧數(shù)據(jù)記錄效率,基于FPGA設(shè)計(jì)了一種不等長(zhǎng)編碼保護(hù)的糾錯(cuò)碼方案,對(duì)視頻/音頻/飛行參數(shù)提供不同程度的編碼保護(hù)。
方案采用抗突發(fā)錯(cuò)誤能力較強(qiáng)的Reed?Solomon碼[5]作為主要編碼方式,針對(duì)不同數(shù)據(jù)類型采用不同的編碼冗余,對(duì)飛參數(shù)據(jù)這種數(shù)據(jù)量小,但重要等級(jí)最高的數(shù)據(jù)采用低碼率的編碼方式,并輔以交織編碼級(jí)聯(lián),同時(shí)實(shí)現(xiàn)糾錯(cuò)和保密編碼;對(duì)視頻數(shù)據(jù)這種數(shù)據(jù)量大,相對(duì)重要等級(jí)比較低的數(shù)據(jù)采用高碼率的編碼方式,以保證數(shù)據(jù)存儲(chǔ)實(shí)時(shí)性及有效性;對(duì)音頻數(shù)據(jù)來(lái)講,數(shù)據(jù)量相對(duì)較少,重要性相對(duì)較高的數(shù)據(jù)也以保證數(shù)據(jù)的可靠性為主。
方案由音頻/視頻/飛行參數(shù)編碼通道、可配置接口通道、速率匹配、多通道數(shù)據(jù)整合組成,如圖1所示。
對(duì)音頻/視頻/飛行參數(shù)進(jìn)行采集、壓縮等處理后,通過(guò)接口通道與編碼通道對(duì)接,經(jīng)過(guò)速率匹配后根據(jù)預(yù)先設(shè)定好的編碼方式對(duì)三種不同類型數(shù)據(jù)各自進(jìn)行編碼,編碼完成后重新經(jīng)過(guò)速率匹配,最后對(duì)多通道數(shù)據(jù)進(jìn)行整合,將整合后的數(shù)據(jù)按存儲(chǔ)接口要求進(jìn)行接口轉(zhuǎn)換完成對(duì)NAND FLASH的存儲(chǔ)過(guò)程。
其中不等長(zhǎng)編碼保護(hù)方案采用三種不同的RS編碼方案,分別針對(duì)不同格式的視頻信息、圖像信息、飛行參數(shù)數(shù)據(jù)及音頻數(shù)據(jù),相應(yīng)的設(shè)計(jì)指標(biāo)見(jiàn)表1。
碼字類型為RS(255,223)時(shí),碼字取自有限域GF(28),碼長(zhǎng)信息位長(zhǎng)校驗(yàn)位長(zhǎng)度生成多項(xiàng)式,糾錯(cuò)能力為255個(gè)符號(hào)中糾正16個(gè)符號(hào)隨機(jī)錯(cuò)誤。
碼字類型為截?cái)啻aRS(32,16)時(shí),碼字取自有限域GF(28),碼長(zhǎng)信息位長(zhǎng)校驗(yàn)位長(zhǎng)度編碼效率為50.0%,生成多項(xiàng)式 糾錯(cuò)能力為32個(gè)符號(hào)中糾正8個(gè)符號(hào)隨機(jī)錯(cuò)誤。
碼字類型為截?cái)啻aRS(48,32)時(shí),碼字取自有限域GF(28),其本原多項(xiàng)式為碼長(zhǎng)信息位長(zhǎng)校驗(yàn)位長(zhǎng)度編碼效率為66.7%,生成多項(xiàng)式,糾錯(cuò)能力為48個(gè)符號(hào)中糾正8個(gè)符號(hào)隨機(jī)錯(cuò)誤。
2.2 編譯碼通道實(shí)現(xiàn)
編譯碼流程如圖2所示。以無(wú)壓縮音頻數(shù)據(jù)為例,來(lái)自麥克風(fēng)的語(yǔ)音信號(hào)經(jīng)采樣量化成數(shù)字信號(hào),接口轉(zhuǎn)換后以串行數(shù)據(jù)流的形式送入該前向糾錯(cuò)模塊編碼通道,BCLKX是串行數(shù)據(jù)時(shí)鐘,根據(jù)音頻采樣速率,可選擇頻率為2.4 kHz,4.8 kHz,9.6 kHz,16 kHz或32 kHz,BDX是串行數(shù)據(jù),BFSR是幀同步信號(hào),每8 b為一幀。
在編碼通道中進(jìn)行數(shù)據(jù)的接收、串并轉(zhuǎn)換、數(shù)據(jù)緩存,當(dāng)數(shù)據(jù)存滿256 b時(shí),啟動(dòng)編碼電路,為縮短系統(tǒng)的編碼延時(shí),采用50 MHz的時(shí)鐘進(jìn)行RS(48,32)編碼,碼字符號(hào)存入數(shù)據(jù)緩存,當(dāng)一個(gè)RS碼字編碼結(jié)束時(shí)啟動(dòng)數(shù)據(jù)發(fā)送模塊,數(shù)據(jù)以串行碼的形式傳送至接口轉(zhuǎn)換單元,BCLKR0是發(fā)送時(shí)鐘,頻率可選為32 kHz或31.5 kHz,BDR0為發(fā)送的串行數(shù)據(jù),BFSR0為數(shù)據(jù)幀同步信號(hào),每8 b為一幀。在接收譯碼時(shí),從記錄器中讀取音頻數(shù)據(jù),接口轉(zhuǎn)換后串行進(jìn)入譯碼通道,BCLKX0為同步時(shí)鐘,BFSX0為數(shù)據(jù)幀同步信號(hào),每8 b為一幀。數(shù)據(jù)經(jīng)串并轉(zhuǎn)換后存入數(shù)據(jù)緩存,當(dāng)接收數(shù)據(jù)存滿48 B后啟動(dòng)譯碼模塊進(jìn)行數(shù)據(jù)的譯碼,譯碼模塊所用的時(shí)鐘頻率為40 MHz,這樣使系統(tǒng)譯碼延時(shí)降低。譯碼后的數(shù)據(jù)同時(shí)存入數(shù)據(jù)緩存,當(dāng)緩存中有數(shù)據(jù)時(shí)啟動(dòng)數(shù)據(jù)發(fā)送模塊,經(jīng)過(guò)速率和接口轉(zhuǎn)換卸載到地面設(shè)備。
為了防止編譯碼器的輸入緩存出現(xiàn)數(shù)據(jù)的讀空或溢出現(xiàn)象,保證數(shù)據(jù)的正確性,在電路中采用時(shí)鐘同步與產(chǎn)生電路。由DSP處理器控制程序?qū)χ噶罴拇嫫鬟M(jìn)行讀寫操作,指令寄存器再對(duì)接口工作時(shí)鐘頻率進(jìn)行選擇,實(shí)現(xiàn)編譯碼時(shí)鐘與外部串行口時(shí)鐘的產(chǎn)生與同步。在該電路中BCLKR0與BCLKX1同步,BCLKR1與BCLKX0同步,時(shí)鐘的分頻與倍頻采用高倍時(shí)鐘HCLK計(jì)數(shù)及FPGA片內(nèi)鎖相環(huán)來(lái)實(shí)現(xiàn)。
編碼器調(diào)用的RS碼編碼子程序RS_encode(*p1, *p2,i)的流程圖如圖3所示。p1為信息的指針,p2為RS碼的指針,i表示第i個(gè)碼字。gf_mult為有限域中的乘法與除法函數(shù)。
譯碼器調(diào)用RS譯碼程序,利用Vandermonde矩陣類中的Bjorck?Pereyra算法[5?6]實(shí)現(xiàn)其快速譯碼。有限域中的乘法與除法函數(shù)運(yùn)算服從GF(28)域中的運(yùn)算。RS譯碼子程序RS_decode(*p1,*p2,*p3)的程序流程圖如圖4所示,p1為RS碼的指針,p2為已解碼信息的指針,p3表示優(yōu)選對(duì)的指針,gf_mult()為有限域中的乘法與除法函數(shù)。
3 試驗(yàn)驗(yàn)證
3.1 無(wú)編碼條件下誤碼率驗(yàn)證
記錄器存儲(chǔ)組件采用美光MT29F128G08JCABA[4]閃存,由2個(gè)片選構(gòu)成,每個(gè)片選有8 192個(gè)數(shù)據(jù)塊,每個(gè)塊有256頁(yè),而每頁(yè)有4 096個(gè)字節(jié)。數(shù)據(jù)記錄時(shí),測(cè)試計(jì)算機(jī)產(chǎn)生隨機(jī)測(cè)試數(shù)據(jù),經(jīng)串口發(fā)送至防護(hù)型綜合記錄系統(tǒng)采集器,采集器對(duì)數(shù)據(jù)處理后發(fā)送至記錄器存儲(chǔ),為了節(jié)省時(shí)間,僅測(cè)試了每一個(gè)塊的前5頁(yè)。測(cè)試結(jié)果表明,無(wú)編碼條件下的誤碼率在10e-6到10e-7之間,無(wú)法滿足防護(hù)型綜合記錄系統(tǒng)的應(yīng)用需求。
3.2 誤碼率對(duì)比驗(yàn)證
測(cè)試計(jì)算機(jī)同時(shí)向含編碼和不含編碼的機(jī)載防護(hù)型綜合記錄系統(tǒng)發(fā)送模擬飛參、視頻和音頻三種數(shù)據(jù),將下載后的數(shù)據(jù)回放,并與原文件對(duì)比。飛參數(shù)據(jù)以大氣總溫為例,記錄時(shí)間約1 h,對(duì)比結(jié)果如圖5所示,可見(jiàn)未編碼時(shí)毛刺較多;已編碼的數(shù)據(jù)未發(fā)現(xiàn)毛刺。
音頻數(shù)據(jù)以一段音樂(lè)為例,記錄時(shí)間約10 min,對(duì)比結(jié)果如圖6所示,從時(shí)域和頻域都可以看出,編碼的音頻失真相對(duì)原音頻較小,實(shí)際回放時(shí),未編碼的音頻中可以聽(tīng)出誤碼時(shí)的“噠噠”聲,已編碼的音頻“噠噠”聲消除。
視頻數(shù)據(jù)以標(biāo)清視頻記錄為例,記錄時(shí)間約1 h,編碼與未編碼相比回放流暢,馬賽克現(xiàn)象得到有效抑制。
對(duì)比驗(yàn)證表明,實(shí)驗(yàn)室條件下,同樣的傳輸、記錄條件,當(dāng)對(duì)飛參、音頻和視頻分別進(jìn)行不等長(zhǎng)編碼和不編碼,傳輸過(guò)程均未發(fā)生數(shù)據(jù)溢出等傳輸速率不滿足要求的問(wèn)題;同時(shí),不等長(zhǎng)編碼后可以有效降低三種數(shù)據(jù)的誤碼率。
4 結(jié) 語(yǔ)
本文分析了機(jī)載防護(hù)型綜合記錄系統(tǒng)的需求特點(diǎn),基于FPGA設(shè)計(jì)了不等長(zhǎng)編碼保護(hù)方案,可以用于視頻/音頻/飛參記錄過(guò)程中的數(shù)據(jù)保護(hù),同時(shí)兼顧了記錄的可靠性和有效性,試驗(yàn)驗(yàn)證證明設(shè)計(jì)合理可行,對(duì)于復(fù)雜電磁環(huán)境下重要數(shù)據(jù)記錄等相關(guān)領(lǐng)域具有一定的借鑒意義。
參考文獻(xiàn)
[1] OLDHAM T R, SUHAIL M, FRIENDLICH M R, et al. TID and SEE response of advanced 4G NAND Flash memories [C]// Proceedings of 2008 IEEE Radiation Effects Data Workshop. Tucson: IEEE, 2008: 31?37.
[2] 朱巖.基于閃存的星載高速大容量存儲(chǔ)技術(shù)的研究[D].北京:中國(guó)科學(xué)院空間科學(xué)與應(yīng)用研究中心,2006.
[3] 董巍.面向片上存儲(chǔ)應(yīng)用的高性能抗輻射糾錯(cuò)碼機(jī)制的研究與實(shí)現(xiàn)[D].上海:上海交通大學(xué),2009.
[4] Micron Technology. NAND Flash memory MT29F128G08JCABA datasheet [R]. US: Micron Technology, 2009.
[5] LIN Shu, COSTELLO D J.差錯(cuò)控制編碼[M].晏堅(jiān),何元智,潘亞漢,譯.北京:機(jī)械工業(yè)出版社,2007.
[6] BLAHUT R E. Theory and practice of error?correcting codes [M]. US: Addison?Wesley, 1983.