この一連の記事では、マイクロコントローラー、データ生成およびデータ処理ペリフェラル、その他のスマートデバイス間で情報を転送するために利用可能なさまざまなシリアル通信プロトコルのタイプについて見ていきます。このシリアル通信の紹介に続く記事では、一般的に使用されているいくつかの人気のあるプロトコルについて説明します。このシリーズの最後には、それぞれの利点と欠点をまとめます。次にシリアル通信バスを実装する必要があるときに、このリソースが役立ち、特定の状況に最適なオプションを選択するのに役立つことを願っています。
現在、デジタル電子技術は市場に出回っているほとんどの電子デバイスの最も重要な部分となっています。多くの異なるチップが使用されており、その複雑な操作は他の同様のデジタルコンポーネントから送受信される情報に依存しています。これらの間で通信を可能にするために、共通のプロトコル標準が作成されました。もし、各ICやデバイスが独自のプロトコルを使用して通信していたらどうでしょうか。これは、すべての人間が独自の言語を使って話すのと同じです。お互いを理解することがほぼ不可能になるため、混乱に陥るでしょう。
現在、さまざまなメモリIC、デジタルセンサー、保護デバイス、プログラマブル電源、デジタルポテンショメータ、無線周波数ICなどを取り扱っています。これらはすべて、マイクロプロセッサ、FPGA、ASICとの間で、またはそれら同士で通信する必要があります。これらのデバイス間の通信の目的は大きく異なることがあります。プログラミングのため、情報を抽出するため、あるいはアクションの実行を開始する信号を提供するためなどです。
また、一部のプロトコルでは、私たち人間がマイクロコントローラーを介してICと対話することを可能にします。これらのプロトコルの1つを介してICに信号を送信するようにプログラムされたマイクロコントローラーに信号を送ることができます。あるいは、利用可能なデバッグツールの1つを接続することもできます。
シリアル通信における問題の一つは、何かがうまくいかない場合に回路を見つけてデバッグすることの難しさです。もし一つのデバイスから別のデバイスへデータが届かない場合、その原因は次のいずれか、または複数の場所に存在する可能性があります:送信デバイスのロジック、その回路設計、シリアル通信のエンコードの仕方、通信バス、受信機によるデコード、受信機の回路設計、または最終的に受信機のロジックに。シリアル通信にオシロスコープのプローブを差し込むことで、何らかの活動があるかどうかは確認できますが、その有効性についてはほとんど教えてくれません。何が起こっているのかを完全に把握するには、デコード機能付きのオシロスコープまたはロジックアナライザーが必要になります。これにより、パルスを横切る電圧パルスを知り、電圧レベルのフォルトを見つけ、ノイズの問題を特定し、信号の立ち上がりと立ち下がりの速度に問題がないかを探ることができます。
しかし、シリアル通信を徹底的にデバッグするには、バス上のデータをデコードして、それが正しいか、または破損しているか、衝突の影響を受けているかを確認できるツールが必要です。デバイス間またはIC間の通信をデバッグするために特別に作成されたデバッグツールがかなりあります。Saleae Logicシリーズのロジックアナライザーは、業界標準のロジックアナライザーの一つであり、Proモデルは最も人気のあるプロトコルをすべて分析するのに十分な速度を提供します。
多くの低コストのロジックアナライザーは、SPIのような高速プロトコルを処理するには遅すぎます。LA2016 Logic Analyserは、非常に低コストでSaleae Logic 8とLogic 8 Proの間のサンプルレートを提供します。私は一つを所有しており、プロトコルを非常に成功裏に分析するために使用してきました。
また、ファームウェアとハードウェア設計の両方において、通信プロトコルの考慮は重要です。ハードウェア側からは、選択したマイクロコントローラのデータシートを常に慎重に確認する必要があります。MCUは、専用のピンを使用して事前に定義されたプロトコルでのみ通信できます。設計者は、使用するICとそれらが必要とするプロトコルを、MCUを選択する前に事前に決定する必要があります。
たとえば、人気のあるSTM32 Blue Pill開発ボードに搭載されているSTMicroelectronics STM32F103C8T6デバイスには、2 x I2C、3 x USART、2 x SPI、および1 x CAN通信インターフェースが含まれています。しかし、これらの通信プロトコルのいくつかのピンは共有されています。たとえば、デバイスのピン14(PA4とラベル付けされている)を見ると、このピンにはUSARTとSPIの機能が両方あります。これは、リストされているすべてのSPIおよびUSARTインターフェースを同時に設計できないことを意味します。いつどのインターフェースを必要とするかを選択し、それに応じて計画するか、より多くの通信インターフェースをサポートする別のマイクロコントローラーを探す必要があります。もちろん、PA4ピンは運用中にその設定を変更することで、両方の通信プロトコルに使用できます。しかし、それらを同時に使用することはできないため、どのタイミングで機能するかを慎重に検討する必要があります。これにより、ハードウェアおよびファームウェアの設計の複雑さが増します。
マイクロコントローラーのシリアル通信ピンは重複することがあるため、データシートを慎重に読む必要があります。デバイスがファームウェア側からの通信で使用するプロトコルに基づいて、適切なIC通信ライブラリモジュールをダウンロードして使用する必要があります。
通信プロトコルには多くの種類がありますが、最も人気のあるものはSPIとI2Cです。これらのプロトコルはそれぞれ、用途、通信速度、設計上の考慮事項、利点、欠点があります。この一連の記事で、それぞれについて順番に説明していきます。
このシリーズの次の記事では、人気のあるUARTデバイスについて見ていき、その利点や実装の詳細について議論します。シリーズの最後には、異なるプロトコルを比較し、それぞれの主な利点と欠点を強調します。
さらに質問がありますか?Altiumの専門家にお電話して、次のPCB設計に役立つ方法を発見してください。