專利名稱:一種利用fpga實現sbi接口時隙按配置分流的方法和裝置的制作方法
技術領域:
本發明涉及通信網絡互連技術和基于FPGA(可編程邏輯器件)的開發設計領域, 并具體設計了利用FPGA實現SBI (帶寬可變的芯片互聯協議接口)接口數據解析、時隙的按配置分流和鏈路數據的HDLC處理的裝置。
背景技術:
SBI (Scaleable Bandwidth Interconnect即可變帶寬的芯片互聯)協議是是 PMC公司專為SDH(Synchronous Digital Hierarchy即同步數字體系)協議定制的用于芯片間互聯的接口協議;它將SDH接口的幀結構數據分解成簡單的,用ClFP(幀定位脈沖)、 I^ayloacLValid (凈荷有效)、Data(8bit 凈荷數據)、I^ayloadJndicator (凈荷指示,又稱 V5指示)和Data_Parity (總線校驗)這五類信號指示的易于芯片間數據傳輸的結構類型。 由PMC公司的SDH專用處理芯片完成SDH的并串轉換、時鐘恢復、告警和鏈路維護信息的提取和統計等操作,同時將凈荷數據通過SBI接口與下級處理芯片互聯。子時隙分流(時隙的按配置分流)是將El中的時隙數據(64Kbps)根據相應的配置信息進一步分解成帶寬更小(如32Kbps、16Kbps、8Kbps)的數據流的操作。因為通信部分鏈路維護、信令信息數據的總流量不大、需求帶寬小,所以基于節約總帶寬和提高鏈路量的考慮,子時隙已成為目前通信領域比較常用的OAM數據、信令數據的傳輸方式,并且有更加細化的趨勢。現有的技術解決方案是利用PMC套片(PMC的SDH專用處理芯片+HDLC專用處理芯片)來完成SDH數據的提取和多鏈路數據的HDLC處理,模式如圖1所示。該方案優點是結構簡單、易于實現。FPGA部分只需要根據Utopia接口時序提取出多路HDLC處理芯片處理完成的HDLC分片數據,然后分鏈路進行分片HDLC數據的合成并將合成完成的完整HDLC數據包傳送至主機即可。但該方案完全使用PMC套片完成前端SBI接口數據解析和鏈路數據提取,無法滿足按配置分流(子時隙)、高密度采集等通信行業趨勢性的設計需求。其主要使用了 PMC的套片,定制能力不強,而且結構功能單一,主要缺點如下(1)單芯片最多只能支持672條數據鏈路的處理。這大大制約了采集卡對提高的采集密度和采集數據流量的需求。( 鏈路類型單一,不能采集子時隙鏈路的數據。該方案只能對El、n*64K、64K顆粒度的鏈路數據進行采集處理。由于目前通信運營商的線網中包含大量子時隙鏈路,而且運營商已強制要求采集設備支持對子時隙鏈路數據的采集和處理,這樣這種老舊的方案就凸顯出了其固有的弱點。( 成本高、可控性差。現有技術方案主要成本和制約因素在PMC的HDLC專用處理芯片部分,而且可擴展余地小、不能靈活定制。為了克服現有技術中的上述缺陷,本發明提出了一種使用FPGA實現SBI接口數據的解析和時隙的按配置分流(子時隙分流)裝置;這樣既增加了鏈路處理能力和處理的鏈路類型,又能提高公司對產品的保密性和可控性的要求。
發明內容
為了解決上述技術問題,本發明提出了ー種利用FPGA實現SBI接ロ時隙的按配置分流的方法,其中該方法包括接收外部SBI格式的幀數據,并對所述幀數據進行解析;對解析后的數據按照通道進行拼接;將拼接后的數據按照驅動下發的配置信息分割成不同顆粒度的數據流。進一歩,當接收多個SBI接ロ輸入的SBI格式的數據流時,將該多路數據流解析后合成為一路數據然后再按照通道進行拼接。進一歩,對所述幀數據進行解析進ー步包括對按照SBI幀格式傳入的幀數據加上行號、列號、幀號、復幀號;根據先前確定的每個時隙通道的狀態和數據的行號、列號、幀號以及復幀號信息分解出時隙數據、El編號、TS編號信息;按照由驅動配置的綁定信息為時隙數據分配相應的綁定通道號和使能信號,然后與El編號、TS編號一起輸出。進一歩,其中在對解析后的數據按照通道進行拼接進ー步包括從前級數據緩存 FIFO中提取數據和通道信息,然后根據通道信息從狀態數據緩存RAM中提取相應通道的狀態數據并判斷其狀態,然后根據拼接結果做出判斷,即如果RAM中的狀態顯示拼接未完成, 則將從前級FIFO中讀取的數據與RAM中的狀態數據拼接并存入狀態數據緩存RAM中,如果 RAM中的狀態顯示拼接已完成,則將拼接完成的數據送至下級模塊,同時將狀態數據緩存 RAM中的內容清空。進一歩,其中所述將拼接后的數據按照驅動下發的配置信息分割成不同顆粒度的數據流進一歩包括將送入的64Kbps顆粒度的數據分割為32Kbps、16Kbps或8Kbps顆粒度。進一歩,其中所述所述將拼接后的數據按照驅動下發的配置信息分割成不同顆粒度的數據流進ー步還支持混合子時隙的分割。此外,本發明還提出了ー種利用FPGA實現SBI接ロ時隙的按配置分流的裝置, 其中該裝置包括SBI接ロ,用于接收外部SBI格式的幀數據,并對所述幀數據進行解析并發送;位寬轉換模塊,用于對其接收的數據按照通道進行拼接,并傳送至分流模塊;分流模塊,用于將位寬轉換模塊送入的數據按照驅動下發的配置信息分割成不同顆粒度的數據流。進一歩,該裝置具有多個SBI接ロ,并且進ー步還包括復制通道,用于根據配置信息,復制SBI接口中指定鏈路的數據,供后端實時監測指定鏈路的情況;仲裁模塊,用于接收多個SBI接ロ輸入的數據流,并將該多路數據流合成為一路數據輸出到所述位寬轉換模塊。進一歩,所述SBI接ロ包括以下子模塊行列編號子模塊,用于對按照SBI幀格式傳入的幀數據加上行號、列號、幀號、復幀號;解幀子模塊,用于接收所述行列編號子模塊傳輸的信息,并根據先前確定的每個時隙通道的狀態和數據的行號、列號、幀號以及復幀號信息分解出時隙數據、El編號、TS編號信息;通道號綁定子模塊,用于按照由驅動配置的綁定信息為時隙數據分配相應的綁定通道號和使能信號,然后與El編號、TS編號一起輸出。進一歩,所述SBI接ロ的對外接ロ有SBI接ロ,數據、El信號、時隙號、被綁定的通道號和使能信號的接ロ,配置接ロ以及控制和狀態接ロ。進一歩,所述仲裁模塊還包括ー個仲裁狀態機和三個數據緩存FIFO。進一歩,所述仲裁狀態機是采用令牌環(Toking ring)的方式循環輪詢三個數據
5緩存FIFO。進一步,其中所述位寬轉換模塊還包括一個狀態數據緩存RAM和一個狀態機,其中狀態機從前級數據緩存FIFO中提取數據和通道信息,然后根據通道信息從狀態數據緩存RAM中提取相應通道的狀態數據并判斷其狀態,然后根據拼接結果做出判斷,即如果RAM 中的狀態顯示拼接未完成,則將從前級FIFO中讀取的數據與RAM中的狀態數據拼接并存入狀態數據緩存RAM中,如果RAM中的狀態顯示拼接已完成,則將拼接完成的數據送至下級模塊,同時將狀態數據緩存RAM中的內容清空。進一步,其中所述分流模塊將送入的64Kbps顆粒度的數據分割為32Kbps、16Kbps 或8Kbps顆粒度。進一步,其中所述分流模塊還支持混合子時隙的分割。進一步,其中所述分流模塊的接口包括前級數據輸入接口,向后級模塊的數據輸出接口,用于驅動下發配置信息和子時隙的使能開關的配置接口。進一步,該裝置還進一步包括PCI_l0Cal模塊,用于完成FPGA與PCI橋芯片的連接和數據通信。ITU對照表,用于將FPGA內部使用的E1、TS編號信息轉換為ITU標準的3_7_3信息,供后級模塊和上層軟件使用;HDLC處理單元,用于采用并行HDLC處理。該部分將數據流按通道進行HDLC解析和合成,生成相應的錯誤、告警報告并上傳;各級數據緩存模塊,用于連接各個模塊,暫存數據以消除各模塊處理帶寬的差異,保持數據完整性,同時各級數據緩存還用于各模塊間工作時鐘域的切換。本發明利用FPGA(可編程邏輯器件)實現SBI (帶寬可變的芯片互聯協議接口) 幀格式解析和時隙的按配置分流(子時隙分流)屬于對接口協議和數據流的深度解析和處理,技術含量高、保密性強,不容易被模仿和套用;對于現今高密度、多鏈路的通信數據采集和處理具有更大的優勢。
圖1為現有技術中的SDH數據的提取和多鏈路數據的HDLC處理的示例;圖2為利用FPGA實現SBI接口時隙按配置分流裝置的方框圖;圖3為SBI接口的內部模塊框圖;圖4為SBI數據的幀格式示例;圖5為仲裁狀態機的示例;圖6為位寬轉換模塊進行按照通道進行拼接處理的流程圖;圖7為分流模塊將32位寬的64Kbps數據流分割成四路16Kbps數據流的示意圖;圖8為為利用FPGA實現SBI接口時隙按配置分流裝置的流程圖。
具體實施例方式參見圖2,利用FPGA實現SBI接口和時隙的按配置分流裝置主要由SBI接口、仲裁模塊、位寬轉換模塊、分流模塊、PCI_local模塊、ITU對照表、HDLC處理單元以及各級數據緩存模塊組成,各級模塊流水完成相應的處理。下面對該利用FPGA實現SBI接口時隙按配置分流裝置的各個模塊進行詳細介紹。
DSBI接ロ,用于接收外部SBI格式的幀數據,并對所述幀數據進行解析并發送, 其中圖3為SBI接ロ的內部模塊框圖。外部SBI格式的幀數據通過SBI硬件信號連接送入FPGA,然后經過“行列編號子模塊”對按照SBI幀格式(SBI幀格式如圖4)傳入的幀數據加上行號、列號、幀號、復幀號等信息后送入“解幀子模塊”;在“解幀子模塊”模塊中根據先前確定的每個時隙通道的狀態和數據的行號、列號、幀號以及復幀號信息分解出時隙數據、El編號、TS編號信息送入“通道號綁定子模塊”;“通道號綁定子模塊”按照由驅動配置的綁定信息為時隙數據分配相應的綁定通道號和使能信號,然后與El編號、TS編號一起輸出。“通道號綁定子模塊”還有ー個功能就是完成數據流的裁剪,因為SBI接ロ傳入的數據量非常大(77. 76MHz*8bit);我們可以通過將ー些不需要采集或者不關心的鏈路數據配置成‘不使能’來減少大數據量帶來的對后端模塊的沖擊。SBI接ロ的對外接ロ主要有1.SBI接ロ(硬件連接線)2.數據、El號、TS(時隙)號、被綁定的通道號和使能信號3.配置接ロ(通道綁定和使能配置的下發接ロ)4.控制和狀態接ロ,主要有總使能開關、奇偶校驗指示、V5缺失指示等這里可以采用ー個SBI接ロ來接收SBI幀數據,或設置多個SBI接ロ來接收多路 SBI幀數據。復制通道部分是ー個附加功能模塊;它根據配置信息,復制(不影響正常數據流) SBI接口中指定鏈路的數據,供后端或者用戶實時監測指定鏈路的情況。2)仲裁模塊,用于接收多個SBI接ロ輸入的數據流,并將該多路數據流合成為ー 路數據輸出。該模塊包含ー個仲裁狀態機和三個數據緩存FIFO (分別緩存A路、B路和復制通道部分的數據)。仲裁狀態機采用Toking_Ring (令牌環)的方式循環輪詢三個數據緩存FIFO,如圖 5所示。這樣可以防止出現其中ー個FIFO因數據流量較大而阻塞了另外兩個FIFO的數據傳輸的情況發生。當只有ー個SBI接ロ吋,可以不需要該仲裁模塊,SBI接ロ的輸出數據直接傳輸到位寬轉換模塊,但當存在多個SBI接ロ吋,該仲裁模塊對多個數據進行合并后并傳輸到位寬轉換模塊。3)位寬轉換模塊,用于提取前級數據緩存FIFO中的數據按照通道進行拼接,并傳送至分流模塊。該模塊由一個狀態數據緩存RAM和一個狀態機組成。參見圖7,狀態機從前級數據緩存FIFO中提取數據和通道信息,然后根據通道信息從狀態數據緩存RAM中提取相應通道的狀態數據并判斷其狀態,然后根據拼接結果做出判斷,即如果RAM中的狀態顯示拼接未完成,則將從前級FIFO中讀取的數據與RAM中的狀態數據拼接并存入狀態數據緩存RAM 中,如果RAM中的狀態顯示拼接已完成,則將拼接完成的數據送至下級模塊,同時將狀態數據緩存RAM中的內容清空。該模塊將數據按照通道進行拼接,由輸入的Sbit位寬數據拼接成32bit位寬數據輸出。如果需要支持8Kbps顆粒度的分流,數據需要拼接成64bit位寬。4)分流模塊參見圖2,分流模塊是與上級的位寬轉換模塊緊密銜接的,它將上級模塊送入的數據按照驅動下發的配置信息分割成不同顆粒度的數據流,例如將送入的64Kbps顆粒度的數據分割為32Kbps、16Kbps或8Kbps顆粒度然后送至后ー級模塊。圖6示出了前級模塊送入的32位寬的64Kbps數據流分割成四路16Kbps數據流的過程,其他各種分流方式與此類似。同時該模塊還支持混合子時隙的分割,例如將ー個64Kbps的鏈路數據分割為兩路 16Kbps+ 一路 32Kbps 鏈路。該模塊的主要接ロ有前級數據輸入接ロ(FIFO接ロ),向后級模塊的數據輸出接 ロ,配置接ロ,用于驅動下發配置信息和子時隙的使能開關。5)PCI_local 模塊該模塊主要用于完成FPGA與PCI橋芯片的連接和數據通信,是驅動控制各模塊エ 作、為各個模塊下發配置信息和讀取工作狀態的數據通道。該模塊與各級模塊的控制接ロ、 配置接口和狀態接ロ相連接。它同時內嵌了一個用于實時監控鏈路數據的RAM(按照配置抽取相應鏈路),以便觀察指定鏈路的數據和工作狀態。6) ITU(3-7-3)對照表、HDLC處理單元以及各級數據緩存模塊ITU(3-7-3)對照表主要用于將FPGA內部使用的E1、TS編號信息轉換為ITU標準的3-7-3信息,供后級模塊和上層軟件使用。HDLC處理單元采用并行HDLC處理。該部分將數據流按通道進行HDLC解析和合成,生成相應的錯誤、告警報告并上傳。各級數據緩存模塊(主要組成部分為FIFO)的主要功能是橋接各個模塊,暫存數據以消除各模塊處理帶寬的差異,保持數據完整性,同時各級數據緩存還用于各模塊間エ 作時鐘域的切換(SBI接ロ工作在77. 76MHz時鐘頻率下,PCI_local、HDLC處理單元以及 ITU對照表模塊工作在50MHz時鐘頻率下,其他部分工作在155. 52MHz時鐘頻率下)。參見圖8,本發明還提出了一種ー種利用FPGA實現SBI接ロ時隙的按配置分流的方法,其中該方法包括接收外部SBI格式的幀數據,并對所述幀數據進行解析;對解析后的數據按照通道進行拼接;將拼接后的數據按照驅動下發的配置信息分割成不同顆粒度的數據流。本發明利用FPGA(現場可編程邏輯器件)實現了 SBI幀數據的解析,極大的增強了設計的靈活性和保密性;同時處理的鏈路數量有了顯著的提高(單芯片支持至少4千個鏈路,為專用芯片的8倍),降低了單鏈路的采集成本;而且時隙的按配置分流部分又實現了對子時隙的支持(包括對混合子時隙的支持),市場應用空間大幅提高。基于FPGA的靈活性的特點,在模塊實現時更多的擬合了現場應用場景和采集的需求,極大的増加了采集卡的應用范圍。另外利用FPGA實現該功能減少了對PMC處理芯片的依賴,在增加采集能力的同時降低了成本(FPGA的芯片成本約為HDLC專用處理芯片的四分之一);同時該方案為以后產品升級、擴容提供了靈活的平臺。以上所述,本領域技術人員可以理解,僅為本發明的最佳實施方式,其并不限制本發明的保護范圍。
權利要求
1.一種利用FPGA實現SBI接口時隙的按配置分流的方法,其中,該方法包括接收外部SBI格式的幀數據,并對所述幀數據進行解析;對解析后的數據按照通道進行拼接;將拼接后的數據按照驅動下發的配置信息分割成不同顆粒度的數據流。
2.如權利要求1所述的方法,其中當接收多個SBI接口輸入的SBI格式的數據流時,將該多路數據流解析后合成為一路數據然后再按照通道進行拼接。
3.如權利要求1或2所述的方法,其中對所述幀數據進行解析進一步包括對按照SBI幀格式傳入的幀數據加上行號、列號、幀號、復幀號;根據先前確定的每個時隙通道的狀態和數據的行號、列號、幀號以及復幀號信息分解出時隙數據、El編號、TS編號信息;按照由驅動配置的綁定信息為時隙數據分配相應的綁定通道號和使能信號,然后與El 編號、TS編號一起輸出。
4.如權利要求1或2所述的方法,其中在對解析后的數據按照通道進行拼接進一步包括從前級數據緩存FIFO中提取數據和通道信息,然后根據通道信息從狀態數據緩存RAM 中提取相應通道的狀態數據并判斷其狀態,然后根據拼接結果做出判斷,即如果RAM中的狀態顯示拼接未完成,則將從前級FIFO中讀取的數據與RAM中的狀態數據拼接并存入狀態數據緩存RAM中,如果RAM中的狀態顯示拼接已完成,則將拼接完成的數據送至下級模塊, 同時將狀態數據緩存RAM中的內容清空。
5.如權利要求1或2所述的方法,其中所述將拼接后的數據按照驅動下發的配置信息分割成不同顆粒度的數據流進一步包括將送入的64Kbps顆粒度的數據分割為32Kbps、 16Kbps或8Kbps顆粒度。
6.如權利要求1或2所述的方法,其中所述所述將拼接后的數據按照驅動下發的配置信息分割成不同顆粒度的數據流進一步還支持混合子時隙的分割。
7.一種利用FPGA實現SBI接口時隙的按配置分流的裝置,其中該裝置包括SBI接口,用于接收外部SBI格式的幀數據,并對所述幀數據進行解析并發送位寬轉換模塊;位寬轉換模塊,用于接收SBI傳輸的解析數據,并對其接收的解析數據按照通道進行拼接,并傳送至分流模塊;分流模塊,用于將位寬轉換模塊送入的數據按照驅動下發的配置信息分割成不同顆粒度的數據流。
8.如權利要求7所述的裝置,其特征在于該裝置具有多個SBI接口時,并且進一步還包括復制通道,用于根據配置信息,復制SBI接口中指定鏈路的數據,供后端實時監測指定鏈路的情況;仲裁模塊,用于接收多個SBI接口輸入的數據流,并將該多路數據流合成為一路數據輸出到所述位寬轉換模塊。
9.如權利要求7或8所述的裝置,其特征在于所述SBI接口包括以下子模塊行列編號子模塊,用于對按照SBI幀格式傳入的幀數據加上行號、列號、幀號、復幀號;解幀子模塊,用于接收所述行列編號子模塊傳輸的信息,并根據先前確定的每個時隙通道的狀態和數據的行號、列號、幀號以及復幀號信息分解出時隙數據、El編號、TS編號信息;通道號綁定子模塊,用于按照由驅動配置的綁定信息為時隙數據分配相應的綁定通道號和使能信號,然后與El編號、TS編號一起輸出。
10.如權利要求7或8所述的裝置,其中所述位寬轉換模塊還包括一個狀態數據緩存 RAM和一個狀態機,其中狀態機從前級數據緩存FIFO中提取數據和通道信息,然后根據通道信息從狀態數據緩存RAM中提取相應通道的狀態數據并判斷其狀態,然后根據拼接結果做出判斷,即如果RAM中的狀態顯示拼接未完成,則將從前級FIFO中讀取的數據與RAM中的狀態數據拼接并存入狀態數據緩存RAM中,如果RAM中的狀態顯示拼接已完成,則將拼接完成的數據送至下級模塊,同時將狀態數據緩存RAM中的內容清空。
11.如權利要求7或8所述的裝置,其中所述分流模塊將送入的64Kbps顆粒度的數據分割為32Kbps、16Kbps或8Kbps顆粒度。
12.如權利要求7或8所述的裝置,其中所述分流模塊的接ロ包括前級數據輸入接 ロ,向后級模塊的數據輸出接ロ,用于驅動下發配置信息和子時隙的使能開關的配置接ロ。
13.如權利要求7或8所述的裝置,該裝置還進一歩包括PCI.local模塊,用于完成FPGA與PCI橋芯片的連接和數據通信。ITU對照表,用于將FPGA內部使用的El、TS編號信息轉換為ITU標準的3_7_3信息, 供后級模塊和上層軟件使用;HDLC處理單元,用于采用并行HDLC處理。該部分將數據流按通道進行HDLC解析和合成,生成相應的錯誤、告警報告并上傳;各級數據緩存模塊,用于連接各個模塊,暫存數據以消除各模塊處理帶寬的差異,保持數據完整性,同時各級數據緩存還用于各模塊間工作時鐘域的切換。
全文摘要
本發明公開了一種利用FPGA實現SBI接口時隙的按配置分流(子時隙分流)的方法和裝置,其中該裝置包括SBI接口,用于接收外部SBI格式的幀數據,并對所述幀數據進行解析并發送至位寬轉換模塊;位寬轉換模塊,用于接收SBI接口發送的數據并按照通道進行拼接,然后傳送至分流模塊;分流模塊,用于將位寬轉換模塊送入的數據按照驅動下發的配置信息分割成不同顆粒度的數據流。本發明實現了實現了SBI幀數據的解析,極大的增強了設計的靈活性和保密性,同時處理的鏈路數量有了顯著的提高,降低了單鏈路的采集成本又實現了對子時隙的支持(包括對混合子時隙的支持),市場應用空間大幅提高。
文檔編號H04L12/26GK102571577SQ20111045217
公開日2012年7月11日 申請日期2011年12月29日 優先權日2011年12月29日
發明者于恒信, 曹志強, 賈林 申請人:北京中創信測科技股份有限公司