2018-08-15 10:18:07
4598
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 之间的通信也是很关键的一个环节。