0

次の問題があります。

いくつかの通信インターフェイスを介して PC と通信できるマイクロコントローラー: RS232、USB が存在します。イーサネットは使用できません。ソフトウェアは、オプションの組み込み OS を備えたベアメタルです。

ハードウェアは、任意のマイクロコントローラーおよび物理通信インターフェイスに適用できるため、重要ではありません。

複数の通信チャネルが同時に必要です。

  • 単純なコンソールの場合は 1 - デバッグ目的: uC <-> PC
  • ADC から PC へのリアルタイム サンプルを取得するための 1: uC -> PC
  • PC から DAC にリアルタイム サンプルを送信する場合は 1: PC -> uC
  • 1 取得/変換、開始/停止などのさまざまなパラメータを設定: uC <-> PC

理想的には、RS232 または USB (推奨) を使用する物理インターフェイスを 1 つだけ使用する必要があります。

単一の物理チャネルで異なるチャネルを多重化するためにすでに利用できるものはありますか? メッセージ パッシング、リモート プロシージャ コール。

4

3 に答える 3

4

uC に IP スタックがある場合は、おそらくSLIPまたはPPPを使用してシリアル リンクを介して通信できます。反対に、必要最小限のシステムを使用している場合は、これらのプロトコルやHDLCなどを調べてください。同様のものを実装することになるからです。

于 2012-12-29T12:28:47.107 に答える
2

明白な選択は、TCP/IPスタックを使用することです。開いている「ソケット」はそれぞれ独立しており、リンクは複数の同時接続をサポートできます。

TCP/IP は、Ethernet 経由、または PPP または SLIP 経由のシリアル接続経由で転送できます。非同期シリアル接続 (COM ポート) は、CDC/ACM クラスのデバイスを実装することで USB 経由でエミュレートできますが、デバイスが商業的にリリースされる場合は、USB ベンダー ID が必要になります。

ある種のマルチスレッド カーネルを使用すると、複数の接続の処理が簡単になる場合がありますが、必須ではありません。

于 2012-12-29T12:52:05.940 に答える
-1

RS232

PC/ノートブックでRS232を出荷する人はまだほとんどいません。

単一の物理チャネルで異なるチャネルを多重化するためにすでに利用できるものはありますか?

あなたは、エンドポイントと呼ばれるデバイス上で複数のパイプをサポートするUSB​​を使用したいと言っていました。USB規格では最大32が許可されていますが、特定のマイクロコントローラーが実装しているエンドポイントが少ないか、エンドポイントの種類に制限がある場合があります。

PC(ホスト)側では、WinUSBまたはLibUSBを使用してこれらのパイプにアクセスできます。

編集:

私は個人的にUSBからRS232へのコンバーターを使用しています。それらは機能しますが、新しい設計についてはかなり強くアドバイスする必要があります。

  • USBポートが異なると、COMポート番号も異なる可能性があります
  • ポートが「使用中」のときにUSB2COMを取り外すと、再接続時にCOMポートが機能しなくなります
  • 安価なコンバーターに関する多くのドライバーの問題
  • 古いアダプター用のWin8ドライバーを見つけようと頑張ってください
  • 1msのUSBフレーム時間は、一部のRS232プロトコルに悪影響を与える可能性があります

すべての問題は軽微ですが、USBを直接使用する場合は回避できます。

リアルタイムサンプル

これにより、利用可能な帯域幅の問題が発生します。USBは通常12 MBit / s(または一部のハイエンドマイクロでは480)です。ほとんどのUSB-2-RS232アダプターは、460800または921600ボーで最大になります。

于 2012-12-29T13:49:15.607 に答える