改めてSPIについてを知る1に引き続き、SPIについてを理解する為に整理する。
SPI通信はデータのやりとりを行う機器間で双方でUARTのようなシリアル通信モジュールを持たない場合に使用されるシリアル通信であるらしい。
上記のような片方にシリアル通信モジュールがない場合は、クロックとシフトレジスタを利用するとデータの送受信を行えるようになる。
芹井 滋喜著 第 3 章 内蔵シリアル通信モジュールを使わない,使えないときに役立つ 汎用入出力ポートを使ったシリアル通信のテクニック - トランジスタ技術 2006 年 6 月号 140〜141
シフトレジスタとはなんぞや?ということで調べてみることにする。
シフトレジスタについてWikipediaに記載されている内容を抜粋してみると、
/******************************************/
シフトレジスタとは、複数のフリップフロップをカスケード接続し、データがその回路内を移動(シフト)していくよう構成したデジタル回路のこと。
/******************************************/
※シフトレジスタ - Wikipediaより一部改変して抜粋
新しい用語が出てきたので、それらの用語から触れていく。
フリップフロップというのは、1ビットの情報を一時的に 0 または 1 の状態で保持(記憶)することができる論理回路で、トランジスタを活用するらしいけれども、今はこれ以上触れないでおく。
Static Random Access Memory - Wikipedia
カスケード接続のカスケードは同じものが数珠つなぎというイメージがあるので、0 or 1の論理回路が連続して繋がっているということで良いだろう。
これで、1001001 のような値を扱えるようになる。
シフトレジスタについてはWikipediaに記載されている内容を引用してみる。
シフトレジスタで最も単純だとされる直列入力直列出力型を挙げる。
入力が 1,1,0,1,0,0,0,0 の順にあったとすると、 下の表のような状態の流れとなる。左端の列が入力に近い方のフリップフロップを表している。
0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 |
1 | 1 | 0 | 0 |
0 | 1 | 1 | 0 |
1 | 0 | 1 | 1 |
0 | 1 | 0 | 1 |
0 | 0 | 1 | 0 |
0 | 0 | 0 | 1 |
0 | 0 | 0 | 0 |
このイメージを持って、SPI通信について触れていく事にする。