やまちゃんのオーディオブログ

真空管アンプ、最近は資金調達のためのFX,MetaTrader4ネタもやっています。

ez-usb fx2lp usbマイコンの基本の解説

<前提3>USBの簡単な解説

投稿日:2013年6月2日 更新日:

以下のとおり、押さえておけば、
usbの説明書を読まなくても、十分実用になると思います。

1.ディスクリプタ
・USBは、ご存知のとおり、ハブ(タコ足プラグ)を利用でき、
一度に、複数の機器と接続できます。

このように接続して通信するには、
接続された機器から、その機器の情報を埋め込まなければならず、
そのしくみが、ディスクリプタといいます。
PCは、PIDなどから、通信する相手を特定します。

2.エンドポイント
・fx2lpは、データ転送のためのメモリバッファ(エンドポイント)が設けられており、
PCは、直接には、そのメモリバッファへデータを転送し、
その転送以後については、基本的には、転送されたデータを直接処理することはできません。
PCは、メモリバッファへデータを転送したら(out転送という)、
メモリバッファが一部空になるまで、待つ処理がなされます。

・通常、「PC→fx2lp→外部のマイコン」という構成となっており、
fx2lpは、外部のマイコンとデータをやり取りするもので、外部のマイコンの出先機関という
役割を果たします。

・上記のメモリバッファは、PCからみて、エンドポイント(終着地)と称されるが、
終着地というより、上記のとおり、出先機関、ないしデータの交換所という役割です。

・このメモリバッファは、FIFO(ファーストイン、ファーストアウト)のメモリで、
最初に転送されたデータが、先に転送される。
つまり、PCから転送されたデータは、バッファ容量が満たされるまで、まず蓄えられ、
最初に転送されたデータが、外部のマイコンへ真っ先に転送される。
バッファの一部が転送されると、
すでに転送されたバッファ領域のデータは、意味を成さないから、
「空」になったとして扱い、
その空になったバッファの部分へ、PCからデータを転送する。

・このようにすることで、メモリバッファは、外部マイコンへ転送している間、
別のメモリ領域を用いて、同時に、PCからデータの転送を受け付ける。
・これによれば、
メモリバッファが、全部空になったのち、改めて、データを受け付ける間欠転送と異なり、
連続的に、データを転送できる。映像、音声のストリームのためには、これが必須になる。

・似たような概念で、マルチバッファ(ダブルバッファ、トリプルバッファ、クワッドバッファ、・・・)といって、
複数のバッファを用意しておき、その一部が転送済み(空)になると、
その空領域にデータを転送する。
CYPLESSのez-usbは、これを自動的に行う仕組みを備えている。

・転送方式としては、
コントロール転送、インタラプト転送、アイソクロナス転送、バルク転送がある(以下で説明)。

・エンドポイントは、通常、複数設けられ、上記バッファの領域が区分けされて設けられている。
・in転送とout転送があり、in転送は、外部マイコンからPCへ、
アウト転送は、PCから外部マイコンへの転送を、いう。
各エンドエンドポイントは、in転送とout転送のいずれかに、設定する必要があり、
それゆえ、場合により、複数のエンドポイントが必要となる。

・エンドポイント0、1は、コントロール転送、インタラプト転送に用いられ、
指示する旨のデータを与えると、
usb専用マイコン(fx2lp)には、
割り込み(インタラプト、何らかの状態が生じたことを検知して、特定の処理をさせる)が働き、
予め、fx2lpにセットされたプログラム(ファームウェア)により、
特定のサブルーチンを実行させることができる。

エンドポイント0、1では、少量のパケットデータ(64k)のみ、送ることができる。

・fx2lpにおいて、エンドポイント2、4、6、8は、ストリーム等の大量のデータの転送を行うことができ、
バルク転送では、1回(0.125msごと)当たり、512kバイトのデータを
1とまとまりのデータ(パケット)として、送れる。
バルク転送は、ハードディスクのように、一度にどかっとデータを送るのに適しており、
かつ、データの正確性を担保する仕組みが設けられている。
アイソクロナス転送では、必ず一定の間隔で送ることが予定された、送信方法であって、
必ずしも、データの正確性は担保されない。
それゆえ、一部のオーディオメーカーは、
次第に、アイソクロナスより、バルク転送を利用するよう、考えているようである。

-ez-usb fx2lp usbマイコンの基本の解説

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

no image

7.bulkloopのfx2lpファームウェアを読んで解説する1(ファイルの概要)

C:\Cypress\USB\CY3684_EZ-USB_FX2LP_DVK\1.0\Firmware\Bulkloopのファームウェアを開くと、以下のような図になる。 ここで、左のfw.cがソースコ …

no image

ez-usb fx2の紹介

usbオーディオを自作し、自由に応用できるようにするため、 usbを用いて、データをDACなどに転送することを考えた。usbを用いたデータ転送としては、ez-usb fx2(fx2lp)という専用マイ …

no image

1.Cypress fx2lpのテストボード

Cypress fx2lpを使うには、 まずは、最低限の機能を実現したテストボードを利用するほうが、便利であり、 その後、動作確認できれば、専用の回路を起こすのがよいと思われます。 Cypress f …

no image

8.bulkloopのファームウェアを読んで解説する2

fw2.c、bulkloop.cの概要を説明します。 「//」は、コメント文であり、CPUはなんら処理しません。 includeは、別ファイルの引用です。 #define DELAY_COUNT 0x …

no image

4.即座にバルクループ(bulkloop)を立ち上げる!

今回は、基本となるサンプルであるバルクループを、速攻で、立ち上げることにしよう。 バルクループとは、 A.fx2lpのアウト用エンドポイントへ、256kバイトずつ、データを送り込み、 B. fx2lp …

[最近の記事]
2013年6月
 1
2345678
9101112131415
16171819202122
23242526272829
30