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