usb2.0 対応システム設計 とその ノウハウ

94
1 Prime Systems, Inc. USB2.0 Seminar USB2.0 対対対対対対対対 対対対対対対対 USB2.0 対対対対対対対対対対対対対対対対対対対対対対対 有有有有有有有有有有有有有

Upload: ophira

Post on 10-Jan-2016

93 views

Category:

Documents


0 download

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: USB2.0 対応システム設計 とその ノウハウ

1

Prime Systems, Inc.

USB2.0 Seminar

USB2.0対応システム設計とそのノウハウ

USB2.0の特長をフル活用して、産業分野への応用を助長する

有限会社プライムシステムズ

Page 2: USB2.0 対応システム設計 とその ノウハウ

2

Prime Systems, Inc.

USB2.0 Seminar

プライムシステムズ 紹介

1998.12設立 概要:

カスタム設計サービス 自社商品開発

USBとFPGAを核とする製品開発(USB、FPGA、ASICに精通したエンジニア集団)

製品開発の特長 USBインタフェースとFPGAを融合した、「システム開発ボード」の展開

Page 3: USB2.0 対応システム設計 とその ノウハウ

3

Prime Systems, Inc.

USB2.0 Seminar

Smart-USBロゴ

商標登録済み USB1.1

Smart-USB USB2.0

Smart-USB Plus

Smart-USBブランドの内容 Windows2000/XPに対応したデバイスドライバの供給

USB1.1/2.0に対応した USBファームウエアの供給 専用 APIの提供

Page 4: USB2.0 対応システム設計 とその ノウハウ

4

Prime Systems, Inc.

USB2.0 Seminar

セミナー項目(1)

1. USB2.0概要1. USBの概要2. 物理仕様3. USB開発ツールの概要4. USBコントロール ICの概要

Page 5: USB2.0 対応システム設計 とその ノウハウ

5

Prime Systems, Inc.

USB2.0 Seminar

セミナー項目(2)

1. USB2.0対応システムボード( AX-USBII)の概要

1. システム構成2. USBコントローラ概要3. FPGA概要(一般知識)4. USB2.0システム設計のガイ

ドライン

2. アプリケーション事例1. 画像、組込、データ収集シス

テム

3. FPGA回路設計の概要( USBコントローラとのインタフェース)

1. インタフェース概要2. FPGA開発環境について

4. USBアプリケーションソフトウエアの概要

1. ソフトウエア構成概要2. ボード制御方式

5. 専用 APIの使用方法1. 専用 APIの概要2. 使用方法

6. ボード制御のデモンストレーション

1. AX-USBIIボードを利用したデモ

Page 6: USB2.0 対応システム設計 とその ノウハウ

6

Prime Systems, Inc.

USB2.0 Seminar

USB2.0の概要

Page 7: USB2.0 対応システム設計 とその ノウハウ

7

Prime Systems, Inc.

USB2.0 Seminar

USBの概要

USBが支持されている理由 使いやすさ Plug&Play

活線挿抜が可能ハードウエアの自動検索機能

レガシーインタフェースより高速ノート PCには、 USBポートしかない機種も…

デスクトップ PC、ノート PC環境を選ばない

Page 8: USB2.0 対応システム設計 とその ノウハウ

8

Prime Systems, Inc.

USB2.0 Seminar

USB規格

1996年: USB1.0規格リリース 1998年: USB1.1規格リリース

FullSpeed( 12Mbps)、 LowSpeed( 1.5Mbps)

2000年: USB2.0規格リリース HighSpeed( 480Mbps)が加わる

Page 9: USB2.0 対応システム設計 とその ノウハウ

9

Prime Systems, Inc.

USB2.0 Seminar

USB2.0で変わる USB

高速データ転送 480Mbps

USB1.1  FullSpeed( 12Mbps)の40倍

既存 USB機器との互換性 USB2.0ポートで USB1.1機器を利用可能

同時に複数の広帯域デバイスを管理

Page 10: USB2.0 対応システム設計 とその ノウハウ

10

Prime Systems, Inc.

USB2.0 Seminar

USBトポロジー

1システムにつき1台のホスト PCが存在 ホスト PCがすべてのデータ転送をイニシエイト

最大127台までのハブ及びターゲット機器を接続可能

ホスト PC

ターゲット機器

Page 11: USB2.0 対応システム設計 とその ノウハウ

11

Prime Systems, Inc.

USB2.0 Seminar

USBシグナリング(1)

3種類のデバイス Low Speed

1.5Mbps、ケーブル長3m以内、シールドなしでも可能 適用: USBマウス、キーボード、ゲーム機器など

Full Speed 12Mbps、ケーブル長5m以内、シールドあり

適用:プリンタ、スキャナ、オーディオなど Hish Speed (USB2.0で追加された)

480Mbps 、ケーブル長5m以内、シールドあり 適用: DVDドライブ、 HDD、ビデオ会議など

Page 12: USB2.0 対応システム設計 とその ノウハウ

12

Prime Systems, Inc.

USB2.0 Seminar

USBシグナリング(2)

物理層 4線インタフェース

2線の差動信号 :  D+/ D- ( 3.3V、 400mV) GNDと電源(ターゲット機器へのケーブル給電)

D+D-

リセット

Page 13: USB2.0 対応システム設計 とその ノウハウ

13

Prime Systems, Inc.

USB2.0 Seminar

USBシグナリング(3)

USB1.1の場合

HostPC FullSpeed

HostPC LowSpeed

GND

15KΩ

1.5KΩ

1.5KΩ

3.0~ 3.6V

GND

15KΩ

3.0~ 3.6V

D+

D-

D+D-

D+

D-

D+

D-

5V 5V

GNDGND

Page 14: USB2.0 対応システム設計 とその ノウハウ

14

Prime Systems, Inc.

USB2.0 Seminar

USBシグナリング(4)

USB2.0の場合 ホストとターゲット・デバイスが接続された時点は、Full Speed ホストとデバイス間で、High Speedが可能かどうか通信して、Full SpeedからHigh Speedに切り替える

ChirpJ:D+ラインだけ駆動 ChirpK:D-ラインだけ駆動

PullUp 抵抗 OFFIC内でプルアップ抵抗の On/Off

を行う

D+D- ChirpJ

ChirpJ ChirpJ ChirpJChirpK ChirpK ChirpK

FullSpeed HighSpeed

リセット期間

ChirpKChirpK

Page 15: USB2.0 対応システム設計 とその ノウハウ

15

Prime Systems, Inc.

USB2.0 Seminar

フレームとマイクロフレーム構成

Full  speed ・・・・・・

1ms

125us 単位のマイクロフレーム

1つのフレームに数個のトランザクションが含まれる

1ms

High Speed

Page 16: USB2.0 対応システム設計 とその ノウハウ

16

Prime Systems, Inc.

USB2.0 Seminar

USB2.0プロトコル (1)

通常のトランザクションは3種類 トークン・パケット( Token)、データ・パケット( Data)、 ハンドシェイク・パケット( Handshake)

パケットはエンコードされたビット・フィールド持つ USBデータ: NRZI変調 (ビットスタッフ)

バス・トランザクション: 125usフレーム 1フレーム( 1ms)に 8マイクロフレームで構成される 各フレームは SOF( Start Of Frame) パケットから始まる

ホストは1フレーム内で複数のデバイスにアクセス可能

Page 17: USB2.0 対応システム設計 とその ノウハウ

17

Prime Systems, Inc.

USB2.0 Seminar

USB2.0 パケット構成

OU

T AD

DR E

ND

P CR

C5 DA

TA

1

PayloadData

CR

C1

6 AC

K

Token  Packet Data  PacketHandShake Packet

OUT tokenホストがターゲットのエンドポイントに書き込みする

実際に転送するデータ

最大102 4バイト

ターゲット・デバイスがパケット IDを含んだ ACKをホストに返送することでエラーのないデータ転送が可能

トランザクション

Page 18: USB2.0 対応システム設計 とその ノウハウ

18

Prime Systems, Inc.

USB2.0 Seminar

トランザクションとは?

データ転送を行うもの 1ms( 125us)フレーム内で、複数のトランザクションによりデータ転送を行う

トランザクションに含まれる情報 エンドポイント番号 データの流れる方向を示すコード

IN( to Host)  OUT(from Host) コントロール転送の始まりかどうかを示す情報

SETUP (from Host)

Page 19: USB2.0 対応システム設計 とその ノウハウ

19

Prime Systems, Inc.

USB2.0 Seminar

データのやりとり

OUTまたは SETUPトランザクションの受信 ターゲットはエンドポイントの適当な場所に受信データを格納 割り込みを発生させてデータ処理

INトランザクションの受信 ターゲットがホストへのデータ送信準備ができていれば、指定されたエンドポイントのデータを送信 割り込みを発生させてデータ処理

次の INトランザクションに対して準備

Page 20: USB2.0 対応システム設計 とその ノウハウ

20

Prime Systems, Inc.

USB2.0 Seminar

USBデータ転送種別(1)

コントロール転送(双方向) USBには必須の転送モード

エンドポイント0をアクセス ホストがデバイスの情報を読みとる デバイスのアドレス設定 任意のデータを RD/WRすることもできる 実際のデータ転送レートは、低速 適用分野

すべてのデバイス 転送レート

15,872バイト /フレーム(1マイクロフレームあたり64バイトのトランザクションを31回)

Page 21: USB2.0 対応システム設計 とその ノウハウ

21

Prime Systems, Inc.

USB2.0 Seminar

USBデータ転送種別(2)

インタラプト転送(双方向 ) 周期的にターゲットデバイスのデータを読みとる

適用分野 USBマウスやキーボードなどで利用

転送速度 24,576バイト /フレーム

1マイクロフレームにつき、 1024バイトのトランザクションを3回 必ずしも必要な転送ではない。

周期的に発行されるコントロール転送でも対応

Page 22: USB2.0 対応システム設計 とその ノウハウ

22

Prime Systems, Inc.

USB2.0 Seminar

USBデータ転送種別(2)

バルク転送(双方向) 実際に高速なデータ転送が可能

帯域が確保されない欠点が長所に…? 帯域が確保されるのは、アイソクロナスとインタラプト転送( 90%)、コントロール転送 (10%)

他のデータ転送が行われていなければ、大規模なデータ転送が高速に行える転送ノード

エラー検出、エラーリカバリーによるデータインテグリティを確保できる

適応分野: スキャナ、プリンタ、デジカメ、モデム、ネットワーク機器、

HDD、DVDなど

Page 23: USB2.0 対応システム設計 とその ノウハウ

23

Prime Systems, Inc.

USB2.0 Seminar

USBデータ転送種別(3)

アイソクロナス転送(双方向) リアルタイムアプリケーション向けの転送モード

帯域を確保(データの配送時間を保証) 適用分野

オーディオ・画像表示向け なぜ?

データ・インテグリティが保証されない転送モード

Page 24: USB2.0 対応システム設計 とその ノウハウ

24

Prime Systems, Inc.

USB2.0 Seminar

USBデータ転送速度

コントロール転送 15,872*バイト  ( 15Mbyte/s)

1マイクロフレームにつき、64バイトのトランザクションを31回

バルク転送 53,248*バイト  ( 53Mbyte/s)

1マイクロフレームにつき、512バイトのトランザクションを13回

インタラプト転送およびアイソクロナス転送 24,576*バイト  ( 24MByte/s)

1マイクロフレームにつき、1024バイトのトランザクションを3回

*) 1回の転送で、ミリ秒あたりのバイト数、パイプあたりの最大値(理論値)と実際の転送レートとは異なることに注意

Page 25: USB2.0 対応システム設計 とその ノウハウ

25

Prime Systems, Inc.

USB2.0 Seminar

転送モードのまとめ

転送レート 12Mbps ( FullSpeed) 480Mbps(HighSpeed)

バルク 最大パケットサイズ 64バイト 512バイト最大データ転送量(理論値)

1.1Mバイト /s 53Mバイト /s

実際のデータ転送量の目安 1.0Mバイト /s 36Mバイト /s ?

インタラプト パケットサイズ 64バイト 1,024バイト /s

最大データ転送量(理論値)

32Kバイト /s 24Mバイト /s

アイソクロナス

最大パケットサイズ 1,023バイト 1,024バイト最大データ転送量(理論値)

1.0Mバイト /s 24Mバイト /s

Page 26: USB2.0 対応システム設計 とその ノウハウ

26

Prime Systems, Inc.

USB2.0 Seminar

エンドポイントとは?

ターゲット・デバイスに備えられたデータバッファ ホストから受信したデータ、ホストに送信するデータ

USB仕様による定義 USBデバイスにおいて、ユニークにアドレス設定可能な部分で、ホストとデバイス間の通信を行う情報源またはバッファとなるもの

USBデバイス

エンドポイント

Page 27: USB2.0 対応システム設計 とその ノウハウ

27

Prime Systems, Inc.

USB2.0 Seminar

コントロールエンドポイント

エンドポイント0 データを双方向に転送する USBターゲットには必須のエンドポイント

制御情報の設定、収集などを行うときに使用プラグ&プレイ時に使用

Page 28: USB2.0 対応システム設計 とその ノウハウ

28

Prime Systems, Inc.

USB2.0 Seminar

パイプ?

データ転送を始める前に確立させるもの ソフト的にターゲットのエンドポイントとホストのソフトウエアを結びつけるHOST Target

エンドポイント0

エンドポイント

エンドポイント

データバッファ

データバッファ

データバッファ

パイプ

パイプ

パイプ

必須

Page 29: USB2.0 対応システム設計 とその ノウハウ

29

Prime Systems, Inc.

USB2.0 Seminar

エニュメレーションとは?

アプリケーションがデバイスと通信する前に、ホストがそのデバイスを知り、デバイスドライバを割り当てること

デバイスのアドレスを割り付けるデバイスからデータ構造を読みとるデバイスドライバを割り当ててロードする 読みとったデータの中にあるオプションからコンフィ

ギュレーションを選択する(通常1つ)

任意のエンドポイントを使って通信ができる

Page 30: USB2.0 対応システム設計 とその ノウハウ

30

Prime Systems, Inc.

USB2.0 Seminar

エニュメレーション(1)

1. ユーザがデバイスを USBポートに差し込む• ホスト PC 側: USBポートに電力を供給• ターゲット機器(デバイス)は、 Powered 状態

2. ハブがデバイスを検出する• D+と D-ラインの電圧を監視

3. ホストが新しいデバイスを知る• ハブまたはどのポートにイベント発生したか知る

Page 31: USB2.0 対応システム設計 とその ノウハウ

31

Prime Systems, Inc.

USB2.0 Seminar

エニュメレーション(2)

4. ハブが FullSpeed,LowSpeedを検出する• Low または High Speedを認識

5. ハブがデバイスをリセットする6. HighSpeedをサポートしているか検出7. ハブがデバイスとバスの間に信号路を確立

1. USBバスのリセット状態から脱出しているか?

8. デフォルトパイプの最大パケット長を検出1. ホストがデバイスアドレス0、エンドポイント0にリクエストを送る

Page 32: USB2.0 対応システム設計 とその ノウハウ

32

Prime Systems, Inc.

USB2.0 Seminar

エニュメレーション(3)

9. ホストがアドレスを割り付け• ホストはデバイスに対してユニークなアドレスを割り付ける

10.ホストがデバイスの性能を認識する デバイスが備える基本情報を取得

EP0の最大パケット長など

11.ホストがデバイスドライバをロードする• ホストがデバイスの情報を取得したので、最適なデバイスドライバを用意できる

12.ホストのデバイスドライバがコンフィギュレーションを選択

• デバイスの持つ情報を読みとり、通信できるようにする

Page 33: USB2.0 対応システム設計 とその ノウハウ

33

Prime Systems, Inc.

USB2.0 Seminar

USBコントロール ICの概要

Page 34: USB2.0 対応システム設計 とその ノウハウ

34

Prime Systems, Inc.

USB2.0 Seminar

各メーカーの製品(1)

三菱電機 M66590FP

マイコンの内蔵なし 開発ボード:なし

沖電気 ML60855 (開発中、 9/30 現在)

マイコンの内蔵は無い 評価ボード有り( ARMによる制御)

基板設計、デバイスドライバ開発のサードパーティ情報有り

日本電気 uPD720122 マイコンの内蔵は無い 評価ボード有りホストコントローラの方が有名

Page 35: USB2.0 対応システム設計 とその ノウハウ

35

Prime Systems, Inc.

USB2.0 Seminar

各メーカーの製品(2)

サイプレス社 CY68013

8051 CPUコア内蔵→1チップコントローラ開発キットあり

開発用のデバイスドライバ、コントロールパネル付き

採用のポイント 1chip 化が必要か? 開発キットが充実しているか?

Page 36: USB2.0 対応システム設計 とその ノウハウ

36

Prime Systems, Inc.

USB2.0 Seminar

開発環境

サイプレス社  EZ-USB  FX2開発キット 開発に必要なサンプルやソースコードを添付 ユニバーサルボード付きの開発ボード USBファームウエア開発

Keil社等の Cコンパイラを利用 4 KBまでなら無償ツールが利用可能

USBターゲットデバイスドライバ開発キット添付のデバイスドライバを流用可能

オープンソース

Page 37: USB2.0 対応システム設計 とその ノウハウ

37

Prime Systems, Inc.

USB2.0 Seminar

USB開発に必要なものは?

ベンダー ID USBを開発する企業が usb.orgに登録する

メンバー登録をする(有料)年間2500ドル

プロダクト ID ベンダー IDを取得後、自社製品に割り付ける製品

ユニークな ID自社が任意に付与できる

ベンダーユニークな IDが付与さ

れる

Page 38: USB2.0 対応システム設計 とその ノウハウ

38

Prime Systems, Inc.

USB2.0 Seminar

USBバスアナライザ

プロトコルアナライザ ある程度開発が進み、 USBのプロトコルを観測しながら US

Bファームやデバイスドライバをチューニングする

富士通デバイス社 USB ZERONE (250万円)

Catalyst Enterprises社 SBAE-20(120~150万円程度)

CATC社 アドバイザ( Advisor) USBTracer™ & USBTrainer™ Hi-Speed

Page 39: USB2.0 対応システム設計 とその ノウハウ

39

Prime Systems, Inc.

USB2.0 Seminar

USB2.0対応バスアナライザの例

富士通デバイス社 USB ZERONE

超小型軽量  (外形寸法: 148W×210D×44H(mm) , 重量: 650g)

Page 40: USB2.0 対応システム設計 とその ノウハウ

40

Prime Systems, Inc.

USB2.0 Seminar

USB2.0バスアナライザ機能

GUI 表示例

Page 41: USB2.0 対応システム設計 とその ノウハウ

41

Prime Systems, Inc.

USB2.0 Seminar

USB2.0バスアナライザ機能

トレースデータの高速表示 表示に必要な部分のみ制御 PCに転送 ハードウェアアクセラレートによる高速レスポンス

トランザクション表示デバイスクラス自動デコード USB On-The-Go 対応

Page 42: USB2.0 対応システム設計 とその ノウハウ

42

Prime Systems, Inc.

USB2.0 Seminar

コントローラ ICの概要

サイプレス  CY 68013を採用 8051 CPUコア入りのワンチップ IC フレキシブルなアーキテクチャ

SIED+,D-

高性能 8051CPU

8KB  RAM

4KB FIFO

GPIF

IOポート

I2C

Endpoint

Page 43: USB2.0 対応システム設計 とその ノウハウ

43

Prime Systems, Inc.

USB2.0 Seminar

ICの特長(1)

EEPROMに VID、 PIDを格納 ホスト PCから IC内の RAMにファームウエアをダウンロード可能

FX2

E2PROM

I2C

FX2

E2PROM

I2C

PCから FX2内の RAMに直接データをダウンロード

VID , PIDを格納

ROMにファームウエアとVID,PIDを格納

電源投入時に ROMから FX2内のRAMに I2Cバス経由でダウンロード

Page 44: USB2.0 対応システム設計 とその ノウハウ

44

Prime Systems, Inc.

USB2.0 Seminar

ICの特長(2)

エンドポイントを可変できる EP2,4,6,8を変更可能

EP2と EP6をそれぞれ 2KBに設定Cypress社データシートから抜粋

Page 45: USB2.0 対応システム設計 とその ノウハウ

45

Prime Systems, Inc.

USB2.0 Seminar

ICの特長(3)

GPIF General  Programmable  Interface パラメータの設定のより、各種メモリや ASIC、

DSPなどに直接接続できる(グルーロジックが不要)

基本的には7ステートのステートマシン専用のツールがある

1 2 3 4 5 6 7クロック

1 1 1 10 0 0 ステート

実際の波形データ

Page 46: USB2.0 対応システム設計 とその ノウハウ

46

Prime Systems, Inc.

USB2.0 Seminar

USB2.0対応システムボード( AX-USBII)の概要

Page 47: USB2.0 対応システム設計 とその ノウハウ

47

Prime Systems, Inc.

USB2.0 Seminar

システム構成

Page 48: USB2.0 対応システム設計 とその ノウハウ

48

Prime Systems, Inc.

USB2.0 Seminar

システム・コンセプト

USBプロトコルを知らなくても利用できる 通信手段としてUSBを提供する 大容量データをストレス無く扱うことができる FPGAを利用して、不特定多数のシステムに適合させる

高速・大容量メモリを搭載、データバッファリングをによるデータの連続転送を可能にさせる

当面のアプリケーション・ターゲット 画像処理

Page 49: USB2.0 対応システム設計 とその ノウハウ

49

Prime Systems, Inc.

USB2.0 Seminar

ハードウエア概要 (1)

USB2.0コントローラと FPGA、 SSRAMを組み合わせたシステム USBコントローラ:サイプレス  CY68013 FPGA:アルテラ  APEX20K200C8 SSRAM: GSI  GS8160Z36-133   ZBTタイプ

USB FPGASSRAM

SSRAM

I/O

I/O

Page 50: USB2.0 対応システム設計 とその ノウハウ

50

Prime Systems, Inc.

USB2.0 Seminar

ハードウエア概要( 2)

CY68013の採用 開発キットの充実、 IC自信が持つ柔軟性

APEX20K200C FPGAの採用 全銅配線による高速デバイス 20万ゲート規模のロジックを構築可能 I/Oインタフェースを可変可能( 1.8V~ 3.3V)

ZBT  SSRAMの採用 18Mbit( 512word x 36bit) x 2個 最大 133MHzのアクセスが可能

Page 51: USB2.0 対応システム設計 とその ノウハウ

51

Prime Systems, Inc.

USB2.0 Seminar

USB-ICブロック図出典: CY68013データシート

Page 52: USB2.0 対応システム設計 とその ノウハウ

52

Prime Systems, Inc.

USB2.0 Seminar

ボードブロック図

96 ピン・コネクタ

96 ピン・コネクタ

96ピン・コ

ネクタ

USB2.0 FPGA SSRAM

SSRAM

1.8V/2.5V/3.3V電源生成5V

E2PROM 外部拡張バス

IO電圧可変

IO電圧可変

LCDポート

レベル変換Dsub9

レベル変換 サポート

PLD

Page 53: USB2.0 対応システム設計 とその ノウハウ

53

Prime Systems, Inc.

USB2.0 Seminar

ボード配線 (1)

USB2.0の信号線は 480MHzの差動信号

Page 54: USB2.0 対応システム設計 とその ノウハウ

54

Prime Systems, Inc.

USB2.0 Seminar

ボード配線(2)

USB信号線アートワーク D+と D-は等長にする 制御 ICと USBコネクタはできるだけ近づける

コネクタ接続方向

Page 55: USB2.0 対応システム設計 とその ノウハウ

55

Prime Systems, Inc.

USB2.0 Seminar

USBと FPGA

専用品 USB ICと FPGAを組み合わせるメリット USB 部分は動作保証された IC

確実に動作することが前提 FPGAは USBファームウエアのプロトコルに合わ

せたインタフェース回路設計が可能ファームウエアを変更せずに、 FPGA 側の回路変更で対応できる

デバイスドライバの変更も不要

Page 56: USB2.0 対応システム設計 とその ノウハウ

56

Prime Systems, Inc.

USB2.0 Seminar

USBと FPGA

USB FPGA固定されたプロトコル

USBファームウエアの変更が不要

変更不要のデバイスドライバ

他システムとの接続接続するシステムに応じた論理回路を FPGAに実装

各種メモリとのインタフェース

接続するメモリに応じた論理回路を FPGAに実装

FPGAと接続するシステムと、USB-ICとの橋

渡し

開発コストの低減化

他のシステムに移植が可能

低価格 FPGAの登場で製品への採用が可能に…

Page 57: USB2.0 対応システム設計 とその ノウハウ

57

Prime Systems, Inc.

USB2.0 Seminar

USBコントローラの概要(1)

対応転送モード コントロール /バルク /インタラプト転送対応

アイソクロナスは非対応

対応ホストデバイスとデバイスドライバ NEC製ホストコントローラ

インタフェース・カード マイクロソフト社製 USBホストデバイスドライバ

WindowsXP/2000に対応 Windpws Updateサイトからダウンロード

Page 58: USB2.0 対応システム設計 とその ノウハウ

58

Prime Systems, Inc.

USB2.0 Seminar

480Mbpsなのに、実際には 1/6 のデータ転送

レート?

USBコントローラの概要(2)

実際の転送レート NEC製ホストコントローラ搭載のインタフェースカードを PCIバスに装着した場合 約 80Mbps=10Mbyte/sのデータ転送が可能

(MPEGデータ1ch分程度)

ターゲットデバイスドライバでは、ドライバー内部で 4096バイトを単位として転送要求を下位ドライバー(マイクロソフト製)に送る

Page 59: USB2.0 対応システム設計 とその ノウハウ

59

Prime Systems, Inc.

USB2.0 Seminar

PCIバス経由より高速

USBコントローラの概要(3)

チップセットへの組込 USB2.0が組み込まれたチップセットの登場( ICH

4)

マイクロソフト社製 USB2.0デバイスドライバはICH4に対応していない!

ハードウエアが高速化されても、デバイスドライバが対応していないのでその能力を発揮できない

Page 60: USB2.0 対応システム設計 とその ノウハウ

60

Prime Systems, Inc.

USB2.0 Seminar

USBコントローラの概要(4)

今後のデータ転送レートの向上 マイクロソフト社による NEC以外の USB2.0デバイスドライバ対応

36Mbyte/s 程度が最大値か? USB2.0バスレートの約 60% ?

ターゲット機器に備えるデバイスドライバの役割はホストデバイスドライバとデータの受け渡し程度ターゲット機器に備えるデバイスドライバの役割はホストデバイスドライバとデータの受け渡し程度

Page 61: USB2.0 対応システム設計 とその ノウハウ

61

Prime Systems, Inc.

USB2.0 Seminar

USB-FPGAインタフェース

Page 62: USB2.0 対応システム設計 とその ノウハウ

62

Prime Systems, Inc.

USB2.0 Seminar

USB-FPGA間インタフェース仕様

USBファームウエアにより、 FPGAとのインタフェースが決まる

USBコントローラのピン収容表

ピン名称 ピン名称

FD[15:0] USBデータバス 16ビット

CTL[5:0] コマンド信号 6 本の制御線

RDY[5:0] ステータス信号 6 本のステータス線

Page 63: USB2.0 対応システム設計 とその ノウハウ

63

Prime Systems, Inc.

USB2.0 Seminar

FPGA

FPGAの利点

何度も書き換えが可能 メモリの種類、レジスタ設定の可変が可能

従来は USBのファーム変更で対応していた 機能に応じた回路ブロックをダイナミックに実現可能

USB 経由で高速に FPGAをコンフィギュレーション (30ms)

FPGA

機能A

機能 B

機能A

FPGA機能 B

容量オーバー機能 A だけ使うときに機能 A回路を実装

機能 B だけ使うときに機能 B回路を実装

Page 64: USB2.0 対応システム設計 とその ノウハウ

64

Prime Systems, Inc.

USB2.0 Seminar

FPGA開発環境

アルテラ社 開発ツール QuartusII

回路図 /HDL 記述シミュレーション

Page 65: USB2.0 対応システム設計 とその ノウハウ

65

Prime Systems, Inc.

USB2.0 Seminar

USB-FPGA間インタフェース仕様

FX2デバイスの GPIFを利用

GPIFマスター USB制御コア

IFCLK

RDY[5:0]

I/O(汎用 オプション)

FD[15:0]

CTL[5:0]

外部クロック48MHz

I/Oパラレルインターフェース

メモリインターフェース

I/O各種 へ

メモリへ

FX2 FPGA&ASIC

Page 66: USB2.0 対応システム設計 とその ノウハウ

66

Prime Systems, Inc.

USB2.0 Seminar

FPGA回路

FPGA(バックエンド)側で用意する回路 コントロール転送によるデータの処理

ハードウエア内に設定したレジスタへのアクセス 8/16/32/64ビットから選択

バルク転送によるデータの処理FPGA内のメモリや、外部メモリアクセス

8/16/32/64ビットから選択(ボード添付のサンプル回路では 16/32bitから選択)

アドレス空間の任意の部分をアクセスするため、スタート・アドレスと転送量をハード的に設定する

Page 67: USB2.0 対応システム設計 とその ノウハウ

67

Prime Systems, Inc.

USB2.0 Seminar

基本アクセス(1)

16bitレジスタWRアクセス

WRn

RGDTn

コマンドデータ 16bit)レジスタ設定データ(

CMDn

RDn

Page 68: USB2.0 対応システム設計 とその ノウハウ

68

Prime Systems, Inc.

USB2.0 Seminar

基本アクセス(2)

16bitレジスタ RDアクセス

WRn

RGDTn

コマンドデータ 16bit)レジスタ読取データ(

CMDn

RDn

Page 69: USB2.0 対応システム設計 とその ノウハウ

69

Prime Systems, Inc.

USB2.0 Seminar

メモリアクセス(1)メモリWR

• コマンド信号により、アクセスビット幅を指定する• 前もって、アクセスするメモリの容量をレジスタアクセスによって設定する• WAITn信号により、バースト・アクセスの開始を停止(WAIT)できる

•512バイト単位で、 FPGAと FX2間をデータ転送•512バイト( 16bit x 256)転送中はWaitできない•512バイト転送後、次の 512バイトを転送する前に、WAITn信号を監視し、 Highレベルなら、データ転送を行う

WRn

CMDn

RGDTn

WAITn

0 1 2ビット幅指定データ

255 d.c. d.c. d.c. 256 257

Page 70: USB2.0 対応システム設計 とその ノウハウ

70

Prime Systems, Inc.

USB2.0 Seminar

メモリアクセス(2)メモリ RD

• コマンド信号により、アクセスビット幅を指定する• 前もって、アクセスするメモリの容量をレジスタアクセスによって設定する• WAITn信号により、バースト・アクセスの開始を停止(WAIT)できる

0 1 2

WRn

RDn

CMDn

RGDTn

WAITn

ビット幅指定データ255 256 257 258

Page 71: USB2.0 対応システム設計 とその ノウハウ

71

Prime Systems, Inc.

USB2.0 Seminar

メモリアクセス(3)

WAITn信号について FX2 - FPGA間のデータ転送は、 512バイトを1データ・ブロックとして取り扱う

データブロック間は、WAITn信号で制御可能データブロック転送中は、WAITできない。

データブロック 1 データブロック2 データブロック3

FX2がWAITn信号を監視 FX2がWAITn信号を監視

FPGAが FX2に出力するWAITnが Hレベルの場合、次のクロックサイクルからデータの転送が始まる

16ビットデータ

Page 72: USB2.0 対応システム設計 とその ノウハウ

72

Prime Systems, Inc.

USB2.0 Seminar

アプリケーションの具体例

Page 73: USB2.0 対応システム設計 とその ノウハウ

73

Prime Systems, Inc.

USB2.0 Seminar

高速インタフェースの適応

開発ボードに求められているアプリケーション 画像データの取扱

USB1.1では対応できなかった分野 PCIで対応してきた分野

デスクトップ環境からノートブック環境に移行 RGB/NTSC信号を処理するボードの提供

USB2.0を利用した画像処理ソリューションを提供

Page 74: USB2.0 対応システム設計 とその ノウハウ

74

Prime Systems, Inc.

USB2.0 Seminar

画像処理

PCで用意した動画像をボードに転送

USB2.0 画像エンコーダ

液晶パネル有機 EL パネルエンコーダの評価

パネルの評価

Page 75: USB2.0 対応システム設計 とその ノウハウ

75

Prime Systems, Inc.

USB2.0 Seminar

画像処理

PCに画像データを転送

USB2.0ボード

MPEGデコード/エンコード回路

MPEGデータ

PCインタフェースとして利用

Page 76: USB2.0 対応システム設計 とその ノウハウ

76

Prime Systems, Inc.

USB2.0 Seminar

計測機器への応用

UltraATA/ATAPI バスアナライザ 自社製品: iBA-133U

ホスト PCインタフェースは USB1.1 USB2.0に対応することでデータ収集機能を向上

iBA133UUSB

HDD

HDD制御機器

AT

Aバ

ス 133MHz

Page 77: USB2.0 対応システム設計 とその ノウハウ

77

Prime Systems, Inc.

USB2.0 Seminar

データ転送量

どの程度のデータ転送ができるのか? 現状では実効 10Mbyte/sを想定せざるを得ない

MPEG-2のデータ速度: 80Mbps=10Mbyte/s MPEG-4のデータ速度: 5~ 10Mbps=0.6~ 1.25Mbyte/s

常に 10Mbyte/sの転送レートは得られない USBホストのスケジューリング等により、転送レートは可変する ターゲット側にはバッファが必要になる

メモリ 表示器等

平均転送レート 10Mbyte/s 固定転送レート

Page 78: USB2.0 対応システム設計 とその ノウハウ

78

Prime Systems, Inc.

USB2.0 Seminar

データ・バッファリング

FPGAー USB IC間のデータ転送は、 512byte単位 最低512バイトのバッファがあれば、連続データの転送ができる( FPGA内蔵 RAM =約 13Kbyte)

画像データなら、フレーム単位のメモりを用意して一画面ずつ転送

RAM

#1#2

ダブル・バッファリングでWR/RDを独

立制御

Page 79: USB2.0 対応システム設計 とその ノウハウ

79

Prime Systems, Inc.

USB2.0 Seminar

どこまで高速になるのか?

PC仕様に依存する HDDへのアクセス速度は?

HDDのアクセス速度の違いで転送レートに影響が出る USBホストデバイスドライバやチップセットなど…

過去の事例 データ収集システム

連続データを PCに収録する

USB1.1収録データ HDD8Mbps

USB2.0でも起こりうる ?!

Page 80: USB2.0 対応システム設計 とその ノウハウ

80

Prime Systems, Inc.

USB2.0 Seminar

USBアプリケーションソフトウエアの概要

ソフトウエア構成概要 USBに必要なソフトウエア

ホストデバイスドライバ ターゲット・デバイスドライバ アプリケーションソフトウエア

Page 81: USB2.0 対応システム設計 とその ノウハウ

81

Prime Systems, Inc.

USB2.0 Seminar

カーネルモード

ハードウェア

ドライバ

API( DLL)

アプリケーション

ユーザモード

API ( 19個 )

PSICEB.DLLDLL

USB ミニポートドライバPSICEB2.SYS

WDM

USBD

USBボード

USB機器開発者が設計する部分

Page 82: USB2.0 対応システム設計 とその ノウハウ

82

Prime Systems, Inc.

USB2.0 Seminar

ボード制御方式

どのようにボードを制御するのか? アプリケーションソフトからの制御

ハードウエア・レジスタの制御(コントロール転送を利用)

メモリ・データの制御(バルク転送を利用)

専用の APIを利用することで、アプリケーション設計を容易化専用の APIを利用することで、アプリケーション設計を容易化

APIを利用しない場合の欠点アプリケーションソフトが複雑になるデバイスドライバの更新でアプリソフトも変更

Page 83: USB2.0 対応システム設計 とその ノウハウ

83

Prime Systems, Inc.

USB2.0 Seminar

API

ターゲットボードのレジスタの操作やメモリの操作が関数記述により、簡単に実現できる

USB2.0で用意した APIは19種類 CebGetDeviceID CebOpenDevice CebCloseDevice CebCheckMyDevice CebRegisterWrite CebRegisterRead CebDataWrite CebDataRead CebSetStartRegister CebSetEndRegister CebInitLog CebGetLog CebGetTransferTime CebControlTransfer CebFindDevice CebSetLog CebLastTransferTime CebSetTimeOut CebSetSize

Page 84: USB2.0 対応システム設計 とその ノウハウ

84

Prime Systems, Inc.

USB2.0 Seminar

API概要(1)

CebGetDeviceID CebOpenDevice CebCloseDevice CebCheckMyDevice CebInitLog CebGetLog CebGetTransferTime CebControlTransfer CebFindDevice CebSetLog CebLastTransferTime CebSetTimeOut CebSetSize

接続されているデバイスの ID を取得する。 任意のデバイスをオープンします デバイスをクローズします 取り外されたデバイスがハンドルと対応したものか調べます ログバッファをクリアします 指定した分のログを取り出します 最後に行われたデータ転送の開始と終了の時間を取得します セットアップステージを任意に指定して Control 転送を行います 指定レジスタが指定の値のデバイスを検出する ログの作成有無を設定する 最後の転送( Bulk)の時間を返す 転送( Bulk)のタイムアウト時間を秒単位で設定する。デフォルトは 10

秒 転送( Bulk)の分割単位を指定する。 USB プロトコル上ではなく、ドライバー内部での分割転送単位を指定する

Page 85: USB2.0 対応システム設計 とその ノウハウ

85

Prime Systems, Inc.

USB2.0 Seminar

API概要(2)

CebRegisterWrite コントロール転送により、任意のレジスタデータを書き込みます

CebRegisterRead コントロール転送により、任意のレジスタデータを読み出します

CebDataWrite バルク転送により、メモリに可変長のデータを書き込みます

CebDataRead バルク転送により、メモリから可変長のデータを読み出します

CebSetStartRegister メモリスタートアドレスレジスタに値を書き込みます

CebSetEndRegister メモリエンドアドレスレジスタに値を書き込みます

8/16/32/64bit可変

Page 86: USB2.0 対応システム設計 とその ノウハウ

86

Prime Systems, Inc.

USB2.0 Seminar

API概要(3)

例: CebRegisterWrite

USBUSB

レジスタ2

Page 87: USB2.0 対応システム設計 とその ノウハウ

87

Prime Systems, Inc.

USB2.0 Seminar

API利用のアプリケーション例

void CUsbtestDlg::OnFindidbtn()

{

UpdateData();

// オープンされていたらクローズする

if (m_Handle != NULL) {

CebCloseDevice(m_Handle);

m_Handle = NULL;

m_nDeviceNo = 0;

}

// IDを検出する

DWORD nId = CebFindDevice(m_nFindReg, m_nFindID);

if (nId == 0) {

AfxMessageBox(_T("デバイスを検出できません "));

return;

}

m_nDeviceNo = nId;

UpdateData(FALSE);

}

Page 88: USB2.0 対応システム設計 とその ノウハウ

88

Prime Systems, Inc.

USB2.0 Seminar

API利用のアプリケーション例void CUsbtestDlg::OnDebugbtn() {

WORD sValue;

DWORD BytesReturned;

UpdateData();

if (m_Handle == NULL) {

AfxMessageBox(_T("デバイスがオープンされていません "));

return;

}

sValue = m_nDebugValue;

DWORD sts = CebControlTransfer(m_Handle, CEB_DIRECTION_HOST_TO_DEVICE, 0xB8, sValue, 0, NULL, 0, &BytesReturned);

if (sts != CEB_STATUS_SUCCESS) {

AfxMessageBox("エラーが発生しました。 ");

return;

}

}

Page 89: USB2.0 対応システム設計 とその ノウハウ

89

Prime Systems, Inc.

USB2.0 Seminar

API利用のアプリケーション例void CUsbtestDlg::OnDatareadbtn()

{

DWORD BytesReturned;

LPVOID lpInBuffer;

DWORD nInBufferSize;

UpdateData();

if (m_Handle == NULL) {AfxMessageBox(_T(“デバイスがオープンされていません” ));  return;}

nInBufferSize = m_nReadSize;

lpInBuffer = GlobalAlloc(GPTR, nInBufferSize);

DWORD sts = CebDataRead(m_Handle, CEB_RANGE_8BIT, lpInBuffer, nInBufferSize, &BytesReturned);

if (sts != CEB_STATUS_SUCCESS) {  AfxMessageBox(“エラーが発生しました。” );}

else {     CString str;

str.Format(_T("%d バイト読み込みました "), BytesReturned);

AfxMessageBox(str);  }

Page 90: USB2.0 対応システム設計 とその ノウハウ

90

Prime Systems, Inc.

USB2.0 Seminar

レジスタ制御(WR)

START

レジスタコマンド発行SngWrite

データ書込みSngWrite

書込み終了?

END

Y

N

CebRegisterWrite FX2ホストからの「 」の発行を受けて、 ファームウェアは、GPIFのレジスタライトトランザクションを起動する。

CebRegisterWrite「 」のパラメータであるレジスタアドレスとレジスタレングスを、USB制御コアに対して通知する。制御コアはこのコマンドを受けて、次に書き込まれるレジスタデータの受信準備を行なう。

16ビット単位で、制御コアに対してレジスタデータの書込みを行なう。64ビットレジスタの場合には4回、32ビットレジスタの場合には2回の書込みとなります。16及び8ビットレジスタの場合には1回の書込みとなり、8ビットレジスタの場合は下位8ビット(FD「7:0」)のみに有効データが出力されます。

FX2ファームウェアは、ホストに対して上記トランザクションが正常に終了したというステータスを返し終了する。

Page 91: USB2.0 対応システム設計 とその ノウハウ

91

Prime Systems, Inc.

USB2.0 Seminar

レジスタ制御( RD)

START

レジスタコマンド発行SngWrite

SngRead

読込み終了?

END

Y

N

CebRegisterRead FX2ホストからの「 」の発行を受けて、 ファームウェアは、GPIFのレジスタリードトランザクションを起動する。

CebRegisterRead「 」のパラメータであるレジスタアドレスとレジスタレングスを、USB制御コアに対して通知する。制御コアはこのコマンドを受けて、レジスタデータの送信準備を行なう。

16ビット単位で制御コアからレジスタデータの読込みを行なう。64ビットレジスタの場合には4回、32ビットレジスタの場合には2回の読込みとなります。16及び8ビットレジスタの場合には1回の読込みとなり、8ビットレジスタの場合は下位8ビット(FD「7:0」)からデータを読み込みます。

FX2ファームウェアは、USB制御コアから読み込んだデータをホストに返し、トランザクションを終了する。

Page 92: USB2.0 対応システム設計 とその ノウハウ

92

Prime Systems, Inc.

USB2.0 Seminar

メモリ制御(WR)START

メモリコマンド発行SngWrite

MemWrite

書込み終了?

END

Y

N

CebDataWrite FX2ホストからの「 」の発行を受けて、 ファームウェアは、GPIFのメモリライトトランザクションを起動する。

CebDataWrite「 」のパラメータであるメモリバス幅を、USB制御コアに対して通知する。FX2制御コアはこのコマンドを受けて、 からのメモリデータの受信準備を行なう。

16ビット単位で制御コアからメモリデータの書込みを行なう。MemWrite 256 512 FX2は最大 回( バイト)のバースト長があり、 内部のバッファ(エンドポイ

2ント)の空き容量によりバースト長は変化します。(最小バースト長は 回)

FX2ファームウェアは、メモリライトが正常終了したことをホストに返し、トランザクションを終了する。

WAITn

L

H

FX2 WAITn LOWはメモリコマンド発行後に、 のサンプリングを行ない「 」であれば、WAITnが「HIGH」になるまで待機する。WAITn MemWrite MemWriteは、「 」が起動される前にサンプリングされ、 が起動された後にはサンプリングされません。

WAITn MemWriteホストから続いてメモリデータが書き込まれると、 のサンプリングに戻り を再度起動する。

Page 93: USB2.0 対応システム設計 とその ノウハウ

93

Prime Systems, Inc.

USB2.0 Seminar

メモリ制御( RD)START

メモリコマンド発行SngWrite

MemRead

読込み終了?

END

Y

N

CebDataRead FX2ホストからの「 」の発行を受けて、 ファームウェアは、GPIFのメモリリードトランザクションを起動する。

CebDataRead「 」のパラメータであるメモリバス幅を、USB制御コアに対して通知する。FX2制御コアはこのコマンドを受けて、メモリからデータを読み込み へ送信準備を行なう。

16ビット単位で制御コアからメモリデータの読込みを行なう。MemRead 1024 2048 FX2は最大 回( バイト)のバースト長があり、 内部のバッファ(エンドポ

256イント)の空き容量によりバースト長は変化します。(最小バースト長は 回)

FX2ファームウェアは、USB制御コアから読み込んだデータをホストに返し、トランザクションを終了する。

WAITn

L

H

FX2 WAITn LOWはメモリコマンド発行後に、 のサンプリングを行ない「 」であれば、WAITnが「HIGH」になるまで待機する。低速なメモリを使用している場合にはメモリリードを中断させておき、その間にメモリデータを読み込む事ができます。WAITn MemRead MemReadは、「 」が起動される前にサンプリングされ、 が起動された後にはサンプリングされません。

WAITn MemReadホストから続いて読み込み要求がくると、 のサンプリングに戻り を再度起動する。

FX2ホストから要求された容量のメモリデータを転送し終えると、 内部バッファをリセットし終了する。バッファクリア

バッファをクリアFX2メモリからのデータをリードする前に、 内部バッファをクリアしておく

Page 94: USB2.0 対応システム設計 とその ノウハウ

94

Prime Systems, Inc.

USB2.0 Seminar

AX-USBIIボードの実際

USB2.0を実装した FPGA 搭載のシステム開発ボードデモンストレーション内容

ハードウエア・レジスタアクセス(コントロール転送) メモリ・アクセス(バルク転送) バルク転送レート表示