專利名稱:實現(xiàn)aal2協(xié)議的裝置及其數(shù)據(jù)處理方法
技術領域:
本發(fā)明涉及網(wǎng)絡通信技術領域,尤其涉及一種實現(xiàn)AAL2(AAL,ATM應用層)協(xié)議的裝置及其數(shù)據(jù)處理方法。
背景技術:
在ATM(Asynchronous Transfer Mode,異步傳輸模式)技術中,AAL(ATM Adaptation Layer,ATM應用層)位于ATM的上層,負責將上層傳來的信息分割層48字節(jié)長的ATM-SDU(ATM Service Data Unit,ATM服務數(shù)據(jù)單元),然后傳給ATM層,同時,將ATM層傳來的ATM-SDU進行組裝,恢復再傳給上層。
由于上層信息種類繁多,AAL層處理比較復雜,所以分了兩個子層CS(會聚子層)和SAR(拆裝子層),其中SAR的主要功能是將各類業(yè)務處理成ATM層所需的固定長度分組,以及將ATM層的固定成長度分組恢復成原先的格式;CS主要進行與各類業(yè)務密切相關的處理,如時延、時延抖動、丟失、定時等。
ITU-T 1.362建議中,按照業(yè)務是否需要時間補償、速率是否恒定、是否面向連接還是無連接這三個特點,將業(yè)務分成4類,如圖1所示,針對A類業(yè)務,制定了AAL1協(xié)議,針對B類業(yè)務,制定了AAL2協(xié)議,C類和D類業(yè)務都使用AAL3/4協(xié)議,后來將AAL3/4作了簡化,制定了AAL5協(xié)議。
AAL2針對的是低速有定時要求的變速率業(yè)務,例如壓縮語音,這種業(yè)務產生的數(shù)據(jù)包較小,一個數(shù)據(jù)包不足以填滿一個信元;如果要積累一個用戶的多個數(shù)據(jù)包去填滿一個信元,又可能會導致比較大的延時;AAL2協(xié)議的做法是將多個用戶復用在一個ATM通道上,即用來自多個用戶的數(shù)據(jù)包去填充信元,每個數(shù)據(jù)包前面需要加一個頭,用以表示它是屬于哪個用戶的。
圖2為AAL2協(xié)議的分層結構。從下至上分別為CPS(公共部分子層)、SSSAR(業(yè)務特定拆裝子層)、SSTED(業(yè)務特定傳輸錯誤檢測子層)和SSADT(業(yè)務特定保險數(shù)據(jù)傳輸子層)。每一子層都提供了SAP(服務訪問點),即用戶可以直接訪問其中每一層,例如可以只使用AAL2協(xié)議的CPS層,那么直接訪問CPS的SAP就可以了。
其中,CPS-Packet(公共部分子層包)的格式如圖3所示,包括CPS-Packet Header(CPS-PH,CPS包頭)和CPS-Packet凈荷(CPS-PP)兩部分;其中,CPS-PH以包括以下各個部分CID(Channel Identifier,信道標識)CID值用來標識AAL2信道中的CPS用戶;LI(Length Indicator)長度指示,LI域表示的是CPS凈荷的長度,它的值為CPS凈荷長度減1,在缺省情況下,CPS-Packet凈荷的長度為45個字節(jié),否則,CPS-Packet凈荷的最大長度可以為64字節(jié);UUI(User-to-User Identifier,用戶間指示)UUI域有兩個作用,一是在CPS用戶間透明傳遞消息。二是區(qū)別SSCS(業(yè)務特定會聚子層)實體和層管理用戶,訪字段中,0-26說明是AAL2包的最后一個,27說明不是最后一個,28-29保留,30-31適用于層管理;HEC(Header Error Control,頭部差錯控制)起差錯保護;CPS-INFO(CPS Information,CPS信息)承載著CPS的具體信息內容,通常為1-45/64字節(jié)。
而CPS-PDU(CPS協(xié)議數(shù)據(jù)單元)的格式如圖4所示,CPS-PDU的第一個字節(jié)稱為CPS-PDU start field(STF),含義如下OSF(Offset Field)該域指示在CPS協(xié)議數(shù)據(jù)單元中從STF結束的地方開始到一個完整的CPS packet的起始位置。如果在協(xié)議數(shù)據(jù)單元中,沒有一個新的CPS PACKET,則它表示的是從STF結尾處到填充信元間的偏移值。單位為字節(jié);SN(Sequence Number)序號;P(Parity,)接收端利用該域對STF進行錯誤檢測。發(fā)送端將STF部分設置為奇校驗;一個CPS_PDU可以承載0個、1個或多個CPS_PACKET。在CPS協(xié)議數(shù)據(jù)單元凈荷中,沒有使用的部分用0值來進行填充PAD(填充位)。
AAL2協(xié)議對用戶數(shù)據(jù)單元的處理如圖5所示,具體為首先,用戶的數(shù)據(jù)包經過SSSAR分割為一系列小于45/64字節(jié)的短包,CPS層為每個短包加上一個頭(包括CID標識),形成CPS-Packet(又稱微信元),最后一個CPS-Packet的頭中有一位標記。來自不同AAL2用戶的CPS-Packet統(tǒng)一往同一路ATM通道的信元里填充。接收過程是相反的,CPS層根據(jù)微信元頭中的CID標識送到SSSAR或對應的AAL2用戶。
在圖6中,展示出了CPS對數(shù)據(jù)的復用過程。用戶數(shù)據(jù)包分別來自4個用戶A、B、C和D,CPS層首先將每個用戶數(shù)據(jù)包加上CPS Packet Header(或稱微信元頭)。微信元頭共3個字節(jié),包括以下字段CID(ConnectionID),用來標識微信元來自哪一個AAL2用戶,8-bit,共可表示256個連接,但其中0~8是保留的;LI(Length Indication),表示用戶數(shù)據(jù)包的長度,6-bit;UUI(User-User Indication),傳輸上層用戶間的信息,例如SSSAR用UUI=27表示非最后一個CPS-Packet,UUI=27為最后一個;HEC是對CID+LI+UUI的保護。
CPS層最后形成的是48字節(jié)的CPS-PDU,交給ATM層加上信元頭形成信元。CPS-PDU的開始一個字節(jié)為STF(Start Field),包括OSF(OffsetFiled),表示在本CPS-PDU中,第一個完整微信元的頭的位置,它可以保證在前面的信元丟失時,還能夠正確地對當前信元解包,6-bit;SI(Sequence Indicator),1-bit,0和1交替變化,可以簡單地防止信元發(fā)生丟失;P(Parity),1-bit,使STF的和為1。
由于AAL2針對的是實時業(yè)務,所以必須保證延時,具體為通過Timer_CU的機制實現(xiàn)的,如圖7所示,即在CPS層開始填充它的一個新的CPS-Packet時,同時啟動一個超時定時器Timer_CU;如果在Timer_CU超時時,這個CPS-Packet還沒有填充滿,那么CPS層馬上以0填充剩余部分,并傳給ATM層傳輸。這樣就保證了第一個填入CPS-Packet的微信元的打包延時小于Timer_CU的值。
目前,業(yè)界針對AAL2協(xié)議的功能通常為通過軟件或專用芯片實現(xiàn)。通過軟件實現(xiàn)主要是針對特定的通信處理器,增加AAL2功能微碼,通過軟件實現(xiàn)AAL2協(xié)議的主要缺點是模擬的AAL2業(yè)務量小,數(shù)據(jù)流量不夠,如果是通過通信處理器實現(xiàn),要消耗很大的處理器資源。而采用專用芯片實現(xiàn)AAL2協(xié)議則雖然可以實現(xiàn)大業(yè)務的AAL2處理,但卻存在著實現(xiàn)成本較高,且芯片功能固定,擴展較為困難的缺點。
另外,目前還沒有一種對AAL2協(xié)議實現(xiàn)的功能進行相應測試裝置或方法,從而無法適應針對日益廣泛應用的AAL2協(xié)議的測試需求。
發(fā)明內容
鑒于上述現(xiàn)有技術中所存在的不足,本發(fā)明的目的是提供一種實現(xiàn)AAL2協(xié)議的裝置及其數(shù)據(jù)處理方法,以提高所述裝置的性能,并可降低所述裝置的實現(xiàn)成本。
本發(fā)明的目的是通過以下技術方案實現(xiàn)的本發(fā)明提供了一種實現(xiàn)AAL2協(xié)議的裝置,包括基于AAL2(AAL,異步傳輸模式應用層)劃分確定的若干個功能模塊,且所述的各個功能模塊采用通用的可編程邏輯芯片實現(xiàn);所述的各個功能模塊包括SSSAR(業(yè)務特定拆裝子層)發(fā)送模塊、SSSAR接收模塊、CPS(公共部分子層)發(fā)送模塊、CPS接收模塊組成、ATM(異步傳輸模式)發(fā)送模塊和ATM接收模塊;所述的SSSAR發(fā)送模塊用于將用戶端發(fā)送來的報文處理后發(fā)送給CPS發(fā)送模塊,CPS發(fā)送模塊對報文繼續(xù)進行處理并發(fā)送給ATM發(fā)送模塊,所述的ATM發(fā)送模塊將CPS發(fā)送模塊發(fā)送來的報文處理為ATM信元后發(fā)送;所述的ATM接收模塊用于將接收到的ATM信元處理為CPS接收模塊可以識別的報文并發(fā)送給CPS接收模塊,所述的CPS接收模塊用于將ATM接收模塊傳送來的報文進行處理并發(fā)送給SSSAR接收模塊,SSSAR接收模塊繼續(xù)對報文進行處理并發(fā)送給用戶端。
所述的SSSAR發(fā)送模塊和SSSAR接收模塊分別連接有SDRAM(同步動態(tài)存儲器),所述的SDRAM用于存儲待發(fā)送的報文。
所述的SDRAM與SSSAR發(fā)送模塊間,各個相連接的功能模塊間,以及所述的ATM接收模塊與ATM總線間均設置有FIFO(先入先出)隊列。
所述的各個功能模塊還分別包括相應的發(fā)送統(tǒng)計子模塊或接收統(tǒng)計子模塊,且所述的接收統(tǒng)計子模塊還進一步包括相應的SSSAR錯誤統(tǒng)計子模塊或CPS錯誤統(tǒng)計子模塊,所述的發(fā)送統(tǒng)計子模塊和接收統(tǒng)計子模塊包括計數(shù)器,所述的計數(shù)器通過發(fā)送統(tǒng)計信號使能。
本發(fā)明還提供了一種基于上述裝置的數(shù)據(jù)處理方法當所述的裝置向ATM總線發(fā)送數(shù)據(jù)時,包括A、SSSAR發(fā)送模塊接收用戶端發(fā)送來的數(shù)據(jù)報文,并將所述的數(shù)據(jù)報文拆分為CPS發(fā)送模塊需要的CPS分組報文,發(fā)送給CPS發(fā)送模塊,所述的CPS分組報文中承載著用戶的CID(信道標識)信息,同時SSSAR發(fā)送模塊還將從所述的數(shù)據(jù)報文中獲得的VPI/VCI(虛鏈路標識/虛通道標識)信息發(fā)送給CPS發(fā)送模塊;B、CPS發(fā)送模塊將SSSAR發(fā)送模塊發(fā)送來的CPS分組報文組裝為CPS-PDU(CPS協(xié)議數(shù)據(jù)單元)報文發(fā)送給ATM發(fā)送模塊,所述的CPS-PDU報文中仍然承載著用戶的CID信息,同時繼續(xù)向ATM發(fā)送模塊繼續(xù)傳送所述的VPI/VCI信息;C、ATM發(fā)送模塊將所述的CPS-PDU及所述的VPI/VCI信息組裝為相應的ATM信元,并發(fā)送到ATM總線上;當所述的裝置從ATM總線接收數(shù)據(jù)時,包括D、ATM接收模塊從ATM總線上接收ATM信元,并提取出CPS-PDU及VPI/VCI信息發(fā)送給CPS接收模塊;E、CPS接收模塊提取所述的CPS-PDU中的CPS分組報文組成SSSAR接收模塊需要的數(shù)據(jù)報文,并發(fā)送給SSSAR接收模塊,同時將所述的VPI/VCI信息發(fā)送給SSSAR接收模塊;F、SSSAR接收模塊接收CPS接收模塊發(fā)送來的數(shù)據(jù)和VPI/VCI信息,然后根據(jù)所述數(shù)據(jù)承載的CID信息進行所述的數(shù)據(jù)和VPI/VCI信息的組裝,并發(fā)送給相應的用戶端。
所述的數(shù)據(jù)處理方法中,步驟A所述的SSSAR發(fā)送模塊接收用戶端發(fā)送來的數(shù)據(jù)報文包括保存于SDRAM中的用戶端發(fā)送來的數(shù)據(jù)報文由SDRAM控制器讀出,并寫入到FIFO隊列中,SSSAR發(fā)送模塊從所述的FIFO隊列中獲取數(shù)據(jù)。
所述的數(shù)據(jù)處理方法的處理過程為基于狀態(tài)機實現(xiàn)。
當所述的裝置向ATM總線發(fā)送數(shù)據(jù)時,所述的狀態(tài)機分別為所述的SSSAR發(fā)送模塊包括的各個狀態(tài)為Idle狀態(tài)SSSAR發(fā)送模塊處于空閑狀態(tài);
WaitRead狀態(tài)SSSAR發(fā)送模塊向FIFO隊列發(fā)出讀請求后數(shù)據(jù)還未到來前的等待狀態(tài);PreTran1狀態(tài)SSSAR發(fā)送模塊接收FIFO隊列發(fā)送來的數(shù)據(jù)包長度的低16位時的狀態(tài);PreTran2狀態(tài)接收所述的FIFO隊列發(fā)送來的數(shù)據(jù)包長度的高3位和VPI信息時的狀態(tài);PreTran3狀態(tài)接收所述的FIFO隊列發(fā)送來的VCI信息時的狀態(tài);PreTran4狀態(tài)接收所述的FIFO隊列發(fā)送來的UUI(用戶間指示)信息和CID(信道標識)信息時的狀態(tài);PreTran5狀態(tài)在該狀態(tài)形成待發(fā)送的PDU的長度和UUI,并根據(jù)待發(fā)送的凈荷字節(jié)數(shù)與Segment_Length(段長)間的關系確定進入Tran1狀態(tài)或Tran2狀態(tài);Tran1狀態(tài)將剩余字節(jié)打包發(fā)送出去,發(fā)送完成后系統(tǒng)進入Idle狀態(tài);Tran2狀態(tài)在該狀態(tài)里,發(fā)送部分將Segment_Length(+/-1)個字節(jié)打包發(fā)送出去,發(fā)送完成后返回到PreTran5狀態(tài);所述的CPS發(fā)送模塊包括的各個狀態(tài)為Idle狀態(tài)CPS發(fā)送模塊處于空閑狀態(tài);PreConPH狀態(tài)當CPS發(fā)送模塊向FIFO隊列發(fā)出讀請求,且數(shù)據(jù)還沒到來時的狀態(tài);ConPH狀態(tài)收到FIFO隊列發(fā)送來的CID值時的狀態(tài),如果奇偶標志為1,則把前面未發(fā)的一個字節(jié)和CID值發(fā)出去,奇偶標志設置為偶,如果此時CPS-PDU已經滿了,則設置Part(分塊)和Split(溢出)值,并根據(jù)層管理是否允許發(fā)送PDU而進入ConSTF或者Full狀態(tài),否則,進入ConPH1狀態(tài),如果奇偶標志為0,則因為只有一個可寫的字節(jié),暫不發(fā)送,進入ConPH1狀態(tài);
ConPH1狀態(tài)收到FIFO隊列發(fā)送來的CPS-SDU的長度和UUI信息時的狀態(tài),如果PDU已滿則進入ConSTF或者Full狀態(tài);否則,預測加上要發(fā)送的SDU是否超出了一個PDU的長度,分別進入StateE或者StateA狀態(tài);StateA狀態(tài)即不會超過PDU長度,則把接收到的數(shù)據(jù)打包到PDU中,如果PDU以滿,則根據(jù)MAAL是否允許發(fā)送而進入ConSTF或者Full狀態(tài);否則,根據(jù)TimerCU是否過期進入Send或者PartS狀態(tài);StateE狀態(tài)即超過PDU長度,該SDU將被分割,把未超出的數(shù)據(jù)打包到PDU中,并根據(jù)需要設置相應的Split和PartS值,根據(jù)MAAL是否允許發(fā)送而進入ConSTF或者Full狀態(tài);Full狀態(tài)如果接受到MAAL要求發(fā)送的命令,則允許ATM發(fā)送,并進入ConPH狀態(tài),否則繼續(xù)在Full狀態(tài)。
PartS狀態(tài)如果接受到MAAL要求發(fā)送的命令,則進入StateD狀態(tài);否則如果TimerCU已經過期,則進入Send狀態(tài);否則如果接收到SSSAR或者MAAL數(shù)據(jù)有效的指示,進入到ConPH狀態(tài)。
StataD狀態(tài)把剩余的PDU空間都填0,允許ATM發(fā)送,并進入ConSTF狀態(tài);ConSTF狀態(tài)根據(jù)前面留下來的Split和PartS值構筑STF域,并設置奇偶標志為1,進入StateB狀態(tài);StateB狀態(tài)如果Split不為0,進入MvSplitPH狀態(tài);否則根據(jù)Part的值進入Idle、StateA或者StateE狀態(tài);MvSplitPH狀態(tài)把剩余的PH填充到新的PDU中,進入StateA或者StateE狀態(tài);Send狀態(tài)如果接受到MAAL的發(fā)送命令,則進入狀態(tài)StateD;否則如果有新的SSSAR或者MAAL數(shù)據(jù),則進入ConPH狀態(tài)。
所述的ATM發(fā)送模塊包括的各個狀態(tài)為
Idle狀態(tài)ATM發(fā)送模塊處于空閑狀態(tài);Req狀態(tài)ATM發(fā)送模塊向FIFO發(fā)送讀請求且數(shù)據(jù)未到來時的狀態(tài);Transmit狀態(tài)從FIFO中讀出VPI/VCI信息以及PDU的第一個word時的狀態(tài);Transmit1狀態(tài)把剩余的VCI位以及PT、SLP寫到FIFO中,進入Transmit2狀態(tài);Transmit2狀態(tài),這時的ATM信元位置應該是頭校驗字節(jié)和填充字節(jié),物理層會自動完成,所以這里全寫0就可以了,進入Transmit3狀態(tài);Transmit3、Transmit4、Transmit5、Transmit6狀態(tài),把24個信元凈荷寫到FIFO中,進入Patch狀態(tài);Patch狀態(tài),寫一個空word到FIFO中根據(jù)ATM發(fā)送是否使能,CPS2ATMFIFO中數(shù)據(jù)是否有效,且UTOPIA發(fā)送模塊中的FIFO是否有足夠的空間,決定是否發(fā)出讀請求,進入Patch1狀態(tài);Patch1狀態(tài),再寫一個空word到FIFO中,根據(jù)Patch狀態(tài)中的判斷,進入Idle狀態(tài)或者Transmit狀態(tài)。
當所述的裝置從ATM總線接收數(shù)據(jù)時,所述的狀態(tài)機分別為所述的ATM接收模塊包括的各個狀態(tài)為Idle狀態(tài)ATM接收模塊起始狀態(tài),即空閑狀態(tài);Req狀態(tài)發(fā)出讀請示,但數(shù)據(jù)還未到來,處于等待狀態(tài);RecvHead狀態(tài)獲得VPI、GFC和VCI部分信息;RecvHead1狀態(tài)獲得VCI部分信息,及PT和CLP信息;RecvHead2狀態(tài)獲得ATM信元的頭校驗字節(jié)和填充字節(jié);RecvPayload狀態(tài)接收24個word(字)的信元凈荷,和VPI/VCI一起組成CPS-PDU并寫到FIFO隊列中;
所述的CPS接收模塊包括的狀態(tài)為Idle狀態(tài)初始狀態(tài)為空閑狀態(tài);Idle1狀態(tài)發(fā)出讀請求但數(shù)據(jù)還未到來,處于等待狀態(tài);VerifySTF狀態(tài)接收到STF和第一個數(shù)據(jù)(1byte),計算STF的奇偶校驗位,并緩存數(shù)據(jù)和VPI/VCI信息;在VerifySTF1狀態(tài)分為三種具體的處理,分別為(1)如果奇偶校驗錯誤,放棄整個PDU并報錯,進入CancelWhole狀態(tài);(2)如果奇偶校驗正確,而序列數(shù)(STF的SN位)不正確,則放棄當前分組并報錯,進入CancelPart狀態(tài);(3)如果奇偶校驗正確且序列數(shù)也正確,則根據(jù)奇偶狀態(tài)進行數(shù)據(jù)的處理;VerifyHECW狀態(tài)Split=0時,進行頭部校驗,并根據(jù)頭部校驗結果轉入不同的狀態(tài);VerifyHECP狀態(tài)Split=2時,進行頭校驗,并根據(jù)頭部校驗結果轉入不同的狀態(tài);Transmit狀態(tài)將PDU中當前分組正剩余的字節(jié)處理完,并根據(jù)CID以及分組長度決定是否報錯或者寫到DPRam中等待發(fā)送;StateA狀態(tài)根據(jù)當前PDU的處理狀況及待處理字節(jié)狀況轉入對應的狀態(tài);Continue狀態(tài)將所有的PDU剩余字節(jié)都處理完,然后進入Idle狀態(tài);CancelWhole狀態(tài)根據(jù)是否有當前PDU遺留的字節(jié)而決定報錯;CancelWhole1狀態(tài)等待當前PDU中所有字節(jié)都讀完,進入Idle狀態(tài);CancelPart狀態(tài)根據(jù)是否有當前分組遺留的字節(jié)而決定報錯;
CancelPart1狀態(tài)根據(jù)OSF值進行數(shù)據(jù)的讀處理;所述的SSSAR接收模塊包括的狀態(tài)為Idle1狀態(tài)初始狀態(tài)為空閑狀態(tài);Recv狀態(tài)獲得PDU的長度和UUI值,及通道號;Recv1狀態(tài)將FIFO隊列中的SDU凈荷按順序寫到SDRAM中;Recv2狀態(tài)如果有剩余的一個字節(jié)則將其寫到SDRAM中;Part狀態(tài)獲得下一個SDU的長度和UUI值;Over狀態(tài)在發(fā)送給用戶端的CPU包的首地址寫數(shù)據(jù)包長度的低16位;Over1狀態(tài)在CPU包的次地址寫數(shù)據(jù)包長度的高3位和接收的VPI;Over2狀態(tài)依次在CPU包的下一個地址寫VCI;Over3狀態(tài)依次在CPU包的下一個地址寫UUI;Abort狀態(tài)等待當前PDU傳輸完成;Abort1狀態(tài)當出現(xiàn)錯誤時,發(fā)出錯誤指示,且SDRAM地址回到該SDU未重組時的值。
由上述本發(fā)明提供的技術方案可以看出,本發(fā)明是采用通用的可編程邏輯芯片實現(xiàn)AAL2協(xié)議的相應功能,一方面,與采用專用芯片實現(xiàn)AAL2功能的技術方案相比大大降低了實現(xiàn)AAL2協(xié)議的成本,另一方面,與采用軟件實現(xiàn)AAL2功能的技術方案相比大大提高了相應的AAL2業(yè)務的提供能力。
同時,本發(fā)明還提供了針對AAL2協(xié)議的測試功能,從而可以應用到相應的通信設備上,實現(xiàn)針對帶有AAL2功能的通信設備的相關測試。
圖1為AAL業(yè)務分類示意圖;圖2為AAL2協(xié)議的結構示意圖;
圖3為CPS包的分組格式示意圖;圖4為CPS-PDU的格式示意圖;圖5為AAL2協(xié)議對用戶數(shù)據(jù)的處理過程示意圖;圖6為AAL2協(xié)議中CPS復用過程的示意圖;圖7為AAL2超時機制的示意圖;圖8為本發(fā)明所述的裝置的結構示意圖;圖9為所述的SSSAR發(fā)送模塊的原理示意圖;圖10為所述的SSSAR發(fā)送模塊的狀態(tài)轉換示意圖;圖11為所述的CPS發(fā)送模塊的狀態(tài)轉換示意圖;圖12為所述的ATM發(fā)送模塊的狀態(tài)轉換示意圖;圖13為所述的ATM接收模塊的狀態(tài)轉換示意圖;圖14為的述的CPS接收模塊的原理示意圖;圖15為所述的CPS接收模塊的狀態(tài)轉換示意圖;圖16為所述的SSSAR接收模塊的狀態(tài)轉換示意圖。
具體實施例方式
AAL2協(xié)議的特性決定了它比較適合3G無線通信和寬帶實時業(yè)務接入類產品的應用,因此該協(xié)議的應用較為廣泛,由此將使得針對AAL2業(yè)務類的測試需求也越來越多,本發(fā)明便提供了一種用通用的邏輯芯片實現(xiàn)AAL2協(xié)議的功能及針對AAL2協(xié)議的測試功能的裝置及其方法。本發(fā)明所述的裝置及其方法實現(xiàn)了AAL2協(xié)議中CPS子層和SSSC子層中SSSAR子層的功能,同時,所述的裝置及其方法中還增加了相應的AAL2協(xié)議的測試功能。
在AAL2協(xié)議中,所述的SSSAR子層的作用是將從SSSAR發(fā)送者(如用戶端的CPU系統(tǒng))接收到的SSAR-SDU分段程數(shù)個SSSAR-PDU,即CPS-SDU,并將其裝入AAL2的CPS;同時,在SSSAR接收者側,SSSAR子層用于將SSSAR-PDU拆成SSSAR-SDU,再傳給用戶。所述的CPS子層的作用是從SSSAR子層接收CPS-SDU,然后在每個CPS-SDU前面加上3個字節(jié)的CPS-PH組成CPS分組,在每個CPS分組前面加上1個字節(jié)STF,組成CPS-PDU;同時,在接收端,CPS子層從ATM層得到48字節(jié)數(shù)據(jù)塊,然后將STF和CPS-PH分開,把不同長度的CPS分組凈荷送到SSSAR子層。
本發(fā)明的核心是采用通用的可編程邏輯芯片實現(xiàn)AAL2協(xié)議,從而使得AAL2協(xié)議的實現(xiàn)成本大大降低,且可保證可以提供的AAL2協(xié)議業(yè)務量。例如,可以采用一片APEX20K600E作為AAL2邏輯和測試功能芯片,周圍設置有兩片SDRAM,實現(xiàn)數(shù)據(jù)緩存和捕捉;另外所述的APEX20K600E,還提供了統(tǒng)計功能,統(tǒng)計發(fā)送、接收和錯誤的數(shù)據(jù)包的數(shù)目等,以實現(xiàn)CPS子層和SSSAR子層的相關測試功能。
用戶端的CPU按照約定的報文將數(shù)據(jù)通過AAL2模塊FPGA(可編程邏輯門列陣)中的SDRAM控制子模塊寫到SDRAM中,或讀取其中的數(shù)據(jù)報文。
SSSAR子層從SDRAM中解出包長度、VCI/VPI、UUI和SAR SDU;在接收側,SSSAR子層按照相同協(xié)議提供數(shù)據(jù)包緩存到SDRAM中,以供上層(用戶端CPU)讀取。
SSSAR子層把從SSSAR發(fā)送者(本系統(tǒng)是CPU系統(tǒng))接收到的SSAR-SDU分段程數(shù)個SSSAR-PDU,即CPS-SDU,并將其裝入AAL的CPS。在SSSAR接收者側,把SSSAR-PDU拆成SSSAR-SDU,再傳給用戶。在接收過程中,如果發(fā)送重組錯誤,則丟棄相應的數(shù)據(jù)并通過接口通知統(tǒng)計FPGA進行統(tǒng)計計數(shù)。
CPS子層從SSSAR子層接收CPS-SDU,然后在每個CPS-SDU前面加上3個字節(jié)的CPS-PH組成CPS分組,包括生成信頭差錯控制HEC域;在每個CPS分組前面加上1個字節(jié)STF,包括序列號校驗位和奇偶校驗位,組成CPS-PDU。在接收端,CPS子層從ATM層得到48字節(jié)數(shù)據(jù)塊,然后將STF和CPS-PH分開,分別驗證序列號位、奇偶位和信頭差錯控制域HEC將不同長度的CPS分組凈荷送到SSSAR子層。在接收過程中如果發(fā)生錯誤,則丟棄相應的CPS-PDU或分組,并通過接口通知統(tǒng)計FPGA進行統(tǒng)計計數(shù)。
前面對本發(fā)明的實現(xiàn)原理及思想作了簡要的說明,下面再結合具體實例對本發(fā)明的具體實現(xiàn)方式作進一步的說明。
本發(fā)明所述的裝置的具體實現(xiàn)方式如圖8所示,可以看出,本發(fā)明是采用了通用的可編程邏輯芯片實現(xiàn)AAL2協(xié)議,首先將AAL2協(xié)議根據(jù)實現(xiàn)的功能的不同分成6個主要的功能模塊,然后采用相應的邏輯電路分別實現(xiàn)各個模塊。即如圖8所示,AAL2協(xié)議的功能主要由6個模塊及其附屬模塊組成,且各模塊間均設置有FIFO隊列進行數(shù)據(jù)的緩存,所述的六個模塊分別為負責將用戶端的數(shù)據(jù)發(fā)送到ATM總線的SSSAR發(fā)送模塊、CPS發(fā)送模塊和ATM發(fā)送模塊,以及負責接收ATM總線上的數(shù)據(jù)并發(fā)送給相應的用戶端的ATM接收模塊、CPS接收模塊和SSSAR接收模塊。
用戶端的CPU是通過FPGA間接對兩個SDRAM控制器操作,實現(xiàn)對SDRAM的數(shù)據(jù)寫入和讀取;同時CPU實現(xiàn)對各部分的使能、復位控制以及發(fā)送或讀取層管理信息等。
下面結合圖8對其中所述的六個模塊分別進行說明首先結合附圖對本發(fā)明中發(fā)送方向的涉及的裝置結構及其方法進行說明。參見圖8可以看出,在發(fā)送方向,本發(fā)明所述的裝置主要包括SSSAR發(fā)送模塊,CPS發(fā)送模塊和ATM發(fā)送模塊,用于獲取用戶端的數(shù)據(jù),并進行相應的處理后發(fā)送到ATM總線上。
SSSAR發(fā)送模塊所述的SSSAR發(fā)送模塊的結構如圖9所示,SSSAR發(fā)送模塊首先需要從SDRAM讀取待發(fā)送的數(shù)據(jù),由于SDRAM讀取比較麻煩,同時刷新等命令的存在,導致有時讀取命令不能馬上響應,為簡化處理和提高速度,本發(fā)明采用一個FIFO來隔離SDRAM控制器(即讀取報文)和SSSAR發(fā)送模塊中的包分拆處理部分,讀取包文部分順序通過SDRAM控制器從SDRAM中讀出所需數(shù)據(jù),寫入到FIFO中,而處理部分則從FIFO中讀出數(shù)據(jù)處理。
SDRAM中,所有數(shù)據(jù)是按word(字)存放的,如果出現(xiàn)單字節(jié)情況,則最后的一個字節(jié)放在SDRAM的高八位,低八位全部為0。SDRAM中包與包之間沒有間隔,上一個包結束,下一個地址就是新包的包頭,因為包頭中已經包含了包的大小,所以讀的時候不會多讀或者少讀。當SDRAM的空間少于128KB時,不允許向SDRAM中寫新的包(因為要兼容AAL2,包的長度最大為65568字節(jié),加上包頭,超過64KB,故若少于128KB可能最后一個包是無法寫完),讀的時候則讀到上一個包的最后一個地址時進行判斷,如果SDRAM剩余的地址少于128KB時,讀地址從重新從0開始。
考慮到只有一片SDRAM做發(fā)送存儲器,所有數(shù)據(jù)只能通過一個數(shù)據(jù)輸出口輸出,因此SSSAR發(fā)送模塊一定是依次讀取發(fā)送SDRAM中的各數(shù)據(jù)包,即發(fā)送SDRAM不進行分段。這樣,報文中除需要包括28bit的VPI/VCI,5bit的UUI,19bit的PL以及凈荷外,還要求在數(shù)據(jù)包頭增加一個CID域以區(qū)別不同的用戶端的報文。因此,所述的用戶端的CPU報文的數(shù)據(jù)格式如下表
SSSAR發(fā)送模塊中的處理部分接收到上述CPU報文后,將接收到的報文進行分組,形成SSCS-PDU(即CPS-SDU)發(fā)送給CPS層的CPS發(fā)送模塊,伴隨著發(fā)送給CPS層的還包括解析出來的VPI、VCI和CID信息,其分拆成的包最大長度(字節(jié))根據(jù)預先給定的Segment_Length(段長)確定。
所述的SSSAR發(fā)送模塊的狀態(tài)轉換如圖10所示SSSAR發(fā)送模塊開始處于Idle(空閑)狀態(tài),當FIFO隊列中數(shù)據(jù)多于Segment_Length且SSSAR發(fā)送模塊發(fā)送使能時,向FIFO隊列發(fā)出讀請求;進入WaitRead狀態(tài),此時數(shù)據(jù)還未到來,處于等待讀數(shù)據(jù)的狀態(tài),當數(shù)據(jù)到來時,則根據(jù)到來的數(shù)據(jù)的內容依次進入不同的狀態(tài);在狀態(tài)PreTran1,到來的是用戶端CPU數(shù)據(jù)包長度的低16位;在狀態(tài)PreTran2,到來的是CPU數(shù)據(jù)包長度的高3位和VPI信息;在狀態(tài)PreTran3,到來的是CPU數(shù)據(jù)包中的VCI信息;在狀態(tài)PreTran4,到來的是UUI和CID信息;各數(shù)據(jù)信息到來后轉入狀態(tài)PreTran5,在該狀態(tài)形成要發(fā)送的PDU(協(xié)議數(shù)據(jù)單元)的長度和UUI,具體的處理過程為如果要待發(fā)送的凈荷字節(jié)數(shù)少于Segment_Length時,UUI的值按照接收到的值發(fā)送,PDU長度為待發(fā)送的字節(jié)數(shù),并進入Tran1狀態(tài);如果要待發(fā)送的凈荷字節(jié)數(shù)多于Segment_Length長度時,UUI的值設置為27,PDU長度為預先設定的Segment_Length長度,并進入Tran2狀態(tài);在狀態(tài)Tran2分奇偶兩種情況如果在此前所有字節(jié)都被發(fā)送,則為偶情況,反之,如果上次因為是單數(shù)字節(jié),而造成有一個字節(jié)未發(fā)送,則為奇情況。在這個狀態(tài)里,發(fā)送部分把Segment_Length(+/-1)個字節(jié)發(fā)送出去,并根據(jù)奇偶情況和Segment_Length的奇偶設定系統(tǒng)的奇偶狀態(tài),發(fā)送完成后,系統(tǒng)回到PreTran5狀態(tài);在狀態(tài)Tran1也是根據(jù)奇偶情況發(fā)剩余字節(jié)裝在包中發(fā)送出去,發(fā)送完后系統(tǒng)進入Idle狀態(tài)。
SSSAR_Tx(SSSAR子層發(fā)送端)向CPS_Tx(CPS子層發(fā)送端)的輸出SSSAR-PDU的數(shù)據(jù)格式基本同圖3所示的CPS-分組的格式,只是分組頭HEC域全部置為0,而且CID占兩個字節(jié),低8位為0。同時,從用戶端的CPU數(shù)據(jù)包中解析出的VPI/VCI信息與發(fā)向CPS_Tx的數(shù)據(jù)并行進入SSSAR2CPSFIFO緩存。
CPS發(fā)送模塊該模塊接收SSSAR發(fā)送模塊送來的SSSAR-PDU,即CPS-SDU,以及VPI/VCI、CID等信息。對于其中所述的VPI/VCI信息不做處理,跟隨其他數(shù)據(jù)繼續(xù)傳送給ATM_Tx(ATM的發(fā)送端),而其余信息,則需要按照AAL2協(xié)議要求先組成CPS-分組,然后CPS-分組裝入CPS-PDU中再傳向ATM_Tx。
接收SSSAR發(fā)送模塊發(fā)送來的數(shù)據(jù)包的格式如下表所示
將上表中的數(shù)據(jù)包裝入CPS-PDU中的具體處理過程結合圖11敘述如下所述的CPS發(fā)送模塊主要是在不同的狀態(tài)間轉換并進行相應的處理從而實現(xiàn)CPS子層需要實現(xiàn)的功能,具體的狀態(tài)包括Idle,PreConPH,ConPH,ConPH1,PartS,F(xiàn)ull,Send,StateA,StateB,StateD,StateE,ConSTF,MVSplitPH。
CPS發(fā)送模塊開始處于Idle狀態(tài),當SSSAR2CPSFIFO(SSSAR發(fā)送模塊與CPS發(fā)送模塊間的FIFO隊列)或者MAAL2CPSFIFO(管理AAL模塊與CPS發(fā)送模塊間的FIFO隊列)中的數(shù)據(jù)有效時,則發(fā)出向對應的FIFO的讀請求,并構筑此時的STF(空STF,只有校驗位為1),同時進入PreConPH狀態(tài)(由于構筑了一個字節(jié)而沒有發(fā)出,故設置奇偶標志為奇);如果各FIFO隊列沒有數(shù)據(jù)有效,那么,當CPS發(fā)送模塊的CPU發(fā)來發(fā)送數(shù)據(jù)的要求,要求發(fā)送空的CPS-PDU時,則進入StateD狀態(tài)。
在PreConPH狀態(tài),F(xiàn)IFO隊列中的數(shù)據(jù)還沒到來,處于等待狀態(tài),當數(shù)據(jù)到來時,則進入ConPH狀態(tài)。
在ConPH狀態(tài),得到SSSAR層或MAAL的CID值。如果奇偶標志為1,則把前面未發(fā)的一個字節(jié)(比如STF)和CID值發(fā)出去,奇偶標志設置為偶。如果此時CPS-PDU已經滿了,則設置Part(分塊)和Split(溢出)值,所述的Part值用于表示該CPS-PDU已滿,所述的Split值用于表示已滿的CPS-PDU的數(shù)量值,并根據(jù)CPS發(fā)送模塊的層管理是否允許發(fā)送PDU而進入ConSTF或者Full狀態(tài),如果允許發(fā)送則進入Full狀態(tài),否則進入ConSTF狀態(tài);否則,進入ConPH1狀態(tài)。如果奇偶標志為0,則因為只有一個可寫的字節(jié),暫不發(fā)送,進入ConPH1狀態(tài)。
在ConPH1狀態(tài),得到CPS-SDU的長度和UUI,進行HEC計算。根據(jù)奇偶標志的不同發(fā)送相應數(shù)據(jù),如果PDU已滿則進入ConSTF或者Full狀態(tài);否則,判斷加上要發(fā)送的SDU是否超出了一個PDU的長度,并根據(jù)判斷結果確定分別進入StateE或者StateA狀態(tài),如果超出則進入StateE狀態(tài),否則進入StateA狀態(tài)。
在StateA狀態(tài),即不會超過PDU長度,則把接收到的數(shù)據(jù)打包到PDU中,如果PDU以滿(加起來剛好48個),則同樣根據(jù)MAAL是否允許發(fā)送而進入ConSTF或者Full狀態(tài);否則,根據(jù)TimerCU是否過期進入Send或者PartS狀態(tài),如果過期則進入Send狀態(tài),如果未過期則進入PartS狀態(tài)。
在狀態(tài)StateE,即超過PDU長度,該SDU將被分割,把未超出的數(shù)據(jù)打包到PDU中,并根據(jù)需要設置相應的Split和Part值,同樣根據(jù)MAAL是否允許發(fā)送而進入ConSTF或者Full狀態(tài)。
在Full狀態(tài),如果接受到MAAL要求發(fā)送的命令,則允許ATM發(fā)送,并進入ConPH狀態(tài),否則繼續(xù)處于Full狀態(tài)。
在PartS狀態(tài),如果接受到MAAL要求發(fā)送的命令,則進入StateD狀態(tài);如果Timer_CU已經過期,則進入Send狀態(tài);如果接收到SSSAR或者MAAL數(shù)據(jù)有效的指示,進入到ConPH狀態(tài)。
在StataD狀態(tài),把剩余的PDU空間都填0,允許ATM發(fā)送,并進入ConSTF狀態(tài)。
在ConSTF狀態(tài),根據(jù)前面留下來的Split和Part值構筑STF域,并設置奇偶標志為1,進入StateB狀態(tài)。
在StateB狀態(tài),如果Split不為0,進入MvSplitPH狀態(tài);否則根據(jù)Part的值進入Idle、StateA或者StateE狀態(tài)。
在MvSplitPH狀態(tài),把剩余的PH填充到新的PDU中,進入StateA或者StateE狀態(tài)。
在Send狀態(tài),如果接受到MAAL的發(fā)送命令,則進入狀態(tài)StateD;否則如果有新的SSSAR或者MAAL數(shù)據(jù),則進入ConPH狀態(tài)。
ATM發(fā)送模塊該模塊的任務就是把上層發(fā)來的CPS-PDU和VPI/VCI以及預先設定的GFC(基本流量控制)、PT(靜荷類型)、SLP(業(yè)務邏輯程序)打包成ATM信元發(fā)送出去,為了與UTOPIA總線發(fā)送模塊接口,發(fā)送完一個信元后需要加了兩個時鐘周期的空操作。
該模塊的狀態(tài)轉換如圖12所示該模塊開始處于Idle狀態(tài),如果ATM發(fā)送被使能,CPS2ATMFIFO(CPS發(fā)送模塊與ATM發(fā)送模塊間的FIFO隊列)中數(shù)據(jù)有效,且UTOPIA總線發(fā)送模塊中的FIFO有足夠的空間,則發(fā)出讀請求,進入Req狀態(tài);在Req狀態(tài),請求的數(shù)據(jù)還未到來,處于等待狀態(tài),當數(shù)據(jù)到來時,進入Transmit狀態(tài);在Transmit狀態(tài),從FIFO中讀到VPI/VCI信息以及PDU的第一個word,按照約定,如果VPI的前4bit為全0則為UNI信元,將GFC和VPI的低位以及VCI的高4位寫到FIFO中作為ATM信元的第一個Word,進入Transmit1狀態(tài);在Transmit1狀態(tài),將剩余的VCI位以及PT、SLP寫到FIFO中,進入Transmit2狀態(tài);在Transmit2狀態(tài),這時的ATM信元位置應該是頭校驗字節(jié)和填充字節(jié),物理層會自動完成,所以這里全寫0就可以了,進入Transmit3狀態(tài);在Transmit3、Transmit4、Transmit5、Transmit6狀態(tài),把24個信元凈荷寫到FIFO中,進入Patch狀態(tài);在Patch狀態(tài),寫一個空word到FIFO中,根據(jù)ATM發(fā)送是否使能,CPS2ATMFIFO中數(shù)據(jù)是否有效,且UTOPIA總線發(fā)送模塊中的FIFO是否有足夠的空間,決定是否發(fā)出讀請求,進入Patch1狀態(tài);在Patch1狀態(tài),再寫一個空word到FIFO中,根據(jù)Patch狀態(tài)中的判斷,進入Idle狀態(tài)或者Transmit狀態(tài)。
前面結合附圖對AAL2協(xié)議功能中的發(fā)送方向進行了描述,下面再結合附圖對本發(fā)明中的接收方向的涉及的裝置及其方法進行說明。參見圖8可以看出,在接收方向上,本發(fā)明所述的裝置主要包括ATM接收模塊、CPS接收模塊和SSSAR接收模塊,用于從ATM總線上接收數(shù)據(jù),并進行相應的處理后發(fā)送給用戶端。
ATM接收模塊該模塊的任務是從U2ATMFIFO(總線與ATM接收模塊間的FIFO隊列)中讀取ATM信元,并從接收到的ATM信元中提取出VPI/VCI和CPS-PDU發(fā)送出去,同時從信元中提取出的GFC、PT、CLP也送到寄存器中供ATM接收模塊的CPU讀取。
該模塊的具體的處理過程通過如下所述的狀態(tài)轉換過程進行說明,具體的狀態(tài)轉換過程如圖13所示
該模塊開始處于Idle狀態(tài),當被使能后,如果U2ATMFIFO中數(shù)據(jù)有效,而且ATM2CPSFIFO(ATM接收模塊與CPS接收模塊間的FIFO隊列)中空間足夠,則向U2ATMFIFO發(fā)出讀請求,進入Req狀態(tài);在Req狀態(tài),數(shù)據(jù)還未到來,處于等待狀態(tài),當請求的數(shù)據(jù)到來時,進入RecvHead狀態(tài);在RecvHead狀態(tài),得到VPI、GFC和VCI的前4bit,并進入RecvHead1狀態(tài);在RecvHead1狀態(tài),得到VCI的低12位和PT、CLP,再進入RecvHead2狀態(tài);在RecvHead2狀態(tài),得到ATM信元的頭校驗字節(jié)和填充字節(jié),進入RecvPayload狀態(tài);在RecvPayload狀態(tài),接收24個word的信元凈荷,和VPI/VCI一起組成CPS-PDU并寫到所述的ATM2CPSFIFO中;如果ATM接收模塊被使能,U2ATMFIFO中數(shù)據(jù)有效,而且ATM2CPSFIFO中空間足夠,則直接進入RecvHead狀態(tài)繼續(xù)接收下一個信元,否則,進入Idle狀態(tài)。
CPS接收模塊接收從ATM接收模塊發(fā)來的CPS-PDU,從中提取出CPS分組,組成SSSAR接收模塊需要的數(shù)據(jù)包,寫到CPS2SSSARFIFO(CPS接收模塊與SSSAR接收模塊間的FIFO隊列)中,該FIFO隊列寬度為48位,通道號(16個通道共4位)和VPI、VCI并行寫到高16位中。
所述的CPS接收模塊的邏輯圖如圖14所示,在接收過程中對CPS分組(即CPS-PDU)進行提取和重組,過程中可能會因為產生錯誤而放棄該分組,因此,在邏輯中引用了一個DPRAM(雙端口存儲器)來緩存重組中的CPS分組,如果放棄該分組,則DPRAM的地址跳回原來的地址重新開始寫入新的分組。
該模塊僅提供定量的CID服務,如目前僅能提供16種CID的服務,因此需要判斷接收分組的CID是否在服務范圍內,可以通過一個CAM(內容定址存儲器)來完成這個任務初始化時,CPS接收模塊的CPU把該需要提供服務的CID值以通道號為地址寫入CAM中,CPS接收過程中對接收的CID進行判斷,如果CAM中發(fā)現(xiàn)了CID值,則該服務是提供的,可以向SSSAR接收模塊發(fā)送。并且,根據(jù)通道號在CPU初始化過的RAM中查找出相應通道的SSSAR-PDU最大長度,判斷是否超出最大長度,如果超出,則報錯,放棄該分組。
所述的CPS接收模塊的處理過程可以通過相應的狀態(tài)轉換處理過程進行說明,參見圖15,所述的狀態(tài)包括Idle,Idle1,VerifySTF,VerifySTF1,CancelWhole,CancelWhole1,CancelPart,CancelPart1,VerifyHECW,VerifyHECP,Continue,Transmit,StateA。
CPS接收模塊開始處于Idle狀態(tài),如果被使能,ATM2CPSFIFO中的數(shù)據(jù)多于48個,且CPS2SSSARFIFO中空間足夠,則向ATM2CPSFIFO發(fā)出讀請求,進入Idle1狀態(tài)。
在Idle1狀態(tài),請求的FIFO隊列中的數(shù)據(jù)還未到來,處于等待狀態(tài),當數(shù)據(jù)到來時,進入VerifySTF狀態(tài)。
在VerifySTF狀態(tài),接收到STF和第一個數(shù)據(jù)(1byte),計算STF的奇偶校驗位,并緩存數(shù)據(jù)和VPI/VCI信息,進入VerifySTF1狀態(tài)。
在VerifySTF1狀態(tài)分為三種具體的處理,分別為(1)如果奇偶校驗錯誤,放棄整個PDU并報錯,進入CancelWhole狀態(tài);(2)如果奇偶校驗正確,而序列數(shù)(STF的SN位)不正確,則放棄當前分組并報錯,進入CancelPart狀態(tài);(3)如果沒有錯誤,則根據(jù)奇偶狀態(tài)的不同,進行下面的過程
在偶狀態(tài)如果Split=0,則判斷將處理的數(shù)據(jù)長度是否超過了一個PDU的長度,如果超過,而且OSF=47則進入Continue狀態(tài),奇偶狀態(tài)設置為1,如果OSF不等于47,則報錯并進入CancelPart狀態(tài);如果沒超過,比較OSF與期望值是否一致,不一致,則報錯并進入CancelPart狀態(tài),一致,則判斷期望值是否為0,若是0,表明一個分組重組完畢,進入Transmit狀態(tài)(奇偶狀態(tài)設置為1),若不是0,則判斷下一個字節(jié)是否為填充字節(jié),不是填充字節(jié)則開始做頭校驗的準備,進入VerifyHECW狀態(tài)(奇偶狀態(tài)設置為0);如果Split=1,則此時應已經接收到了全部的分組頭,則進行頭校驗,如果頭校驗錯,則報錯并進入CancelPart狀態(tài);無錯,則根據(jù)將處理數(shù)據(jù)是否超出了當前PDU范圍和OSF值是否正確而分別進入Transmit,Continue或者CancelPart或CancelPart1狀態(tài);如果Split=2,則進入VerifyHECP狀態(tài);在奇狀態(tài)如果Split=0則預測將處理的數(shù)據(jù)長度是否超過了一個PDU的長度,如果超過,而且OSF=47則進入Continue狀態(tài),如果OSF不等于47,則報錯并進入CancelPart狀態(tài);如果沒超過,比較OSF與期望值是否一致,不一致,則報錯并進入CancelPart狀態(tài),一致,表明一個分組重組完畢,進入Transmit狀態(tài)(這種情況下Expect不可能為0,故沒有偶情況的類似判斷);如果Split=1,則此時應已經接收到了全部的分組頭,則進行頭校驗,如果頭校驗錯,則報錯并進入CancelPart狀態(tài);無錯,則根據(jù)將處理數(shù)據(jù)是否超出了當前PDU范圍和OSF值是否正確而分別進入Transmit,Continue或者CancelPart或CancelPart1狀態(tài);
如果Split=2,則進入VerifyHECP狀態(tài);在VerifyHECW狀態(tài),進行頭校驗,頭校驗錯誤則進入CancelWhole1狀態(tài),頭校驗正確則根據(jù)要處理數(shù)據(jù)是否超出了本PDU范圍而進別進入Continue狀態(tài)或者Transmit狀態(tài);在VerifyHECP狀態(tài),這種狀態(tài)只有一種情況,Split=2的狀態(tài),因為Split=1的狀態(tài)在VerifySTF中已經處理過了;在該狀態(tài),進行頭校驗,頭校驗正確則根據(jù)要處理數(shù)據(jù)是否超出了本PDU范圍和OSF是否正確而進別進入Continue狀態(tài)或者Transmit狀態(tài)或者CancelPart狀態(tài),奇偶狀態(tài)設置為1;頭校驗錯誤則直接進入CancelPart1狀態(tài);在Transmit狀態(tài),將PDU中當前分組正剩余的字節(jié)處理完,并根據(jù)CID以及分組長度決定是否報錯或者寫到DPRam中等待發(fā)送。如果下一個字節(jié)是全0,則表示本PDU剩下的都是填充字節(jié),進入CancelWhole1狀態(tài),否則,表示下一個字節(jié)是一個新的分組的CID,進入StataA狀態(tài);在StateA狀態(tài),如果當前PDU已經處理完,進入Idle狀態(tài);否則如果下一個字節(jié)是全0,進入CancelWhole1狀態(tài);否則根據(jù)當前PDU處理完的字節(jié)數(shù)目來判斷進入VerifyHECW或者Idle狀態(tài),并相應設置奇偶狀態(tài);在Continue狀態(tài),將PDU中所有數(shù)據(jù)都取出來仍不能重組完一個CPS分組的情況,則將所有的PDU剩余字節(jié)都處理完,然后進入Idle狀態(tài);在CancelWhole狀態(tài),根據(jù)是否有當前分組遺留的字節(jié)而決定報錯,進入CancelWhole1狀態(tài);在CancelWhole1狀態(tài),等待當前PDU中所有字節(jié)都讀完,進入Idle狀態(tài);在CancelPart狀態(tài),根據(jù)是否有當前分組遺留的字節(jié)而決定報錯,進入CancelPart1狀態(tài);在CancelPart1狀態(tài),如果OSF值大于47,等待所有數(shù)據(jù)讀完,根據(jù)這種情況報錯并進入Idle狀態(tài);如果OSF等于47,則等待所有數(shù)據(jù)讀完,根據(jù)這種情況報錯并進入Idle狀態(tài);如果OSF小于47,則放棄當前PDU中的字節(jié)直到OSF所指示處,根據(jù)該字節(jié)是否為0進入CancelWhole1、VerifyHECW或者Idle狀態(tài)。
相應的狀態(tài)轉換處理過程結束后,接收的數(shù)據(jù)保存于DPRAM中,此時讀取/發(fā)送部分需要從DPRAM中讀出數(shù)據(jù)包,并根據(jù)UUI的值判斷是MAALUnitData(管理AAL部分的數(shù)據(jù))還是CPSUnitData(CPS部分的數(shù)據(jù)),然后按照各自的形式發(fā)送出去(如果是MAALUnitData則還需要向MAAL的CPU發(fā)出中斷,要求CPU讀取)。如果發(fā)送完一個包后,讀的地址與當前正在重組的CPS分組在DPRAM中的首地址一樣的話,則暫時停止讀取,直到DPRAM中的已經有了一個完整的包。
SSSAR接收模塊該模塊從CPS接收模塊送來的數(shù)據(jù),相同CID的在SSSAR接收模塊中組裝并寫到SDRAM中供用戶端的CPU讀取。
SSSAR接收模塊接收的數(shù)據(jù)包格式與CPS分組格式類似,只是沒有CID域和HEC域,CID與該數(shù)據(jù)包并行而來(同VPI/VCI一樣,在FIFO的高位),接收的數(shù)據(jù)包的具體格式如下表
由于接收到的數(shù)據(jù)有不同的CID,而且不一定是一個CID結束后才開始另一個CID的傳輸,所以需要有并行數(shù)個CID的SSSAR子接收模塊同時工作,將接收的數(shù)據(jù)分別寫入對應的SDRAM分段中。
考慮到采用的邏輯芯片的FPGA(可編程邏輯門陣列)的資源,以及SDRAM的空間,因此僅能同時并行處理一定數(shù)量的CID,即該模塊由一定數(shù)量的SSSAR子接收模塊組成,每個SSSAR子接收模塊完成一個CID的通道的數(shù)據(jù)重組功能。
事實上,從CPS接收模塊來的SSCS-PDU數(shù)據(jù)是順序的,不可能同時來多個CID值的數(shù)據(jù),因此在一個時間內只有CID值被選中的那個通道在工作,數(shù)據(jù)寫入到SDRAM中,而其余的通道都只是在等待該PDU結束以判斷下一個PDU是否是為自己的。
SSSAR子接收模塊的具體處理過程可以通過相應的狀態(tài)轉換處理過程進行說明,所述的狀態(tài)包括Idle,Idle1,Recv,Recv1,Recv2,Over,Over1,Over2,Over3,Part,Abort,Abort1狀態(tài)。
具體的狀態(tài)轉換圖如圖16所示,開始時處于Idle狀態(tài),如果分配給這個通道的SDRAM分段中的空間已經少于128KB,則該通道等待,直到用戶端的CPU將該分段中的數(shù)據(jù)讀完。如果分段空間足夠,則如果SSSAR接收模塊已經使能,且CPS2SSSARFIFO(CPS接收模塊與SSSAR接收模塊間的FIFO隊列)有新數(shù)據(jù),則向該FIFO隊列發(fā)出讀請求,并進入Idle1狀態(tài);在Idle1狀態(tài),請求的數(shù)據(jù)還未到來,處于等待狀態(tài),當數(shù)據(jù)到來時進入Recv狀態(tài);在Recv狀態(tài),接收FIFO隊列傳來的數(shù)據(jù),得到該PDU的長度和UUI值,同時,得到傳來的通道號,如果該通道號就是該SSSAR子接收模塊本身的通道號,則該SSSAR子接收模塊工作,否則,該子接收模塊只接收數(shù)據(jù),并不處理和寫到SDRAM,兩種情況均進入Recv1狀態(tài),所述的通道號并非就是CID,通常CID有8位,而通道號只有4位,對應16個通道,各通道對應的CID存于CIDCAM中。
在Recv1狀態(tài),將FIFO隊列中的SDU凈荷按順序寫到SDRAM中,根據(jù)前次傳輸時是否有剩余字節(jié),分奇偶情況。一個SDU傳輸完后,根據(jù)UUI值是否為27進入Part狀態(tài)或者Over狀態(tài),如果是27則進入Part狀態(tài),否則進入Over狀態(tài)。但當上次SDU傳輸有一個字節(jié)剩余,而這次的UUI值不為27時,如果這次傳輸?shù)氖桥紨?shù)個字節(jié),則進入Recv2狀態(tài);在Recv2狀態(tài),將剩余的一個字節(jié)寫到SDRAM中,進入Over狀態(tài);在Part狀態(tài),從FIFO隊列中得到的數(shù)據(jù)得出下一個SDU的長度和UUI,如果累計長度大于65568字節(jié),說明已經超過了重裝的SSSAR-SDU地最大允許長度,出錯,進入Abort狀態(tài),如果未超過最大允許長度,則進入RecV狀態(tài);在Over狀態(tài),在該發(fā)送給用戶端的CPU包的首地址寫數(shù)據(jù)包長度的低16位,并進入Over1狀態(tài);在Over1狀態(tài),在該CPU包的次地址寫數(shù)據(jù)包長度的高3位和接收的VPI,并進入Over2狀態(tài);在Over2狀態(tài),在該CPU包的下一個地址寫VCI,并進入Over3狀態(tài);在Over3狀態(tài),在該CPU包的下一個地址寫UUI,如果SDRAM分段的剩余空間不足128KB,則向用戶端的CPU發(fā)出中斷,并不再接收任何新的PDU,否則回到Idle狀態(tài)等待下一個PDU;在Abort狀態(tài),等待當前PDU傳輸完,如果該PDU的UUI為27,則進入Part狀態(tài)(還回到Abort狀態(tài)),否則,進入Abort1狀態(tài);在Abort1狀態(tài),發(fā)出錯誤指示,SDRAM地址回到該SDU未重組時的值,并進入Idle狀態(tài)。
經過上述結合附圖針對本發(fā)明所述的裝置及其方法中的數(shù)據(jù)發(fā)送方向和接收方向的描述,可以看出本發(fā)明采用通用的邏輯芯片實現(xiàn)了AAL2協(xié)議的功能,從而降低了AAL2協(xié)議的實現(xiàn)成本,且保證了可以提供足夠的AAL2業(yè)務數(shù)量。
本發(fā)明所述的裝置及其方法還實現(xiàn)了針對AAL2協(xié)議的測試功能,下而再結合圖8對本發(fā)明中涉及的AAL2測試功能的實現(xiàn)進行說明。本發(fā)明中所述的測試功能是通過一組計數(shù)器實現(xiàn)的,當需要進行AAL2功能測試時,則向相應的計數(shù)器發(fā)送計數(shù)使能,令相應的計數(shù)器開始進行AAL2協(xié)議中各功能的測試統(tǒng)計,所述的計數(shù)使能可以為系統(tǒng)發(fā)出的統(tǒng)計信號;所述的測試統(tǒng)計包括各發(fā)送模塊所發(fā)送數(shù)據(jù)的發(fā)送統(tǒng)計,各接收模塊所接收數(shù)據(jù)的接收統(tǒng)計,及接收模塊接收的錯誤數(shù)據(jù)的統(tǒng)計等等。
另外,由于本發(fā)明中所述的實現(xiàn)AAL2的裝置包括SSSAR發(fā)送模塊、SSSAR接收模塊、CPS發(fā)送模塊、CPS接收模塊組成、ATM發(fā)送模塊和ATM接收模塊,從而使得基于本發(fā)明可以較為方便地提供對業(yè)務數(shù)據(jù)、CPS包、ATM信號的捕捉功能。
以上所述,僅為本發(fā)明較佳的具體實施方式
,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內,可輕易想到的變化或替換,都應涵蓋在本發(fā)明的保護范圍之內。因此,本發(fā)明的保護范圍應該以權利要求書的保護范圍為準。
權利要求
1.一種實現(xiàn)AAL2協(xié)議的裝置,其特征在于包括基于AAL2(AAL,異步傳輸模式應用層)劃分確定的若干個功能模塊,且所述的各個功能模塊采用通用的可編程邏輯芯片實現(xiàn);所述的各個功能模塊包括SSSAR(業(yè)務特定拆裝子層)發(fā)送模塊、SSSAR接收模塊、CPS(公共部分子層)發(fā)送模塊、CPS接收模塊組成、ATM(異步傳輸模式)發(fā)送模塊和ATM接收模塊;所述的SSSAR發(fā)送模塊用于將用戶端發(fā)送來的報文處理后發(fā)送給CPS發(fā)送模塊,CPS發(fā)送模塊對報文繼續(xù)進行處理并發(fā)送給ATM發(fā)送模塊,所述的ATM發(fā)送模塊將CPS發(fā)送模塊發(fā)送來的報文處理為ATM信元后發(fā)送;所述的ATM接收模塊用于將接收到的ATM信元處理為CPS接收模塊可以識別的報文并發(fā)送給CPS接收模塊,所述的CPS接收模塊用于將ATM接收模塊傳送來的報文進行處理并發(fā)送給SSSAR接收模塊,SSSAR接收模塊繼續(xù)對報文進行處理并發(fā)送給用戶端。
2.根據(jù)權利要求1所述的實現(xiàn)AAL2協(xié)議的裝置,其特征在于所述的SSSAR發(fā)送模塊和SSSAR接收模塊分別連接有SDRAM(同步動態(tài)存儲器),所述的SDRAM用于存儲待發(fā)送的報文。
3.根據(jù)權利要求2所述的實現(xiàn)AAL2協(xié)議的裝置,其特征在于所述的SDRAM與SSSAR發(fā)送模塊間,各個相連接的功能模塊間,以及所述的ATM接收模塊與ATM總線間均設置有FIFO(先入先出)隊列。
4.根據(jù)權利要求14所述的實現(xiàn)AAL2協(xié)議的裝置,其特征在于所述的各個功能模塊還分別包括相應的發(fā)送統(tǒng)計子模塊或接收統(tǒng)計子模塊,且所述的接收統(tǒng)計子模塊還進一步包括相應的SSSAR錯誤統(tǒng)計子模塊或CPS錯誤統(tǒng)計子模塊,所述的發(fā)送統(tǒng)計子模塊和接收統(tǒng)計子模塊包括計數(shù)器,所述的計數(shù)器通過發(fā)送統(tǒng)計信號使能。
5.一種基于上述裝置的數(shù)據(jù)處理方法,其特征在于當所述的裝置向ATM總線發(fā)送數(shù)據(jù)時,包括A、SSSAR發(fā)送模塊接收用戶端發(fā)送來的數(shù)據(jù)報文,并將所述的數(shù)據(jù)報文拆分為CPS發(fā)送模塊需要的CPS分組報文,發(fā)送給CPS發(fā)送模塊,所述的CPS分組報文中承載著用戶的CID(信道標識)信息,同時SSSAR發(fā)送模塊還將從所述的數(shù)據(jù)報文中獲得的VPI/VCI(虛鏈路標識/虛通道標識)信息發(fā)送給CPS發(fā)送模塊;B、CPS發(fā)送模塊將SSSAR發(fā)送模塊發(fā)送來的CPS分組報文組裝為CPS-PDU(CPS協(xié)議數(shù)據(jù)單元)報文發(fā)送給ATM發(fā)送模塊,所述的CPS-PDU報文中仍然承載著用戶的CID信息,同時繼續(xù)向ATM發(fā)送模塊繼續(xù)傳送所述的VPI/VCI信息;C、ATM發(fā)送模塊將所述的CPS-PDU及所述的VPI/VCI信息組裝為相應的ATM信元,并發(fā)送到ATM總線上;當所述的裝置從ATM總線接收數(shù)據(jù)時,包括D、ATM接收模塊從ATM總線上接收ATM信元,并提取出CPS-PDU及VPI/VCI信息發(fā)送給CPS接收模塊;E、CPS接收模塊提取所述的CPS-PDU中的CPS分組報文組成SSSAR接收模塊需要的數(shù)據(jù)報文,并發(fā)送給SSSAR接收模塊,同時將所述的VPI/VCI信息發(fā)送給SSSAR接收模塊;F、SSSAR接收模塊接收CPS接收模塊發(fā)送來的數(shù)據(jù)和VPI/VCI信息,然后根據(jù)所述數(shù)據(jù)承載的CID信息進行所述的數(shù)據(jù)和VPI/VCI信息的組裝,并發(fā)送給相應的用戶端。
6.根據(jù)權利要求5所述的數(shù)據(jù)處理方法,其特征在于步驟A所述的SSSAR發(fā)送模塊接收用戶端發(fā)送來的數(shù)據(jù)報文包括保存于SDRAM中的用戶端發(fā)送來的數(shù)據(jù)報文由SDRAM控制器讀出,并寫入到FIFO隊列中,SSSAR發(fā)送模塊從所述的FIFO隊列中獲取數(shù)據(jù)。
7.根據(jù)權利要求5或6所述的數(shù)據(jù)處理方法,其特征在于該方法所述的處理過程為基于狀態(tài)機實現(xiàn)。
8.根據(jù)權利要求7所述的數(shù)據(jù)處理方法,其特征在于,當所述的裝置向ATM總線發(fā)送數(shù)據(jù)時,所述的狀態(tài)機分別為所述的SSSAR發(fā)送模塊包括的各個狀態(tài)為Idle狀態(tài)SSSAR發(fā)送模塊處于空閑狀態(tài);WaitRead狀態(tài)SSSAR發(fā)送模塊向FIFO隊列發(fā)出讀請求后數(shù)據(jù)還未到來前的等待狀態(tài);PreTran1狀態(tài)SSSAR發(fā)送模塊接收FIFO隊列發(fā)送來的數(shù)據(jù)包長度的低16位時的狀態(tài);PreTran2狀態(tài)接收所述的FIFO隊列發(fā)送來的數(shù)據(jù)包長度的高3位和VPI信息時的狀態(tài);PreTran3狀態(tài)接收所述的FIFO隊列發(fā)送來的VCI信息時的狀態(tài);PreTran4狀態(tài)接收所述的FIFO隊列發(fā)送來的UUI(用戶間指示)信息和CID(信道標識)信息時的狀態(tài);PreTran5狀態(tài)在該狀態(tài)形成待發(fā)送的PDU的長度和UUI,并根據(jù)待發(fā)送的凈荷字節(jié)數(shù)與Segment_Length(段長)間的關系確定進入Tran1狀態(tài)或Tran2狀態(tài);Tran1狀態(tài)將剩余字節(jié)打包發(fā)送出去,發(fā)送完成后系統(tǒng)進入Idle狀態(tài);Tran2狀態(tài)在該狀態(tài)里,發(fā)送部分將Segment_Length(+/-1)個字節(jié)打包發(fā)送出去,發(fā)送完成后返回到PreTran5狀態(tài);所述的CPS發(fā)送模塊包括的各個狀態(tài)為Idle狀態(tài)CPS發(fā)送模塊處于空閑狀態(tài);PreConPH狀態(tài)當CPS發(fā)送模塊向FIFO隊列發(fā)出讀請求,且數(shù)據(jù)還沒到來時的狀態(tài);ConPH狀態(tài)收到FIFO隊列發(fā)送來的CID值時的狀態(tài),如果奇偶標志為1,則把前面未發(fā)的一個字節(jié)和CID值發(fā)出去,奇偶標志設置為偶,如果此時CPS-PDU已經滿了,則設置Part(分塊)和Split(溢出)值,并根據(jù)層管理是否允許發(fā)送PDU而進入ConSTF或者Full狀態(tài),否則,進入ConPH1狀態(tài),如果奇偶標志為0,則因為只有一個可寫的字節(jié),暫不發(fā)送,進入ConPH1狀態(tài);ConPH1狀態(tài)收到FIFO隊列發(fā)送來的CPS-SDU的長度和UUI信息時的狀態(tài),如果PDU已滿則進入ConSTF或者Full狀態(tài);否則,預測加上要發(fā)送的SDU是否超出了一個PDU的長度,分別進入StateE或者StateA狀態(tài);StateA狀態(tài)即不會超過PDU長度,則把接收到的數(shù)據(jù)打包到PDU中,如果PDU以滿,則根據(jù)MAAL是否允許發(fā)送而進入ConSTF或者Full狀態(tài);否則,根據(jù)TimerCU是否過期進入Send或者PartS狀態(tài);StateE狀態(tài)即超過PDU長度,該SDU將被分割,把未超出的數(shù)據(jù)打包到PDU中,并根據(jù)需要設置相應的Split和PartS值,根據(jù)MAAL是否允許發(fā)送而進入ConSTF或者Full狀態(tài);Full狀態(tài)如果接受到MAAL要求發(fā)送的命令,則允許ATM發(fā)送,并進入ConPH狀態(tài),否則繼續(xù)在Full狀態(tài)。PartS狀態(tài)如果接受到MAAL要求發(fā)送的命令,則進入StateD狀態(tài);否則如果TimerCU已經過期,則進入Send狀態(tài);否則如果接收到SSSAR或者MAAL數(shù)據(jù)有效的指示,進入到ConPH狀態(tài)。StataD狀態(tài)把剩余的PDU空間都填0,允許ATM發(fā)送,并進入ConSTF狀態(tài);ConSTF狀態(tài)根據(jù)前面留下來的Split和PartS值構筑STF域,并設置奇偶標志為1,進入StateB狀態(tài);StateB狀態(tài)如果Split不為0,進入MvSplitPH狀態(tài);否則根據(jù)Part的值進入Idle、StateA或者StateE狀態(tài);MvSplitPH狀態(tài)把剩余的PH填充到新的PDU中,進入StateA或者StateE狀態(tài);Send狀態(tài)如果接受到MAAL的發(fā)送命令,則進入狀態(tài)StateD;否則如果有新的SSSAR或者MAAL數(shù)據(jù),則進入ConPH狀態(tài)。所述的ATM發(fā)送模塊包括的各個狀態(tài)為Idle狀態(tài)ATM發(fā)送模塊處于空閑狀態(tài);Req狀態(tài)ATM發(fā)送模塊向FIFO發(fā)送讀請求且數(shù)據(jù)未到來時的狀態(tài);Transmit狀態(tài)從FIFO中讀出VPI/VCI信息以及PDU的第一個word時的狀態(tài);Transmit1狀態(tài)把剩余的VCI位以及PT、SLP寫到FIFO中,進入Transmit2狀態(tài);Transmit2狀態(tài),這時的ATM信元位置應該是頭校驗字節(jié)和填充字節(jié),物理層會自動完成,所以這里全寫0就可以了,進入Transmit3狀態(tài);Transmit3、Transmit4、Transmit5、Transmit6狀態(tài),把24個信元凈荷寫到FIFO中,進入Patch狀態(tài);Patch狀態(tài),寫一個空word到FIFO中根據(jù)ATM發(fā)送是否使能,CPS2ATMFIFO中數(shù)據(jù)是否有效,且UTOPIA發(fā)送模塊中的FIFO是否有足夠的空間,決定是否發(fā)出讀請求,進入Patch1狀態(tài);Patch1狀態(tài),再寫一個空word到FIFO中,根據(jù)Patch狀態(tài)中的判斷,進入Idle狀態(tài)或者Transmit狀態(tài)。
9.根據(jù)權利要求7所述的數(shù)據(jù)處理方法,其特征在于,當所述的裝置從ATM總線接收數(shù)據(jù)時,所述的狀態(tài)機分別為所述的ATM接收模塊包括的各個狀態(tài)為Idle狀態(tài)ATM接收模塊起始狀態(tài),即空閑狀態(tài);Req狀態(tài)發(fā)出讀請示,但數(shù)據(jù)還未到來,處于等待狀態(tài);RecvHead狀態(tài)獲得VPI、GFC和VCI部分信息;RecvHead1狀態(tài)獲得VCI部分信息,及PT和CLP信息;RecvHead2狀態(tài)獲得ATM信元的頭校驗字節(jié)和填充字節(jié);RecvPayload狀態(tài)接收24個word(字)的信元凈荷,和VPI/VCI一起組成CPS-PDU并寫到FIFO隊列中;所述的CPS接收模塊包括的狀態(tài)為Idle狀態(tài)初始狀態(tài)為空閑狀態(tài);Idle1狀態(tài)發(fā)出讀請求但數(shù)據(jù)還未到來,處于等待狀態(tài);VerifySTF狀態(tài)接收到STF和第一個數(shù)據(jù)(1byte),計算STF的奇偶校驗位,并緩存數(shù)據(jù)和VPI/VCI信息;在VerifySTF1狀態(tài)分為三種具體的處理,分別為(1)如果奇偶校驗錯誤,放棄整個PDU并報錯,進入CancelWhole狀態(tài);(2)如果奇偶校驗正確,而序列數(shù)(STF的SN位)不正確,則放棄當前分組并報錯,進入CancelPart狀態(tài);(3)如果奇偶校驗正確且序列數(shù)也正確,則根據(jù)奇偶狀態(tài)進行數(shù)據(jù)的處理;VerifyHECW狀態(tài)Split=0時,進行頭部校驗,并根據(jù)頭部校驗結果轉入不同的狀態(tài);VerifyHECP狀態(tài)Split=2時,進行頭校驗,并根據(jù)頭部校驗結果轉入不同的狀態(tài);Transmit狀態(tài)將PDU中當前分組正剩余的字節(jié)處理完,并根據(jù)CID以及分組長度決定是否報錯或者寫到DPRam中等待發(fā)送;StateA狀態(tài)根據(jù)當前PDU的處理狀況及待處理字節(jié)狀況轉入對應的狀態(tài);Continue狀態(tài)將所有的PDU剩余字節(jié)都處理完,然后進入Idle狀態(tài);CancelWhole狀態(tài)根據(jù)是否有當前PDU遺留的字節(jié)而決定報錯;CancelWhole1狀態(tài)等待當前PDU中所有字節(jié)都讀完,進入Idle狀態(tài);CancelPart狀態(tài)根據(jù)是否有當前分組遺留的字節(jié)而決定報錯;CancelPart1狀態(tài)根據(jù)OSF值進行數(shù)據(jù)的讀處理;所述的SSSAR接收模塊包括的狀態(tài)為Idle1狀態(tài)初始狀態(tài)為空閑狀態(tài);Recv狀態(tài)獲得PDU的長度和UUI值,及通道號;Recv1狀態(tài)將FIFO隊列中的SDU凈荷按順序寫到SDRAM中;Recv2狀態(tài)如果有剩余的一個字節(jié)則將其寫到SDRAM中;Part狀態(tài)獲得下一個SDU的長度和UUI值;Over狀態(tài)在發(fā)送給用戶端的CPU包的首地址寫數(shù)據(jù)包長度的低16位;Over1狀態(tài)在CPU包的次地址寫數(shù)據(jù)包長度的高3位和接收的VPI;Over2狀態(tài)依次在CPU包的下一個地址寫VCI;Over3狀態(tài)依次在CPU包的下一個地址寫UUI;Abort狀態(tài)等待當前PDU傳輸完成;Abort1狀態(tài)當出現(xiàn)錯誤時,發(fā)出錯誤指示,且SDRAM地址回到該SDU未重組時的值。
全文摘要
本發(fā)明一種實現(xiàn)AAL2協(xié)議的裝置及其數(shù)據(jù)處理方法。本發(fā)明主要是將AAL2協(xié)議需要實現(xiàn)的功能劃分確定為若干個功能模塊,并將所述的各個功能模塊均采用通用的可編程邏輯芯片實現(xiàn)。因此,本發(fā)明一方面,與采用專用芯片實現(xiàn)AAL2功能的技術方案相比大大降低了實現(xiàn)AAL2協(xié)議的成本,另一方面,與采用軟件實現(xiàn)AAL2功能的技術方案相比大大提高了相應的AAL2業(yè)務的提供能力。同時,本發(fā)明還提供了針對AAL2協(xié)議的測試功能,從而可以應用到相應的通信設備上,實現(xiàn)針對帶有AAL2功能的通信設備的相關測試。
文檔編號H04L12/56GK1719830SQ200410071520
公開日2006年1月11日 申請日期2004年7月7日 優(yōu)先權日2004年7月7日
發(fā)明者李占有 申請人:華為技術有限公司