この投稿では、ICの通信故障によるSPI通信とI2C通信の影響について説明します。
SPI通信やI2C通信は、組込み製品でマイコンと周辺ICの間で多く用いられる通信です。簡単にSPI通信およびI2C通信を紹介します。詳しくは別途調べてください。
項目 | SPI通信(Quad SPIは別途) | I2C通信 |
---|---|---|
通信方式 | 同期式シリアル通信 全二重 | 同期式シリアル通信 半二重 |
通信線 | SCLK(クロック) MOSI(Master-Out、Slave-In データ) MISO(Master-In、Slave-Out データ) SS(Slave Select) | SCL(クロック) SDA(データ) |
通信シーケンス | 1. MasterからSS “Low”出力 2. MasterからSCLK出力 3. MasterはSCLKに同期してMOSI出力 4. SlaveはSCLKに同期してMISO出力 | 1. MasterからSDA出力(Slaveアドレスやデータ) 2. MasterはSDA出力後すぐにSCL出力 3. Slaveは、MasterのSDAに合わせてSDA出力(ACKやデータ) |
図のように、SPI通信およびI2C通信において、マスターをマイコン(MCU)とし、スレーブとしてIC ABCおよびIC DEFを接続しているとします。IC ABCの通信機能が故障した場合、MCUの各端子およびIC DEFとの通信に影響が出る可能性があります。その場合のSPI通信およびI2C通信での影響は次の通りです。
SPI通信では、SS-ABCを“Hi”に固定することで、MCUのSPI機能およびIC DEFとの通信に影響が出る可能性が低くなります。
I2C通信では、MCUのI2C機能およびIC DEFとの通信に影響が出る可能性があります。
ご参考)
AUTOSARでは、SPI通信の仕様はありますが、I2C通信の仕様はありません。I2C通信を実装する場合、Complex Device Driverとして独自に実装する必要があります。機能安全規格を適用する製品では、SPI通信が多く用いられる理由だと思います。