こちらの記事について、内容・翻訳・視点・長さなど、皆様のご意見をお送りください。今後の記事製作の参考にしたいと思います。
Thank you! Your feedback has been received.
There was a problem submitting your feedback, please try again later.
こちらの記事の感想をお聞かせください。
柔軟性のあるソフトウェア無線(SDR)プラットフォームの設計と初期ビルド。
今回、我々はアールエスコンポーネンツとIntelからの相談の元、IntelのソリューションがIoT端末開発にどれだけ有用かをレビューすることになりました。この両者が提供するソリューションとなると、レビュー候補の製品数は無数にありますが、やはりその中でもIntel EdisonとIntel Galileoの2つのボードは有名でしょう。両社ともIoTアプリケーション開発のコンセプトで様々なところで紹介されてきました。
しかし、今回拘りたい点としては、Bluetooth Low EnergyやIEEE802.15.4などをベースにしたパーソナルエリアネットワーク(PAN)や低消費電力のWANやセルラーなどのネットワークが、IoTの未来にどれだけ欠かせないものであるかという点でした。ネットワーク構築型のデバイスには通信機能が必要です。また、大規模なIoTの導入となれば、この分野で長く活用されてきたシステムとの連携も視野に入れなければなりません。
その点、従来フィルタやミキサなどをハードウェアで実装していた無線通信システムのソフトウェア化、いわゆる「ソフトウェア無線」は、技術革新に寄与しつつ、より高度なシステムの構築を視野にいれる事ができます。さらに DSP (デジタル信号処理)アプリケーションは特に、計算負荷の極めて高いアルゴリズムと、極めて高いデータレートを要する苛酷な負担を強いられます。
以上のことを踏まえ、今回はハイパフォーマンスなシングルボード Intel NUC Core i5 を独立型SDRプラットフォームとして活用した、ベンチトップ通信テスト機としてまとめあげるという方向性が見えてきました。このシステムでLinuxとオープンソースSDRフレームワークベースのアプリケーションを動作させ、無線通信の広範なテスト、測定、試作への展開を模索してみたいとおもいます。
ハードウェアプラットフォーム
NUC Core i5は、OpenCL経由でサポートされるストリーミングSIMD拡張命令(SSE)対応の2.9GHzデュアルコアi5-5300Uプロセッサを搭載した、驚くほどコンパクトなシングルボードコンピュータで、要求が厳しいDSPアプリケーションに最適です。高スループットの周辺機器を接続するためのUSB 3.0ポート4基と、統合グラフィックス、ギガビットイーサネットなども備えています。
NUCの優れた特徴の1つは、M.2 SSDコネクタを備えていることです。つまり、高性能ストレージを緊密に統合でき、余分なスペースをほぼまったく要しないのです。我々はここに120GB Intel SSD 535シリーズモジュールを使用して、十分な容量を確保しました。
高性能の処理システムとストレージは決まりましたが、次にRFとデジタル領域の橋渡しをする必要があります。そのために選択したのがbladeRF x40 SDRボードです。USB 3.0ホストインターフェイスを備え、論理素子数40,000のAltera Cyclone IV FPGAを搭載しています。これはRFトランシーバとの通信を担うほか、デジタルアップ/ダウンコンバージョンなど、計算負荷の高い特定の処理を、アンテナに近いハードウェア側で行います。
bladeRFに組み込むトランシーバ(金属のスクリーニングカバーの下)には、Lime MicrosystemsのLMS6002DフィールドプログラマブルRF (FPRF)を選びました。これは、デジタルコンバータ、ミキサ、フィルタ、アンプなどをSPI経由でプログラミングされる1つのチップに統合したシングルチップトランシーバで、Altera FPGAとシームレスに統合するデジタルベースバンドインターフェイスを備えています。この2つのデバイスは相互補完性が大変良く、我々の無線システムのヘッドエンドに多量の電力と柔軟性をもたらします。LMS6002Dトランシーバは12ビット分解能で、300MHz~3.8GHzの帯域周波数をカバーします。プログラマブル帯域幅は1.5~28MHzです。
SDRになじみのない方はこの部分で少々戸惑ってしまうかもしれませんが、本質的には、これによってトランシーバが無線周波数スペクトルのかなりの部分を扱えるようになります。また、FPGAで一部の処理を実行でき、その結果はUSB 3.0経由でホストコンピュータに送られます。FPGAのローディング、FPRFのプログラミング、実際のアプリケーションの実行は、Intel NUCのレイヤ1 (物理インターフェイス)より上で請け負います。IEEE802.15.4、Bluetooth、GSM、LTEをはじめとするほぼすべてのワイヤレスシステムを利用でき、その定義はソフトウェア側で行います。
エンクロージャと補助部品
フォームファクタにはプロ仕様のテスト機器を使用したかったため、アールエスコンポーネンツのカタログからプレミアム機器ケースのタカチMS177-26-28Gを選びました。上の写真は、同僚のStuartが、DesignSpark Mechanicalを使い、適切なカットアウトを備えるフロントパネルとリアパネルをモデリングする前準備として、部品の寸法を測っているところです。
カスタムフロントパネル・リアパネルをまずMDFでレーザーカットし、かみ合うかを確認してから、2mm厚のアルミ板をCNCプラズマカッターで切り出して作りました。
リアパネルの内側には24V 80W のスイッチモード電源(SMPS)を取り付け、20mmのヒューズと4ピンのMolex Micro-Fitコネクタ経由でNUCに電力を供給します。電源からスイッチモード電源へは、同じくリアパネルに取りつけたヒューズとスイッチ付きのIECソケットを介して電力が送られます。側にはebm-papstの24VDC 60mm ファンを装着しています。
この時点で注意していただきたい点は、USBやディスプレイなどのケーブルをカスタムで用意せず、汎用部品を使おうと決めていたことです。しかし次回の投稿では、必要な空間容積を減らし、eDPのサポートなど、NUCの追加機能を最大限に利用するために行ったさまざまな試みについてご報告できると思います。
フロントパネルに取り付けるディスプレイには、市販のサードパーティ製HDMIタッチパネルスクリーン(解像度1024 x 600)を選びました。ディスプレイの下にはUSB 2.0ポート2基と電源用プッシュボタン、側面にはパネルマウントのSMAコネクタ4つと同軸ピグテールを取り付けています。
NUCはオプションのシャーシプレートに装着されています。六角スペーサでこれを固定し、その上にレーザーカットしたアクリル板を置いてbladeRFボードを固定しています。ご覧のとおり空きスペースがかなりあり、エンクロージャのサイズはフロントパネルとリアパネルに取り付けた部品のサイズによりほぼ決定づけられています。ケーブルが必要以上に長いため、余った部分が空きスペースの大部分を占めていますが、今回はこれで良しとします。
選択したソフトウェア
Linux上でデバイスを多数サポートし、安定性に優れ、最新のパッケージが出ていてインストールが容易なものを探すと、ほぼ間違いなくUbuntu一択になります。そこで、64ビットビルドのリリース14.04をインストールしました。また、OpenCLアクセラレーテッドDSPコードに対応するCore i5-5300UのSIMD拡張命令を利用したいと考え、Intel OpenCL SDKをインストールしました。これはRPMベースのLinuxシステム向けのパッケージですが、Alienを使うことでパッケージ形式をDEBベースのシステム向けに簡単に変換できます。
GNU Radio SDRツールキットを、bladeRFドライバ及びこれをGNU Radioに統合するソフトウェアとともに、高性能なPyBOMBSインストール管理システムを使用してインストールしました。また、ハードウェア性能を検証するため、高速化FFT・ディスプレイ部品対応のOpenCLカーネルを使用するGNU Radioベースのリアルタイムスペクトル分析(RTSA)アプリケーション、gr-fosphorもインストールしています。ディスプレイ出力にOpenGLグラフィックスも必要ですが、それはNUCに搭載されています。
基本テスト
gr-fosphorアプリケーションでかなりの高サンプルレートとRF帯域幅を使って行ったNUCのテスト結果には、何の問題もありませんでした。下のビデオでは、トランシーバのフロントエンドを最初は2.4GHz、そこから868MHzにチューニングして、スペクトルの動きを視覚的に確認している様子を見ることができます。
この時点ですでに、サイトサーベイ、ワイヤレスセンサノードやベースステーションのテストなど、IoTアプリケーションで真価を発揮するツールが揃いました。もし既製品を買っていたら、このプロジェクトの材料費の何倍ものコストがかかっていたでしょう。リアルタイムの動きを確認できるだけでなく、SSDにキャプチャしたデータを記録して、ギガビットイーサネット経由で転送したり、又は外付けUSB 3.0ストレージデバイスに転送したりすることができます。リアパネルから外付けモニタを接続できることにも注目してください。
ただしこれは、強力な64ビットプロセッサとSIMD拡張命令を組み合わせて、FPGAとFPRF、SDRフレームワークを加えることで可能になることついてのほんの一例にすぎません。
次のステップ
我々はこの数週間のうちに、設計の一部に改良を加える予定です。次回の投稿ではその点と追加アプリケーションについて報告し、その後でCore i5 NUCの能力を最大限に活用するための改良プランについて考えてみたいと思います。どうぞお楽しみに。