在上文中我们聊到数字对讲机DMR 对讲芯片的特性、规格尺寸及引脚、应用电路框架图、技术参数和使用。今天小编就来和你聊聊数字对讲机DMR制式的模块的串口协议:


数字对讲机DMR制式的模块的串口协议
模块支持通过串口进行语音、短信等功能的收发配置。串口协议包格式如下图图1所示,协议字段定义如下表1所示:


注1:当模块正在发送或者接收信号过程中,此时若外部 CPU 对模块进行配置时,模块会0x01,告知外部CPU模块繁忙,设置失败。
注2:若切换信道时,切换到不存在的信道,模块会反馈0x02,告知CPU无此信道;若在模拟信道下进行DMR相关的配置(如短信、特殊业务等)或者数字信道下进行模拟相关的设置(如亚音频等),模块会反馈0x02,告诉CPU信道错误。
注3:校验和:求和,再异或sum+= 0xFFFF & (*buf<<8|*(buf+1)); 以此类推,最后取sum值的异或值。
注4:所有的串口协议都为小端模式(即高字节保存在高位)。
1、数字对讲机DMR制式的模块信道切换
当切换信道的时候,如果该信道不存在,则会反馈信道不存在的指令。
●信道切换配置串口包
信道切换配置串口包帧格式如下表2所示。
68 01 01 01 00 00 00 01 n 10

●信道切换配置反馈包
信道切换配置反馈包帧格式如下表3所示。

2、接收音量设置
用户可以通过设置接收音量来达到最合适的音量。
●接收音量设置串口包
接收音量设置串口包帧格式如下表4所示。

●接收音量设置反馈包
接收音量设置反馈包帧格式如下表5所示。

3、扫描功能设置
扫描功能是在设定的扫描列表中进行信道扫描,用于获得正在通信的信道,可以通过主 CPU 的协作,达到控制中心让每个机器进行频率迁移、同步的工作。当有信道接入的时候,MCU 则会反馈接收到的频率给 PC。
●扫描功能设置串口包
扫描功能设置串口包帧格式如下表6所示。

●扫描功能设置反馈包
扫描功能设置反馈包帧格式如下表7所示

4、 模块收发状态查询
通过指令能查询模块当前收发状态。
●查询收发状态串口包
扫描功能设置串口包帧格式如下表8 所示。

●查询收发状态反馈包
扫描功能设置反馈包帧格式如下表9所示。

注:若校验正确,则第 6、7 字节的数据段长度为 0x00,0x01,数据段信息为收发状态值。若校验错误,则第 6、7字节的数据长度为 0x00,0x00,不带数据段信息。
5、信号强度读取
● 信号强度读取串口包
信号强度读取串口包帧格式如表 10 错误!未找到引用源。所示。

● 信号强度读取反馈包
信号强度读取反馈包帧格式如表11所示。

注:若校验正确,则第 6、7 字节的数据段长度为 0x00,0x01,数据段信息为 RSSI 值。若校验错误,则第 6、7 字节的数据长度为 0x00,0x00,不带数据段信息。
6、语音通信
模拟发送语音的时候数据段4个字节都为0。
1)语音发送流程

图2语音发送流程
外置CPU发送语音的流程如图2所示。
首先,外置CPU向模块写入开始发送语音的串口包。模块对写入的串口包进行校验,并根据校验结果给出校验正确或者校验错误的反馈包。
其次,外置CPU根据接收到的串口校验反馈包,判断校验是否正确。若错误,则重新写入开始语音发送的串口包;若正确,表明模块已正在进行语音发送,外置CPU可以显示“语音发送中”。
在语音发送的过程中,外置CPU可以通过写入结束语音发送串口包结束语音发送。模块收到结束语音发送的串口包后,对串口包进行校验,并给出校验正确或者校验错误的反馈包。外置CPU根据接收到的串口校验反馈包,判断校验是否正确,若错误,则重新写入结束语音发送的串口包;若正确,则显示“语音结束”等信息。
如果在语音发送过程中,模块未收到外置CPU的结束语音发送的串口包,且发射时间达到预设的发射限时值,则模块会停止发送,且会通过串口向外置 CPU 发送语音超时的反馈包。
2)语音接收流程

外置CPU发送语音的流程如图3所示。
首先,当模块接收到语音信号后,通过串口向外置CPU发送语音接收开始串口包,外置 CPU 接收到该串口包后,打开音频功放,同时向模块写入查询呼叫类型及号码的串口包。模块接收到该串口包后,会对串口包进行校验,并给出相应的串口反馈包,如果校s验正确,则模块给出的串口反馈包附带呼叫方的号码及呼叫类型;若校验错误,则模块给出校验错误的反馈包。
其次,外置CPU接收到串口反馈包,判断反馈是否正确,若正确,则显示呼叫方号码;若错误,则再次写入查询呼叫类型及号码的串口包。
接着,若语音呼叫结束(包括正常结束或者异常结束),模块会给出语音接收结束的串口包。外置CPU接收到该串口包后,进行关闭音频功放,显示“通话结束”等操作。
3)收发语音的串口协议包格式
● 开始/停止语音呼叫协议包格式
开始/停止语音呼叫协议包格式如表12所示。

●语音呼叫反馈包格式 1
语音呼叫反馈包格式 1 如表13所示。

●语音呼叫反馈包格式2
语音呼叫反馈包格式 2如表14所示。

●语音呼叫/接收串口包格式(含联系人信息)
语音接收开始/结束串口包格式如表15所示。

●查询呼叫类型及号码串口包格式
查询呼叫类型及号码串口包格式如表16所示。

●查询呼叫类型及号码反馈包格式
查询呼叫类型及号码反馈包格式如表17所示

7、短信通信
短信通信主要分为非确认短信,确认短信,非确认短信主要是用户广播信息使用,确认短信主要是针对点对点的短信控制,具备反馈机制,适合准确传输,状态短信则是用于进行一些预定指令的通信,提高效率。
●非确认短信发送流程

外置 CPU 处理非确认短信发送流程如图4所示。
首先,由外置 CPU 向模块写入串口包,设置短信联系人及短信模式和短信内容;模块会对写入的串口包进行校验,若校验不通过,则给出错误的反馈包,如果校验通过,则发送短信。
●非确认短信接收流程

外置 CPU 处理非确认短信发送流程如图5所示。
外置 CPU 接收到短信接收成功的串口包后向模块查询短信内容的串口包。模块对接收到的查询短信内容的串口包进行校验,若校验正确,则将接收到的短信内容及短信发送方地址发送给外置CPU;若校验不正确,则向外置CPU发送校验不正确的串口反馈包。
●确认短信发送流程

外置CPU处理确认短信发送流程如图6所示。
首先,由外置CPU向模块写入串口包,设置短信联系人及短信模式;模块会对写入的串口包进行校验,若校验不通过,则给出错误的反馈包;如果校验通过,则发送短信。
再次,待短信发送结束,模块会给出IP校验反馈包,告知外置CPU,接收方是否收到短信。外置CPU根据接收到的IP校验反馈包,显示短信发送成功或者短信发送失败等信息
● 确认短信接收流程
外置 CPU 处理确认短信的接收流程,与处理非确认短信的接收流程一致。
8、收发短信的串口协议包格式
●设置联系人及短信模式协议包格式
设置联系人及短信模式的协议包格式如表18所示。

●设置联系人及短信模式反馈包格式
设置联系人及短信模式的反馈包格式如错误!未找到引用源。所示。

●短信接收成功协议包格式
短信接收成功协议包格式如表20所示。

●查询短信内容协议包格式
查询短信内容协议包格式如错误!未找到引用源。所示。

●查询短信内容校验错误反馈包格式
查询短信内容校验错误反馈包格式如表22所示。

其中,若校验正确,则模块给出的反馈包第三字节为 0x01,同时输出短信发送方号码CallID及短信内容MsgData,此时数据段长度 LEN 应设置为短信发送方号码长度(3 字节)+短信内容长度(MsgData);
若校验出错,则模块给出的反馈包第三字节为 0xFF,同时数据段长度 LEN 设置为 0x00,0x00,表示无数据段内容。
●IP 校验反馈包格式
IP 校验反馈包格式如表23所示。

未完待续......在下文中我们继续为您讲解数字对讲机DMR制式模块的紧急报警、增强功能、Mic 增益配置、省电模式设置、收发频率设置、中继脱网设置、静噪级别设置等功能。