コンテンツにスキップ

データ送出メカニズム

INFINICAMは、通信インターフェース(USB / Ethernet)の特性に合わせて最適化された独自データ送出モジュールを搭載しています。

1. UC-1.1 (USB 3.1 Gen1 5Gbps) の送出メカニズム

Section titled “1. UC-1.1 (USB 3.1 Gen1 5Gbps) の送出メカニズム”

UC-1.1では、信頼性の高い USBバルク転送(Bulk Transfer) モードを採用しています。

バルク転送では通信エラー時の再送が発生する可能性があるほか、転送中に次の画像データが上書きされると画像破損が起きてしまいます。これらを防止するため、カメラ内部に 3画面分(トリプルバッファ) のメモリを保持して安全にデータ伝送を行っています。

  • 書き込み用バッファ: 圧縮された最新の画像データを書き込む領域
  • 待機用バッファ: 次の転送に備えて完成した画像を保持する領域
  • 転送用バッファ: PC側へ現在送出中の画像データを保持する領域
  1. 書き込みと待機の交互入れ替え

    最新の圧縮画像データは、「書き込み用バッファ」と「待機用バッファ」を交互に入れ替えながらフレーム単位で書き込まれます。

  2. 転送用バッファへのローテーション

    PCへのデータ転送を開始するタイミングで、画像書き込みが完了した「待機用バッファ」を「転送用バッファ」へ切り替え、全データを一括送出します。

  3. 元のバッファの再利用

    送信が完了した元の「転送用バッファ」は、新たな「待機用バッファ」として再利用されます。

2. GbE-2 (1Gbps Ethernet) の送出メカニズム

Section titled “2. GbE-2 (1Gbps Ethernet) の送出メカニズム”

GbE-2では、リアルタイム性を最優先するため、Ethernetの UDP (User Datagram Protocol) を用いて画像データを直接PCへストリーミング送出します。

1パケット単位の即時送出による「超低レイテンシー」

Section titled “1パケット単位の即時送出による「超低レイテンシー」”

フレーム単位でのデータ蓄積を待つことなく、1パケット分のデータ量が溜まった瞬間に即座にUDPパケットを送出します。これにより、カメラ撮影からPC受信までの通信遅延(レイテンシー)を極限まで小さく抑えています。

HDL(ハードウェア記述言語)によるパケット作成

Section titled “HDL(ハードウェア記述言語)によるパケット作成”

通常のようなOS(Linux等)上のネットワークスタックを経由せず、FPGA内部の HDL言語で直接記述したハードウェアロジック(専用ハードウェア回路) でUDPパケットを作成・送出しています。