WiKi上关于USRP使用的一些问答(一)

WiKi上关于USRP使用的一些问答,很有意义http://gnuradio.org/redmine/projects/gnuradio/wiki/USRP2GenFAQ

Up-to-date information on current USRP products

  • The contents of this page refer to the original RAW Ethernet implementation of the USRP2 firmware and may not accurately reflect currently used configurations. All current users should upgrade to UHD firmware and drivers.
    http://code.ettus.com/redmine/ettus/projects/uhd/wiki
  • This wiki page remains available for legacy users and archival purposes.

What are the differences between the USRP1 and USRP2?

  USRP1 USRP2
Interface USB 2.0 Gigabit Ethernet
FPGA ltera EP1C12 Xilinx Spartan 3 2000
RF Bandwidth to/from host 8 MHz @ 16bits 25 MHz @ 16bits
Cost $700 $1400
ADC Samples 12-bit, 64 MS/s 14-bit, 100 MS/s
DAC Samples 14-bit, 128 MS/s 16-bit, 400 MS/s
Daughterboard capacity 2 TX, 2 RX 1 TX, 1 RX
SRAM None 1 Megabyte
Power 6V, 3A 6V, 3A

What FPGA is used in the USRP2?

XC3S2000-5FGG456, That is the Spartan 3 2000, fast speed grade (-5), 456 pin BGA package.

I know that the USRP2 does not support two transceivers. But does it support 2 coherent receivers?

No, a single USRP2 can only support either

  • 1 RX and 1 TX daughterboard.
    OR
  • 1 Transceiver daughterboard

You would need two USRP2s linked with a MIMO cable in order to have 2 coherent receivers. The exception is if you use your own external RF downconverters, in which case you can connect two of them to one BasicRX.

Can I compile FPGA designs with the free version of the Xilinx tools?

Please note that the USRP2 uses a Spartan 3-2000 chip. This means that if you intend to do your own FPGA development, you need to use the full version of the Xilinx tools in order to generate an image for it. You cannot use the free web pack version. Thus
there are several options for you:

  • Just use the prebuilt FPGA images we provide
  • Purchase the full version of ISE from Xilinx
  • Get a 60 day demo version from the Xilinx Web Site
  • Convince your Xilinx apps engineer to get you a free copy
  • Universities often get the tools free of charge
  • Release your changes to the community and we can find some sort of way to build them for you (if anybody wants to work on putting together some scripts to do this automatically, let me know).

What are the different ways MIMO can be set up with more than one USRP2?

There are 3 things necessary to get MIMO working.
1. All systems need to be phase-locked to a common clock (10 MHz in this case)
2. All systems need to have a common time reference (often a 1 PPS signal) so that they know which sample in one system corresponds to which sample in the other
3. All the data needs to come from / go to the same place

The MIMO Expansion interface on the USRP2 carries all 3 of those.

Scenario 1 - Two USRP2 systems connected by a MIMO cable:

The Master USRP2 is the one connected to both ethernet and the MIMO cable.
The Slave USRP2 is the one connected to just the MIMO cable.
The master provides a clock to the slave over the MIMO cable.
The master provides the time reference to the slave over the MIMO cable.
On transmit, the host sends all data over the ethernet to the master.
The master uses the data which is intended for the master, and passes the data for the slave over the MIMO cable.
On receive, the slave sends all data over the MIMO cable to the master, and the master passes it back to the host over ethernet. It also sends its own data over the ethernet to the host.
The firmware and host driver code to do this is not ready yet, but is in progress. (14 November 2008)

Scenario 2 - Up to Four USRP2 systems connected by MIMO cables to the not-yet-in-existence HUB:

The HUB has a big FPGA on it.
The HUB provides clock and time reference to all USRP2 systems.
The HUB communicates with the host computer by ethernet or PCI Express, or operates standalone.
All USRP2 systems send data back and forth to the HUB.
The HUB is not ready yet, but the design is in progress. We hope to have it ready in 9-12 months. (14 November 2008)

Scenario 3 - An arbitrary number of USRP2 systems, no MIMO cables, no HUB:

Some means of providing the same 10 MHz reference to all USRP2 systems must be set up. Typically this would be the 10 MHz output of some lab reference like a GPS-locked reference. That reference would be put through some sort of active splitter, and fed
into all the USRP2s by SMA connector on the front panel.
Some means of providing the same time reference to all USRP2 systems is also needed. This would normally be a 1 PPS signal generated by the same reference. It will need to go through some sort of active splitter and send into the PPS input of all the USRP2
systems.
ALL the USRP2 systems will need to be connected to the host computer by gigabit ethernet. You can probably use an ethernet switch, but there will be issues with sharing the bandwidth.
The firmware to do this is ready. The host code to do it is not ready yet. (14 November 2008)

What is the use of the 1 PPS and 10 MHz inputs? These are standard outputs of a GPS unit. Are they external references or are they are used in the Ethernet time stamping?

The USRP2 uses a 100 MHz clock internally. That clock will be locked to the 10 MHz reference you provide.

Samples can be time stamped, and that time can be calibrated to the 1 PPS signal. In the most general case, that 1 PPS input just goes directly to the FPGA, so internally you can do whatever you want with it.

Is the timestamp only tied to (t=0 to) the 1PPS-pulse? I hope to use faster sync pulse like at 1-10kHz, and get the timestamp referenced to them. Is this possible?

The 1 PPS input goes to an FPGA pin, so you can program the FPGA to do whatever you want. This includes accepting faster sync pulses, encoded timestamps, Morse code, etc.

What are the electrical specifications for the 10MHz reference signal?

The Reference input can take a square or sine wave input that is DC-blocked and terminated in 50 ohms. The input should be less than 3V pk-pk.

What are the electrical specifications for the PPS input?

The PPS input is not DC blocked. It is AC terminated in 50 ohms, DC terminated in 1K ohms. The digital signal you put in should be between 0 and 5 V. It should never go below 0V and never above 6V.

What phase relation do you expect between 10MHz and 1PPS?

The PPS signal should be synchronous to the 10 MHz reference. Nearly any GPS frequency reference should work. Everything fromhttp://jackson-labs.com would
suffice.

What is the 1 Megabyte SRAM used for?

It's there as a TX buffer for IQ data, so you can use timestamped TX packets to say "send this data at exactly time X". Previously it wasn't used, so if you didn't update your FPGA image for a long time, it may be not used at all.

How are the connections between USRP2 boxes intended to work? There are a MIMO connector and an frequency reference input.

The MIMO connector brings the frequency reference from one USRP2 to the other. If you wish to use an external frequency reference to lock both USRP2s, you would feed it to the first USRP2, and the MIMO connector will deliver it to the 2nd.

Is it possible to connect more boxes together using the MIM0 connector?

Not directly. Eventually, we will be selling another device to allow you to connect more than 2 USRP2s together (most likely 4), but for now you would be limited to 2.

Where is the limitation of 8 antennas as stated on the datasheet?

When the 4-way USRP2 link device discussed above is used, and each USRP2 is used with 2 separate RF channels via the BasicRX and BasicTX,
you would get 8 channels.

How can I use both A/D converters on the USRP2?

Usually the 2 are used for I and Q from the downconverters, but you can use them separately as well by using the BasicRX.

Does the external frequency reference have to be 10 MHz? Can I use 100 MHz?

Actually, you can use 100 MHz as well, you will just need to change one line of the firmware to set the R-divider on the PLL. You can use any frequency for which the following equation has a solution:

   100 MHz / N = Ref / R
       for which N and R are integers and smaller than 32,768

Can an external clock be used instead of the internal 100 MHz VCXO?

The internal clock (a very clean VCXO) is locked to the external reference if one is applied. You have a lot of flexibility in selecting the reference frequency (see previous question), but you cannot pull the VCXO further than a few kHz, and you cannot
use the reference as the main system clock. So there is no way, for example, to put in a 120 MHz clock and have everything run off of that. You are basically stuck with 100 MHz unless you are willing to solder.

If you are willing to do some soldering, there are pin-compatible VCXOs in other frequencies which are available. The part is the CVHD950 from Crystek, and you can get them from Mouser. Note than anything over 100 MHz may make it hard to get the FPGA to
meet timing requirements. Also, the ADC is only specified to 105 MHz, but there is a pin-compatible version spec'ed to 125 MHz.

What is the Job of 10MHz Reference Clock ?

The 10 MHz reference input on the front is optional. If you connect it and enable locking, the 100 MHz main oscillator will lock to it, otherwise it will free run. Everything inside the FPGA runs at 100 MHz (DSP) or 50 MHz (processor).

There is also a 10 MHz reference clock sent out on the MIMO connector. When turned on, it will be the 100 MHz clock divided down by 10.

What chipset is used in the USRP2 for managing the Gigabit Ethernet interface?

It's done with an open source MAC implemented in the FPGA and a National Semicondutor PHY chip, DP83865.

How does the USRP2 boot? How is the FPGA firmware loaded?

The CPLD (a Xilinx XC9572) reads the first megabyte from the SD card and
writes it to the FPGA config pins in slave-serial mode. Once the FPGA is
configured, it requests the firmware for the aeMB processor from the SD
card. After that, the CPLD is switched over to passthru mode, and the
FPGA has direct access to the SD card under program control.

What is the USRP2 ADC chip? Is there an auxiliary ADC?

The main ADC is the Dual 14-bit LTC2284, used at 100 MS/s. There is an auxiliary 2 channels, 12-bit
ADC (the AD7922) for each dboard connector.

What is the USRP2 DAC chip? Is there an auxiliary DAC?

The main DAC is the Dual 16-bit AD9777 fed with 100 Ms/s and produces 400 Ms/s based analog output. The auxiliary DACs are the dual 12-bit AD5623.

Is there auxiliary Digital I/O?

The same USRP1 16 digital IOs, SPI, and I2C to each daughterboard connector. The whole interface to the daughterboards is the same as the USRP1, except instead of it being implemented all in the AD9862, it is done with the following set:

  • LTC2284
  • AD9777
  • 2x AD5623
  • 2x AD7922

How are the USRP2 DDCs implemented ? How many CIC stages does it contain?

The DDCs are very similar to the USRP1 with
a 4 stage CIC but with 2 HBF filters. The CIC can decimate in the range [1..128]. The high rate HBF has 7 taps and it decimates by 2. The low rate HBF has 31 taps and also decimates by 2.

How are the USRP2 DUCs implemented ? How many CIC stages does it contain?

Again, very similar. There us
a 4 stage CIC and 2 HBF filters each working in interpolation mode.

What does the magnitude response of the low rate HBF interpolator look like?

And what about the low rate HBF decimator?

It is identical to the one of the interpolator, see above.

What is the magnitude response of the high rate HBF interpolator/decimator?

How is the USRP2 HBF for TX and RX sides are implemented?

I will explain the RX side, the TX side is basically the same.

small_hb_dec is the short filter which works at the higher rate. There are 2 of them instantiated, one for I and one for Q. It has 7 taps. One of those taps is the center tap which only requires a shift and not a multiply, and 2 of those taps are zeros.
That leaves 4 taps. The taps are symmetric, which leaves 2 multiplies per output. Since we have at least 2 cycles to produce each output, we can use a single multiplier.

hb_dec is 2nd halfband filter and it works at the lower rate. There are 2 of them instantiated, one for I and one for Q. It has 31 taps. One of those taps is the center tap which only requires a shift and not a multiply, and half of the remainder are zeros.
That leaves 16 taps. They are symmetric, so that means we need to do 8 multiplies to produce each output. There are at least 4 cycles to produce each output, so we need to do 2 multiplies at a time.

One of those multipliers does the "outer" coefficients, meaning the ones at the very beginning and end of the impulse response, and one does the "inner" coefficients, meaning the ones around the center of the impulse response. This division is purely an
implementation choice, and does not affect the output. I could have put the odd ones on one mult and the even ones on the other, or any other split you could imagine. It doesn't matter.

What are the USRP2 minimum and maximum decimation/interpolation values? Is odd decimation/interpolation possible?

Minimum interpolation and decimation is 4 and maximum is 512. If you use odd decimation or interpolation, you just get a CIC with no halfbands. If you use an even rate but not a multiple of 4, you just get one halfband (the low rate one). If your rate is
a multiple of 4, you use both halfbands.

How are the USRP2 DACs fed ?

The FPGA talks to the DAC at 100 MS/s just like it talks to the ADC at 100 MS/s. The interpolation from 100 MS/s to 400 MS/s happens inside the DAC chip itself. Unless you are doing something fancy, you can think of the
DAC as operating at 100 MS/s.

The primary reason for the x4 interpolation to 400 MS/s is to simplify the analog reconstruction filters. It also allows for a coarse modulation up to 150 MHz, but I don't anticipate that being used very often.

What are the default USRP2 IP address and subnet mask?

The standard USRP2 FPGA image does not use IP, just raw ethernet.

Does USRP2 respond to a network ping command?

No, but we have our own, find_usrps

What is the USRP2 reference clock stability?

About 20 ppm unless you lock to an external reference.

With the BasicTX board,
the USRP1 can generate a maximum of 44 MHz frequency. What is the USRP2 capable of generating?

44 MHz is the highest frequency in the first Nyquist zone on the USRP1.

Much higher frequencies can be used in the higher zones. The USRP2 takes 100 MS/s rates and interpolates up to 400 MS/s. Direct
frequencies up to ~170 MHz should be usable. The code that initializes the DAC is in u2_init.c

What is the USRP2 overrun message?

Currently, overruns are shown on the UART port and not on the host. They
are shown with a "O". The reality is that you should never see them. 
If the host computer can't keep up, you will see an "S" messages in the
terminal on the host that indicates a sequence number error.

What is the USRP2 underrun message?

Under runs are shown on the UART port as "U".

What are the most important (hot) trunk USRP2 code that we need to check to understand USRP2 architecture, configuration, and operation?

In the FPGA code, the tx_control.v and rx_control.v show inband
signalling, dsp_core_rx and dsp_core_tx show the DSP, and u2_core.v is
the top level. In the firmware, start with txrx.c.

How much of the USRP2's FPGA resources are required by the FPGA firmware?

37 out of 40 block RAMs, 16 or 18 of the 40 multipliers, and about 35 to
40% of the logic area.

What is the serial setting needed to talk to the USRP2's UART (Baudrate, parity,...etc) ?

The serial is TTL level with 230400 baud, 8N1 format

Is the processing of set_scale_iq done in the host or in the FPGA?

The scaling itself is done in the DSP pipeline in the FPGA.

What is the purpose of the AeMB processor?
What is its clocking speed?

The aeMB processor is a fully synthesized CPU that forms the heart of
the USRP2 FPGA system-on-a-chip design. It performs configuration and
status reporting for all the FPGA peripherals, manages the control
channel for the GbE transport, and handles RF daughterboard operation.
It does not perform any DSP functions; these are done purely in logic
in the DSP RX and TX pipelines. It is clocked at 50 MHz, half the
system clock rate.

Where is the USRP2's MAC address stored ?

The USRP2's MAC address is stored on the USRP2's motherboard EEPROM.

What is the meaning of each LED on the USRP2?

At start-up, all 6 LEDs will flash and 2 will remain ON. The bottom one shows that the FPGA is configured. The next one up shows that the firmware is running. The others are unused.

时间: 2024-10-03 21:27:37

WiKi上关于USRP使用的一些问答(一)的相关文章

WiKi上关于USRP使用的一些问答(二)

Current Information and UHD Driver The contents of this page refer to the original RAW Ethernet implementation of the USRP2 firmware and may not accurately reflect currently used configurations. All existing users should upgrade to UHD firmware and d

[名词解释]什么是:WIKI

多数人对WIKI的兴趣部分源自维基百科(Wikipedia)的成功,维基百科是网上免费的百科全书,它依靠众多投稿人来增加和修改其条目.自从2001年创建以来,维基百科的英文版本不断扩充内容,现在已经包含48万个条目,而且已经有了许多其他语言版本. 维基百科也许是最有名的wiki,不过它不是第一个.世界上第一个wiki是一个叫做波特兰模式知识库(Portland Pattern Repository)的计算机编程网站,由沃德·坎宁安(Ward Cunningham)于1995年创建. wiki和b

Ubuntu 6.06上的Nvidia设置笔记

测试环境: 系统:Ubuntu 6.06 Desktop LTS CPU: P4 2.4C 内存:1G 显卡:艾而莎 MX440 ray@ray-desktop:~$ lspci | grep nVidia 0000:01:00.0 VGA compatible controller: nVidia Corporation NV17 [GeForce4 MX 440] (rev a3) ===================================================== 有

ruby中在终端命令行上调试grok表达式

  用 logstash 的人都知道在 http://grokdebug.herokuapp.com 上面调试 grok 正则表达式.现在问题来了:翻墙技术哪家强? 页面中用到了来自 google 域名的 js 文件,所以访问经常性失败.所以,在终端上通过命令行方式快速调试成了必需品. 其实在 logstash 还在 1.1 的年代的时候,官方 wiki 上是有一批专门教大家怎么通过 irb 交互式测试 grok 表达式的.但不知道为什么后来 wiki 这页没了-- 好在代码本身不复杂,稍微写几

如何在树莓派上安装Fedora 25

了解 Fedora 第一个官方支持树莓派的版本 2016 年 10 月,Fedora 25 Beta 发布了,随之而来的还有对 树莓派 2 和 3 的初步支持.Fedora 25 的最终"通用"版在一个月后发布,从那时起,我一直在树莓派上尝试不同的 Fedora spins. 这篇文章不仅是一篇树莓派Raspberry Pi 3 上的 Fedora 25 的点评,还集合了技巧.截图以及我对 Fedora 第一个官方支持 Pi 的这个版本的一些个人看法. 在我开始之前,需要说一下的是,为

KBQA: 基于开放域知识库上的QA系统 | 每周一起读

KBQA: Learning Question Answering over QA Corpora and Knowledge Bases 本文在开放域知识库基础上构建 QA 系统.针对目前 QA 系统常用的规则只能理解规则内固定问题模式,而基于关键字或基于同义词的方法不能完全理解问题,提出一种基于亿级知识库和百万级 QA 语料库的模板.结合问题中实体,知识库谓词,问题的表达形式等,从而得到问题的语义,并与知识库中RDF三元组映射. 论文链接: http://www.vldb.org/pvldb

Git详解之四:服务器上的Git

原文链接:http://blog.jobbole.com/25944/ 原文:<Pro Git> 服务器上的 Git 到目前为止,你应该已经学会了使用 Git 来完成日常工作.然而,如果想与他人合作,还需要一个远程的 Git 仓库.尽管技术上可以从个人的仓库里推送和拉取修改内容,但我们不鼓励这样做,因为一不留心就很容易弄混其他人的进度.另外,你也一定希望合作者们即使在 自己不开机的时候也能从仓库获取数据 - 拥有一个更稳定的公共仓库十分有用.因此,更好的合作方式是建立一个大家都可以访问的共享仓

CentOS上最佳的第三方仓库

从 Software Collections.EPEL 和 Remi 获得可靠的 CentOS 新版软件. 在 Red Hat 企业 Linux(RHEL) 上,提供那些早已老掉牙的软件已经是企业级软件厂商的传统了.这倒不是因为他们懒,而确实是用户需要.很多公司像看待家具一样看待软件:我买一张桌子,能用一辈子,软件不应该也这样吗? CentOS 作为 RHEL 的复制品有着同样的遭遇.虽然 Red Hat 还在为这些被厂商抛弃的过时软件提供支持.修补安全漏洞等,但如果你的应用依赖新版软件,你就得

根据经纬度计算地球上两点之间的距离js实现代码_javascript技巧

利用JS实现的根据经纬度计算地球上两点之间的距离 最近用到了根据经纬度计算地球表面两点间距离的公式,然后就用JS实现了一下. 计算地球表面两点间的距离大概有两种办法. 第一种是默认地球是一个光滑的球面,然后计算任意两点间的距离,这个距离叫做大圆距离(The Great Circle Distance). 公式如下: 使用JS来实现为: 复制代码 代码如下: var EARTH_RADIUS = 6378137.0; //单位M var PI = Math.PI; function getRad(