周文輝,鄧春健,官祥飛
Flash存儲器下的顯示數(shù)據(jù)差錯控制
周文輝1,2,鄧春健1,3*,官祥飛3
(1.電子科技大學(xué)中山學(xué)院,廣東中山528402; 2.電子科技大學(xué)自動化工程學(xué)院,四川成都610054; 3.電子科技大學(xué)計算機(jī)科學(xué)與工程學(xué)院,四川成都611731)
Flash存儲器常作為嵌入式大屏幕顯示系統(tǒng)的顯示信息存儲設(shè)備,然而Flash存儲器在使用時會存在諸如位反轉(zhuǎn)等讀寫操作出錯的問題,給系統(tǒng)的正常顯示控制帶來隱患。對Flash存儲器存儲誤碼率進(jìn)行了分析,并結(jié)合顯示數(shù)據(jù)存取的特點(diǎn),設(shè)計了差錯控制編碼來實(shí)現(xiàn)Flash存儲器下的顯示數(shù)據(jù)差錯控制。結(jié)合嵌入式控制系統(tǒng)的特點(diǎn),設(shè)計了一種基于(31,26)循環(huán)漢明碼編譯碼電路,在實(shí)際應(yīng)用中可以將誤碼率降低至少1個數(shù)量級以上,提升了數(shù)據(jù)存儲器抗突發(fā)干擾和隨機(jī)干擾的能力,同時具有較低的設(shè)計復(fù)雜度。
嵌入式系統(tǒng);誤碼率;Flash存儲器
Key words:embedded system;bit error rate;flash memory
LED圖文顯示屏是LED大屏幕顯示器中最常見的一類應(yīng)用,這類顯示器的特點(diǎn)是:顯示分辨率低,顯示內(nèi)容以顯示宣傳信息和即時通知為主,系統(tǒng)控制方案常常采用嵌入式脫機(jī)控制的方式。顯示屏的顯示數(shù)據(jù)一般會采用專門的只讀存儲器來存放,而Flash存儲器因為其大容量、低成本、低功耗、高速讀寫等諸多優(yōu)勢成為了顯示信息存儲的最佳方案[1]。
NOR Flash和NAND Flash是當(dāng)前兩種主要的非易失性閃存。在顯示數(shù)據(jù)較少的應(yīng)用,可以采用普通的NOR Flash,而對于超大顯示信息存儲的高數(shù)據(jù)存儲密度的應(yīng)用,NAND Flash則是理想的解決方案。由于當(dāng)前工藝并不能保證在Flash存儲器生命周期中都保持可靠的性能,例如在對Flash存儲器進(jìn)行讀寫操作時,存儲器中個別比特位可能會發(fā)生錯誤,例如從1變成0或從0變成1的位反轉(zhuǎn)等現(xiàn)象,而相對NOR Flash,NAND Flash的位反轉(zhuǎn)現(xiàn)象會更加容易發(fā)生[2],而隨著Flash使用次數(shù)的增加,錯誤出現(xiàn)的機(jī)率呈上升趨勢。
存儲器中的數(shù)據(jù)一般存在圖像文字信息和控制信息兩種數(shù)據(jù)類型。由于存儲器中顯示圖像數(shù)據(jù)一個位對應(yīng)著一個像素點(diǎn),顯示數(shù)據(jù)一個位的變化會直接導(dǎo)致顯示器上很明顯的“花點(diǎn)”現(xiàn)象,會給接受信息的人造成非常不好的視覺反應(yīng)。在單個像素點(diǎn)較大的顯示屏的應(yīng)用,這一問題會更突出。如果存儲器中存儲的是顯示控制數(shù)據(jù),則一個位的變化將會對控制指令造成較大的影響,其控制結(jié)果變得不可預(yù)測?,F(xiàn)有方案在顯示數(shù)據(jù)存儲后將不做校驗,如果Flash存儲器發(fā)生了錯誤,遠(yuǎn)端的控制中心既不能及時察覺,也難于糾正這一問題。而傳統(tǒng)方法常常是更換硬件來解決,這給設(shè)備后續(xù)維護(hù)帶來了許多不便[3-4]。
解決或改善LED大屏幕顯示器顯示數(shù)據(jù)在Flash存儲器下的錯誤問題對提高顯示系統(tǒng)整機(jī)使用壽命、節(jié)省維護(hù)費(fèi)用具有較大的意義,目前該方面的應(yīng)用研究并不多。本文針對LED大屏幕顯示器控制系統(tǒng)特點(diǎn),將顯示數(shù)據(jù)差錯控制引入到Flash存儲器下顯示數(shù)據(jù)的存儲中來。實(shí)驗結(jié)果表明,本文提出的方法能夠有效解決因為Flash存儲器位反轉(zhuǎn)等問題帶來的顯示出錯問題。
2.1顯示數(shù)據(jù)存取誤碼率分析
針對Flash存儲器位反轉(zhuǎn)等數(shù)據(jù)存儲出錯的問題,我們曾經(jīng)通過第三方獲得較為粗略的實(shí)驗數(shù)據(jù),模擬實(shí)際應(yīng)用環(huán)境并保證操作時序和電路穩(wěn)定的前提下,針對兩種不同類型、不同品牌的Flash存儲器誤碼率做了一個粗略的統(tǒng)計,方法是針對一個固定的塊進(jìn)行反復(fù)的讀寫操作,如表1所示,誤碼率在相應(yīng)的數(shù)量級上下波動。
表1說明Flash擦寫次數(shù)越多,數(shù)據(jù)誤碼率越高。實(shí)驗結(jié)果也表明,F(xiàn)lash出錯的時候一般不會造成整個塊或是頁不能讀取,或是全部出錯,而是其中的一個或幾個比特位出錯[5]。
表1 誤碼率統(tǒng)計Tab.1Statistics of error rate
2.2差錯控制編碼的選擇
差錯控制編碼可以在一定程度上解決或改善Flash存儲器的顯示數(shù)據(jù)出錯問題。選擇和構(gòu)造差錯控制編碼需要根據(jù)實(shí)際工程中數(shù)據(jù)結(jié)構(gòu)特點(diǎn)和控制系統(tǒng)硬件結(jié)構(gòu)特點(diǎn)來進(jìn)行。
首先,從大屏幕顯示控制系統(tǒng)結(jié)構(gòu)來看,LED大屏幕顯示器控制系統(tǒng)一般采用FPGA+MCU模式,MCU用來對系統(tǒng)管理和效果變換等處理,F(xiàn)PGA作為協(xié)處理器實(shí)現(xiàn)掃描時序及外部設(shè)備地址分配等工作[1,6]。差錯控制譯碼過程只能放置在顯示數(shù)據(jù)讀取后和掃描時序形成過程中,而顯示數(shù)據(jù)從存儲器讀取后一般通過串行移位方式輸出,較低處理能力的MCU往往無法滿足譯碼的同時與高速的掃描時序相匹配。
差錯控制編碼的選擇既要滿足糾錯要求,又要與系統(tǒng)較好地結(jié)合。對比其他類型編碼,由于循環(huán)碼自身串行循環(huán)移位的特點(diǎn),糾錯與掃描信息的生成可以完全同步,可以方便地融入到掃描電路中,而不影響系統(tǒng)原有電路結(jié)構(gòu)。
另外,從概率學(xué)來看,顯示信息的差錯可能出現(xiàn)在長為n的碼字任意1位或任意多位,錯誤樣式有2n-1種,設(shè)Pe為發(fā)生1位錯誤的概率,在這些可能的錯誤中,發(fā)生i位錯誤的概率為:
通過式(1)可見出現(xiàn)一位錯誤的概率最高,出現(xiàn)2位或2位以上錯誤的概率遠(yuǎn)小于1位的出錯概率,糾正了1位錯誤即可將誤碼率降到較低水平。因而僅需選擇能糾正1位錯誤的差錯控制編碼,并選擇合適的碼長即可滿足應(yīng)用要求。
對于任意整數(shù)m≥3,當(dāng)循環(huán)碼(n,k)使式(2)漢明限式等號成立時即為循環(huán)漢明碼,可以糾正1位錯誤,由于監(jiān)督位相對少,往往比BCH碼、RS碼具有更高的編碼效率[6]:
式中n表示碼長,k表示信息位長,當(dāng)m=5時即(31,26)碼。由式(1)可知,通過(31,26)碼糾錯后誤碼率低于10-3,降低至少1個數(shù)量級以上。另外,(31,26)編碼后監(jiān)督位僅5位,編碼效率能達(dá)到83.8%。一般的,在大屏幕顯示器的使用周期內(nèi)已經(jīng)能夠滿足數(shù)據(jù)存儲抗突發(fā)干擾和隨機(jī)干擾的需求[6-8]。
3.1編碼電路的設(shè)計
首先設(shè)計編碼電路。在編碼時,首先獲得(31,26)系統(tǒng)循環(huán)碼的本原多項式g(x),用來作為生成編碼的生成多項式。
然后待編碼信息m(x)與生成多項式相乘后即可獲得編碼信息c(x)。
在編碼前所有待編碼信息位都準(zhǔn)備完畢,26個信息位m=(m25m24,……,m0),用式(5)的多項式形式來表示。
設(shè)經(jīng)過編碼運(yùn)算后獲得31位碼字c=(c30,c29,……,c1,c0),多項式形式為:
圖1 編碼電路Fig.1Coding circuit
具體編碼實(shí)現(xiàn)電路如圖1所示,電路由16位并串轉(zhuǎn)換電路B16_shifter和除法電路cyc_31_26_ coder構(gòu)成,除法電路內(nèi)部實(shí)現(xiàn)見圖2。假設(shè)Flash存儲器是按16位存儲方式存儲,則26位信息位需要裝載2次。圖1中,編碼電路工作前,首先通過CLR將并串轉(zhuǎn)換電路B16_shifter和除法電路cyc_31_26_coder清0。然后令裝載信號load有效(高電平),將16位數(shù)datai[15..0]裝載進(jìn)入B16_ shifter。隨著load變成低電平,數(shù)據(jù)在移位時鐘clk的作用下左移,高位首先通過shiftout移入除法電路cyc_31_26_coder。在完成第一次數(shù)據(jù)裝載后,經(jīng)過16個時鐘,產(chǎn)生下一個裝載信號。接著,再經(jīng)過10個clk時鐘周期后編碼完成,即在第27個clk時鐘,編碼結(jié)果出現(xiàn)在c[4..0]上。3.2譯碼電路的設(shè)計
圖2 除法電路Fig.2Division circuit
編碼后存儲在Flash中的數(shù)據(jù)信息用多項式c(x)來表示,從Flash中實(shí)際讀取的信息用多項式r(x)來表示。如果數(shù)據(jù)在存儲過程中發(fā)生錯誤,則錯誤圖樣多項式用e(x)來表示。如式(7),r(x)相當(dāng)于在信息c(x)疊加了錯誤e(x)。
若(31,26)系統(tǒng)循環(huán)碼的錯誤圖樣多項式e(x)為:
譯碼器的任務(wù)就是從讀取信息r(x)中找到出錯誤圖樣多項式e'(x)來估計信息碼多項式c'(x)
進(jìn)而得到信息組m'(x)。循環(huán)碼的錯誤圖樣一般是通過伴隨多項式s(x)來獲得,循環(huán)碼的伴隨式及錯誤圖樣與接收碼關(guān)系為
具體譯碼實(shí)現(xiàn)電路如圖3所示,譯碼電路主要包括數(shù)據(jù)裝載及伴隨式計算電路、伴隨式計算完成指示電路、糾錯電路3部分。編碼數(shù)據(jù)共31位,在16位存儲器中需要占用2個存儲單元。當(dāng)load信號有效時,存儲在Flash中的編碼數(shù)據(jù)裝載進(jìn)入16位并串轉(zhuǎn)換電路B16_shifter,在移位時鐘的作用下,并串轉(zhuǎn)換結(jié)果raw_data移入伴隨式計算電路,在第16個時鐘時產(chǎn)生下一個裝載信號,完成伴隨式計算共需要31個時鐘。
圖3 數(shù)據(jù)裝載及伴隨式計算電路Fig.3Dataloadingandsyndromepolynomial computing circuit
與此同時raw_data移入糾錯電路,對從Flash讀取數(shù)據(jù)進(jìn)行糾錯處理。
由于伴隨式需要在伴隨式計算電路中移位31次才能獲得,因而raw_data移入31位移位寄存器B31_shifter進(jìn)行暫存,以此與伴隨式計算電路運(yùn)算同步。
在實(shí)現(xiàn)對錯誤位的糾正時,譯碼電路被設(shè)計成糾正最高階位x30上的錯誤,錯誤圖樣x30的伴隨式為:
錯誤圖樣檢測電路由與門構(gòu)成,如圖4所示。當(dāng)伴隨式計算完畢后,且當(dāng)伴隨式計算電路輸出狀態(tài)為10010時,與門輸出err_IND為1,此時經(jīng)過移位寄存器輸出raw_data_o錯誤位通過異或門糾正后送入下一級移位寄存器B31_shifter。圖中SDout為糾錯后的串行輸出,P_Dout[30..0]為糾錯后的并行輸出結(jié)果。
此時數(shù)據(jù)獲得了糾正,低5位監(jiān)督位可以丟棄,圖中PDout[25..0]即為獲得糾錯后的信息數(shù)據(jù)位。
圖4 糾錯電路Fig.4Experiment of scale establishment
電路采用伴隨式計算及糾錯完成指示電路來指示譯碼電路的執(zhí)行情況。該電路主要模塊是通過模32計數(shù)器來,如圖5所示[7-9]。
圖5 伴隨式計算及糾錯完成指示電路Fig.5Experiment of scale establishment
假設(shè)對1500H進(jìn)行編碼,則編碼時按1次16比特位,分2次進(jìn)行裝載進(jìn)入編碼電路,分別為0005 H、4000 H,在第27個時鐘周期完成編碼運(yùn)算。如圖6所示,在第27個clk時鐘周期Code_ok信號有效時(高電平),對應(yīng)輸出結(jié)果為10 H。加上校驗位數(shù)據(jù),1500H經(jīng)過編碼后共31位,編碼數(shù)據(jù)分別為0005H、4020H,分別存儲在2個存儲單元中。
如果讀取數(shù)據(jù)中有一位錯誤,該錯誤可能是這31位中的任意一位。在仿真驗證時,可以假設(shè)錯誤出現(xiàn)在任意位置,然后分析經(jīng)過譯碼器譯碼后的仿真時序情況。假設(shè)數(shù)據(jù)0005H、4020H在存儲過程發(fā)生1比特位錯誤,讀出結(jié)果為4005H、 4020H,將4005H、4020H載入譯碼器后的仿真時序如圖7(a)所示,在C_OK高電平有效時,伴隨式計算完畢。圖7(b)為數(shù)據(jù)糾錯部分時序,當(dāng)伴隨式為10010即err_IND信號為高電平時指示錯誤發(fā)生的位置,同時將糾錯后的結(jié)果輸出到移位寄存器中,在C_OK為高電平時即為糾錯后的輸出結(jié)果,讀出Pout[25..0]為0001500H,說明發(fā)生錯誤的位被糾正。
圖7 譯碼器仿真時序Fig.7The decoder simulation timing
本文根據(jù)LED大屏幕顯示器顯示信息特點(diǎn),設(shè)計了一套基于(31,26)循環(huán)糾錯系統(tǒng)的軟硬件實(shí)現(xiàn)方案。實(shí)驗證明,論文設(shè)計方案可以有效降低Flash存儲器存儲誤碼率,對提高系統(tǒng)穩(wěn)定性具有積極意義,論文設(shè)計電路具有較好的擴(kuò)展性和代表性,并具有很好的實(shí)用價值。
參考文獻(xiàn):
[1]尹柱霞,鄭喜鳳,于洪濤.ARM+FPGA控制的LED脫機(jī)屏系統(tǒng)設(shè)計[J].液晶與顯示,2010,25(2):262-267.
Yin Z X,Zheng X F,Yu H T.Design of LED off-line screen system based on ARM+FPGA control[J].Chinese Journal of Liquid Crystals and Displays,2010,25(2):262-267.(in Chinese)
[2]劉衛(wèi).NAND Flash控制器的設(shè)計與驗證[D].長沙:國防科學(xué)技術(shù)大學(xué),2008.
Liu W.Design and verification of NAND Flash controller[D].Changsha:National University of Defense Technology,2008.(in Chinese).
[3]郭寶增,鄧淳苗.基于FPGA的LED顯示屏控制系統(tǒng)設(shè)計[J].液晶與顯示,2010,25(3):424-429.
Guo B Z,Deng CM.Design of LED display control system based on FPGA[J].Chinese Journal of Liquid Crystals and Displays,2010,25(3):424-429.(in Chinese)
[4]朱云芳,靳桅,鄔芝權(quán).LED條形顯示屏直通連接的數(shù)據(jù)組織方式[J].液晶與顯示,2011,26(6):796-799.
Zhu Y F,Jin W,Wu Z Q.Data Organization of LED bar display panel with shoot-through connection[J].Chinese Journal of Liquid Crystals and Displays,2011,26(6):796-799.(in Chinese)
[5]Mielke N.Marquart T.Ning W.Bit error rate in NAND Flash memories[J].Reliability Physics Symposium,2008.IRPS 2008.IEEE International,2008:9-19.
[6]鄧春健,安源,呂燚.顯示信息高速串行傳輸?shù)牟铄e控制[J].光學(xué)精密工程,2012,20(3):632-642.
Deng C J,An Y,Lv Y.Error control of high speed serial display data transmission[J].Optics and Precision Engineering,2012,20(3):632-642.(in Chinese)
[7]孫科林,周維超,吳欽章.高速實(shí)時光纖圖像傳輸系統(tǒng)的實(shí)現(xiàn)[J].光學(xué)精密工程,2011,19(9):2228-2231.
Sun K L,Zhou W C,Wu Q Z.Realization of high-speed real-time optical filber image transmission system[J].Optics and Precision Engineering,2011,19(9):2228-2231.(in Chinese).
[8]孫卓,權(quán)笑,王文博.采用分組糾錯編碼的多接入傳輸分集方法[J].北京郵電大學(xué)學(xué)報,2009,32(5):6-9.
Sun Z,Quan X,Wang W B.A Method of multi radio transmission diversity with packet level forward error correction[J].Journal of Beijing University of Posts and Telecommunications,2009,32(5):6-9.(in Chinese).
[9]柴先明,彭耿,師棟鋒.基于匹配搜索的偽隨機(jī)序列生成多項式估計[J].光學(xué)精密工程,2011,19(9):2223-2228.
Chai X M,Peng G,Shi D F.Generator polynomial estimation of pseudo-random sequence based on match-searching[J].Optics and Precision Engineering,2011,19(9):2223-2228.(in Chinese).
Error control of display data based on flash memory
ZHOU Wen-hui1,2,DENG Chun-jian1,3*,GUAN Xiang-fei3
(1.Zhongshan Institute,University of Electronic Science and Technology of China,Zhongshan 528402,China; 2.School of Automation Engineering,University of Electronic Science and Technology of China,Chengdu 610054,China; 3.School of Computer Science&Engineering,University of Electronic Science and Technology of China,Chengdu 611731,China)
Flash memory is often used as display information storage devices of embedded large screen display system,however flash memory exists errors such as bit upset in reading or writing operation,that will bring the hidden dangers to normal display of system.Flash memory error rate and display data access characteristics are analyzed to design the display data error control under flash memory.Considering the characteristics of embedded control system,a(31,26)cyclic Hamming encoding and decoding circuit is designed,which can reduce the error rate of an order of magnitude,and enhance the ability of anti burst interference and anti random interference,at the same time have the design of low complexity.
TP79
A
10.3788/YJYXS20153004.0660
周文輝(1972-),男,廣東中山人,博士研究生,副教授,研究方向為控制理論與控制工程、控制技術(shù)應(yīng)用。E-mail:386722335@qq.com
1007-2780(2015)04-0660-06
2015-01-04;
2015-03-07.
國家自然科學(xué)基金項目(No.61302115);廣東省自然科學(xué)基金(No.S2013010015764);廣東省高等學(xué)校優(yōu)秀青年教師培養(yǎng)計劃項目(No.Yq2013204);中山市產(chǎn)學(xué)研結(jié)合項目(No.2013C2FC0014);電子薄膜與集成器件國家重點(diǎn)實(shí)驗室中山分實(shí)驗室開放基金(No.412S0605)
*通信聯(lián)系人,E-mail:dengcj80@126.com