【開発者向け】組込み機器とUSBの基礎から実装までを総まとめ

組み込みUSBとは?基礎を徹底解説

USBケーブル

改めて知っておきたい「USBとは」

USBとは、「Universal Serial Bus」(ユニバーサル・シリアル・バス)の略称。コンピュータに周辺機器を接続するシリアルバスの規格の1つで、周辺機器を繋ぐインターフェースとして最も普及しているものです。1996年に「USB1.0」として初めて規格化されて以来、USB4に至るまで開発が続けられています。

USBの特徴は「機器動作のための電力をUSBポートから供給できる」ということ。キーボードやUSBメモリなどの必要電力量が少ない機器の場合、ACアダプタに繋がなくても使用できます。
周辺機器は最大127台接続可能。接続口が足りない場合はUSBハブを使うことで拡張できます。電源を入れたまま端子を抜き差しできるホットプラグ機能も付いており、扱いやすいのが特徴。その利便性の高さから、周辺機器の接続という本来の目的だけでなく、スマートフォンの充電やオーディオプレーヤーの再生といった電力供給の目的でも使用されるようになっています。

USBの転送速度は規格が進化するたびに高速化しており、USB1.0では12Mbit/sだった転送速度は、USB2.0では約40倍の480Mbpsまで高速化。さらに、USB3.0では転送速度5Gbpsと、USB2.0の約10倍(理論値)のスピードになりました。
USB3.1とUSB3.2を経て、現在はUSB4(転送速度40Gbit/s)まで開発されていますが、初期のUSB1.0と比べると転送速度は理論値で3,000倍以上速くなっており、データ通信の高速化がはっきりと分かります。

USBのコネクタにはUSB Type-A・USB Type-B・USB Type-Cの3つタイプがあります。
USB Type-Aはパソコンに接続する標準的なタイプ。USB Type-Bはプリンタやスキャナーなど、パソコン周辺機器によく使われるタイプです。USB Type-CはUSB 3.1で制定されたコネクタで、MacbookやAndoroidの接続に採用されています。
ほかにも、デジタルカメラの接続に使われるMini USB Type-Bや抜き挿しの耐久性が強いMicro USB Type-Bなどがありますが、よく使われるのはUSB Type-AからType-Cの3タイプです。

組み込み機器で多く活用される「USB2.0」の特徴

USBの中でも組み込み機器に用いられることが多いのがUSB2.0。その特徴は以下のようになっています。

  • デバイスに複雑なソフトウェアは不要
  • 通信はブロードキャスト
  • USBの通信はポーリング
  • 多くのOSで使用できる
  • USB3.0対応の機器でも転送はUSB2.0の速度

デバイス側に複雑なソフトウェアは不要ですが、その分ホスト(パソコンなどのコンピュータ)側の負担が大きくなります。
もともとはパソコンの周辺機器を繋ぐために作られた物なので、デバイスの負担を軽くし、ハードウェアがコンパクトになるような設計になっています。通信はブロードキャスト方式で、すべてのデバイスに同じデータを送って指令の順番通りに処理するため、接続デバイスが増えれば増えるほど処理速度が遅くなってしまいます。
一方、USB3.0は1対1の通信ができるユニキャストが採用されており、効率よくデータ通信できるようになっているため、転送速度だけで比較するならUSB3.0の方が優れています。

USBの通信はポーリング方式で、ホストの出した要求に対してデバイスが応答する確認作業を行っています。デバイスがデータ受信できない場合は否定応答をして、後ほどホストから同じ要求が出されるのが原則。デバイス側にホストに要求する機能がなくてもデータの送受信ができるため、コンパクトなハードウェアでも問題なく動作します。

USB2.0は、WindowsやMac-OS、Linuxなど多くのOSでサポートされています。Androidと接続すれば、高度な操作をしたりパソコンに画面をミラーリングしたりといった動作も可能です。
本来はデバイスごとに特別な処理を行う必要がありますが、OSがサポート済みの場合が多いため、簡単にデバイスを使用できることも特徴です。
注意点は、USB3.0対応の機器であってもUSB2.0の転送速度しか出せないこと。USB2.0対応のパソコンにもUSB3.0のデバイスは接続できますが、転送速度はUSB2.0の最大速度である480Mbpsしか出せません。ホストとデバイスの両方の規格が揃わない場合は規格の低い方の転送速度で通信されるため、スムーズに動作しないこともあるでしょう。

組み込み機器にUSBホストを実装するには

組み込み機器はパソコンと比べるとメモリ容量やCPU処理能力が劣るため、USBホストを実装するための負荷が大きくなります。実装するためには、メガバイト(MB)単位のメモリや動作周波数100MHz 以上の 32 ビット RISC マイコンを搭載した組み込みシステムなどのリソースが必要。また、USBハブを非対応にしたり接続できる周辺機器を制限したりして仕様を限定すると作りやすくなるでしょう。組み込み機器はもともと仕様が限定されているため、そうした仕様の限定が問題になるとは考えにくいですが、限定しすぎて機能が制限されないよう気をつけなければなりません。
USBにソフトウェアを搭載するだけならRTOSは不要。最低限、メインルーチンとサブルーチンがあれば完成できます。規模の大きなOSを採用すれば最初からUSBドライバが用意されているため、ユーザーは独自のクラスドライバや上位アプリケーションを作成することになります。
一方、軽めのOSにはUSBドライバが含まれていないことが多いので、市販のUSB用プロトコル・スタックを購入することでパソコンを介さずに動作するようになるでしょう。仕様の軽いハードウェアの場合、足回りのドライバからすべてを自社開発するパターンも考えられます。

組み込みUSBホスト向けの認証要件

昨今では組み込み機器の性能の向上により、USBホストの機能を実装できるようになりました。それに伴い、USBインプリメンターズ・フォーラム(USBの促進を目的として創設された非営利団体)では「組み込みUSBホスト向けの認証の要件」を公開しています。
パソコンのUSBホストの場合、バス速度としてLow Speed及びFull Speedの両方をサポートする必要がありました。しかし、組み込みUSBホストはどちらか片方のみのサポートでも認証を受けることができます。
なお、Hi Speedをサポートする場合はFull Speedを併せてサポートしなければなりません。転送速度はUSBの規格で定められており、Low Speed :1.5Mbps/Full Speed :12M bps/High Speed :480Mbps/Super Speed :5Gbpsのレベル別に分かれています(単位はbit/sec)。

組み込みUSBホストでは、ハブをサポートするかどうかに加え、サポートする場合のハブの最大段数を1段から5段まで選択できます。コントロール転送のサポートは絶対条件ですが、バルク・インタラプト・アイソクロナス方式は非サポートであっても認証を受けられます。
また、組み込みUSBホストはサスペンドをサポートしなくても認証を受けられます。ただし、サスペンドをサポートする場合は併せてレジュームもサポートしなければなりません。サポートする周辺機器を限定することもできますが、サポートしない周辺機器が接続された場合にはそのことがユーザーに分かるよう、何らかの方法で表示する必要があります。

25種類の組込みUSBドライバが揃う「Cente」

Centeミドルウェアパッケージシリーズ

導入がスムーズ・明朗価格・実績豊富な「Cente」とは

Cente(セント)は、組込み開発の経験と豊富な知識を持つエンジニアが、実際の機器やシステムを開発する中で培ったスキルを活かして作り上げた組込み開発ブランド。組込み開発に20年以上関わってきた経験と1000プロジェクト・3000ライセンシーの実績を活かし、あらゆるニーズにお応えしています。
ハードウェアからミドルウェア、アプリケーションだけでなく、システム開発のコンサルティングや技術サポートまで、組込み開発に必要なあらゆる技術を提供。すべての商品はソースコードで提供するためブラックボックスは一切無く、完成後の製品イメージが抱きやすくなっています。
ロイヤリティ不要で、半年間の無償サポート付き。プライスをすべて開示しているため、安心してご購入いただけます。

「Cente」組込みUSBドライバシリーズ一覧

Centeの組込みUSBドライバ全25種類をご紹介します。
※価格はすべて税抜

Cente USB2.0 Host MassStorage for M66596
USBホスト機能が組込み機器上で実現可能となるドライバ。市販のUSBメモリを使ってUSBファイルシステムを実現することも可能です。(別途「CenteFileSystem」が必要)
価格:160万円/1プロジェクト限定ライセンス
Cente USB2.0 Host MassStorage for EPSON
for M66596と同様で、対応コントローラが異なります。(別途「CenteFileSystem」が必要)
価格:160万円/1プロジェクト限定ライセンス
Cente USB2.0 Host MassStorage for STM32
USBホスト機能が組込み機器上で実現できるドライバ。マスストレージクラスに加え、STM32内蔵USBコントローラ用のホストコントローラドライバも含まれています。(別途「CenteFileSystem」が必要)
価格:160万円/1プロジェクト限定ライセンス
Cente USB2.0 Host MassStorage for SuperH
USBホスト機能が組込み機器上で実現可能となるドライバ。市販のUSBメモリを使ってUSBファイルシステムを実現することも可能です。(別途「CenteFileSystem」が必要)
価格:160万円/1プロジェクト限定ライセンス
Cente USB2.0 Host MassStorage for μPD720150
USBホスト機能が組込み機器上で実現できるドライバです。(別途「CenteFileSystem」が必要)
価格:160万円/1プロジェクト限定ライセンス
Cente USB2.0 Device MassStorage for M66596
組込み機器上で「USBデバイス機能」を実現可能となるドライバ。USBホスト機器(PC等)からUSBでの組込み機器内メモリアクセスも可能です。
価格:160万円/1プロジェクト限定ライセンス
Cente USB2.0 Device MassStorage for μPD720150
for M6659と同様で、対応コントローラが異なります。
価格:160万円/1プロジェクト限定ライセンス
Cente USB1.1 Device MassStorage for V850
for M6659と同様で、対応コントローラが異なります。
価格:160万円/1プロジェクト限定ライセンス
Cente USB1.1 Device Mass Storage for Super-H/H8
for M6659と同様で、対応コントローラが異なります。
価格:160万円/1プロジェクト限定ライセンス
Cente USB2.0 Host COM Class for M66596
組込み機器上で「USBホスト機能」を構成。USBインターフェース上で「非同期シリアル通信機能(RS-232C相当)」を実現できます。
価格:160万円/1プロジェクト限定ライセンス
Cente USB2.0 Host COM Class for STM32
for M6659と同様で、対応コントローラが異なります。
価格:160万円/1プロジェクト限定ライセンス
Cente USB2.0 Device COM Class for STM32
組込み機器上で「USBホスト機能」を構成。本製品はCOMクラスドライバに加えて、STM32内蔵USBコントローラ用のデバイスコントローラドライバも含まれています。
価格:160万円/1プロジェクト限定ライセンス
Cente USB2.0 Host COM Class for SuperH
組込み機器上で「USBホスト機能」を構成。USBインターフェース上で「非同期シリアル通信機能(RS-232C相当)」を実現可能です。
価格:160万円/1プロジェクト限定ライセンス
Cente USB2.0 Device COM Class for S2S65A00 EPSON
組込み機器上で「USBデバイス機能」を実現可能。USBホスト機器(PC等)からRS232Cシリアルレベルでの組込み機器制御もできます。
価格:160万円/1プロジェクト限定ライセンス
Cente USB1.1 Device COM Class for Super-H/H8
for S2S65A00 EPSONと同様で、対応コントローラが異なります。
Cente USB1.1 Device COM Class for V850
組込み機器上で「USBデバイス機能」を実現可能。USBホスト機器(PC等)からRS232Cシリアルレベルでの組込み機器制御もできます。
価格:160万円/1プロジェクト限定ライセンス
Cente USB Host CDC-ECM Class
組込み機器上で「USBホスト機能」を実現可能。USBケーブルの挿抜検出イベントに対応しています。
価格:120万円/1プロジェクト限定ライセンス
Cente USB Host RNDIS
組込み機器上で「USBホスト機能」を実現可能。USBケーブルの挿抜検出イベントに対応しています。
価格:120万円/1プロジェクト限定ライセンス
Cente USB2.0 Device Ethernet Class for M66596
組込み機器上で「USBデバイス機能」を実現可能。USBインターフェース上でEthernet通信もできます。
価格:160万円/1プロジェクト限定ライセンス
Cente USB1.1 Device Ethernet Class for V850
組込み機器上で「USBデバイス機能」を実現可能。USBインターフェース上でEthernet通信もできます。「for M66596」とは対応コントローラが異なります。
価格:160万円/1プロジェクト限定ライセンス
Cente USB Host Printer Class
組込み機器上で「USBホスト機能」を実現可能。USBケーブルの挿抜検出イベントにも対応しています。
価格:120万円/1プロジェクト限定ライセンス
Cente USB Device Printer Class
組込み機器上で「USBデバイス機能」を実現可能。PCのUSBインターフェースからプリンタアプリケーションの操作もできます。
価格:120万円/1プロジェクト限定ライセンス
Cente USB Device Video Class
組込み機器上で「USBデバイス機能」を実現可能なビデオクラスドライバ。USBケーブルの挿抜検出イベントにも対応しています。
価格:160万円/1プロジェクト限定ライセンス
Cente USB Host HID Class for M66596
組込み機器上で「USBホスト機能」を実現可能なHIDクラスドライバです。
価格:160万円/1プロジェクト限定ライセンス
Cente USB Device HID Class
組込み機器上で「USBデバイス機能」を実現可能なHIDクラスドライバです。
価格:160万円/1プロジェクト限定ライセンス

まずは評価をして検討したいという方のために、全製品198,000円/90日間でミドルウェア評価ライセンスをご用意しています。ライセンス期間中でも通常の契約時と同等のサポートが受けられますので、安心してお試しいただけます。

製品の詳細については、遠慮なくお問い合わせください。


サポート情報