Difference between revisions of "USRP: High Precision Clock"

From OnnoWiki
Jump to navigation Jump to search
 
(24 intermediate revisions by the same user not shown)
Line 12: Line 12:
  
  
==1: Yang Harusnya Terjadi==
+
==Yang Seharusnya Terjadi==
  
 
Kesalahan 0.05 ppm adalah 45 Hz di low band (850/900) dan 90 Hz di high band (1800/1900). Ini termasuk SANGAT akurat, akurasi seperti ini akan kita peroleh dari GPS-disciplined VCTCXO (temperature-compensated voltage-controlled crystal oscillator) atau OCXO (oven-controlled crystal oscillator, yang harganya $100-$200). Doppler shift yang akan di peroleh dari sebuah mobil yang berjalan pada kecepatan 150 km/jam atau kereta api adalah sekitar 0.15 ppm, jadi sebetulnya kebutuhan akan akurasi yang sedemikian tinggi masih di pertanyakan, tapi itu yang ada di spec. Dengan adanya effek Doppler, perbedaan frekuensi antara dua base station adalah beberapa ratus Hz, untuk kondisi yang paling parah.
 
Kesalahan 0.05 ppm adalah 45 Hz di low band (850/900) dan 90 Hz di high band (1800/1900). Ini termasuk SANGAT akurat, akurasi seperti ini akan kita peroleh dari GPS-disciplined VCTCXO (temperature-compensated voltage-controlled crystal oscillator) atau OCXO (oven-controlled crystal oscillator, yang harganya $100-$200). Doppler shift yang akan di peroleh dari sebuah mobil yang berjalan pada kecepatan 150 km/jam atau kereta api adalah sekitar 0.15 ppm, jadi sebetulnya kebutuhan akan akurasi yang sedemikian tinggi masih di pertanyakan, tapi itu yang ada di spec. Dengan adanya effek Doppler, perbedaan frekuensi antara dua base station adalah beberapa ratus Hz, untuk kondisi yang paling parah.
Line 23: Line 23:
  
  
==h1. Second: What Goes Wrong When You Use an Inaccurate Clock==
+
==Yang Akan Terjadi Jika Kita menggunakan Clock yang Tidak Akurat==
 
 
  
 
Jika kita menggunakan BTS yang menggunakan oscillator kristal (XO) sederhana untuk clock yang akan memberikan error beberapa kHz di RF carrier. Hal ini yang akan terjadi pada [[OpenBTS]] dengan "stock" USRP (USRP standard). Hal yang sama terjadi pada Siemens BS-11 (digunakan oleh "OpenBSC":http://bs11-abis.gnumonks.org/trac/wiki/OpenBSC) jika dia mengunci clock pada card interface ISDN-grade E1. BTS jenis ini akan gagal dengan 3 kemungkinan, tergantung seberapa jelek clock atau bagaimana sistem digunakan:
 
Jika kita menggunakan BTS yang menggunakan oscillator kristal (XO) sederhana untuk clock yang akan memberikan error beberapa kHz di RF carrier. Hal ini yang akan terjadi pada [[OpenBTS]] dengan "stock" USRP (USRP standard). Hal yang sama terjadi pada Siemens BS-11 (digunakan oleh "OpenBSC":http://bs11-abis.gnumonks.org/trac/wiki/OpenBSC) jika dia mengunci clock pada card interface ISDN-grade E1. BTS jenis ini akan gagal dengan 3 kemungkinan, tergantung seberapa jelek clock atau bagaimana sistem digunakan:
  
  
===h2. Effect of Large Frequency Errors (Several kHz or More)===
+
===Efek dari Error Frekuensi Yang Besar (Beberapa kHz atau lebih)===
  
 
Tipe kegagalan yang pertama terjadi jika error dari XO BTS amat sangat besar sehingga beacon BTS berada jauh diluar kemampuan handset untuk melakukan search frekuensi yang lebar. Konsekuensi-nya handset tidak akan pernah menemukan sinyal BTS.
 
Tipe kegagalan yang pertama terjadi jika error dari XO BTS amat sangat besar sehingga beacon BTS berada jauh diluar kemampuan handset untuk melakukan search frekuensi yang lebar. Konsekuensi-nya handset tidak akan pernah menemukan sinyal BTS.
Line 36: Line 35:
  
  
===h2. Effect of Modest Frequency Errors (500 Hz to a Few kHz)===
+
===Efek dari Error Frekuensi yang Sedang (500 Hz sampai beberapa kHz)===
  
Tipe kegagalan yang ke dua terjadi jika RF carrier BTS masih dalam cakupan pencarian yang besar tapi berbeda dari jaringan lokal yang "sebenarnya" hanya bebeImage:101 5724.JPGrapa ratus Hz. Dalam situasi ini, handset akan melihat BTS tersebut atau dia akan melihat jaringan yang "sebenarnya", akan tetapi tidak mungkin ke dua-nya sekaligus. Sistem manapun yang akan dilihat pertama kali oleh handset akan mengontrol clock-nya dan akan menyebabkan handset menjadi "buta" pada sistem yang satu lagi.
+
Tipe kegagalan yang ke dua terjadi jika RF carrier BTS masih dalam cakupan pencarian yang besar tapi berbeda dari jaringan lokal yang "sebenarnya" hanya beberapa ratus Hz. Dalam situasi ini, handset akan melihat BTS tersebut atau dia akan melihat jaringan yang "sebenarnya", akan tetapi tidak mungkin ke dua-nya sekaligus. Sistem manapun yang akan dilihat pertama kali oleh handset akan mengontrol clock-nya dan akan menyebabkan handset menjadi "buta" pada sistem yang satu lagi.
  
 
Kegagalan jenis ini di diskusikan secara detail di [[OpenBSC]] e-mail list pada musim semi 2009. Memang belum banyak di diskusikan di mailing list [[OpenBTS]], oleh karenanya sebaiknya berasumsi bawa hal ini akan terjadi jika kita ingin mencoba menjalankan BTS pada band yang sama dengan operator lokal atau jika kita ingin mencoba untuk bekerja dengan handphone multiband. Tampaknya, teman-teman di "OpenBSC" http://bs11-abis.gnumonks.org/trac/wiki/OpenBSC telah berhasil memperbaiki masalah ini dengan cara menambahkan VCOCXO di BS-11 yang jauh lebih baik daripada XO di card E1. Di [[OpenBTS]] kita dapat menghindari masalah ini dengan cara beroperasi pada band non-lokal dan mematikan band lainnya di handset sehingga handset tidak mungkin melihat jaringan yang lain. [[OpenBTS]] memungkinkan untuk melakukan hal ini tidak seperti [[OpenBSC]] karena radio yang kita gunakan sebagian besar adalah [[software]] dan sangat flexible.
 
Kegagalan jenis ini di diskusikan secara detail di [[OpenBSC]] e-mail list pada musim semi 2009. Memang belum banyak di diskusikan di mailing list [[OpenBTS]], oleh karenanya sebaiknya berasumsi bawa hal ini akan terjadi jika kita ingin mencoba menjalankan BTS pada band yang sama dengan operator lokal atau jika kita ingin mencoba untuk bekerja dengan handphone multiband. Tampaknya, teman-teman di "OpenBSC" http://bs11-abis.gnumonks.org/trac/wiki/OpenBSC telah berhasil memperbaiki masalah ini dengan cara menambahkan VCOCXO di BS-11 yang jauh lebih baik daripada XO di card E1. Di [[OpenBTS]] kita dapat menghindari masalah ini dengan cara beroperasi pada band non-lokal dan mematikan band lainnya di handset sehingga handset tidak mungkin melihat jaringan yang lain. [[OpenBTS]] memungkinkan untuk melakukan hal ini tidak seperti [[OpenBSC]] karena radio yang kita gunakan sebagian besar adalah [[software]] dan sangat flexible.
Line 44: Line 43:
 
Kesalaran karena XO dari BTS dan handset akan bergantung / berbeda terhadap umur dan temperatur, oleh karenanya perilaku kegagalan akan berbeda-beda untuk setiap handset pada satu waktu dan berbeda dari jam ke jam karena handset akan memanas atau mendingin. Hal ini akan menyebabkan semua ini sangat misterius dan membuat proses diagnostik menjadi sangat sulit.
 
Kesalaran karena XO dari BTS dan handset akan bergantung / berbeda terhadap umur dan temperatur, oleh karenanya perilaku kegagalan akan berbeda-beda untuk setiap handset pada satu waktu dan berbeda dari jam ke jam karena handset akan memanas atau mendingin. Hal ini akan menyebabkan semua ini sangat misterius dan membuat proses diagnostik menjadi sangat sulit.
  
 
+
===Jika anda ingin mencoba beroperasi di sistem Multi-BTS===
 
 
===h2. Jika anda ingin mencoba beroperasi di sistem Multi-BTS===
 
  
 
Umumnya, handset akan menerima daftar BTS tetangga dari BTS yang melayaninya dan secara terus menerus akan memonitor kekuatan sinyal dari beacon dari BTS tetangga. Fitur kunci yang digunakan untuk monitoring ini adalah Extended Training Sequence (XTS) dari burst sinkronisasi. Durasi XTS adalah 64 simbol (sekitar 0.25 mx). Jika kita cari XTS ini menggunakan matched filter, kinerja matched filter akan sangat degradasi jika offset frekuensi lebih besar dari 1/(4*0.25 ms), atau sekitar 1 kHz, karena pada frekuensi tinggi fasa relatif dari XTS dan matched filter akan drift lebih dari 90 derajat untuk perioda korelasi. Sehingga monitoring tetangga (dan juga kemampuan untuk mobile itu sendiri) akan mulai gagal jika per-BTS carrier offset lebih dari 500Hz.
 
Umumnya, handset akan menerima daftar BTS tetangga dari BTS yang melayaninya dan secara terus menerus akan memonitor kekuatan sinyal dari beacon dari BTS tetangga. Fitur kunci yang digunakan untuk monitoring ini adalah Extended Training Sequence (XTS) dari burst sinkronisasi. Durasi XTS adalah 64 simbol (sekitar 0.25 mx). Jika kita cari XTS ini menggunakan matched filter, kinerja matched filter akan sangat degradasi jika offset frekuensi lebih besar dari 1/(4*0.25 ms), atau sekitar 1 kHz, karena pada frekuensi tinggi fasa relatif dari XTS dan matched filter akan drift lebih dari 90 derajat untuk perioda korelasi. Sehingga monitoring tetangga (dan juga kemampuan untuk mobile itu sendiri) akan mulai gagal jika per-BTS carrier offset lebih dari 500Hz.
Line 52: Line 49:
 
Error 500 Hz adalah 0.5 ppm di low band, dan 0.25 ppm di high band. Walaupun 0.5 / 0.25 ppm lebih rendah di bandingkan dengan 0.05 ppm yang di berikan di spec GSM, kebutuhkan tersebut tetap termasuk tinggi untuk XO biasa. Keakuratan seperti ini hanya dapat diberikan oleh OCXO atau sebuah VCTCXO dengan kualitas baik dengan kalibrasi secara periodik.
 
Error 500 Hz adalah 0.5 ppm di low band, dan 0.25 ppm di high band. Walaupun 0.5 / 0.25 ppm lebih rendah di bandingkan dengan 0.05 ppm yang di berikan di spec GSM, kebutuhkan tersebut tetap termasuk tinggi untuk XO biasa. Keakuratan seperti ini hanya dapat diberikan oleh OCXO atau sebuah VCTCXO dengan kualitas baik dengan kalibrasi secara periodik.
  
===h2. Solusi untuk Semua Masalah: Gunakan Clock yang baik===
+
===Solusi untuk Semua Masalah: Gunakan Clock yang baik===
  
 
Untuk jangka panjang, [[OpenBTS]] akan memperbaiki masalah clock ini dengan mengganti XO yang ada di USRP dengan sesuatu yang lebih akurat, bisa OCXO atau VCTCXO yang berkualitas baik dengan prosedur kalibrasi automatis.
 
Untuk jangka panjang, [[OpenBTS]] akan memperbaiki masalah clock ini dengan mengganti XO yang ada di USRP dengan sesuatu yang lebih akurat, bisa OCXO atau VCTCXO yang berkualitas baik dengan prosedur kalibrasi automatis.
Line 58: Line 55:
 
Beberapa pengguna [[OpenBTS]] menggunakan & merekomendasikan "FA-SY 1" dari "Funkamateur":http://www.funkamateur.de/, tersedia seharga 40€, untuk ujicoba desktop.
 
Beberapa pengguna [[OpenBTS]] menggunakan & merekomendasikan "FA-SY 1" dari "Funkamateur":http://www.funkamateur.de/, tersedia seharga 40€, untuk ujicoba desktop.
  
==h1. Third: Ketika Kita Melanggar Hubungan Clocking==
+
==Ketika Kita Melanggar Hubungan Clocking==
  
Kembali spesifikasi GSM 05.10 Section 5.1 yang menyebutkan bahwa RF carrier dan symbol clock di BTS harus di turunkan dari sumber yang sama.
+
Kembali spesifikasi [[GSM]] 05.10 Section 5.1 yang menyebutkan bahwa [[RF carrier]] dan symbol clock di BTS harus di turunkan dari sumber yang sama.
  
Di handset, symbol clock di kontrol oleh RF carrier BTS, seperti carrier untuk clock. Oleh karenanya, jika RF carrier BTS kita mempunyai error N ppm, maka handset symbol clock juga akan mempunyai error N ppm. Hal ini tidak masalah jika BTS symbol clock mempunyai ke salahan yang persis sama, yang tentunya terjadi jika kita menurunkan semuanya dari sumber clock yang sama seperti di sebutkan oleh spesifikasi GSM.
+
Di handset, symbol clock di kontrol oleh RF carrier BTS, seperti carrier untuk clock. Oleh karenanya, jika RF carrier [[BTS]] kita mempunyai error N ppm, maka handset symbol clock juga akan mempunyai error N ppm. Hal ini tidak masalah jika [[BTS]] symbol clock mempunyai ke salahan yang persis sama, yang tentunya terjadi jika kita menurunkan semuanya dari sumber clock yang sama seperti di sebutkan oleh spesifikasi GSM.
  
 
Tapi jika kita ingin mengakali. Kita tahu bahwa saat peralatan mulai menyala, BTS XO akan secara konsisten mempunyai error +11 ppm, hal ini akan menyebabkan RF carrier error +10 KHz. Sehingga kita sengaja me de-tune RF carrier dengan -10 KHz. hal ini tampaknya memperbaiki masalah yang disebutkan di bagian sebelumnya, akan tetapi menimbulkan masalah baru di symbol rate clock. Standard GSM symbol clock adalah 270.833333 kHz. Jika BTS XO anda off +11 ppm, maka BTS symbol clock sebetulnya adalah 270.836312 kHz. Handset akan lock ke RF carroer BTS, yang sekarang bekerja pada frekuensi yang benar, sehingga menyebabkan handset membangkitkan simbol clock internal 270.833333 kHz. Akibatnya sekarang BTS dan handset symbol clock tidak cocok satu sama lain dengan rate 11 ppm, atau sekitar symbol per detik.
 
Tapi jika kita ingin mengakali. Kita tahu bahwa saat peralatan mulai menyala, BTS XO akan secara konsisten mempunyai error +11 ppm, hal ini akan menyebabkan RF carrier error +10 KHz. Sehingga kita sengaja me de-tune RF carrier dengan -10 KHz. hal ini tampaknya memperbaiki masalah yang disebutkan di bagian sebelumnya, akan tetapi menimbulkan masalah baru di symbol rate clock. Standard GSM symbol clock adalah 270.833333 kHz. Jika BTS XO anda off +11 ppm, maka BTS symbol clock sebetulnya adalah 270.836312 kHz. Handset akan lock ke RF carroer BTS, yang sekarang bekerja pada frekuensi yang benar, sehingga menyebabkan handset membangkitkan simbol clock internal 270.833333 kHz. Akibatnya sekarang BTS dan handset symbol clock tidak cocok satu sama lain dengan rate 11 ppm, atau sekitar symbol per detik.
Line 68: Line 65:
 
Variasi dari masalah ini adalah ketika kita mengacuhkan spesifikasi dangn menggunakan clock yang berbeda untuk RF carrier dan symbol clock. Sebagai contoh, misalkan kita mempunyai dua OCXO 0.5 ppm. Sehingga perbedaan relatif-nya adalah sekitar 0.5 ppm, hal ini akan menyebabkan drift satu symbol setiap 7 detik.
 
Variasi dari masalah ini adalah ketika kita mengacuhkan spesifikasi dangn menggunakan clock yang berbeda untuk RF carrier dan symbol clock. Sebagai contoh, misalkan kita mempunyai dua OCXO 0.5 ppm. Sehingga perbedaan relatif-nya adalah sekitar 0.5 ppm, hal ini akan menyebabkan drift satu symbol setiap 7 detik.
  
Handset yang berbeda akan merespond berbeda untuk slipping symbol clock. Pengalaman dengan Nokia DCT3 akan berusaha mengatasinya dengan cara re-sinkronisasi setiap frame, sehingga jika kita menggunakan DCT3 untuk percobaan, kita tidak melihat hal ini sebagai hal yang serius. Sementara, Nokia DCT4 akan lock ke beacon sebentar, akan tetapi akan putus jika clock slip.
+
Handset yang berbeda akan merespond berbeda untuk slipping symbol clock. Pengalaman dengan Nokia DCT3 akan berusaha mengatasinya dengan cara re-sinkronisasi setiap frame, sehingga jika kita menggunakan DCT3 untuk percobaan, kita tidak melihat hal ini sebagai hal yang serius. Sementara, Nokia DCT4 akan lock ke beacon sebentar, akan tetapi akan putus jika clock slip. Beberapa desain handset, slip symbol akan berinteraksi dengan closed-loop timing advance, akibatnya control loop menjadi tidak stabil. Oleh karenanya, error ini tampaknya seperti misterious karena handset yang berbeda akan bereaksi berbeda dan effek-nya akan berbeda untuk beda temperatur karena XO di BTS akan drift.
  
In some handset designs, the symbol slipping interacts with the closed-loop timing advance, making that control loop unstable. Again, the error seems mysterious because different handset models respond in different ways and the effect will very with temperature as the XO in the BTS drifts around.
+
==Reclocking USRP-1 untuk [[OpenBTS]]==
  
==h1. Reclocking the USRP-1 for [[OpenBTS]]==
+
Default clock USRP adalah 64Mhz. GSM clock diturunkan dari 13 Mhz oleh karena itu kelipatan dari 13 adalah "clock yang baik" untuk host.  Reclocking USRP ke 52 Mhz akan menyebabkan host lebih effisien dalam penggunaan CPU.
  
The default clock of the USRP is 64Mhz. GSM clocks are derived from a 13 Mhz so multiples of 13 are "good clocks" for the host.  Reclocking the USRP to 52 Mhz will make your host more CPU efficient.
+
==Sumber Clock 52 MHz untuk OpenBTS==
  
 +
Saat ini ada dua pilihan yang banyak digunakan oleh [[OpenBTS]]:
  
==h2. 52 MHz clock sources for OpenBTS==
+
* http://www.box73.de/catalog/product_info.php?products_id=1869. Funkamatuer FA-SYS1.
 +
* http://code.google.com/p/clock-tamer/. Fairwaves СlockTamer, sebuah clock referensi yang dapat dikonfigurasi 2-65MHz, stabilitas frekuensi 0.28ppm. Dia dapat di kalibrasi dengan GSM network yang ada hingga 50ppb. Juga ada pilihan sync clock ke GPS.
  
There are presently three choices widely used with OpenBTS:
+
Sekarang kita mempunyai sinyal clock external, kemungkinan besar clock 52MHz yang stabil, dan kita ingin menjalankan [[OpenBTS]] dengan-nya. Berikut adalah instruksi setup hardware dan software.
  
* http://kestrelsignalprocessing.mybigcommerce.com/products/52MHz-clock-generator.html. The KSP 52 MHz TCXO module.
+
===Modifikasi Hardware USRP untuk Menggunakan Clock External===
* http://www.box73.de/catalog/product_info.php?products_id=1869. The Funkamatuer FA-SYS1.
 
* http://code.google.com/p/clock-tamer/. The Fairwaves СlockTamer, a configurable 2-65MHz reference clock generator, 0.28ppm frequency stability. Can be calibrated against existing GSM network to 50ppb. Has option to sync clock to GPS.
 
  
So now you've got an external clock signal, probably a stable 52Mhz clock, and you want to run [[OpenBTS]] with it. Here are the hardware and software setup instructions.
+
# Solder sebuah SMA connector ke J2001.  Ini merupakan input clock. Hati-hati dalam menyolder konektor SMA agar tidak merusak sambungan yang sangat tipis antara J2001 ke C927.
 +
# Pindah R2029 ke R2030. Ini akan men-disable onboard clock. R2029/R2030 adalah sebuah resistor 0-ohm.
 +
# Pindah C925 ke C926.
 +
# Buang C924.
  
===h2. Hardware modifications to the USRP to use a external clock.===
+
Tips: Sebaiknya membayar tukang reparasi handphone untuk melakukan hal ini. Biayanya sekitar Rp. 50.000,-
  
# Solder an SMA connector into J2001.  This is the clock input. Be careful when soldering the SMA connector so you don't break the delicate trace from J2001 to C927.
+
===Modifikasi Software GNURadio===
# Move R2029 to R2030. This disables the onboard clock. R2029/R2030 is a 0-ohm resistor.
 
# Move C925 to C926.
 
# Remove C924.
 
  
 +
Untuk gnuradio ver. 3.1.3:
  
 +
# In usrp/host/lib/legacy/usrp_basic.h, line 122 should read <pre> long  fpga_master_clock_freq () const { return 52000000; } </pre>
 +
# In usrp/host/lib/legacy/usrp_standard.cc, line 703 should be commented out <pre> //assert (dac_freq () == 128000000); </pre>
 +
# run "make install"
 +
# rebuild openbts
 +
# modify OpenBTS.config (or whatever config file you are using) so that TRX.Path points to "../Transceiver52M/transceiver".
  
===h2. Software modifications to gnuradio:===
+
Untuk gnuradio ver. 3.2.x:
  
For gnuradio ver. 3.1.3:
+
# In usrp/host/lib/legacy/usrp_standard.cc, line 1024 should be commented out <pre> // assert (dac_rate() == 128000000); </pre>
 +
# In usrp/host/lib/legacy/db_flexrf.cc, line 179 should read <pre> return 52e6/_refclk_divisor();  </pre>
 +
# run "make install"
 +
# rebuild openbts
 +
# modify OpenBTS.config (or whatever config file you are using) so that TRX.Path points to "../Transceiver52M/transceiver".
  
# In usrp/host/lib/legacy/usrp_basic.h, line 122 should read <pre> long  fpga_master_clock_freq () const { return 52000000; } </pre>
+
Untuk gnuradio ver. 3.3 dan yang lebih tinggi:
# In usrp/host/lib/legacy/usrp_standard.cc, line 703 should be commented out <pre> //assert (dac_freq () == 128000000); </pre>
 
# run "make install"
 
# rebuild openbts
 
# modify OpenBTS.config (or whatever config file you are using) so that TRX.Path points to "../Transceiver52M/transceiver".
 
  
For gnuradio ver. 3.2.x:
+
* Tidak perlu ada perubahan ke gnuradio jika kita menggunakan aplikasi default (like usrp_fft.py). Jika anda memerlukannya, kita dapat mengubah menggunakan patch berikut:
  
  # In usrp/host/lib/legacy/usrp_standard.cc, line 1024 should be commented out <pre> // assert (dac_rate() == 128000000); </pre>
+
  <pre>
# In usrp/host/lib/legacy/db_flexrf.cc, line 179 should read <pre> return 52e6/_refclk_divisor();  </pre>
+
  diff --git a/usrp/host/lib/usrp_basic.cc b/usrp/host/lib/usrp_basic.cc
# run "make install"
+
  index 5b2f7ff..8f50ff2 100644
# rebuild openbts
+
  --- a/usrp/host/lib/usrp_basic.cc
# modify OpenBTS.config (or whatever config file you are using) so that TRX.Path points to "../Transceiver52M/transceiver".
+
  +++ b/usrp/host/lib/usrp_basic.cc
 
+
  @@ -107,7 +107,7 @@ usrp_basic::usrp_basic (int which_board,
For gnuradio ver. 3.3 and higher:
+
    : d_udh (0), d_ctx (0),
 +
      d_usb_data_rate (16000000),        // SWAG, see below
 +
      d_bytes_per_poll ((int) (POLLING_INTERVAL * d_usb_data_rate)),
 +
  -    d_verbose (false), d_fpga_master_clock_freq(64000000), d_db(2)
 +
  +    d_verbose (false), d_fpga_master_clock_freq(52000000), d_db(2)
 +
  {
 +
    /*
 +
      * SWAG: Scientific Wild Ass Guess.
 +
</pre>
  
* No changes to gnuradio are necessary if do not need default gnuradio applications and examples (like usrp_fft.py). If you need them, then you should apply the following patch:
+
* modify OpenBTS.config (atau file konfigurasi yang anda gunakan) agar TRX.Path menuju ke "../Transceiver52M/transceiver".
<pre>
 
diff --git a/usrp/host/lib/usrp_basic.cc b/usrp/host/lib/usrp_basic.cc
 
index 5b2f7ff..8f50ff2 100644
 
--- a/usrp/host/lib/usrp_basic.cc
 
+++ b/usrp/host/lib/usrp_basic.cc
 
@@ -107,7 +107,7 @@ usrp_basic::usrp_basic (int which_board,
 
    : d_udh (0), d_ctx (0),
 
      d_usb_data_rate (16000000),        // SWAG, see below
 
      d_bytes_per_poll ((int) (POLLING_INTERVAL * d_usb_data_rate)),
 
-    d_verbose (false), d_fpga_master_clock_freq(64000000), d_db(2)
 
+    d_verbose (false), d_fpga_master_clock_freq(52000000), d_db(2)
 
  {
 
    /*
 
    * SWAG: Scientific Wild Ass Guess.
 
</pre>
 
* modify OpenBTS.config (or whatever config file you are using) so that TRX.Path points to "../Transceiver52M/transceiver".
 
  
 
===h2. Known Problems===
 
===h2. Known Problems===
  
 
As of release 2.5 "Lacassine", the 52 MHz modifications do not work with Mac OS X systems.  If you use OS X, you will need to continue to use a 64 MHz clock.
 
As of release 2.5 "Lacassine", the 52 MHz modifications do not work with Mac OS X systems.  If you use OS X, you will need to continue to use a 64 MHz clock.
 
 
 
 
 
 
  
 
==Referensi==
 
==Referensi==
Line 153: Line 142:
  
 
* [[OpenBTS]]
 
* [[OpenBTS]]
 +
* [[OpenBTS: Arsitektur secara umum]]
  
 
===Persiapan===
 
===Persiapan===
Line 160: Line 150:
 
* [[USRP: Kalibrasi ClockTamer]]
 
* [[USRP: Kalibrasi ClockTamer]]
 
* [[USRP: ClockTamer Control Protocol]]
 
* [[USRP: ClockTamer Control Protocol]]
 +
* [[USRP: ClockTamer Flashing]]
 
* [[USRP: Instalasi Board]]
 
* [[USRP: Instalasi Board]]
 
* [[OpenBTS: GIT Source Code]]
 
* [[OpenBTS: GIT Source Code]]
 +
* [[USRP: Rangkaian Board USRP]]
 +
* [[OpenBTS: Tethr untuk Bencana Alam]]
 +
* [[USRP: Tip Pemesanan]]
 +
 +
===Script===
 +
 +
* [[OpenBTS: Script Membuat GNURadio 3.4.2 di Ubuntu 13.04]]
 +
* [[OpenBTS: Script Membuat OpenBTS dan yate di Ubuntu 13.04]]
 +
* [[OpenBTS: Script Membuat OpenBTS 2.8.0 di RangeNetwork Dev Kit]]
 +
* [[OpenBTS: Script Membuat OpenBTS di RangeNetwork Dev Kit]]
  
 
===OpenBTS 2.6===
 
===OpenBTS 2.6===
Line 167: Line 168:
 
* [[GNURadio]]
 
* [[GNURadio]]
 
* [[GNURadio: Ubuntu Install]]
 
* [[GNURadio: Ubuntu Install]]
* [[GNURadio: Ubuntu Install GNURadio 3.4.2]] '''*RECOMMENDED*'''
+
* [[GNURadio: Menggunakan UHD]]
 +
* [[GNURadio: Ubuntu Install GNURadio 3.4.2]] '''RECOMMENDED'''
 +
* [[GNURadio: Ubuntu Install GNURadio 3.4.2 Clock 52MHz]] '''RECOMMENDED'''
 +
* [[GNURadio: Ubuntu 13.04 Install GNURadio 3.4.2 Clock 52MHz]] ''NOT RECOMMENDED''
 
* [[GNURadio: Contoh Aplikasi]]
 
* [[GNURadio: Contoh Aplikasi]]
 
* [[GNURadio: Spectrum Analizer GSM]]
 
* [[GNURadio: Spectrum Analizer GSM]]
 
* [[GNURadio: Mengubah board RFX1800 menjadi RFX900]]
 
* [[GNURadio: Mengubah board RFX1800 menjadi RFX900]]
 
* [[GNURadio: Programming Untuk Pemula]]
 
* [[GNURadio: Programming Untuk Pemula]]
* [[OpenBTS: Ubuntu Install]]
+
* [[OpenBTS: Ubuntu Install]] '''RECOMMENDED'''
* [[OpenBTS: Konfigurasi]]
+
* [[OpenBTS: Ubuntu Install OpenBTS 2.6 Clock 52MHz]] '''RECOMMENDED'''
 +
* [[OpenBTS: Ubuntu 13.04 Install OpenBTS 2.6 Clock 52MHz]] ''NOT RECOMMENDED''
 +
* [[OpenBTS: Konfigurasi]] '''RECOMMENDED'''
 
* [[OpenBTS: Kalibrasi]]
 
* [[OpenBTS: Kalibrasi]]
* [[OpenBTS: Konfigurasi Asterisk untuk OpenBTS]]
+
* [[OpenBTS: Konfigurasi Asterisk untuk OpenBTS]] '''RECOMMENDED'''
 
* [[OpenBTS: Menjalankan smqueue]]
 
* [[OpenBTS: Menjalankan smqueue]]
* [[OpenBTS: Mengoperasikan BTS]]
+
* [[OpenBTS: Mengoperasikan BTS]] '''RECOMMENDED'''
 
* [[OpenBTS: Tampilan di Nokia saat pakai OpenBTS]]
 
* [[OpenBTS: Tampilan di Nokia saat pakai OpenBTS]]
 
* [[OpenBTS: Operasi 1800 MHz]]
 
* [[OpenBTS: Operasi 1800 MHz]]
Line 188: Line 194:
 
===OpenBTS 2.8===
 
===OpenBTS 2.8===
  
* [[GNURadio: Ubuntu 11.10 Install]] '''*NOT RECOMMENED*'''
+
* [[GNURadio: Ubuntu 11.10 Install]] ''NOT RECOMMENED''
* [[GNURadio: Ubuntu 11.10 instalasi menggunakan Repo]] '''NOT RECOMMENDED'''
+
* [[GNURadio: Ubuntu 11.10 instalasi menggunakan Repo]] ''NOT RECOMMENDED''
 +
* [[GNURadio: Download GNURadio]]
 +
* [[GNURadio: Install UHD]]
 
* [[GNURadio: Ubuntu 11.10 Instal GNURadio 3.3.0]]
 
* [[GNURadio: Ubuntu 11.10 Instal GNURadio 3.3.0]]
* [[GNURadio: Ubuntu 11.10 Instal GNURadio 3.4.2]]
+
* [[GNURadio: Ubuntu 12.10 Instal GNURadio 3.3.0]]
* [[GNURadio: Ubuntu 11.10 Install dari GIT GNURadio]]
+
* [[GNURadio: Ubuntu 12.10 Instal GNURadio 3.4.1]] ''NOT RECOMMENDED''
 +
* [[GNURadio: Ubuntu 11.10 Instal GNURadio 3.4.2]] '''RECOMMENDED'''
 +
* [[GNURadio: Ubuntu 12.04 Instal GNURadio 3.4.2]] '''RECOMMENDED'''
 +
* [[GNURadio: Ubuntu 12.04.1 Instal GNURadio 3.4.2]] '''RECOMMENDED'''
 +
* [[GNURadio: Ubuntu 12.10 Instal GNURadio 3.4.2]] ''NOT RECOMMENDED''
 +
* [[GNURadio: Ubuntu 13.04 Instal GNURadio 3.4.2]] '''RECOMMENDED'''
 +
* [[GNURadio: Ubuntu 11.10 Instal GNURadio 3.5.0]] ''NOT RECOMMENDED''
 +
* [[GNURadio: Ubuntu 11.10 Instal GNURadio 3.5.3.2]] ''NOT RECOMMENDED''
 +
* [[GNURadio: Ubuntu 11.10 Instal GNURadio 3.6.0]] ''NOT RECOMMENDED''
 +
* [[GNURadio: Ubuntu 11.10 Install dari GIT GNURadio]] ''NOT RECOMMENDED''
 
* [[GNURadio: Ubuntu 11.10 cek USRP Daughter Board]]
 
* [[GNURadio: Ubuntu 11.10 cek USRP Daughter Board]]
 +
* [[GNURadio: UHD]] ''NOT RECOMMENDED''
 +
* [[GNURadio: UHD Image]] ''NOT RECOMMENDED''
 +
* [[GNURadio: UHD burn EEPROM RFX Board di USRP1]] ''NOT RECOMMENDED''
 +
* [[GNURadio: UHD Identifikasi Device]]
 
* [[OpenBTS: Ubuntu 11.10 Install]]
 
* [[OpenBTS: Ubuntu 11.10 Install]]
* [[OpenBTS: 2.8 dari SVN Install]] '''RECOMMENDED'''
+
* [[OpenBTS: dari GIT ttsou]]
* [[OpenBTS: 2.8 Instalasi Real Time Asterisk]]
+
* [[OpenBTS: 2.8 dari SVN Install]]
 +
* [[OpenBTS: 2.8 dari SVN Install Clock 52MHz]] '''RECOMMENDED'''
 +
* [[OpenBTS: 2.8 dari SVN Install Clock 52MHz di Ubuntu 12.10]] '''RECOMMENDED'''
 +
* [[OpenBTS: 2.8 dari SVN Install Clock 52MHz di Ubuntu 13.04]] '''RECOMMENDED'''
 +
* [[OpenBTS: 2.8 dari SVN 2.8.0 Install Clock 52MHz di Ubuntu 13.04]] '''RECOMMENDED'''
 +
* [[OpenBTS: 2.8 dari SVN Install Clock 52MHz dengan UHD tanpa GNURadio]] ''NOT RECOMMENDED''
 +
* [[OpenBTS: 2.8 Edit User di sqlite3.db]] '''RECOMMEND'''
 +
* [[OpenBTS: Yate Softswitch]] '''RECOMMENDED'''
 +
* [[OpenBTS: Yate Softswitch install Ubuntu 12.10]] '''RECOMMENDED'''
 +
* [[OpenBTS: Yate Softswitch install Ubuntu 13.04]] '''RECOMMENDED'''
 +
* [[OpenBTS: Yate Config Test]]
 +
* [[OpenBTS: 2.8 Instalasi Real Time Asterisk]] '''RECOMMENDED'''
 +
* [[OpenBTS: 2.8 Menjalankan]] '''RECOMMENDED'''
 
* [[OpenBTS: 2.8 Konfigurasi]]
 
* [[OpenBTS: 2.8 Konfigurasi]]
 +
* [[OpenBTS: 2.8 Konfigurasi Cognitive Radio Elsabagh]]
 +
* [[OpenBTS: 2.8 Konfigurasi Subscriber Registery]]
 
* [[OpenBTS: Database SQLite]]
 
* [[OpenBTS: Database SQLite]]
 +
* [[OpenBTS: Set SQLite Subscriber Registry secara manual]]
 +
* [[OpenBTS: Set SQLite parameter smqueue]]
 +
* [[OpenBTS: FreeSWITCH]]
 +
 +
===Multi OpenBTS 2.8===
 +
 +
* [[OpenBTS: Pola Multi OpenBTS]] '''RECOMMENDED'''
 +
* [[Multi OpenBTS: Catatan Konfigurasi]] '''RECOMMENDED'''
 +
* [[Multi OpenBTS: Catatan BSIC=NCC+BCC]]
 +
* [[Multi OpenBTS: Catatan Frekuensi Planning di GSM]]
 +
* [[Multi OpenBTS: Catatan BTS Color Code BCC di GSM]]
 +
* [[Multi OpenBTS: Catatan Network Color Code NCC di GSM]]
 +
* [[Multi OpenBTS: Catatan BCCH]]
 +
* [[Multi OpenBTS: Catatan Public Land Mobile Network PLMN]]
 +
 +
===OpenBTS 3.1.x===
 +
 +
* [[OpenBTS: Install UHD untuk USRP1]]
 +
* [[OpenBTS: UHD Identifikasi Device]]
 +
* [[OpenBTS: OpenBTS 3.1.3 Compile]] '''Tidak bisa untuk USRP1'''
 +
* [[OpenBTS: Yate Compile]]
  
 
===Ettus E110===
 
===Ettus E110===
  
 
* [[OpenBTS: E110 Cara Login]]
 
* [[OpenBTS: E110 Cara Login]]
* [[OpenBTS: E110 Install Image di MicroSD]]
+
* [[OpenBTS: E110 Install Image di MicroSD]] '''*RECOMMENDED*'''
 
* [[OpenBTS: E110 Cek Daughter Board]]
 
* [[OpenBTS: E110 Cek Daughter Board]]
 
* [[OpenBTS: E110 Mengubah Master Clock]]
 
* [[OpenBTS: E110 Mengubah Master Clock]]
 
* [[OpenBTS: E110 Kalibrasi Clock]]
 
* [[OpenBTS: E110 Kalibrasi Clock]]
 +
* [[OpenBTS: E110 Konfigurasi Jaringan]]
 
* [[OpenBTS: E110 Bekerja dengan opkg]]
 
* [[OpenBTS: E110 Bekerja dengan opkg]]
 +
* [[OpenBTS: E110 Instalasi iptables]]
 
* [[OpenBTS: E110 GNURadio]]
 
* [[OpenBTS: E110 GNURadio]]
* [[OpenBTS: E110 Install UHD Image]]
+
* [[OpenBTS: E110 Compile UHD]] ''Not Recommended''
 +
* [[OpenBTS: E110 Compile UHD dari Release Bukan git]] ''Not Recommended''
 +
* [[OpenBTS: E110 UHD burn EEPROM RFX Board]] ''Not Recommended''
 +
* [[OpenBTS: E110 Install UHD Image]] ''Not Recommended''
 
* [[OpenBTS: E110 Instalasi OpenBTS]]
 
* [[OpenBTS: E110 Instalasi OpenBTS]]
* [[OpenBTS: E110 Instalasi OpenBTS 2.6]] '''*NOT RECOMMENDED*'''
+
* [[OpenBTS: E110 Instalasi OpenBTS 2.6]] ''NOT RECOMMENDED''
 +
* [[OpenBTS: E110 Instalasi OpenBTS 2.8 untuk MultiBTS]] '''*RECOMMENDED*'''
 +
* [[OpenBTS: E110 Yate Softswitch]]
 +
 
 +
===Ettus N210===
 +
 
 +
* [[OpenBTS: N210 Instalasi GPSDO Kit]]
 +
* [[OpenBTS: N210 GNURadio]]
 +
* [[OpenBTS: N210 GNURadio 3.7.0]]
 +
* [[OpenBTS: N210 Instalasi OpenBTS]]
 +
* [[OpenBTS: N210 Instalasi Yate]]
 +
* [[OpenBTS: N210 Yate Config Test]]
 +
* [[OpenBTS: N210 Burn Firmware]]
 +
 
 +
===RangeNetworks===
 +
 
 +
* [[OpenBTS: RangeNetwork Foto]]
 +
* [[OpenBTS: RangeNetwork menggunakan USB recovery image]]
 +
* [[OpenBTS: RangeNetwork Default Setting]]
 +
* [[OpenBTS: RangeNetwork Instalasi UHD]]
 +
* [[OpenBTS: RangeNetwork Compile GNURadio UHD]]
 +
* [[OpenBTS: RangeNetwork Compile]]
 +
* [[OpenBTS: RangeNetwork Compile OpenBTS 2.8.0]]
 +
* [[OpenBTS: RangeNetwork Compile OpenBTS 3.1.3]]
 +
* [[OpenBTS: RangeNetwork Yate Compile]] '''*RECOMMENDED*'''
 +
* [[OpenBTS: RangeNetwork Web Interface]]
 +
* [[OpenBTS: RangeNetwork Trunk ke Asterisk Lain]]
 +
* [[OpenBTS: RangeNetwork Audit]]
 +
* [[VoIP: Trunk]]
 +
 
 +
===GPRS===
 +
 
 +
* [[OpenBTS: GPRS]]
 +
* [[OpenBTS: GPRS Konfigurasi]]
 +
* [[OpenBTS: GPRS untuk dibelakang Router dengan NAT]]
 +
 
 +
===Briker OpenBTS===
 +
 
 +
* [[OpenBTS: Briker]]
 +
 
 +
===FreeSWITCH OpenBTS===
 +
 
 +
* [[OpenBTS: FreeSWITCH]]
 +
 
 +
===Power Amplifier===
 +
 
 +
* [[Driver 900MHz]]
 +
* [[Power Amplifier 900MHz]]
 +
* [[Duplexer]]
 +
* [[OpenBTS: Menaikan Jangkauan OpenBTS]]
  
 
===Lain Lain===
 
===Lain Lain===
Line 233: Line 343:
 
* [[Siapa Bilang OpenBTS Ilegal?]]
 
* [[Siapa Bilang OpenBTS Ilegal?]]
 
* [[OpenBTS: Catatan MNC dan MCC Indonesia]]
 
* [[OpenBTS: Catatan MNC dan MCC Indonesia]]
 +
* [[OpenBTS: Catatan MNC dan MCC COOL]]
 
* [[OpenBTS : Alokasi Frekuensi Operator GSM Indonesia]]
 
* [[OpenBTS : Alokasi Frekuensi Operator GSM Indonesia]]
 +
* [[GSM: Daftar Channel Frekuensi]]
  
 
===Catatan Sejarah===
 
===Catatan Sejarah===
Line 240: Line 352:
 
* [[OpenBTS: Daftar Workshop atau Seminar yang pernah dilakukan]]
 
* [[OpenBTS: Daftar Workshop atau Seminar yang pernah dilakukan]]
 
* [[OpenBTS: Daftar Artikel di Media]]
 
* [[OpenBTS: Daftar Artikel di Media]]
 +
* [[OpenBTS: Permohonan Kanal dan DID untuk OpenBTS]]
 +
* [[OpenBTS: 2013/02/19 - OpenBTS TelkomSel Mengudara di Muscat Oman]]
 +
* [[OpenBTS: Beroperasi di Papua]]
 +
 +
===Dokumentasi Video===
 +
 +
* http://www.metrotvnews.com/read/newsprograms/2012/10/14/14624/212/Teknologi-BTS
 +
* http://youtu.be/8ogOcUSpINU (1/6)
 +
* http://youtu.be/F5d7HGuhppk (2/6)
 +
* http://youtu.be/90Jgq6bOgrQ (3/6)
 +
* http://youtu.be/cNkx_qNqdfc (4/6)
 +
* http://youtu.be/6LCuoeI57ak (5/6)
 +
* http://youtu.be/-dEqcHoIlYk (6/6)
 +
* http://www.youtube.com/watch?v=Ff_rw4kAOZg&feature=share
 +
 +
===Perjuangan OpenBTS===
 +
 +
* http://www.technologyreview.com/news/522371/how-remote-places-can-get-cellular-coverage-by-doing-it-themselves/?utm_campaign=socialsync&utm_medium=social-post&utm_source=twitter
 +
 +
  
 
[[Category: Wireless]]
 
[[Category: Wireless]]
 
[[Category: Selular]]
 
[[Category: Selular]]

Latest revision as of 20:11, 10 March 2014

Clock di BTS

Masalah utama yang menyebabkan handphone akan memilih sebuah BTS baik itu OpenBTS maupun "OpenBSC":http://bs11-abis.gnumonks.org/trac/wiki/OpenBSC adalah masalah keakuratan frekuensi. Untuk mengerti masalah ini, kita harus mengerti teknologi clock dan mengerti bagaimana sebuah GSM handphone memperoleh sinyal.

Mari kita lihat spesifikasi GSM 05.10 section 5.1:

_The BTS shall use a single frequency source of absolute accuracy
better than 0.05 ppm for both RF frequency generation and clocking the timebase.
The same source shall be used for all carriers of the BTS._
_For the pico BTS class the absolute accuracy requirement is relaxed to 0.1ppm._


Yang Seharusnya Terjadi

Kesalahan 0.05 ppm adalah 45 Hz di low band (850/900) dan 90 Hz di high band (1800/1900). Ini termasuk SANGAT akurat, akurasi seperti ini akan kita peroleh dari GPS-disciplined VCTCXO (temperature-compensated voltage-controlled crystal oscillator) atau OCXO (oven-controlled crystal oscillator, yang harganya $100-$200). Doppler shift yang akan di peroleh dari sebuah mobil yang berjalan pada kecepatan 150 km/jam atau kereta api adalah sekitar 0.15 ppm, jadi sebetulnya kebutuhan akan akurasi yang sedemikian tinggi masih di pertanyakan, tapi itu yang ada di spec. Dengan adanya effek Doppler, perbedaan frekuensi antara dua base station adalah beberapa ratus Hz, untuk kondisi yang paling parah.

Sebuah pesawat GSM biasanya menggunakan VCTCXO kualitas medium. Pada saat di start, tidak me-lock ke clock external, clock ini biasanya mempunyai keakuratan sekitar 20 ppm, atau sekitar 18 kHz low band (850/900) dan sekitar 36 kHz di high band (1800/1900). Oleh karenanya, start "cold" tanpa informasi, maka HP harus membuang waktu mencari pada frekuensi dan semua kemungkinan drift dari clock-nya sampai menemukan sinyal beacon dari BTS.

Saat HP menemukan beacon, HP akan menggunakan sinyal carrier dari BTS untuk memperbaiki clock lokal dengan cara mengatur voltage control dari VCTCXO. Sampai titik ini, VCTCXO akan se akurat clock BTS selama HP menerima sinyal dari BTS. Jika sinyal BTS hilang, maka clock HP akan drift sampai worst-case rate. Mengetahui berapa lama local clock drift, handset dapat menghitung worst-case drift dan menggunakan informasi tersebut untuk melakukan pencarian frekuensi yang lebih sempit selanjutnya.

Oleh karenanya, pada saat handset baru pertama kali dinyalakan, handset akan melakukan pencarian frekuensi yang sangat lebar sekali sampai menemukan BTS. Jika dia kehilangan sinyal BTS, dia akan mencari lagi tapi sekarang untuk lebar frekuensi yang jauh lebih sempit, karena mengetahui bahwa BTS selanjutnya akan berada dalam beberapa ratus Hz dari frekuensi yang seharusnya di samping local clock di handset belum drift terlalu banyak sejak melihat beacon terakhir. Jika handset menemukan beacon BTS yang lain saat pencarian yang sempit, handset akan "berhenti mencari* (ini sangat penting untuk diskusi kita selanjutnya). Jika handset gagal menemukan beacon BTS dalam pencarian yang sempit, handset akan memperlebar wilayah pencarian frekuensi atau jika kita menggunakan handphone multiband maka handset akan mencoba mencari di band lain.


Yang Akan Terjadi Jika Kita menggunakan Clock yang Tidak Akurat

Jika kita menggunakan BTS yang menggunakan oscillator kristal (XO) sederhana untuk clock yang akan memberikan error beberapa kHz di RF carrier. Hal ini yang akan terjadi pada OpenBTS dengan "stock" USRP (USRP standard). Hal yang sama terjadi pada Siemens BS-11 (digunakan oleh "OpenBSC":http://bs11-abis.gnumonks.org/trac/wiki/OpenBSC) jika dia mengunci clock pada card interface ISDN-grade E1. BTS jenis ini akan gagal dengan 3 kemungkinan, tergantung seberapa jelek clock atau bagaimana sistem digunakan:


Efek dari Error Frekuensi Yang Besar (Beberapa kHz atau lebih)

Tipe kegagalan yang pertama terjadi jika error dari XO BTS amat sangat besar sehingga beacon BTS berada jauh diluar kemampuan handset untuk melakukan search frekuensi yang lebar. Konsekuensi-nya handset tidak akan pernah menemukan sinyal BTS.

Error tipe ini di temukan oleh Fabian Uehlin saat dia pertama kali mencoba mengoperasikan OpenBTS pada band 1800. Error ini di perbaiki oleh Fabian Uehlin menggunakan external clock untuk memperoleh akurasi yang lebih baik.


Efek dari Error Frekuensi yang Sedang (500 Hz sampai beberapa kHz)

Tipe kegagalan yang ke dua terjadi jika RF carrier BTS masih dalam cakupan pencarian yang besar tapi berbeda dari jaringan lokal yang "sebenarnya" hanya beberapa ratus Hz. Dalam situasi ini, handset akan melihat BTS tersebut atau dia akan melihat jaringan yang "sebenarnya", akan tetapi tidak mungkin ke dua-nya sekaligus. Sistem manapun yang akan dilihat pertama kali oleh handset akan mengontrol clock-nya dan akan menyebabkan handset menjadi "buta" pada sistem yang satu lagi.

Kegagalan jenis ini di diskusikan secara detail di OpenBSC e-mail list pada musim semi 2009. Memang belum banyak di diskusikan di mailing list OpenBTS, oleh karenanya sebaiknya berasumsi bawa hal ini akan terjadi jika kita ingin mencoba menjalankan BTS pada band yang sama dengan operator lokal atau jika kita ingin mencoba untuk bekerja dengan handphone multiband. Tampaknya, teman-teman di "OpenBSC" http://bs11-abis.gnumonks.org/trac/wiki/OpenBSC telah berhasil memperbaiki masalah ini dengan cara menambahkan VCOCXO di BS-11 yang jauh lebih baik daripada XO di card E1. Di OpenBTS kita dapat menghindari masalah ini dengan cara beroperasi pada band non-lokal dan mematikan band lainnya di handset sehingga handset tidak mungkin melihat jaringan yang lain. OpenBTS memungkinkan untuk melakukan hal ini tidak seperti OpenBSC karena radio yang kita gunakan sebagian besar adalah software dan sangat flexible.

Kesalaran karena XO dari BTS dan handset akan bergantung / berbeda terhadap umur dan temperatur, oleh karenanya perilaku kegagalan akan berbeda-beda untuk setiap handset pada satu waktu dan berbeda dari jam ke jam karena handset akan memanas atau mendingin. Hal ini akan menyebabkan semua ini sangat misterius dan membuat proses diagnostik menjadi sangat sulit.

Jika anda ingin mencoba beroperasi di sistem Multi-BTS

Umumnya, handset akan menerima daftar BTS tetangga dari BTS yang melayaninya dan secara terus menerus akan memonitor kekuatan sinyal dari beacon dari BTS tetangga. Fitur kunci yang digunakan untuk monitoring ini adalah Extended Training Sequence (XTS) dari burst sinkronisasi. Durasi XTS adalah 64 simbol (sekitar 0.25 mx). Jika kita cari XTS ini menggunakan matched filter, kinerja matched filter akan sangat degradasi jika offset frekuensi lebih besar dari 1/(4*0.25 ms), atau sekitar 1 kHz, karena pada frekuensi tinggi fasa relatif dari XTS dan matched filter akan drift lebih dari 90 derajat untuk perioda korelasi. Sehingga monitoring tetangga (dan juga kemampuan untuk mobile itu sendiri) akan mulai gagal jika per-BTS carrier offset lebih dari 500Hz.

Error 500 Hz adalah 0.5 ppm di low band, dan 0.25 ppm di high band. Walaupun 0.5 / 0.25 ppm lebih rendah di bandingkan dengan 0.05 ppm yang di berikan di spec GSM, kebutuhkan tersebut tetap termasuk tinggi untuk XO biasa. Keakuratan seperti ini hanya dapat diberikan oleh OCXO atau sebuah VCTCXO dengan kualitas baik dengan kalibrasi secara periodik.

Solusi untuk Semua Masalah: Gunakan Clock yang baik

Untuk jangka panjang, OpenBTS akan memperbaiki masalah clock ini dengan mengganti XO yang ada di USRP dengan sesuatu yang lebih akurat, bisa OCXO atau VCTCXO yang berkualitas baik dengan prosedur kalibrasi automatis.

Beberapa pengguna OpenBTS menggunakan & merekomendasikan "FA-SY 1" dari "Funkamateur":http://www.funkamateur.de/, tersedia seharga 40€, untuk ujicoba desktop.

Ketika Kita Melanggar Hubungan Clocking

Kembali spesifikasi GSM 05.10 Section 5.1 yang menyebutkan bahwa RF carrier dan symbol clock di BTS harus di turunkan dari sumber yang sama.

Di handset, symbol clock di kontrol oleh RF carrier BTS, seperti carrier untuk clock. Oleh karenanya, jika RF carrier BTS kita mempunyai error N ppm, maka handset symbol clock juga akan mempunyai error N ppm. Hal ini tidak masalah jika BTS symbol clock mempunyai ke salahan yang persis sama, yang tentunya terjadi jika kita menurunkan semuanya dari sumber clock yang sama seperti di sebutkan oleh spesifikasi GSM.

Tapi jika kita ingin mengakali. Kita tahu bahwa saat peralatan mulai menyala, BTS XO akan secara konsisten mempunyai error +11 ppm, hal ini akan menyebabkan RF carrier error +10 KHz. Sehingga kita sengaja me de-tune RF carrier dengan -10 KHz. hal ini tampaknya memperbaiki masalah yang disebutkan di bagian sebelumnya, akan tetapi menimbulkan masalah baru di symbol rate clock. Standard GSM symbol clock adalah 270.833333 kHz. Jika BTS XO anda off +11 ppm, maka BTS symbol clock sebetulnya adalah 270.836312 kHz. Handset akan lock ke RF carroer BTS, yang sekarang bekerja pada frekuensi yang benar, sehingga menyebabkan handset membangkitkan simbol clock internal 270.833333 kHz. Akibatnya sekarang BTS dan handset symbol clock tidak cocok satu sama lain dengan rate 11 ppm, atau sekitar symbol per detik.

Variasi dari masalah ini adalah ketika kita mengacuhkan spesifikasi dangn menggunakan clock yang berbeda untuk RF carrier dan symbol clock. Sebagai contoh, misalkan kita mempunyai dua OCXO 0.5 ppm. Sehingga perbedaan relatif-nya adalah sekitar 0.5 ppm, hal ini akan menyebabkan drift satu symbol setiap 7 detik.

Handset yang berbeda akan merespond berbeda untuk slipping symbol clock. Pengalaman dengan Nokia DCT3 akan berusaha mengatasinya dengan cara re-sinkronisasi setiap frame, sehingga jika kita menggunakan DCT3 untuk percobaan, kita tidak melihat hal ini sebagai hal yang serius. Sementara, Nokia DCT4 akan lock ke beacon sebentar, akan tetapi akan putus jika clock slip. Beberapa desain handset, slip symbol akan berinteraksi dengan closed-loop timing advance, akibatnya control loop menjadi tidak stabil. Oleh karenanya, error ini tampaknya seperti misterious karena handset yang berbeda akan bereaksi berbeda dan effek-nya akan berbeda untuk beda temperatur karena XO di BTS akan drift.

Reclocking USRP-1 untuk OpenBTS

Default clock USRP adalah 64Mhz. GSM clock diturunkan dari 13 Mhz oleh karena itu kelipatan dari 13 adalah "clock yang baik" untuk host. Reclocking USRP ke 52 Mhz akan menyebabkan host lebih effisien dalam penggunaan CPU.

Sumber Clock 52 MHz untuk OpenBTS

Saat ini ada dua pilihan yang banyak digunakan oleh OpenBTS:

Sekarang kita mempunyai sinyal clock external, kemungkinan besar clock 52MHz yang stabil, dan kita ingin menjalankan OpenBTS dengan-nya. Berikut adalah instruksi setup hardware dan software.

Modifikasi Hardware USRP untuk Menggunakan Clock External

  1. Solder sebuah SMA connector ke J2001. Ini merupakan input clock. Hati-hati dalam menyolder konektor SMA agar tidak merusak sambungan yang sangat tipis antara J2001 ke C927.
  2. Pindah R2029 ke R2030. Ini akan men-disable onboard clock. R2029/R2030 adalah sebuah resistor 0-ohm.
  3. Pindah C925 ke C926.
  4. Buang C924.

Tips: Sebaiknya membayar tukang reparasi handphone untuk melakukan hal ini. Biayanya sekitar Rp. 50.000,-

Modifikasi Software GNURadio

Untuk gnuradio ver. 3.1.3:

  1. In usrp/host/lib/legacy/usrp_basic.h, line 122 should read
     long  fpga_master_clock_freq () const { return 52000000; } 
  2. In usrp/host/lib/legacy/usrp_standard.cc, line 703 should be commented out
     //assert (dac_freq () == 128000000); 
  3. run "make install"
  4. rebuild openbts
  5. modify OpenBTS.config (or whatever config file you are using) so that TRX.Path points to "../Transceiver52M/transceiver".

Untuk gnuradio ver. 3.2.x:

  1. In usrp/host/lib/legacy/usrp_standard.cc, line 1024 should be commented out
     // assert (dac_rate() == 128000000); 
  2. In usrp/host/lib/legacy/db_flexrf.cc, line 179 should read
     return 52e6/_refclk_divisor();  
  3. run "make install"
  4. rebuild openbts
  5. modify OpenBTS.config (or whatever config file you are using) so that TRX.Path points to "../Transceiver52M/transceiver".

Untuk gnuradio ver. 3.3 dan yang lebih tinggi:

  • Tidak perlu ada perubahan ke gnuradio jika kita menggunakan aplikasi default (like usrp_fft.py). Jika anda memerlukannya, kita dapat mengubah menggunakan patch berikut:
  diff --git a/usrp/host/lib/usrp_basic.cc b/usrp/host/lib/usrp_basic.cc
  index 5b2f7ff..8f50ff2 100644
  --- a/usrp/host/lib/usrp_basic.cc
  +++ b/usrp/host/lib/usrp_basic.cc
  @@ -107,7 +107,7 @@ usrp_basic::usrp_basic (int which_board,
     : d_udh (0), d_ctx (0),
       d_usb_data_rate (16000000),        // SWAG, see below
       d_bytes_per_poll ((int) (POLLING_INTERVAL * d_usb_data_rate)),
  -    d_verbose (false), d_fpga_master_clock_freq(64000000), d_db(2)
  +    d_verbose (false), d_fpga_master_clock_freq(52000000), d_db(2)
   {
     /*
      * SWAG: Scientific Wild Ass Guess.
 
  • modify OpenBTS.config (atau file konfigurasi yang anda gunakan) agar TRX.Path menuju ke "../Transceiver52M/transceiver".

h2. Known Problems

As of release 2.5 "Lacassine", the 52 MHz modifications do not work with Mac OS X systems. If you use OS X, you will need to continue to use a 64 MHz clock.

Referensi

Pranala Menarik

Persiapan

Script

OpenBTS 2.6

OpenBTS 2.8

Multi OpenBTS 2.8

OpenBTS 3.1.x

Ettus E110

Ettus N210

RangeNetworks

GPRS

Briker OpenBTS

FreeSWITCH OpenBTS

Power Amplifier

Lain Lain

Catatan Legal dan Pendukung

Catatan Sejarah

Dokumentasi Video

Perjuangan OpenBTS