DS2703の通信フローチャート
要約
SHA-1バッテリパック認証ICのDS2703はさまざまな携帯アプリケーションでリチウムイオンバッテリパックの認証を確実に行う信頼性の高い暗号ソリューションを提供します。DS2703が認識するコマンドは11種あり、それぞれ正しいコマンドを実行するために従わなければならない特別なシーケンスを備えています。このアプリケーションノートはDS2703の完全なトランザクションシーケンスおよび可能なあらゆる通信シーケンスのフローチャートを提供します。
はじめに
DS2703 SHA-1バッテリパック認証ICはさまざまな携帯アプリケーションでリチウムイオン(Li+、Li-ion)バッテリパックの認証を確実に行う信頼性の高い暗号ソリューションを提供します。このデバイスは携帯電話、PDA、またはその他の携帯型コンピュータ機器などのホストシステムのバッテリパックを認証するためにセキュアハッシュアルゴリズム(SHA-1)を使用します。バッテリパックにDS2703を組み込むことによって、システム性能を低下させるかまたはユーザに危害が加わる可能性がある純正ではないバッテリパックからホストを保護します。
DS2703は11種のコマンドを認識し、それぞれ正しいコマンドを実行するためには従わなければならない特別なシーケンスを備えています。このアプリケーションノートはDS2703の完全なトランザクションシーケンスおよび可能なあらゆる通信シーケンスのフローチャートを提供します。
トランザクションシーケンス
1-Wire®ポートによるDS2703のアクセスのプロトコルは次の通りです。
- 初期化
- ネットアドレスコマンド
- ファンクションコマンド
- データ転送(コマンドのすべてがデータ転送を伴うわけではありません)
ネットアドレスコマンド
バスマスタが1個またはそれ以上のスレーブのプレゼンスを検出したら、バスマスタはネットアドレスコマンドの1つを発行します。Read、Match、Search、またはSkipです。図1は各ネットアドレスコマンドのトランザクションフローチャートを示しています。
図1. DS2703のネットアドレスコマンドのフローチャート
ファンクションコマンド
初期化およびネットアドレスコマンドが送信されると、DS2703はバスマスタからのファンクションコマンドの受信を待機しています。表1はDS2703が認識する11種のファンクションコマンドのリスト、および各コマンドの簡単な説明を示しています。図2は各コマンドを正しく実行するためにDS2703に要求されるフローを示しています。マスタから同じシーケンスを要求されるコマンドはフローチャート上では1個のブランチにまとめられています。
表1すべてのファンクションコマンド
COMMAND | HEX | FUNCTION |
Write Challenge | 0C | SHA-1の処理のために64-bitのチャレンジを書き込みます。これはCompute MACおよび Compute Next Secret commandsの前に必要です。 |
Compute MAC Without ROM_ID and Return MAC | 36 | ROM_IDの代わりに論理1でW0~W15のハッシュを計算します。 |
Compute MAC With ROM_ID and Return MAC | 35 | ROM_IDを使ってW0~W15のハッシュを計算します。 |
Load Secret | 5A | 供給されたデータに対する64ビットの秘密鍵を書き込みます。DQライン上にプログラミング電圧が必要です。 |
Compute Next Secret Without ROM ID | 30 | 新しい公開鍵を生成します。プログラミングパルスが必要です。 |
Compute Next Secret With ROM ID | 33 | 新しい固有鍵を生成します。プログラミングパルスが必要です。 |
Lock Secret | 6A | 秘密鍵の変更を防止するためにロックビットを設定します。プログラミングパルスが必要です。 |
Set Overdrive | 8B | OVERDRIVEに対する1-Wireインタフェースタイミングを設定します。プログラミングパルスが必要です。 |
Clear Overdrive | 8D | STANDARDに対する1-Wireインタフェースタイミングを設定します。プログラミングパルスが必要です。 |
Activate Thermistor | A9 | サーミスタ測定のためにTHM出力をアクティブにします。これはコマンドの終了後50μs以内に起こり、VBコンデンサが放電するまで続きます。 |
Reset | BB | DS2703 (ソフトウェアPOR)をリセットします。 |

図2. DS2703のファンクションコマンドのフローチャート
結論
DS2703は特別なシーケンスが必要です。ファンクションコマンドを正しく実行するためにはある特定のタイミング条件が必要です。このアプリケーションノートは完全なトランザクションシーケンスを詳細に説明し、あらゆる可能な通信シーケンスに対するフローチャートを示しました。