FTDIチップはどのように機能しますか?


20

先日、誰かがFTDI USBからシリアルUARTがどのように機能するかを尋ねましたが、私は知らないことに気付きました。FT232Rのデータシートを見たところ、ブロック図はあまり役に立ちませんでした。誰でも説明したり、良い説明にリンクできますか?


3
USB CDCデバイスのデバイス側を実装する以上の説明はありますか?en.wikipedia.org/wiki/USB_communications_device_class
ケニー

1
@kenny、実際にはそうではありません。独自のプロファイルを使用しているため、(少なくともWindowsでは)使用するためにドライバーをインストールする必要があります。
avakar

2
@avakar、すべてのOSでドライバーを使用します。一部のドライバーはプリロードされています。
-Kortuk

回答:


15

FTDIチップは、USBプロトコルスタックを実装しています。このハードウェアの責任は、コンピューターが適切なドライバーを読み込むことができるように(特定の識別情報を使用して)PCに伝えることと、その後のPCとのデータトランザクションを管理することです-USBエンドポイントを検索するこれらのプロセスのより良い説明のために。

これらのドライバーがロードされると、これは、PCがチップの照会に使用できるコマンドセットを指定します。このハードウェアは、方程式(PCとの通信)の片側を処理します。その反対側は、ロジック、バッファ、ラインドライバ、およびソートを含むUARTプロトコルを管理するための専用ハードウェアです。前述のコマンドセットは、UARTハードウェアの読み取りまたは書き込みに使用されます。USBデバイスはPCによってポーリングされるので、おそらく言及する必要があります。そのため、イベントベースのコードを使用している場合、PCは実際にポーリングを行って新しいデータが到着したことを確認します-これはネイティブシリアルとは異なる場合がありますポート、私は知りません。

上記のロジックは、専用のASICとして実装するか、ROMでファームウェアを実行する必要のないマイクロコントローラーコアを使用して実装できます。それが実際にマイクロコントローラコアである場合、UARTはペリフェラルとして接続されていると思います。


ファームウェアプログラムが実行されていないことをどの程度確信していますか?マイクロコントローラーは通常、同等のASIC専用ハードウェア実装よりも少ないロジックゲートを必要とします。マイクロコントローラーのファームウェアにユーザーがアクセスできない場合、ASICからマイクロコントローラーに伝えるのは非常に困難です。
ベンフォークト

@ベン:あなたは何を知っていますか?私はおそらくそれを言ってはいけません。私の無知のために回答が編集されました。ブロック図を見た後、私は腸の仮定で行ったが、とにかく潜在的なuCの詳細を抽象化する方が良いと思う。FTDIの人たちだけが知っていると思います。そして、それは、自社開発の時間と比較して、コアライセンスコストに帰着すると思います。
ジョンL

1
通常、「プロトコル」があると、それを処理する「プログラム」になります...たとえASICやFPGAの奥深くに埋め込まれたエンジンで実行されていてもです。例外は、途方もなく速い速度が複雑さよりも優先される場合、ステートマシンまたは大規模な並列処理が発生する可能性がある場合です。その間には、制御ロジックに比例して計算パスが構築されるエンジンがあります-DSPプロセッサの背後にある元のアイデアのようなもの
クリスストラットン

2

内部にUSBマイクロコントローラーがあり、USBを介して独自のプロトコルを通信し(ドライバーが必要)、それを「通常の」UART信号に変換し、再び戻します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.