目次

SMBus

http://smbus.org/
System Management Bus(SMBus),1995年にインテルが作成した.
I2Cと電気仕様が似ている.
最新バージョンは3.1

SMBus Quick Start Guide

PEC

Packet Error Code
メッセージが破綻していないかチェックする.メッセージの最後のデータ列に付与する.必須ということではないか規格に機能が盛り込まれている.
stm32の場合,I2CからSMBusを有効にするとPECを使うかオプションで設定できる.

データアクセス

Byte,Wordアクセス

Byte,Word(2byte)での書き込みの場合,コマンドアドレスを書き込んでその後に必要なデータを読み書きすればいい.
stm32のHALAPIを使う場合,I2CMemRead(),I2CMemWriteを使えばいい.
stm32のSMBusモード使ってないけどPEC使わないならこれでも通信できる.

Blockアクセス

Byte,Word以上のデータ量,3byte以上のデータを一気にアクセスすることをBlockアクセスと読んでいるらしい.
この場合,Byte,Wordのときのようにコマンドの後にすぐにデータをやり取りできるわけではない.
扱うデータの最初の1byteには,これから送受信するデータ長を入れておく.その後にデータを読み書きする.

SBS

http://sbs-forum.org/
Smart Battery System(SBS).正式名称はSmart Battery Data Specification
最新バージョンは1.1 SBS1.1
SMBus上で,電池に関わる情報(残量,電圧,温度など)を定義したプロトコル.
結構のメーカの打ってるBMSICはこのSBSに準拠してデータをやり取りできる.
使ったコマンドとかのメモ

Address Name Description
0x08 Temperature バッテリパック温度
0x09 Voltage バッテリパック電圧
0x0A Current バッテリパック電流