嘿!您似乎在 United States,您想使用我们的 English 网站吗?
Switch to English site
Skip to main content

建立数字移动无线电中继器第1部分:MMDVM

Main4_4779dbd6d6ea833d62af2c5247c037e0293b4bf7.jpg

在STM32F4型 NUCLEO板上安装MMDVM并装配接口屏蔽。

在本系列的文章中,我们将研究建立一个数字移动无线电(DMR)中继器,用于70cm波段(UHF)的业余无线电使用。添加两个移动模拟(FM)收发器来构建上行通路和下行通路,配以基于数字调制解调器系统的MMDVM,中继器控制和IP网络互连。

当地业余无线电团队将中继器投入使用,该团队经常为社区开展的如越野路跑,这种活动提供通信支持。常常有无线电爱好者到该地区,连接到IP连接的数字无线电网络。

DMR是什么?

DMR_6d77d0dcb84b03417dcdb02ad400caa5f361a239.jpg

DMR Association的标志

DMR是由ETSI发布的开放数字移动无线电标准,并在下列三层中指定使用:

  • 第一层.在欧洲波段446MHz无须使用许可。没有基础设备与中继器。
  • 第二层.在PMR波段66 - 960 MHz需使用许可。支持更高的频率,先进的语音特性和IP数据服务。
  • 第三层.在波段66 - 960 MHz中继操作,支持语音和短信,与 TETRA相似。

数字标准也适用于2M,70cm的业余无线电波段,在英国分别使用144 - 146MHz和430 - 440MHz。

DMR通过两个时间槽的TDMA,在标准12.5 kHz间距通道中支持双声道。4态FSK调制的速度为每秒4800个符号,对应9600位/秒。所以这是一个相当有效且不复杂的系统。

许多不同的供应商都提供DMR无线电设备。然而,,我们将在我们的中继器上添加两个模拟PMR和多模式数字语音调制解调器(MMDVM)。

多标准和硬件平台支持

MMDVM_f42f99f3c6877ae6a3ea54eae219e058e3e57f93.jpg

MMDVM是一项在GPL v2下许可的开放资源软件项目,但它只用于业余和教育用途,严格禁止商业使用。这似乎与GPL的许可证不一致,但可能与数字编解码专利有关。

MMDVM固件支持以下数字模式:

  • D-Star
  • DMR Tier II
  • System Fusion
  • P25

支持的平台包括:

  • Arduino Due
  • STM32F407-DISCO
  • STM32F446-NUCLEO
  • Teensy 3.1/3.2/3.5/3.6

通过Arduino IDE,Coocox IDE,ARM GCC和Teensyduino支持。

还可以为其他STM32板构建MMDVM,如果ARM有合适的性能,外加至少有一个ADC和DAC,我们能将该软件移至其他实时平台上,。

除了中继器的使用,MMDVM还可以用来创建一个“热点”,连接到IP链路上的数字网络,并方便在移动中使用手持无线电。向它的创造者Jonathan Naylor(G4KLX)致敬,因为它创造了这么酷的软件。

调制解调器平台

NUCLEO1_7c829a138f48b716ebe99bb7476d630b47b57201.jpg

 

我们选择围绕STM32F446 NUCLEO开发板(906-4624)构建我们的系统,因为这提供了很好的价格/性能,而且多亏了法国无线电爱好者,F5UII有一个附加屏蔽,它为两个收音机和一个LCD触摸屏提供接口。

NUCLEOShield1_cbe1d2d950a87cd264a37e492c9233f40643986f.jpg

该屏蔽提供了位于无线电RX和微控制器ADC之间的op amps,以及无线电TX和微控制器DAC。还有一个用于稳定频率的TCXO,一些基本的缓冲和级别转换,以及用于模式和PTT的指示器。

ShieldKit_dbba3d991b95d58059021e63505a0b77e2d177ac.jpg

屏蔽是作为一套通孔零件供应的,并花很少的时间组装。

工具链的设置

F5UII提供的指令通过所需的几个步骤,在Windows上安装工具链。然而,由于我们使用的是Ubuntu,它更加直接。

首先,安装嵌入式ARM工具链:

$ sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa

$ sudo apt-get update

$ sudo apt-get install gcc-arm-embedded

然后克隆来源,建立stlink来编辑 NUCLEO板:

$ git clone https://github.com/texane/stlink

$ cd stlink

$ make

可执行文件被复制成为 /usr/local/bin:

$ sudo cp build/Release/st-* /usr/local/bin

udev rules 被复制到执行文件, udev 重启:

$ sudo cp etc/udev/rules.d/49-stlinkv* /etc/udev/rules.d/

$ sudo udevadm control --reload-rules

$ sudo udevadm trigger

最后,如果插入 NUCLEO板 ,st-info 运行如下:

$ st-info --probe

我们应确认1 个stlink程序员已经找到

构建和安装MMDVM

BDR_MMDVMCompile_d9a070e72633be65e0c1bb5c951902f79617168d.jpg

现在建立MMDVM ,第一步克隆来源:

$ git clone https://github.com/g4klx/MMDVM.git

$ cd MMDVM

接下来我们需要 STM32F4 DSP 与标准的外围库, 该库可以从ST下载,也可以从F5UII下载所需文件:

$ wget https://www.f5uii.net/wp-content/uploads/2016/12/STM32F4XX_Lib.zip

$ unzip STM32F4XX_Lib.zip

配置.需要编辑存储库根中的h文件.我们设置了配置行:

#define EXTERNAL_OSC 12000000

#define STM32F4_NUCLEO_MORPHO_HEADER

#define SEND_RSSI_DATA

#define SERIAL_REPEATER

下面我们运行程序:

$ make clean

$ make nucleo

BDR_Flash_7f9ae743787f7cf32900c9e019c66b62b385506a.jpg

这产生了一个hex文件,我们可以在板上编辑使用:

$ st-flash --format ihex write bin/outp.hex

下一个步骤

在下一篇文章中,我们将得到相应的主机软件MMDVMHost,它在树莓Pi上运行并被连接到 NUCLEO板上。这是大多数配置将要发生的地方,并且软件将促进连接DMR网络。在另一边,我们将把屏蔽连接到两个超高频收发器,然后进行一些初始测试。

Andrew Back

Open source (hardware and software!) advocate, Treasurer and Director of the Free and Open Source Silicon Foundation, organiser of Wuthering Bytes technology festival and founder of the Open Source Hardware User Group.