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