2018-08-15 10:18:07
4747
DMR 通信協議是一個適用于數字集群通信系統的新型通信協議?;?DMR 通信協議的數字對講機中 DMR 高層協議的硬件平臺,通過DMR 高層協議的軟件實現DMR 呼叫控制層 (CCL 層 ) 協議的完整性與正確性。
DMR高層協議如何在數字對講機上的實現?
DMR 協議的簡要介紹DMR 協議采用 2 時隙的 TDMA 結構 , 其中每個突發包含兩個時隙 , 每個時隙 30 ms , 每個突發60 ms 。DMR 協議包含直通和轉發兩種模式 , 顧名思義 ,直通模式是指所有 DMR 終端實體都是等價的 , 都是移動臺。而轉發模式除了移動臺之外 , 還需要有基站來進行中繼和轉發。本次數字對講機的設計是針對直通模式的 , 沒有特別指明的話 , 以下所述的內容都是針對DMR 直通模型的。
DMR高層協議的介紹
DMR 協議的高層不止包括呼叫控制層 , 還包括數據鏈路層的信道接入部分 , 當然廣義的說高層與用戶接口也是有關系的。呼叫控制層主要完成對整個呼叫過程的控制 , 對呼叫建立、 呼叫保持和呼叫結束進行管理 , 主要實現的是信令之間的通信 , 呼叫控制層呼叫流程
當用戶按下 PTT 之后 , 發端發送呼叫請求信令( TXCSBK) , 并等待收端的呼叫請求應答信令(UUAns) , 收到應答并且收端允許呼叫 (proceed) , 則發端按照 impolite 型的信道接入準則進行信道接入 , 之后便是語音通話的開始 , 語音通話之前總是要有一個語音幀頭(LCHeader) 由發端發往收端。當用戶松開PTT , 發端向收端發送呼叫結束信令 (EOTX), 收端收到后結束本次呼叫。
DMR高層協議的數字對講機硬件平臺介紹
其中信號處理器件選用TI的DSP:TMS320VC5510,控制器件選用TI的 MCU :MSP430FG4619 , 語音編碼器件選用高性能的多速率語音編解碼芯片 AMBE 2 2000 。整個系統的核心器件是DSP 和 MCU ,DSP 完成 DMR 底層通信 ( 編解碼、幀同步、 調制解調、 數據收發等 ) ,MCU 主要完成 DMR高層控制以及人機接口等功能 (高層協議、鍵盤、顯示、對射頻的控制和檢測等 ) 。 MSP430 系列 MCU 是 TI 公司推出的一種超低功耗的 16 位單片機 , 具有豐富的片內外圍資源 , 有豐富的定時器、 各類串口、 顯示驅動、 AD/DA等功能, 通用端口也可對位進行操作。信令所走的路線是人機接口2 MCU 2 DSP 2 AD/ DA 2射頻, 語音所走的路線是麥克風 / 耳機2 AMBE 2 DSP 2AD/ DA 2射頻??梢钥吹?, 對于 DMR 高層協議來說 ,都是在 MCU 中實現 , 因此 MCU 與 DSP 之間的通信就顯得格外重要。VC5510 片內有增強型主機接口 ( EHPI) , 因此可以很方便的與 MCU 進行連接 , 其電路連接原理圖如圖 4 所示。
其中HCS為 EHPI使能引腳 , 拉低表示始終使能 ;HMODE是復用選擇引腳 , 為低表示 HPI 工作在地址、數據復用模式下; HBE0 、HBE1 為低高字節使能,都接地表示高低字節均使能 ; HDS2 拉之后 , HDS1 來確定 HPI 的工作模式; HR/ W確定HPI的讀寫模式 ;HCNTL0、HCN TL1聯合用來確定主機訪問HPI的哪個寄存器:地址寄存器HPIA、數據寄存器 HPID 、 控制寄存器 HPIC;HRDY 為從機 (DSP) 數據準備好信號;HINT 用于從機 (DSP) 中斷主機 (MCU) 。
DMR高層協議的具體硬件實現
DMR高層協議的軟件編寫都是在MSP430下完成的, 使用的開發工具是IAR 。以下便是呼叫控制層的信令傳輸的實驗具體實現。
MCU在檢測到鍵盤有 PTT 按下之后便進入主叫模式 , 立即組幀 TX CSBK, 并向 DSP 發送80 b 的信令數據 , 同時給DSP一個中斷讓其響應 ,DSP收到中斷后進行信號處理并向收端發送出去。收端DSP 收到發端來的數據并且數據處理之后 , 給 MCU一個中斷 ,MCU 讀數據并判斷是否為 TX CSBK, 若是則進入被叫模式 , 并向發端返回一個呼叫應答(UUAns) 信令。同樣的處理(DSP 接收數據給 MCU 中斷或者 DSP 接到 MCU 信令向對方發送) ,發端收到 UUAns 之后便可進行語音傳輸 , 首先要發送 72 b 長度的語音頭信令(LHeader) , 之后信令通信可暫時停止 ,因為語音通信不經過 MCU 而且也不屬于高層。在發端檢測到 PTT 松開之后 , 向收端發送 EOTX( Termi 2nate)信令來終止呼叫 , 收端收到發端的EOTX 之后同樣也結束呼叫。至此, 一次完整的通話過程結束。
當然, 上面所述的是呼叫完全暢通的情況,偶爾會出現信令傳輸丟失或者幀出錯的情況 , 程序中使用定時器來定時 , 定時時間到之后則做相應處理, 部分程序段如下 :
TACTL=TASSEL1+TACLR;//開定時器A,用于等待UUAnsCCTL0=CCIE;CCR0=16384;//定時時間 16384/ 32. 768 = 500msTACTL | = MC 1 ; / / 增計數模式MCU 與 DSP 之間的通信也是很關鍵的一個環節。