Subversion Repositories svnkaklik

Rev

Rev 1126 | Rev 1131 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 1126 Rev 1127
Line 280... Line 280...
280
Several tasks in separate FPGA blocks are performed by FPGA. In first block FPGA prepares sampling clock for ADCdual01A modules by division of main local oscillator. This task is separate block in FPGA and runs asynchronously to other logical circuits. Second block is SPI configuration module, which sends configuration words to ADC modules it is activated by opening of Xillybus interface file. Third block represents the main module, which resolves ADC - PC communication itself it communicates via PCIe, collect data from ADC hardware and creates data packet \ref[xillybus-interface]. Last block is activated after ADC configuration via SPI.
280
Several tasks in separate FPGA blocks are performed by FPGA. In first block FPGA prepares sampling clock for ADCdual01A modules by division of main local oscillator. This task is separate block in FPGA and runs asynchronously to other logical circuits. Second block is SPI configuration module, which sends configuration words to ADC modules it is activated by opening of Xillybus interface file. Third block represents the main module, which resolves ADC - PC communication itself it communicates via PCIe, collect data from ADC hardware and creates data packet \ref[xillybus-interface]. Last block is activated after ADC configuration via SPI.
281
 
281
 
282
Communication over PCIe is managed by proprietary IP Core and Xillybus driver, which transfers data from FPGA registers to host PC. Data appear in system device file named  "/dev/xillybus_data2_r" on the host computer. Binary data which appear in this file after its opening are described in the table below \ref[xillybus-interface].
282
Communication over PCIe is managed by proprietary IP Core and Xillybus driver, which transfers data from FPGA registers to host PC. Data appear in system device file named  "/dev/xillybus_data2_r" on the host computer. Binary data which appear in this file after its opening are described in the table below \ref[xillybus-interface].
283
 
283
 
284
\midinsert 
284
\midinsert 
285
\typosize[9/11] \def\tabiteml{ }\let\tabitemr=\tabiteml
285
\def\tabiteml{ }\let\tabitemr=\tabiteml
286
\clabel[xillybus-interface]{Grabber binary output format}
286
\clabel[xillybus-interface]{Grabber binary output format}
287
\ctable {lccccccccc}{
287
\ctable {lccccccccc}{
288
\hfil & \multispan9 \hfil 160bit packet \hfil \crl \tskip4pt
288
\hfil & \multispan9 \hfil 160bit packet \hfil \strut \crl \tskip4pt
289
Data name &  FRAME  & \multispan2 \hfil ADC1 CH1 \hfil & \multispan2 \hfil ADC1 CH2 \hfil & \multispan2  \hfil ADC2 CH1 \hfil & \multispan2 \hfil ADC2 CH2 \hfil  \cr
289
Data name &  FRAME  & \multispan2 \hfil ADC1 CH1 \hfil & \multispan2 \hfil ADC1 CH2 \hfil & \multispan2  \hfil ADC2 CH1 \hfil & \multispan2 \hfil ADC2 CH2 \hfil \strut  \cr
290
Data type & uint32 & int16 & int16 & int16 & int16 & int16 & int16 & int16 & int16 \cr
290
Data type & uint32 & int16 & int16 & int16 & int16 & int16 & int16 & int16 & int16 \cr
291
Content & saw signal & $t1$ &  $t_{1+1}$ &  $t1$ &  $t_{1+1}$ &  $t1$ &  $t_{1+1}$ &  $t1$ &  $t_{1+1}$ \cr
291
Content & saw signal & $t1$ &  $t_{1+1}$ &  $t1$ &  $t_{1+1}$ &  $t1$ &  $t_{1+1}$ &  $t1$ &  $t_{1+1}$ \cr
292
}
292
}
293
\caption/t System device "/dev/xillybus_data2_r" data format
293
\caption/t System device "/dev/xillybus_data2_r" data format
294
\endinsert
294
\endinsert
Line 304... Line 304...
304
\secc Data reading and recording 
304
\secc Data reading and recording 
305
 
305
 
306
In order to read the data stream from the ADC drive, we use Gnuradio software. Gnuradio suite consists of gnuradio-companion package which is a graphical tool for creating signal-flow graphs and generating Python flow-graph source code. This tool was used to create a basic RAW data grabber to record and interactively view waterfall plots the data streams output from ADC modules. 
306
In order to read the data stream from the ADC drive, we use Gnuradio software. Gnuradio suite consists of gnuradio-companion package which is a graphical tool for creating signal-flow graphs and generating Python flow-graph source code. This tool was used to create a basic RAW data grabber to record and interactively view waterfall plots the data streams output from ADC modules. 
307
 
307
 
308
\midinsert
308
\midinsert
-
 
309
\clabel[grabber-flow-graph]{Gnuradio flow graph for signal grabbing}
309
\picw=15cm \cinspic ./img/screenshots/Grabber.grc.png
310
\picw=\pdfpagewidth \setbox0=\hbox{\inspic ./img/screenshots/Grabber.grc.png }
-
 
311
\par\nobreak \vskip\wd0 \vskip-\ht0
-
 
312
\centerline {\kern\ht0 \pdfsave\pdfrotate{90}\rlap{\box0}\pdfrestore}
310
\caption/f An ADC recorder flow graph created in gnuradio-companion.
313
\caption/f The ADC recorder flow graph created in gnuradio-companion.
311
\endinsert
314
\endinsert
312
 
315
 
313
\midinsert
316
\midinsert
314
\picw=15cm \cinspic ./img/screenshots/Grabber_running.png
317
\picw=15cm \cinspic ./img/screenshots/Grabber_running.png
315
\caption/f User interface window of a running ADC grabber.
318
\caption/f User interface window of a running ADC grabber.
Line 318... Line 321...
318
The interactive grabber-viewer user interface shows live oscilloscope-like time-value display for all data channels and live time-frequency scrolling display (a waterfall view) for displaying the frequency components of the grabbed signal. Signal is grabbed to file with exactly the same format, as it is described in table \ref[xillybus-interface].
321
The interactive grabber-viewer user interface shows live oscilloscope-like time-value display for all data channels and live time-frequency scrolling display (a waterfall view) for displaying the frequency components of the grabbed signal. Signal is grabbed to file with exactly the same format, as it is described in table \ref[xillybus-interface].
319
 
322
 
320
 
323
 
321
\sec Achieved parameters
324
\sec Achieved parameters
322
 
325
 
-
 
326
Trial design construction was tested for proper handling of sampling rates in range of 5 MSPS to 15 MSPS it should work above this limit. System works on i7 8 cores computer with Ubuntu 12.04 LTS operating system.  Data recording of input signal is impossible above sampling rates around 7 MSPS due to bottleneck at HDD speed limits, it should be resolved by use of SSD disk drive. But it is not tested in our setup.  
-
 
327
 
323
\secc ADC module parameters
328
\secc ADC module parameters
324
 
329
 
325
Two prototypes of ADC modules were assembled and tested. The first prototype, labeled ADC1, has LTC2190 ADC chip populated with LT6600-5 front-end operational amplifier. It also has a 1kOhm resistors populated on inputs which give it an ability of an internal attenuation of the input signal. The value of this attenuation $A$ is described by the following formula \ref[ADC1-gain]
330
Two prototypes of ADC modules were assembled and tested. The first prototype, labeled ADC1, has LTC2190 ADC chip populated with LT6600-5 front-end operational amplifier. It also has a 1kOhm resistors populated on inputs which give it an ability of an internal attenuation of the input signal. The value of this attenuation $A$ is described by the following formula \ref[ADC1-gain]
326
 
331
 
327
 
-
 
328
\label[ADC1-gain]
332
\label[ADC1-gain]
329
$$
333
$$
330
A = {806 \cdot R_1 \over R_1 + R_2} \eqmark
334
A = {806 \cdot R_1 \over R_1 + R_2} \eqmark
331
$$
335
$$
332
 
336
 
Line 336... Line 340...
336
  * $R_1$ - Output impedance of signal source (usually 50 Ohm).
340
  * $R_1$ - Output impedance of signal source (usually 50 Ohm).
337
  * $R_2$ - Value of serial resistors at operational amplifier inputs.
341
  * $R_2$ - Value of serial resistors at operational amplifier inputs.
338
\enditems
342
\enditems
339
 
343
 
340
We have $R_2 = 1000 \Omega$ and $R_1 = 50 \Omega$ which imply that $A = 0.815$. That value of A is further confirmed by the measurement. 
344
We have $R_2 = 1000 \Omega$ and $R_1 = 50 \Omega$ which imply that $A = 0.815$. That value of A is further confirmed by the measurement. 
341
In our measurement setup we have H1012 Ethernet transformer connected to inputs of ADC. The transformer has a 10\% tolerance in impedance and amplification. We measured ADC saturation voltage of 705.7 mV (generator output) in this setup due to impedance mismatch and uncalibrated transformer gain. 
345
In our measurement setup we have H1012 Ethernet transformer connected to inputs of ADC. We have used this transformer for signal symetrization from BNC connector at Agilent 33220A signal generator. Circuit diagram of used transformer circuit is shown in picture   and circuit realization in photograph \ref[SMA2SATA-nest]. 
342
 
346
 
-
 
347
% doplnit schema zapojeni transformatoru. 
-
 
348
 
-
 
349
Used signal generator Agilent 33220A has not optimal parameters for this type of dynamic range measurement. Signal distortion and spurious levels are only -70 dBc according to Agilent datasheet \cite[33220A-generator]. Although, we measured ADC saturation voltage of 705.7 mV (generator output) in this setup due to impedance mismatch and uncalibrated measurement setup and 1V ADC range selected by sense pin. This is relatively high error, but main result from this measurement is FFT plot shown in image \ref[ADC1-FFT], which confirms $>$80 dB dynamic range at ADC module input.   
343
 
350
 
344
\midinsert
351
\midinsert
345
\clabel[ADC1-FFT]{ADC1 sine test FFT}
352
\clabel[ADC1-FFT]{ADC1 sine test FFT}
346
\picw=15cm \cinspic ./img/screenshots/ADC1_CH2_FFT.png
353
\picw=15cm \cinspic ./img/screenshots/ADC1_CH2_FFT.png
347
\caption/f Sine signal sampled by ADC1 module with LTC2190 and LT6600-5 devices.
354
\caption/f Sine signal sampled by ADC1 module with LTC2190 and LT6600-5 devices.
348
\endinsert
355
\endinsert
349
 
356
 
350
 
357
 
351
For ADC2 we have to use formula with a different constant \ref[ADC1-gain]. The ADC2 module has LT6600-2.5 amplifiers populated on it with gain equal to $A = 2.457$ and uses the same $R_2$ resistors. We measured saturation voltage of 380 mV (generator output) at channel 1 on this ADC. It is well in parameter tolerances  of used setup.   
358
Similar test we performed at ADC2 module. For ADC2 we have to use formula with a different constant \ref[ADC1-gain]. The ADC2 module has LT6600-2.5 amplifiers populated on it with gain equal to $A = 2.457$ and uses the same $R_2$ resistors. We measured saturation voltage of 380 mV (generator output) at channel 1 on this ADC. It is well in parameter tolerances  of used setup.   
352
 
359
 
353
\label[ADC2-gain]
360
\label[ADC2-gain]
354
$$
361
$$
355
A = {1580 \cdot R_1 \over R_1 + R_2} \eqmark
362
A = {1580 \cdot R_1 \over R_1 + R_2} \eqmark
356
$$
363
$$
Line 368... Line 375...
368
\caption/f Sine signal sampled by ADC2 module with LTC2271 and LT6600-2.5 devices.
375
\caption/f Sine signal sampled by ADC2 module with LTC2271 and LT6600-2.5 devices.
369
\endinsert
376
\endinsert
370
 
377
 
371
Computed FFT spectra for measured signal are shown in the images \ref[ADC2-FFT] and \ref[ADC1-FFT].  Both images confirm that ADCdual01A modules have input dynamical range of 80 dB at least. 
378
Computed FFT spectra for measured signal are shown in the images \ref[ADC2-FFT] and \ref[ADC1-FFT].  Both images confirm that ADCdual01A modules have input dynamical range of 80 dB at least. 
372
 
379
 
-
 
380
\midinsert
-
 
381
\clabel[SMA2SATA-nest]{Used balun transformer}
-
 
382
\picw=15cm \cinspic ./img/SMA2SATA_nest1.JPG
-
 
383
\caption/f Balun transformer circuit used for ADC parameters measurement. It is constructed from H1012 transformer salvaged from an old Ethernet card.  
-
 
384
\endinsert
-
 
385
 
-
 
386
 
-
 
387
 
373
\chap Example of usage
388
\chap Example of usage
374
 
389
 
375
For additional validation of system characteristics a receiver setup has been constructed. 
390
For additional validation of system characteristics a receiver setup has been constructed. 
376
    
391
    
377
\sec Basic interferometric station
392
\sec Basic interferometric station
Line 379... Line 394...
379
Interferometry station was chosen to serve as the most basic experimental setup. We connected the new data acquisition system to two SDRX01B receivers. Block schematics of the setup used is shown in image \ref[block-schematic]. Two ground-plane antennae were used and mounted outside the balcony at CTU building at location 50$^\circ$ 4' 36.102'' N,  14$^\circ$ 25' 4.170'' E. 
394
Interferometry station was chosen to serve as the most basic experimental setup. We connected the new data acquisition system to two SDRX01B receivers. Block schematics of the setup used is shown in image \ref[block-schematic]. Two ground-plane antennae were used and mounted outside the balcony at CTU building at location 50$^\circ$ 4' 36.102'' N,  14$^\circ$ 25' 4.170'' E. 
380
Antennae were equipped  by LNA01A amplifiers. All coaxial cables have the same length of 5 meters. Antennae were isolated by common mode ferrite bead mounted on cable to minimise the signal coupling between antennas. Evaluation system consists of SDGPSDO local oscillator subsystem used to tune the local oscillator frequency. 
395
Antennae were equipped  by LNA01A amplifiers. All coaxial cables have the same length of 5 meters. Antennae were isolated by common mode ferrite bead mounted on cable to minimise the signal coupling between antennas. Evaluation system consists of SDGPSDO local oscillator subsystem used to tune the local oscillator frequency. 
381
 
396
 
382
\midinsert
397
\midinsert
383
\clabel[block-schematic]{Receiver block schematic}
398
\clabel[block-schematic]{Receiver block schematic}
384
\picw=10cm \cinspic ./img/Coherent_UHF_SDR_receiver.png
399
\picw=\pdfpagewidth \setbox0=\hbox{\inspic ./img/Coherent_UHF_SDR_receiver.png }
-
 
400
\par\nobreak \vskip\wd0 \vskip-\ht0
-
 
401
\centerline {\kern\ht0 \pdfsave\pdfrotate{90}\rlap{\box0}\pdfrestore}
385
\caption/f Complete receiver block schematic of dual antenna interferometric station.
402
\caption/f Complete receiver block schematic of dual antenna interferometric station.
386
\endinsert
403
\endinsert
387
 
404
 
388
% doplnit schema skutecne pouziteho systemu
405
% doplnit schema skutecne pouziteho systemu
389
 
406
 
Line 427... Line 444...
427
 
444
 
428
An interfacing problem will by  probably resolved by other than Intel ix86 architecture. Many ARM computers have risen on market due to increased demand of embedded technologies, which requires high computation capacity, low power consumption and small size -- especially smart phones. Many of those ARM based systems has interesting parameters for signal processing. This facts makes Intel's ix86 architecture unattractive for future project. 
445
An interfacing problem will by  probably resolved by other than Intel ix86 architecture. Many ARM computers have risen on market due to increased demand of embedded technologies, which requires high computation capacity, low power consumption and small size -- especially smart phones. Many of those ARM based systems has interesting parameters for signal processing. This facts makes Intel's ix86 architecture unattractive for future project. 
429
 
446
 
430
\sec Parralella board computer
447
\sec Parralella board computer
431
 
448
 
432
Parallella is new product from Adapteva, Inc. \cite[parallella-board], this small supercomputer have been in development almost two years and only testing series of boards have been produced until now (first single-board computers with 16-core Epiphany chip were shipped December 2013) \cite[parallella-board]. This board have near ideal parameters for signal processing (provides around 50 GFLOPS of computational power). The board is equipped by Epiphany coprocessor which has 16 High Performance RISC CPU Cores,  Zynq-7020 FPGA with Dual ARM® Cortex™-A9 MPCore™ and 866 MHz operating frequency, 1GB RAM,  85K Logic Cells, 10/100/1000 Ethernet and OpenCL support \cite[parallella16-board]. In addition of that this board consume only 3 Watts of power if both Zynq and Epiphany cores are running.     
449
Parallella is new product from Adapteva, Inc. \cite[parallella-board], this small supercomputer have been in development almost two years and only testing series of boards have been produced until now (first single-board computers with 16-core Epiphany chip were shipped December 2013) \cite[parallella-board]. This board have near ideal parameters for signal processing (provides around 50 GFLOPS of computational power). The board is equipped by Epiphany coprocessor which has 16 High Performance RISC CPU Cores,  Zynq-7020 FPGA with Dual ARM® Cortex™-A9 MPCore™ and 866 MHz operating frequency, 1GB RAM, 85K Logic Cells, 10/100/1000 Ethernet and OpenCL support \cite[parallella16-board]. In addition of that this board consume only 3 Watts of power if both Zynq and Epiphany cores are running.     
433
 
450
 
434
Main disadvantage of Parralella board is is unknown lead time and absence of SATA interface or other interface for data storage connection. Fast data storage interface would be useful and allows bulk processing of captured data. Then a result from data processing will be sent over the Ethernet interface to data storage server. 
451
Main disadvantage of Parralella board is is unknown lead time and absence of SATA interface or other interface for data storage connection. Fast data storage interface would be useful and allows bulk processing of captured data. Then a result from data processing will be sent over the Ethernet interface to data storage server. 
435
 
452
 
436
\midinsert
453
\midinsert
437
\clabel[img-parallella-board]{Parallella board overview}
454
\clabel[img-parallella-board]{Parallella board overview}
Line 449... Line 466...
449
\clabel[img-NVIDIA-K1]{NVIDIA Jetson TK1 Development Kit}
466
\clabel[img-NVIDIA-K1]{NVIDIA Jetson TK1 Development Kit}
450
\picw=15cm \cinspic ./img/Jetson_TK1_575px.jpg
467
\picw=15cm \cinspic ./img/Jetson_TK1_575px.jpg
451
\caption/f The NVIDIA Jetson TK1 Development Kit \url{https://developer.nvidia.com/jetson-tk1}.
468
\caption/f The NVIDIA Jetson TK1 Development Kit \url{https://developer.nvidia.com/jetson-tk1}.
452
\endinsert
469
\endinsert
453
 
470
 
-
 
471
NVIDIA board is discrict by presence of PCI Experess connector. This connector should be used for FPGA connection, if we decide to use this development board in our radio astronomy digitalisation system. A new FPGA board with PCI Express  direct PCB connector  
-
 
472
 
-
 
473
% doplnit popis pripojeni FPGA desky s HDMI Kabelem. 
-
 
474
 
-
 
475
\sec Other ARM based computation systems 
-
 
476
 
-
 
477
Other embeded ARM based computers for example ODROID-XU, lack of suitable high speed interface. Theirs highest speed interface is USB 3.0 which has currently unsettled development support and needs commercial software tools for evaluation and testing.
-
 
478
 
-
 
479
 
-
 
480
From summary analysis mentioned above the Parrallella board should be the best candidate for computational board in radioastronomy data aquisition system. Parralella board is optimised for high data flow processing. Parallella has not much memory to cache processing data but instead of this it has wide bandwidth data channels. Other boards provides much more computational power -- 300 GFLOPS in case of NVIDIA K1, but these boards are optimised for computational heavy tasks on limited amount of data. This is typical problem in computer graphics. But in our application we do not need such extreme computation power at data aquisition system level. 
-
 
481
As result we should wait until Parallella becomes widely available. Then new ADCdual interfacing board should be designed ad prepared for use in new scalable radio astronomy data aquisition system. In meen time before suitable computing hardware become accessible. Required applications and algorithms should be optimised on proposed trial design with FPGA development board on standard PC host computer with PCI Express interface to development board. 
-
 
482