SMBus
http://smbus.org/
System Management Bus(SMBus),1995年にインテルが作成した.
I2Cと電気仕様が似ている.
最新バージョンは3.1
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 | バッテリパック電流 |