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 |
|