多業(yè)務(wù)信令采集板卡數(shù)據(jù)包排序方法和裝置制造方法
【專利摘要】本發(fā)明提出了一種多業(yè)務(wù)信令采集板卡數(shù)據(jù)包排序方法和裝置,用于正確處理多業(yè)務(wù)板卡采集機(jī)采集的數(shù)據(jù)包送往上層處理系統(tǒng)的順序。多業(yè)務(wù)信令采集板卡數(shù)據(jù)包排序裝置由板卡target模塊和電腦主機(jī)host模塊組成,板卡target模塊和電腦主機(jī)host模塊配合操作;板卡target模塊由多個(gè)板卡鏈路組成,每個(gè)板卡鏈路包括FPGA模塊和用于存包的緩沖buffer模塊;電腦主機(jī)host模塊由多個(gè)buffer模塊組成,每個(gè)buffer模塊分別與一個(gè)板卡鏈路相對(duì)應(yīng)。
【專利說明】多業(yè)務(wù)信令采集板卡數(shù)據(jù)包排序方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信令傳輸領(lǐng)域,特別涉及信令采集領(lǐng)域多業(yè)務(wù)板卡(2種業(yè)務(wù)以上)采集機(jī)采集的數(shù)據(jù)包送往上層處理系統(tǒng)時(shí),正確的時(shí)序處理。
【背景技術(shù)】
[0002]在數(shù)據(jù)采集領(lǐng)域,隨著應(yīng)用業(yè)務(wù)的多樣化,網(wǎng)元之間會(huì)采用不同的信令協(xié)議,有HDLC協(xié)議的,有ATM協(xié)議的,有IMA協(xié)議的,有TCP/IP協(xié)議的。而且數(shù)據(jù)流量不同網(wǎng)元間也不盡相同,有采用PCM 2M傳輸?shù)?,有光纖STM-1/4 155M/622M傳輸?shù)?,也有千兆萬兆以太網(wǎng)傳輸?shù)?。針?duì)這種多樣化的鏈路,不同的公司用不同的板卡來采集對(duì)應(yīng)的鏈路信令。而因數(shù)據(jù)流量的增大,關(guān)聯(lián)的數(shù)據(jù)業(yè)務(wù)往往被分擔(dān)到多條鏈路中傳輸,這樣就需要多塊采集板卡來進(jìn)行關(guān)聯(lián)采集,并有序送出數(shù)據(jù)包,上層分析系統(tǒng)才能正確無誤的合成有意義的數(shù)據(jù)記錄。
[0003]目前大部分采集機(jī),一般只有3個(gè)插槽,也就是說最多可以插3塊板卡。但隨著業(yè)務(wù)種類的增加,流量的增大,需要采集的鏈路越來越多。只可插三塊板卡的采集機(jī)越來越不適應(yīng)市場的要求,需要大量的采集機(jī)才能滿足鏈路采集的要求,這樣就要求客戶購買大量的采集機(jī),不但采購成本高,用電量也會(huì)提高,關(guān)鍵在于放置采集機(jī)的機(jī)房占地也越來越大,引起客戶的抱怨,同時(shí)也降低了公司產(chǎn)品的競爭力。
[0004]為了提高集成度,公司推出了高密度(12槽位)采集機(jī)SuperCap — E,可以插現(xiàn)有12塊不同類型的板卡,大大提高了集成度。每類板卡處理的業(yè)務(wù)不同,CP0S622板卡處理的是STM-1/STM-4接口的HDLC協(xié)議,ThumbEl和SuperEl處理的E1接口的HDLC協(xié)議。APT3G板卡是處理ATM協(xié)議的,CP0S-1MA和CP0S-1MA+板卡是處理IMA協(xié)議的,F(xiàn)E板卡是處理TCP/IP協(xié)議的。每塊板卡采集數(shù)據(jù)包實(shí)現(xiàn)的機(jī)制不同,特別是在打時(shí)間戳的方法上,都是每類板卡一種方法,而且同類板卡間需要通過物理線環(huán)回連接來實(shí)現(xiàn)主從同步,規(guī)避時(shí)間戳的倒序亂序問題。現(xiàn)在多種類別的卡插在一個(gè)采集機(jī)中,各自成一套的板卡主從同步方法已經(jīng)不能適應(yīng)時(shí)間戳的不倒序亂序的要求,經(jīng)常造成上層系統(tǒng)無法合成有效的數(shù)據(jù)記錄。而且板卡間由物理線環(huán)回連接來實(shí)現(xiàn)的主從同步,會(huì)由于連線接觸不良、連接錯(cuò)誤等原因增加故障點(diǎn)。
[0005]目前有單一類型板卡解決時(shí)間戳倒序亂序的方案是由硬件FPGA模塊負(fù)責(zé)給從鏈路上收到的數(shù)據(jù)包打時(shí)間戳,如有多塊板卡,選擇其中一塊設(shè)置成主卡,其他都設(shè)置成從卡,板卡間通過物理連接從主卡上引線環(huán)回。主卡一定周期與電腦主機(jī)同步,其他從卡統(tǒng)一同步主卡的晶振,確保各塊卡間步調(diào)一致。該方案能很好的解決板卡上FPGA打時(shí)間戳?xí)r不會(huì)發(fā)生倒序亂序。但是從板卡FPGA的緩沖區(qū)送到主機(jī)緩沖區(qū)的時(shí)候,就有可能引入倒序亂序。因?yàn)镕PGA緩沖區(qū)中的數(shù)據(jù)包在兩種情況下給驅(qū)動(dòng)發(fā)中斷送數(shù)據(jù)。一種是在FPGA的緩沖區(qū)滿的時(shí)候,緩沖區(qū)中的數(shù)據(jù)會(huì)馬上送給驅(qū)動(dòng);另一種情況是由于鏈路上數(shù)據(jù)較少,一時(shí)無法將緩沖區(qū)填滿,就有一個(gè)定時(shí)器來計(jì)時(shí),定時(shí)器時(shí)間到,即便是FPGA緩沖區(qū)里的數(shù)據(jù)還沒填滿,也會(huì)將數(shù)據(jù)包送給驅(qū)動(dòng)。這樣兩塊卡即使同一時(shí)刻收到一個(gè)包,打的時(shí)間戳相同,也會(huì)由于數(shù)據(jù)量大的卡FPGA上的緩沖區(qū)先滿而先將該包送走,而數(shù)據(jù)量小的數(shù)據(jù)包會(huì)滯后一段時(shí)間送走。而驅(qū)動(dòng)收到包時(shí),是有一個(gè)包向上層分析系統(tǒng)送一個(gè)包,這樣兩個(gè)包由于送給上層有一定的時(shí)間差,倒序亂序就這樣引入了。
[0006]再者,現(xiàn)在高密度采集機(jī)中插入多塊不同業(yè)務(wù)種類的板卡,不同種類的板卡FPGA同步機(jī)制不一致,不同種類的板卡無法主從同步,就不能保證所有板卡打時(shí)間戳的一致性。加上驅(qū)動(dòng)收到包后,不判斷各塊板卡數(shù)據(jù)包時(shí)間戳的大小直接往上送,就會(huì)再一次增加數(shù)據(jù)包倒序亂序的可能性,上層就會(huì)出現(xiàn)無法合成有意義的數(shù)據(jù)記錄的情況。
[0007]本發(fā)明就是為了解決在高集成采集機(jī)中以上兩個(gè)可能引入的數(shù)據(jù)包時(shí)間戳倒序亂序的問題。
【發(fā)明內(nèi)容】
[0008]本發(fā)明主要解決信令采集領(lǐng)域多業(yè)務(wù)板卡(2種業(yè)務(wù)以上)采集機(jī)采集的數(shù)據(jù)包送往上層處理系統(tǒng)時(shí),容易造成時(shí)間戳倒序、亂序的問題。本發(fā)明方案可以解決數(shù)據(jù)包打時(shí)間戳同步需要主從板卡物理環(huán)回而引入的故障隱患,而且不同類板卡間同步機(jī)制不一致,無法保證所有不同種類的業(yè)務(wù)板卡送給上層分析系統(tǒng)的數(shù)據(jù)包是有序的問題。
[0009]本發(fā)明提出了一種多業(yè)務(wù)信令采集板卡數(shù)據(jù)包排序裝置,用于正確處理多業(yè)務(wù)板卡采集機(jī)采集的數(shù)據(jù)包送往上層處理系統(tǒng)的順序。多業(yè)務(wù)信令采集板卡數(shù)據(jù)包排序裝置由板卡target模塊和電腦主機(jī)host模塊組成,板卡target模塊和電腦主機(jī)host模塊配合操作;板卡target模塊由多個(gè)板卡鏈路組成,每個(gè)板卡鏈路包括FPGA模塊和用于存包的緩沖buffer模塊;電腦主機(jī)host模塊由多個(gè)buffer模塊組成,每個(gè)buffer模塊分別與一個(gè)板卡鏈路相對(duì)應(yīng)。
[0010]根據(jù)本發(fā)明的一個(gè)方面,板卡target上的buffer用于緩存接收經(jīng)過FPGA打過時(shí)間戳的數(shù)據(jù)。
·[0011]根據(jù)本發(fā)明的一個(gè)方面,板卡target上的FPGA模塊用于實(shí)現(xiàn)三個(gè)功能:一是一定周期與主機(jī)同步,獲取準(zhǔn)確時(shí)間;二是負(fù)責(zé)給收到的數(shù)據(jù)包打時(shí)間戳;三是發(fā)送定時(shí)包TimePacketο
[0012]根據(jù)本發(fā)明的一個(gè)方面,電腦主機(jī)host模塊包含有:數(shù)據(jù)包緩沖區(qū)buffer模塊,取包GetPackage模塊,比較時(shí)間戳TimeCompare模塊,發(fā)包SendPackage模塊,檢查是否超時(shí) CheckTimeOut 模塊。
[0013]根據(jù)本發(fā)明的一個(gè)方面,數(shù)據(jù)包緩沖區(qū)buffer模塊,用于緩存接收到的數(shù)據(jù)包,緩存的大小可以根據(jù)實(shí)際需要進(jìn)行設(shè)置。
[0014]根據(jù)本發(fā)明的一個(gè)方面,GetPackage模塊,用于從每塊板卡的buffer中取一個(gè)包,記為 PpPs,......,PN。
[0015]根據(jù)本發(fā)明的一個(gè)方面,TimeCompare模塊用于比較取到的數(shù)據(jù)包時(shí)間戳TN的大小,得出時(shí)間戳最小的數(shù)據(jù)包,用數(shù)學(xué)公式表示:Tmin = Min (T1;T2,……,ΤΝ)。
[0016]根據(jù)本發(fā)明的一個(gè)方面,SendPackage模塊,用于將時(shí)間戳最小對(duì)應(yīng)的數(shù)據(jù)包Pmin送給上層系統(tǒng)合成有意義的數(shù)據(jù)記錄。
[0017]根據(jù)本發(fā)明的一個(gè)方面,CheckTimeOut模塊,用于檢查板卡是否有包,在15ms的定時(shí)內(nèi),不但沒有有效的數(shù)據(jù)包,而且也沒有定時(shí)包,就判定該卡故障不再參與取包排序,直至該板卡發(fā)出數(shù)據(jù)包。
[0018]本發(fā)明還提出了一種多業(yè)務(wù)信令采集板卡數(shù)據(jù)包排序方法,用于正確處理多業(yè)務(wù)板卡采集機(jī)采集的數(shù)據(jù)包送往上層處理系統(tǒng)的時(shí)序,包括如下步驟:
[0019](1)主機(jī)逐個(gè)槽位判斷有沒有插采集板卡,插的哪種類型的板卡;
[0020](2)板卡不分主從,都設(shè)置成主卡,F(xiàn)PGA以一定周期與主機(jī)同步;
[0021](3) FPGA接收到鏈路上的數(shù)據(jù)包,給數(shù)據(jù)包打時(shí)間戳,送給板卡上的buffer ;
[0022](4) FPGA以一定周期發(fā)送定時(shí)包,一般設(shè)置為10ms,送給板卡上的buffer ;
[0023](5)板卡上的緩沖區(qū)里的數(shù)據(jù)在buffer滿或者定時(shí)器時(shí)間到時(shí),將buffer中的數(shù)據(jù)通過中斷送給主機(jī)host上的buffer ;
[0024](6)GetPackage模塊輪詢查看每塊板卡host緩沖區(qū)中的數(shù)據(jù)包,提取每個(gè)緩沖隊(duì)列中的第一個(gè)數(shù)據(jù)包PN ;
[0025](7)TimeCompare模塊記錄每個(gè)數(shù)據(jù)包PN的時(shí)間戳,記為TN (第一塊板卡數(shù)據(jù)包的時(shí)間戳記為?\,第二塊板卡數(shù)據(jù)包的時(shí)間戳記為Τ2,以此類推。比較時(shí)間戳ΤΝ的大小,用數(shù)學(xué)公式表示:Tmin = Min (T1; Τ2,……,ΤΝ)。記錄Tmin對(duì)應(yīng)的數(shù)據(jù)Pmin。
[0026](8) SendPackage模塊將時(shí)間戳最小的數(shù)據(jù)包Pmin送走,在該緩沖隊(duì)列中再取一個(gè)數(shù)據(jù)包,與其他隊(duì)列的數(shù)據(jù)包繼續(xù)比較哪個(gè)時(shí)間戳最小。
[0027]根據(jù)本發(fā)明的一 個(gè)方面,第(4)步中,F(xiàn)PGA以10ms為周期發(fā)送定時(shí)包,送給板卡上的 bufferο
【專利附圖】
【附圖說明】
[0028]結(jié)合隨后的附圖,從下面的詳細(xì)說明中可顯而易見的得出本發(fā)明的上述及其他目的、特征及優(yōu)點(diǎn)。在附圖中:
[0029]圖1示出了根據(jù)本發(fā)明實(shí)施例的結(jié)構(gòu)圖。
[0030]圖2示出了根據(jù)本發(fā)明實(shí)施例數(shù)據(jù)包排序模塊流程圖。
【具體實(shí)施方式】
[0031]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0032]插有多種不同種類業(yè)務(wù)的板卡,需要有一套方法來解決時(shí)間戳倒序亂序的問題,同時(shí)規(guī)避物理線環(huán)回連接增加故障點(diǎn)隱患的可能。本方案已經(jīng)在公司可以插12個(gè)板卡的SuperCAP 一 E上實(shí)施,效果良好。
[0033]本技術(shù)方案的結(jié)構(gòu)圖參見圖1。
[0034]在本發(fā)明中,多業(yè)務(wù)信令采集板卡數(shù)據(jù)包排序裝置由板卡target和電腦主機(jī)host組成,板卡target和電腦主機(jī)host兩部分配合操作。
[0035]—、板卡target部分主要涉及FPGA和用于存包的緩沖buffer。
[0036](1)首先介紹功能相對(duì)簡單的板卡上的buffer。該buffer用于緩存接收經(jīng)過FPGA打過時(shí)間戳的數(shù)據(jù),buffer的大小在板卡硬件設(shè)計(jì)時(shí)已經(jīng)完成。為了提高target與host之間的傳輸效率,target上的數(shù)據(jù)分兩種情況往host傳送。一是buffer數(shù)據(jù)滿了,就實(shí)時(shí)送給host的buffer,另一個(gè)是數(shù)據(jù)較少時(shí),一時(shí)無法讓buffer填滿數(shù)據(jù),就在定時(shí)器到時(shí)發(fā)送數(shù)據(jù)給host的buffer。
[0037](2)FPGA模塊用于實(shí)現(xiàn)三個(gè)功能:一是一定周期與主機(jī)同步,獲取準(zhǔn)確時(shí)間。板卡不分主從,都設(shè)置成主卡,一定周期各自與主機(jī)同步。這樣板卡間可以不用物理線環(huán)回,消除了物理連接的故障隱患。同步周期根據(jù)經(jīng)驗(yàn)值設(shè)定,一般設(shè)定在5分鐘到10分鐘。周期如果過短,板卡容易因頻繁與主機(jī)同步降低效率,周期如果過長,板卡自身時(shí)鐘有可能偏離主機(jī)時(shí)鐘過大,導(dǎo)致滯后或提前主機(jī)時(shí)間過長,調(diào)整的時(shí)間也會(huì)延長。二是負(fù)責(zé)給收到的數(shù)據(jù)包打時(shí)間戳;三是發(fā)送定時(shí)包TimePacket。在主機(jī)端TimeCompare模塊輪詢比較不同板卡host上buffer中數(shù)據(jù)包時(shí)間戳?xí)r,會(huì)遇到有的板卡由于處理效率較低,接收到數(shù)據(jù)包沒有從板卡target上及時(shí)送給host的buffer而暫時(shí)沒有包,等下一次輪詢查看時(shí)已送出該數(shù)據(jù)包,而且該時(shí)間戳比上一次其他隊(duì)列中送走的時(shí)間戳還小,這樣就會(huì)有倒序。但是又不能無限期的等待下去,就引入了板卡發(fā)定時(shí)包TimePacket機(jī)制。為了這個(gè)定時(shí)包有別于從鏈路上接收到的普通包,定義了一個(gè)特殊的包內(nèi)容,包長度為4字節(jié),內(nèi)容為0xA858AA55,可以根據(jù)它內(nèi)容和長度的特殊性,該數(shù)據(jù)包不送給上層系統(tǒng)。板卡每隔10ms發(fā)一個(gè)這樣的TimePacket。TimePacket定時(shí)包也參與排序,如果時(shí)間戳比其他隊(duì)列的小,就繼續(xù)等待該板卡主機(jī)buffer的數(shù)據(jù)包。如果該定時(shí)包的時(shí)間戳比其他隊(duì)列的包時(shí)間戳大,就將其他最小的包送給上層。但是如果某個(gè)板卡主機(jī)buffer —直沒有數(shù)據(jù),也沒有定時(shí)包,那么有一個(gè)超時(shí)判斷機(jī)制,等待15ms,如果緩沖區(qū)中還沒任何數(shù)據(jù),就將該板卡認(rèn)為超時(shí),不再參與排序,比較其他有隊(duì)列數(shù)據(jù)包時(shí)間戳最小的往上送,直至該板卡有包送上來。定時(shí)包可以確保每10ms比較一下所有數(shù)據(jù),并保證有序送給上層。定時(shí)包發(fā)包周期的選取,是根據(jù)客戶的要求來定的,客戶對(duì)數(shù)據(jù)包的時(shí)延要求是100ms,所以每10ms—次比較引入的時(shí)延還是在要求范圍內(nèi)的。
[0038]二、主機(jī)host部分有數(shù)據(jù)包緩沖區(qū)buffer模塊,取包GetPackage模塊,比較時(shí)間戮TimeCompare模塊,發(fā)包SendPackage模塊,檢查是否超時(shí)CheckTimeOut模塊。其分別實(shí)現(xiàn)如下功能:
[0039](1)緩沖區(qū)buffer模塊,主機(jī)給每塊板卡分配一個(gè)緩存模塊,用于緩存接收到的數(shù)據(jù)包,緩存的大小可以根據(jù)實(shí)際需要進(jìn)行設(shè)置。接入能力大的采集板卡,緩存可以設(shè)置的大一些,接入能力小的采集板卡,緩存分配可以小一些。收到的數(shù)據(jù)包在緩存模塊中形成緩沖數(shù)據(jù)包隊(duì)列,等待送往上層進(jìn)行數(shù)據(jù)合成分析。
[0040](2) GetPackage模塊,從每塊板卡的buffer中取一個(gè)包,記為P^P;^......,PN。
[0041](3) TimeCompare模塊比較取到的數(shù)據(jù)包時(shí)間戳TN的大小,得出時(shí)間戳最小的數(shù)據(jù)包。用數(shù)學(xué)公式表示:Tmin = Min (T1;T2,……,ΤΝ)。
[0042](4) SendPackage模塊,將時(shí)間戳Tmin最小對(duì)應(yīng)的數(shù)據(jù)包Pmin送給上層系統(tǒng)合成有意義的數(shù)據(jù)記錄。
[0043](5)CheckTime0ut模塊,檢查板卡是否有包,在15ms的定時(shí)內(nèi),不但沒有有效的數(shù)據(jù)包,而且也沒有定時(shí)包,就判定該卡故障不再參與取包排序,直至該板卡發(fā)出數(shù)據(jù)包。
[0044]附圖2示出了根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)包排序流程。
[0045]根據(jù)本發(fā)明的實(shí)施例,一種多業(yè)務(wù)信令采集板卡數(shù)據(jù)包排序方法包括如下步驟:
[0046](1)主機(jī)逐個(gè)槽位判斷有沒有插采集板卡,插的哪種類型的板卡。[0047](2)板卡不分主從,都設(shè)置成主卡,F(xiàn)PGA以一定周期與主機(jī)同步。
[0048](3) FPGA接收到鏈路上的數(shù)據(jù)包,給數(shù)據(jù)包打時(shí)間戳,送給板卡上的buffer。
[0049](4)FPGA以一定周期發(fā)送定時(shí)包,一般設(shè)置為10ms,送給板卡上的buffer。
[0050](5)板卡上的緩沖區(qū)里的數(shù)據(jù)在buffer滿或者定時(shí)器時(shí)間到時(shí),將buffer中的數(shù)據(jù)通過中斷送給主機(jī)host上的buffer。
[0051](6)GetPackage模塊輪詢查看每塊板卡host緩沖區(qū)中的數(shù)據(jù)包,提取每個(gè)緩沖隊(duì)列中的第一個(gè)數(shù)據(jù)包PN。
[0052](7)TimeCompare模塊記錄每個(gè)數(shù)據(jù)包PN的時(shí)間戳,記為TN (第一塊板卡數(shù)據(jù)包的時(shí)間戳記為?\,第二塊板卡數(shù)據(jù)包的時(shí)間戳記為Τ2,以此類推。比較時(shí)間戳ΤΝ的大小,用數(shù)學(xué)公式表示:Tmin = Min (T1; Τ2,……,ΤΝ)。記錄Tmin對(duì)應(yīng)的數(shù)據(jù)Pmin。
[0053](8) SendPackage模塊將時(shí)間戳最小的數(shù)據(jù)包Pmin送走,在該緩沖隊(duì)列中再取一個(gè)數(shù)據(jù)包,與其他隊(duì)列的數(shù)據(jù)包繼續(xù)比較哪個(gè)時(shí)間戳最小。這樣就能保證所送的數(shù)據(jù)包時(shí)間戳是所用板卡中時(shí)間戳最小的,保證了數(shù)據(jù)包的有序性。
[0054]當(dāng)插有1、2共2塊板卡時(shí),接收數(shù)據(jù)包進(jìn)行排序的情況,步驟如下:
[0055](1)主機(jī)逐個(gè)槽位判斷有沒有插采集板卡,共檢測(cè)到1、2兩塊板卡。
[0056](2) 1、2板卡不分主從,都設(shè)置成主卡,各自的FPGA以一定周期與主機(jī)同步。
[0057](3)1板卡的FPGA接收到鏈路上的數(shù)據(jù)包,在每個(gè)數(shù)據(jù)包頭加上時(shí)間戳,送給板卡上的buffer-Ι,同樣2板卡的數(shù)據(jù)包送給了 buf`fer-2。數(shù)據(jù)包在buffer中按收到的先后順序排成隊(duì)列,等待發(fā)給host。
[0058](4)同時(shí)1、2板卡的FPGA分別每隔一定周期,一般是10ms發(fā)送一個(gè)定時(shí)包TimePacket,送給板卡上各自的buffer,同樣加入數(shù)據(jù)隊(duì)列等待發(fā)給host。
[0059](5) 1、2板卡上的緩沖區(qū)里的數(shù)據(jù)在buffer滿或者定時(shí)器時(shí)間到時(shí),會(huì)將buffer中的數(shù)據(jù)通過中斷送給主機(jī)host上的buffer。
[0060](6)GetPackage模塊輪詢查看1、2板卡host緩沖區(qū)中的數(shù)據(jù)包,分別取兩個(gè)緩沖隊(duì)列中的第一個(gè)數(shù)據(jù)包Pi和p2。
[0061](7)TimeCompare模塊記錄數(shù)據(jù)包Pi和P2的時(shí)間戳,分別記為?\和Τ2。比較時(shí)間戳^和!^的大小,用數(shù)學(xué)公式表示:Tmin = Min (?\,T2)。記錄Tmin對(duì)應(yīng)的數(shù)據(jù)Pmin。這里假設(shè)?\的時(shí)間戳小,那么Pmin就是Ρρ
[0062](8) SendPackage模塊將時(shí)間戳最小的數(shù)據(jù)包Pi送給上層處理系統(tǒng)。這樣送走的數(shù)據(jù)包不但是1板卡中時(shí)間戳最小的,而且也是比2板卡中的數(shù)據(jù)包時(shí)間戳都小,保證了數(shù)據(jù)包的有序性。
[0063](9)從1板卡的緩沖隊(duì)列中再取一個(gè)數(shù)據(jù)包,與2板卡隊(duì)列的數(shù)據(jù)包繼續(xù)比較哪個(gè)時(shí)間戳最小。
[0064](10)假設(shè)1板卡上的鏈路沒有數(shù)據(jù),為了避免比較時(shí)間戳?xí)r一直等待1板卡上的數(shù)據(jù),1板卡發(fā)出的定時(shí)包TimePacket就可以和2板卡上的數(shù)據(jù)包時(shí)間戳進(jìn)行比較,先發(fā)送時(shí)間戳小的數(shù)據(jù)包。
[0065]極端情況有兩種,一是插有板卡,但板卡出現(xiàn)故障,不但沒有有效的數(shù)據(jù)包,而且發(fā)定時(shí)包的硬件模塊也出現(xiàn)故障,不能發(fā)出定時(shí)包。CheckTimeOut模塊可以規(guī)避無限期等待該板卡的情況。該模塊設(shè)定一個(gè)8ms的定時(shí)器,各隊(duì)列輪詢讀包,如果大于8ms該板卡buffer還沒有數(shù)據(jù)包,包括定時(shí)包,就判定該卡故障不再參與取包排序,直至該板卡發(fā)出數(shù)據(jù)包。二是某一板卡的數(shù)據(jù)包一直比其他板卡的數(shù)據(jù)包時(shí)間戳小,導(dǎo)致其他板卡的數(shù)據(jù)在host的buffer中無法送出去,這種情況就說明板卡沒有同步,同步機(jī)制出現(xiàn)了問題,可在同步模塊進(jìn)行檢測(cè)并告警。
[0066]相關(guān)技術(shù)術(shù)語的名詞解釋:
[0067]FPGA:現(xiàn)場可編程門陣列 Field — Programmable Gate Array
[0068]HDLC:高級(jí)數(shù)據(jù)鏈路控制(High-Level Data Link Control)
[0069]ATM:異步傳輸模式(Asynchronous Transfer Mode)
[0070]IMA:反向復(fù)用的異步傳輸模式(Inverse Multiplexing for ATM)
[0071]STM:同步傳輸模塊(Synchronous Transfer Module)
[0072]PCM:脈沖編碼調(diào)變制(Pulse-code modulation)
[0073]插有多種類業(yè)務(wù)板卡的采集機(jī),由于板卡間的差異,用以前通過物理線將同類板卡環(huán)回的方法,已經(jīng)無法滿足打時(shí)間戳的準(zhǔn)確性。而且以前的機(jī)制在主機(jī)端沒有對(duì)數(shù)據(jù)包進(jìn)行排序送給上傳系統(tǒng),也容易引入倒序亂序。本發(fā)明將FPGA獨(dú)立向主機(jī)同步,可以取消物理線環(huán)回,一是工程施工可以減少工作量,二是減少因物理線連接可能引入的連線不正確或松動(dòng)的故障;主機(jī)端各板卡buffer中的數(shù)據(jù)逐一排序,可以保證送往上層系統(tǒng)的數(shù)據(jù)是有序的;FPGA的定時(shí)包機(jī)制,不但可以防止無限期等待沒有數(shù)據(jù)的板卡,通過超時(shí)檢查判斷,可以提示硬件是否有故障。通過定時(shí)包和host上buffer中數(shù)據(jù)的排序,很好的規(guī)避了倒序亂序問題。
[0074]雖然已在具體實(shí)施方案中描述了本發(fā)明的實(shí)施方案及其各種功能組件,但是應(yīng)當(dāng)理解,可以用硬件、軟件、固件、中間件或它們的組合來實(shí)現(xiàn)本發(fā)明的實(shí)施方案,并且本發(fā)明的實(shí)施方案可以用在多種系統(tǒng)、子系統(tǒng)、組件或其子組件中。本發(fā)明的每個(gè)實(shí)施例都可以與其它的實(shí)施例中的器件相互進(jìn)行組合,而不是孤立的、單一的實(shí)施例,所有實(shí)施例之間都可以相互融合而形成新的實(shí)施例或者不同的解決方案。本發(fā)明雖然采用了不同的實(shí)施例來解決相應(yīng)的技術(shù)問題,但是,這些不同的實(shí)施例并不是孤立的用于解決單個(gè)的技術(shù)問題,可以將這些不同的實(shí)施例組合起來共同解決需要克服的技術(shù)難題,可將不同實(shí)施例相互組合,以獲得良好的性能。
[0075]以上所述,僅為本發(fā)明專利較佳的【具體實(shí)施方式】,但本發(fā)明專利的保護(hù)范圍并不局限于此,任何熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明專利揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明專利的保護(hù)范圍之內(nèi)。
[0076]此外,對(duì)于本領(lǐng)域的普通技術(shù)人員來說可顯而易見的得出其他優(yōu)點(diǎn)和修改。因此,具有更廣方面的本發(fā)明并不局限于這里所示出的并且所描述的具體說明及示例性實(shí)施例。因此,在不脫離由隨后權(quán)利要求及其等價(jià)體所定義的一般發(fā)明構(gòu)思的精神和范圍的情況下,可對(duì)其做出各種修改。
【權(quán)利要求】
1.一種多業(yè)務(wù)信令采集板卡數(shù)據(jù)包排序裝置,用于正確處理多業(yè)務(wù)板卡采集機(jī)采集的數(shù)據(jù)包送往上層處理系統(tǒng)的順序,其特征在于:多業(yè)務(wù)信令采集板卡數(shù)據(jù)包排序裝置由板卡target模塊和電腦主機(jī)host模塊組成,板卡target模塊和電腦主機(jī)host模塊配合操作;板卡target模塊由多個(gè)板卡鏈路組成,每個(gè)板卡鏈路包括FPGA模塊和用于存包的緩沖buffer模塊;電腦主機(jī)host模塊由多個(gè)buffer模塊組成,每個(gè)buffer模塊分別與一個(gè)板卡鏈路相對(duì)應(yīng)。
2.如權(quán)利要求1所述的多業(yè)務(wù)信令采集板卡數(shù)據(jù)包排序裝置,其特征在于:板卡target上的buffer用于緩存接收經(jīng)過FPGA打過時(shí)間戳的數(shù)據(jù)。
3.如權(quán)利要求1所述的多業(yè)務(wù)信令采集板卡數(shù)據(jù)包排序裝置,其特征在于:板卡target上的FPGA模塊用于實(shí)現(xiàn)三個(gè)功能:一是一定周期與主機(jī)同步,獲取準(zhǔn)確時(shí)間;二是負(fù)責(zé)給收到的數(shù)據(jù)包打時(shí)間戳;三是發(fā)送定時(shí)包TimePacket。
4.如權(quán)利要求1所述的多業(yè)務(wù)信令采集板卡數(shù)據(jù)包排序裝置,其特征在于:電腦主機(jī)host模塊包含有:數(shù)據(jù)包緩沖區(qū)buffer模塊,和數(shù)據(jù)排序模塊;數(shù)據(jù)排序模塊分為數(shù)據(jù)取包GetPackage模塊,比較時(shí)間戳TimeCompare模塊,發(fā)包SendPackage模塊,檢查是否超時(shí)CheckTimeOut模塊。
5.如權(quán)利要求4所述的多業(yè)務(wù)信令采集板卡數(shù)據(jù)包排序裝置,其特征在于:數(shù)據(jù)包緩沖區(qū)buffer模塊,用于緩存接收到的數(shù)據(jù)包,緩存的大小可以根據(jù)實(shí)際需要進(jìn)行設(shè)置。
6.如權(quán)利要求4所述的多業(yè)務(wù)信令采集板卡數(shù)據(jù)包排序裝置,其特征在于:GetPackage模塊,用于從每塊板卡的buffer中取一個(gè)包,記為Pp P2,......,ΡΝ。
7.如權(quán)利要求4所述的多業(yè)務(wù)信令采集板卡數(shù)據(jù)包排序裝置,其特征在于:TimeCompare模塊用于比較取到的數(shù)據(jù)包時(shí)間戳ΤΝ的大小,得出時(shí)間戳最小的數(shù)據(jù)包,用數(shù)學(xué)公式表示:Tmin = Min (T1; Τ2,……,ΤΝ)。
8.如權(quán)利要求4所述的多業(yè)務(wù)信令采集板卡數(shù)據(jù)包排序裝置,其特征在于:SendPackage模塊,用于將時(shí)間戳Tmin最小對(duì)應(yīng)的數(shù)據(jù)包Pmin送給上層系統(tǒng)合成有意義的數(shù)據(jù)記錄。
9.如權(quán)利要求4所述的多業(yè)務(wù)信令采集板卡數(shù)據(jù)包排序裝置,其特征在于:CheckTimeOut模塊,用于檢查板卡是否有包,在15ms的定時(shí)內(nèi),不但沒有有效的數(shù)據(jù)包,而且也沒有定時(shí)包,就判定該卡故障不再參與取包排序,直至該板卡發(fā)出數(shù)據(jù)包。
10.一種多業(yè)務(wù)信令采集板卡數(shù)據(jù)包排序方法,用于正確處理多業(yè)務(wù)板卡采集機(jī)采集的數(shù)據(jù)包送往上層處理系統(tǒng)的時(shí)序,其特征在于,包括如下步驟:(1)主機(jī)逐個(gè)槽位判斷有沒有插采集板卡,插的哪種類型的板卡;(2)板卡不分主從,都設(shè)置成主卡,F(xiàn)PGA以一定周期與主機(jī)同步;(3)FPGA接收到鏈路上的數(shù)據(jù)包,給數(shù)據(jù)包打時(shí)間戳,送給板卡上的buffer ;(4)FPGA以一定周期發(fā)送定時(shí)包,一般設(shè)置為10ms,送給板卡上的buffer ;(5)板卡上的緩沖區(qū)里的數(shù)據(jù)在buffer滿或者定時(shí)器時(shí)間到時(shí),將buffer中的數(shù)據(jù)通過中斷送給主機(jī)host上的buffer ;(6)GetPackage模塊輪詢查看每塊板卡host緩沖區(qū)中的數(shù)據(jù)包,提取每個(gè)緩沖隊(duì)列中的第一個(gè)數(shù)據(jù)包PN ;(7)TimeCompare模塊記錄每個(gè)數(shù)據(jù)包PN的時(shí)間戳,記為TN,第一塊板卡數(shù)據(jù)包的時(shí)間戳記為?\,第二塊板卡數(shù)據(jù)包的時(shí)間戳記為Τ2,以此類推,比較時(shí)間戳ΤΝ的大小,用數(shù)學(xué)公式表示:Tmin = Min (T1; Τ2,......, 1,記錄Tmxn對(duì)應(yīng)的數(shù)據(jù)Pmin ;(8)SendPackage模 塊將時(shí)間戳最小的數(shù)據(jù)包Pmin送走,在該緩沖隊(duì)列中再取一個(gè)數(shù)據(jù)包,與其他隊(duì)列的數(shù)據(jù)包繼續(xù)比較哪個(gè)時(shí)間戳最小。
11.如權(quán)利要求10所述的多業(yè)務(wù)信令采集板卡數(shù)據(jù)包排序方法,其特征在于:第(4)步中,F(xiàn)PGA以10ms為周期發(fā)送定時(shí)包,送給板卡上的buffer。
【文檔編號(hào)】H04L1/00GK103684692SQ201310693533
【公開日】2014年3月26日 申請(qǐng)日期:2013年12月17日 優(yōu)先權(quán)日:2013年12月17日
【發(fā)明者】金旭雁 申請(qǐng)人:北京中創(chuàng)信測(cè)科技股份有限公司