專利名稱:Xgpon系統(tǒng)中onu端的xgem組幀裝置及組幀方法
技術(shù)領(lǐng)域:
本發(fā)明涉及XGPON (XG-Passive Optical Network,萬(wàn)兆吉比特?zé)o源光網(wǎng)絡(luò))的接入領(lǐng)域,特別是涉及一種XGPON系統(tǒng)中ONlXOptical Network Unit,光網(wǎng)絡(luò)單元)端的XGEM(XGPON Encapsulation_Method, XGPON封裝模式)組巾貞裝置及組巾貞方法。
背景技術(shù):
寬帶光接入技術(shù)提高和改變著信息傳送和分享的速度、效率、內(nèi)容和模式,從現(xiàn)在的 GPON (Gigabit-Capable Passive Optical Network,吉比特?zé)o源光網(wǎng)絡(luò))到下一代接入網(wǎng)是一個(gè)平滑漸進(jìn)的上升過程,XGPON以其獨(dú)特的經(jīng)濟(jì)高效方式滿足了 IOGbps (Gigabitper second,單位,表示每秒1024兆位)傳輸、向后兼容和接入擴(kuò)展等需求。在XGPON系統(tǒng)的光網(wǎng)絡(luò)單元ONU中,上行數(shù)據(jù)發(fā)送速率是根據(jù)0LT(0ptical LineTermination,光線路終端)下發(fā)帶寬來(lái)決定的。運(yùn)營(yíng)商目前比較注重最大效率的利用帶寬,由于入口數(shù)據(jù)與出口數(shù)據(jù)速率存在偏差,帶寬利用率在90%以上的情況下,容易出現(xiàn)錯(cuò)包、丟包的現(xiàn)象,甚至出現(xiàn)在錯(cuò)誤狀態(tài)不能恢復(fù)正常的現(xiàn)象,穩(wěn)定性較差,因此XGPON難以大規(guī)模投入商用。如何在保證數(shù)據(jù)業(yè)務(wù)穩(wěn)定的情況下最充分的利用帶寬,是XGPON系統(tǒng)的光網(wǎng)絡(luò)單元領(lǐng)域目前亟待解決的技術(shù)難題。
發(fā)明內(nèi)容
本發(fā)明的目的是為了克服上述背景技術(shù)的不足,提供一種XGPON系統(tǒng)中ONU端的XGEM組幀裝置及組幀方法,能夠減少由緩存空滿造成的丟包、錯(cuò)包等現(xiàn)象,實(shí)現(xiàn)在保證數(shù)據(jù)業(yè)務(wù)穩(wěn)定的情況下最充分的利用帶寬。本發(fā)明提供的X GPON系統(tǒng)中ONU端的XGEM組幀裝置,包括8個(gè)相同的、相互獨(dú)立的、并行的TCONT XGEM組幀單元和8個(gè)TCONT XGEM組幀單元共用的TCONT FIFO緩存,TCONT FIFO緩存包括一個(gè)數(shù)據(jù)幀緩存和一個(gè)數(shù)據(jù)幀描述緩存,8個(gè)TCONT XGEM組幀單元共用讀寫信號(hào),數(shù)據(jù)幀緩存用于緩存XGPON系統(tǒng)輸入的數(shù)據(jù)幀,以32字節(jié)為一個(gè)塊進(jìn)行存儲(chǔ),每個(gè)TCONT XGEM組幀單元分別占用該數(shù)據(jù)幀緩存和數(shù)據(jù)幀描述緩存的一個(gè)地址段,通過劃分不同的緩存地址域來(lái)固定分配每個(gè)TCONT XGEM組幀單元的可用緩存塊;數(shù)據(jù)幀描述緩存內(nèi)包括幀頭描述緩存和幀尾描述緩存,幀頭描述緩存用于緩存數(shù)據(jù)幀的幀頭描述信息,幀頭描述信息包括端口地址號(hào)PORT-1D索引、數(shù)據(jù)包的長(zhǎng)度、CRC重算指示和幀頭寫地址;幀尾描述緩存用于緩存數(shù)據(jù)幀的幀尾描述信息,幀尾描述信息包括幀結(jié)束地址、幀尾錯(cuò)誤指示和最后一個(gè)數(shù)據(jù)塊的無(wú)效字節(jié)個(gè)數(shù),幀尾錯(cuò)誤指示包括幀長(zhǎng)錯(cuò)誤、亂序錯(cuò)誤、由緩存已 兩造成的不完整巾貞錯(cuò)誤;每個(gè)獨(dú)立的TCONT XGEM組幀單元均包括順次相連的TCONT FIFO寫控制電路、TCONT FIFO緩存塊和XGEM組幀電路,TCONT FIFO緩存塊包括數(shù)據(jù)幀緩存塊、幀頭描述緩存塊和幀尾描述緩存塊,其中:TCONT FIFO寫控制電路,用于:接收XGPON系統(tǒng)送入的TCONT編號(hào)、上行方向的數(shù)據(jù)幀和數(shù)據(jù)幀描述,將數(shù)據(jù)幀寫入該TCONT編號(hào)對(duì)應(yīng)地址的數(shù)據(jù)幀緩存塊,同時(shí)將數(shù)據(jù)幀描述寫入該TCONT編號(hào)對(duì)應(yīng)地址的數(shù)據(jù)幀描述緩存塊;TCONT FIFO緩存塊,用于:根據(jù)先進(jìn)先出的原則,將寫入的數(shù)據(jù)幀和數(shù)據(jù)幀描述分別存儲(chǔ)到TCONT編號(hào)對(duì)應(yīng)地址的數(shù)據(jù)幀緩存塊和數(shù)據(jù)幀描述緩存塊中;XGEM組幀電路,用于:對(duì)OLT下發(fā)的送入TCONT FIFO緩存塊讀側(cè)的帶寬分配信息進(jìn)行檢測(cè),一旦檢測(cè)到OLT下發(fā)帶寬分配,就從數(shù)據(jù)幀緩存塊和數(shù)據(jù)幀描述緩存塊中讀取相應(yīng)的數(shù)據(jù)幀和數(shù)據(jù)幀描述,按照XGPON協(xié)議要求的格式,組成XGHM幀,發(fā)送給0LT,同時(shí)輸出數(shù)據(jù)包釋放信號(hào),用于向OLT上報(bào)動(dòng)態(tài)帶寬報(bào)告。在上述技術(shù)方案的基礎(chǔ)上,所述TCONT FIFO寫控制電路完成以下功能:幀頭幀尾糾錯(cuò);產(chǎn)生數(shù)據(jù)幀緩存滿告警、亂序錯(cuò)誤告警以及幀長(zhǎng)錯(cuò)誤告警;生成幀頭描述信息,并寫入幀頭描述緩存塊;將數(shù)據(jù)幀寫入數(shù)據(jù)幀緩存塊;在寫側(cè)的幀尾到來(lái)時(shí),將幀結(jié)束地址、錯(cuò)誤告警和無(wú)效字節(jié)個(gè)數(shù)寫入幀尾描述緩存塊中。在上述技術(shù)方案的基礎(chǔ)上,所述TCONT FIFO寫控制電路的實(shí)現(xiàn)過程如下:上行數(shù)據(jù)及該數(shù)據(jù)對(duì)應(yīng)的TCONT ID、該數(shù)據(jù)的幀頭指示、幀尾指示、幀長(zhǎng)和CRC重算指示進(jìn)入XGEM組幀裝置,TCONT FIFO寫控制電路在幀頭到來(lái)時(shí)根據(jù)XGPON系統(tǒng)輸入的相關(guān)信息將PORT-1D索引、數(shù)據(jù)包的長(zhǎng)度、CRC重算指示等寫入到幀頭描述緩存塊中,同時(shí)在將數(shù)據(jù)寫入數(shù)據(jù)幀緩存的過程中判斷是否產(chǎn)生數(shù)據(jù)幀緩存滿告警、亂序錯(cuò)誤告警以及幀長(zhǎng)錯(cuò)誤告警,當(dāng)幀尾到來(lái)時(shí),將幀結(jié)束地址、錯(cuò)誤告警和無(wú)效字節(jié)個(gè)數(shù)寫入到幀尾描述緩存塊中,緩存中寫入的數(shù)據(jù)及描述信息等待XGEM組幀電路讀??;當(dāng)一個(gè)數(shù)據(jù)幀幀頭到來(lái)時(shí),如果緩存已滿,則該幀將被丟棄;當(dāng)數(shù)據(jù)幀幀頭已經(jīng)寫入緩存,幀尾還未寫入時(shí),如果緩存已滿,則將錯(cuò)誤指示寫入幀尾描述緩存塊中,以便XGEM組幀電路計(jì)算該數(shù)據(jù)幀寫入緩存的實(shí)際長(zhǎng)度。在上述技術(shù)方案的基礎(chǔ)上,所述XGEM組幀電路完成以下功能:從幀頭描述緩存塊、幀尾描述緩存塊讀出數(shù)據(jù)幀的幀頭幀尾信息;依據(jù)分配結(jié)構(gòu)信息和數(shù)據(jù)幀長(zhǎng)信息,進(jìn)行XGEM組幀,生成XGEM幀的幀頭信息:P0RT_ID、幀凈荷長(zhǎng)度指示PL1、密鑰索引Key Index,并對(duì)幀頭進(jìn)行HEC校驗(yàn)計(jì)算,生成13bit的HEC校驗(yàn)碼,組成XGEM幀頭;依據(jù)PLI長(zhǎng)度信息,從幀數(shù)據(jù)幀緩存中讀出幀數(shù)據(jù),填充到XGEM幀的凈荷域中;進(jìn)行CRC重算,如果CRC重算使能,對(duì)以太網(wǎng)數(shù)據(jù)幀進(jìn)行CRC重算,替換以太網(wǎng)幀的CRC字節(jié)。在上述技術(shù)方案的基礎(chǔ)上,所述XGEM組幀電路的實(shí)現(xiàn)過程包括以下步驟:先判斷組幀類型,分配XGEM幀占用的帶寬,當(dāng)帶寬分配指示信號(hào)為I時(shí),剩余帶寬=OLT本次帶寬分配值,判斷剩余帶寬是否< 4字節(jié),如果是,則產(chǎn)生超短空閑幀指示,分配超短空閑幀4字節(jié)長(zhǎng)度,剩余帶寬=0 ;否則,判斷剩余帶寬是否< 16字節(jié),如果4字節(jié)<剩余帶寬< 16字節(jié),則產(chǎn)生空閑幀指示,分配空閑幀的凈荷長(zhǎng)度=帶寬分配-8字節(jié),剩余帶寬=0 ;如果剩余帶寬> 16字節(jié),則繼續(xù)判斷剩余幀長(zhǎng)是否=0,如果是,則產(chǎn)生空閑幀指示,空閑幀凈荷長(zhǎng)度=0,剩余帶寬=當(dāng)前剩余帶寬-8字節(jié);否則,繼續(xù)判斷是否存在數(shù)據(jù)幀緩存讀空指示,如果是,則產(chǎn)生空數(shù)據(jù)指示,數(shù)據(jù)幀尾指示,數(shù)據(jù)幀凈荷長(zhǎng)度為8,剩余帶寬=當(dāng)前剩余帶寬-16字節(jié);否則,繼續(xù)判斷當(dāng)前數(shù)據(jù)幀是否已完全寫入數(shù)據(jù)幀緩存;如果當(dāng)前數(shù)據(jù)幀已完全寫入數(shù)據(jù)幀緩存,判斷剩余幀長(zhǎng)是否>剩余帶寬-8字節(jié),如果是,則產(chǎn)生數(shù)據(jù)幀指示和數(shù)據(jù)幀分片指示,數(shù)據(jù)幀凈荷長(zhǎng)度為剩余帶寬-8字節(jié),剩余帶寬=0 ;否則,產(chǎn)生數(shù)據(jù)幀指示和數(shù)據(jù)幀尾指示,數(shù)據(jù)幀凈荷長(zhǎng)度為剩余幀長(zhǎng),剩余帶寬=當(dāng)前剩余帶寬-剩余幀長(zhǎng)-8字節(jié);如果當(dāng)前數(shù)據(jù)幀只有部分寫入數(shù)據(jù)幀緩存,則判斷已寫入數(shù)據(jù)幀緩存的數(shù)據(jù)幀長(zhǎng)是否<剩余帶寬-8字節(jié),如果已寫入數(shù)據(jù)幀緩存的數(shù)據(jù)幀長(zhǎng)>剩余帶寬-8字節(jié),則產(chǎn)生數(shù)據(jù)幀指示和數(shù)據(jù)幀分片指示,數(shù)據(jù)幀凈荷長(zhǎng)度為剩余帶寬-8字節(jié),剩余帶寬=0 ;如果已寫入數(shù)據(jù)幀緩存的數(shù)據(jù)幀長(zhǎng)<剩余帶寬-8字節(jié),則判斷寫入數(shù)據(jù)幀緩存的數(shù)據(jù)幀長(zhǎng)是否<預(yù)先設(shè)定的發(fā)送門限,如果是,則產(chǎn)生空閑幀指示,空閑幀凈荷長(zhǎng)度=0,剩余帶寬=當(dāng)前剩余帶寬-8字節(jié);否則,繼續(xù)判斷剩余幀長(zhǎng)是否>剩余帶寬-8字節(jié),如果是,則產(chǎn)生數(shù)據(jù)幀指示和數(shù)據(jù)幀分片指示,數(shù)據(jù)幀凈荷長(zhǎng)度為剩余帶寬-8字節(jié),剩余帶寬=0 ;否則,產(chǎn)生數(shù)據(jù)幀指示和數(shù)據(jù)幀尾指示,數(shù)據(jù)幀凈荷長(zhǎng)度為剩余幀長(zhǎng),剩余帶寬=當(dāng)前剩余帶寬-剩余幀長(zhǎng)-8字節(jié)。在上述技術(shù)方案的基礎(chǔ)上,所述XGEM組幀電路的實(shí)現(xiàn)過程還包括以下步驟:組幀類型判斷完畢后發(fā)送XGEM幀,首先發(fā)送XGEM幀頭,XGEM幀頭由幀凈荷長(zhǎng)度指示PL1、密鑰索引Key Index、Port_ID、分片幀幀尾指示LF和HEC校驗(yàn)字節(jié)共8個(gè)字節(jié)組成,根據(jù)幀類型指示和幀凈荷長(zhǎng)度指示,對(duì)幀頭信息進(jìn)行HEC校驗(yàn)計(jì)算,生成13bit的HEC校驗(yàn)碼,組成XGEM幀頭;如果幀類型指示為超短空閑幀,則無(wú)幀頭,發(fā)送四個(gè)字節(jié)全零數(shù)據(jù);如果幀類型指示為空閑巾貞,貝1J置Key Index=O, Port-1D=16’ hffff, LF=I ;如果巾貞類型指示為數(shù)據(jù)巾貞,貝丨J根據(jù)Port-1D索引查表得出加密使能,Port-1D分別寫入幀頭信息中去;然后根據(jù)幀類型指示發(fā)送數(shù)據(jù)幀:如果幀類型指示為空閑幀,則根據(jù)空閑幀填充字節(jié)配置發(fā)送;如果幀類型指示為數(shù)據(jù)幀,則讀取數(shù)據(jù)幀緩存中的數(shù)據(jù)幀并發(fā)送,發(fā)送數(shù)據(jù)時(shí)讀取數(shù)據(jù)幀描述緩存塊中的CRC重算使能,判斷CRC重算使能為I還是為0,如果CRC重算使能為1,則對(duì)數(shù)據(jù)幀進(jìn)行CRC重算;如果CRC重算使能為0,則進(jìn)行透?jìng)鳌T谏鲜黾夹g(shù)方案的基礎(chǔ)上,所述XGEM組幀裝置是一個(gè)跨時(shí)鐘域的裝置,TCONTFIFO緩存塊的寫側(cè)及寫側(cè)輸入信號(hào)屬于系統(tǒng)時(shí)鐘域,TCONT FIFO緩存塊的讀側(cè)及讀側(cè)輸入信號(hào)屬于PON 口發(fā)送時(shí)鐘域。在上述技術(shù)方案的基礎(chǔ)上,所述上行方向的數(shù)據(jù)幀和數(shù)據(jù)幀描述共用一套數(shù)據(jù)總線,分別進(jìn)入XGEM組幀裝置的8個(gè)TCONT XGEM組幀單元中,每個(gè)時(shí)刻進(jìn)入的每個(gè)數(shù)據(jù)塊只屬于一個(gè)TCONT XGEM組幀單元;0LT通過一套總線給每個(gè)分配地址分配帶寬信息,每個(gè)時(shí)刻分配的帶寬信息也只屬于一個(gè)TCONT XGEM組幀單元,各個(gè)TCONT XGEM組幀單元重組的數(shù)據(jù)流按照時(shí)間先后串行,輸出符合XGPON協(xié)議要求的XGEM幀。在上述技術(shù)方案的基礎(chǔ)上,所述在每個(gè)TCONT XGEM組幀單元的帶寬分配未到之前,如果出現(xiàn)多個(gè)TCONT XGEM組幀單元同時(shí)讀取緩存數(shù)據(jù)的現(xiàn)象,TCONT FIFO緩存塊優(yōu)先處理當(dāng)前有帶寬分配的TCONT XGEM組幀單元的讀請(qǐng)求。本發(fā)明還提供一種基于上述XGEM組幀裝置的XGPON系統(tǒng)中ONU端的XGEM組幀方法,包括以下步驟:A,XGPON系統(tǒng)送入的TCONT編號(hào)、上行方向的數(shù)據(jù)幀和數(shù)據(jù)幀描述進(jìn)入XGEM組幀裝置后,XGEM組幀裝置將數(shù)據(jù)幀寫入該TCONT編號(hào)對(duì)應(yīng)地址的數(shù)據(jù)幀緩存塊,同時(shí)將數(shù)據(jù)幀描述寫入該TCONT編號(hào)對(duì)應(yīng)地址的數(shù)據(jù)幀描述緩存塊;當(dāng)出現(xiàn)幀錯(cuò)誤指示時(shí),寫入緩存的數(shù)據(jù)幀實(shí)際長(zhǎng)度根據(jù)當(dāng)前數(shù)據(jù)幀的幀尾在數(shù)據(jù)幀緩存中的地址與上一數(shù)據(jù)幀的幀尾在數(shù)據(jù)幀緩存中的地址來(lái)計(jì)算;
B、當(dāng)檢測(cè)到OLT分配給XGEM組幀裝置中的某個(gè)TCONT XGEM組幀單元的上行帶寬時(shí),判斷數(shù)據(jù)幀緩存塊和數(shù)據(jù)幀描述緩存塊是否為空,根據(jù)數(shù)據(jù)幀緩存塊和數(shù)據(jù)幀描述緩存塊的相關(guān)信息,計(jì)算出待發(fā)送數(shù)據(jù)幀的剩余長(zhǎng)度:如果幀頭描述信息未采集,剩余長(zhǎng)度=數(shù)據(jù)幀的長(zhǎng)度;如果幀頭描述信息已采集而幀尾描述信息未采集,剩余長(zhǎng)度=數(shù)據(jù)幀的長(zhǎng)度-已發(fā)送的長(zhǎng)度;當(dāng)OLT沒下發(fā)帶寬分配且?guī)^描述緩存塊不為空時(shí),讀取首個(gè)幀頭描述,以便提前計(jì)算剩余幀長(zhǎng),等待帶寬分配;當(dāng)XGEM組幀裝置分配到了帶寬時(shí),在上一 XGEM幀未發(fā)送完時(shí)提前讀取新的幀頭描述;給當(dāng)前有帶寬分配的TCONT XGEM組幀單元打上讀優(yōu)先級(jí)最高的標(biāo)記,當(dāng)檢測(cè)到其他TCONT XGEM組幀單元的優(yōu)先級(jí)最高的標(biāo)記時(shí),當(dāng)前TCONTXGEM組幀單元等到下一拍再讀取數(shù)據(jù)幀描述緩存塊;C、根據(jù)下發(fā)帶寬的字節(jié)長(zhǎng)度、數(shù)據(jù)幀的剩余長(zhǎng)度和預(yù)先設(shè)定的發(fā)送門限進(jìn)行組幀,組幀時(shí)要求數(shù)據(jù)幀的長(zhǎng)度> 16字節(jié),4字節(jié)< OLT下發(fā)帶寬< 16字節(jié)時(shí),發(fā)送空閑幀;如果剩余帶寬< 4字節(jié),則產(chǎn)生超短空閑幀指示;如果剩余幀長(zhǎng)+8字節(jié) < 帶寬分配,則該數(shù)據(jù)幀在本次分配中發(fā)送完畢;反之,則該數(shù)據(jù)幀被分片,分片長(zhǎng)度=帶寬分配;D、如果判定數(shù)據(jù)幀緩存塊為空,則根據(jù)XGPON協(xié)議要求發(fā)送空閑幀;如果數(shù)據(jù)幀還沒完全寫入緩存且寫入緩存的數(shù)據(jù)沒有達(dá)到發(fā)送門限,則根據(jù)XGPON協(xié)議要求發(fā)送空閑幀;數(shù)據(jù)幀緩存塊中的數(shù)據(jù)長(zhǎng)度<發(fā)送門限時(shí),等待緩存寫入數(shù)據(jù);E、如果判定數(shù)據(jù)幀緩存塊不為空且寫入緩存的數(shù)據(jù)已達(dá)到發(fā)送門限,則讀取緩存數(shù)據(jù),并按照XGEM幀格式組幀、發(fā)送;如果數(shù)據(jù)幀已完全寫入緩存,則正常組幀發(fā)送;如果數(shù)據(jù)幀部分寫入緩存,緩存中的數(shù)據(jù)內(nèi)容已被發(fā)送完畢,而沒有新的數(shù)據(jù)內(nèi)容寫入,出現(xiàn)了讀空現(xiàn)象,則根據(jù)讀空現(xiàn)象出現(xiàn)的位置來(lái)計(jì)算數(shù)據(jù)幀長(zhǎng)度,如果讀空現(xiàn)象出現(xiàn)在數(shù)據(jù)幀分片的第一片,根據(jù)XGPON協(xié)議4字節(jié)補(bǔ)齊,填充數(shù)據(jù)內(nèi)容為O;如果讀空現(xiàn)象出現(xiàn)在數(shù)據(jù)幀分片的第二片,則根據(jù)XGPON協(xié)議發(fā)送最小長(zhǎng)度的數(shù)據(jù)幀,即PLI為8字節(jié)的數(shù)據(jù)幀,填充數(shù)據(jù)內(nèi)容為O。與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)如下:本發(fā)明能夠減少由緩存空滿造成的丟包、錯(cuò)包等現(xiàn)象,實(shí)現(xiàn)在保證數(shù)據(jù)業(yè)務(wù)穩(wěn)定的情況下最充分的利用帶寬。
圖1是本發(fā)明實(shí)施例中XGEM組幀裝置的整體結(jié)構(gòu)框圖。圖2是本發(fā)明實(shí)施例中TCONT XGEM組幀單元的信號(hào)流向示意圖。圖3是本發(fā)明實(shí)施例中TCONT XGEM組幀單元的結(jié)構(gòu)框圖。
具體實(shí)施例方式下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)描述。參見圖1所示,本發(fā)明實(shí)施例提供一種XGPON系統(tǒng)中ONU端的XGEM組幀裝置,包括8個(gè)相同的、相互獨(dú)立的、并行的TCONT (Transmission Container,傳輸容器)XGEM組中貞單元和8個(gè)TCONT XGEM組幀單元共用的TCONT FIFO緩存,TCONT FIFO緩存包括一個(gè)數(shù)據(jù)幀緩存和一個(gè)數(shù)據(jù)幀描述緩存,TCONT是XGPON協(xié)議中規(guī)定的一種傳輸容器,TCONT FIFO緩存是用來(lái)實(shí)現(xiàn)TCONT的實(shí)際電路,8個(gè)TCONT XGEM組幀單元的結(jié)構(gòu)、實(shí)現(xiàn)功能均相同,均獨(dú)立完成數(shù)據(jù)的適配與重組。數(shù)據(jù)幀緩存用于緩存XGPON系統(tǒng)輸入的數(shù)據(jù)幀,以32字節(jié)為一個(gè)塊進(jìn)行存儲(chǔ),每個(gè)TCONT XGEM組幀單元分別占用該數(shù)據(jù)幀緩存和數(shù)據(jù)幀描述緩存的一個(gè)地址段,通過劃分不同的緩存地址域來(lái)固定分配每個(gè)TCONT XGEM組幀單元的可用緩存塊,8個(gè)TCONT XGEM組幀單元共用讀寫信號(hào)。數(shù)據(jù)幀描述緩存內(nèi)包括幀頭描述緩存和幀尾描述緩存,幀頭描述緩存用于緩存數(shù)據(jù)幀的幀頭描述信息,幀頭描述信息包括PORT-1D (端口地址號(hào))索引、數(shù)據(jù)包的長(zhǎng)度、CRC (Cyclic Redundancy Check,循環(huán)冗余校驗(yàn))重算指示和中貞頭寫地址,幀尾描述緩存用于緩存數(shù)據(jù)幀的幀尾描述信息,幀尾描述信息包括幀結(jié)束地址、幀尾錯(cuò)誤指示和最后一個(gè)數(shù)據(jù)塊的無(wú)效字節(jié)個(gè)數(shù),幀尾錯(cuò)誤指示包括幀長(zhǎng)錯(cuò)誤、亂序錯(cuò)誤、由緩存已滿造成的不完整幀錯(cuò)誤。參見圖1和圖2所示,每個(gè)獨(dú)立的TCONT XGEM組幀單元均包括順次相連的TCONTFIFO (First Input First Output,先入先出隊(duì)列)寫控制電路、TCONT FIFO緩存塊和XGEM組幀電路,參見圖3所示,TCONT FIFO緩存塊包括數(shù)據(jù)幀緩存塊、幀頭描述緩存塊和幀尾描述緩存塊。TCONT FIFO寫控制電路,用于:接收XGPON系統(tǒng)送入的TCONT編號(hào)、上行方向的數(shù)據(jù)幀和數(shù)據(jù)幀描述,將數(shù)據(jù)幀寫入該TCONT編號(hào)對(duì)應(yīng)地址的數(shù)據(jù)幀緩存塊,同時(shí)將數(shù)據(jù)幀描述寫入該TCONT編號(hào)對(duì)應(yīng)地址的數(shù)據(jù)幀描述緩存塊,圖1中的箭頭指示方向表示上行數(shù)據(jù)的流向。TCONT FIFO緩存塊,用于:根據(jù)先進(jìn)先出的原則,將寫入的數(shù)據(jù)幀和數(shù)據(jù)幀描述分別存儲(chǔ)到TCONT編號(hào)對(duì)應(yīng)地址的數(shù)據(jù)幀緩存塊和數(shù)據(jù)幀描述緩存塊中。XGEM組幀電路(TCONT FIFO緩存塊讀側(cè)的電路),用于:對(duì)OLT下發(fā)的送入TCONTFIFO緩存塊讀側(cè)的帶寬分配信息進(jìn)行檢測(cè),一旦檢測(cè)到OLT下發(fā)帶寬分配,XGEM組幀電路就從數(shù)據(jù)幀緩存塊和數(shù)據(jù)幀描述緩存塊中讀取相應(yīng)的數(shù)據(jù)幀和數(shù)據(jù)幀描述,按照XGPON協(xié)議要求的格式,組成XGEM幀,發(fā)送給0LT,同時(shí)輸出數(shù)據(jù)包釋放信號(hào),用于向OLT上報(bào)DBRu(Dynamic Bandwidth Report upstream,動(dòng)態(tài)帶寬報(bào)告)。需要注意的是,XGBl組幀裝置是一個(gè)跨時(shí)鐘域的裝置,參見圖2所示,TCONT FIFO緩存塊的寫側(cè)及寫側(cè)輸入信號(hào)屬于系統(tǒng)時(shí)鐘域,TCONT FIFO緩存塊的讀側(cè)及讀側(cè)輸入信號(hào)屬于PON 口發(fā)送時(shí)鐘域。上行方向的數(shù)據(jù)幀和數(shù)據(jù)幀描述共用一套數(shù)據(jù)總線,分別進(jìn)入XGEM組幀裝置的8個(gè)TCONT XGEM組幀單元中,每個(gè)時(shí)刻進(jìn)入的每個(gè)數(shù)據(jù)塊只屬于一個(gè)TCONT XGEM組幀單元,因此不存在寫沖突。OLT通過一套總線給每個(gè)ALL0C_ID (分配地址)分配帶寬信息,每個(gè)時(shí)刻分配的帶寬信息也只屬于一個(gè)TCONT XGEM組幀單元,各個(gè)TCONT XGEM組幀單元重組的數(shù)據(jù)流按照時(shí)間先后串行,輸出符合XGPON協(xié)議要求的XGEM幀,因此不存在沖突。為了提高效率,在每個(gè)TCONT XGBl組幀單元的帶寬分配未到之前,需要提前讀取一幀數(shù)據(jù)做好準(zhǔn)備,因此在讀側(cè)引入了避免讀沖突的機(jī)制:如果出現(xiàn)多個(gè)TCONT XGEM組幀單元同時(shí)讀取緩存數(shù)據(jù)的現(xiàn)象,TCONT FIFO緩存塊優(yōu)先處理當(dāng)前有帶寬分配的TCONT XGEM組中貞單元的讀請(qǐng)求。下面以單個(gè)TCONT XGEM組幀單元為例進(jìn)行詳細(xì)說明。參見圖3所示,TCONT FIFO寫控制電路主要完成以下功能:(I)幀頭幀尾糾錯(cuò)。
(2)產(chǎn)生數(shù)據(jù)幀緩存滿告警、亂序錯(cuò)誤告警以及幀長(zhǎng)錯(cuò)誤告警。(3)生成幀頭描述信息,并寫入幀頭描述緩存塊。(4)將數(shù)據(jù)幀寫入數(shù)據(jù)幀緩存塊。(5)在寫側(cè)的幀尾到來(lái)時(shí),將幀結(jié)束地址、錯(cuò)誤告警和無(wú)效字節(jié)個(gè)數(shù)寫入幀尾描述緩存塊中。具體的實(shí)現(xiàn)過程如下:上行數(shù)據(jù)及該數(shù)據(jù)對(duì)應(yīng)的TCONT ID、該數(shù)據(jù)的幀頭指示、幀尾指示、幀長(zhǎng)和CRC重算指示進(jìn)入XGEM組幀裝置,TCONT FIFO寫控制電路在幀頭到來(lái)時(shí)根據(jù)XGPON系統(tǒng)輸入的相關(guān)信息將PORT-1D索引、數(shù)據(jù)包的長(zhǎng)度、CRC重算指示等寫入到幀頭描述緩存塊中,同時(shí)在將數(shù)據(jù)寫入數(shù)據(jù)幀緩存的過程中判斷是否產(chǎn)生數(shù)據(jù)幀緩存滿告警、亂序錯(cuò)誤告警以及幀長(zhǎng)錯(cuò)誤告警,當(dāng)幀尾到來(lái)時(shí),將幀結(jié)束地址、錯(cuò)誤告警和無(wú)效字節(jié)個(gè)數(shù)寫入到幀尾描述緩存塊中,緩存中寫入的數(shù)據(jù)及描述信息等待XGEM組幀電路讀取。需要特別指出的是,當(dāng)一個(gè)數(shù)據(jù)幀幀頭到來(lái)時(shí),如果緩存已滿,則該幀將被丟棄;當(dāng)數(shù)據(jù)幀幀頭已經(jīng)寫入緩存,幀尾還未寫入時(shí),如果緩存已滿,則將錯(cuò)誤指示寫入幀尾描述緩存塊中,以便XGEM組幀電路計(jì)算該數(shù)據(jù)幀寫入緩存的實(shí)際長(zhǎng)度。 本發(fā)明實(shí)施例的關(guān)鍵是XGEM組幀電路(TCONT FIFO的讀控制電路),XGEM組幀電路王要完成以下功能:(I)從幀頭描述緩存塊、幀尾描述緩存塊讀出數(shù)據(jù)幀的幀頭幀尾信息。(2)依據(jù)ALLOC分配結(jié)構(gòu)信息和數(shù)據(jù)幀長(zhǎng)信息,進(jìn)行XGEM組幀,生成XGEM幀的幀頭信息:P0RT_ID、PLI (Payload Length Indicator,巾貞凈荷長(zhǎng)度指不)、Key Index (密鑰索引),并對(duì)巾貞頭進(jìn)行HEC (Hybrid Error Correction,混合糾錯(cuò))校驗(yàn)計(jì)算,生成13bit的HEC校驗(yàn)碼,組成XGEM幀頭。(3)依據(jù)PLI長(zhǎng)度信息,從幀數(shù)據(jù)幀緩存中讀出幀數(shù)據(jù),填充到XGEM幀的PAYLOAD(凈荷)域中。(4)進(jìn)行CRC重算,如果CRC重算使能,需要對(duì)以太網(wǎng)數(shù)據(jù)幀進(jìn)行CRC重算,替換以太網(wǎng)幀的CRC字節(jié)。具體的實(shí)現(xiàn)過程如下:先判斷組幀類型,分配XGEM幀占用的帶寬,當(dāng)帶寬分配指示信號(hào)為I時(shí),剩余帶寬=OLT本次帶寬分配值,判斷剩余帶寬是否彡4字節(jié),如果是,則產(chǎn)生超短空閑幀(shortidle)指示,分配超短空閑幀4字節(jié)長(zhǎng)度,剩余帶寬=0 ;否則,判斷剩余帶寬是否< 16字節(jié),如果4字節(jié)<剩余帶寬< 16字節(jié),則產(chǎn)生空閑幀(idle)指示,由于XGEM幀頭長(zhǎng)8字節(jié),分配空閑幀的凈荷長(zhǎng)度=帶寬分配-8字節(jié),剩余帶寬=0 ;如果剩余帶寬> 16字節(jié),則繼續(xù)判斷剩余幀長(zhǎng)是否=0,如果是,說明當(dāng)前數(shù)據(jù)幀緩存中沒有數(shù)據(jù)可以發(fā)送,則產(chǎn)生空閑幀指示,空閑幀凈荷長(zhǎng)度=0,剩余帶寬=當(dāng)前剩余帶寬-8字節(jié);否則,繼續(xù)判斷是否存在數(shù)據(jù)幀緩存讀空指示,如果是,說明該數(shù)據(jù)幀已發(fā)送部分?jǐn)?shù)據(jù),未發(fā)送的數(shù)據(jù)還沒寫入緩存,出現(xiàn)了讀空現(xiàn)象,則產(chǎn)生空數(shù)據(jù)指示,數(shù)據(jù)幀尾指示,數(shù)據(jù)幀凈荷長(zhǎng)度為8,剩余帶寬=當(dāng)前剩余帶寬-16字節(jié);否則,說明當(dāng)前數(shù)據(jù)幀緩存中有數(shù)據(jù)可以發(fā)送,繼續(xù)判斷當(dāng)前數(shù)據(jù)幀是否已完全寫入數(shù)據(jù)幀緩存。如果當(dāng)前數(shù)據(jù)幀已完全寫入數(shù)據(jù)幀緩存,判斷剩余幀長(zhǎng)是否>剩余帶寬-8字節(jié),如果是,說明剩余帶寬不夠發(fā)送完整的數(shù)據(jù)幀,該數(shù)據(jù)幀被分片,則產(chǎn)生數(shù)據(jù)幀指示和數(shù)據(jù)幀分片指示,數(shù)據(jù)幀凈荷長(zhǎng)度為剩余帶寬-8字節(jié),剩余帶寬=O ;否則,說明當(dāng)前數(shù)據(jù)幀可以完全發(fā)送,則產(chǎn)生數(shù)據(jù)幀指示和數(shù)據(jù)幀尾指示,數(shù)據(jù)幀凈荷長(zhǎng)度為剩余幀長(zhǎng),剩余帶寬=當(dāng)前剩余帶寬-剩余幀長(zhǎng)-8字節(jié)。如果當(dāng)前數(shù)據(jù)幀只有部分寫入數(shù)據(jù)幀緩存,則判斷已寫入數(shù)據(jù)幀緩存的數(shù)據(jù)幀長(zhǎng)是否<剩余帶寬-8字節(jié),如果已寫入數(shù)據(jù)幀緩存的數(shù)據(jù)幀長(zhǎng)>剩余帶寬-8字節(jié),說明剩余帶寬不夠發(fā)送完整的數(shù)據(jù)幀,該數(shù)據(jù)幀被分片,產(chǎn)生數(shù)據(jù)幀指示和數(shù)據(jù)幀分片指示,數(shù)據(jù)幀凈荷長(zhǎng)度為剩余帶寬-8字節(jié),剩余帶寬=0 ;如果已寫入數(shù)據(jù)幀緩存的數(shù)據(jù)幀長(zhǎng)<剩余帶寬-8字節(jié),則判斷寫入數(shù)據(jù)幀緩存的數(shù)據(jù)幀長(zhǎng)是否<預(yù)先設(shè)定的發(fā)送門限,如果是,則產(chǎn)生空閑巾貞指示,空閑巾貞凈荷長(zhǎng)度=0,剩余帶寬=當(dāng)前剩余帶寬-8字節(jié);否則,繼續(xù)判斷剩余幀長(zhǎng)是否>剩余帶寬-8字節(jié),如果是,說明剩余帶寬不夠發(fā)送完整的數(shù)據(jù)幀,該數(shù)據(jù)幀被分片,則產(chǎn)生數(shù)據(jù)幀指示和數(shù)據(jù)幀分片指示,數(shù)據(jù)幀凈荷長(zhǎng)度為剩余帶寬-8字節(jié),剩余帶寬=0 ;否則,說明當(dāng)前數(shù)據(jù)幀可以完全發(fā)送,產(chǎn)生數(shù)據(jù)幀指示和數(shù)據(jù)幀尾指示,數(shù)據(jù)幀凈荷長(zhǎng)度為剩余幀長(zhǎng),剩余帶寬=當(dāng)前剩余帶寬-剩余幀長(zhǎng)-8字節(jié)。組幀類型判斷完畢后發(fā)送XGEM幀,首先發(fā)送XGEM幀頭,XGEM幀頭由PL1、KeyIndex (密鑰索引)、Port_ID、LF (Last fragment,分片巾貞巾貞尾指示)和HEC校驗(yàn)字節(jié)共8個(gè)字節(jié)組成,根據(jù)幀類型指示和幀凈荷長(zhǎng)度指示,對(duì)幀頭信息進(jìn)行HEC校驗(yàn)計(jì)算,生成13bit的HEC校驗(yàn)碼,組成XGEM幀頭。如果幀類型指示為超短空閑幀,則無(wú)幀頭,發(fā)送四個(gè)字節(jié)全零數(shù)據(jù);如果巾貞類型指示為空閑巾貞,貝1J置Key Index=O, Port_ID=16’ hffff, LF=I ;如果中貞類型指示為數(shù)據(jù)幀,則根據(jù)Port-1D索引查表得出加密使能,Port-1D分別寫入幀頭信息中去。然后根據(jù)幀類型指示發(fā)送數(shù)據(jù)幀:如果幀類型指示為空閑幀,則根據(jù)空閑幀填充字節(jié)(默認(rèn)為O)配置發(fā)送;如果幀類型指示為數(shù)據(jù)幀,則讀取數(shù)據(jù)幀緩存中的數(shù)據(jù)幀并發(fā)送,發(fā)送數(shù)據(jù)時(shí)讀取數(shù)據(jù)幀描述緩存塊中的CRC重算使能,判斷CRC重算使能為I還是為0,如果CRC重算使能為1,則對(duì)數(shù)據(jù)幀進(jìn)行CRC重算;如果CRC重算使能為0,則進(jìn)行透?jìng)鳌;谏鲜鯴GEM組幀裝置,本發(fā)明實(shí)施例還提供一種XGPON系統(tǒng)中ONU端的XGEM組幀方法,包括以下步驟:A,XGPON系統(tǒng)送入的TCONT編號(hào)、上行方向的數(shù)據(jù)幀和數(shù)據(jù)幀描述進(jìn)入XGEM組幀裝置后,XGEM組幀裝置將數(shù)據(jù)幀寫入該TCONT編號(hào)對(duì)應(yīng)地址的數(shù)據(jù)幀緩存塊,同時(shí)將數(shù)據(jù)幀描述寫入該TCONT編號(hào)對(duì)應(yīng)地址的數(shù)據(jù)幀描述緩存塊;當(dāng)出現(xiàn)幀錯(cuò)誤指示時(shí),幀頭描述緩存塊中的數(shù)據(jù)包長(zhǎng)度已失效,不能指示寫入緩存的數(shù)據(jù)幀實(shí)際長(zhǎng)度,寫入緩存的數(shù)據(jù)幀實(shí)際長(zhǎng)度應(yīng)該根據(jù)當(dāng)前數(shù)據(jù)幀的幀尾在數(shù)據(jù)幀緩存中的地址與上一數(shù)據(jù)幀的幀尾在數(shù)據(jù)幀緩存中的地址來(lái)計(jì)算。B、當(dāng)檢測(cè)到OLT分配給XGEM組幀裝置中的某個(gè)TCONT XGEM組幀單元的上行帶寬時(shí),判斷數(shù)據(jù)幀緩存塊和數(shù)據(jù)幀描述緩存塊是否為空,根據(jù)數(shù)據(jù)幀緩存塊和數(shù)據(jù)幀描述緩存塊的相關(guān)信息,計(jì)算出待發(fā)送數(shù)據(jù)幀的剩余長(zhǎng)度:如果幀頭描述信息未采集,表示完整的數(shù)據(jù)幀還沒有發(fā)送出去,剩余長(zhǎng)度=數(shù)據(jù)幀的長(zhǎng)度;如果幀頭描述信息已采集而幀尾描述信息未采集,表示數(shù)據(jù)幀已經(jīng)被分片,在上次帶寬分配中發(fā)送了一部分,剩余長(zhǎng)度=數(shù)據(jù)幀的長(zhǎng)度-已發(fā)送的長(zhǎng)度;當(dāng)OLT沒下發(fā)帶寬分配且?guī)^描述緩存塊不為空時(shí),讀取首個(gè)幀頭描述,以便提前計(jì)算剩余幀長(zhǎng),等待帶寬分配;當(dāng)XGEM組幀裝置分配到了帶寬時(shí),在上一 XGEM幀未發(fā)送完時(shí)提前讀取新的幀頭描述。為避免讀沖突,給當(dāng)前有帶寬分配的TCONTXGEM組幀單元打上讀優(yōu)先級(jí)最高的標(biāo)記,當(dāng)檢測(cè)到其他TCONT XGEM組幀單元的優(yōu)先級(jí)最高的標(biāo)記時(shí),當(dāng)前TCONT XGEM組幀單元就等到下一拍再讀取數(shù)據(jù)幀描述緩存塊。C、根據(jù)下發(fā)帶寬的字節(jié)長(zhǎng)度、數(shù)據(jù)幀的剩余長(zhǎng)度和預(yù)先設(shè)定的發(fā)送門限進(jìn)行組幀,組幀時(shí)要求數(shù)據(jù)幀的長(zhǎng)度≥16字節(jié)(含8字節(jié)長(zhǎng)的XGEM幀頭),4字節(jié)< OLT下發(fā)帶寬< 16字節(jié)時(shí)只能發(fā)送空閑幀,為了最大限度的利用帶寬,在發(fā)送空閑幀時(shí),發(fā)送最小長(zhǎng)度的空閑幀,即只有XGEM幀頭,PLI=O的空閑幀;如果剩余帶寬彡4字節(jié),則產(chǎn)生超短空閑幀指示;如果剩余幀長(zhǎng)+8字節(jié)<帶寬分配,則該數(shù)據(jù)幀在本次分配中發(fā)送完畢;反之,則該數(shù)據(jù)中貞被分片,分片長(zhǎng)度=帶寬分配。D、如果判定數(shù)據(jù)幀緩存塊為空,則根據(jù)XGPON協(xié)議要求發(fā)送空閑幀;如果數(shù)據(jù)幀還沒完全寫入緩存且寫入緩存的數(shù)據(jù)沒有達(dá)到發(fā)送門限,則根據(jù)XGPON協(xié)議要求發(fā)送空閑幀。注意:數(shù)據(jù)幀緩存塊中的數(shù)據(jù)長(zhǎng)度>發(fā)送門限時(shí),才允許組幀發(fā)送,數(shù)據(jù)幀緩存塊中的數(shù)據(jù)長(zhǎng)度 < 發(fā)送門限時(shí),等待緩存寫入數(shù)據(jù)。通過調(diào)節(jié)發(fā)送門限的值,可以避免或減少在入口速率<出口速率的情況下出現(xiàn)的讀空現(xiàn)象。E、如果判定數(shù)據(jù)幀緩存塊不為空且寫入緩存的數(shù)據(jù)已達(dá)到發(fā)送門限,則讀取緩存數(shù)據(jù),并按照XGEM幀格式組幀、發(fā)送;如果數(shù)據(jù)幀已完全寫入緩存,則正常組幀發(fā)送;如果數(shù)據(jù)幀部分寫入緩存,緩存中的數(shù)據(jù)內(nèi)容已被發(fā)送完畢,而沒有新的數(shù)據(jù)內(nèi)容寫入,出現(xiàn)了讀空現(xiàn)象,為了保證帶寬不被浪費(fèi),數(shù)據(jù)幀長(zhǎng)度不再等于數(shù)據(jù)幀實(shí)際長(zhǎng)度,而是根據(jù)讀空現(xiàn)象出現(xiàn)的位置來(lái)計(jì)算。如果讀空現(xiàn)象出現(xiàn)在數(shù)據(jù)幀分片的第一片,根據(jù)XGPON協(xié)議4字節(jié)補(bǔ)齊,填充數(shù)據(jù)內(nèi)容為O ;如果讀空現(xiàn)象出現(xiàn)在數(shù)據(jù)幀分片的第二片,則根據(jù)XGPON協(xié)議發(fā)送最小長(zhǎng)度的數(shù)據(jù)幀,即PLI為8字節(jié)的數(shù)據(jù)幀,填充數(shù)據(jù)內(nèi)容為O。以上所述的XGPON系統(tǒng)中ONU端的XGEM組幀方法已經(jīng)在我公司自主研發(fā)的XGPONONU的FPGA驗(yàn)證板上得到驗(yàn)證,能夠?qū)崿F(xiàn)。本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明實(shí)施例進(jìn)行各種修改和變型,倘若這些修改和變型屬在本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則這些修改和變型也在本發(fā)明的保護(hù)范圍之內(nèi)。說明書中未詳細(xì)描述的內(nèi)容為本領(lǐng)域技術(shù)人員公知的現(xiàn)有技術(shù)。
權(quán)利要求
1.一種XGPON系統(tǒng)中ONU端的XGEM組幀裝置,其特征在于:包括8個(gè)相同的、相互獨(dú)立的、并行的TCONT XGEM組幀單元和8個(gè)TCONT XGEM組幀單元共用的TCONT FIFO緩存,TCONT FIFO緩存包括一個(gè)數(shù)據(jù)幀緩存和一個(gè)數(shù)據(jù)幀描述緩存,8個(gè)TCONT XGEM組幀單元共用讀寫信號(hào),數(shù)據(jù)幀緩存用于緩存XGPON系統(tǒng)輸入的數(shù)據(jù)幀,以32字節(jié)為一個(gè)塊進(jìn)行存儲(chǔ),每個(gè)TCONT XGEM組幀單元分別占用該數(shù)據(jù)幀緩存和數(shù)據(jù)幀描述緩存的一個(gè)地址段,通過劃分不同的緩存地址域來(lái)固定分配每個(gè)TCONT XGEM組幀單元的可用緩存塊;數(shù)據(jù)幀描述緩存內(nèi)包括幀頭描述緩存和幀尾描述緩存,幀頭描述緩存用于緩存數(shù)據(jù)幀的幀頭描述信息,幀頭描述信息包括端口地址號(hào)PORT-1D索引、數(shù)據(jù)包的長(zhǎng)度、CRC重算指示和幀頭寫地址;幀尾描述緩存用于緩存數(shù)據(jù)幀的幀尾描述信息,幀尾描述信息包括幀結(jié)束地址、幀尾錯(cuò)誤指示和最后一個(gè)數(shù)據(jù)塊的無(wú)效字節(jié)個(gè)數(shù),幀尾錯(cuò)誤指示包括幀長(zhǎng)錯(cuò)誤、亂序錯(cuò)誤、由緩存已 兩造成的不完整巾貞錯(cuò)誤; 每個(gè)獨(dú)立的TCONT XGEM組幀單元均包括順次相連的TCONT FIFO寫控制電路、TCONTFIFO緩存塊和XGEM組幀電路,TCONT FIFO緩存塊包括數(shù)據(jù)幀緩存塊、幀頭描述緩存塊和幀尾描述緩存塊,其中: TCONT FIFO寫控制電路,用于:接收XGPON系統(tǒng)送入的TCONT編號(hào)、上行方向的數(shù)據(jù)幀和數(shù)據(jù)幀描述,將數(shù)據(jù)幀寫入該TCONT編號(hào)對(duì)應(yīng)地址的數(shù)據(jù)幀緩存塊,同時(shí)將數(shù)據(jù)幀描述寫入該TCONT編號(hào)對(duì)應(yīng)地址的數(shù)據(jù)幀描述緩存塊; TCONT FIFO緩存塊,用于:根據(jù)先進(jìn)先出的原則,將寫入的數(shù)據(jù)幀和數(shù)據(jù)幀描述分別存儲(chǔ)到TCONT編號(hào)對(duì)應(yīng)地址的數(shù)據(jù)幀緩存塊和數(shù)據(jù)幀描述緩存塊中; XGEM組幀電路,用于:對(duì)OLT下發(fā)的送入TCONT FIFO緩存塊讀側(cè)的帶寬分配信息進(jìn)行檢測(cè),一旦檢測(cè)到OLT下發(fā)帶寬分配,就從數(shù)據(jù)幀緩存塊和數(shù)據(jù)幀描述緩存塊中讀取相應(yīng)的數(shù)據(jù)幀和數(shù)據(jù)幀描述,按照XGPON協(xié)議要求的格式,組成XGEM幀,發(fā)送給0LT,同時(shí)輸出數(shù)據(jù)包釋放信號(hào),用于向OLT上報(bào)動(dòng)態(tài)帶寬報(bào)告。
2.如權(quán)利要求1所述的XGPON系統(tǒng)中ONU端的XGEM組幀裝置,其特征在于:所述TCONTFIFO寫控制電路完成以下功能:幀頭幀尾糾錯(cuò);產(chǎn)生數(shù)據(jù)幀緩存滿告警、亂序錯(cuò)誤告警以及幀長(zhǎng)錯(cuò)誤告警;生成幀頭描述信息,并寫入幀頭描述緩存塊;將數(shù)據(jù)幀寫入數(shù)據(jù)幀緩存塊;在寫側(cè)的幀尾到來(lái)時(shí),將幀結(jié)束地址、錯(cuò)誤告警和無(wú)效字節(jié)個(gè)數(shù)寫入幀尾描述緩存塊中。
3.如權(quán)利要求2所述的XGPON系統(tǒng)中ONU端的XGEM組幀裝置,其特征在于:所述TCONTFIFO寫控制電路的實(shí)現(xiàn)過程如下:上行數(shù)據(jù)及該數(shù)據(jù)對(duì)應(yīng)的TCONT ID、該數(shù)據(jù)的幀頭指示、幀尾指示、幀長(zhǎng)和CRC重算指示進(jìn)入XGEM組幀裝置,TCONT FIFO寫控制電路在幀頭到來(lái)時(shí)根據(jù)XGPON系統(tǒng)輸入的相關(guān)信息將PORT-1D索引、數(shù)據(jù)包的長(zhǎng)度、CRC重算指示等寫入到幀頭描述緩存塊中,同時(shí)在將數(shù)據(jù)寫入數(shù)據(jù)幀緩存的過程中判斷是否產(chǎn)生數(shù)據(jù)幀緩存滿告警、亂序錯(cuò)誤告警以及幀長(zhǎng)錯(cuò)誤告警,當(dāng)幀尾到來(lái)時(shí),將幀結(jié)束地址、錯(cuò)誤告警和無(wú)效字節(jié)個(gè)數(shù)寫入到幀尾描述緩存塊中,緩存中寫入的數(shù)據(jù)及描述信息等待XGEM組幀電路讀??;當(dāng)一個(gè)數(shù)據(jù)幀幀頭到來(lái)時(shí),如果緩存已滿,則該幀將被丟棄;當(dāng)數(shù)據(jù)幀幀頭已經(jīng)寫入緩存,幀尾還未寫入時(shí),如果緩存已滿,則將錯(cuò)誤指示寫入幀尾描述緩存塊中,以便XGEM組幀電路計(jì)算該數(shù)據(jù)幀寫入緩存的實(shí)際長(zhǎng)度。
4.如權(quán)利要求1所述的XGPON系統(tǒng)中ONU端的XGEM組幀裝置, 其特征在于:所述XGEM組幀電路完成以下功能:從幀頭描述緩存塊、幀尾描述緩存塊讀出數(shù)據(jù)幀的幀頭幀尾信息;依據(jù)分配結(jié)構(gòu)信息和數(shù)據(jù)幀長(zhǎng)信息,進(jìn)行XGEM組幀,生成XGEM幀的幀頭信息:PORT_ID、幀凈荷長(zhǎng)度指示PL1、密鑰索引Key Index,并對(duì)幀頭進(jìn)行HEC校驗(yàn)計(jì)算,生成13bit的HEC校驗(yàn)碼,組成XGEM幀頭;依據(jù)PLI長(zhǎng)度信息,從幀數(shù)據(jù)幀緩存中讀出幀數(shù)據(jù),填充到XGEM幀的凈荷域中;進(jìn)行CRC重算,如果CRC重算使能,對(duì)以太網(wǎng)數(shù)據(jù)幀進(jìn)行CRC重算,替換以太網(wǎng)幀的CRC字節(jié)。
5.如權(quán)利要求4所述的XGPON系統(tǒng)中ONU端的XGEM組幀裝置,其特征在于:所述XGEM組幀電路的實(shí)現(xiàn)過程包括以下步驟: 先判斷組幀類型,分配XGEM幀占用的帶寬,當(dāng)帶寬分配指示信號(hào)為I時(shí),剩余帶寬=OLT本次帶寬分配值,判斷剩余帶寬是否< 4字節(jié),如果是,則產(chǎn)生超短空閑幀指示,分配超短空閑幀4字節(jié)長(zhǎng)度,剩余帶寬=0 ;否則,判斷剩余帶寬是否< 16字節(jié),如果4字節(jié)<剩余帶寬< 16字節(jié),則產(chǎn)生空閑幀指示,分配空閑幀的凈荷長(zhǎng)度=帶寬分配-8字節(jié),剩余帶寬=0 ;如果剩余帶寬> 16字節(jié),則繼續(xù)判斷剩余幀長(zhǎng)是否=0,如果是,則產(chǎn)生空閑幀指示,空閑幀凈荷長(zhǎng)度=0,剩余帶寬=當(dāng)前剩余帶寬-8字節(jié);否則,繼續(xù)判斷是否存在數(shù)據(jù)幀緩存讀空指示,如果是,則產(chǎn)生空數(shù)據(jù)指示,數(shù)據(jù)幀尾指示,數(shù)據(jù)幀凈荷長(zhǎng)度為8,剩余帶寬=當(dāng)前剩余帶寬-16字節(jié);否則,繼續(xù)判斷當(dāng)前數(shù)據(jù)幀是否已完全寫入數(shù)據(jù)幀緩存; 如果當(dāng)前數(shù)據(jù)幀已完全寫入數(shù)據(jù)幀緩存,判斷剩余幀長(zhǎng)是否>剩余帶寬-8字節(jié),如果是,則產(chǎn)生數(shù)據(jù)幀指示和數(shù)據(jù)幀分片指示,數(shù)據(jù)幀凈荷長(zhǎng)度為剩余帶寬-8字節(jié),剩余帶寬=0 ;否則,產(chǎn)生數(shù)據(jù)幀指示和數(shù)據(jù)幀尾指示,數(shù)據(jù)幀凈荷長(zhǎng)度為剩余幀長(zhǎng),剩余帶寬=當(dāng)前剩余帶寬-剩余幀長(zhǎng)-8字節(jié); 如果當(dāng)前數(shù)據(jù)幀只有部分寫入數(shù)據(jù)幀緩存,則判斷已寫入數(shù)據(jù)幀緩存的數(shù)據(jù)幀長(zhǎng)是否<剩余帶寬-8字節(jié),如果 已寫入數(shù)據(jù)幀緩存的數(shù)據(jù)幀長(zhǎng)>剩余帶寬-8字節(jié),則產(chǎn)生數(shù)據(jù)幀指示和數(shù)據(jù)幀分片指示,數(shù)據(jù)幀凈荷長(zhǎng)度為剩余帶寬-8字節(jié),剩余帶寬=0 ;如果已寫入數(shù)據(jù)幀緩存的數(shù)據(jù)幀長(zhǎng)<剩余帶寬-8字節(jié),則判斷寫入數(shù)據(jù)幀緩存的數(shù)據(jù)幀長(zhǎng)是否<預(yù)先設(shè)定的發(fā)送門限,如果是,則產(chǎn)生空閑幀指示,空閑幀凈荷長(zhǎng)度=0,剩余帶寬=當(dāng)前剩余帶寬-8字節(jié);否則,繼續(xù)判斷剩余幀長(zhǎng)是否>剩余帶寬-8字節(jié),如果是,則產(chǎn)生數(shù)據(jù)幀指示和數(shù)據(jù)幀分片指示,數(shù)據(jù)幀凈荷長(zhǎng)度為剩余帶寬-8字節(jié),剩余帶寬=0 ;否則,產(chǎn)生數(shù)據(jù)幀指示和數(shù)據(jù)幀尾指示,數(shù)據(jù)幀凈荷長(zhǎng)度為剩余幀長(zhǎng),剩余帶寬=當(dāng)前剩余帶寬-剩余幀長(zhǎng)-8字節(jié)。
6.如權(quán)利要求5所述的XGPON系統(tǒng)中ONU端的XGBl組幀裝置,其特征在于:所述XGEM組幀電路的實(shí)現(xiàn)過程還包括以下步驟:組幀類型判斷完畢后發(fā)送XGEM幀,首先發(fā)送XGEM幀頭,XGEM幀頭由幀凈荷長(zhǎng)度指示PL1、密鑰索引Key Index、Port_ID、分片幀幀尾指示LF和HEC校驗(yàn)字節(jié)共8個(gè)字節(jié)組成,根據(jù)幀類型指示和幀凈荷長(zhǎng)度指示,對(duì)幀頭信息進(jìn)行HEC校驗(yàn)計(jì)算,生成13bit的HEC校驗(yàn)碼,組成XGEM幀頭;如果幀類型指示為超短空閑幀,則無(wú)幀頭,發(fā)送四個(gè)字節(jié)全零數(shù)據(jù);如果幀類型指示為空閑幀,則置Key Index=O,Port-1D=16’hffff,LF=l ;如果幀類型指示為數(shù)據(jù)幀,則根據(jù)Port-1D索引查表得出加密使能,Port-1D分別寫入幀頭信息中去;然后根據(jù)幀類型指示發(fā)送數(shù)據(jù)幀:如果幀類型指示為空閑幀,則根據(jù)空閑幀填充字節(jié)配置發(fā)送;如果幀類型指示為數(shù)據(jù)幀,則讀取數(shù)據(jù)幀緩存中的數(shù)據(jù)幀并發(fā)送,發(fā)送數(shù)據(jù)時(shí)讀取數(shù)據(jù)幀描述緩存塊中的CRC重算使能,判斷CRC重算使能為I還是為O,如果CRC重算使能為1,則對(duì)數(shù)據(jù)幀進(jìn)行CRC重算;如果CRC重算使能為O,則進(jìn)行透?jìng)鳌?br>
7.如權(quán)利要求1至6中任一項(xiàng)所述的XGPON系統(tǒng)中ONU端的XGEM組幀裝置,其特征在于:所述XGEM組幀裝置是一個(gè)跨時(shí)鐘域的裝置,TCONT FIFO緩存塊的寫側(cè)及寫側(cè)輸入信號(hào)屬于系統(tǒng)時(shí)鐘域,TCONT FIFO緩存塊的讀側(cè)及讀側(cè)輸入信號(hào)屬于PON 口發(fā)送時(shí)鐘域。
8.如權(quán)利要求1至6中任一項(xiàng)所述的XGPON系統(tǒng)中ONU端的XGEM組幀裝置,其特征在于:所述上行方向的數(shù)據(jù)幀和數(shù)據(jù)幀描述共用一套數(shù)據(jù)總線,分別進(jìn)入XGEM組幀裝置的8個(gè)TCONT XGEM組幀單元中,每個(gè)時(shí)刻進(jìn)入的每個(gè)數(shù)據(jù)塊只屬于一個(gè)TCONT XGEM組幀單元;OLT通過一套總線給每個(gè)分配地址分配帶寬信息,每個(gè)時(shí)刻分配的帶寬信息也只屬于一個(gè)TCONT XGEM組幀單元,各個(gè)TCONT XGEM組幀單元重組的數(shù)據(jù)流按照時(shí)間先后串行,輸出符合XGPON協(xié)議要求的XGEM幀。
9.如權(quán)利要求1至6中任一項(xiàng)所述的XGPON系統(tǒng)中ONU端的XGEM組幀裝置,其特征在于:所述在每個(gè)TCONT XGEM組幀單元的帶寬分配未到之前,如果出現(xiàn)多個(gè)TCONT XGEM組幀單元同時(shí)讀取緩存數(shù)據(jù)的現(xiàn)象,TCONT FIFO緩存塊優(yōu)先處理當(dāng)前有帶寬分配的TCONT XGEM組中貞單元的讀請(qǐng)求。
10.基于權(quán)利要求1至9中任一項(xiàng)所述XGEM組幀裝置的XGPON系統(tǒng)中ONU端的XGEM組幀方法,其特征在于,包括以下步驟: A、XGPON系統(tǒng)送入的TCONT編號(hào)、上行方向的數(shù)據(jù)幀和數(shù)據(jù)幀描述進(jìn)入XGEM組幀裝置后,XGEM組幀裝置將數(shù)據(jù)幀寫入該TCONT編號(hào)對(duì)應(yīng)地址的數(shù)據(jù)幀緩存塊,同時(shí)將數(shù)據(jù)幀描述寫入該TCONT編號(hào)對(duì)應(yīng)地址的數(shù)據(jù)幀描述緩存塊;當(dāng)出現(xiàn)幀錯(cuò)誤指示時(shí),寫入緩存的數(shù)據(jù)幀實(shí)際長(zhǎng)度根據(jù)當(dāng)前數(shù)據(jù)幀的幀尾在數(shù)據(jù)幀緩存中的地址與上一數(shù)據(jù)幀的幀尾在數(shù)據(jù)幀緩存中的地址來(lái)計(jì)算; B、當(dāng)檢測(cè)到OLT分配給XGEM`組幀裝置中的某個(gè)TCONTXGEM組幀單元的上行帶寬時(shí),判斷數(shù)據(jù)幀緩存塊和數(shù)據(jù)幀描述緩存塊是否為空,根據(jù)數(shù)據(jù)幀緩存塊和數(shù)據(jù)幀描述緩存塊的相關(guān)信息,計(jì)算出待發(fā)送數(shù)據(jù)幀的剩余長(zhǎng)度:如果幀頭描述信息未采集,剩余長(zhǎng)度=數(shù)據(jù)幀的長(zhǎng)度;如果幀頭描述信息已采集而幀尾描述信息未采集,剩余長(zhǎng)度=數(shù)據(jù)幀的長(zhǎng)度-已發(fā)送的長(zhǎng)度;當(dāng)OLT沒下發(fā)帶寬分配且?guī)^描述緩存塊不為空時(shí),讀取首個(gè)幀頭描述,以便提前計(jì)算剩余幀長(zhǎng),等待帶寬分配;當(dāng)XGEM組幀裝置分配到了帶寬時(shí),在上一 XGEM幀未發(fā)送完時(shí)提前讀取新的幀頭描述;給當(dāng)前有帶寬分配的TCONT XGEM組幀單元打上讀優(yōu)先級(jí)最高的標(biāo)記,當(dāng)檢測(cè)到其他TCONT XGEM組幀單元的優(yōu)先級(jí)最高的標(biāo)記時(shí),當(dāng)前TCONT XGEM組幀單元等到下一拍再讀取數(shù)據(jù)幀描述緩存塊; C、根據(jù)下發(fā)帶寬的字節(jié)長(zhǎng)度、數(shù)據(jù)幀的剩余長(zhǎng)度和預(yù)先設(shè)定的發(fā)送門限進(jìn)行組幀,組幀時(shí)要求數(shù)據(jù)幀的長(zhǎng)度> 16字節(jié),4字節(jié)< OLT下發(fā)帶寬< 16字節(jié)時(shí),發(fā)送空閑幀;如果剩余帶寬< 4字節(jié),則產(chǎn)生超短空閑幀指示;如果剩余幀長(zhǎng)+8字節(jié)<帶寬分配,則該數(shù)據(jù)幀在本次分配中發(fā)送完畢;反之,則該數(shù)據(jù)幀被分片,分片長(zhǎng)度=帶寬分配; D、如果判定數(shù)據(jù)幀緩存塊為空,則根據(jù)XGPON協(xié)議要求發(fā)送空閑幀;如果數(shù)據(jù)幀還沒完全寫入緩存且寫入緩存的數(shù)據(jù)沒有達(dá)到發(fā)送門限,則根據(jù)XGPON協(xié)議要求發(fā)送空閑幀;數(shù)據(jù)幀緩存塊中的數(shù)據(jù)長(zhǎng)度<發(fā)送門限時(shí),等待緩存寫入數(shù)據(jù); E、如果判定數(shù)據(jù)幀緩存塊不為空且寫入緩存的數(shù)據(jù)已達(dá)到發(fā)送門限,則讀取緩存數(shù)據(jù),并按照XGEM幀格式組幀、發(fā)送;如果數(shù)據(jù)幀已完全寫入緩存,則正常組幀發(fā)送;如果數(shù)據(jù)幀部分寫入緩存,緩存中的數(shù)據(jù)內(nèi)容已被發(fā)送完畢,而沒有新的數(shù)據(jù)內(nèi)容寫入,出現(xiàn)了讀空現(xiàn)象,則根據(jù)讀空現(xiàn)象出現(xiàn)的位置來(lái)計(jì)算數(shù)據(jù)幀長(zhǎng)度,如果讀空現(xiàn)象出現(xiàn)在數(shù)據(jù)幀分片的第一片,根據(jù)XGPON協(xié)議4字節(jié)補(bǔ)齊,填充數(shù)據(jù)內(nèi)容為O ;如果讀空現(xiàn)象出現(xiàn)在數(shù)據(jù)幀分片的第二片,則根據(jù) XGPON協(xié)議發(fā)送最小長(zhǎng)度的數(shù)據(jù)幀,即PLI為8字節(jié)的數(shù)據(jù)幀,填充數(shù)據(jù)內(nèi)容為O。
全文摘要
本發(fā)明公開了一種XGPON系統(tǒng)中ONU端的XGEM組幀裝置及組幀方法,涉及XGPON的接入領(lǐng)域,XGEM組幀裝置包括8個(gè)相同的、相互獨(dú)立的、并行的TCONT XGEM組幀單元和共用的TCONT FIFO緩存,每個(gè)獨(dú)立的TCONT XGEM組幀單元均包括順次相連的TCONT FIFO寫控制電路、TCONT FIFO緩存塊和XGEM組幀電路,TCONT FIFO緩存塊包括數(shù)據(jù)幀緩存塊、幀頭描述緩存塊和幀尾描述緩存塊。本發(fā)明能減少由緩存空滿造成的丟包、錯(cuò)包,實(shí)現(xiàn)在保證數(shù)據(jù)業(yè)務(wù)穩(wěn)定的情況下最充分的利用帶寬。
文檔編號(hào)H04L12/877GK103152292SQ20131008096
公開日2013年6月12日 申請(qǐng)日期2013年3月14日 優(yōu)先權(quán)日2013年3月14日
發(fā)明者左越, 劉登強(qiáng), 黃元波 申請(qǐng)人:烽火通信科技股份有限公司