複数のデバイス間の接続を簡素化するためにシリアルペリフェラルインターフェースを使用する理由と方法

著者 Art Pini

Digi-Keyの北米担当編集者 の提供

組み込みシステムでは、1つ以上のプロセッサまたはマイクロコントローラを使用して、より複雑なシステム内で専門化された動作を実行しています。これらの内蔵コントローラは、他のシステムコンポーネントやセンサに加えて、他のコントローラとも通信する必要があります。よくあることですが、特に通信するデバイスの数が少ない場合、複雑なシリアルインターフェースやプロトコルをプログラムおよびトラブルシューティングすることが過剰に難しくなる可能性があります。

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

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

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

SPIとは

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

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

SPIは最大4つの信号ラインを使用します(図1)。通常、プロセッサまたはコントローラであるマスターデバイスは、クロック(SCK)およびチップセレクト(CS)ラインを供給して制御します。全二重動作は、マスターアウトスレーブイン(MOSI)とマスターインスレーブアウト(MISO)のデータラインで処理されます。簡単な単一マスターと単一スレーブの構成では、チップセレクトラインを排除して、スレーブへのCS入力を有効化された論理条件に強制することができます。スレーブデバイスがデータの送信のみを実行できる場合(半二重通信)、MOSIラインも排除でき、信号数がさらに削減されます。そのような方法でデータはクロック信号によってクロックアウトされるため、データ転送は、各クロックに対して1ビットがシフトアウトされるシフトレジスタに類似しています。

SPIの基本的な全二重接続の図

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

複数のスレーブデバイスを処理する2つのアプローチがあります(図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)。

SPIクロッキングモードの選択の図

図3:SPIクロッキングモードの選択により、データがサンプリングされるアクティブなクロックエッジが修正されます。(画像提供:Digi-Key Electronics)

マスターでのCPOLおよびCPHAラインの設定により、クロック極性と、データをクロックするためのアクティブエッジが決定されます。モード1が最も一般的に使用されますが、設計者は、他の3つのモードも同じように利用可能です。

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

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

Microchip TechnologyのATtiny816マイクロコントローラのブロック図

図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°C~+125°Cの温度範囲に対応しています。また、2.7V~5.5Vの電源で動作し、動作中に250マイクロアンペア(µA)消費します。1µA消費する低電力のシャットダウンモードも備えています。

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

Microchip TechnologyのTC77温度センサの図

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

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

SPIの使用範囲の拡張

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

Analog DevicesのLTC6820アイソレータの図

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

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

結論

SPIは、データを読み取り、アドレスの場所に書き込むこととは対照的に、ソースをデータストリームとして記述できるアプリケーションでは、シンプルかつ低コストのオーバーヘッドが少ないインターフェースが必要であるという問題を解決します。そのため、SPIは、マイクロコントローラとセンサ、デジタイザ、デジタル信号処理デバイスやその他のプロセッサの間でデバイス同士が通信するときの処理に最適です。

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

著者について

Art Pini

Arthur(Art)PiniはDigi-Key Electronicsの寄稿者です。ニューヨーク市立大学の電気工学学士号、ニューヨーク市立総合大学の電気工学修士号を取得しています。エレクトロニクス分野で50年以上の経験を持ち、Teledyne LeCroy、Summation、Wavetek、およびNicolet Scientificで重要なエンジニアリングとマーケティングの役割を担当してきました。オシロスコープ、スペクトラムアナライザ、任意波形発生器、デジタイザや、パワーメータなどの測定技術興味があり、豊富な経験を持っています。

出版者について

Digi-Keyの北米担当編集者