UHD - USRP2 and N2x0 Series Device Manual

UHD - USRP2 and N2x0 Series Device Manual

Comparative features list

Hardware Capabilities:

  • 1 transceiver card slot
  • External PPS reference input
  • External 10 MHz reference input
  • MIMO cable shared reference
  • Fixed 100 MHz clock rate
  • Internal GPSDO option (N2x0 only)

FPGA Capabilities:

  • 2 RX DDC chains in FPGA
  • 1 TX DUC chain in FPGA
  • Timed commands in FPGA (N2x0 only)
  • Timed sampling in FPGA
  • 16-bit and 8-bit sample modes (sc8 and sc16)
    • Up to 25 MHz of RF BW with 16-bit samples
    • Up to 50 MHz of RF BW with 8-bit samples

Load the Images onto the SD card (USRP2 only)

Warning! Use usrp2_card_burner with caution. If you specify the wrong device node, you could overwrite your hard drive. Make sure that --dev= specifies
the SD card.

Warning! It is possible to use 3rd party SD cards with the USRP2. However, certain types of SD cards will not interface with the CPLD:

  • Cards can be SDHC, which is not a supported interface.
  • Cards can have unexpected timing characteristics.

For these reasons, we recommend that you use the SD card that was supplied with the USRP2.

Use the card burner tool (UNIX)

sudo <install-path>/lib/uhd/utils/usrp2_card_burner_gui.py

-- OR --

cd <install-path>/lib/uhd/utils
sudo ./usrp2_card_burner.py --dev=/dev/sd<XXX> --fpga=<path_to_fpga_image>
sudo ./usrp2_card_burner.py --dev=/dev/sd<XXX> --fw=<path_to_firmware_image>

Use the --list option to get a list of possible raw devices. The list result will filter out disk partitions and devices too large to be the sd card. The list option has been implemented on Linux, Mac OS X, and Windows.

Use the card burner tool (Windows)

<path_to_python.exe> <install-path>/lib/uhd/utils/usrp2_card_burner_gui.py

Load the Images onto the On-board Flash (USRP-N Series only)

The USRP-N Series can be reprogrammed over the network to update or change the firmware and FPGA images. When updating images, always burn both the FPGA and firmware images before power cycling. This ensures that when the device reboots, it has a compatible
set of images to boot into.

Use the net burner tool

Use default images:
usrp_n2xx_simple_net_burner --addr=<IP address>

Use custom-built images:
usrp_n2xx_simple_net_burner --addr=<IP address> --fw=<firmware path> --fpga=<FPGA path>

Note: Different hardware revisions require different FPGA images. Determine the revision number from the sticker on the rear of the chassis. Use this number to select the correct FPGA image for your device.

For users who would prefer a graphical utility, a Python-based alternative exists.

Use the graphical net burner tool (Linux)

<install-path>/lib/uhd/utils/usrp_n2xx_net_burner_gui.py

Use the graphical net burner tool (Windows)

<path_to_python.exe> <install-path>/lib/uhd/utils/usrp_n2xx_net_burner_gui.py

Device recovery and bricking

Its possible to put the device into an unusable state by loading bad images. Fortunately, the USRP-N Series can be booted into a safe (read-only) image. Once booted into the safe image, the user can once again load images onto the device.

The safe-mode button is a pushbutton switch (S2) located inside the enclosure. To boot into the safe image, hold-down the safe-mode button while power-cycling the device. Continue to hold-down the button
until the front-panel LEDs blink and remain solid.

When in safe-mode, the USRP-N device will always have the IP address 192.168.10.2.

Setup Networking

The USRP2 only supports Gigabit Ethernet and will not work with a 10/100 Mbps interface. However, a 10/100 Mbps interface can be connected indirectly to a USRP2 through a Gigabit Ethernet switch.

Setup the host interface

The USRP2 communicates at the IP/UDP layer over the gigabit ethernet. The default IP address of the USRP2 is 192.168.10.2. You will need to configure the host's Ethernet interface with a static IP address to enable
communication. An address of 192.168.10.1 and a subnet mask of 255.255.255.0 is recommended.

On a Linux system, you can set a static IP address very easily by using the 'ifconfig' command:

sudo ifconfig <interface> 192.168.10.1

Note that <interface> is usually something like eth0. You can discover the names of the network interfaces in your computer by running ifconfig without
any parameters:

ifconfig -a

Note: When using UHD software, if an IP address for the USRP2 is not specified, the software will use UDP broadcast packets to locate the USRP2. On some systems, the firewall will block UDP broadcast packets. It is
recommended that you change or disable your firewall settings.

Multiple devices per host

For maximum throughput, one Ethernet interface per USRP2 is recommended, although multiple devices may be connected via a Gigabit Ethernet switch. In any case, each Ethernet interface should have its own subnet, and the corresponding USRP2 device should be
assigned an address in that subnet. Example:

Configuration for USRP2 device 0:

  • Ethernet interface IPv4 address: 192.168.10.1
  • Ethernet interface subnet mask: 255.255.255.0
  • USRP2 device IPv4 address: 192.168.10.2

Configuration for USRP2 device 1:

  • Ethernet interface IPv4 address: 192.168.20.1
  • Ethernet interface subnet mask: 255.255.255.0
  • USRP2 device IPv4 address: 192.168.20.2

Change the USRP2's IP address

You may need to change the USRP2's IP address for several reasons:

  • to satisfy your particular network configuration
  • to use multiple USRP2s on the same host computer
  • to set a known IP address into USRP2 (in case you forgot)

Method 1: To change the USRP2's IP address, you must know the current address of the USRP2, and the network must be setup properly as described above. Run the following commands:

cd <install-path>/lib/uhd/utils
./usrp_burn_mb_eeprom --args=<optional device args> --key=ip-addr --val=192.168.10.3

Method 2 (Linux Only): This method assumes that you do not know the IP address of your USRP2. It uses raw Ethernet packets to bypass the IP/UDP layer to communicate with the USRP2. Run the following commands:

cd <install-path>/lib/uhd/utils
sudo ./usrp2_recovery.py --ifc=eth0 --new-ip=192.168.10.3

Communication Problems

When setting up a development machine for the first time, you may have various difficulties communicating with the USRP device. The following tips are designed to help narrow down and diagnose the problem.

RuntimeError: no control response

This is a common error that occurs when you have set the subnet of your network interface to a different subnet than the network interface of the USRP device. For example, if your network interface is set to 192.168.20.1,
and the USRP device is 192.168.10.2 (note the difference in the third numbers of the IP addresses), you will likely see a 'no control response' error message.

Fixing this is simple - just set the your host PC's IP address to the same subnet as that of your USRP device. Instructions for setting your IP address are in the previous section of this documentation.

Firewall issues

When the IP address is not specified, the device discovery broadcasts UDP packets from each ethernet interface. Many firewalls will block the replies to these broadcast packets. If disabling your system's firewall or specifying the IP address yields a discovered
device, then your firewall may be blocking replies to UDP broadcast packets. If this is the case, we recommend that you disable the firewall or create a rule to allow all incoming packets with UDP source port 49152.

Ping the device

The USRP device will reply to ICMP echo requests. A successful ping response means that the device has booted properly and that it is using the expected IP address.

ping 192.168.10.2

Monitor the serial output

Read the serial port to get debug verbose output from the embedded microcontroller. The microcontroller prints useful information about IP addresses, MAC addresses, control packets, fast-path settings, and bootloading. Use a standard USB to 3.3v-level serial
converter at 230400 baud. Connect GND to the converter ground, and connect TXD to the converter receive. The RXD pin can be left unconnected
as this is only a one-way communication.

  • USRP2: Serial port located on the rear edge
  • N210: Serial port located on the left side

Monitor the host network traffic

Use Wireshark to monitor packets sent to and received from the device.

Addressing the Device

Single device configuration

In a single-device configuration, the USRP device must have a unique IPv4 address on the host computer. The USRP can be identified through its IPv4 address, resolvable hostname, or by other means. See the application notes on device
identification
. Please note that this addressing scheme should also be used with the multi_usrp interface.

Example device address string representation for a USRP2 with IPv4 address 192.168.10.2:

addr=192.168.10.2

Multiple device configuration

In a multi-device configuration, each USRP device must have a unique IPv4 address on the host computer. The device address parameter keys must be suffixed with the device index. Each parameter key should be of the format <key><index>. Use this addressing scheme
with the multi_usrp interface.

  • The order in which devices are indexed corresponds to the indexing of the transmit and receive channels.
  • The key indexing provides the same granularity of device identification as in the single device case.

Example device address string representation for 2 USRP2s with IPv4 addresses 192.168.10.2 and 192.168.20.2:

addr0=192.168.10.2, addr1=192.168.20.2

Using the MIMO Cable

The MIMO cable allows two USRP devices to share reference clocks, time synchronization, and the Ethernet interface. One of the devices will sync its clock and time references to the MIMO cable. This device will be referred to as the slave, and the other device,
the master.

  • The slave device acquires the clock and time references from the master device.
  • The master and slave may be used individually or in a multi-device configuration.
  • External clocking is optional and should only be supplied to the master device.

Shared Ethernet mode

In shared Ethernet mode, only one device in the configuration can be attached to the Ethernet.

  • Clock reference, time reference, and data are communicated over the MIMO cable.
  • Master and slave must have different IPv4 addresses in the same subnet.

Dual Ethernet mode

In dual Ethernet mode, both devices in the configuration must be attached to the Ethernet.

  • Only clock reference and time reference are communicated over the MIMO cable.
  • The master and slave must have different IPv4 addresses in different subnets.

Configuring the slave

In order for the slave to synchronize to the master over MIMO cable, the following clock configuration must be set on the slave device:

usrp->set_time_source("mimo", slave_index);
usrp->set_clock_source("mimo", slave_index);

Alternative stream destination

It is possible to program the USRP device to send RX packets to an alternative IP/UDP destination.

Set the subnet and gateway

To use an alternative streaming destination, the device needs to be able to determine if the destination address is within its subnet, and ARP appropriately. Therefore, the user should ensure that subnet and gateway addresses have been programmed into the device's
EEPROM.

Run the following commands:

cd <install-path>/lib/uhd/utils
./usrp_burn_mb_eeprom --args=<optional device args> --key=subnet --val=255.255.255.0
./usrp_burn_mb_eeprom --args=<optional device args> --key=gateway --val=192.168.10.1

Create a receive streamer

Set the stream args "addr" and "port" values to the alternative destination. Packets will be sent to this destination when the user issues a stream command.

//create a receive streamer, host type does not matter
uhd::stream_args_t stream_args("fc32");

//resolvable address and port for a remote udp socket
stream_args.args["addr"] = "192.168.10.42";
stream_args.args["port"] = "12345";

//create the streamer
uhd::rx_streamer::sptr rx_stream = usrp->get_rx_stream(stream_args);

//issue stream command
uhd::stream_cmd_t stream_cmd(uhd::stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_DONE);
stream_cmd.num_samps = total_num_samps;
stream_cmd.stream_now = true;
usrp->issue_stream_cmd(stream_cmd);

Note: Calling recv() on this streamer object should yield a timeout.

Hardware Setup Notes

Front panel LEDs

The LEDs on the front panel can be useful in debugging hardware and software issues. The LEDs reveal the following about the state of the device:

  • LED A: transmitting
  • LED B: MIMO cable link
  • LED C: receiving
  • LED D: firmware loaded
  • LED E: reference lock
  • LED F: CPLD loaded

Ref Clock - 10 MHz

Using an external 10 MHz reference clock, a square wave will offer the best phase noise performance, but a sinusoid is acceptable. The reference clock requires the following power level:

  • USRP2 5 to 15 dBm
  • N2XX 0 to 15 dBm

PPS - Pulse Per Second

Using a PPS signal for timestamp synchronization requires a square wave signal with the following amplitude:

  • USRP2 5Vpp
  • N2XX 3.3 to 5Vpp

Test the PPS input with the following app:

  • <args> are device address arguments (optional if only one USRP device is on your machine)
cd <install-path>/lib/uhd/examples
./test_pps_input --args=<args>

Internal GPSDO

Please see the Internal GPSDO Application Notes for information
on configuring and using the internal GPSDO.

Miscellaneous

Available Sensors

The following sensors are available for the USRP2/N-Series motherboards; they can be queried through the API.

  • mimo_locked - clock reference locked over the MIMO cable
  • ref_locked - clock reference locked (internal/external)
  • other sensors are added when the GPSDO is enabled

Multiple RX channels

There are two complete DDC chains in the FPGA. In the single channel case, only one chain is ever used. To receive from both channels, the user must set the RX subdevice specification. This hardware has only one daughterboard
slot, which has been aptly named slot A.

In the following example, a TVRX2 is installed. Channel 0 is sourced from subdevice RX1, and channel 1 is sourced from subdevice RX2 (RX1 and RX2 are
the antenna ports on the TVRX2 daughterboard):

usrp->set_rx_subdev_spec("A:RX1 A:RX2");

原文:http://files.ettus.com/uhd_docs/manual/html/usrp2.html#setup-networking

时间: 2024-07-28 23:32:14

UHD - USRP2 and N2x0 Series Device Manual的相关文章

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

使用OpenBTS基站测试物联网模块安全性

0×00 引子 近年来,随着云计算.物联网技术的快速发展,物联网的理念和相关技术产品已经广泛渗透到社会经济民生的各个领域,越来越多的穿戴设备.家用电器通过蓝牙.Wi-Fi.Li-Fi.z-wave.LoRa等技术接入互联网,成为联网的终端设备. 但是由于这些技术普遍为短距离无线通信技术,通常被设计用于室内和短距离使用,在室外尤其是非视距下性能表现非常差,而作为现有成熟的GSM(Global System for Mobile Communication)技术,因其网络在全国范围内实现了联网和漫游

MySQL Crash Errcode: 28 - No space left on device

  一台MySQL服务器突然Crash了,检查进程 ps -ef | grep -i mysql 发现mysqld进程已经没有了, 检查错误日志时发现MySQL确实Crash了.具体如下所示:     注意日志中的时间: 09:49:52 UTC是UTC时间(协调世界时间) , 加上8小时就是东八区的时间17:45:52,日志前段是UTC时间,后面又是系统时间.这个需要注意!   09:49:52 UTC - mysqld got signal 11 ; This could be becaus

Linux Buffer I/O error on device dm-4, logical block

Linux服务器日志(Oracle Linux Server release 5.7)里面出现了一些"Buffer I/O error on device dm-4, logical block 0"之类的错误,如下所示: Jul 3 02:33:24 localhost kernel: Buffer I/O error on device dm-4, logical block 0 Jul 3 02:33:24 localhost kernel: Buffer I/O error o

Device Driver Development for Beginners - Reloaded

Hi, This is just a little starter for people interested in starting Kernel-Mode Development By following an good thread on UIC forum, opened by a beginner that wanted to know how to start with Device Driver Development, I remembered that long time ag

umount.nfs: /mydata: device is busy解决办法

umount.nfs: /mydata: device is busy [root@localhost /]# umount /data/ umount.nfs: /mydata: device is busy 查看占用进程号: [root@localhost /]# fuser -m -v /data/                      用户     进程号 权限   命令 /mydata/:              root       41331                 

Bringing up interface eth0: Device eth0 does not seem to be present, delaying initialization

执行 service network restart  出现了网卡无法启动,说找到不到 Bringing up interface eth0: Device eth0 does not seem to be present, delaying initialization 解决办法: 1> 修改/etc/udev/rules.d/70-persistent-net.rules文件,删除或注释掉第一个网卡记录,并将第二个的NAME="eth1"改为NAME="eth0&q

asterisk-请问 还有其他切换到device and user的方法么?

问题描述 请问 还有其他切换到device and user的方法么? 我想实现你的第一种情况,是不是也需要在device and user模式下才能实现? 但是按照你说的这种办法没发切换到device and user mode. 难道版本更新没有这个模式了? 我用的是Asterisk (Ver. 11.13.1) + freepbx

device

译自:The orientation media query中文:PPK:orientation媒体查询原作者:PPK[Peter Paul Koch]请尊重版权,转载请注明来源,多谢! 最近Jason Grigby关于orientation媒体查询的概述在博客圈和twitter中疯传,那确实很棒.媒体查询(meidia query)在不久的将来将变得非常的重要--当我们不得不制作在从300px到1280px甚至更多的所有设备分辨率中可用的网站时. 然而,我还是想要指出的小瑕疵,以使你完全理解什