1k likes | 1.38k Views
USB2.0 対応システム設計 とその ノウハウ. USB2.0 の特長をフル活用して、 産業分野への応用を助長する. 有限会社プライムシステムズ. プライムシステムズ 紹介. 1998.12 設立 概要: カスタム設計サービス 自社商品開発 USBとFPGAを核とする製品開発 (USB、FPGA、ASICに精通したエンジニア集団) 製品開発の特長 USBインタフェースとFPGAを融合した、 「システム開発ボード」の展開. Smart-USB ロゴ. 商標登録済み USB 1.1 Smart-USB USB2.0 Smart-USB Plus
E N D
USB2.0対応システム設計とそのノウハウ USB2.0の特長をフル活用して、 産業分野への応用を助長する 有限会社プライムシステムズ
プライムシステムズ 紹介 • 1998.12設立 • 概要: • カスタム設計サービス • 自社商品開発 • USBとFPGAを核とする製品開発 (USB、FPGA、ASICに精通したエンジニア集団) • 製品開発の特長 • USBインタフェースとFPGAを融合した、「システム開発ボード」の展開
Smart-USBロゴ • 商標登録済み • USB1.1 • Smart-USB • USB2.0 • Smart-USB Plus • Smart-USBブランドの内容 • Windows2000/XPに対応したデバイスドライバの供給 • USB1.1/2.0に対応したUSBファームウエアの供給 • 専用APIの提供
セミナー項目(1) • USB2.0概要 • USBの概要 • 物理仕様 • USB開発ツールの概要 • USBコントロールICの概要
USB2.0対応システムボード(AX-USBII)の概要 システム構成 USBコントローラ概要 FPGA概要(一般知識) USB2.0システム設計のガイドライン アプリケーション事例 画像、組込、データ収集システム FPGA回路設計の概要(USBコントローラとのインタフェース) インタフェース概要 FPGA開発環境について USBアプリケーションソフトウエアの概要 ソフトウエア構成概要 ボード制御方式 専用APIの使用方法 専用APIの概要 使用方法 ボード制御のデモンストレーション AX-USBIIボードを利用したデモ セミナー項目(2)
USBの概要 • USBが支持されている理由 • 使いやすさ • Plug&Play • 活線挿抜が可能 • ハードウエアの自動検索機能 • レガシーインタフェースより高速 • ノートPCには、USBポートしかない機種も… • デスクトップPC、ノートPC環境を選ばない
USB規格 • 1996年:USB1.0規格リリース • 1998年:USB1.1規格リリース • FullSpeed(12Mbps)、LowSpeed(1.5Mbps) • 2000年:USB2.0規格リリース • HighSpeed(480Mbps)が加わる
USB2.0で変わるUSB • 高速データ転送 • 480Mbps • USB1.1FullSpeed(12Mbps)の40倍 • 既存USB機器との互換性 • USB2.0ポートでUSB1.1機器を利用可能 • 同時に複数の広帯域デバイスを管理
USBトポロジー • 1システムにつき1台のホストPCが存在 • ホストPCがすべてのデータ転送をイニシエイト • 最大127台までのハブ及びターゲット機器を接続可能 ターゲット機器 ホストPC
USBシグナリング(1) • 3種類のデバイス • Low Speed • 1.5Mbps、ケーブル長3m以内、シールドなしでも可能 • 適用:USBマウス、キーボード、ゲーム機器など • Full Speed • 12Mbps、ケーブル長5m以内、シールドあり • 適用:プリンタ、スキャナ、オーディオなど • Hish Speed(USB2.0で追加された) • 480Mbps 、ケーブル長5m以内、シールドあり • 適用:DVDドライブ、HDD、ビデオ会議など
USBシグナリング(2) • 物理層 • 4線インタフェース • 2線の差動信号 : D+/D- (3.3V、400mV) • GNDと電源(ターゲット機器へのケーブル給電) D+ D- リセット
3.0~3.6V 1.5KΩ 5V 5V FullSpeed HostPC D+ D+ D- D- GND GND 15KΩ 3.0~3.6V GND 1.5KΩ LowSpeed HostPC D+ D+ D- D- 15KΩ GND USBシグナリング(3) USB1.1の場合
USBシグナリング(4) • USB2.0の場合 • ホストとターゲット・デバイスが接続された時点は、FullSpeed • ホストとデバイス間で、High Speedが可能かどうか通信して、Full SpeedからHigh Speedに切り替える • ChirpJ:D+ラインだけ駆動 • ChirpK:D-ラインだけ駆動 IC内でプルアップ抵抗のOn/Offを行う PullUp抵抗OFF HighSpeed FullSpeed D+ ChirpJ ChirpJ ChirpJ ChirpK ChirpK ChirpK ChirpK ChirpK D- ChirpJ リセット期間
フレームとマイクロフレーム構成 1ms 1ms Fullspeed ・・・・・・ High Speed 125us単位のマイクロフレーム 1つのフレームに数個のトランザクションが含まれる
USB2.0プロトコル(1) • 通常のトランザクションは3種類 • トークン・パケット(Token)、データ・パケット(Data)、 ハンドシェイク・パケット(Handshake) • パケットはエンコードされたビット・フィールド持つ • USBデータ:NRZI変調 (ビットスタッフ) • バス・トランザクション:125usフレーム • 1フレーム(1ms)に8マイクロフレームで構成される • 各フレームはSOF(Start Of Frame)パケットから始まる • ホストは1フレーム内で複数のデバイスにアクセス可能
USB2.0パケット構成 トランザクション DATA1 Payload Data ADDR ENDP CRC5 CRC16 ACK OUT TokenPacket DataPacket HandShake Packet OUT token ホストがターゲットのエンドポイントに書き込みする 実際に転送するデータ 最大1024バイト ターゲット・デバイスがパケットIDを含んだACKをホストに返送することでエラーのないデータ転送が可能
トランザクションとは? • データ転送を行うもの • 1ms(125us)フレーム内で、複数のトランザクションによりデータ転送を行う • トランザクションに含まれる情報 • エンドポイント番号 • データの流れる方向を示すコード • IN(to Host)OUT(from Host) • コントロール転送の始まりかどうかを示す情報 • SETUP (from Host)
データのやりとり • OUTまたはSETUPトランザクションの受信 • ターゲットはエンドポイントの適当な場所に受信データを格納 • 割り込みを発生させてデータ処理 • INトランザクションの受信 • ターゲットがホストへのデータ送信準備ができていれば、指定されたエンドポイントのデータを送信 • 割り込みを発生させてデータ処理 • 次のINトランザクションに対して準備
USBデータ転送種別(1) • コントロール転送(双方向) • USBには必須の転送モード • エンドポイント0をアクセス • ホストがデバイスの情報を読みとる • デバイスのアドレス設定 • 任意のデータをRD/WRすることもできる • 実際のデータ転送レートは、低速 • 適用分野 • すべてのデバイス • 転送レート • 15,872バイト/フレーム(1マイクロフレームあたり64バイトのトランザクションを31回)
USBデータ転送種別(2) • インタラプト転送(双方向) • 周期的にターゲットデバイスのデータを読みとる • 適用分野 • USBマウスやキーボードなどで利用 • 転送速度 • 24,576バイト/フレーム • 1マイクロフレームにつき、1024バイトのトランザクションを3回 • 必ずしも必要な転送ではない。 周期的に発行されるコントロール転送でも対応
USBデータ転送種別(2) • バルク転送(双方向) • 実際に高速なデータ転送が可能 • 帯域が確保されない欠点が長所に…? • 帯域が確保されるのは、アイソクロナスとインタラプト転送(90%)、コントロール転送(10%) • 他のデータ転送が行われていなければ、大規模なデータ転送が高速に行える転送ノード • エラー検出、エラーリカバリーによるデータインテグリティを確保できる • 適応分野: • スキャナ、プリンタ、デジカメ、モデム、ネットワーク機器、HDD、DVDなど
USBデータ転送種別(3) • アイソクロナス転送(双方向) • リアルタイムアプリケーション向けの転送モード • 帯域を確保(データの配送時間を保証) • 適用分野 • オーディオ・画像表示向け なぜ? データ・インテグリティが保証されない転送モード
USBデータ転送速度 • コントロール転送 • 15,872*バイト (15Mbyte/s) • 1マイクロフレームにつき、64バイトのトランザクションを31回 • バルク転送 • 53,248*バイト (53Mbyte/s) • 1マイクロフレームにつき、512バイトのトランザクションを13回 • インタラプト転送およびアイソクロナス転送 • 24,576*バイト (24MByte/s) • 1マイクロフレームにつき、1024バイトのトランザクションを3回 *) 1回の転送で、ミリ秒あたりのバイト数、パイプあたりの最大値(理論値)と実際の転送レートとは異なることに注意
エンドポイントとは? • ターゲット・デバイスに備えられたデータバッファ • ホストから受信したデータ、ホストに送信するデータ • USB仕様による定義 • USBデバイスにおいて、ユニークにアドレス設定可能な部分で、ホストとデバイス間の通信を行う情報源またはバッファとなるもの エンドポイント USBデバイス
コントロールエンドポイント • エンドポイント0 • データを双方向に転送する • USBターゲットには必須のエンドポイント • 制御情報の設定、収集などを行うときに使用 • プラグ&プレイ時に使用
パイプ? • データ転送を始める前に確立させるもの • ソフト的にターゲットのエンドポイントとホストのソフトウエアを結びつける 必須 HOST Target パイプ エンドポイント0 データバッファ パイプ データバッファ エンドポイント パイプ データバッファ エンドポイント
エニュメレーションとは? • アプリケーションがデバイスと通信する前に、ホストがそのデバイスを知り、デバイスドライバを割り当てること • デバイスのアドレスを割り付ける • デバイスからデータ構造を読みとる • デバイスドライバを割り当ててロードする • 読みとったデータの中にあるオプションからコンフィギュレーションを選択する(通常1つ) 任意のエンドポイントを使って通信ができる
エニュメレーション(1) • ユーザがデバイスをUSBポートに差し込む • ホストPC側:USBポートに電力を供給 • ターゲット機器(デバイス)は、Powered状態 • ハブがデバイスを検出する • D+とD-ラインの電圧を監視 • ホストが新しいデバイスを知る • ハブまたはどのポートにイベント発生したか知る
エニュメレーション(2) • ハブがFullSpeed,LowSpeedを検出する • Low またはHigh Speedを認識 • ハブがデバイスをリセットする • HighSpeedをサポートしているか検出 • ハブがデバイスとバスの間に信号路を確立 • USBバスのリセット状態から脱出しているか? • デフォルトパイプの最大パケット長を検出 • ホストがデバイスアドレス0、エンドポイント0にリクエストを送る
エニュメレーション(3) • ホストがアドレスを割り付け • ホストはデバイスに対してユニークなアドレスを割り付ける • ホストがデバイスの性能を認識する • デバイスが備える基本情報を取得 • EP0の最大パケット長など • ホストがデバイスドライバをロードする • ホストがデバイスの情報を取得したので、最適なデバイスドライバを用意できる • ホストのデバイスドライバがコンフィギュレーションを選択 • デバイスの持つ情報を読みとり、通信できるようにする
三菱電機 M66590FP マイコンの内蔵なし 開発ボード:なし 沖電気 ML60855 (開発中、9/30現在) マイコンの内蔵は無い 評価ボード有り(ARMによる制御) 基板設計、デバイスドライバ開発のサードパーティ情報有り 日本電気 uPD720122 マイコンの内蔵は無い 評価ボード有り ホストコントローラの方が有名 各メーカーの製品(1)
各メーカーの製品(2) • サイプレス社 • CY68013 • 8051 CPUコア内蔵→1チップコントローラ • 開発キットあり • 開発用のデバイスドライバ、コントロールパネル付き • 採用のポイント • 1chip化が必要か? • 開発キットが充実しているか?
開発環境 • サイプレス社 EZ-USBFX2開発キット • 開発に必要なサンプルやソースコードを添付 • ユニバーサルボード付きの開発ボード • USBファームウエア開発 • Keil社等のCコンパイラを利用 • 4KBまでなら無償ツールが利用可能 • USBターゲットデバイスドライバ • 開発キット添付のデバイスドライバを流用可能 • オープンソース
USB開発に必要なものは? ベンダーユニークなIDが付与される • ベンダーID • USBを開発する企業がusb.orgに登録する • メンバー登録をする(有料)年間2500ドル • プロダクトID • ベンダーIDを取得後、自社製品に割り付ける製品ユニークなID • 自社が任意に付与できる
USBバスアナライザ • プロトコルアナライザ • ある程度開発が進み、USBのプロトコルを観測しながらUSBファームやデバイスドライバをチューニングする • 富士通デバイス社 • USB ZERONE (250万円) • Catalyst Enterprises社 • SBAE-20(120~150万円程度) • CATC社 • アドバイザ(Advisor) • USBTracer™ & USBTrainer™ Hi-Speed
USB2.0対応バスアナライザの例 • 富士通デバイス社 • USB ZERONE • 超小型軽量 (外形寸法:148W×210D×44H(mm), 重量:650g)
USB2.0バスアナライザ機能 • GUI表示例
USB2.0バスアナライザ機能 • トレースデータの高速表示 • 表示に必要な部分のみ制御PCに転送 • ハードウェアアクセラレートによる高速レスポンス • トランザクション表示 • デバイスクラス自動デコード • USB On-The-Go 対応
I2C 高性能8051CPU SIE IOポート D+,D- GPIF 8KBRAM 4KB FIFO Endpoint コントローラICの概要 • サイプレス CY68013を採用 • 8051 CPUコア入りのワンチップIC • フレキシブルなアーキテクチャ
ICの特長(1) • EEPROMにVID、PIDを格納 • ホストPCからIC内のRAMにファームウエアをダウンロード可能 PCからFX2内のRAMに 直接データをダウンロード ROMにファームウエアと VID,PIDを格納 I2C FX2 E2PROM I2C FX2 E2PROM VID,PIDを格納 電源投入時にROMからFX2内の RAMにI2Cバス経由でダウンロード
ICの特長(2) • エンドポイントを可変できる • EP2,4,6,8を変更可能 EP2とEP6をそれぞれ2KBに設定 Cypress社データシートから抜粋
ICの特長(3) • GPIF • GeneralProgrammableInterface • パラメータの設定のより、各種メモリやASIC、DSPなどに直接接続できる(グルーロジックが不要) • 基本的には7ステートのステートマシン • 専用のツールがある 1 2 3 4 5 6 7 クロック 実際の波形データ 1 1 0 0 0 1 1 ステート
システム・コンセプト • USBプロトコルを知らなくても利用できる • 通信手段としてUSBを提供する • 大容量データをストレス無く扱うことができる • FPGAを利用して、不特定多数のシステムに適合させる • 高速・大容量メモリを搭載、データバッファリングをによるデータの連続転送を可能にさせる • 当面のアプリケーション・ターゲット • 画像処理
ハードウエア概要(1) • USB2.0コントローラとFPGA、SSRAMを組み合わせたシステム • USBコントローラ:サイプレス CY68013 • FPGA:アルテラ APEX20K200C8 • SSRAM:GSIGS8160Z36-133 ZBTタイプ I/O USB FPGA SSRAM SSRAM I/O
ハードウエア概要(2) • CY68013の採用 • 開発キットの充実、IC自信が持つ柔軟性 • APEX20K200C FPGAの採用 • 全銅配線による高速デバイス • 20万ゲート規模のロジックを構築可能 • I/Oインタフェースを可変可能(1.8V~3.3V) • ZBTSSRAMの採用 • 18Mbit(512word x 36bit) x 2個 • 最大133MHzのアクセスが可能