あなたの予想される遅延は、時間/ビットまたはそのようなものから来ていると思います。しかし、OS (Android や Linux など) を搭載したシステムから I2C にデータを送信する場合、実際の I2C に到達するにはすべてのレイヤーを通過する必要があります。そしておそらく、このドライバーはカーネルにあります。これはハードウェアリソースであるため、いくつかのコードが同時に I2C を使用するのを防ぐための何らかの形式のゲーティングもあります。また、一部のデバイスでは、システムがデータをすぐに送信しない場合がありますが、少し延期される可能性があります。しかし、それはあなたの場合ではないかもしれません。
また、一部のハードウェア デバイスでは、データを送信するときに、通常のデータ書き込みは行われず、別の方法で送信されます。これは、大きなチャンクの場合は効率的ですが、小さなチャンクの場合は効率が悪く、最初から遅延が発生する可能性があります。I2C のオーディオ ストリームはその良い例です。システムでは、多くの場合、必要なオーディオを取得するために適切なレートでデータを I2C に転送するためのデータ バッファーと DMA チャネルのセットアップです。オーディオ ストリーミングの目的では非常に効率的ですが、ほんの数バイトを送信するのは適切ではありません。
だから、私はあなたの測定に驚かない.
私の考えでは、それを改善したい場合は、独自のドライバーを作成するという苦痛を経験する必要があります。次に、プラットフォームに依存します。カスタム システムの場合は問題ありませんが、任意のタブレットで実行する必要がある消費者向けアプリケーションの場合は実行できません。