a. Format pengiriman data antara SPA dengan CSSA Server
Format instruksi antara spectrum analyzer (SPA) dengan CSSA Server mengikuti format standard yang sudah disediakan oleh spectrum analyzer yang menggunakan standard format GPIB, seperti contoh pada table 3.8 dibawah. Sedangkan format data yang digunakan oleh program CSSA Server dengan SPA mengikuti format standard GPIB seperti pada tabel 3.9 berikut :
Tabel 3.8 Instruksi (command/query GPIB) yang digunakan oleh program CSSA
Function Command (EXE, SET) Query (GET) Code Argument
Format
Code Output Format Center Frequency CF* Frequency CF? Frequency Frequency Span SP* Frequency SP? Frequency Reference Level RL* Level RL? Level
Attenuation AT* DB (Integer) AT? DB (Integer)
XdB/Div DD* 10, 5, 2, 1, 0.5 dB DD? 0 = 10 dB 1 = 5 dB 2 = 2 dB 3 = 1 dB 4 = 0.5 dB RBW RB* Frequency RB? Frequency VBW VB* Frequency VB? Frequency
Sweep Time SW|ST* Time SW?|ST? Time
Take Sweep TS - - - Sweep Mode Single SI|SNGLS - - - Number of Trace Points TPS|TP* TPL|TP* 501 1001 TP? 0=501 1=1001 Trace A I/O Binary
TBA 2 byte * TRP TBA? 2 byte * TRP
Register Read OPR* integer OPR? Integer
STB Read - - *STB? Integer
TRP: Number of trace points
Contoh beberapa instruksi GPIB yang dieksekusi dengan bahasa C sbb: a. Center Frequency
send(socket,"CF?\n",4,0)
artinya mengirim query ke spectrum analyzer untuk membaca
Center Frequency, kemudian data tersebut diambil dengan
instruksi dibawah.
recv(socket,str,22,0)
Data disimpan di variavel string str ( char str[22] ), contoh isi data string sbb: +4.0000000000E+09CRLF dan data ini akan dikonversi ke double floating point dengan menggunakan fungsi atof() nilainya menjadi 4 GHz.
send(socket,"CF 100KZ\n",8,0)
artinya command diberikan ke spectrum analyzer untuk
men-setting nilai parameter Center Frequency sama dengan 100
b. Attenuation
send(socket,"AT?\n",4,0)
artinya mengirim query ke spectrum analyzer untuk membaca
Attenuation, kemudian data tersebut diambil dengan instruksi
dibawah.
recv(socket,str,22,0)
Data disimpan di variavel string str ( char str[22] ), contoh isi data string sbb: +1.0000000000E+01CRLF dan data ini akan dikonversi ke floating point dengan menggunakan fungsi atof() nilainya menjadi 10 dB.
send(socket,"AT 10dDB\n",8,0)
artinya command diberikan ke spectrum analyzer untuk
men-setting nilai parameter Attenuation sama dengan 10 dB.
c. dB per Division
send(socket,"DD?\n",4,0)
artinya mengirim query ke spectrum analyzer untuk membaca
dB per Division, kemudian data tersebut diambil dengan
instruksi dibawah.
recv(socket,str,22,0)
Data disimpan di variavel string str ( char str[22] ), contoh isi data string sbb: 1.00000000000E+00CRLF dan data ini akan di validasikan. Jika str[0] bernilai ‘1’, maka dBperDiv
bernilai 5 dB. Untuk daftar nilai dB per Division dapat dilihat pada table 3.8
send(socket,"DD 5dDB\n",8,0)
artinya command diberikan ke spectrum analyzer untuk
men-setting nilai parameter dB per Division sama dengan 5 dB.
d. Video Bandwith
send(socket,"VB?\n",4,0)
artinya mengirim query ke spectrum analyzer untuk membaca
Video Bandwith, kemudian data tersebut diambil dengan
instruksi dibawah.
recv(socket,str,22,0)
Data disimpan di variavel string str ( char str[22] ), contoh isi data string sbb: +1.0000000000E+09CRLF dan data ini akan dikonversi ke double floating point dengan menggunakan fungsi atof() nilainya menjadi 1 GHz.
send(socket,"CF 1GZ\n",8,0)
artinya command diberikan ke spectrum analyzer untuk
men-setting nilai parameter Video Bandwith sama dengan 1 GHz.
e. Resolution Bandwith
send(socket,"RB?\n",4,0)
artinya mengirim query ke spectrum analyzer untuk membaca
Resolution Bandwith, kemudian data tersebut diambil dengan
recv(socket,str,22,0)
Data disimpan di variavel string str ( char str[22] ), contoh isi data string sbb: +1.0000000000E+09CRLF dan data ini akan dikonversi ke double floating point dengan menggunakan fungsi atof() nilainya menjadi 1 GHz.
send(socket,"CF 100KZ\n",8,0)
artinya command diberikan ke spectrum analyzer untuk
men-setting nilai parameter Resolution Bandwith sama dengan 100
KHz.
f. Reference Level
send(socket,"RL?\n",4,0)
artinya mengirim query ke spectrum analyzer untuk membaca
Reference Level, kemudian data tersebut diambil dengan
instruksi dibawah.
recv(socket,str,22,0)
Data disimpan di variavel string str ( char str[22] ), contoh isi data string sbb: +2.0000000000E+01CRLF dan data ini akan dikonversi ke integer dengan menggunakan fungsi atoi() nilainya menjadi 20 dB.
send(socket,"RL 10dDB\n",8,0)
artinya command diberikan ke spectrum analyzer untuk
g. Sweep Time
send(socket,"SW?\n",4,0)
artinya mengirim query ke spectrum analyzer untuk membaca
Sweep Time, kemudian data tersebut diambil dengan instruksi
dibawah.
recv(socket,str,22,0)
Data disimpan di variavel string str ( char str[22] ), contoh isi data string sbb: 4.0000000000E+02CRLF dan data ini akan dikonversi ke double floating point dengan menggunakan fungsi atof() nilainya menjadi 400 milisecond. send(socket,"SW 500MS\n",8,0)
artinya command diberikan ke spectrum analyzer untuk
men-setting nilai parameter y sama dengan 100 milisecond.
h. Span
send(socket,"SP?\n",4,0)
artinya mengirim query ke spectrum analyzer untuk membaca
Span, kemudian data tersebut diambil dengan instruksi
dibawah.
recv(socket,str,22,0)
Data disimpan di variavel string str ( char str[22] ), contoh isi data string sbb: +7.0000000000E+03CRLF dan data ini akan dikonversi ke double floating point dengan menggunakan fungsi atof() nilainya menjadi 7 KHz.
send(socket,"SP 100KZ\n",8,0)
artinya command diberikan ke spectrum analyzer untuk
men-setting nilai parameter span sama dengan 100 KHz.
Tabel 3.9 Format data pada command GPIB yang digunakan program CSSA
b. Format pengiriman data antara CSSA Server dengan CSSA Client
Rancangan format data untuk parameter SPA yang dikirim antara CSSA Server dengan CSSA Client adalah sbb:
Attenuasi;CenterFrequency;dBperDivision;ResolutionBandWidth; ReferenceLevel;FrequencySpan;SweepTime;VideoBandWidth; Data dikirim dalam format ASCII (string) dan setiap data dipisahkan oleh titik koma. Satuan dari data tidak dikirim hanya besarannya saja, tetapi sudah ditentukan / disepakati untuk data Attenuasi, dBperDivision adalah dB (decibel), untuk data CenterFrequency, ResolutionBandWidth,
VideoBandWidth dan FrequencySpan adalah Hz (Hertz), ReferenceLevel
satuannya dBm (decibel milliwatt), SweepTime satuannya millisecond. Sedangkan untuk data trace format datanya sesuai dengan format yang dikirim oleh spectrum analyzer yaitu format biner. Setiap titik direpresentasikan dengan 2 byte integer yang besarnya berkisar antara 1792 s/d 14592 seperti gambar 3.18 dibawah. Jumlah data ada dua yaitu 501 dan 1001 yang ditentukan pada saat setting awal di spectrum analyzer. Penulis menggunakan jumlah data sebanyak 501 titik, agar pada saat membuat gambar spektrum frekuensi di program CSSA Client bisa lebih cepat. Jadi jumlah data yang dikirim dari CSSA Server ke CSSA Client sebanyak 2 x 501 byte, dengan aturan byte pertama yang dikirim merupakan high order
byte dan byte berikutnya low order byte. Jadi format data yang dikirim oleh
CSSA Server ke CSSA Client adalah sebagai berikut:
<high order byte data -1> <low order byte dat-1> <high order byte data -2> <low order byte dat-2> …..…… <high order byte data-501> <low order byte data-data-501>
Data data trace inilah yang akan membentuk gambar spektrum frekuensi di sisi CSSA Client. Contoh data trace yang belum diolah/diproses yang dikirim oleh Spectrum Analyzer dan diterima oleh CSSA Server dan diteruskan ke CSSA Client seperti dibawah ini. Setiap data besarnya satu byte dan byte pertama adalah high order byte dan byte yang ke dua low
order byte, dan dalam program data ini akan ditampung dalam sebuah Array.
22 175 21 173 20 167 21 94 24 95 19 185 19 236 22 247 20 218 23 16 24 56 21 137 20 174 21 186 23 127 22 105 ---- dst s/d 2x501 byte data
Setelah data diatas diproses akan menjadi data Trace yang jumlahnya 501 seperti contoh dibawah ini.
5807 5549 5287 5470 6239 5049 5100 5879 5338 5904 6200 5513 5294 5562 6015 5737 ---- dst s/d 501 data trace
Contoh : Data 5807 didapat dari 22 * 256 + 175 Data 5549 didapat dari 21 * 256 + 173 dst..
Atau kalau dibuat bilangan biner nya sbb:
Dibawah ini diberikan contoh data parameter SPA yang dikirim oleh CSSA
Client dan CSSA Server sbb:
10;90000000;10;100000;-10;20000000;200;100000;
Setelah parameter SPA ini diproses di CSSA Server atau di CSSA Client maka akan di dapat nilai :
Attenuasi = 10; Center Frekuensi = 90 MHz dBperDiv = 10 Res. BW = 100 KHz Video BW = 100 KHz Reference Level = -10 dBm
Frekuensi Span = 20 MHz Sweep Time = 200 msec
Gambar 3.18 Data trace dari Spectrum Analyzer