999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

BCH碼在物聯網存儲系統中的應用研究

2023-06-22 02:16:09荊坤坤汪丹丹朱倩紀啟國陳芳
現代信息科技 2023年2期
關鍵詞:物聯網

荊坤坤 汪丹丹 朱倩 紀啟國 陳芳

摘? 要:隨著物聯網設備對存儲容量的需求不斷擴大,Nand Flash作為主流的存儲設備在物聯網系統中應用非常廣泛,為了保證數據的準確性,選擇一種性能良好的糾錯算法至關重要。目前最為常用的是BCH碼,由于嵌入式存儲系統MCU沒有能夠實現BCH編解碼的硬件控制器,需要用軟件來實現,文章通過對BCH碼算法和Nand Flash物理特性的研究,為物聯網應用場景提供一種軟件編/譯碼方案,從而提高物聯網系統存儲數據的完整性和可靠性。

關鍵詞:BCH碼;Nand Flash;物聯網;檢錯糾錯

中圖分類號:TP274? ? 文獻標識碼:A 文章編號:2096-4706(2023)02-0164-03

Application Research of BCH Code in IoT Storage System

JING Kunkun, WANG Dandan, ZHU Qian, JI Qiguo, CHEN Fang

(Anhui Vocational College of City Management, Hefei? 230011, China)

Abstract: With the increasing demand for storage capacity of IoT devices, Nand Flash, as a mainstream storage device, is widely used in IoT systems. In order to ensure the accuracy of data, it is very important to select an error correction algorithm with good performance. At present, the most commonly used one is BCH code. Since the embedded storage system MCU does not have a hardware controller which could achieve the BCH coding and decoding, it needs to be implemented by software. Through the research on BCH code algorithm and Nand Flash physical characteristics, this paper provides a software coding/decoding scheme for IoT application scenarios, so as to improve the integrity and reliability of the data stored in the IoT system.

Keywords: BCH code; Nand Flash; IoT; error detection and correction

0? 引? 言

近年來,物聯網技術快速發展,廣泛應用在智能家居、工業控制、智慧城市、智能可穿戴等多個領域。隨著應用場景日益復雜,功能逐漸多樣化,圖像、音視頻數據不斷增大,物聯網設備對存儲容量的需求不斷擴大,傳統MCU片內Flash外和少量外部Nor Flash,已經無法滿足需求。價格低廉、容量大的Nand Flash成為越來越受青睞的存儲方案。

然而,Nand Flash因制造工藝和設計原理的限制,存在電荷漂移、編程干擾、壞塊等問題,一旦發生Bit Flip(位翻轉),其上存儲的數據會發生錯誤,可靠性無法保障。針對這一問題,業界引入了ECC(Error Correcting Code)機制,對已經發生錯誤的bit位進行糾正。具體實現上,ECC通常采用漢明碼、CRC、RS碼、BCH碼等。BCH碼相比其他編碼,檢錯/糾錯能力更強,在Nand Flash中使用更普遍。

雖然物聯網應用場景對Nand Flash有強烈的需求,技術上卻存在壁壘。Nand Flash需要的BCH碼通常是由SoC上的硬件控制器處理的,而MCU沒有對應的硬件控制器(通過SPI總線與Nand Flash傳輸數據)。該問題可借鑒某些SoC的做法來解決,即:采用軟件BCH編解碼運算。相比SoC、MCU的運算能力弱,采用軟件編解碼的方法,會導致讀寫性能變差,影響整個系統的效率,該方案停留在功能打通卻難以產品化的境地,亟待解決。

綜上,針對上述問題,在MCU有限的資源條件下,通過技術的研究與創新,打破既有的Nand Flash技術壁壘,不帶來額外的成本開銷,實現Nand Flash存儲真正的落地,達到產品化標準,滿足物聯網應用場景日益增長的需求,具有很大的價值與意義。

1? 整體設計

1.1? BCH編碼的基本原理

矩陣BCH碼是一種能夠檢錯糾錯的線性分組碼,憑借其較強的糾錯檢錯能力而被廣泛應用于存儲系統和通信領域中。BCH編碼定義如下:給定任一有限域GF(q)及其擴域GF(qm),其中q是素數或者素數的冪,m為某一正整數。若任一碼元取自GF(qm)上的循環碼(n,k),其中n=2m-1,其生成多項式g(x)具有2t個連續根{a1,a2,…,a2t-1,a2t}時,t為糾正位數,則由生成多項式g(x)生成的循環碼稱為q進制BCH碼,記為(n,k,t)。最常用的BCH碼通常為二進制的BCH碼,二進制BCH碼的碼元都是由0和1構成的,可靠性比較高,有利于數據的傳輸。

本文使用MICRON NAND devices,每頁可配置為2 KB+

64 B,并且每頁又分為4個子頁,即每個子頁為512 B+16 B,內部存儲結構如圖1所示。

1.2? MCU并行處理

為了提高存儲系統的運行速度,本設計創新性的提出一種思路,也即是利用IO讀寫比較耗時的特點,MCU一邊進行IO讀寫,同時對傳輸的數據進行BCH編解碼,充分利用IO讀寫的時間而不是空等待IO。傳統做法是整個頁的數據全部傳輸完成,再進行BCH編解碼,相比傳統做法,本設計并行地提升了系統的運行速度和性能。下面以讀操作為例來講解算法的過程,本設計是將一頁數據分成4段,目前第2段已傳輸完,正在BCH解碼,IO同時在傳輸第3段,第2段BCH解碼完成后會像第1段一樣放在緩存中,這樣利用MCU并行處理的方式,大大提升了數據傳輸的速度,數據傳輸示意圖如圖2所示。

1.3? Nand Flash存儲格式和random access的分段讀寫技術

為了實現MCU并行處理,系統設計時需要將Nand Flash一頁數據的存儲格式分成多個小段,本設計是將一頁數據分成4份,在讀寫時需要采用Nand Flash的random acces技術。傳統讀寫操作從頁的起始地址開始,分段讀寫需要從頁內的某個偏移地址開始。同時,為了在IO操作時將MCU空閑出來做BCH運算,IO必須采用DMA的方式。利用DMA搬運數據,實現MCU多任務并發處理,使得BCH解碼和IO傳輸數據并行執行,進而提高讀寫性能。

1.4? 依據BCH碼的糾錯檢錯能力及時預判轉移數據

BCH碼有檢錯和糾錯的能力,檢錯能力大于糾錯能力。通常,Nand Flash上存儲的數據,由于電荷漂移或寫干擾等因素會造成數據位出現錯誤,隨著時間的推移,Nand Flash上存儲的數據出錯的位數會逐漸增多,當錯誤位數超過了Nand Flash糾錯能力范圍時,BCH碼將無法把錯誤的數據位進行糾正,也即是無法將數據恢復正常。利用這一自然變化過程的特性,本文設計的算法會在MCU讀操作的BCH解碼階段,判斷錯誤位數的數量,如果快要超過糾錯能力范圍,提前將其存儲在別的物理頁上。例如:對于512字節的數據,假設BCH最大糾錯能力為1 bit。512字節剛寫入Nand存儲體中時,其出現的錯誤位數為0,隨著時間的推移,錯誤位數會逐漸增多,這些錯誤的數據會在讀操作時被BCH碼糾正正確。在讀操作時BCH碼發現有1位錯誤,如果再放置一段時間錯誤的位數可能超過BCH碼的最大糾錯位數1 bit,屆時BCH碼將無法完全糾正其錯誤的數據,從而無法保證數據的準確性。

那本文設計的算法可以根據BCH碼檢錯糾錯的能力,提前預判數據的錯誤位數,在錯誤數據的位數即將超越糾錯上限時,及時將數據轉移到新的存儲單元,讓錯誤位數恢復到0,避免無法糾正數據的情況發生,從而提高系統讀寫數據的穩定性。

2? 設計仿真驗證

在PC環境下,對設計的BCH碼進行基本功能的仿真和驗證。

2.1? BCH碼算法的實現

用代碼實現BCH碼的算法,由于篇幅限制,在這里只針對主要接口做簡單介紹:

(1)void bch_generate(const struct bch_def *bch,const uint8_t *chunk, size_t len, uint8_t *ecc);

功能:此函數接口能根據需求和給定的數據,生成校驗碼。

參數:bch定義了BCH碼的細節,如糾錯能力等;chunk指針指向原始數據;len是數據長度;ecc用于存放生成的校驗碼。

(2)int bch_verify(const struct bch_def *bch,const uint8_t *chunk, size_t len, const uint8_t *ecc);

功能:此函數接口能根據給定的數據和校驗碼,驗證數據是否發生了錯誤,該接口函數只能檢錯,不負責糾錯。

參數:bch定義了BCH碼的細節,如糾錯能力等;chunk指針指向原始數據;len是數據長度;ecc用于存放生成的校驗碼。

返回值:0代表成功,-1代表失敗(表示有錯誤位存在)。

(3)void bch_repair(const struct bch_def *bch,const uint8_t *chunk, size_t len, uint8_t *ecc);

功能:此函數接口能根據給定的數據和校驗碼,將數據中存在的錯誤位進行糾正;

參數:bch定義了BCH碼的細節,如糾錯能力等;chunk指針指向原始數據;len是數據長度;ecc用于存放生成的校驗碼。

2.2? BCH碼算法的測試

根據優化的BCH碼算法,設計針對性的測試方案,具體的流程如圖3所示。

首先,當測試數據為全0xFF時,判斷BCH碼能否校驗通過。注意,在這里有一種特殊情況,即當Nand Flash塊全擦除后,數據為全0xFF,此時無需生成校驗碼,數據也能正常校驗通過。

接下來,當BCH碼能否校驗通過后,系統會生成隨機數據。用隨機數據再生成校驗碼,為后續對數據的檢錯和糾錯做好準備。

最后,在數據的隨機位置,人為制造錯誤,通過調用BCH碼算法進行數據的檢錯和糾錯。

以上就是BCH碼檢錯和糾錯的整個流程,為了得到更精確的結果,我們在設計時進行了多次循環測試,以充分驗證功能的穩定性。

2.3? BCH碼算法的仿真結果分析

在仿真階段,本文將PC上很大的RAM空間(或磁盤文件)模擬成Nand Flash存儲介質,根據上述設計的測試方案,將優化后的BCH碼算法在PC上運行,使其滿足項目的需求。

由于物聯網存儲系統對數據的處理和響應的時間要求很高,所以本階段的仿真實驗,我們通過對糾錯1 bit、2 bit、3 bit和4 bit所需要的糾錯時間進行對比驗證,為了得到更精確的時間,測試時每組數據進行循環測試10次,具體的每一次測試中進行20次循環測試,相當于每組數據重復測試200次,最后取平均值,得到每糾錯1 bit、2 bit、3 bit和4 bit所需要的時間,具體的測試結果如表1所示。

通過測試,我們發現糾錯能力為1 bit時,所需要的糾錯時間、檢錯時間和生成校驗碼的時間都是最短的,很好的滿足物聯網存儲系統對速度的要求,同時也節省了存儲空間。

所以通過上述實驗仿真驗證,在本系統設計時,我們選取的糾錯位為t=1位,校驗碼的長度為:14×1=14 bit,由此可得到該系統中BCH碼的參數為:

(1)碼元長度:n=512×8×4+14=16 398 bit

(2)檢驗位長度:r=14×1=14 bit

(3)糾錯能力:t=1 bit

(4)信息位長度:k=n-r=16 398-14=16 384 bit

因此BCH 碼為(2 062,2 048,1),其中校檢碼長度為14 bit。這樣既節省存儲的空間,又可以降低算法的復雜度,后續在解碼過程中來提升傳輸的速率。

3? 結? 論

本文通過研究BCH碼的原理,在算法上進行優化,滿足物聯網存儲系統并行、高效的應用需求,降低MCU計算負載,結合Nand Flash存儲介質的具體特點,用軟件實現BCH碼的編碼和解碼過程,通過反復的仿真實驗驗證,最終選擇BCH 碼為(2062,2048,1)的結構,力求實現過程中糾錯速度最快、響應最快。下一步將PC環境下實現的優化BCH碼算法移植到MCU平臺上進行實際測試,對實際出現的問題進行細化,以滿足實際應用場景中的各項指標。

參考文獻:

[1] 王莞,魏敬和,于宗光.基于BCH糾錯算法的編解碼器設計與實現 [J].電子技術應用,2022,48(5):42-46.

[2] 楊舒天,任勇峰,劉東海.基于可糾錯BCH碼的HOTLink的數據傳輸方案設計 [J].電子測量技術,2021,44(3):27-31.

[3] 陳昭林,張晉寧,沈輝.基于BCH碼的NAND Flash糾錯算法設計與實現 [J].電子測量技術,2017,40(3):127-132.

[4] 雷水艷,焦繼業,陳亞南.一種優化的BCH編解碼器的設計與實現 [J].計算機與數字工程,2019,47(9):2335-2338.

[5] 楊修.一種BCH類型糾錯算法的設計與實現 [D].成都:電子科技大學,2019.

作者簡介:荊坤坤(1987—),女,漢族,安徽潁上人,講師,碩士研究生,研究方向:嵌入式系統。

收稿日期:2022-09-02

基金項目:2020年安徽城市管理職業學院自然科學研究項目(2020zkzd01);2021年安徽城市管理職業學院自然科學研究項目(2021zrkx09)

猜你喜歡
物聯網
基于物聯網的無線測溫模塊設計
軟件導刊(2016年9期)2016-11-07 21:56:29
基于物聯網ZigBee技術的智能家居監控系統 
軟件導刊(2016年9期)2016-11-07 21:32:45
物聯網監測技術在G15W112邊坡的應用
基于物聯網的健康管理服務模式
基于物聯網的煤礦智能倉儲與物流運輸管理系統設計與應用
基于高職院校物聯網技術應用人才培養的思考分析
如何在高校架設學生洗衣服務系統
科技視界(2016年22期)2016-10-18 17:23:30
基于無線組網的智慧公交站點信息系統研究與實踐
基于LABVIEW的溫室管理系統的研究與設計
論智能油田的發展趨勢及必要性
主站蜘蛛池模板: 韩日午夜在线资源一区二区| 人妻无码AⅤ中文字| www.youjizz.com久久| 黄色一级视频欧美| 日韩精品一区二区深田咏美| 欧美69视频在线| 色综合天天综合中文网| 日本精品αv中文字幕| 日韩av资源在线| 日日拍夜夜操| 久久人搡人人玩人妻精品| 99国产在线视频| 欧美成人午夜视频| 亚洲成人精品在线| 激情乱人伦| 国产69精品久久久久孕妇大杂乱 | 国产欧美日韩视频怡春院| 久久中文字幕2021精品| 无码 在线 在线| 亚洲国产理论片在线播放| 四虎AV麻豆| 国产亚洲精品97AA片在线播放| 国产免费高清无需播放器| 国产小视频免费| 手机在线国产精品| 色亚洲激情综合精品无码视频| 亚洲成人黄色网址| 91精品国产91久久久久久三级| 19国产精品麻豆免费观看| 亚洲欧洲日韩国产综合在线二区| 人妻丰满熟妇AV无码区| 国产色伊人| 亚洲欧美另类中文字幕| 三上悠亚在线精品二区| 在线无码九区| 久久精品国产亚洲AV忘忧草18| 亚洲欧美综合另类图片小说区| 亚洲三级视频在线观看| 亚洲欧洲免费视频| 无码一区18禁| 免费视频在线2021入口| 欧美国产在线看| www.日韩三级| 国产精品永久在线| 国产香蕉97碰碰视频VA碰碰看| 午夜性刺激在线观看免费| 中文字幕波多野不卡一区| 亚洲第一成年网| 动漫精品啪啪一区二区三区| 国产精品v欧美| 九九精品在线观看| 高潮毛片无遮挡高清视频播放| 免费国产好深啊好涨好硬视频| 18禁黄无遮挡网站| 日韩无码黄色网站| 国产在线自揄拍揄视频网站| 国产成人高清精品免费| 美女黄网十八禁免费看| 欧美激情综合| 99久久国产自偷自偷免费一区| 91毛片网| 91年精品国产福利线观看久久| 亚瑟天堂久久一区二区影院| 91亚洲免费| 亚洲综合色婷婷| 国产爽歪歪免费视频在线观看| 亚洲日本中文字幕天堂网| 欧美日韩中文国产va另类| 亚洲欧美一级一级a| 免费在线a视频| 国产性精品| 黄色片中文字幕| a级毛片毛片免费观看久潮| 欧美a级在线| 刘亦菲一区二区在线观看| 一区二区三区国产精品视频| 特级aaaaaaaaa毛片免费视频| 4虎影视国产在线观看精品| 999国产精品| 一级爆乳无码av| 日韩欧美高清视频| 欧美日韩一区二区在线播放|