數字無中心系統呼叫控制協議的設計和實現
無中心系統基本的數據傳輸單位是幀。呼叫控制信令由兩種幀結構構成,頭幀和尾幀。
頭幀中包含了信令中大部分的控制信息,其幀結構如下:本文引用地址:http://www.104case.com/article/163753.htm
前導碼:用于接收機的同步。
幀同步:頭幀的識別和同步。
頭幀類型:4 b,標識頭幀類型,是頭幀的主要標識,也是信令的主要標識,其取值為:0000通話起始信令;0001呼叫建立請求信令;0010拆線請求信令;0011ACK信令;0100禁發和還原信令;0101禁收發信令。
接收方ID:被叫方移動臺ID號,通過空中接口對7位數字呼號編碼得到。
發送方ID:主叫方移動臺ID號,通過空中接口對7位數字呼號編碼得到。
通信模式:用于區別語音通信或者數據傳輸。
通信格式:用于區別全呼通信、點對點通信。
呼叫信息:11 b,用于區別單呼、組呼以及ACK信令的定義。
尾幀補充在頭幀之后構成完整的信令或單獨構成通信結束的信令,其幀結構如下:
尾幀同步碼:4 b,用于尾幀的發現和同步,固定為7D DF F5。
尾幀類型:2 b,尾幀的主要標識。00表示普通尾幀;01表示帶有狀態信息的尾幀。
ACK請求:2 b,標識是否需要被呼方發送ACK信號。
Tx等待:4 b,標識是否需要一段時間來強制讓收到該尾幀的用戶的PTT失效,以便允許用戶發送插入請求。
狀態信息:5 b,用戶根據需要自己定義,共32種狀態信息。
3.2.2 呼叫控制信令的內容
呼叫建立請求信令是用戶發起呼叫時向被叫方以廣播方式發送的控制信息。該信令的組成為:頭幀(建立請求)+尾幀。
呼叫應答信令是被叫方接收到呼叫建立請求信令后,向主叫方發送的反饋控制信息。該信令結構為:頭幀(ACK)。
語音始發信令先于語音傳送,用于標識實際語音即將到來,它的結構為:頭幀(通信起始)。
語音終結信令表示語音傳輸告一段落,它的位置在語音數據塊之后。語音終結信令結構為:尾幀(通信結束)。
拆線信令是當通信一方希望結束通話時所發送的通話結束信號,用于告知對方通話即將結束。拆線信令結構為:頭幀(拆線)+尾幀+頭幀(拆線)+尾幀。
3.3 應用狀態機實現呼叫控制協議
數字無中心呼叫控制協議利用有限狀態機的設計方案進行描述和實現。有限狀態機克服了純硬件數字系統順序控制方式不靈活的缺點,它能夠架構性能良好的時序邏輯模塊,以事件驅動的簡易方式來解決復雜的程序流程問題。其可靠性優勢明顯,是目前嵌入式領域控制程序的通用解決方式。
通信流程中狀態的設計是呼叫控制層協議實現的關鍵。完整而合理的狀態轉移過程也是程序實現的重要前提。呼叫控制層狀態應包括呼叫控制流程周期中的每個典型狀況。并且狀態之間應該可以轉換,不應該存在不能達到的狀態或不能進入再次過程的死狀態,同時對于要描述的特性沒有意義的多余狀態也應該避免。
3.3.1 用戶A與B通信流程狀態事件機
根據呼叫控制流程和呼叫控制信令的特點以及無中心體制的技術規范,呼叫控制狀態機中共設計了S0~S4共5個狀態。S0(待機狀態)表示移動終端空閑時的默認狀態;S1(發起呼叫中狀態)為呼叫發起方撥號后的呼叫等待狀態,S1被叫進行中的狀態為被叫方接收到呼叫建立請求后的判斷等待狀態;S2(呼叫已建立狀態)表示呼叫已建立成功,正在等待下一步進行通話;S3(發話中狀態)為用戶按下對講機PTT鍵后傳送通話語音的狀態;S4(收話中狀態)為用戶正在收聽對方通話語音的狀態。通話結束后雙方返回到S0(待機狀態)。該狀態機考慮了呼叫控制實際應用中的技術細節,實現了每一個狀態在各種動作、事件激勵下的可預期性轉移。狀態機的具體內容如圖5,圖6所示(注:復位拆線后各狀態均轉換到待機狀態)。
3.3.2 呼叫控制程序的實現
呼叫控制程序應用嵌入式C語言在ARM7處理器中開發。設變量ccl_state存儲當前狀態的代碼,next_state存儲下一狀態代碼,利用Switch_Case語句以及對事件判斷的if條件語句即可實現復雜的多條件、多分支的呼叫控制狀態機。
在程序的設計過程中加入了ARM定時器。定時器在嵌入式系統中起著十分關鍵的作用。為節省頻率資源無中心體制加入了通話限時功能,在通話限時開始后,需要啟動定時器計時。定時器到時后產生IRQ中斷,執行終止通話操作。為增加程序的可靠性,防止死狀態的產生,在程序中也要加入對定時器超時事件的判斷動作。各狀態(除待機狀態)一旦處于等待下一步動作的狀態時,需要立即啟動定時器進行超時判斷。例如,呼叫建立時通過定時器檢測對方應答時間,超時則返回S0待機狀態。
4 呼叫控制協議的可行性和可靠性分析
呼叫控制流程、呼叫控制信令結構、呼叫控制的狀態機三部分密不可分,構成了實現呼叫控制協議的基本要素。呼叫流程的設計考慮了無中心體制以及傳統對講機工作流程。
呼叫控制信令借鑒了ETSI TS 102 490-DPMR標準中數據鏈路層的信令幀結構并進行了改進。呼叫控制狀態機應用UML模型設計了由通信事件、動作觸發的五種可變遷狀態。在邏輯上此呼叫控制協議充分模擬了實際應用中的呼叫控制的各種工作情景,理論上能夠正確完成呼叫控制系統的功能。在實際嵌入式開發過程中,利用ARM7處理器的高速運行優勢,在數據傳輸中對誤碼率要求嚴格的控制信令增加了數據鏈路層的差錯控制編碼,CRC循環冗余校驗,漢明糾錯編碼,交織抑制連續突發干擾糾錯編碼,保證了控制信的準確傳輸。
令此外在呼叫控制程序中增加了防死狀態的定時器中斷,提高了程序的運行可靠性。本呼叫控制協議已實際應用到實驗室數字無中心對講機的樣機開發中,運行穩定。
5 結 語
隨著各種數字技術的迅猛發展,模擬的無中心系統在當前的技術環境下已顯得捉襟見肘,對其進行全面數字化改造將是未來專網無線通信領域的重要工作內容。呼叫控制協議的數字化標準尚無正式版本推出,本文介紹的呼叫控制協議已應用到數字無中心對講機的產品開發中,運行穩定,在功能上有待根據實際需求進行進一步的擴容和改進。
評論