USRP 用作 OpenBTS 时的时钟改制

USRP 的缺省时钟是 64 Mhz。 GSM 的时钟是源于 13 MHz,所以 13 的倍频便“有利于”宿主。将 USRP 的时钟改制为 52 Mhz 将使得采样和处理的效率更高

用于 OpenBTS 的 52MHz 的时钟源

眼前有如下三种选择被广泛的用于 OpenBTS:
这样,便具备了,一个可能的、稳定的 52Mhz 的外部时钟。用它便可以来运行 OpenBTS。在此,便是相关的硬件和软件的配置指导。

使用外部时钟时 USRP 硬件相应的更改。

  1. 把 SMA 连接器焊置于 J2001. 这便是输入频率焊接 SMA 连接器时应格外小心不要损伤 J2001 到 C927 的连接
  2. 把 R2029 移到 R2030. 这将废除板上时钟。R2029/R2030 是个 0-ohm电阻。
  3. 把 C925 移到 C926。
  4. 去掉 C924.

运行 OpenBTS 时软件的相应更改:

基于 gnuradio ver. 3.1.3:
  1. 在 usrp/host/lib/legacy/usrp_basic.h 文档中,第 122 行应当读取
    • long fpga_master_clock_freq () const { return 52000000; }
  2. 在 usrp/host/lib/legacy/usrp_standard.cc 中,第 703 行应当被去功能化
    • //assert (dac_freq () == 128000000);
  3. 运行 "make install"
  4. 重构 openbts
  5. 修改 OpenBTS.config (或者任何你所用的配置文件) 以便让 TRX.Path 指向 "../Transceiver52M/transceiver".
基于 gnuradio ver. 3.2 or higher:
  1. 在 usrp/host/lib/legacy/usrp_basic.cc 中,第 116 行应当读取 d_verbose (false),
    • d_fpga_master_clock_freq(52000000), d_db(2)
  2. 在 usrp/host/lib/legacy/usrp_standard.cc 中,第 1024 行应当被去概念化
    • // assert (dac_rate() == 128000000);
  3. 在 usrp/host/lib/legacy/db_flexrf.cc 中,第 179 行应当读取
    • return 52e6/_refclk_divisor();
  4. 运行 "make install"
  5. 重构 openbts
  6. 修改 OpenBTS.config (或者任何你所用的配置文件) 以便让 TRX.Path 指向 "../Transceiver52M/transceiver".

问题昭知 - Known Problems

发行版 release 2.5 "Lacassine",修改后的 52MHz 同 Mac OS X 不兼容。所以 OS X 的用户,只能使用 64 MHz。







注:Open BTS Clock Modifications(原文出处,翻译整理仅供参考!)