先日、FTDI USBからシリアルUARTへの動作について質問がありましたが、わからないことに気づきました。FT232Rのデータシートを確認しました。ブロック図は本当に役に立ちませんでした。誰かが私を説明したり、良い説明にリンクしたりできますか?
コメント
- USB CDCデバイスのデバイス側を実装するよりも多くの説明がありますか? en.wikipedia.org/wiki/USB_communications_device_class
- @kenny、実際には' t。独自のプロファイルを使用しているため、使用するにはドライバーをインストールする必要があります(少なくともWindowsでは)。
- @avakar、すべてのOSでドライバーを使用し、一部はプリロードされています。
回答
FTDIチップはUSBプロトコルスタックを実装しています。このハードウェアの責任は、コンピューターが適切なドライバーをロードできるように(いくつかの識別情報を使用して)PCに通知し、その後PCとのデータトランザクションを管理することです-USBエンドポイントを検索しますこれらのプロセスのより良い説明のために。
これらのドライバーが読み込まれると、PCがチップのクエリに使用できるコマンドセットが指定されます。このハードウェアは、方程式の片側(PCとの通信)を処理します。その反対側は、ロジック、バッファ、ラインドライバ、およびソートを含むUARTプロトコルを管理するための専用ハードウェアです。前述のコマンドセットは、UARTハードウェアからの読み取りまたはUARTハードウェアへの書き込みに使用されます。 USBデバイスはPCによってポーリングされるため、イベントベースのコードを使用している場合、PCは実際にポーリングを実行して、新しいデータが到着したことを確認します。これは、ネイティブシリアルとは異なる場合があります。ポート、私は知りません。
上記のロジックは、専用ASICとして、またはROM上でファームウェアを実行するストリップダウンされたマイクロコントローラーコアを使用して実装できます。それが実際にマイクロコントローラーコアである場合は、 UARTがペリフェラルとして接続されていると想像してください。
コメント
- そして、'ファームウェアプログラムが実行されていますか?マイクロコントローラーは通常、同等のASIC専用ハードウェア実装よりも少ないロジックゲートを必要とします。'マイクロコントローラーとASICを区別するのは非常に困難です。マイクロコントローラーのファームウェアは'ユーザーがアクセスできません。
- @Ben:わかりますか? ldn ' tはそう言っていません。私の無知のために回答が編集されました。ブロック図を見た後、私は自分の直感を前提としていましたが、とにかく潜在的なuCの詳細を抽象化する方がよいと思います。 FTDIの担当者だけが知っていると思いますが、それはコアライセンスコストと社内開発時間の関係にあると思います。
- 通常、"がある場合プロトコル"それを処理するための"プログラム"になります… 'がASICまたはFPGAの奥深くに埋め込まれたエンジンで実行されている場合。例外は、目がくらむほど速い速度が複雑さよりも優先される場合で、ステートマシンまたは大規模な並列処理が見られる可能性があります。その間には、計算パスが制御ロジックに比例して構築されているエンジンがあります。DSPプロセッサの背後にある元のアイデアのようなものです
回答
USBマイクロコントローラーが内部にあり、USB経由で独自のプロトコルを通信し(したがってドライバーが必要)、それを「通常の」UART信号に変換して元に戻します。