USRP BシリーズとEシリーズのおさらい

こんにちはドルフィンシステム福島です。

ドルフィンシステムでは先週からテレワークを実施して、適宜必要なときに出社して対応とさせて頂いております。

福島個人としましては午前中自宅作業、必要であれば午後出社という対応にしています。
小学生の子供が休校となり学童保育に通うのですが、お弁当を用意する手間を省くためお昼ご飯は自宅で食べて、午後から学童保育に行ってもらっています。
学校の先生は、学年末が近くなり教材・宿題その他の準備などで大変だと思います。ありがとうございます。

前置きが長くなりました。
今回のメールニュースは、USRP-RIOの10GbE FPGA実装のソースコードを紐解いていこうと思っていたのですが、手元にソースコードがないので内容を変更いたします。

USRPのBシリーズとEシリーズのおさらいをします。

USRP Bシリーズ


USRP Bシリーズの"B"は"Bus(バス)"のBで、バス接続のUSRPシリーズで現在用意されている接続バスはUSB接続です。BシリーズはUSRPの中でも比較的安価で手軽に利用できるUSRPです(Ettus ブランドで10万円~)。
バスパワーで動作するため外部の電源が不要で(B200でGPSDO搭載の場合はACアダプターが必要)、B200は送受1チャンネルですが、B210は小型にもかかわらず送受信2チャンネルずつ搭載しています。
B200とB210はNIブランドのNI USRP-2900、NI USRP-2910という名称でも販売されていて、LabVIEWでも動作します。

B200miniと"mini"がつくのはカードサイズのUSRPで、こちらもUSB接続。
小型なのでチャネル数は送受1チャネルずつでGPSも搭載不可ですが、B200よりもさらに小型です。また消費電力も少ないため、弊社のポケットRFレコーダーのようなドローン搭載型(小型で低消費電力)にも応用可能です。

ポケットRFレコーダー
http://www.dolphinsystem.jp/rfcapture-small-with-gps/

B200miniは公式にはLabVIEWからは使用できませんが、以前笹生がLabVIEWでも使用する方法を編み出したのでいずれネタとして公開されるかもしれません。

良いことづくめのBシリーズですが、いくつかの弱点があります。
RFモジュールはアナログデバイセズのAD9361というRFICが搭載されているのですが、こちらがADC 12bit, DAC 10bitです。
もう一つの弱点は、USRP-RIOのPCI Express接続のDMA転送と違い、BシリーズのUSB接続はバルク転送でFIFOも少ない(たしか4kか8kサンプル分)ので送受信にCPUパワーが必要となります。受信時もCPUがポーリングしてUSBからのデータを常に受信し続けなければ容易にデータ落ちが発生します。

製品名
チャンネル数
FPGA
FPGA
グレード
GPSDO搭載可能?
ソフトウェア
サポート
B200
NI USRP-2900
Tx : 1
Rx : 1
Spartan 6 XC6SLX75
Stadnard
LabVIEW
UHD(C++)
B210
NI USRP-2901
Tx : 2
Rx : 2
Spartan 6 XC6SLX150
Stadnard
LabVIEW
UHD(C++)
B205mini-I
Tx : 1
Rx : 1
Spartan-6 XC6SLX150
Industrial
×
UHD(C++)
B200mini-I
Tx : 1
Rx : 1
Spartan-6 XC6SLX75
Industrial
×
UHD(C++)
B200mini
Tx : 1
Rx : 1
Spartan-6 XC6SLX75
Standard
×
UHD(C++)

Eシリーズ


USRP Eシリーズの"E"は"Embedded"のEで、USRP単体で動作するPCいらずのUSRPです。
USRPに搭載されているFPGAの中にARM CPUが組み込まれていてLinuxが動作しています。

このLinux上でGNU Radioを動かせばE320上のUSRPが動作しますし、下図のようにLinuxに対応しているUSB接続のFT232Hを使用すればGPIOやI2Cなどのインターフェイスも使用可能です。
組み込みにはうってつけですね。


弱点はCPUパワーが遅いこと、CPU・FPGA間のバスが細いこと、FPGA開発環境構築が困難なことです。
ARM Cortex A9は2009年にリリースされた10年前のコアになりますので、最新のCore i7とは比較にならない遅さ(おそらく1/10程度?)なので、高度な信号処理速度は期待しない方が良いと思います。
またCPU - FPGA間のバスが細いようで10MS/sしかありません。帯域幅でいうと8MHzなので、ソフトだけで出来ることは限られてきます。

Dhrystone Benchmark Results On PCs
http://www.roylongbottom.org.uk/dhrystone%20results.htm

ではFPGAを使えばいいか?というと、これがまた困難でEシリーズのFPGA開発環境を整えるだけでも苦労の連続で現時点ではオススメできません。

製品名
チャンネル数
FPGA
FPGA
グレード
GPS対応
ソフトウェア
サポート
その他
E310
Tx : 2
Rx : 2
Zynq 7020
(
ARM Cortex A9 866 MHz)
Standard
UHD(C++)
MATLAB
-
E312
E310+バッテリー駆動
E313
E310+IP67(屋外対応)
E320
Zynq 7045
(
ARM Cortex A9 866 MHz)

E310
比リソース4倍増
UHD(C++)
筐体付き or ボードのみ
が選べる

まとめ

  • USRP Bシリーズの"B"は"Bus(バス)"のBで、バス接続のUSRPシリーズで現在用意されている接続バスはUSB接続
  • BシリーズはUSRPの中でも比較的安価で手軽に利用できるUSRP(Ettus ブランドで10万円~)
  • B200は送受1チャンネルB210は送受信2チャンネルずつ搭載し、バスパワーで動作。GPSDOの搭載も可能でLabVIEWからも使える。
  • B200miniは、送受信1チャンネルずつだがカードサイズで省電力。非公式でLabVIEWで使える。
  • USRP Eシリーズの"E"は"Embedded"のEで、USRP単体で動作するPCいらずのUSRP
  • USRPに搭載されているFPGAの中にARM CPUが組み込まれていてLinuxが動作している
  • EシリーズのCPUは遅く(Core i7の1/10?)、FPGA-CPU間のIQレートが10MS/s。
  • EシリーズのFPGA開発は困難

以上、ドルフィンシステム福島でした。

コメント