專利名稱:一種前向糾錯(cuò)解碼裝置及控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信號(hào)傳輸技術(shù),特別涉及一種前向糾錯(cuò)解碼裝置及控制方法。
背景技術(shù):
為了保證信號(hào)在信道的傳輸中盡量避免噪聲源對(duì)傳輸信號(hào)內(nèi)容的干擾,通訊傳輸系統(tǒng)通常都采用了差錯(cuò)控制機(jī)制,信源和信宿分別是通訊系統(tǒng)中信號(hào)的發(fā)送端和接收端,通訊系統(tǒng)的目的就是讓信號(hào)無(wú)差錯(cuò)地從信源傳輸?shù)叫潘?。如圖1所示,信源產(chǎn)生信號(hào)S后需要經(jīng)過(guò)信源編碼,而信宿在接收信號(hào)前需要對(duì)信號(hào)進(jìn)行信源解碼,這兩個(gè)是完全逆向的過(guò)程。信源的編碼/解碼主要完成對(duì)信號(hào)的加密或者其他的格式轉(zhuǎn)換,它是在信號(hào)傳輸前對(duì)數(shù)據(jù)內(nèi)容進(jìn)行的預(yù)處理,這部分不涉及差錯(cuò)控制的內(nèi)容。信道編碼、調(diào)制器、信道、解調(diào)器和信道解碼這五個(gè)部分才是信號(hào)傳輸中差錯(cuò)控制的關(guān)鍵部分,下面著重介紹。
從圖1中可以看到,信號(hào)在信道中傳輸時(shí),不可避免地會(huì)受到噪聲源的干擾,差錯(cuò)控制的關(guān)鍵是如何使信號(hào)在受到噪聲干擾后仍然可以恢復(fù)出來(lái),通訊系統(tǒng)是通過(guò)在信號(hào)發(fā)送前對(duì)其進(jìn)行信道編碼來(lái)實(shí)現(xiàn)的。簡(jiǎn)要來(lái)說(shuō),信道編碼是依據(jù)傳輸數(shù)據(jù)內(nèi)容計(jì)算生成校驗(yàn)碼,并將校驗(yàn)碼按照一定規(guī)律插入傳輸數(shù)據(jù)內(nèi)容中。當(dāng)經(jīng)過(guò)編碼的數(shù)據(jù)通過(guò)調(diào)制器、信道和解調(diào)器被傳送到信號(hào)接收端時(shí),信道解碼再依據(jù)傳輸數(shù)據(jù)中的校驗(yàn)碼來(lái)判斷數(shù)據(jù)內(nèi)容是否已被噪聲源污染,并對(duì)錯(cuò)誤進(jìn)行定位和糾正。這樣,數(shù)據(jù)就可以實(shí)現(xiàn)低誤碼率的傳輸。
在通訊系統(tǒng)中的差錯(cuò)控制分類繁多,其中現(xiàn)在主要應(yīng)用的有四種FEC(Forward Error Correction,前向糾錯(cuò))、ARQ(Automatic Error RequestEquipment,自動(dòng)誤差校正)、HEC(Header Error Control,混合糾錯(cuò)方式)、和狹義信息反饋方式IRQ。
在ARQ傳輸方式下,信號(hào)接收端收到信號(hào)發(fā)送端發(fā)來(lái)的數(shù)據(jù)后,通過(guò)對(duì)校驗(yàn)碼計(jì)算,可以判斷出接收到的數(shù)據(jù)是否正確,并向ARQ信號(hào)發(fā)送端反饋判斷結(jié)果的應(yīng)答信號(hào)。若判斷出數(shù)據(jù)是錯(cuò)誤的,則信號(hào)發(fā)送端重新發(fā)送該數(shù)據(jù),直到接收端能正確接收數(shù)據(jù)為止。這種方式比較適合點(diǎn)到點(diǎn)的通訊傳輸,可以保證傳輸數(shù)據(jù)的正確性,但它的連貫性和實(shí)時(shí)性不高。特別是在噪聲背景比較強(qiáng)的環(huán)境下,大部分時(shí)間被用在數(shù)據(jù)重傳上了;在FEC傳輸方式下,信號(hào)的接收端無(wú)需反饋應(yīng)答信號(hào),接收端可以依據(jù)校驗(yàn)碼定位傳輸數(shù)據(jù)中錯(cuò)誤的位置,并對(duì)錯(cuò)誤做出糾正。這種傳輸模式?jīng)]有重傳機(jī)制,因此,可以保證數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性,能進(jìn)行一個(gè)用戶到多個(gè)用戶的同播通信;HEC方式綜合了FEC和ARQ的特點(diǎn),在接收到數(shù)據(jù)后,接收端首先對(duì)接收到的數(shù)據(jù)進(jìn)行差錯(cuò)和糾錯(cuò)。若能糾錯(cuò),則接收數(shù)據(jù);若不能糾錯(cuò),則反饋糾錯(cuò)失敗信號(hào),信號(hào)發(fā)送方重新發(fā)送上次的數(shù)據(jù)。
IRQ方式中信號(hào)接收端收到數(shù)據(jù)后,將數(shù)據(jù)回送給信號(hào)發(fā)送端,由發(fā)送端比較數(shù)據(jù)是否正確,并判斷是否重新發(fā)送。這種方式傳輸效率最低,應(yīng)用場(chǎng)合有限。
由于FEC糾錯(cuò)方式能保證數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性,因此,在不苛求數(shù)據(jù)必須全部正確傳輸并要求實(shí)時(shí)傳輸?shù)那д谉o(wú)源光網(wǎng)絡(luò)中,采用FEC的差錯(cuò)控制方式。
PON(Passive Optics Network,無(wú)源光網(wǎng)絡(luò))是指由OLT(Optics LineTerminate,光線路終端)、ONU(Optics Network Unit,光網(wǎng)絡(luò)單元)以及ODN(Optics Distribution Network,光分配網(wǎng)絡(luò))組成的無(wú)源電子設(shè)備系統(tǒng)。無(wú)源是指在OLT和ONU之間的光分配網(wǎng)絡(luò)沒(méi)有任何有源電子設(shè)備。無(wú)源光網(wǎng)絡(luò)技術(shù)是一種點(diǎn)對(duì)多點(diǎn)的光纖傳輸和接入技術(shù),下行采用廣播方式、上行采用時(shí)分多址方式,可以靈活地組成樹(shù)型、星型、總線型等拓樸結(jié)構(gòu),在光分支點(diǎn)不需要節(jié)點(diǎn)設(shè)備,只需要安裝一個(gè)簡(jiǎn)單的光分支器即可,因此具有節(jié)省光纜資源、帶寬資源共享、節(jié)省機(jī)房投資、設(shè)備安全性高、建網(wǎng)速度快、綜合建網(wǎng)成本低等優(yōu)點(diǎn)。正是由于這些原因,使得PON技術(shù)得到了飛速發(fā)展。
目前從承載的內(nèi)容來(lái)分類,PON技術(shù)主要包括APON(ATM Based PONATM,ATM無(wú)源光網(wǎng)絡(luò),其中ATM為Asynchronous Transfer Mode,異步傳輸模式)、EPON(Ethernet Based PON,以太網(wǎng)無(wú)源光網(wǎng)絡(luò))以及GPON(Gigabit-capable PON,千兆無(wú)源光網(wǎng)絡(luò))等,如圖2所示,為PON網(wǎng)絡(luò)的典型組網(wǎng)結(jié)構(gòu)示意圖,PON網(wǎng)絡(luò)包括位于局端的OLT和一系列位于用戶駐地的ONU,OLT和ONU之間由光纖、無(wú)源分光器或耦合器構(gòu)成的ODN連接,ONU連接TDM(Time Division Multiplex,時(shí)分復(fù)用)用戶(TDM Clients)或數(shù)據(jù)用戶(Data Clients),OLT連接因特網(wǎng)(IPNetworks)、TDM網(wǎng)絡(luò)(TDM Networks)或視頻網(wǎng)絡(luò)(VIDEO Networks)。
PON系統(tǒng)中約定從OLT到ONU的方向?yàn)橄滦蟹较?,從ONU到OLT的方向?yàn)樯闲蟹较颉T谏闲蟹较蛏希谙滦蟹较蛏?,OLT以幀為單位向ODN中所有的ONU發(fā)送數(shù)據(jù),且保持8KHz的幀傳輸周期,不間斷的向ODN下發(fā)數(shù)據(jù),GPON下行幀包括幀頭和凈荷部分,如圖3所示,以第n幀和第n+1幀為例說(shuō)明。
現(xiàn)有OLT發(fā)送下行幀時(shí)一般采用FEC的RS(255,239)編碼,ONU接收到下行幀后需要進(jìn)行下行幀的解碼和糾錯(cuò)。下行幀中FEC校驗(yàn)碼的位置如圖4所示,基于RS(255,239)碼的FEC校驗(yàn)碼是每239字節(jié)后面插入16字節(jié)的校驗(yàn)碼,每255個(gè)字節(jié)形成一個(gè)碼字,對(duì)于最后一數(shù)據(jù)段,如果數(shù)據(jù)不足239個(gè)字節(jié),在現(xiàn)有數(shù)據(jù)字節(jié)之前或之后增加0以補(bǔ)齊239個(gè)字節(jié),然后插入校驗(yàn)碼。例如圖4所示,需要在最后一個(gè)碼字中補(bǔ)入135字節(jié)的0。當(dāng)ONU收到下行幀后,需要將下行幀數(shù)據(jù)切成以255字節(jié)為單位的碼字,分別進(jìn)行解碼。解碼糾錯(cuò)后,去除其中16字節(jié)的校驗(yàn)碼,將有效數(shù)據(jù)組拼在一起就形成ONU需要的幀數(shù)據(jù)。
仍參閱圖4所示,需要注意的是,在每個(gè)下行幀的尾數(shù)部分,即最后一個(gè)碼字,若尾數(shù)不足255字節(jié)時(shí),ONU解碼前需要在數(shù)據(jù)后面插入合適數(shù)量的0,使得最后一個(gè)碼字的大小也等于255字節(jié)后完成FEC解碼,并利用對(duì)應(yīng)的16字節(jié)校驗(yàn)碼進(jìn)行校驗(yàn)。FEC解碼完畢后,插入的0需要被再次去除,恢復(fù)得到原始的數(shù)據(jù)。
目前許多廠商都提供了成熟的基于RS(255,239)碼的FEC解碼模塊(FEC_CORE),而這些FEC_CORE都是8位寬,并以255字節(jié)碼字為單位來(lái)進(jìn)行解碼。因此,ONU接收下行幀后,必須將幀數(shù)據(jù)整理成RS(255,239)的碼字,并將255字節(jié)長(zhǎng)的碼字送入FEC_CORE。由于GPON下行數(shù)據(jù)的傳送是不間斷的,每幀數(shù)據(jù)結(jié)束后緊跟著下一幀的數(shù)據(jù)。但是解碼時(shí),在每個(gè)下行幀的尾數(shù)部分都有可能插入額外的0數(shù)據(jù),額外插入的0需要占用相應(yīng)的處理帶寬,因此,如何保證下行幀數(shù)據(jù)能夠?qū)崟r(shí)地、不間斷地通過(guò)FEC_CORE解碼是FEC方式能夠在GPON網(wǎng)絡(luò)中應(yīng)用的關(guān)鍵。
發(fā)明內(nèi)容
本發(fā)明提供一種前向糾錯(cuò)解碼裝置及控制方法,以解決現(xiàn)有前向糾錯(cuò)差錯(cuò)控制方式在實(shí)際應(yīng)用時(shí),解碼部分受帶寬限制而無(wú)法實(shí)現(xiàn)實(shí)時(shí)解碼的問(wèn)題。
為解決上述技術(shù)問(wèn)題,本發(fā)明提供如下技術(shù)方案一種前向糾錯(cuò)解碼裝置,包括幀數(shù)據(jù)切分模塊、幀數(shù)據(jù)重組模塊以及并行設(shè)置的至少兩路FEC解碼電路;其中,所述幀數(shù)據(jù)切分模塊連接每一路FEC解碼電路的輸入端,用于接收基于FEC編碼的幀數(shù)據(jù),并根據(jù)固定字節(jié)長(zhǎng)度順序切分每一個(gè)幀數(shù)據(jù),將切分出的各數(shù)據(jù)分段根據(jù)設(shè)定解碼順序分別送入各路FEC解碼電路,其中,每一個(gè)數(shù)據(jù)分段中包括一段有效數(shù)據(jù)和相應(yīng)的FEC校驗(yàn)碼;所述FEC解碼電路包括順次連接的輸入緩存模塊、FEC解碼模塊和輸出緩存模塊,用于對(duì)各數(shù)據(jù)分段進(jìn)行并行解碼,并將解碼后的各數(shù)據(jù)分段輸出給幀數(shù)據(jù)重組模塊;所述幀數(shù)據(jù)重組模塊連接每一路解碼電路的輸出端,用于去除各數(shù)據(jù)分段中的校驗(yàn)碼,并根據(jù)切分順序重組有效數(shù)據(jù)后再輸出。
所述解碼裝置還包括第一延遲模塊,連接在所述幀數(shù)據(jù)切分模塊和幀數(shù)據(jù)重組模塊之間,用于將所述幀數(shù)據(jù)切分模塊發(fā)出的幀頭指示信息延遲發(fā)送給所述幀數(shù)據(jù)重組模塊,延遲時(shí)間為解碼每一個(gè)幀數(shù)據(jù)的第一個(gè)數(shù)據(jù)分段所需要的時(shí)間。
所述解碼裝置還包括第二延遲模塊;其中連接在所述幀數(shù)據(jù)切分模塊和幀數(shù)據(jù)重組模塊之間,用于將由所述幀數(shù)據(jù)切分模塊在所述幀尾數(shù)據(jù)分段中插入0的個(gè)數(shù)延遲發(fā)送給所述幀數(shù)據(jù)重組模塊,延遲時(shí)間為解碼每一個(gè)幀數(shù)據(jù)幀尾數(shù)據(jù)分段所需要的時(shí)間;或者連接在其中一路解碼電路的輸入緩存模塊和幀數(shù)據(jù)重組模塊之間,用于將該路解碼電路在所述幀尾數(shù)據(jù)分段中插入0的個(gè)數(shù)延遲發(fā)送給所述幀數(shù)據(jù)重組模塊,延遲時(shí)間為解碼每一個(gè)幀數(shù)據(jù)幀尾數(shù)據(jù)分段所需要的時(shí)間。
其中,與所述第二延遲模塊連接的輸入緩存模塊所在的一路解碼電路為所述幀尾數(shù)據(jù)分段的專用解碼電路。
所述FEC解碼模塊為8位寬輸入/輸出;和/或,所述輸入緩存模塊和輸出緩存模塊全部為先入先出FIFO存儲(chǔ)器。
本發(fā)明還提供上述解碼裝置的第一種控制方法,設(shè)置該前向糾錯(cuò)FEC解碼裝置中的一路FEC解碼電路為解碼幀尾數(shù)據(jù)分段的專用解碼電路,其它路FEC解碼電路為解碼非幀尾數(shù)據(jù)分段的非專用解碼電路,所述控制方法包括如下步驟A1、幀數(shù)據(jù)切分模塊接收基于FEC編碼的幀數(shù)據(jù)并根據(jù)固定字節(jié)長(zhǎng)度順序切分該幀數(shù)據(jù),每一個(gè)切分出的幀數(shù)據(jù)分段中包括一段有效幀數(shù)據(jù)及其對(duì)應(yīng)的FEC校驗(yàn)碼,根據(jù)切分順序,幀數(shù)據(jù)切分模塊同步將其中非幀尾數(shù)據(jù)分段輪流寫入非專用解碼電路進(jìn)行解碼,將最后的幀尾數(shù)據(jù)分段寫入專用解碼電路進(jìn)行解碼;A2、幀數(shù)據(jù)重組模塊按照非幀尾數(shù)據(jù)分段的解碼順序,依次從非專用解碼電路中讀取所有解碼后的非幀尾數(shù)據(jù)分段后,再?gòu)膶S媒獯a電路中讀取解碼后的幀尾數(shù)據(jù)分段,根據(jù)讀取順序,幀數(shù)據(jù)重組模塊同步去除每一個(gè)數(shù)據(jù)分段的FEC校驗(yàn)碼并將有效幀數(shù)據(jù)分段重組為幀數(shù)據(jù)后輸出。
所述步驟A1中,幀數(shù)據(jù)切分模塊根據(jù)幀數(shù)據(jù)的幀頭標(biāo)識(shí)區(qū)分相鄰兩幀數(shù)據(jù)。
所述步驟A1中,幀數(shù)據(jù)切分模塊每次接收到新的一幀數(shù)據(jù)時(shí)發(fā)送幀頭指示信息;并將幀頭指示信息通過(guò)一個(gè)延遲模塊延遲發(fā)送給幀數(shù)據(jù)重組模塊,延遲時(shí)間為解碼該幀數(shù)據(jù)第一個(gè)的數(shù)據(jù)分段所需要的時(shí)間;所述步驟A2中,幀數(shù)據(jù)重組模塊接收到幀頭指示信息后從對(duì)應(yīng)的解碼電路中讀取該幀數(shù)據(jù)解碼后的第一個(gè)數(shù)據(jù)分段。
所述步驟A2中,幀數(shù)據(jù)重組模塊根據(jù)所述幀數(shù)據(jù)的傳輸速率確定每一幀數(shù)據(jù)包含的總字節(jié)長(zhǎng)度,每次接收到所述幀頭指示信息時(shí)根據(jù)所述總字節(jié)長(zhǎng)度初始化本地字節(jié)計(jì)數(shù)器的計(jì)數(shù)值;并在計(jì)數(shù)值顯示已經(jīng)接收完所述總字節(jié)長(zhǎng)度減去一個(gè)固定長(zhǎng)度個(gè)字節(jié)時(shí),確定應(yīng)該讀取的下一個(gè)數(shù)據(jù)分段為幀尾數(shù)據(jù)分段。
所述步驟A2中,幀數(shù)據(jù)重組模塊根據(jù)所述幀數(shù)據(jù)的傳輸速率確定每一幀數(shù)據(jù)包含的總字節(jié)長(zhǎng)度,利用本地字節(jié)計(jì)數(shù)器的計(jì)數(shù)值區(qū)分相鄰兩幀數(shù)據(jù)以及幀尾數(shù)據(jù)分段,具體包括每重組完一個(gè)幀數(shù)據(jù)后根據(jù)所述總字節(jié)長(zhǎng)度初始化本地字節(jié)計(jì)數(shù)器的計(jì)數(shù)值;每一次在計(jì)數(shù)值顯示已經(jīng)接收完所述總字節(jié)長(zhǎng)度減去一個(gè)固定長(zhǎng)度個(gè)字節(jié)時(shí),確定應(yīng)該讀取的下一個(gè)數(shù)據(jù)分段為幀尾數(shù)據(jù)分段。
當(dāng)所述幀尾數(shù)據(jù)分段的字節(jié)長(zhǎng)度小于所述固定字節(jié)長(zhǎng)度時(shí),在解碼該幀尾數(shù)據(jù)前,對(duì)幀尾數(shù)據(jù)分段進(jìn)行插0處理,并在解碼后去除插入的全部0,其中,插入0的位置在最后一段有效數(shù)據(jù)之前或該最后一段有效數(shù)據(jù)與最后一個(gè)FEC校驗(yàn)碼之間。具體操作包括以下三種方式所述步驟A1中還包括幀數(shù)據(jù)切分模塊將寫入專用解碼電路的幀尾數(shù)據(jù)分段進(jìn)行插0處理,同時(shí)將插入的0的個(gè)數(shù)通過(guò)一個(gè)延遲模塊延遲發(fā)送給幀數(shù)據(jù)重組模塊,延遲時(shí)間為解碼幀尾數(shù)據(jù)分段所需要的時(shí)間;以及所述步驟A2中還包括幀數(shù)據(jù)重組模塊從專用解碼電路中讀取解碼后的幀尾數(shù)據(jù)分段,并依據(jù)所述插入0的個(gè)數(shù),去除該幀尾數(shù)據(jù)分段中插入的全部0后再重組所述幀數(shù)據(jù)。
所述步驟A1中,幀數(shù)據(jù)切分模塊將幀尾數(shù)據(jù)分段寫入專用解碼電路的同時(shí),將應(yīng)該插入的0的個(gè)數(shù)寫入專用解碼電路中,由專用解碼電路對(duì)幀尾數(shù)據(jù)分段進(jìn)行插0處理,并且專用解碼電路將插入的0的個(gè)數(shù)通過(guò)一個(gè)延遲模塊再延遲發(fā)送給幀數(shù)據(jù)重組模塊,延遲時(shí)間為解碼幀尾數(shù)據(jù)分段所需要的時(shí)間;所述步驟A2中還包括幀數(shù)據(jù)重組模塊從專用解碼電路中讀取解碼后的幀尾數(shù)據(jù)分段,并依據(jù)所述插入0的個(gè)數(shù),去除該幀尾數(shù)據(jù)分段中插入的全部0后再重組所述幀數(shù)據(jù)。
所述步驟A1中還包括幀數(shù)據(jù)切分模塊對(duì)幀尾數(shù)據(jù)分段進(jìn)行插0處理后再輸入專用解碼電路中;所述步驟A2中還包括幀數(shù)據(jù)重組模塊從專用解碼電路中讀取解碼后的幀尾數(shù)據(jù)分段,根據(jù)所述幀數(shù)據(jù)的傳輸速率確定應(yīng)該插入的0的個(gè)數(shù),并去除該幀尾數(shù)據(jù)分段中插入的全部0后再重組所述幀數(shù)據(jù)。
上述方法種,所述幀數(shù)據(jù)為基于RS(255,239)的FEC編碼的幀數(shù)據(jù),所述固定字節(jié)長(zhǎng)度為整數(shù)倍的255個(gè)字節(jié),其中每一段255個(gè)字節(jié)中包含的有效數(shù)據(jù)為239個(gè)字節(jié),校驗(yàn)碼為16個(gè)字節(jié);并且當(dāng)傳輸速率為2.5G時(shí),幀尾數(shù)據(jù)分段中應(yīng)該插入135個(gè)0;當(dāng)傳輸速率為1.25G時(shí),幀尾數(shù)據(jù)分段中應(yīng)該插入195個(gè)0。
本發(fā)明提供的第二種前向糾錯(cuò)解碼裝置的控制方法包括如下步驟B1、幀數(shù)據(jù)切分模塊接收基于FEC編碼的幀數(shù)據(jù)并根據(jù)固定字節(jié)長(zhǎng)度順序切分該幀數(shù)據(jù),每一個(gè)切分出的幀數(shù)據(jù)分段中包括一段有效幀數(shù)據(jù)及其對(duì)應(yīng)的FEC校驗(yàn)碼,根據(jù)切分順序,幀數(shù)據(jù)切分模塊同步將每一個(gè)幀數(shù)據(jù)分段輪流寫入各路解碼電路進(jìn)行解碼;B2、幀數(shù)據(jù)重組模塊按照對(duì)應(yīng)的解碼順序,依次從各路解碼電路中讀取各幀數(shù)據(jù)分段,同步去除每一個(gè)數(shù)據(jù)分段的FEC校驗(yàn)碼并將有效幀數(shù)據(jù)分段重組為幀數(shù)據(jù)后輸出。
該第二種工作模式中,更進(jìn)一步的處理過(guò)程和第一種工作模式類似。
本發(fā)明的有益效果如下本發(fā)明采用多路FEC_CORE復(fù)用的方式,提供了一種并行設(shè)置多路FEC_CORE解碼電路的FEC解碼裝置相應(yīng)的控制方法,利用多路并行解碼的方式,消除了利用FEC差錯(cuò)控制方式時(shí),對(duì)FEC編碼方式傳輸?shù)膸瑪?shù)據(jù)的幀尾數(shù)據(jù)中額外插入0時(shí)的帶寬限制問(wèn)題;本發(fā)明技術(shù)方案完全滿足對(duì)GPON網(wǎng)絡(luò)中不間斷傳輸?shù)南滦蠪EC幀數(shù)據(jù)的實(shí)時(shí)性解碼要求。
圖1為通信系統(tǒng)中的差錯(cuò)控制原理說(shuō)明示意圖;圖2為典型PON結(jié)構(gòu)示意圖;圖3為GPON下行幀結(jié)構(gòu)示意圖;圖4為GPON下行幀插入FEC校驗(yàn)碼的結(jié)構(gòu)示意圖;圖5、圖6為本發(fā)明實(shí)施例一所述解碼裝置結(jié)構(gòu)示意圖;圖7、圖8為本發(fā)明實(shí)施例二所述解碼裝置結(jié)構(gòu)示意圖;圖9、圖10為本發(fā)明實(shí)施例三所述解碼裝置結(jié)構(gòu)示意圖。
具體實(shí)施例方式
現(xiàn)有RS(255,239)的FEC_CORE都是8位寬輸入、8位寬輸出,根據(jù)GPON下行幀數(shù)據(jù)的位寬和對(duì)幀尾數(shù)據(jù)進(jìn)行預(yù)處理所需要的額外帶寬,本發(fā)明采用多路FEC_CORE復(fù)用的方式,解碼部分的總輸入輸出位寬應(yīng)該與傳輸?shù)膸瑪?shù)據(jù)位寬相匹配,下面以具體實(shí)施例并結(jié)合附圖詳細(xì)說(shuō)明。
實(shí)施例一16位寬下行幀數(shù)據(jù)實(shí)現(xiàn)實(shí)時(shí)FEC解碼時(shí),本發(fā)明提供的解碼裝置結(jié)構(gòu)如圖5所示,包括第一路FEC解碼電路,其中包括依次連接的輸入緩存模塊CW_BUF_0、FEC解碼模塊FEC_CORE_0和輸出緩存模塊FEC_BUF_0;第二路FEC解碼電路,其中包括依次連接的輸入緩存模塊CW_BUF_1、FEC解碼模塊FEC_CORE_1和輸出緩存模塊FEC_BUF_1;第三路FEC解碼電路,其中包括依次連接的輸入緩存模塊CW_BUF_2、FEC解碼模塊FEC_CORE_2和輸出緩存模塊FEC_BUF_2;幀數(shù)據(jù)切分模塊FEC_IN,連接在每一個(gè)輸入緩存模塊CW_BUF的輸入端;幀數(shù)據(jù)重組模塊FEC_OUT,連接在每一個(gè)輸出緩存模塊FEC_BUF的輸出端;第一延遲模塊FP_DELAY,連接在FEC_IN和FEC_OUT之間;第二延遲模塊NUM_RESIDUE_DELAY,連接在CW_BUF_2和FEC_OUT之間。
其中,每一個(gè)緩存模塊的具體實(shí)現(xiàn)電路很多,只要可以控制其可以根據(jù)數(shù)據(jù)的輸入順序進(jìn)行輸出即可,其中,控制方式最簡(jiǎn)單的緩存模塊是先入先出FIFO(First in First out)存儲(chǔ)器。
下面詳細(xì)說(shuō)明圖5所示解碼裝置解碼一個(gè)幀數(shù)據(jù)的工作過(guò)程需要解碼的16位寬實(shí)時(shí)數(shù)據(jù)從圖5中FEC_IN模塊右側(cè)輸入,依據(jù)目前RS(255,239)標(biāo)準(zhǔn)定義,基于RS(255,239)的FEC_CORE模塊都是8位寬輸入,8位寬輸出??梢钥吹剑粚挷煌瑫?huì)造成數(shù)據(jù)流帶寬的瓶頸;同時(shí)由于下行幀F(xiàn)EC解碼尾部會(huì)通過(guò)插入0來(lái)湊齊最后一個(gè)255字節(jié)長(zhǎng)的碼字,插入的0同樣會(huì)造成多余的帶寬。
參閱圖4所示,每一個(gè)幀數(shù)據(jù)的開(kāi)始部分?jǐn)y帶有幀頭標(biāo)識(shí),F(xiàn)EC_IN可以根據(jù)幀頭標(biāo)識(shí)區(qū)別相鄰兩幀數(shù)據(jù)。
為保證FEC解碼裝置能實(shí)時(shí)處理輸入的數(shù)據(jù),本發(fā)明采用多路FEC解碼復(fù)用的方法,圖5所示裝置復(fù)用了三路FEC_CORE,分別是FEC_CORE_0、FEC_CORE_1和FEC_CORE_2,這三路FEC解碼都是8位寬輸入/輸出,三路FEC解碼模塊配合工作,可以滿足下行幀數(shù)據(jù)的帶寬要求。圖5所示的FEC解碼裝置可以有以下兩種工作模式一、其中一路FEC解碼模塊專用于解碼幀尾碼字,不用于解碼非幀尾碼字,見(jiàn)FEC_CORE_2參閱圖5所示,中間三個(gè)FEC_CORE模塊完成FEC解碼,兩側(cè)的FEC_IN和FEC_OUT分別完成解碼前的幀數(shù)據(jù)切分和解碼后的幀數(shù)據(jù)重組的邏輯模塊。由于幀數(shù)據(jù)的傳輸速度遠(yuǎn)大于單個(gè)FEC_CORE模塊的處理速度,因此,本發(fā)明采用FIFO的松耦合方式來(lái)緩沖速率不匹配帶來(lái)的影響。
參閱圖5所示,每一個(gè)FEC_CORE兩端連接的CW_BUF緩存模塊和FEC_BUF模緩存塊都是FIFO存儲(chǔ)器,這些FIFO存儲(chǔ)器可以吸收解碼模塊和切分/重組模塊之間帶寬差,實(shí)現(xiàn)幀數(shù)據(jù)在兩種傳輸速率之間平滑過(guò)渡。
參閱圖5所示,下行幀數(shù)據(jù)從FEC_IN右側(cè)輸入,F(xiàn)EC_IN通過(guò)幀頭標(biāo)識(shí)信號(hào),識(shí)別出每個(gè)下行幀數(shù)據(jù)的起點(diǎn),并初始化本地字節(jié)計(jì)數(shù)器開(kāi)始計(jì)數(shù)(可以將字節(jié)計(jì)數(shù)器初始化為0進(jìn)行加法計(jì)數(shù),也可以初始化為當(dāng)前數(shù)據(jù)傳輸速率對(duì)應(yīng)的一幀數(shù)據(jù)的總字節(jié)長(zhǎng)度值進(jìn)行減法計(jì)數(shù)),依次將下行幀數(shù)據(jù)切成以255字節(jié)長(zhǎng)為單位的數(shù)據(jù)段,這些長(zhǎng)度為255字節(jié)的數(shù)據(jù)段稱為碼字。FEC_IN生成這些碼字后,再將它們輪流依次寫入CW_BUF_0和CW_BUF_1兩個(gè)FIFO模塊中。例如,第一個(gè)碼字寫入CW_BUF_0,第二個(gè)碼字寫入CW_BUF_1,第三個(gè)碼字再寫入CW_BUF_0,以此類推。
寫入CW_BUF_0和CW_BUF_1中的碼字在FIFO中完成16位到8位寬的轉(zhuǎn)換后,被直接送入FEC_CORE_0和FEC_CORE_1兩個(gè)解碼模塊處理。碼字從CW_BUF_0/CW_BUF_1模塊完成位寬轉(zhuǎn)換到FEC_CORE_0/FEC_CORE_1解碼都是不間斷的,因此,CW_BUF_0/CW_BUF_1這兩個(gè)FIFO模塊不會(huì)被塞滿,F(xiàn)EC_IN可以不間斷的向CW_BUF_0和CW_BUF_1寫入碼字,保證下行數(shù)據(jù)的不間斷傳輸。
如上文所述,下行幀數(shù)據(jù)通過(guò)FEC_IN將幀數(shù)據(jù)切成一個(gè)個(gè)碼字通過(guò)CW_BUF_0和CW_BUF_1兩路FIFO分別送入FEC_CORE_0和FEC_CORE_1解碼。但是,當(dāng)切到下行幀數(shù)據(jù)的尾數(shù)部分時(shí),最后的字節(jié)不足以組成一個(gè)255字節(jié)長(zhǎng)的碼字,因此,F(xiàn)EC_IN需要根據(jù)幀尾字節(jié)數(shù)確定應(yīng)該插入0的個(gè)數(shù),并將插0的個(gè)數(shù)寫入CW_BUF_2,CW_BUF_2完成位寬轉(zhuǎn)換,并在寫入FEC_CORE_2解碼模塊時(shí),在該字節(jié)的設(shè)定位置(數(shù)據(jù)字節(jié)之前或數(shù)據(jù)字節(jié)和16位校驗(yàn)字節(jié)之間)插入0,F(xiàn)EC_CORE_2對(duì)幀尾碼字進(jìn)行解碼。
這里需要說(shuō)明的是,當(dāng)特定速率下,幀尾數(shù)據(jù)正好是255字節(jié)時(shí),不需要進(jìn)行插0處理。如果需要進(jìn)行插0處理,F(xiàn)EC_IN可以根據(jù)字節(jié)計(jì)數(shù)器的計(jì)數(shù)值判斷是否已經(jīng)切分出本次解碼的幀數(shù)據(jù)的倒數(shù)第二個(gè)碼字,如果是,則下一個(gè)數(shù)據(jù)分段則為幀尾數(shù)據(jù)分段。
這里還需要說(shuō)明的是,根據(jù)FIFO的處理能力具體設(shè)定切分出的幀數(shù)據(jù)分段長(zhǎng)度,如果FIFO一次可以寫入兩個(gè)或三個(gè)碼字,則相應(yīng)可以將切分?jǐn)?shù)據(jù)分段的長(zhǎng)度設(shè)定為510字節(jié)或765字節(jié)。當(dāng)需要進(jìn)行插0處理時(shí),插入0的位置在最后一段有效數(shù)據(jù)之前或者在最后一段有效數(shù)據(jù)和最后一個(gè)校驗(yàn)碼之間。
至此為止,下行幀數(shù)據(jù)的各數(shù)據(jù)分段都依次送入FEC_CORE_0、FEC_CORE_1和FEC_CORE_2完成解碼了,下面詳細(xì)論述數(shù)據(jù)通過(guò)三路FEC解碼后,再拼成一個(gè)完整的下行幀數(shù)據(jù)的過(guò)程。
仍參閱如圖5所示,F(xiàn)EC_CORE_0、FEC_CORE_1和FEC_CORE_2解碼后的數(shù)據(jù)分段被分別寫入FEC_BUF_0、FEC_BUF_1和FEC_BUF_2。其中FEC_BUF_0、FEC_BUF_1和FEC_BUF_2用于將數(shù)據(jù)從8位寬轉(zhuǎn)換成16位寬,它的作用與CW_BUF_0、CW_BUF_1、CW_BUF_2正好是逆向的。FEC_BUF_0、FEC_BUF_1和FEC_BUF_2向FEC_OUT輸出位寬轉(zhuǎn)換后的數(shù)據(jù),由FEC_OUT完成幀數(shù)據(jù)的重組。
FEC_IN向CW_BUF_0、CW_BUF_1和CW_BUF_2分別寫入下行幀數(shù)據(jù)的碼字,同時(shí),將每個(gè)下行幀的幀頭指示信號(hào)fp送入FP_DELAY模塊,其中fp是下行幀的幀頭指示,fp有效表示下行幀數(shù)據(jù)的幀起點(diǎn),在FEC_IN和FEC_OUT之間起到同步控制的作用,雖然FEC_OUT本地字節(jié)計(jì)數(shù)器可以通過(guò)每一個(gè)幀數(shù)據(jù)的字節(jié)總數(shù)劃分相鄰兩個(gè)幀數(shù)據(jù),但是本地計(jì)數(shù)一旦出錯(cuò),將造成不可恢復(fù)的錯(cuò)誤,因此fp指示的同步控制作用可以避免這種情況的發(fā)生。
FP_DELAY的功能就是完成下行幀頭指示信號(hào)fp的延時(shí),它的延時(shí)時(shí)鐘周期數(shù)恰好等于幀數(shù)據(jù)經(jīng)過(guò)CW_BUF_0和FEC_CORE_0/CW_BUF_1和FEC_CORE_1/CW_BUF_2和FEC_CORE_2解碼總共需要的時(shí)間。這樣,F(xiàn)P_DELAY在延時(shí)合適的時(shí)鐘周期數(shù)后,向FEC_OUT輸出的下行幀頭信號(hào)fp恰好可以與解碼后的幀數(shù)據(jù)同步。
FEC_OUT同樣根據(jù)幀數(shù)據(jù)的傳輸速率確定每一幀數(shù)據(jù)包含的總字節(jié)長(zhǎng)度,每一次在計(jì)數(shù)值顯示已經(jīng)接收完總字節(jié)長(zhǎng)度減去一個(gè)固定長(zhǎng)度字節(jié)時(shí),可以確定應(yīng)該讀取的下一個(gè)數(shù)據(jù)分段為幀尾數(shù)據(jù)分段。當(dāng)FEC_OUT收到FP_DELAY模塊輸出的經(jīng)過(guò)延時(shí)后的下行幀頭信號(hào)fp,即表示下行幀的第一個(gè)數(shù)據(jù)已經(jīng)完成FEC解碼。因此,F(xiàn)EC_OUT收到FP_DELAY輸出的下行幀頭信號(hào)fp后,同步初始化FEC_OUT的本地字節(jié)計(jì)數(shù)器,計(jì)數(shù)下行幀總字節(jié)數(shù),同時(shí)從FEC_BUF_0和FEC_BUF_1中輪流讀取碼字?jǐn)?shù)據(jù),即從FEC_BUF_0中讀取第一個(gè)碼字,然后從FEC_BUF_1中讀取第二個(gè)碼字,再?gòu)腇EC_BUF_0中讀取第三個(gè)碼字,依此類推。當(dāng)讀出的字節(jié)總數(shù)等于當(dāng)前速率對(duì)應(yīng)的幀數(shù)據(jù)字節(jié)數(shù)時(shí),F(xiàn)EC_OUT去除這些碼字尾部的校驗(yàn)位后,將碼字內(nèi)容依次連接起來(lái),然后去除插入的額外0后就重建出解碼后的下行幀數(shù)據(jù)。
與fp延時(shí)模塊FP_DELAY相同,F(xiàn)EC_IN可以將插0的個(gè)數(shù)寫入CW_BUF_2,CW_BUF_2輸出到NUM_RESIDUE_DELAY模塊,NUM_RESIDUE_DELAY是一個(gè)延時(shí)模塊,經(jīng)過(guò)與FP_DELAY相同的延時(shí),NUM_RESIDUE_DELAY將幀尾插0的個(gè)數(shù)輸出給FEC_OUT模塊。FEC_OUT以此為依據(jù),將從FEC_BUF_2中讀取的幀尾碼字中去除相應(yīng)數(shù)目的0,最后得到幀尾的殘余字節(jié),作為下行幀的幀尾數(shù)據(jù)。
如上所述,F(xiàn)EC_OUT將這三路碼字讀出的數(shù)據(jù)拼在一起就還原成解碼后的下行幀有效數(shù)據(jù),從輸出端口輸出。
NUM_RESIDUE_DELAY模塊的作用在于提供了傳遞每一個(gè)幀尾數(shù)據(jù)中插入的0的個(gè)數(shù),但是現(xiàn)有GPON網(wǎng)絡(luò)主要采用2.5G和1.25G兩種速率,2.5G速率下,每一個(gè)基于RS(255,239)的FEC編碼的下行幀數(shù)據(jù)包括38880個(gè)字節(jié),需要切成153個(gè)碼字進(jìn)行解碼,每一個(gè)幀尾碼字需要插入135個(gè)0;1.25G速率下,每一個(gè)基于RS(255,239)的FEC編碼的下行幀數(shù)據(jù)包括19440個(gè)字節(jié),需要切成77個(gè)碼字進(jìn)行解碼,每一個(gè)幀尾碼字需要插入195個(gè)0。以其他固定長(zhǎng)度切分碼字,例如兩個(gè)255字節(jié)、即510字節(jié)切分碼字時(shí),每一個(gè)碼字中插入0的個(gè)數(shù)相同。如果當(dāng)前速率已知,則FEC_OUT可以通過(guò)當(dāng)前速率判斷尾幀數(shù)據(jù)插入0的個(gè)數(shù),不需要利用該傳遞機(jī)制從FEC_IN獲知每一個(gè)幀尾數(shù)據(jù)中插入0的個(gè)數(shù),這種應(yīng)用場(chǎng)景下可以省略NUM_RESIDUE_DELAY模塊。FEC_OUT根據(jù)幀數(shù)據(jù)的傳輸速率確定每一幀數(shù)據(jù)包含的總字節(jié)長(zhǎng)度,利用本地字節(jié)計(jì)數(shù)器的計(jì)數(shù)值區(qū)分相鄰兩幀數(shù)據(jù),具體包括每重組完一個(gè)幀數(shù)據(jù)后清零計(jì)數(shù)值;每一次在計(jì)數(shù)值達(dá)到一幀數(shù)據(jù)總字節(jié)長(zhǎng)度減去一個(gè)幀數(shù)據(jù)分段的固定長(zhǎng)度時(shí)從專用解碼電路中讀取幀尾數(shù)據(jù)分段。
如果在多個(gè)速率之間切換,或者速率切換的頻率較高,每一個(gè)幀尾數(shù)據(jù)出入0的個(gè)數(shù)變化較為頻繁,則可以在每一次發(fā)生速率切換時(shí),執(zhí)行一次傳遞機(jī)制,F(xiàn)EC_IN將插0的個(gè)數(shù)寫入CW_BUF_2,CW_BUF_2輸出到NUM_RESIDUE_DELAY模塊,NUM_RESIDUE_DELAY延遲輸出給FEC_OUT,更進(jìn)一步,可以在解碼每一個(gè)尾幀數(shù)據(jù)時(shí)都執(zhí)行一次該傳遞機(jī)制,以保證正確重組每一個(gè)幀數(shù)據(jù)。
這里需要說(shuō)明的是,每一種通信網(wǎng)絡(luò)中,相應(yīng)都具備當(dāng)前速率通知機(jī)制,在通信開(kāi)始或發(fā)生速率切換時(shí),將當(dāng)前速率通知到相應(yīng)的處理模塊。
二、輪流解碼模式該工作模式中,F(xiàn)EC_IN將幀數(shù)據(jù)切成一個(gè)個(gè)碼字通過(guò)CW_BUF_0、CW_BUF_1和CW_BUF_2三路FIFO輪流送入FEC_CORE_0、FEC_CORE_1和FEC_CORE_2解碼,當(dāng)切到下行幀數(shù)據(jù)的尾數(shù)部分時(shí),最后的字節(jié)不足以組成一個(gè)255字節(jié)長(zhǎng)的碼字,由FEC_IN將這個(gè)幀尾碼字寫入CW_BUF_2中,并同時(shí)向CW_BUF_2寫入插入0的個(gè)數(shù),F(xiàn)EC_CORE_2解碼幀尾碼字。
如前所述,在不需要傳遞幀尾插入0的個(gè)數(shù)時(shí),可以約定三路解碼電路中的任意一路解碼每一個(gè)幀數(shù)據(jù)的第一個(gè)碼字。但是如果在需要傳遞機(jī)制保證時(shí),結(jié)合實(shí)際電路結(jié)構(gòu)選擇解碼第一個(gè)碼字的解碼電路,使得將幀尾碼字寫入一對(duì)應(yīng)解碼電路的同時(shí),將應(yīng)該插入的0的個(gè)數(shù)也寫入該對(duì)應(yīng)解碼電路中,例如圖5所示的電路結(jié)構(gòu)中,現(xiàn)有2.5G和1.25G速率下,當(dāng)約定第二路解碼電路、即FEC_CORE_1解碼第一個(gè)碼字時(shí),恰好可以使幀尾碼字輸入到CW_BUF_2中,并通過(guò)該CW_BUF_2連接的第二延遲模塊NUM_RESIDUE_DELAY完成插入0的個(gè)數(shù)的傳遞。
下行幀的幀頭指示fp信號(hào)的延遲機(jī)制和FEC_OUT端重組幀數(shù)據(jù)的過(guò)程與第一種工作模式完全相同。
另一種解碼裝置的結(jié)構(gòu)如圖6所示,第二延遲模塊NUM_RESIDUE_DELAY直接連接在FEC_IN和FEC_OUT之間,幀尾數(shù)據(jù)分段中插入0的操作在FEC_IN中完成,這時(shí),當(dāng)下行幀數(shù)據(jù)到達(dá)尾數(shù)部分時(shí),最后的剩余字節(jié)不足以組成一個(gè)255字節(jié)長(zhǎng)的碼字時(shí),F(xiàn)EC_IN需要在最后的幀數(shù)據(jù)中插入0,將0和幀尾的殘余字節(jié)共同組成一個(gè)碼字,并將這個(gè)幀尾碼字寫入CW_BUF_2中。然后將插入0的個(gè)數(shù)通過(guò)NUM_RESIDUE_DELAY延遲發(fā)送給FEC_OUT。除插入0的操作在FEC_IN中完成外,其他工作過(guò)程和圖5所示電路完全相同。
實(shí)施例二8位寬下行幀數(shù)據(jù)實(shí)現(xiàn)實(shí)時(shí)FEC解碼時(shí),本發(fā)明提供的解碼裝置結(jié)構(gòu)如圖7所示,包括
第一路FEC解碼電路,其中包括依次連接的輸入緩存模塊CW_BUF_0、FEC解碼模塊FEC_CORE_0和輸出緩存模塊FEC_BUF_0;第二路FEC解碼電路,其中包括依次連接的輸入緩存模塊CW_BUF_1、FEC解碼模塊FEC_CORE_1和輸出緩存模塊FEC_BUF_1;幀數(shù)據(jù)切分模塊FEC_IN,連接在每一個(gè)輸入緩存模塊CW_BUF的輸入端;幀數(shù)據(jù)重組模塊FEC_OUT,連接在每一個(gè)輸出緩存模塊FEC_BUF的輸出端;第一延遲模塊FP_DELAY,連接在FEC_IN和FEC_OUT之間;第二延遲模塊NUM_RESIDUE_DELAY,連接在CW_BUF_1和FEC_OUT之間。
同理,該解碼裝置的工作模式和實(shí)施例一中所述的工作模式相同,工作過(guò)程也完全類似,不同之處在于第一種工作模式下,非幀尾碼字的解碼工作由FEC_CORE_0獨(dú)立承擔(dān);第二種工作模式下,由兩個(gè)FEC_CORE輪流解碼。
同理,在不需要傳遞幀尾碼字中插入0的個(gè)數(shù)時(shí),NUM_RESIDUE_DELAY可以省略。如果需要傳遞幀尾碼字中插入0的個(gè)數(shù),現(xiàn)有2.5G和1.25G速率時(shí),約定由FEC_CORE_1解碼每一幀數(shù)據(jù)的第一個(gè)碼字,從而可以使幀尾碼字輸入到CW_BUF_1中,并通過(guò)該CW_BUF_1連接的第二延遲模塊NUM_RESIDUE_DELAY完成插入0的個(gè)數(shù)的傳遞。
如圖8,第二延遲模塊NUM_RESIDUE_DELAY也可以連接在FEC_IN和FEC_OUT之間,由FEC_IN具體完成在幀尾數(shù)據(jù)中插入0的操作。
實(shí)施例三32位寬下行幀數(shù)據(jù)實(shí)現(xiàn)實(shí)時(shí)FEC解碼時(shí),本發(fā)明提供的解碼裝置結(jié)構(gòu)如圖9所示,共需要五路解碼電路協(xié)調(diào)工作,該解碼裝置具體包括第一路FEC解碼電路,其中包括依次連接的輸入緩存模塊CW_BUF_0、FEC解碼模塊FEC_CORE_0和輸出緩存模塊FEC_BUF_0;第二路FEC解碼電路,其中包括依次連接的輸入緩存模塊CW_BUF_1、FEC解碼模塊FEC_CORE_1和輸出緩存模塊FEC_BUF_1;第三路FEC解碼電路,其中包括依次連接的輸入緩存模塊CW_BUF_2、FEC解碼模塊FEC_CORE_2和輸出緩存模塊FEC_BUF_2;第四路FEC解碼電路,其中包括依次連接的輸入緩存模塊CW_BUF_3、FEC解碼模塊FEC_CORE_3和輸出緩存模塊FEC_BUF_3;第五路FEC解碼電路,其中包括依次連接的輸入緩存模塊CW_BUF_4、FEC解碼模塊FEC_CORE_4和輸出緩存模塊FEC_BUF_4;幀數(shù)據(jù)切分模塊FEC_IN,連接在每一個(gè)輸入緩存模塊CW_BUF的輸入端;幀數(shù)據(jù)重組模塊FEC_OUT,連接在每一個(gè)輸出緩存模塊FEC_BUF的輸出端;第一延遲模塊FP_DELAY,連接在FEC_IN和FEC_OUT之間;第二延遲模塊NUM_RESIDUE_DELAY,連接在CW_BUF_4和FEC_OUT之間。
該解碼裝置的工作模式和實(shí)施例一中所述的工作模式相同,工作過(guò)程也完全類似,不同之處在于第一種工作模式下,非幀尾碼字的解碼工作由FEC_CORE_0-FEC_CORE_3共四路解碼電路承擔(dān);第二種工作模式下,由五路解碼電路輪流解碼。
同理,在不需要傳遞幀尾碼字中插入0的個(gè)數(shù)時(shí),NUM_RESIDUE_DELAY可以省略。如果需要傳遞幀尾碼字中插入0的個(gè)數(shù),現(xiàn)有2.5G和1.25G速率時(shí),約定由FEC_CORE_3解碼每一幀數(shù)據(jù)的第一個(gè)碼字,從而可以使幀尾碼字輸入到CW_BUF_4中,并通過(guò)該CW_BUF_3連接的第二延遲模塊NUM_RESIDUE_DELAY完成插入0的個(gè)數(shù)的傳遞。
如圖10所示,第二延遲模塊NUM_RESIDUE_DELAY也可以連接在FEC_IN和FEC_OUT之間,由FEC_IN具體完成在幀尾數(shù)據(jù)中插入0的操作。
綜上所述,推廣到一般情況,假設(shè)需要解碼的實(shí)時(shí)數(shù)據(jù)位寬為N,F(xiàn)EC_CORE的輸入/輸出位寬為M,N和M一般都為8的整數(shù)倍,則需要復(fù)用N÷M+1路解碼電路?,F(xiàn)有FEC_CORE為8位寬輸入/輸出,因此一般復(fù)用N÷8+1路解碼電路即可實(shí)現(xiàn)本發(fā)明目的。
上述實(shí)施例以解碼GPON網(wǎng)絡(luò)的下行幀數(shù)據(jù)為例進(jìn)行說(shuō)明,本發(fā)明提供的技術(shù)方案同樣其他通信機(jī)制的網(wǎng)絡(luò)中,對(duì)基于FEC編碼方式的上行或下行幀進(jìn)行解碼處理,同樣不局限處理基于RS(255,239)編碼格式的幀數(shù)據(jù)。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1.一種前向糾錯(cuò)解碼裝置,其特征在于,包括幀數(shù)據(jù)切分模塊、幀數(shù)據(jù)重組模塊以及并行設(shè)置的至少兩路FEC解碼電路;其中,所述幀數(shù)據(jù)切分模塊連接每一路FEC解碼電路的輸入端,用于接收基于FEC編碼的幀數(shù)據(jù),并根據(jù)固定字節(jié)長(zhǎng)度順序切分每一個(gè)幀數(shù)據(jù),將切分出的各數(shù)據(jù)分段根據(jù)設(shè)定解碼順序分別送入各路FEC解碼電路,其中,每一個(gè)數(shù)據(jù)分段中包括一段有效數(shù)據(jù)和相應(yīng)的FEC校驗(yàn)碼;所述FEC解碼電路包括順次連接的輸入緩存模塊、FEC解碼模塊和輸出緩存模塊,用于對(duì)各數(shù)據(jù)分段進(jìn)行并行解碼,并將解碼后的各數(shù)據(jù)分段輸出給幀數(shù)據(jù)重組模塊;所述幀數(shù)據(jù)重組模塊連接每一路解碼電路的輸出端,用于去除各數(shù)據(jù)分段中的校驗(yàn)碼,并根據(jù)切分順序重組有效數(shù)據(jù)后再輸出。
2.如權(quán)利要求1所述的解碼裝置,其特征在于,該解碼裝置還包括第一延遲模塊,連接在所述幀數(shù)據(jù)切分模塊和幀數(shù)據(jù)重組模塊之間,用于將所述幀數(shù)據(jù)切分模塊發(fā)出的幀頭指示信息延遲發(fā)送給所述幀數(shù)據(jù)重組模塊,延遲時(shí)間為解碼每一個(gè)幀數(shù)據(jù)的第一個(gè)數(shù)據(jù)分段所需要的時(shí)間。
3.如權(quán)利要求1或2所述的解碼裝置,其特征在于,該解碼裝置還包括第二延遲模塊;連接在所述幀數(shù)據(jù)切分模塊和幀數(shù)據(jù)重組模塊之間,用于將由所述幀數(shù)據(jù)切分模塊在所述幀尾數(shù)據(jù)分段中插入0的個(gè)數(shù)延遲發(fā)送給所述幀數(shù)據(jù)重組模塊,延遲時(shí)間為解碼每一個(gè)幀數(shù)據(jù)幀尾數(shù)據(jù)分段所需要的時(shí)間。
4.如權(quán)利要求1或2所述的解碼裝置,其特征在于,該解碼裝置還包括第二延遲模塊;連接在其中一路解碼電路的輸入緩存模塊和幀數(shù)據(jù)重組模塊之間,用于將該路解碼電路在所述幀尾數(shù)據(jù)分段中插入0的個(gè)數(shù)延遲發(fā)送給所述幀數(shù)據(jù)重組模塊,延遲時(shí)間為解碼每一個(gè)幀數(shù)據(jù)幀尾數(shù)據(jù)分段所需要的時(shí)間。
5.如權(quán)利要求4所述的解碼裝置,其特征在于,與所述第二延遲模塊連接的輸入緩存模塊所在的一路解碼電路為所述幀尾數(shù)據(jù)分段的專用解碼電路。
6.如權(quán)利要求1、2或3所述的解碼裝置,其特征在于,所述FEC解碼模塊為8位寬輸入/輸出;和/或,所述輸入緩存模塊和輸出緩存模塊全部為先入先出FIFO存儲(chǔ)器。
7.如權(quán)利要求1所述的控制方法,其特征在于,所述幀數(shù)據(jù)為基于RS(255,239)的FEC編碼的幀數(shù)據(jù),所述固定字節(jié)長(zhǎng)度為整數(shù)倍的255個(gè)字節(jié),其中每一段255個(gè)字節(jié)中包含的有效數(shù)據(jù)為239個(gè)字節(jié),校驗(yàn)碼為16個(gè)字節(jié)。
8.一種如權(quán)利要求1所述前向糾錯(cuò)解碼裝置的控制方法,設(shè)置該前向糾錯(cuò)FEC解碼裝置中的一路FEC解碼電路為解碼幀尾數(shù)據(jù)分段的專用解碼電路,其它路FEC解碼電路為解碼非幀尾數(shù)據(jù)分段的非專用解碼電路,所述控制方法包括如下步驟A1、幀數(shù)據(jù)切分模塊接收基于FEC編碼的幀數(shù)據(jù)并根據(jù)固定字節(jié)長(zhǎng)度順序切分該幀數(shù)據(jù),每一個(gè)切分出的幀數(shù)據(jù)分段中包括一段有效幀數(shù)據(jù)及其對(duì)應(yīng)的FEC校驗(yàn)碼,根據(jù)切分順序,幀數(shù)據(jù)切分模塊同步將其中非幀尾數(shù)據(jù)分段輪流寫入非專用解碼電路進(jìn)行解碼,將最后的幀尾數(shù)據(jù)分段寫入專用解碼電路進(jìn)行解碼;A2、幀數(shù)據(jù)重組模塊按照非幀尾數(shù)據(jù)分段的解碼順序,依次從非專用解碼電路中讀取所有解碼后的非幀尾數(shù)據(jù)分段后,再?gòu)膶S媒獯a電路中讀取解碼后的幀尾數(shù)據(jù)分段,根據(jù)讀取順序,幀數(shù)據(jù)重組模塊同步去除每一個(gè)數(shù)據(jù)分段的FEC校驗(yàn)碼并將有效幀數(shù)據(jù)分段重組為幀數(shù)據(jù)后輸出。
9.如權(quán)利要求8所述的方法,其特征在于,所述方法還包括所述步驟A1中,幀數(shù)據(jù)切分模塊根據(jù)幀數(shù)據(jù)的幀頭標(biāo)識(shí)區(qū)分相鄰兩幀數(shù)據(jù)。
10.如權(quán)利要求9所述的方法,其特征在于,所述步驟A1中,幀數(shù)據(jù)切分模塊每次接收到新的一幀數(shù)據(jù)時(shí)發(fā)送幀頭指示信息;并將幀頭指示信息通過(guò)一個(gè)延遲模塊延遲發(fā)送給幀數(shù)據(jù)重組模塊,延遲時(shí)間為解碼該幀數(shù)據(jù)第一個(gè)的數(shù)據(jù)分段所需要的時(shí)間;所述步驟A2中,幀數(shù)據(jù)重組模塊接收到幀頭指示信息后從對(duì)應(yīng)的解碼電路中讀取該幀數(shù)據(jù)解碼后的第一個(gè)數(shù)據(jù)分段。
11.如權(quán)利要求10所述的方法,其特征在于,所述步驟A2中,幀數(shù)據(jù)重組模塊根據(jù)所述幀數(shù)據(jù)的傳輸速率確定每一幀數(shù)據(jù)包含的總字節(jié)長(zhǎng)度,每次接收到所述幀頭指示信息時(shí)根據(jù)所述總字節(jié)長(zhǎng)度初始化本地字節(jié)計(jì)數(shù)器的計(jì)數(shù)值;并在計(jì)數(shù)值顯示已經(jīng)接收完所述總字節(jié)長(zhǎng)度減去一個(gè)固定長(zhǎng)度個(gè)字節(jié)時(shí),確定應(yīng)該讀取的下一個(gè)數(shù)據(jù)分段為幀尾數(shù)據(jù)分段。
12.如權(quán)利要求9所述的方法,其特征在于,所述步驟A2中,幀數(shù)據(jù)重組模塊根據(jù)所述幀數(shù)據(jù)的傳輸速率確定每一幀數(shù)據(jù)包含的總字節(jié)長(zhǎng)度,利用本地字節(jié)計(jì)數(shù)器的計(jì)數(shù)值區(qū)分相鄰兩幀數(shù)據(jù)以及幀尾數(shù)據(jù)分段,具體包括每重組完一個(gè)幀數(shù)據(jù)后根據(jù)所述總字節(jié)長(zhǎng)度初始化本地字節(jié)計(jì)數(shù)器的計(jì)數(shù)值;每一次在計(jì)數(shù)值顯示已經(jīng)接收完所述總字節(jié)長(zhǎng)度減去一個(gè)固定長(zhǎng)度個(gè)字節(jié)時(shí),確定應(yīng)該讀取的下一個(gè)數(shù)據(jù)分段為幀尾數(shù)據(jù)分段。
13.如權(quán)利要求11或12所述的控制方法,其特征在于,當(dāng)所述幀尾數(shù)據(jù)分段的字節(jié)長(zhǎng)度小于所述固定字節(jié)長(zhǎng)度時(shí),在解碼該幀尾數(shù)據(jù)前,對(duì)幀尾數(shù)據(jù)分段進(jìn)行插0處理,并在解碼后去除插入的全部0,其中,插入0的位置在最后一段有效數(shù)據(jù)之前或該最后一段有效數(shù)據(jù)與最后一個(gè)FEC校驗(yàn)碼之間。
14.如權(quán)利要求12所述的控制方法,其特征在于,所述步驟A1中還包括幀數(shù)據(jù)切分模塊將寫入專用解碼電路的幀尾數(shù)據(jù)分段進(jìn)行插0處理,同時(shí)將插入的0的個(gè)數(shù)通過(guò)一個(gè)延遲模塊延遲發(fā)送給幀數(shù)據(jù)重組模塊,延遲時(shí)間為解碼幀尾數(shù)據(jù)分段所需要的時(shí)間;以及所述步驟A2中還包括幀數(shù)據(jù)重組模塊從專用解碼電路中讀取解碼后的幀尾數(shù)據(jù)分段,并依據(jù)所述插入0的個(gè)數(shù),去除該幀尾數(shù)據(jù)分段中插入的全部0后再重組所述幀數(shù)據(jù)。
15.如權(quán)利要求13所述的控制方法,其特征在于,所述步驟A1中,幀數(shù)據(jù)切分模塊將幀尾數(shù)據(jù)分段寫入專用解碼電路的同時(shí),將應(yīng)該插入的0的個(gè)數(shù)寫入專用解碼電路中,由專用解碼電路對(duì)幀尾數(shù)據(jù)分段進(jìn)行插0處理,并且專用解碼電路將插入的0的個(gè)數(shù)通過(guò)一個(gè)延遲模塊再延遲發(fā)送給幀數(shù)據(jù)重組模塊,延遲時(shí)間為解碼幀尾數(shù)據(jù)分段所需要的時(shí)間;所述步驟A2中還包括幀數(shù)據(jù)重組模塊從專用解碼電路中讀取解碼后的幀尾數(shù)據(jù)分段,并依據(jù)所述插入0的個(gè)數(shù),去除該幀尾數(shù)據(jù)分段中插入的全部0后再重組所述幀數(shù)據(jù)。
16.如權(quán)利要求13所述的控制方法,其特征在于,所述步驟A1中還包括幀數(shù)據(jù)切分模塊對(duì)幀尾數(shù)據(jù)分段進(jìn)行插0處理后再輸入專用解碼電路中;所述步驟A2中還包括幀數(shù)據(jù)重組模塊從專用解碼電路中讀取解碼后的幀尾數(shù)據(jù)分段,根據(jù)所述幀數(shù)據(jù)的傳輸速率確定應(yīng)該插入的0的個(gè)數(shù),并去除該幀尾數(shù)據(jù)分段中插入的全部0后再重組所述幀數(shù)據(jù)。
17.如權(quán)利要求12-16任意之一所述的控制方法,其特征在于,所述幀數(shù)據(jù)為基于RS(255,239)的FEC編碼的幀數(shù)據(jù),所述固定字節(jié)長(zhǎng)度為整數(shù)倍的255個(gè)字節(jié),其中每一段255個(gè)字節(jié)中包含的有效數(shù)據(jù)為239個(gè)字節(jié),校驗(yàn)碼為16個(gè)字節(jié);并且當(dāng)傳輸速率為2.5G時(shí),幀尾數(shù)據(jù)分段中應(yīng)該插入135個(gè)0;當(dāng)傳輸速率為1.25G時(shí),幀尾數(shù)據(jù)分段中應(yīng)該插入195個(gè)0。
18.一種如權(quán)利要求1所述前向糾錯(cuò)解碼裝置的控制方法,所述控制方法包括如下步驟B1、幀數(shù)據(jù)切分模塊接收基于FEC編碼的幀數(shù)據(jù)并根據(jù)固定字節(jié)長(zhǎng)度順序切分該幀數(shù)據(jù),每一個(gè)切分出的幀數(shù)據(jù)分段中包括一段有效幀數(shù)據(jù)及其對(duì)應(yīng)的FEC校驗(yàn)碼,根據(jù)切分順序,幀數(shù)據(jù)切分模塊同步將每一個(gè)幀數(shù)據(jù)分段輪流寫入各路解碼電路進(jìn)行解碼;B2、幀數(shù)據(jù)重組模塊按照對(duì)應(yīng)的解碼順序,依次從各路解碼電路中讀取各幀數(shù)據(jù)分段,同步去除每一個(gè)數(shù)據(jù)分段的FEC校驗(yàn)碼并將有效幀數(shù)據(jù)分段重組為幀數(shù)據(jù)后輸出。
19.如權(quán)利要求18所述的方法,其特征在于,所述方法還包括所述步驟B1中,幀數(shù)據(jù)切分模塊根據(jù)幀數(shù)據(jù)的幀頭標(biāo)識(shí)區(qū)分相鄰兩幀數(shù)據(jù)。
20.如權(quán)利要求19所述的方法,其特征在于,所述步驟B1中,幀數(shù)據(jù)切分模塊每次接收到新的一幀數(shù)據(jù)時(shí)發(fā)送幀頭指示信息;并將幀頭指示信息通過(guò)一個(gè)延遲模塊延遲發(fā)送給幀數(shù)據(jù)重組模塊,延遲時(shí)間為解碼該幀數(shù)據(jù)第一個(gè)數(shù)據(jù)分段所需要的時(shí)間;所述步驟B2中,幀數(shù)據(jù)重組模塊接收到幀頭指示信息后從對(duì)應(yīng)的解碼電路中讀取該幀數(shù)據(jù)解碼后的第一個(gè)數(shù)據(jù)分段。
21.如權(quán)利要求20所述的方法,其特征在于,所述步驟B2中,幀據(jù)重組模塊根據(jù)所述幀數(shù)據(jù)的傳輸速率確定每一幀數(shù)據(jù)包含的總字節(jié)長(zhǎng)度,每次接收到所述幀頭指示信息時(shí)根據(jù)所述總字節(jié)長(zhǎng)度初始化本地字節(jié)計(jì)數(shù)器的計(jì)數(shù)值;每一次在計(jì)數(shù)值顯示已經(jīng)接收完所述總字節(jié)長(zhǎng)度減去一個(gè)固定長(zhǎng)度個(gè)字節(jié)時(shí),確定應(yīng)該讀取的下一個(gè)數(shù)據(jù)分段為幀尾數(shù)據(jù)分段。
22.如權(quán)利要求19所述的方法,其特征在于,所述步驟B2中,幀數(shù)據(jù)重組模塊根據(jù)所述幀數(shù)據(jù)的傳輸速率確定每一幀數(shù)據(jù)包含的總字節(jié)長(zhǎng)度,利用本地字節(jié)計(jì)數(shù)器的計(jì)數(shù)值區(qū)分相鄰兩幀數(shù)據(jù)以及幀尾數(shù)據(jù)分段,具體包括每重組完一個(gè)幀數(shù)據(jù)后根據(jù)所述總字節(jié)長(zhǎng)度初始化本地字節(jié)計(jì)數(shù)器的計(jì)數(shù)值;每一次在計(jì)數(shù)值顯示已經(jīng)接收完所述總字節(jié)長(zhǎng)度減去一個(gè)固定長(zhǎng)度個(gè)字節(jié)時(shí),確定應(yīng)該讀取的下一個(gè)數(shù)據(jù)分段為幀尾數(shù)據(jù)分段。
23.如權(quán)利要求21或22所述的控制方法,其特征在于,當(dāng)幀尾數(shù)據(jù)分段的字節(jié)長(zhǎng)度小于所述固定字節(jié)長(zhǎng)度時(shí),在解碼該幀尾數(shù)據(jù)前,對(duì)幀尾數(shù)據(jù)分段進(jìn)行插0處理,并在解碼后去除插入的全部0,其中,插入0的位置在最后一段有效數(shù)據(jù)之前或該最后一段有效數(shù)據(jù)與最后一個(gè)FEC校驗(yàn)碼之間。
24.如權(quán)利要求23所述的控制方法,其特征在于,所述步驟B1中還包括幀數(shù)據(jù)切分模塊將寫入對(duì)應(yīng)解碼電路的幀尾數(shù)據(jù)分段進(jìn)行插0處理,同時(shí)將插入的0的個(gè)數(shù)通過(guò)一個(gè)延遲模塊延遲發(fā)送給幀數(shù)據(jù)重組模塊,延遲時(shí)間為解碼幀尾數(shù)據(jù)分段所需要的時(shí)間;以及所述步驟B2中還包括幀數(shù)據(jù)重組模塊從對(duì)應(yīng)解碼電路中讀取解碼后的幀尾數(shù)據(jù)分段,并依據(jù)所述插入0的個(gè)數(shù),去除該幀尾數(shù)據(jù)分段中插入的全部0后再重組所述幀數(shù)據(jù)。
25.如權(quán)利要求23所述的控制方法,其特征在于,所述步驟B1中,幀數(shù)據(jù)切分模塊將幀尾數(shù)據(jù)分段寫入對(duì)應(yīng)解碼電路的同時(shí),將應(yīng)該插入的0的個(gè)數(shù)寫入對(duì)應(yīng)解碼電路中,由對(duì)應(yīng)解碼電路對(duì)幀尾數(shù)據(jù)分段進(jìn)行插0處理,并且對(duì)應(yīng)解碼電路將插入的0的個(gè)數(shù)通過(guò)一個(gè)延遲模塊再延遲發(fā)送給幀數(shù)據(jù)重組模塊,延遲時(shí)間為解碼幀尾數(shù)據(jù)分段所需要的時(shí)間;所述步驟B2中還包括幀數(shù)據(jù)重組模塊從對(duì)應(yīng)解碼電路中讀取解碼后的幀尾數(shù)據(jù)分段,并依據(jù)所述插入0的個(gè)數(shù),去除該幀尾數(shù)據(jù)分段中插入的全部0后再重組所述幀數(shù)據(jù)。
26.如權(quán)利要求23所述的控制方法,其特征在于,所述步驟B1中還包括幀數(shù)據(jù)切分模塊對(duì)幀尾數(shù)據(jù)分段進(jìn)行插0處理后再輸入對(duì)應(yīng)解碼電路中;所述步驟B2中還包括幀數(shù)據(jù)重組模塊從對(duì)應(yīng)解碼電路中讀取解碼后的幀尾數(shù)據(jù)分段,根據(jù)所述幀數(shù)據(jù)的傳輸速率確定應(yīng)該插入的0的個(gè)數(shù),并去除該幀尾數(shù)據(jù)分段中插入的全部0后再重組所述幀數(shù)據(jù)。
27.如權(quán)利要求23-25任意之一所述的控制方法,其特征在于,所述幀數(shù)據(jù)為基于RS(255,239)的FEC編碼的幀數(shù)據(jù),所述固定字節(jié)長(zhǎng)度為整數(shù)倍的255個(gè)字節(jié),其中每一段255個(gè)字節(jié)中包含的有效數(shù)據(jù)為239個(gè)字節(jié),校驗(yàn)碼為16個(gè)字節(jié);并且當(dāng)傳輸速率為2.5G時(shí),幀尾數(shù)據(jù)分段中應(yīng)該插入135個(gè)0;當(dāng)傳輸速率為1.25G時(shí),幀尾數(shù)據(jù)分段中應(yīng)該插入195個(gè)0。
全文摘要
本發(fā)明涉及信號(hào)傳輸技術(shù),特別涉及一種前向糾錯(cuò)解碼裝置及控制方法,以解決現(xiàn)有前向糾錯(cuò)差錯(cuò)控制方式在實(shí)際中應(yīng)用時(shí),解碼部分受帶寬限制的問(wèn)題。本發(fā)明提供的前向糾錯(cuò)解碼裝置包括前向糾錯(cuò)FEC解碼電路和幀數(shù)據(jù)切分模塊和幀數(shù)據(jù)重組模塊,F(xiàn)EC解碼電路并行設(shè)置為至少兩路;其中,幀數(shù)據(jù)切分模塊接收基于FEC編碼方式傳輸?shù)膸瑪?shù)據(jù)并根據(jù)固定字節(jié)長(zhǎng)度順序切分每一個(gè)幀數(shù)據(jù),切分出的各數(shù)據(jù)分段分別送入各路FEC解碼電路并行解碼,然后由幀數(shù)據(jù)重組模塊重組所述幀數(shù)據(jù)。本發(fā)明技術(shù)方案消除了FEC差錯(cuò)控制方式時(shí)的帶寬限制問(wèn)題,可以應(yīng)用在GPON網(wǎng)絡(luò)中,實(shí)時(shí)地對(duì)不間斷發(fā)送的下行幀數(shù)據(jù)進(jìn)行解碼。
文檔編號(hào)H04L1/00GK1968036SQ20061008515
公開(kāi)日2007年5月23日 申請(qǐng)日期2006年5月31日 優(yōu)先權(quán)日2006年5月31日
發(fā)明者潘文, 王萬(wàn)萬(wàn), 熊焰 申請(qǐng)人:華為技術(shù)有限公司