- 相關(guān)推薦
CD-ROM格式數(shù)據(jù)的軟解碼模塊設(shè)計
摘要:介紹應(yīng)用于嵌入式系統(tǒng)的CD-ROM格式數(shù)據(jù)軟解碼模塊的設(shè)計方法;分析CD-ROM格式的數(shù)據(jù)結(jié)構(gòu),給出EDC及ECC解碼算法的軟件實(shí)現(xiàn)方法以及該模塊的軟件流程圖。引言
CD-ROM是目前應(yīng)用非常廣泛的大容量、低成本的存儲設(shè)備。為了減小誤碼率,原始數(shù)據(jù)經(jīng)過格式化編碼和信道編碼后,才寫入CD-ROM盤片中;在讀取時,則需經(jīng)過信道解碼和格式化解碼后才能得到所需的原始數(shù)據(jù)。CD-ROM數(shù)據(jù)的讀寫過程如圖1所示。
在一般的音像設(shè)備(如VCD機(jī))和個人電腦中,CD-ROM數(shù)據(jù)的解碼過程是由專用解碼芯片來完成的;而CD-ROM不但可以應(yīng)用在音像設(shè)備和個人電腦中,還可以應(yīng)用到需要讀取大量數(shù)據(jù)的嵌入式系統(tǒng)中。比如在車輛導(dǎo)般系統(tǒng)中,就可使用CD-ROM存放地理信息數(shù)據(jù)。嵌入式系統(tǒng)中的CD-ROM數(shù)據(jù)的解碼方法比較靈活,可以使用專用解碼芯片(暫稱硬解碼),也可以通過處理器的解碼程序來完成(軟解碼)。相對于硬解碼來說,軟解碼有其獨(dú)特的優(yōu)點(diǎn)所在。因?yàn)樗恍柙黾右粋解碼程序模塊,就省掉了專用解碼芯片電路,簡化了系統(tǒng)的硬件電路,降低了系統(tǒng)的成本。如圖1所示,CD-ROM數(shù)據(jù)經(jīng)過信道解碼后,得到的是以扇區(qū)結(jié)構(gòu)組織的CD-ROM格式數(shù)據(jù),還需進(jìn)行CD-ROM格式化解碼才能得到最終的用戶數(shù)據(jù)。本文介紹的就是嵌入式系統(tǒng)中CD-ROM格式數(shù)據(jù)軟解碼模塊的設(shè)計。
1 CD-ROM格式數(shù)據(jù)的扇區(qū)結(jié)構(gòu)
CD-ROM數(shù)據(jù)是以扇區(qū)為基本單元進(jìn)行編碼處理的。經(jīng)過信道解碼處理后得到的扇區(qū)對于不同的數(shù)據(jù)來源,其結(jié)構(gòu)是不同的。對于CD-DA(雙聲道的CD音頻)數(shù)據(jù),由于沒有經(jīng)過格式化編碼,可以直接得到用戶數(shù)據(jù);而CD-ROM數(shù)據(jù)和VCD數(shù)據(jù)都經(jīng)過CD-ROM格式化編碼成扇區(qū)結(jié)構(gòu),必須經(jīng)CD-ROM格式化解碼才能得到用戶數(shù)據(jù)。
CD-ROM扇區(qū)有兩種模式:模式1和模式2。其扇區(qū)結(jié)構(gòu)如圖2所示。
由圖2可知,一個扇區(qū)的CD-ROM格式數(shù)據(jù)總共有2352字節(jié)。其中,兩種扇區(qū)模式都有12字節(jié)的同步信息和4字節(jié)的時間信息(頭信息)。如果是模式1,還有4字節(jié)的循環(huán)冗檢錯碼,8字節(jié)空字節(jié),276字節(jié)的糾錯碼,其中包含172字節(jié)的P校驗(yàn)字和104字節(jié)的Q校驗(yàn)字,用戶數(shù)據(jù)只有2048字節(jié)。如果是模式2,除了同步信息和頭信息外,余下的2336字節(jié)全部都是用戶數(shù)據(jù)。
實(shí)際中,由于盤的制作材料的性能、盤制造生產(chǎn)技術(shù)水平的限制、驅(qū)動器的性能以及使用不當(dāng)?shù)戎T多原因,從盤上讀出的數(shù)據(jù)不可能完全正確。據(jù)統(tǒng)計,一片未使用過的只讀光盤,原始誤碼率約為3×10 -4,沾有指紋的盤約為6×10 -4,有傷痕的盤約為5×10 -3。針對這種情況,光盤存儲系統(tǒng)采用了功能強(qiáng)大的錯誤檢測和糾正措施:CIRC、EDC、ECC。數(shù)據(jù)經(jīng)信道解碼后,由于采用CIRC糾錯處理,誤碼率由10 -4~10 -5降到10 -9以下。對于音頻和圖像數(shù)據(jù)來說,這樣的誤碼率已經(jīng)足夠。但要用到計算機(jī)文件數(shù)據(jù),必須要求誤碼率為10 -12以下,因此必須采用二次糾錯處理。通過EDC和ECC校驗(yàn),可以達(dá)到這個要求。
所以,模式1主要用于存儲對錯誤非常敏感的數(shù)據(jù),如計算機(jī)程序代碼等數(shù)據(jù);而模式2則主要用于存儲對錯誤不敏感的數(shù)據(jù),如圖像、音響等類型的數(shù)據(jù)。
在模式2的基礎(chǔ)上,CD-ROM/XA格式又分為兩種形式(FORM):形式1和形式2。其扇區(qū)結(jié)構(gòu)如圖3所示。我們常用的VCD就是采用CD-ROM/XA的形式2格式。
由上可知,除了扇區(qū)模式2可以直接得到2336字節(jié)的用戶數(shù)據(jù)外,CD-ROM格式解碼還必須進(jìn)行EDC檢錯和ECC糾錯處理。下面分別介紹EDC檢錯和ECC糾錯的原理和解碼算法。
2 CD-ROM扇區(qū)中的EDC檢錯原理及算法
CD-ROM扇區(qū)采用32位CRC(循環(huán)冗余校驗(yàn)碼)檢錯碼,其生成多項(xiàng)式為
P(X)=(X 16 X 15 X 2 1)×(X 16 X 2 X 1)
對應(yīng)的碼字是0x18001801B。計算CRC碼時用的數(shù)據(jù)塊是從扇區(qū)的開頭到用戶數(shù)據(jù)區(qū)結(jié)束為止的數(shù)據(jù)字節(jié)。即將字節(jié)0~2063共2064字節(jié)的數(shù)據(jù)所對應(yīng)的長多項(xiàng)式整除P(X),得到32位的余式,放在2064~2067字節(jié)位置。這2068字節(jié)的數(shù)據(jù)對應(yīng)的多項(xiàng)式是能夠被生成多項(xiàng)式P(X)整除的。如果不能整除,則表明數(shù)據(jù)有錯。所以,我們的解碼過程就將2068字節(jié)的數(shù)據(jù)組成的多項(xiàng)式來整除生成多項(xiàng)式,如果余式為0,則表明數(shù)據(jù)正確,否則數(shù)據(jù)有錯。
但我們不可能直接進(jìn)行長除法操作,因?yàn)橛嬎銠C(jī)不可能將一個2068×8位的極其長的二進(jìn)制數(shù)直接拿來做長除法。根據(jù)長除法的規(guī)律,以字節(jié)(8比特)為單位進(jìn)行操作,每次除法將上一字節(jié)的所得的余數(shù)與本字節(jié)組合成新的數(shù)進(jìn)行除法運(yùn)算。除式是33位的,因此,每個字節(jié)的除法須把這個字節(jié)的數(shù)左移24位,跟上次的余式組合成一個32位的二進(jìn)制數(shù),來整除除式。主要實(shí)現(xiàn)現(xiàn)代碼如下:
for(i=0;i
【CD-ROM格式數(shù)據(jù)的軟解碼模塊設(shè)計】相關(guān)文章:
基于PXI總線的數(shù)據(jù)采集模塊的設(shè)計03-07
基于Tvp5150的低功耗視頻解碼模塊11-22
DMB-TH幀體數(shù)據(jù)處理模塊的研究設(shè)計11-22
ISP技術(shù)在高速數(shù)據(jù)采集模塊中的應(yīng)12-07
數(shù)據(jù)建模論文格式06-29
VB5.0中數(shù)據(jù)庫查詢模塊的實(shí)現(xiàn)03-03
高速PCI總線接口模塊設(shè)計03-08
軟巖回采巷道支護(hù)設(shè)計03-19