在上文中我们聊到数字对讲机DMR 对讲芯片的特性、规格尺寸及引脚、应用电路框架图、技术参数和使用。今天小编就来和你聊聊数字对讲机DMR制式的模块的串口协议:
![img_2437bc85074ffa6c37b87083d86d070b.jpe](https://i-blog.csdnimg.cn/blog_migrate/fe9e819079b386bb9bc22b5e61491bad.jpeg)
![img_46faa015df44bd4508e83593f25265ec.jpe](https://i-blog.csdnimg.cn/blog_migrate/a6823a2edbbea69069c9c6002341345e.jpeg)
数字对讲机DMR制式的模块的串口协议
模块支持通过串口进行语音、短信等功能的收发配置。串口协议包格式如下图图1所示,协议字段定义如下表1所示:
![img_e058c7803230b7c8007790195c6514e6.jpe](https://i-blog.csdnimg.cn/blog_migrate/3c37e139ab5df463485ec52bd55119be.jpeg)
![img_9c5fb5c9941afb77abcccc836d537b38.jpe](https://i-blog.csdnimg.cn/blog_migrate/1f1c4749ef9344676eb281b86e3a7e19.jpeg)
注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
![img_2775e6f411f6a2aaefd98145275d6793.jpe](https://i-blog.csdnimg.cn/blog_migrate/47b0722536151f59f3fb503706b466b9.jpeg)
●信道切换配置反馈包
信道切换配置反馈包帧格式如下表3所示。
![img_31b5b6eb5cd651e4690b5a5f0ed33a84.jpe](https://i-blog.csdnimg.cn/blog_migrate/83731ab78df1f2b15d55e5e22c747b13.jpeg)
2、接收音量设置
用户可以通过设置接收音量来达到最合适的音量。
●接收音量设置串口包
接收音量设置串口包帧格式如下表4所示。
![img_80e1374cfff89640cfb8c9e3b5415eda.jpe](https://i-blog.csdnimg.cn/blog_migrate/95eba0a23a745938aa534cf4816e0ee1.jpeg)
●接收音量设置反馈包
接收音量设置反馈包帧格式如下表5所示。
![img_0f9d1a4d69a37bcad2c01c498d220054.jpe](https://i-blog.csdnimg.cn/blog_migrate/9c895551e0f6b0ff4770613957e98d23.jpeg)
3、扫描功能设置
扫描功能是在设定的扫描列表中进行信道扫描,用于获得正在通信的信道,可以通过主 CPU 的协作,达到控制中心让每个机器进行频率迁移、同步的工作。当有信道接入的时候,MCU 则会反馈接收到的频率给 PC。
●扫描功能设置串口包
扫描功能设置串口包帧格式如下表6所示。
![img_5aee6d80a94d977cc4fb000ad5fbfdd1.jpe](https://i-blog.csdnimg.cn/blog_migrate/3d820117f9237ccd5ee0a38da9101a60.jpeg)
●扫描功能设置反馈包
扫描功能设置反馈包帧格式如下表7所示
![img_75922958d9fee51d92c48ac05802d9be.jpe](https://i-blog.csdnimg.cn/blog_migrate/924f850e1ce4f1b58b1bbf21a43fffe2.jpeg)
4、 模块收发状态查询
通过指令能查询模块当前收发状态。
●查询收发状态串口包
扫描功能设置串口包帧格式如下表8 所示。
![img_500ae85b9df265cb1153f528dbc0ab40.jpe](https://i-blog.csdnimg.cn/blog_migrate/f5b379fd3a5d4275408669d90d1b5525.jpeg)
●查询收发状态反馈包
扫描功能设置反馈包帧格式如下表9所示。
![img_a10d1f245eddb96efa5bf6ae85059dcb.jpe](https://i-blog.csdnimg.cn/blog_migrate/50f147d362be72bb7ee5ec47017ee447.jpeg)
注:若校验正确,则第 6、7 字节的数据段长度为 0x00,0x01,数据段信息为收发状态值。若校验错误,则第 6、7字节的数据长度为 0x00,0x00,不带数据段信息。
5、信号强度读取
● 信号强度读取串口包
信号强度读取串口包帧格式如表 10 错误!未找到引用源。所示。
![img_703886628c542ac65e7817ae2158dcbf.jpe](https://i-blog.csdnimg.cn/blog_migrate/6bef2cc306b19b96177e967e12304b20.jpeg)
● 信号强度读取反馈包
信号强度读取反馈包帧格式如表11所示。
![img_f32241fd8e6c4df6fee138ed1ef5a7d5.jpe](https://i-blog.csdnimg.cn/blog_migrate/3e92c1d2f4b85912caffb58293d15381.jpeg)
注:若校验正确,则第 6、7 字节的数据段长度为 0x00,0x01,数据段信息为 RSSI 值。若校验错误,则第 6、7 字节的数据长度为 0x00,0x00,不带数据段信息。
6、语音通信
模拟发送语音的时候数据段4个字节都为0。
1)语音发送流程
![img_6a3c19249a002a1fa8a2f6c6f9e49b4b.jpe](https://i-blog.csdnimg.cn/blog_migrate/5d23d8ec02fadcd6f708d0eab9fd9bba.jpeg)
图2语音发送流程
外置CPU发送语音的流程如图2所示。
首先,外置CPU向模块写入开始发送语音的串口包。模块对写入的串口包进行校验,并根据校验结果给出校验正确或者校验错误的反馈包。
其次,外置CPU根据接收到的串口校验反馈包,判断校验是否正确。若错误,则重新写入开始语音发送的串口包;若正确,表明模块已正在进行语音发送,外置CPU可以显示“语音发送中”。
在语音发送的过程中,外置CPU可以通过写入结束语音发送串口包结束语音发送。模块收到结束语音发送的串口包后,对串口包进行校验,并给出校验正确或者校验错误的反馈包。外置CPU根据接收到的串口校验反馈包,判断校验是否正确,若错误,则重新写入结束语音发送的串口包;若正确,则显示“语音结束”等信息。
如果在语音发送过程中,模块未收到外置CPU的结束语音发送的串口包,且发射时间达到预设的发射限时值,则模块会停止发送,且会通过串口向外置 CPU 发送语音超时的反馈包。
2)语音接收流程
![img_ff76de5aeb908e66be71e7ed0d3a8bf6.jpe](https://i-blog.csdnimg.cn/blog_migrate/50d17ba1ec82f704171360cded0e6f73.jpeg)
外置CPU发送语音的流程如图3所示。
首先,当模块接收到语音信号后,通过串口向外置CPU发送语音接收开始串口包,外置 CPU 接收到该串口包后,打开音频功放,同时向模块写入查询呼叫类型及号码的串口包。模块接收到该串口包后,会对串口包进行校验,并给出相应的串口反馈包,如果校s验正确,则模块给出的串口反馈包附带呼叫方的号码及呼叫类型;若校验错误,则模块给出校验错误的反馈包。
其次,外置CPU接收到串口反馈包,判断反馈是否正确,若正确,则显示呼叫方号码;若错误,则再次写入查询呼叫类型及号码的串口包。
接着,若语音呼叫结束(包括正常结束或者异常结束),模块会给出语音接收结束的串口包。外置CPU接收到该串口包后,进行关闭音频功放,显示“通话结束”等操作。
3)收发语音的串口协议包格式
● 开始/停止语音呼叫协议包格式
开始/停止语音呼叫协议包格式如表12所示。
![img_bfa4c32304ab58ee301c7b4fcc5c7bdf.jpe](https://i-blog.csdnimg.cn/blog_migrate/a852bc13b3571b9055d8132f9132034c.jpeg)
●语音呼叫反馈包格式 1
语音呼叫反馈包格式 1 如表13所示。
![img_1081a9bc8ce0eb5d39c4cf5786fce401.jpe](https://i-blog.csdnimg.cn/blog_migrate/ccd4b56e17e6d5da847c427250a3a712.jpeg)
●语音呼叫反馈包格式2
语音呼叫反馈包格式 2如表14所示。
![img_fc11b74e4b0c854577baf59500386951.jpe](https://i-blog.csdnimg.cn/blog_migrate/3e73e8ca18e659c75381c9bc86ea2362.jpeg)
●语音呼叫/接收串口包格式(含联系人信息)
语音接收开始/结束串口包格式如表15所示。
![img_c31721553f5dca81326e359cace32e68.jpe](https://i-blog.csdnimg.cn/blog_migrate/44e6185f66d21b9a0ff64ac87741fda7.jpeg)
●查询呼叫类型及号码串口包格式
查询呼叫类型及号码串口包格式如表16所示。
![img_dc5bea2d9219a672e20f08222f5a8259.jpe](https://i-blog.csdnimg.cn/blog_migrate/df91dbe6bc83c0626733df291e737016.jpeg)
●查询呼叫类型及号码反馈包格式
查询呼叫类型及号码反馈包格式如表17所示
![img_79440b0de0db4e43b5298a4dee99dbf8.jpe](https://i-blog.csdnimg.cn/blog_migrate/d5394518353784d02112929f77c0003a.jpeg)
7、短信通信
短信通信主要分为非确认短信,确认短信,非确认短信主要是用户广播信息使用,确认短信主要是针对点对点的短信控制,具备反馈机制,适合准确传输,状态短信则是用于进行一些预定指令的通信,提高效率。
●非确认短信发送流程
![img_f03979593f103a0b14d409ba1c0132bc.jpe](https://i-blog.csdnimg.cn/blog_migrate/568effb6a91093c7e7015c9947263e5a.jpeg)
外置 CPU 处理非确认短信发送流程如图4所示。
首先,由外置 CPU 向模块写入串口包,设置短信联系人及短信模式和短信内容;模块会对写入的串口包进行校验,若校验不通过,则给出错误的反馈包,如果校验通过,则发送短信。
●非确认短信接收流程
![img_a4adfc65f400674c5a78eaa2063ccc03.jpe](https://i-blog.csdnimg.cn/blog_migrate/e06e51d5a8901e13186e5626c76fac69.jpeg)
外置 CPU 处理非确认短信发送流程如图5所示。
外置 CPU 接收到短信接收成功的串口包后向模块查询短信内容的串口包。模块对接收到的查询短信内容的串口包进行校验,若校验正确,则将接收到的短信内容及短信发送方地址发送给外置CPU;若校验不正确,则向外置CPU发送校验不正确的串口反馈包。
●确认短信发送流程
![img_e3cde646fb6b913723847f8e06b165e1.jpe](https://i-blog.csdnimg.cn/blog_migrate/27a4a84c7cdd676e85c697f6e9a12c66.jpeg)
外置CPU处理确认短信发送流程如图6所示。
首先,由外置CPU向模块写入串口包,设置短信联系人及短信模式;模块会对写入的串口包进行校验,若校验不通过,则给出错误的反馈包;如果校验通过,则发送短信。
再次,待短信发送结束,模块会给出IP校验反馈包,告知外置CPU,接收方是否收到短信。外置CPU根据接收到的IP校验反馈包,显示短信发送成功或者短信发送失败等信息
● 确认短信接收流程
外置 CPU 处理确认短信的接收流程,与处理非确认短信的接收流程一致。
8、收发短信的串口协议包格式
●设置联系人及短信模式协议包格式
设置联系人及短信模式的协议包格式如表18所示。
![img_c70bf268af028883c8e3ad8dd602bb87.jpe](https://i-blog.csdnimg.cn/blog_migrate/3a61ecc01349fc7efcde871330393f1b.jpeg)
●设置联系人及短信模式反馈包格式
设置联系人及短信模式的反馈包格式如错误!未找到引用源。所示。
![img_7369ffc0026e1ee289b5cc3e979ef11a.jpe](https://i-blog.csdnimg.cn/blog_migrate/a34076aeadc621de0f9643432426e248.jpeg)
●短信接收成功协议包格式
短信接收成功协议包格式如表20所示。
![img_4197fa97a3cc3824e2750525c94cb252.jpe](https://i-blog.csdnimg.cn/blog_migrate/521a2eea86063c5dfb4204e050535804.jpeg)
●查询短信内容协议包格式
查询短信内容协议包格式如错误!未找到引用源。所示。
![img_a2fe407be8c3d8c62fde8e4772e621e0.jpe](https://i-blog.csdnimg.cn/blog_migrate/a042b10fb17c13391711f4f829d5510a.jpeg)
●查询短信内容校验错误反馈包格式
查询短信内容校验错误反馈包格式如表22所示。
![img_34606d0f56076d654fa3881fc664f945.jpe](https://i-blog.csdnimg.cn/blog_migrate/a5d7dc8d6eca5c28fed647cb62f4cb1c.jpeg)
其中,若校验正确,则模块给出的反馈包第三字节为 0x01,同时输出短信发送方号码CallID及短信内容MsgData,此时数据段长度 LEN 应设置为短信发送方号码长度(3 字节)+短信内容长度(MsgData);
若校验出错,则模块给出的反馈包第三字节为 0xFF,同时数据段长度 LEN 设置为 0x00,0x00,表示无数据段内容。
●IP 校验反馈包格式
IP 校验反馈包格式如表23所示。
![img_983b54995ba384530b2c6d11a53c4684.jpe](https://i-blog.csdnimg.cn/blog_migrate/4aae0a425ac3821bcbcdcf5473eaae5d.jpeg)
未完待续......在下文中我们继续为您讲解数字对讲机DMR制式模块的紧急报警、增强功能、Mic 增益配置、省电模式设置、收发频率设置、中继脱网设置、静噪级别设置等功能。