MAX II CPLDへのSMBusコントローラの実装

MAX II CPLD への SMBus
コントローラの実装
この資料は英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。こちらの日本語版は参考用としてご利用
ください。設計の際には、最新の英語版で内容をご確認ください。
2007 年 12 月 ver 1.0
Application Note 502
はじめに
本書では、アルテラ MAX II CPLD の SMBus(System Management Bus)コント
ローラについて説明します。例は MAX II CPLD の多機能性を示しています。
SMBus
I2C より派生した SMBus は 2 線式インタフェースで、各種システム・コンポーネ
ントは、このインタフェースを介して相互に、そしてシステムの残りの部分と通
信を行います。どの時点でも、1 つのデバイスのみがバスのマスタになって、1 つ
のスレーブまたは複数のスレーブとの間でトランザクションを実行できます。
SMBus は、システム関連タスクや消費電力管理関連タスクのコントロール・バス
として使用できます。SMBus は複数のデバイスとの通信に使用できるため、個別
のコントロール・ラインは削除できます。これにより、ピン数を削減できるだけ
でなく、将来の拡張に備えることもできます。
設 計 さ れ た コ ン ト ロ ー ラ は、SMBus 仕 様 バ ー ジ ョ ン 2.0 に 準 拠 し ま す
(www.smbus.org/specs を参照)。
SMBus
コントローラ
としての
MAX II CPLD
の使用
MAX II CPLD は、低コスト、低消費電力のデバイスです。SMBus 仕様では、電
気的特性として低消費電力と高消費電力の 2 つのクラスが定義されています。低
消費電力で動作する SMBus を備えた MAX II CPLD に SMBus コントローラを実
装することは、低消費電力アプリケーションでは好ましいソリューションです。
MAX II CPLD は、ホスト(マイクロコントローラ、マイクロプロセッサなど)と
SMBus 間のブリッジとして機能します(図 1 を参照)
。コントローラはホスト・
インタフェースと SMBus インタフェースを搭載しており、コントロール信号は
ホスト・インタフェースから SMBus インタフェースに送られます。設計された
コントローラは、マスタまたはスレーブとして動作できます。
SMBus コントローラは、汎用マイクロコントローラ・バス(アドレス、データ、
およびコントロール信号を持つ)と SMBus 間に配置されます。SMBus コントロー
ラは、マイクロコントローラのペリフェラルおよび SMBus 上の SMBus デバイス
(マスタまたはスレーブ)として動作します。
Altera Corporation
AN-502-1.0/JP
1
MAX II CPLD への SMBus コントローラの実装
図 1.
SMBus のブロック図
Microcontroller
Generic Interface
(ADD, DAT, CTRL)
µC interface
Altera
MAX II CPLD
SMBus interface
SMBDAT
SMBCLK
SMBus 上でのデータ転送
バス上のマスタとスレーブ間の通信は、開始、スレーブ・アドレス、データ転送、
および停止の 4 つのフェーズで構成されます(図 2 を参照)
。開始フェーズ後、ス
レーブ・アドレスが送信されます。マスタによって送信されるアドレスと一致す
るアドレスを持つスレーブのみ、確認ビットを返送して応答します。スレーブ・
アドレッシングが達成されると、データ転送はバイト単位で処理できます。マス
タは、STOP 信号を生成してバスを解放することによって通信を終了できます。
図 2.
SMBus データ転送
A: SMBDAT
B: SMCLK
A
MSB
B
1
START
2
ack
2
7
8
9
ack
1
2
9
Clock line held low
while byte processed
Altera Corporation
2007 年 12 月
SMBus コントローラとしての MAX II CPLD の使用
ホストと SMBus コントローラ間の設計済み汎用インタフェースには、アドレス・
バス、データ・バス、および必要なコントロール信号が含まれます。バス・イン
タフェース・ロジックは、マスタ・モードとスレーブ・モード間の切り替え、
START/STOP 信号の生成、パック・エラー・コード(PEC)の生成、R/W モード、
エラー通知などの機能を実行します。
このデザイン例には、以下の機能が組み込まれています。
■
汎用およびシンプルなマイクロコントローラ・インタフェース
■
マスタ動作モードおよびスレーブ動作モード
■
マスタからスレーブへの自動モード切り替えを持つアービトレーション・ロ
■
スト割り込み
マスタ・モードでの PEC の生成と検証
■
98.215 KHz 動作
■
マスタおよびスレーブ・モードでのクロック Low の拡張
ホスト・インタフェース
SMBus コントローラは、表 1 に示す信号で構成される非同期インタフェースを使
用します。
表 1.
非同期インタフェース信号
信号
接続
ADDRESS BUS [8]
入力
DATA BUS [8]
双方向
説明
目的のレジスタを選択するのに使用する µC アドレス・バス。
µC データ・バス。
IRQ
出力
割り込み要求。これはアクティブ High 信号です。
BUSY
出力
バスがアイドルまたはビジーのいずれの状態であるかを示します。これはアクティブ
High 信号です。
CS
入力
チップ・セレクト。これはアクティブ Low 信号です。
RD
入力
選択したレジスタのデータをデータ・バス上に置きます。これはアクティブHigh信号です。
WR
入力
データ・バス上に存在するデータを選択したレジスタに書き込みます。これはアクティ
ブ High 信号です。
RESET
入力
コントローラをリセットします。これはアクティブ High 信号です。
Altera Corporation
2007 年 12 月
3
MAX II CPLD への SMBus コントローラの実装
信号はアクティブ Low の CS を除いて、すべてアクティブ High です。この信号
が High になると、IRQ(割り込み要求)を除く他のすべてのラインがトライ・ス
テートになります。表 2 に、各種レジスタと対応するアドレスを示します。
表 2.
レジスタ
A1
A0
選択されるレジスタ
1
1
アドレス・レジスタ
0
0
データ・レジスタ
1
0
ステータス・レジスタ
A1 および A0 は 8 ビット幅アドレス・バスの最下位 2 ビットで、A0 が LSB です。
このバスの他の 6 ビットはすべてゼロです(必要に応じて変更できます)
。
アドレス・レジスタ
アドレス・レジスタは 8 ビット・レジスタで、コントローラのスレーブ・モジュー
ルのアドレスを格納します。アドレスに使用されるのは 7 ビットだけなので、コ
ントローラのイネーブルまたはディセーブルに LSB が使用されます。LSB がセッ
トされている場合、コントローラはイネーブルされます。このビットをクリアす
ると、コントローラはそのアドレスがバス上で送信されていることを検出しても
応答しません(表 3)
。
表 3.
アドレス・レジスタ
ビット
7..1
0
4
名称
説明
スレーブ・アドレス コントローラのアドレス(スレーブ・モード)
イネーブル /
ディセーブル
セットすると、コントローラをイネーブルします。
Altera Corporation
2007 年 12 月
SMBus コントローラとしての MAX II CPLD の使用
データ・レジスタ
データ・レジスタには、SMBDAT ラインに書き込まれる、またはそれから読み出
されるデータが保持されます。これは、SMBDAT ラインからホストへのデータ転
送、およびホストから SMBDAT ラインへのデータ転送に使用されます(表 4)。
表 4.
データ・レジスタ
ビット
名称
説明
7..0
データ・レジスタ
SMBus データ
ステータス・レジスタ
ステータス・レジスタには、実行中のプロセスのステータス情報が保持されます。
表 5 に、ビット位置と説明を示します。
表 5.
ステータス・レジスタ・ビット
説明
ビット
名称
セット
クリア
7
AM
スレーブ・モードでアドレスが一致す スレーブ・モードで実行される動作の完了後に、
る場合に、SMBus コントローラによっ SMBus コントローラによってクリアされる。
てセットされる。
6
DTE
データをスレーブ・モードでのみ転送 次のマスタ / スレーブ動作の前に、ホストによっ
できない場合に、SMBus コントローラ てクリアされる。
によってセットされる。
5
AL
アービトレーションが失われた。
4
M/S
SMBus コントローラはマスタとして機 SMBusコントローラはスレーブとして機能して
能している。
いる。
3
R/W
SMBus コントローラは、SMBDAT から SMBus コントローラは、SMBDAT にデータを
データを読み出す。
書き込む。
2
PEC
スレーブで PEC がイネーブルされてい マイクロコントローラによってクリアされる。
る場合に、マスタ・モードでのみセッ
トされる。
1
STOP
停止条件を生成する。
通常動作。
0
START
開始条件を生成する。
通常動作。
Altera Corporation
2007 年 12 月
通常動作。
5
MAX II CPLD への SMBus コントローラの実装
コントローラによって STOP が生成されると、ステータス・レジスタはクリアさ
れます。ステータス・レジスタのビット 4 ∼ 0 だけをホストが書き込みます。残
りのビットの値は、ホストが変更してはなりません。表 5 に示すレジスタはすべ
て、読み出しや書き込みが可能です。
SMBus コントローラとの通信
ホストはコントローラと通信する場合は、最初にステータス・レジスタを読み出
して、コントローラの現在の状態を確認し、必要であればステータス・レジスタ
に書き込み、さらに別のレジスタに書き込む必要があります。
図 3(ライト・サイクル)と図 4(リード・サイクル)に、ホストがコントローラ
と通信する際に従う必要があるシーケンスを示します。
ライト・サイクル :
1.
CS を Low にします。
2.
目的のレジスタのアドレスをアドレス・バスに置きます。
3.
データをデータ・バスに置きます。
4.
WR をアサートして、コントローラの少なくとも 1 内部クロック期間(5.5 MHz)
で書き込みを行います。
図 3.
ライト・サイクル
indicates high impedance
CS
ADDRESS BUS
Z
Z
DATA BUS
Z
Z
tsu:min
WR
tHD:min
RD
6
Altera Corporation
2007 年 12 月
SMBus コントローラとしての MAX II CPLD の使用
リード・サイクル :
1.
CS を Low にします。
2.
目的のレジスタのアドレスをアドレス・バスに置きます。
3.
RD をアサートして、データ・バスからデータを読み出します。
読み出し / 書き込み動作では、常にレジスタ全体を読み出し / 書き込みます。
1 ビットの処理はできません。
図 4.
リード・サイクル
indicates high impedance
CS
ADDRESS BUS
Z
Z
tsu:min
RD
DATA BUS
Z
Z
WR
以下は、ステータス・レジスタの代表的な使用例です。
コントローラをマスタ・モードでコンフィギュレーションし、CRC チェックをイ
ネーブルにして読み出し動作を実行する場合、ホストはステータス・レジスタの
START、PEC、R/W、および M/S ビットをセットします。バス上で転送されるデー
タの最初のバイト(通信対象のスレーブのアドレス)は、データ・レジスタに書
き込まれます。次に、コントローラは、SMBDAT ライン上にデータをシリアルに
出力します。コントローラは確認応答を受信した後、データの 1 バイトを読み出
してホストに割り込み、データ・レジスタからデータを読み出す必要があります。
データが読み出されない場合、コントローラは約 32 マイクロ秒待機した後、IRQ
と busy_bus をセットします。コントローラにデータの 1 バイトを読み出した後
で停止条件を生成させる場合、ホストはステータス・レジスタの STOP ビットを
セットします。つまり、ステータス・レジスタで STOP ビットがセットされてい
る場合、PEC がセットされると、2 バイトを読み出した後で STOP が生成されま
す。PEC がセットされていない場合は、データの 1 バイトのみを読み出した後で
STOP が生成されます。
Altera Corporation
2007 年 12 月
7
MAX II CPLD への SMBus コントローラの実装
マスタ・モードでは、コントローラは IRQ の発生後、ホストが応答するまで常に
約 32 マイクロ秒待機します。
IRQ は、以下の状況では High になります。
マスタ・ライト・モード :
■
データ・レジスタに書き込まれたデータ・バイトが正常に転送されると、ホ
■
ストに対してデータ・レジスタに次のバイトを書き込むよう指示が与えられ
ます。
転送されたデータに対してスレーブからの確認応答が受信されない場合。
■
アービトレーションが失われた場合。
■
PECがセットされたモードでは、STOPビットがセットされた後でもIRQが発
生する場合は、スレーブから受信した PEC がコントローラが生成した PEC
と一致していなかったことを示します。
マスタ・リード・モード :
■
SMBDAT ライン上で転送されたアドレス・バイトに対して、どのスレーブか
■
らも確認応答が受信されない場合。
データの 1 バイトがスレーブから受信され、ホストに対してバイトの読み出
■
しの指示が与えられた場合。
アービトレーションが失われた場合。
スレーブ・モード(スレーブ・モードでのクロック Low の延長は、このコント
ローラではサポートされていません):
■
マスタから受信したアドレスが、アドレス・レジスタのデータと一致する場
■
合。
SMBDAT ライン上でデータの 1 バイトの読み出し / 書き込みが完了した場合
— ホストに指示を与えます。
ビジー信号は以下のことを示します。
■ ビジー信号がアサートされた場合、SMBDAT ライン上でデータが転送中であ
■
ることを示します。
IRQ がアサートされ、ビジー信号が Low の場合、現在のモードがエラーなし
■
で実行されたことを示します。
BUSY信号がLowの場合に、
実行中の動作がないときは、
SMBus上でアクティ
■
IRQ がビジー信号と共にアサートされる場合、現在の動作が失敗したことを
ビティがない(つまり、SMBus はアイドル状態)ことを示します。
示します。失敗した理由は、以下のいずれかが考えられます。
マスタ・モード :
●
●
●
8
スレーブからの確認応答が受信されていない。
アービトレーションが失われている。
IRQのアサーション後、ホストが応答するまでに約32マイクロ秒を超え
る時間が経過した。
Altera Corporation
2007 年 12 月
実装
●
マスタ・リード・モードで受信した PEC が、コントローラで計算された
PEC と異なる。
スレーブ・モード :
●
●
●
スレーブ・ライト・モードで、確認応答が受信されていない。
IRQ がアサートされた後、SMBCLK ライン上でクロックが Low の期間内
にホストが応答できなかった。
SMBus 上で STOP 条件が検出された。
実装
EPM1270 を使用して、このデザインを実装できます。デザインのソース・コード
は、コンパイルされ、MAX II CPLD にプログラムされます。ホスト・インタ
フェース・ポートと SMBus ラインは、適当な I/O ピンにマップされます。
ソース・
コード
このデザイン例は、Verilog HDL を使用して作成されています。ソース・コード、
テストベンチ、および完全な Quartus II プロジェクトは、以下のサイトから入手
できます。
www.altera.co.jp/literature/an/an502_design_example.zip
まとめ
このデザイン例で示すように、MAX II CPLD は、SMBus コントローラを実装す
るための最適な選択肢です。MAX II CPLD の特長である低コスト、低消費電力、
コアでのパワー・オン・シーケンスへの許容力、および I/O バンクは、このよう
なアプリケーションに最適です。
関連情報
以下に、関連資料を示します。
■
MAX II CPLD ホームページ :
www.altera.co.jp/products/devices/cpld/max2/mx2-index.jsp
■
MAX II デバイスの資料ページ :
www.altera.co.jp/literature/lit-max2.jsp
■
MAX II パワーダウン・デザイン :
www.altera.co.jp/support/examples/max/exm-power-down.html
■
MAXII アプリケーション・ノート :
「AN 428: MAX II CPLD のデザイン・ガイドライン」
「AN 422: MAX II CPLD を使用したポータブル・システムにおける消費電力
の管理」
Altera Corporation
2007 年 12 月
9
MAX II CPLD への SMBus コントローラの実装
表 6 に、このアプリケーション・ノートの改訂履歴を示します。
改訂履歴
表 6.
改訂履歴
日付 & バージョン
2007 年 12 月 v1.0
101 Innovation Drive
San Jose, CA 95134
www.altera.com
Literature Services:
[email protected]
10
変更内容
初版
概要
—
Copyright © 2007 Altera Corporation. All rights reserved. Altera, The Programmable Solutions Company, the stylized
Altera logo, specific device designations, and all other words and logos that are identified as trademarks and/or service
marks are, unless noted otherwise, the trademarks and service marks of Altera Corporation in the U.S. and other
countries. All other product or service names are the property of their respective holders. Altera products are protected
under numerous U.S. and foreign patents and pending applications, maskwork rights, and copyrights. Altera warrants
performance of its semiconductor products to current specifications in accordance with Altera's standard warranty, but
reserves the right to make changes to any products and services at any time without notice. Altera assumes no
responsibility or liability arising out of the application or use of any information, product, or service described herein
except as expressly agreed to in writing by Altera Corporation. Altera customers are advised to
obtain the latest version of device specifications before relying on any published information and
before placing orders for products or services.
Altera Corporation