/*!
  \page vinculum_article_page Top-URG と組込みデバイスの接続について

  Top-URG には、USB のデバイス・インターフェースしかなく、Top-URG と組込み機器を接続するには、組込み機器側が USB ホスト・インターフェースを持つ必要があります。

  この記事では、FTDI 社の USB ホストチップ <a href="http://www.vinculum.com/">Vinculum</a> を介して Top-URG と組込み機器を接続する方法について説明します。

  - \ref vinculum_abstract_section
  - \ref vinculum_program_section


  \n
  \section vinculum_abstract_section USB ホストチップ Vinculum と Top-URG との接続

  Vinculum についての詳しい説明は、<a href="http://www.vinculum.com/">Vinculum</a> を御覧下さい。\n
  今回は、Top-URG と組込み機器の接続を、Vinculum を介して行います。

  \image html vinculum_use_image.png 構成例(Top-URG + 組込み機器(Vinculum 搭載)

  URG センサが使っている USB 規格は、CDC(Communication Device Class) の ACM(Abstract Control Model) です。\n
  Vinculum はこの規格をサポートしており、USB ホストからの情報を他のインターフェースに変換でき、例えば

  - バス
  - UART
  - SPI

  といったインターフェースに変換することができます。\n
  Top-URG との接続用に Vinculum を評価するのであれば、<a href="http://www.vinculum.com/prd_vdip1.html">VDIP1</a> 評価基板の利用が簡単です。

  VDIP を用いて Top-URG と接続するときの手順は、<a href="vinculum_using_memo.txt">vinculum_using_memo.txt</a> にまとめてあります。


  \n
  \section vinculum_program_section Vinculum の接続に用いたサンプルプログラム

  以下は、Top-URG からのデータを UART に変換し、マイコンで読み出してみたときのマイコン用プログラムと、応答の結果になります。

  - プログラム
    - Vinculum の配線をシリアル用に変更し、データ変換を行うプログラム
    \include vdip_terminal.c

  \n
  - 応答例
    - 以下のテキストファイルは、組込み機器が送受信したデータを記録したものです。
    - Top-URG にコマンドが送信され、応答が返されているのがわかります。
    \include vinculum_response_log.txt

  - 接続例

  \dot
  digraph {
    graph [rankdir = LR];

    subgraph cluster0 {
      label = "PC"; fontsize=9;
      TerminalSoft [fontsize=9];
    }

    subgraph cluster1 {
      label = "Micro controller evaluate board"; fontsize=9;
      UartLevelConverter -> MicroController [label = "UART\n(TTL)", dir = both, fontsize=9];
    }

    TerminalSoft -> Usb2Serial [label = "USB", dir = both, fontsize=9];
    Usb2Serial -> UartLevelConverter [label = "UART\n(5V-25V)", dir = both, fontsize=9];

    MicroController -> FTDI [label = "UART\n(TTL)", dir = both, fontsize=9];
    FTDI -> TopUrg [label = "USB", dir = both, fontsize=9];

    TerminalSoft [label = "Terminal Soft"];
    Usb2Serial [label = "USB-Serial\nConverter", shape = box, fontsize=9];
    UartLevelConverter [label = "UART\nLevel Converter", shape = box, fontsize=9];
    MicroController [label = "Micro Controller\n(2 UART port)", shape = box, fontsize=9];
    FTDI [label = "Vinculum", shape = box, fontsize=9];
    TopUrg [label = "Top-URG", shape = box, fontsize=9];
  }
  \enddot

  \n
*/
