基于VRTX操作系統(tǒng)實現(xiàn)V5接口協(xié)議
關(guān)鍵詞:接入網(wǎng) V5接口 實時操作系統(tǒng) 本地交換機
引言
接入網(wǎng)的概念是由傳統(tǒng)的用戶線發(fā)展起來的。近年來,由于電話業(yè)務(wù)的發(fā)展、新業(yè)務(wù)種類的增多、對線路帶寬要求的提高以及各種新興技術(shù)(特別是光纖通信技術(shù))的發(fā)展,使得傳統(tǒng)的用戶線的概念逐漸發(fā)展成為接入網(wǎng)的概念。前幾年,國際電信聯(lián)盟(ITU)正式定義了用戶接入網(wǎng)。引入接入網(wǎng)后,現(xiàn)有的電信網(wǎng)將減少端局數(shù)量,簡化中繼網(wǎng)的復(fù)雜程度,有利于中繼網(wǎng)的管理。
接入網(wǎng)所覆蓋的范圍可以由三類接口來界定,如圖1所示。接口的標(biāo)準(zhǔn)化、綜合性直接影響到接入網(wǎng)的建設(shè)成本及接入網(wǎng)能承載的業(yè)務(wù)能力,為此,ITU-T綜合考慮各種需要,終于通過了關(guān)于接入網(wǎng)和本地交換機之間標(biāo)準(zhǔn)化的V5.1和V5.2接口的建議[1,2]。
V5接口是一種在接入網(wǎng)中適用范圍廣、標(biāo)準(zhǔn)化程度高的新型開放的數(shù)字接口,對于設(shè)備的開發(fā)應(yīng)用、多種業(yè)務(wù)的發(fā)展和網(wǎng)絡(luò)的更新起著重要的作用。V5接口的標(biāo)準(zhǔn)化代表了重要的網(wǎng)絡(luò)演進方向,影響深遠。其意義在于交換機通過此接口可以支持多種類型的用戶接入,而且V5接口的開放性意味著交換機和接入網(wǎng)的技術(shù)和業(yè)務(wù)演進完全獨立開來。接入網(wǎng)的發(fā)展可以不受交換機的限制,使得接入網(wǎng)市場完全開放。
一、V5接口協(xié)議結(jié)構(gòu)
窄帶V5接口包括V5.1和V5.2接口。V5.1接口由1條2048Kb/s鏈路構(gòu)成,通過時隙傳遞公共控制信號,支持模擬電話接入,基于64Kb/s的綜合業(yè)務(wù)數(shù)字網(wǎng)基本接入(2B+D)和用于半永久連接的、不加帶外信令信息的其他模擬接入和數(shù)字接入。這些接入類型都具有指配的承載通路分配,即用戶端口與V5.1接口內(nèi)承載通路有固定的對應(yīng)關(guān)系。V5.2接口按需要可以由1~16個2048Kb/s鏈路構(gòu)成,除支持V5.1接口的業(yè)務(wù)外,還支持ISDN PRI(30B+D)接入,其基于呼叫的時隙分配使得V5.2接口具有集中功能。V5.1接口是V5.2接口的子集,V5.1接口應(yīng)當(dāng)能夠升級到V5.2接口。
V5接口協(xié)議由3層組成,接入網(wǎng)側(cè)和本地交換機側(cè)呈不對稱布置,層與層之間的信息傳遞采用原語實現(xiàn),而同層子層間的信息傳遞則采用映射。
V5接口物理層由1~16條2048Kb/s的鏈路構(gòu)成,電氣和物理特性符合G.703建議,幀結(jié)構(gòu)符合G.704/G.706建議。每幀由32個時隙組成,其中:時隙TS0用作幀定位和CRC-4規(guī)程;時隙TS15、TS16和TS31可以用作通信通路(C通路),運載信令信息和控制信息,通過指配來分配;其余時隙可用作承載通路。
V5接口的數(shù)據(jù)鏈路層僅對于C通路而言。第二層協(xié)議(LAPV5)規(guī)范以建議Q.921中規(guī)定的LAPD協(xié)議和規(guī)程為基礎(chǔ),允許將不同的信息流靈活地復(fù)用到C通路上去。第二層協(xié)議分為兩個子層:封裝功能子層(LAPV5-EF)和數(shù)據(jù)鏈路子層(LAPV5-DL)。此外,第二層功能中還應(yīng)包括幀中繼功能(AN-FR)。
V5接口的第三層協(xié)議簇包括PSTN協(xié)議、控制協(xié)議、鏈路控制協(xié)議、BCC協(xié)議和保護協(xié)議(后三種協(xié)議為V5.2接口特有)。PSTN協(xié)議負責(zé)處理與PSTN業(yè)務(wù)有關(guān)的信令;控制協(xié)議負責(zé)用戶端口狀態(tài)指示與控制,協(xié)調(diào)兩側(cè)在網(wǎng)管控制下的數(shù)據(jù)指配;鏈路控制協(xié)議負責(zé)協(xié)調(diào)和控制AN、LE兩側(cè)的鏈路阻塞、鏈路解除阻塞和鏈路標(biāo)識功能;BCC協(xié)議用來把一特定2048Kb/s鏈路上的承載通路基于呼叫分配給用戶端口;保護協(xié)議提供V5.2接口在出現(xiàn)故障時通信路徑切換的保護功能。
如圖2所示,當(dāng)?shù)谌龑訁f(xié)議有信令信息需要發(fā)送時,通過數(shù)據(jù)鏈路子層(LAPV5-DL),請求封裝功能子層(LAPV5-EF),用給定的封裝功能地址傳送數(shù)據(jù)鏈路子層端到端數(shù)據(jù)。
二、V5接口的實現(xiàn)
筆者曾參與IDS2000綜合數(shù)字通信系統(tǒng)(接入網(wǎng)側(cè))V5.2接口的開放研制工作。IDS2000綜合數(shù)字通信系統(tǒng)是電力自動化研究院為了滿足電力通信網(wǎng)發(fā)展的需要而開發(fā)的一種綜合接入設(shè)備。該設(shè)備具備V5接口,使得IDS2000系統(tǒng)可以很方便地通過開放接口和大型交換設(shè)備互連,取代了原先接入大型交換設(shè)備時所用的音頻Z接口或?qū)S媒涌凇?/P>
V5接口協(xié)議分3層結(jié)構(gòu)。物理層和數(shù)據(jù)鏈路層部分功能由硬件實現(xiàn),這在超大規(guī)模集成電路飛速發(fā)展的今天,難度已不是太大。Mitel公司生產(chǎn)的大規(guī)模E1接口芯片MT9075就是一種很合適的芯片[3]。MT9075是一種單E1接口,綜合了成幀器和LIU。重要特性包括數(shù)據(jù)鏈路接入、告警、中斷、環(huán)回和診斷,并內(nèi)嵌了兩個HDLC控制器(MT8952),特別適用在V5接口(封裝功能子層功能和HDLC協(xié)議類似)。
V5接口的第三層協(xié)議包含內(nèi)容較多,由軟件實現(xiàn)。本文主要結(jié)合嵌入式系統(tǒng)編程來介紹V5接口的第三層軟件結(jié)構(gòu),對于協(xié)議細節(jié)的實現(xiàn)不多贅述。
1.實時多任務(wù)操作系統(tǒng)[4]
目前,嵌入式應(yīng)用領(lǐng)域的一個發(fā)展傾向是采用實時多任務(wù)操作系統(tǒng)RTOS(Real Time Operating System)。RTOS的廣泛使用與應(yīng)用的復(fù)雜化有關(guān)。過去1個單片機應(yīng)用程序所控制的外設(shè)和履行的任務(wù)不多,采取1個主循環(huán)和幾個順序調(diào)用的子程序模塊即可滿足要求;但現(xiàn)在1個嵌入式控制系統(tǒng)可能要同時控制/監(jiān)視很多外設(shè),要求實時響應(yīng),有很多處理任務(wù),各個任務(wù)之間有很多信息傳遞,如果仍采用原來的方法,存在兩個問題:一是中斷可能得不到及時響應(yīng),處理時間過長;二是系統(tǒng)任務(wù)多,要考慮的各種可能也多,各種資源若調(diào)度不當(dāng)就會造成死鎖,降低軟件可靠性,程序編寫任務(wù)量成指數(shù)增加。正是這種情況的出現(xiàn),推動著RTOS的應(yīng)用迅速發(fā)展。
對于V5接口,系統(tǒng)軟件工作量相當(dāng)大,包括5個核心協(xié)議功能的處理,須管理很多定時器,有很多用戶端口需要監(jiān)視,并且要求實時處理,若采用傳統(tǒng)的軟件編程方法,很難實現(xiàn)。在IDS2000系統(tǒng)中,筆者采用VRTX實時多任務(wù)操作系統(tǒng)[5]作為開發(fā)平臺,大大減輕了軟件的工作量,而采用面向?qū)ο蟮木幊谭椒ê褪录?qū)動的消息機制,使得協(xié)議程序具有高可靠性、可控、可觀測、易于維護和管理。
2.V5接口軟件框圖
如圖3所示,V5接口軟件主要包括:
(1) 數(shù)據(jù)鏈路層模塊(僅包括數(shù)據(jù)鏈路子層功能,封裝功能子層由硬件板完成);
(2) PSTN協(xié)議處理模塊;
(3) 控制協(xié)議處理模塊(包括用戶端口狀態(tài)機、指配控制狀態(tài)機、公共控制狀態(tài)機);
(4) 鏈路控制協(xié)議處理模塊(包括鏈路控制狀態(tài)機、鏈路控制L3狀態(tài)機);
(5) BCC協(xié)議處理模塊;
(6) 保護協(xié)議模塊;
(7) V5接口AN側(cè)系統(tǒng)管理模塊;
(8) V5接口AN側(cè)資源管理模塊;
(9) 定時器管理模塊;
(10) 消息處理模塊;
(11) 用戶端口模塊;
(12) 10ms定時中斷。
上述模塊中,模塊1~7完成V5接口協(xié)議的核心功能。其中,數(shù)據(jù)鏈路層模塊對模塊2~7所產(chǎn)生的消息進行處理,交由V5硬件接口板完成封裝功能,再發(fā)送給LE側(cè)實體;PSTN協(xié)議處理模塊主要功能是建立用戶端口狀態(tài)和LE側(cè)國內(nèi)協(xié)議實體之間的聯(lián)系;控制協(xié)議模塊用于表示用戶端口狀態(tài)指示與控制,還和系統(tǒng)啟動、重新啟動、指配有關(guān);V5接口AN側(cè)系統(tǒng)管理模塊是協(xié)議功能正常實現(xiàn)的重要部分,在AN和LE中,不同的FSM之間或第二層協(xié)議實體之間沒有直接的通信,而是通過系統(tǒng)管理來協(xié)調(diào)V5接口各個協(xié)議實體之間的操作。另外,系統(tǒng)管理負責(zé)從AN或LE的各種功能模塊中接收和處理有關(guān)狀態(tài)和故障的信息。系統(tǒng)管理還是維護臺或網(wǎng)管系統(tǒng)與V5接口之間的橋梁,它負責(zé)接收維護命令,并對V5接口執(zhí)行相應(yīng)的操作,隨時向上層網(wǎng)管報告系統(tǒng)的運行狀況。
模塊8~12完成V5接口協(xié)議的輔助功能。其中用戶端口模塊負責(zé)用戶端口狀態(tài)掃描與控制,直接與硬件端口聯(lián)系;AN側(cè)資源管理模塊配合BCC協(xié)議處理模塊完成V5接口中BCC協(xié)議功能;消息處理模塊是為了減輕操作系統(tǒng)的負擔(dān)設(shè)立的,它負責(zé)協(xié)同操作系統(tǒng)管理各模塊的消息隊列;定時器管理模塊負責(zé)產(chǎn)生、管理系統(tǒng)中所需要的定時器,當(dāng)定時器溢出時,發(fā)送消息至相應(yīng)模塊;10ms定時中斷程序負責(zé)調(diào)度系統(tǒng)中需周期性運行的任務(wù),采用“信號量”(semaphores)的通信機制完成。
3.有限狀態(tài)機
在上述程序模塊中,存在大量的有限狀態(tài)機(FSM),如控制協(xié)議中的用戶端口FSM、公共控制FSM、BCC協(xié)議中的承載通路連接FSM等。有限狀態(tài)機是描述通信協(xié)議過程的一般方式,是一種面向?qū)ο蟮拿枋龇椒?,與具體實現(xiàn)程序無關(guān)。有限狀態(tài)機具有有限狀態(tài)集,在任意給定的時刻,必有惟一確定的狀態(tài),在某狀態(tài)下必須依賴于外部輸入的特定消息觸發(fā),才能引起狀態(tài)轉(zhuǎn)移或執(zhí)行某種任務(wù)。
有限狀態(tài)機對于系統(tǒng)其他軟件而言相當(dāng)于一個“黑匣子”。它可以接收有限的消息組,也可以發(fā)送特定的消息組,但其內(nèi)部結(jié)構(gòu)不為系統(tǒng)其他部分所知。它的功能完全由它接收和發(fā)送消息順序所決定。
有限狀態(tài)機的這種描述方式很適合用面向?qū)ο蟮姆椒▽崿F(xiàn)。在傳統(tǒng)的實現(xiàn)方法中,狀態(tài)變量和狀態(tài)表可以在狀態(tài)機模塊外被訪問,易于遭到破壞。面向?qū)ο蟮膶崿F(xiàn)方法提供了一種更加結(jié)構(gòu)化和更加直觀的FSM實現(xiàn)方法,更利于“數(shù)據(jù)隱藏”,而且這些優(yōu)點隨著FSM規(guī)模的增大越發(fā)明顯。我們只須要定義一個FSM基類,利用封裝、繼承和多態(tài)性的特點,就很容易從先前定義的基類中派生出所需要的FSM,大大減少了軟件的工作量,軟件也易于維護。
4.定時器的實現(xiàn)機制
定時器對于正確實現(xiàn)通信協(xié)議功能有著很重要的作用。V5接口協(xié)議中存在大量的定時器,當(dāng)話務(wù)量較大時,可能有數(shù)百個定時器同時運行。定時器的設(shè)計是正確完成V5接口協(xié)議功能的一個重要部分。
本系統(tǒng)中由定時器管理進程負責(zé)管理V5接口中所有的定時器。由于各種定時器所要求的精度各不相同,所選擇時間的長度對各定時器進行監(jiān)視和計數(shù)累計是問題的關(guān)鍵:時間間隔太小,影響系統(tǒng)運行效率;時間間隔太長,影響定時器的精度。為了解決這個問題,系統(tǒng)中設(shè)定了三種不同分辨率的定時器:10ms、100ms和1s(分辨率指計數(shù)時間間隔)。
若某應(yīng)用進程須要使用定時器,首先要向定時器管理進程發(fā)送一消息,消息中應(yīng)包含申請定時器的分辨率、預(yù)置計數(shù)值、溢出后應(yīng)發(fā)送的消息等信息。定時器管理進程收到該消息后,根據(jù)定時器的分辨率將其放到合適的定時隊列中,啟動定時。若定時器計數(shù)為零,則表示該定時器溢出,定時器管理進程應(yīng)向相應(yīng)的應(yīng)用進程發(fā)送溢出消息,同時應(yīng)釋放該定時器。應(yīng)用進程若主動要求放棄一定時器,則應(yīng)向定時器管理進程發(fā)送一釋放定時器消息。消息中應(yīng)包含所申請定時器的標(biāo)號、分辨率以及溢出目標(biāo)進程、目標(biāo)對象等。定時器管理進程接收到此消息后,在合適的定時器隊列中尋找到該定時器后,將其釋放。 定時器管理進程管理其他各應(yīng)用進程所申請的定時器。在定時器管理進程中,有三個鏈表分別用于存放這3種不同分辨率的定時器。
定時器管理進程完成以下一些基本功能:
(1)管理10ms、100ms和1s三種定時器鏈表。
(2)當(dāng)10ms定時間隔到,應(yīng)遍歷10ms定時器鏈表,完成對鏈表中各定時器的計數(shù)處理。若有定時器溢出,則向相應(yīng)的進程發(fā)送溢出消息,并從定時器鏈表中釋放該定時器。同樣,當(dāng)100ms或1s的定時間隔到時,也應(yīng)對100ms或1s定時器鏈表作相同處理。
(3)處理從其他進程接收到的消息。當(dāng)收到從其他進程發(fā)送的申請定時器的消息時,應(yīng)在相應(yīng)分辨率的定時器鏈表中插入所申請的定時器;在接收到從其他進程來的釋放定時器的消息后,應(yīng)尋找到該定時器,并將其釋放。
5.編寫可重入函數(shù)
V5接口中有大量的函數(shù)需要編寫。和傳統(tǒng)的編程環(huán)境不同,本系統(tǒng)中,V5接口軟件運行在多任務(wù)環(huán)境上,函數(shù)的可重入性(reentrancy)顯得很重要。
所謂可重入函數(shù)是指一個可以被多個任務(wù)調(diào)用的過程,任務(wù)在調(diào)用時不必擔(dān)心數(shù)據(jù)是否會出錯。在編寫函數(shù)時應(yīng)盡量只使用局部變量,對于要使用的全局變量需要加以保護(如采用關(guān)中斷、信號量等措施),這樣構(gòu)成的函數(shù)一定是可重入的;而編譯器是否具有可重入的庫,與它所服務(wù)的操作系統(tǒng)有關(guān),如DOS下的Borland C和Microsoft C/C++等就沒有可重入函數(shù)庫,這是因為DOS是一個單用戶、單任務(wù)的操作系統(tǒng)。
為了確保每一個調(diào)用函數(shù)的任務(wù)控制自己私有變量,在一個可重入的C函數(shù)中,將這樣的變量申明為局部變量,C編譯器將這樣的變量存放在調(diào)用棧上或寄存器里。在VRTX操作系統(tǒng)下編寫可重入的函數(shù),須要遵循以下原則:
(1)將所有局部變量申明為auto或寄存器(register)類型;
(2)盡量不要使用static或extern變量,不可避免使用全局變量時,需加以保護;
(3)用VRTX庫函數(shù)sc_gblock分配大的數(shù)據(jù)結(jié)構(gòu)。
三、V5接口發(fā)展的趨勢
從長遠看,為了克服現(xiàn)有一系列SNI(業(yè)務(wù)節(jié)點接口)功能的限制,須要開發(fā)附加的SNI,特別是模塊型和B-ISDN接入型SNI。目前,以ATM為基礎(chǔ)的VB5接口的標(biāo)準(zhǔn)化工作正在進行。VB5參考點可分為VB5.1和VB5.2兩種形式。
ITU-T已經(jīng)通過了關(guān)于VB5參考點的建議,規(guī)定了VB5既支持AN與SN的直接連接,又支持 兩者的遠程連接;既支持基于ATM的B-ISDN接入,又支持各種非ATM的接入。此外,VB5還應(yīng)支持接入各種SN的接入功能,并能同時連接到多個不同的SN。有關(guān)VB5的技術(shù)框架還有待進一步研究和開發(fā)。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)c++相關(guān)文章:c++教程
評論