マルツTOP > APPLICATION LAB TOPページ おすすめ技術記事アーカイブス > 包括的なPLCリファレンス設計を使用して産業用IoTアプリケーション開発を迅速化

シリアル周辺インターフェース(SPI)を使用して複数デバイス間の接続を簡素化できる理由と方法 

著者 Art Pini 氏
Digi-Keyの北米担当編集者 提供
2019-02-14
マルツ掲載日:2019-05-27

 組み込みシステムでは、1つ以上のマイクロコントローラを使用して、より複雑なシステム内で専門化された動作を実行しています。マイクロコントローラの内蔵コントローラは、他のシステムコンポーネントやセンサ、他のコントローラとも通信する必要があります。一般的ではありますが、複雑なシリアルインターフェースやプロトコルは、プログラミングやトラブルシューティングが非常に難しくなる可能性があります。

 設計者は、任意長データの高速処理とプロトコル関連の複雑なプログラミングタスクを排除できる、シンプルなデバイス間デジタルインターフェースを備えたマイクロコントローラやペリフェラル、センサを必要としています。

 簡単な解決策は、シリアル周辺インターフェース(SPI)を備えたコントローラを選択することです。これは、コントローラと少数のローカル周辺IC、センサをインターフェース接続するソリューションです。このインターフェースは、ハードウェアアドレス指定を使用して、最大50MHzのクロックレートで動作するシンプルな同期インターフェースです。SPIは、アドレスの指定やステータスチェックが必要な複雑なプロトコルを使用しません。その代わり、高度なインターフェースバスのプログラミングオーバーヘッドなしに、高速データ転送用の基本的なインターフェースとして機能します。

 この記事では、多くの動作モードを含むSPIインターフェースの基本について説明します。次に、SPIインターフェースを備えたマイクロコントローラとその他のデバイスを紹介し、SPIインターフェースの適用方法を示します。

SPIとは

 SPIは、モトローラ(現在はNXP Semiconductorsの一部)によって1985年頃に開発されました。同期シリアルインターフェースであり、短距離のデバイス間通信で使用することを目的としています。それ以来SPIは、特にマイクロプロセッサやマイクロコントローラなどで、多くの半導体メーカーが採用して事実上の標準になりました。

 SPIが普及した理由は、その多くの利点にあります。最大の利点は、転送されるビット数に完全な柔軟性を提供して、ハードウェアアドレスを指定するシンプルなインターフェースであることです。SPIは、単一のマスターを備えたマスター/スレーブモデルを採用しており、最大50MHzのクロック速度で動作する全二重通信を使用して複数のスレーブデバイスに対応することができます。また、標準プロトコルを使用せずに、データパケットのみを転送するため、長いデータストリームの転送に最適です。

 SPIは、最大4つの信号ラインを使用します(図1)。通常、プロセッサやコントローラであるマスターデバイスは、クロック(SCK)やチップセレクト(CS)ラインを供給することで制御します。全二重動作は、マスターアウト/スレーブイン(MOSI)とマスターイン/スレーブアウト(MISO)のデータラインで処理されます。簡単な単一マスターと単一スレーブの構成では、チップセレクトラインを排除して、スレーブへのCS入力を有効化された論理条件に強制することができます。

 スレーブデバイスがデータの送信のみを実行する場合(半二重通信)、MOSIラインも排除でき、信号数がさらに削減されます。そのような方法でデータがクロック信号によってクロックアウトされるため、データ転送は、各クロックに対して1ビットがシフトアウトされるシフトレジスタに類似しています。



図1:SPIの基本的な全二重接続では、2つのデータライン(MOSIとMISO)、クロックライン(SCK)、チップセレクトライン(CS)が使用されます。スレーブ上のMOSIは、スレーブデータイン(SDI)と表記される場合があります。MISOは、スレーブデータアウト(SDO)と表記される場合があります。(画像提供:Digi-Key Electronics)

 複数のスレーブデバイスを処理するには、2つのアプローチがあります(図2)。



図2:複数のスレーブのインターフェース接続を処理する2つの構成。直接接続では、各スレーブにチップセレクトが必要です。デイジーチェーン接続では、単一のチップセレクトを使用して、単一のラインですべてのデータを結合します。(画像提供:Digi-Key Electronics)

 直接接続では、各スレーブデバイスに対してチップセレクトラインを使用します。ほとんどのマイクロプロセッサには、3つまたは4つのチップセレクトラインがあります。これにより、スレーブの最大数がチップセレクトラインの数に制限されます。ほとんどの場合、これは問題ではありませんが、設計でバス上にさらに多くのデバイスが要求される場合、デイジーチェーンアプローチを使って、いくつかのデバイスを構成できます。

 デイジーチェーンの場合、複数のスレーブデバイスに対して共通のチップセレクトが使用され、共通のデータラインでデータがストリームアウトされます。繰り返しますが、スレーブからのデータは、SPIスレーブデバイスのモデルをシフトレジスタとして使用して、シリアル多重化ストリームで伝播されます。

SPIクロッキングモード

 マスターは、クロックの制御と生成を行います。2つのクロック属性とは、クロック極性(CPOL)とクロック位相(CPHA)です。これらの属性は、スレーブデバイスがデータに相対してクロックされるアクティブなクロックエッジを制御します。CPOL = 0 の場合、ロジック0でアイドルするようにクロックが設定されます。CPOL = 1 の場合、ロジック1でアイドルするようにクロックが設定されます。CPHA = 0 の場合、リーディングエッジでデータがクロックされます。CPHA = 1 の場合、トレーリングエッジでデータがクロックされます(図3)。



図3:SPIクロッキングモードの選択により、データがサンプリングされるアクティブなクロックエッジが修正されます。(画像提供:Digi-Key Electronics)
 マスターでのCPOLおよびCPHAラインの設定により、クロック極性とデータをクロックするためのアクティブエッジが決定されます。モード1が最も一般的に使用されますが、設計者は、他の3つのモードも同じように利用できます。

 SPI転送の3つの信号コンポーネントをオシロスコープで観察することができます(図4)。この例では、8ビットのデータパケットが転送されています。Teledyne LeCroyのHDO4104Aオシロスコープで、SPIシリアルデコードオプションを使ってデータ転送を観察しています。

 

図4:Teledyne LeCroyのHDO4104Aオシロスコープでシリアルデコードオプションを使って観察したSPIデータ交換の例。波形の説明は次のとおりです。上部の波形はデータライン、真ん中の波形はクロック、下部の波形はチップセレクトです。データトレース上の青のオーバーレイは、デコードされたコンテンツを16進数で示しています。(画像提供:Digi-Key Electronics)

 モード1のクロックは、アイドルが0に設定された(CPOL = 0)8つのパルスのグループで構成され、データがトレーリングエッジまたは立ち下がりエッジでクロックされます(CPHA = 1)。この例で使用されているオシロスコープは、データコンテンツをデコードするシリアルデコードオプションを備えています。データコンテンツは、データトレース上の青色が付いているオーバーレイで、16進数で読み取られます。このデコードは、チップセレクトラインがアサートされているときに(レベル0)発生するデータのみに関連付けられています。合計で17個のクロックバーストがありますが、そのうちの5個だけがアクティブなチップセレクトステータスに対応しています。

 波形表示グリッドの下の表には、アクティブなデータコンテンツに加えて、各パケットのオシロスコープトリガに相対した時間と測定されたクロックレート(この場合、100kビット/秒)がリスト表示されています。各バーストのクロックサイクル数により、スレーブデバイスからクロックアウトされるデータビット数が設定されます。

マイクロプロセッサI/Oの選択

 Microchip TechnologyのATTINY816-MNRは、複数のI/Oインターフェースをサポートする点において、多くのマイクロコントローラの典型です(図5)。この特定のコントローラは高性能の低電力AVR RISCアーキテクチャを使用し、最大20MHzで動作します。また、20ピンパッケージに収められ、最大4KBまたは8KBのフラッシュ、256バイトまたは512バイトのSRAM、および128バイトのEEPROMをサポートしています。



図5:Microchip TechnologyのATtiny816マイクロコントローラのブロック図では、I/Oポートが強調されています。このコントローラには、SPIポートとUSARTポートの両方が含まれます。USARTポートは、2番目のSPIとして構成できます。(画像提供:Microchip Technology)

 インターフェース側では、マイクロコントローラにユニバーサル同期および非同期レシーバ/トランスミッタ(USART)、I2Cと互換性のある2線式インターフェース(TWI)、およびSPIが含まれます。USARTは、2番目のSPIポートとして構成できます。

 SPIは、AVRデバイスとペリフェラルデバイス間、またはいくつかのマイクロコントローラ間の全二重通信を許可します。SPIペリフェラルは、マスターまたはスレーブとして構成でき、マイクロコントローラ間の通信を可能にします。

SPIベースのセンサ

 SPIを組み込んだ多数のマイクロプロセッサやマイクロコントローラを補完するのは、SPIを介してデジタルデータを提供するさまざまなセンサです。たとえば、Microchip TechnologyのTC77-3.3MCTTRデジタル温度センサは、小型フォームファクタの低コストアプリケーション向けの、シリアルでアクセス可能なデジタル温度センサです。TC77は、-55℃~+125℃の温度範囲に対応しています。また、2.7V~5.5Vの電源で動作し、動作中に250μAを消費します。1μAを消費する低電力のシャットダウンモードも備えています。

 一般的なアプリケーションでは、この温度センサは標準のSPI接続を介してプロセッサに接続されます。図6に示すように、その温度データは13ビットのデジタルワードとしてフォーマットされます。



図6:Microchip TechnologyのTC77は、小型で低コストの使いやすい温度センサです。この温度センサをコントローラまたはプロセッサに接続して、温度値を13ビットのデジタルワードに変換することができます。タイミング図に示されているように、CSラインをロジック0にアサートすることにより、通信が開始されます。(画像提供:Microchip Technology)

 図6は、T77の温度レジスタの読み取り操作のタイミング図を示しています。CSラインをロジック0にしてアサートすることにより、通信が開始されます。次に、センサはデータの最初のビットを送信します。マイクロプロセッサは、SCKの立ち上がりエッジでデータを読み取ります。次に、SCKの立ち下がりエッジを使用して、センサからの残りのデータがクロックアウトされます。これは、前の例のようなモード1転送ですが、データワードがより長くなっています。

SPIの使用範囲の拡張

 SPIを多くのマイクロプロセッサやマイクロコントローラに組み込むことに加えて、いくつかのICメーカーは、バスの機能を拡張しています。その好例は、Analog DevicesのLTC6820 isoSPI絶縁通信インターフェースです。このICは、差動信号を使って単一のツイストペア接続を介して通信する2つのSPIデバイス間にガルバニック絶縁を提供します(図7)。この信号モードでは、LTC6820のSPIインターフェースの使用可能範囲が最大100mに拡張されます。ただし、この場合、10mの距離を挟んだ1Mビット/秒の公称レートよりもクロックレートが低下します。


図7LTC6820アイソレータのペアは、SPIデバイス間にガルバニック絶縁を提供します。このICは、10mの距離で最大1Mビット/秒のデータ転送をサポートするほか、最大100mの距離で低いクロックレートでデータを転送できます。(画像提供:Analog Devices)

 絶縁は、パルストランスによって提供されます。この手法は、多くの場合、産業用ネットワーキングアプリケーションのほか、リモートセンサを読み取るときに使用されます。

結論

 SPIは、アドレスを指定してデータを読み書きするのではなく、入力をデータストリームとして記述できるアプリケーションにおいて、シンプルで低コスト、低オーバーヘッドのインターフェースが必要となる問題を解決します。そのため、SPIはマイクロコントローラとセンサ、デジタイザ、デジタル信号処理デバイス、およびその他のプロセッサとの間のデバイス間通信を処理するのに最適です。


免責条項:このウェブサイト上で、さまざまな著者および/またはフォーラム参加者によって表明された意見、信念や視点は、Digi-Key Electronicsの意見、信念および視点またはDigi-Key Electronicsの公式な方針を必ずしも反映するものではありません。

このページのコンテンツはDigi-Key社より提供されています。
英文でのオリジナルのコンテンツはDigi-Keyサイトでご確認いただけます。
   


Digi-Key社の全製品は 1個からマルツオンラインで購入できます


※製品カテゴリー総一覧はこちら



ODM、OEM、EMSで定期購入や量産をご検討のお客様へ【価格交渉OK】

毎月一定額をご購入予定のお客様や、量産部品としてご検討されているお客様には、マルツ特別価格にてDigi-Key社製品を供給いたします。
条件に応じて、マルツオンライン表示価格よりもお安い価格をご提示できる場合がございます。
是非一度、マルツエレックにお見積もりをご用命ください。


ページトップへ