Difference between revisions of "USRP: High Precision Clock"

From OnnoWiki
Jump to navigation Jump to search
 
(38 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.
  
Sebuah pesawat GSM biasanya menggunakan VCTCXO kualitas medium.
+
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.
  
The typical GSM handset has a medium-quality VCTCXO. On a cold start, not locked to any outside clock, this clock has a an accuracy of around 20 ppm, or about 18 kHz in the low bands (850/900) and about 36 kHz in the high (1800/1900) bands. So, starting "cold" with no information, the phone runs a time-consuming frequency search over the whole possible drift range of its own clock and continues this search until it finds a beacon signal from a 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.
Once the phone finds a beacon, it uses the carrier from the BTS to correct its own local clock by adjusting the control voltage on the VCTCXO. From that point on, the VCTCXO is just as accurate os the BTS clock as long as it is receiving the BTS signal. If the BTS signal is lost, the handset's clock will drift within some know worst-case rate. Knowing how long its local clock has been drifting, the handset can calculate the worst-case drift and use that information to narrow next frequency search.
 
  
So, you turn on a handset from "cold", it does a big frequency search until it finds a BTS. If it looses that BTS signal, it searches for another, but this time it does a much smaller frequency search, knowing that the signal from the next BTS will be within a few hundred Hz of its expected frequency and that its own local clock has not drifted much since last seeing a beacon. If the handset finds another beacon during this small search, it will *stop searching*. (That's critical for the next part of this discussion.) If the handset fails to find a beacon in the small search, it will widen the search range or a multiband phone might try a different band.
+
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.
  
  
==h1. Second: What Goes Wrong When You Use an Inaccurate Clock==
+
==Yang Akan Terjadi Jika Kita menggunakan Clock yang Tidak Akurat==
  
Now, suppose your BTS uses a simple XO (crystal oscillator) clock, which produces an error on the order of a several kHz on your RF  
+
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:
carrier. This is the case for [[OpenBTS]] with a "stock" USRP and it is also the case with the the Siemens BS-11 (used by "OpenBSC":http://bs11-abis.gnumonks.org/trac/wiki/OpenBSC) when it is locked to the clock from a typical ISDN-grade E1 interface card. This kind of BTS can fail in three possible ways, depending on just how bad the clock error is and how the system is being used:
 
  
  
===h2. Effect of Large Frequency Errors (Several kHz or More)===
+
===Efek dari Error Frekuensi Yang Besar (Beberapa kHz atau lebih)===
  
The first type of failure is where the BTS XO error is so large that your BTS beacon falls completely outside the handset's "big" search range. The handset simply never finds the BTS signal. This is the error Fabian Uehlin found when he first tried to operate [[OpenBTS]] in the 1800 band. He fixed it by using an external clock with much better accuracy.
+
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.
  
===h2. Effect of Modest Frequency Errors (500 Hz to a Few kHz)===
 
  
The second type of failure is when your BTS RF carrier is within the "big" search range but differs from the local "real" networks by more than a few hundred Hz. In this situation, the handset will either see your BTS or it will see the "real" network, but *not both*. Whatever system the handset sees first will control its clock and make it blind to the other. This kind of failure was discussed in detail in the [[OpenBSC]] e-mail list in Spring 2009. It has not been discussed much in the [[OpenBTS]] list, but it is safe to assume that it happens if you try to run the BTS in the same band as your local GSM carriers or try to work with multi-band phones. If I am not mistaken, the "OpenBSC":http://bs11-abis.gnumonks.org/trac/wiki/OpenBSC people fixed this problem by realizing that the VCOCXO in the BS-11 is much better than the XO on their standard E1 card -- *if* they just leave it alone. In [[OpenBTS]] we avoid this problem by operating in non-local bands and disabling other bands in the handsets so that they never see any other network. (OpenBTS can do that because unlike [[OpenBSC]] our radio is mostly software and very flexible.)
+
===Efek dari Error Frekuensi yang Sedang (500 Hz sampai beberapa kHz)===
  
The XO errors of the BTS and the handsets will vary with age and temperature, so the failure behavior will be different for every handset at any given time and will vary from hour to hour as things warm up and cool down. That can make it all seem very mysterious and can make diagnosis difficult.
+
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.
  
===h2. When You Try to Run a Multi-BTS System===
+
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.
  
Normally, a handset receives a neighbor list from its serving BTS and constantly monitors the signal levels from the beacons of these neighbors.  The key feature used for this monitoring is the extended training sequence (XTS) of the synchronization burst.  This XTS has a duration of 64 symbols (roughly 0.25 ms).  If we search for this XTS with a matched filter, the performance of that matched filter will degrade rapidly for frequency offsets greater than about 1/(4*0.25 ms), or about 1 kHz, because at higher frequencies the relative phases of the XTS and the matched filter will drift by more than 90 degrees over the correlation period.  So neighbor monitoring (and therefore mobility itself) starts to fail for per-BTS carrier offsets of more than 500 Hz. 
+
===Jika anda ingin mencoba beroperasi di sistem Multi-BTS===
  
A 500 Hz error is 0.5 ppm in the low bands and 0.25 ppm in the high bands. While this is an easier requirement than the 0.05 ppm given in the spec, it is much tighter than could be provided by a simple XO. This accuracy can be provided by an OCXO or a good quality VCTCXO with regular calibration.
+
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.
  
===h2. Solution to All Problems: Use a Good Clock===
+
===Solusi untuk Semua Masalah: Gunakan Clock yang baik===
  
In the long-term, [[OpenBTS]] will fix both of these clock problems completely replacing the XO clock in the USRP with something much more accurate, either a true OCXO or a very high-quality VCTCXO with an automated calibration procedure.
+
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.
  
Several [[OpenBTS]] uses have also recommended the kit "FA-SY 1" from "Funkamateur":http://www.funkamateur.de/, available for about 40€, for desktop testing.
+
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==
  
==h1. Third: When You Violate Clocking Relationships==
+
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.
  
Getting back to 05.10 Section 5.1, the GSM specifications dictate that the RF carrier and the symbol clock in the BTS be derived from a common source.
+
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.
  
In the handset, the symbol clock is disciplined by the BTS RF carrier, just like the carrier clock. So, if your BTS RF carrier is in error by N ppm, the handset symbol clock will also be in error by N ppm. That's OK if the BTS symbol clock has exactly the same error, which it WILL if you derive everything from a common clock that way the specification tells you to.
+
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.
  
But suppose you try to be clever. You know that once your equipment is warmed up, your BTS XO is consistently in error by +11 ppm, giving an RF carrier error of +10 kHz. So you deliberately de-tune your RF carrier by -10 kHz. That fixes the problems described in the previous section, but creates a new problem in the symbol rate clock. The standard GSM symbol clock is 270.833333 kHz. Your BTS XO is really off by +11 ppm, so your BTS symbol clock is really 270.836312 kHz. The handset locks to your BTS RF carrier, which is now spot-on its specified frequency, so the handset generates a correct internal symbol clock of 270.833333 kHz. So now the BTS and handset symbol clocks are slipping against each other at a rate of 11 ppm, or about 3 symbols per second.
+
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.
  
Another variation on this problem is if you ignore the spec and use different clock devices for your RF carrier and your symbol clock. For example, suppose you have two 0.5 ppm OCXOs. Their relative fractional difference will be about 0.5 ppm, giving a drift of about one symbol every 7 seconds or so. (I've actually see this done before, too.)
+
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.
  
Different handsets respond to the slipping symbol clock in different ways. In our experience, Nokia DCT3s just deal with it, apparently re-syncing on every frame, so if we only use DCT3s for testing, we may never realize that it is a serious problem. A Nokia DCT4 may camp to the beacon briefly, but will abort a transaction when the clock slips.  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,
 +
    : 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>
  
For gnuradio ver. 3.3 and higher:
+
* modify OpenBTS.config (atau file konfigurasi yang anda gunakan) agar TRX.Path menuju ke "../Transceiver52M/transceiver".
 
 
* 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:
 
<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 149: Line 142:
  
 
* [[OpenBTS]]
 
* [[OpenBTS]]
 +
* [[OpenBTS: Arsitektur secara umum]]
  
 
===Persiapan===
 
===Persiapan===
Line 154: Line 148:
 
* [[USRP: High Precision Clock]]
 
* [[USRP: High Precision Clock]]
 
* [[USRP: Menyambungkan ClockTamer ke USRP1]]
 
* [[USRP: Menyambungkan ClockTamer ke USRP1]]
 +
* [[USRP: Kalibrasi ClockTamer]]
 +
* [[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 161: Line 168:
 
* [[GNURadio]]
 
* [[GNURadio]]
 
* [[GNURadio: Ubuntu Install]]
 
* [[GNURadio: Ubuntu Install]]
* [[GNURadio: Ubuntu Install GNURadio 3.4.2]]
+
* [[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 182: 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: 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 Konfigurasi Jaringan]]
 
* [[OpenBTS: E110 Bekerja dengan opkg]]
 
* [[OpenBTS: E110 Bekerja dengan opkg]]
 +
* [[OpenBTS: E110 Instalasi iptables]]
 
* [[OpenBTS: E110 GNURadio]]
 
* [[OpenBTS: E110 GNURadio]]
 +
* [[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===
  
 +
* [[OpenBTS: Materi Magang di ICTWATCH]]
 +
* [[OpenBTS: Seminar Outline]]
 +
* [[OpenBTS: Workshop Outline]]
 
* [[Membuat Base Station GSM Open Source]]
 
* [[Membuat Base Station GSM Open Source]]
 
* [[Teknologi Selular]]
 
* [[Teknologi Selular]]
Line 221: 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 228: 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