Volume One アーティクル デザインショーケース マイクロコントローラによる8051ベースの設計の電力効率改善 3 光トランシーバのライトショーの裏側 11 SHA-1による電子取引のセキュリティ 15 8051マイクロプロセッサのクロックとしてのEconOscillator 18 ダラスの多機能1-Wireネットワークの解剖 21 マイクロコントローラ により、8051を 使用した設計の 電力効率を改善 電力)の決定は、必要な性能及び割込み待ち時間を含む いくつかの要因に依存します。しかし、どういう基準を 用いるにせよ目的は同じです。すなわち、アプリケー ションの要件にできるだけ近いところに動作周波数を 合せるということです。 TYPICAL 8051 ICC vs. FREQUENCY CHARACTERISTICS 25 CURRENT CONSUMPTION (mA) ポータブル製品の機能と能力は日々進歩しています。 製品に対するカスタマの要求が増すと共に、大きな計算 能力が必要となります。同時に、カスタマは消費電力の 小さな製品を求めます。こうした競合する要求の核心に あるのが、ポータブル機器の中で最も消費電力の大きな マイクロコントローラです。 低電力プロセッサは数多くありますが、性能的には限界 があるのが普通です。ダラスセミコンダクタの高速マイ クロコントローラファミリは、電力と性能のバランスが 優れています。本製品は定評のある8051構造をベース にしています。使いやすく、I/O構造が豊かで、しかも 広く受け入れられている点で、8051は設計者の間で 好評です。8051はポータブルの分野にも普及してきて おり、多くのアプリケーションに使用されています。 20 15 10 5 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 OPERATING FREQUENCY (MHz) 図1. 一般的な8051マイクロコントローラの標準電力曲線 本稿では、8051コントローラを使って消費電力を最小 限に抑える方法について説明し、特に高性能8051を 使った設計のバッテリ寿命を延ばす新しい構造改良に焦 点を当てています。消費電力を低減するために周辺デバ イスをチップ上に集積化し、正しいクロックソースを 選択する方法について説明します。電力を節約するため のソフトウェア技法を示すと共に、ストップモードを 使ったシステムの節電方法についても説明します。 高速コア 8051を使った設計において、消費電力を減少させる最も 直接的な方法はマイクロコントローラの効率を改善する ことです。8051の元々の設計は12クロック、2フェッチ/ マシンサイクル構造をもとにしています。しかし、この 高速マイクロコントローラファミリの場合は4 -又は 1-クロックサイクルコアを使用しています。これは計算 効率が高く、命令を実行するために必要なクロックサイクル が少ないために、実行時間が速くなり、最大クロック レートが増加します。 クロック速度 マイクロコントローラ設計において消費電力を決定する 最も重要な要因はクロック速度です。コンプリメンタリ メタルオキサイド半導体(CMOS)デバイスの消費電力は、 クロック速度に直接比例します。従って、消費電力という 観点からはプロセッサをできるだけ遅い速度で動作 させるのが有利です。 通常、高速度コアの利点としては性能面が注目されますが、 消費電力の面でも重要な利点があります。プロセッサの 命令実行が最適化されると、同じタスクを達成するため に必要な時間が短くなります。多くのポータブル製品は バーストモードで動作しますが、このモードにおいては 環境データの記録、バーコードのスキャンといった短時 間の作動の後に長時間の非作動期間が続きます。 プロセッサが作動していなければならない時間を短縮 すれば、その分だけエネルギーの消費も少なくなります。 図1に、一般的な8051マイクロコントローラの標準電力 曲線を示します。この関係は全てのポータブル機器設計 者が知っています。一般に、電流対周波数特性は直線的 で、DCオフセットがあります。この自己消費電流は チップ上のコンパレータ、オペアンプ等の静的回路に 起因します。これは値としては小さいですが(<1mA)、 常時消費される電流として考慮する必要があります。 こうして効率が改善されると、クロック速度を低減しな がら同等の性能を維持することもできます。再設計され たコアが12ではなく4クロック/サイクルで動作すると、 クリスタルの速度を下げても同じ量の作業を達成するこ とができます。消費電力はクリスタルの速度に直接比例 省電力設計においては、常に動作速度をできるだけ遅く しようとします。最小システム周波数(ひいては最小消費 3 マイクロコントローラを使ったシステムは、いくつかの 周辺デバイスを使用しているのが普通です。こうした周辺 デバイスとしては、外部UART、パワーオンリセット 回路及びウォッチドッグタイマ等が挙げられます。 8051製品ファミリの強みの1つは、数多くの周辺機能 がチップ上で提供されていることです。周辺デバイスの 集積化により部品点数が減少して設計がシンプルになる だけでなく、消費電力の低減にもつながります。周辺 デバイスの本来の機能は、そのデバイスがプロセッサの 内部にあっても外部にあっても同じ量の電力を消費する と仮定できます。しかし、周辺デバイスをチップ上に 配置することにより、外部バスの駆動に伴うスイッチング パワー損失を排除することができます。 するため、性能を犠牲にすることなく消費電力を低減する ことができます。 図2に、同じレベルの性能で同じタスクを実行する3つの マイクロコントローラの消費電力を示します。2つの マイクロコントローラは12外部クロック/マシンサイク ルで動作する標準80C3xタイプ、もう1つは4クロック/ マシンサイクルで動作するDS80C320マイクロコント ローラです。全てのデバイスについて消費電流を測定し、 DS80C320の性能改善度を小さめに250%(2.5x)と仮 定した上で比較しました。この図から明らかなように、 クロック/サイクルを低減したコアは同じスループット で見た場合に著しく電流が低減します。この傾向は高性 能レベルで特に顕著です。 内部プログラムメモリ 8 0 5 1のもう1 つの機能で、一般には周辺機能として 認識されていないものとして、プログラムメモリがあり ます。8051タイプは全て、様々な量のオンチッププロ グラムメモリを備えています。これは多くのシステム設 計者から部品点数と基板面積を減らす方策として望まれ ていますが、ポータブル機器のバッテリ寿命の改善にも 貢献します。前述のように、外部バスを駆動する必要が なくなるため消費電力が減少するからです。オンチップ メモリには更にもう1つの節電効果があります。8051 構造は、アドレスの下位バイトのデマルチプレックス用 に74373タイプのラッチを必要とします。図3にプログ ラムメモリが内部の時と外部の時の比較が示されていま す。第1の例は74AC573と27C256 EPROM(アクセス 時間70ns)付のDS87C520高速マイクロコントローラ です。第2の例は同じコントローラを内部メモリで動作 させた例です。いずれのシステムも11.0592MHzで動 作していて、短いプログラムを実行しています。この図 から明らかなように、外部EPROMとラッチをシステム から排除することによって高周波で49mAもの電流を 節約することができます。 RELATIVE POWER CONSUMPTION 25 20 ICC (mA) 80C32 80C31 15 10 5 DS80C320 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 PERFORMANCE RELATIVE TO 1MHz 8051 図2. クロックサイクルを低減したコアは、同じスループットに対して 消費電流が小さくなります。 集積化 周辺デバイスをチップ上に集積化するのも節電の方法の 1つです。チップ外で信号を駆動する場合、発生デバイス は外部負荷を駆動するために必要なスイッチングパワー とDC損失に対処しなければなりません。スイッチング パワー(PSW)とは、ディジタル信号が変化する時に消費 される電力です。スイッチングパワーは次式で近似する ことができます。 PSW α CV 2/T 内部データメモリ 前述のように、外部RAMの代わりにオンチップメモリを 使用すると電力が節約されます。80C32タイプのスク ラッチパッドは大きくなっているため(256バイト)、 小さなプログラムの一部のデータ保存及びスタック動作 に十分です。このため、外部RAMを排除することができ ます。 (1) ここで、Cは受信ゲート入力バッファと2つのゲート間 の相互接続の集中容量、Tは信号のクロック周期です。 CMOS入力の標準的な入力容量は10pFです。システム のスイッチングパワーの正確な値を計算することは困難 ですが、マイクロコントローラが駆動しなければならな い外部負荷やピンが増える度にそれだけ余計に電力が 消費されることは明らかです。 しかし、これ以上のデータメモリを必要としたり外部 スタックを必要とする設計の場合は、SRAMを追加する 必要があるかもしれません。低電力SRAMは提供されて いますが、消費電力には74373シリーズラッチに伴う 分及び外部バスを駆動する時の容量性損失を含める必要 があります。この問題は、拡張オンチップRAMを供えた デバイスを使用することで軽減することができます。 4 COMPARISON OF EXTERNAL vs. INTERNAL SRAM COMPARISON OF EXTERNAL vs. INTERNAL EPROM 90 45 80 40 35 70 EXTERNAL ICC (mA) ICC (mA) EXTERNAL 30 60 50 40 25 20 30 15 20 10 INTERNAL 10 INTERNAL 5 0 0 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 FREQUENCY (MHz) FREQUENCY (MHz) 図4. 内部SRAMとラッチの排除により電力を節約 図3. 内部メモリの使用により消費電流を大幅に低減 図5に消費電流と波形の関係を示します。クロックソース は設定可能な波形発生器で、サイン波、三角波又は矩形波 を出力する能力を持っています。示されている消費電流 は4つのデバイス(従来のコア及び高速コア)の平均です。 この比較から、消費電流がクロック波形の立上がり (及び立下がり)時間に直接比例することが分かります。 三角波は傾きが最も小さく、矩形波は傾きが最も大きく なっています。矩形波は平均的に三角波よりも0.75mA 小さくなっています。これは、外部クロック発振器を 使用する場合には、立上がり及び立下がり時間の短い 発振器を使用することで消費電流を低減することができ るということを示しています。このことは周波数が低く なると更に重要になります。なぜなら、デバイスの遷移 時間が長くなるからです。 図4に、8051 MOVXデータスペースにマッピングされ たSRAMを使った2つのシステムの消費電力を示します。 第1のシステムではDS87C520高速マイクロコントロー ラに74AC573ラッチ及びDS2064 SRAMを付けていま す。第2のシステムでは同じマイクロコントローラを 使っていますが、内部MOVXデータメモリを1Kバイト 使っています。いずれのマイクロコントローラも 11.0592MHzで動作し、MOVXデータメモリの読取り と書込みを行う短いプログラムを実行しています。この 図から明らかなように、外部SRAMとラッチをシステム から排除することによって高周波数で9mAもの電流を 節約することができます。 クロックソース 一部の8051タイプはオンチップ内部リング発振器を 使用しています。これはパルスを伝播する一連のイン バータからなっています。これにより、デバイスを駆動 する能力を持った約2MHz∼4MHzの内部クロックソース が提供されます。これはクリスタルを使用しなくても良 いため、非常に低電力のクロックソースとなります。 DS87C520高速マイクロコントローラの特性測定の 結果、リング発振器を使った動作により、約3.6mAで 7MHz 8051に相当する性能が得られることが分かって います。リング発振器はピエゾ電気式クリスタルのよう な安定性は持っていませんが、低電力であることと、 パワーオン遅延が無視できるほど短いことにより、電源 管理上重要な要因となっています。 電力の観点から見て、もう1つの重要なシステム部品は クロックソースです。標準的な8051設計においては、 外部水晶クリスタルを内部発振器アンプで励起するか、 あるいは外部クリスタル発振器を使用します。外部クリ スタル発振器が使用されている場合、クロックの波形が 消費電力に影響を与えます。XTAL1ピン(外部クロック 信号を8051に供給するために使用)の入力段階はコンプ リメンタリドライバを使用するのが普通です。入力 クロックがハイとローの間で遷移する時、これらのドラ イバが一時的に両方ともオンになり、大きな電流が流れ ます。矩形波の場合はハイとローの間の遷移がほとんど 瞬間的であるため、両方のデバイスがオンである時間は 最小限になります。立上がり/立下がり時間の遅い波形 (例えばサイン波と三角波)は遷移を完了するのに時間が かかるため、両方のドライバがオンである時間が長くな ります。このために電流と消費電力が増加します。 5 ストップモードを解除する場合に問題となります。実際、 タスクが非常に短い場合(5ms以下)は、クリスタルの リスタート期間の方がタスクそのものより大きな電力を 消費することになります。リング発振器を使用して ストップモードから「クイックスタート」を行うなら、 この遅延を避けることができます。これにより、ストップ モードを解除する時の消費電力を大幅に低減できます。 WAVEFORM vs. ICC COMPARISON 25 TRIANGLE ICC (mA) 20 SINE 15 SQUARE 10 図6に、ストップモードを解除して短いタスクを実行し ている2つのシステムの動作を示します。1つは従来の 外部クリスタルを備えており、もう1つは内部リング 発振器を備えています。リング発振器を持たない方の デバイスは、クリスタルのウォームアップ期間中待たな ければなりません。この間デバイスは電力を消費します が、有用な作業は行われていません。第2のデバイスは 内部リング発振器を備えたDS87C520高速マイクロ コントローラで、ストップモード解除後直ちに動作を再 開することができます。この例の場合、ルーチンは約 2MHzで4ms以内に実行されます。図に示すように、 ストップモード解除時に短いタスクを実行する場合は、 リング発振器を使用することによってエネルギー消費が 大きく低減されます。 5 0 1 5 10 15 20 FREQUENCY (MHz) 図5. 発振器波形エッジが鋭い方が消費電力は減少します。 クロック管理 前述のように、マイクロコントローラの動作周波数は、 デバイスの消費電力に最も大きく影響する要素です。 システムクロック周波数は主にハードウェア機能ですが、 8 0 5 1はこの抑制をある程度制御できます。これは、 デバイスの一部又は全部の内部動作周波数を減速又は 停止することで可能になります。従来の8051構造には、 アイドル及びストップという2つのクロック制御モード があります。 アプリケーションによっては、ストップモード解除後の 短時間の間クリスタル発振器特有の安定性が必要とされ ます。リング発振器は、そのような場合も有用です。 ストップモード解除の直後、デバイスはクリスタル発振器 を再スタートします。続いて、クリスタルがまだウォーム アップしている間に、必要なデータ又はレジスタを初期 化します。殆どの高速マイクロコントローラは、クリス タル発振器が安定したかどうかを示すステータスビット を備えているため、クリスタル発振器コードの初期化 ルーチン完了後にソフトウェアによってステータスビット をポーリングすることにより、高精度タイミング動作を いつ始められるか決めることができます。 ストップモードの改善 ストップモードは、8051の設計者が使用できる最も低 電力の状態です。このモードにおいては、内部クリスタル アンプが停止し、デバイスの動作が止まります。ストップ モードの解除は通常、外部リセットにより行われます。 外部割込みを使用してストップモードを解除するように なっている製品もあります。 ストップモードの効率を改善するもう1 つの方法は、 リセットではなく割込みを使用して解除することです。 これにより、プロセッサはリセットベクターからリス タートする必要がなくなり、STOPビットの設定に続く 命令により直ちに動作を再開します。リセットの原因を 決定する必要がなくなるため、短時間のうちに有用な タスクを開始することができます。 ストップモードの欠点の1つは、クリスタルが動作を再 開しつつある「デッドタイム」に電力が消費されることで す。クリスタル発振器の動作は水晶クリスタルの動きに 依存しています。物理的な制限のために、クリスタルの 発振がデバイスの動作に十分な振幅に達するにはある程度 の時間を要します。このウォームアップ期間は、クロック ソースが外部クリスタル及び内部クリスタルアンプであ るかどうか、又は外部クリスタル発振器を使用している かどうかに関わらず存在します。期間の長さはクリスタル 及び関連アンプの特性によって異なりますが、3ms∼ 12msです。 アイドルモード アイドルモードは、オリジナルの8051構造で使用され ている第2クロック管理モードです。このモードはCPU の動作を停止しますが、チップ上の汎用タイマの動作は 維持します。省電力アプリケーションにおいては、これ らのタイマを使って定期的にデバイスをウェイクアップ してタスクを実行するか、又はタスクを実行するべきか どうかポーリングします。 消費電力に対するウォームアップ期間の影響とは、この 期間中デバイスが有用な動作を行わないのに電力を消費 することです。これは、デバイスが頻繁にストップモード に出入りする場合、又は短いタスクを実行するために 6 STOP MODE EXIT WITHOUT RING OSCILLATOR START-UP ENTER STOP MODE µC OPERATING CLOCK STABLE EXIT STOP MODE µC HALTED CRYSTAL WARM UP 1 ENTER STOP MODE µC OPERATING µC HALTED CRYSTAL OSCILLATION INTx POWER CONSUMPTION 1 CRYSTAL WARM UP PERIOD IS 4MS TO 10MS DEPENDING ON CRYSTAL TYPE AND SPEED. STOP MODE EXIT WITH RING OSCILLATOR START-UP ENTER STOP MODE µC OPERATING EXIT STOP MODE µC HALTED ENTER STOP MODE µC OPERATING 1 µC HALTED CRYSTAL OSCILLATION RING OSCILLATION INTx POWER SAVED 2 POWER CONSUMPTION 2 ADDITIONAL POWER SAVINGS DUE TO DECREASED RING OSC. CURRENT COMPARED TO CRYSTAL AMPLIFIER. 図6. リングがある場合とない場合のストップモード解除の比較 標準8 0 5 1タイマは1 6ビットに制限されているため、 許容される最大タイムアウト期間はクロック速度が 16MHzの時に31msです。これより長い期間が必要な 時は、複数タイマのオーバーフローが必要となります。 この場合、デバイスは時々カウンタを動作させるために フル動作を再開する必要がありますが、有用な動作は しないため、消費電力が増加します。 又はストップモードを解除できます。RTCによるストップ モードの解除は、デバイス動作の長時間停止に最も効率 的な方法です。 電源管理モード アイドルモードはプログラムの実行を停止することによ って消費電力を低減しますが、内部タイマは引き続き 外部クロック周波数で動作します。この場合タイマは 基本的に「スタンバイ」状態で動作していることになるため、 相当な電力の消費量になります。 長いタイムアウト期間を必要とする場合は、長期間の 内部タイマを使用して下さい。8051の中にはウォッチ ドッグタイマを備えたものがあり、これをデバイスの ウェイクアップにも使用することができます。ウォッチ ドッグタイマは、長いタイムアウト期間(およそ2 2 6 クロックサイクル)に設定することができます。これに より、16MHzで4.2秒の最大タイムアウト期間が可能と なります。例えば、3秒毎に低電力状態からウェイク アップしてタスクを実行するアプリケーションがあると します。この動作を内部タイマで計時する場合、デバイス は有用な作業をすることなく96回もアイドルモードから 解除される必要があります。タイムアウトの長いウォッチ ドッグタイマを使えば、デバイスは1度だけアイドル モードを解除してタスクを実行し、低電力状態に戻る ことができます。 デバイス全体のクロック速度を低減する方法の方が適し ています。これは内部クロック分周器によって実現する ことができます。この分周器は、CPUに入る前の外部ク ロック周波数を分周します。DS87C520高速マイクロ コントローラはこの方式を取り入れており、2つのクロッ ク分周器機能を採用しています。即ち電源管理モード 1(入力クロックソースを64分周)と電源管理モード2(入力 クロックソースを1024分周)です。これらのモードは、 特殊機能レジスタの対応するビットを設定することで イネーブルされます。 図7に、DS87C520高速マイクロコントローラのクロック 分周器とクロック制御モードの比較を示します。この図 では、フルスピード(4分周)、電源管理モード1(64分周)、 電源管理モード2(1024分周)、アイドルモード及びストッ プモードの電流消費が比較されています。予想通り、 全ての内部クロックが停止するストップモードは消費 もう1つの方法は、リアルタイムクロック(RTC)付マイ クロコントローラの使用です。DS87C530高速マイク ロコントローラは、24時間までのアラーム期間を発生す ることのできるRTCを備えています。このアラームに よって生成された内部割込みにより、デバイスのアイドル 7 設定でシリアルポートを使用できるのはアイドルモード のみでしたが、電源管理モードの使用は、更に低電力の 代替法を提供します。 電流が最小です。この比較で興味深いのは、2つの電源 管理モードの消費電流がアイドルモード時より小さいこ とです。即ち、デバイスは電力を節約できるだけでなく、 低レベル動作で機能し続けることができます。従来の 8051構造の場合、あらゆるタイプのCPU動作は「オー ル・オア・ナッシング」でした。高性能レベルが必要と されるのはほんの短期間であっても、デバイスは常時最 高性能レベルでの動作を強制されていました。このため 消費電力が不必要に増加していました。電源管理モード (PMM)を使用すると、デバイス(及びシステム)の消費電力を、 必要な性能レベルとマッチさせることができます。 バーストモード動作の改善 省電力設計における一般的な動作モードは、システムを ストップモードからウェイクアップし、バースト動作し た後で又ストップモードに戻る、というものです。その ようなシステムにおいて消費電力を低減する1つの方法 は、動作周波数の増加です。これは一見、直感的に誤り のように思えます。なぜならデバイスの動作時に消費す る電力が、低周波数動作のシステムより大きいからです。 しかし、システムが動作している時の自己消費電流は 周波数の関数ではありません。最終的システム設計にお いては、エネルギーの評価は通常、バッテリ寿命を決め るために行われます。この区別は、時間と処理能力の 概念を複合している高性能マイクロコントローラの評価 において重要です。所与のシステムにおける電力と時間 の積が小さければ、必要なエネルギーは各項の値に関係 なく小さくなります。高速マイクロコントローラは多く の場合、高速で短時間動作することにより(低速長時間 動作と比べて)エネルギー消費を低減します。 PMMにおける割込みの使用 内部クロック分周器を使用すると、割込みの待ち時間が 非常に長くなる可能性があります。又、内部タイマを 遅くすると、8051のシリアルポートが標準ボーレート を発生したり、それと同期する能力に影響します。これ は、デバイスが外部刺激に応答する能力を大きく損なう 可能性があります。この問題に対するソリューションの 1つは、外部割込み又はシリアルポートのアクティビ ティが認識された時に、デバイスを自動的にフル動作に 回復する機能を導入することです。DS87C520ではその ような機構が実現されています。このデバイスのスイッチ バック機能は、外部割込みへの迅速な応答を可能にして います。割込みが認識されると、デバイスは直ちにソフト ウェアの介入なしにフルスピード(4分周)へと自動的に スイッチバックします。 これは、もう一度図7 を見ると分かります。例えば、 DS87C520はストップモードから再開する時に、I/O ポートを読み取り、演算を行い、結果を別のポートに 出力しなければならないと仮定します。そのために500 マシンサイクルのCPU時間を要するとします。図7を見 ると、消費電流は10MHzにおいて12.4mA、30MHzに おいて34.6mAです。表1に、両方の速度におけるタスク の結果を示します。この表から分かるように、最もエネ ルギー効率が高いのは30MHzであり、エネルギー消費 が6%以上減少しています。 シリアルポートも同じ様に動作します。シリアルポート 受信ピンに立下がりエッジ(スタートビット)が受信され ると、デバイスは自動的にフルスピード(4分周)にスイッチ バックします。これは伝送の始めに直ちに実施されるた め、デバイスは残りの伝送をフルスピードで正しく受信 することができます。従来の8051構造では、低電力 大急ぎの後で待機 多くのアプリケーションの場合、ストップモードから 抜け出る時間は全面的に速度に依存するわけではありま せん。デバイスが、一定の応答時間を持つA/Dコンバータ やサーモスタット等の周辺機器にアクセスする必要があ る場合もあります。その場合マイクロコントローラは、 プロセスを始めるためにバースト動作して、その後は殆 ど又は全くアクティビティのない期間が続きます。こう した場合は複数の電力節約技法を組み合わせると効果的 です。 FULL/IDLE/POWER MANAGEMENT MODE COMPARISON 35 30 ICC (mA) 25 XTAL/4 20 15 10 XTAL/1024 IDLE XTAL/64 こうしたシステムにおけるPMM付の高速マイクロコン トローラの利点を、実用的な例を使用して示します。 DS87C520がDS1620ディジタル温度計及びサーモ スタットにインタフェースされていると仮定します。こ のデバイスは、モード0で動作する標準8051シリアル ポートを使用してシリアルでアドレス指定されてい 5 0 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 FREQUENCY (MHz) 図7. フル/アイドル/電源管理モードの比較 8 表1. エネルギー消費対プロセッサ速度(500マシンサイクルのタスク) Clock Frequency Machine Cycle Period Machine Cycles Required Total Time ICC Current Time Product 10MHz 400ns 500 200s 12.41mA 2.48As 30MHz 133ns 500 66.5s 34.66mA 2.30As ます。ホストプロセッサは、時々外部割込みを使用して DS87C520をストップモードからウェイクアップして、 DS1620から温度を読取らせます。データを取り込んだ 後、DS87C520はそのデータを(後で送信するために) 内部メモリに保存します。DS1620は多くのA /Dコン バータと類似の動作をします。即ち、変換を始めるため にコマンドが出されて、その変換が完了するまでの遅延 があり、それからデータがシフトアウトされます。 DS1620の場合、変換時間は約1秒です。このデバイス は変換がいつ完了したかを知るためにポーリングされま す。DS87C520は、初期化と計算を高速で実行するこ とができるため、こうしたタスクに適しています。その 後、変換の完了を待つ間はPMM状態になります。従来 の8051の場合、変換が始まるとアイドルモードを使用 して低電力状態になります。このモードを使用すると、 内部16ビットタイマを使用して変換期間を測定すること ができます。従来の8051が16MHzで動作している場合、 変換が完了するまでに32回もアイドルモードを解除しな ければなりません。 この例を更に改善することもできます。DS1620は同期 デバイスとしてアドレス指定されるため、高精度タイ ミング動作は必要ありません。この結果、マイクロコン トローラは初期化及び変換結果の読取り時に、リング 発振器から動作することができます。これにより、外部 クリスタルを安定化するために必要なデッドタイムが 不要となり、更に電力を節約することができます。 図8に、上述の「大急ぎの後で待機」方式を使用する2つ の8051システムの動作を示します。この図から分かる ように、ストップモード解除後のプログラム実行中に 電力が大きく節約されています。アイドルモードの代わ りにPMM2を使用することによる電力節約分に加えて、 クリスタルのウォームアップ期間がなくなるためにルー チンを素早くストップモードに戻すことができます。 1秒間の変換遅延中にリング発振器から動作することに より、プロセッサ速度は更に遅くなり電力が節約され ます。 CONVENTIONAL 8051 BURST MODE OPERATION ENTER STOP MODE EXIT STOP MODE RE-ENTER STOP MODE CRYSTAL RESUME WARMUP OPERATION STOP MODE IDLE MODE STOP MODE CRYSTAL OSCILLATION INTx POWER CONSUMPTION PMM/RING OSCILLATOR BURST MODE OPERATION ENTER STOP MODE EXIT STOP MODE & RESUME OPERATION STOP MODE FULL SPEED RE-ENTER STOP MODE POWER MANAGEMENT MODE 2 CRYSTAL OSCILLATION RING OSCILLATION INTx POWER CONSUMPTION - POWER SAVED vs. CONVENTIONAL 8051 図8. 8051の「大急ぎの後で待機」方式 9 FULL SPEED STOP MODE まとめ • 2つの新しい低電力モードの導入は、アイドルモード の低電力代替法が提供されています。DS87C520で 使用されているような電源管理モードは、消費電流を 低減するだけでなく、低状態でプロセッサがポーリング 等のタスクを実行することを可能にします。従来の 8051構造の場合、最小限の処理能力しか必要としな い場合でも、プロセッサが最大クロック速度で動作し なければなりません。 8051マイクロコントローラファミリは引き続き世界中 で好評を得ており、使い易く比較的高性能であるため、 携帯及びハンドヘルド機器を含めた多くのアプリケー ションに最適です。ダラスセミコンダクタの高速マイクロ コントローラは、コストの高い再設計を必要とせずに 既存の8051設計の電力効率改善を可能にしています。 消費電力を低減する高速マイクロコントローラの利点を まとめると、以下のようになります。 • 設定可能なクロック速度と高性能コアの利点をストップ モードと組み合わせることにより、消費電力を大幅に 低減できます。上記の例から明らかなように、デバイス のクロック速度を所望の性能レベルとマッチさせる ことによって、エネルギー消費は低減されます。 • 高性能CPUは、プロセッサクロックを遅くすることが できるため、少ない電力で同レベルの性能が得られ ます。又、消費電力を増やすことなく既存システムの 性能を向上させることができます。 • 高速マイクロコントローラには、ウォッチドッグタイマ、 予備UART及び高精度リセット回路等の機能が組み 込まれています。外付部品の場合は消費電力が大きく なります。 10 光トランシーバの ライトショーの裏側 た当初は、明確な物理的特性が定義されていませんで した。 製品が成功するためには規格への適合が必要だとの認識 から、1998年に複数のメーカが集まってトランシーバ モジュールのマルチソース協定(MSA)を作成しました。 このグループを構成する各社は、AMP Incorporated、 Hewlett-Packard Company、Lucent Technologies Microelectronics Group、Nortel(Northern Telecom)、 Siemens AG-Fiber Optics及びSumitomo Electric Lightwave Corp.でした。これらの参加企業は、モジュー ルのサイズを半分(幅0.535インチ)にすることで合意す ると共に、高速ファイバチャネルアプリケーションで使 用される様々なRJ-45式ファイバコネクタ(デュープレッ クスLC、MT-RJ及びSC/DCを含む)の間で交換可能な モジュールパッケージとピン配置のセットを指定しま した。 近年、通信ネットワーク技術に関するニュースでは、 常に帯域幅拡張の必要性が叫ばれてきました。その状況 は現在も変わりません。電話、ファックス、モデム及び コンピュータを使用して何兆バイトもの数値化情報 (ビデオ、画像、モデル化手順、データ/音声)をやり取り する人口はますます増え、キャリアスペクトルの拡張を 要求しています。成長を続けるハイテク通信会社は、 帯域幅への欲求を満たすために競い合っています。過去 10年間に、光ファイバネットワークの開発に多大の努力 が傾注されてきました。このネットワークにおいては、 光波がギガビット/秒の速度で、髪の毛よりも細い 光ファイバの中を通って情報を伝えます。 現在は、参加メーカ数の増加と新世代のモジュールを反 映して、新しい連合グループがトランシーバモジュール 用の新しいMSAを作成しています。これらのマルチソー スメーカとは、Agilent Technologies、Glaze Network Products、E2O Communications、Finisar、Fujikura Technology America、 日 立 ケ ー ブ ル 、 Infineon Technologies、IBM、Lucent Technologies、Molex、 OCP、Picolight、Stratos Lightwave、Sumitomo Electric Lightwave及びTyco Electronicsです。この モジュール規格はスモールフォームファクタプラガブル (SFP)と呼ばれており、5.0Gb/sまでの予想伝送速度を カバーします。この規格は、小型で高速のホットプラガ ブルモジュールによる高密度信号伝送を目指す業界の 意志を反映しています。 これには非常に大きな利益がからんでいます。2000年 5月のニュースリリースで、ITコンサルタント会社のThe Aberdeen Group(マサチューセッツ州ボストン)は、 「SONET素子を除く光ネットワーク市場は2003年まで に177億ドルに成長する」と予言しており、「成功する のは、キャリアが直面する問題を解決する技術を提供で きるメーカである」と述べています。 このニュースリリースの中で、 「メーカ」と「技術」という 言葉は複数形になっています。これは、本稿の主要テーマ でもあります。 急速に発展する通信ネットワークは非常に複雑です。 光ネットワークの世界的な展開は少数の大企業が独占す る傾向にありますが、実際には各々特殊な技術を専門と する多数の企業が開発した多数の技術が融合されていま す。ダラスセミコンダクタはこの後者の範疇に属します。 当社は、光トランシーバモジュール用の特別な可変抵抗の ファミリを設計してきました。ダラスセミコンダクタの 抵抗が通信ネットワークの大きな構図の中でどのように 使用されているかを見ることにより、通信業界が解決法 を開発する方法が見えてきます。 当社の抵抗がこの構図のどこに収まるかを見つけるため に、トランシーバモジュールの基本を簡単に説明します。 このモジュールは着信光波を電気的信号に変換し、発信 電気信号を光に戻します。重要なことは、光トランシーバ が半導体レーザ技術に基づいているということです。 モジュールはプリント回路基板(PCB)であり、切望され る帯域幅の光ソースは超小型の半導体チップ(発光ダイ オード又はレーザダイオード)です。近赤外スペクト ラムの周波数におけるこのレーザの出力は数十GHzと いう周波数で変調できるため、非常に大きな帯域幅が 得られます。 大きな構図の識別 光トランシーバモジュールは様々なメーカによって 設計、製造されています。これらのモジュールのアプリ ケーションとしては、同期光ネットワーク(SONET)、 同期ディジタル階層(SDH)、非同期転送モード(ATM)、 ファイバ分配データインタフェース(FDDI)、ファイバ チャネル、高速イーサネット及びギガビットイーサネット 等が挙げられます。これらのシステムの名前は、国際的 に定義された様々な伝送プロトコル及び規格を反映して います。ところが、これらのモジュール自体が開発され 次に、トランシーバモジュールを通る信号経路について 説明します。受信ポートは着信光ファイバに接続してい ます。フォトダイオードがこの光を電気的信号に変換し、 それがクロック及びデータ信号を再生できるように更に 増幅されて、デマルチプレックスされ、電気的インタ フェースを介して送信されます。このフォトは、一定の 動作電圧を提供するために、自動的に電力制御された バイアス回路を必要とします(図1 を参照)。一方、 11 アレイとして組み込まれています。この設計は「分配 Braggリフレクタ」として知られています。将来は、 複数素子のVCSELアレイを使用する平行光学インターコネ クトによって、数兆バイトのスループットが可能になる でしょう。 モジュールの送信側においては、電気的クロックとデータ ビット信号が合成され、ラッチされてレーザドライバに 送られます。最後に、レーザドライバが電気的電流の形 で信号をレーザダイオードに送り、電子エネルギーが光 に変換されます。 学術団体及び企業は更に広範にVCSELを展開するための 設計を熱心に開発しています。エッジエミッタと比較し た場合、VCSELは必要電流が少なく、レーザスレッショ ルドが低くなっています(1mA又は2mA対30mA)。この レベルでは、特別にフォトで出力を監視しなくても、 多くの場合シンプルな電流制御だけです。VCSELは発光 アパーチャが大きいために、出力ビームの拡がり角(分散 の指標)がずっと小さくなります。製造及び処理上の利点 もいくつかあります。チップがずっと小さくなるため、 より多くのVCSELをウエハ上に詰め込んでより多くの インターコネクトを付けることができます。又、1枚の ウエハ上のVCSELを一度にテストすることができます。 最後に、VCSELはレーザダイオードと比べて動作的に 丈夫であるため、予想寿命が長く、故障率が低くなり ます。 VAID VREF ADJUSTABLE RESISTOR TO SET IMONITOR IBIAS OPTICAL FEEDBACK MONITOR PHOTO DIODE L IBIAS LASER OUTPUT LIGHT POWER レーザダイオードであれVCSELであれ、いずれの光トラン シーバのレーザエミッタも半導体であり、その光電気 効果は、電流、電圧及び抵抗の相互関係に依存します。 以下は、安全性と性能に影響を与えるいくつかの要素 です。 図1. 平均電力制御ループ(モニタフォトダイオードと可変抵抗を使用 してバイアス電流を設定する標準的な平均電力制御回路) レーザダイオードを用いる設計の中には、フォトでレー ザダイオード出力を監視し、フィードバックループにお いて光を再変換して、レーザの実際の出力電力を測定す る電気回路に戻すものがあります。このフィードバック により、レーザの出力パワーが安定化されます。光の フィードバックは、この設計にとって複雑な問題となり ます。しかし、最新のレーザ技術である垂直キャビティ 表面発光レーザ(VCSEL)は、電力が非常に小さいため 多くの場合フォトを必要としません。 • レーザ出力は温度に非常に敏感です。 • レーザパワー出力はそのレーザの寿命を通じて変化す る傾向があり、寿命の消耗は温度が上がるにつれて 促進されます。 • VCSELは、ダイオードよりはるかに低電力及び低温 で動作するため、それに比例して経時故障率も低くな ります。 • レーザエミッタは、ランダムなパワートランジェント 及びパワーオン及びパワーオフ時のトランジェントか ら保護される必要があります。 レーザドライバは、2つのことを行う必要があります。1つ はレーザの動作点を設定するための一定のDCバイアス電流 を維持すること、もう1つは、信号を運ぶ変調電流を 維持することです。各メーカはトランシーバの信号スルー プット増加に努めると共に、レーザソースの動作定数を 注意深く測定して光出力を制御する必要があります。 • レーザの近赤外光は人間には見えませんが、目に入った 光線は網膜で焦点を結び、永久的な損傷を与えること があります。人体及びレーザ機能に深刻な影響を与え る可能性があるため、レーザパワー出力は最大数百 マイクロワットまでに規制されています。 レーザダイオードとVCSEL VCSELとレーザダイオードにおけるレーザ電流の制御 は、安全性の問題であるだけでなく、性能上の要因でも あります。半導体の挙動として予想されるように、 VCSELの最大出力パワーは温度の下降と共に直線的に 増加します。逆に、出力波長は温度の上昇と共に増加し ます。即ち、温度に応じて電流を制御することが性能を 制御する上で重要になります。 Fabry-Perotタイプのレーザダイオードはチップの狭い 傾斜したエッジからコヒーレントな光線を発します。 エッジ又はチップの外には反射鏡が配置されています。 しかし通信業界にとって、より将来性のあるレーザソース はVCSELです。VCSELは名前の通りチップの上面(下面 も将来可能性があります)の直径5∼25ミクロンの凹み から垂直にレーザビームを発します。鏡は凹みの両端の 12 SFPにまで縮小することを目指すモジュールにとって、 メモリと、2つ別々に設定されたポテンショメータを 内蔵する集積化部品により複数の部品を置き換えると、 スペースを節約することができます。更に、DS1845の 2線インタフェースは、トランシーバメーカの回路内 設定能力の要件を満たす上、既存の2線EEPROMとコン パチブルです。 大きな構図で見た場合、上記の事実をまとめると以下の ようになります。 • 帯域幅への爆発的な要求は光ネットワークの開発に つながりました。 • 光ネットワークは、光トランシーバモジュールを使用 して光信号と電気信号を物理的に変換します。 • トランシーバモジュールのメーカは、物理的サイズの 小型化と、信号スループットの数ギガビット/秒レベル への増加を目指しています。 ダラスセミコンダクタのDS1846は、より特殊なニーズ に応えるために開発されました。DS1846は、不揮発性 メモリ付の3つのリニアテーパーポテンショメータ及び CPU監視回路を小さなTSSOPパッケージに内蔵してい ます。超小型チップに高レベルの集積化を実現すること により、基板スペースが節約され、コストと調達の遅れ が削減されて製品開発が促進されます。DS1845の場合 と同様に、不揮発性メモリはアプリケーションに特有の キャリブレーションデータを設定、保存するために使用 されます。そして、各ポテンショメータのワイパー設定 を制御するために、ユーザ設定データ用のメモリスペース も用意されています。 • トランシーバモジュールは、光信号を受信する発光 ダイオードと、光信号を送信するレーザダイオード 又はVCSELを使用します。 • データ速度が益々高速化するにつれて、モジュールの フォトアクティブ部品は、更に高精度、高信頼性の パワー制御を必要としています。レーザ故障を防止し、 予想寿命を延長し、所望の出力パラメータ内で動作さ せるためです。 ここでいよいよダラスセミコンダクタの可変抵抗の登場 です。レーザダイオード及びVCSELを流れる電流を制御 して、それによりパワー出力を制御することは、即ち 抵抗を制御することです。以前はテクニシャンが終日 かかりきりで「トリム」ポテンショメータを手動調整して、 良好な「アイパターン」を得ようとしていました。この 制御及びチューニングの問題のソリューションは、温度 変化に対応できるように電子的に設定されたデバイスを 使用することです。 DS1846のオンチップマイクロモニタは電圧を監視し ます。マイクロモニタは、許容範囲外の電圧レベルを 検出するとシステムリセットを開始し、安全な動作条件 が戻るまでリセットを保持します。このマイクロモニタ は様々な電圧レベルに設定できるようになっており、 マニュアルリセットも備えています。 第3のポテンショメータはもう一つの変数の監視に用い るか、あるいは他の抵抗の粗トリムを提供するために 用いることができます。 ニッチ業界 要求の厳しいレーザアプリケーション用に設計された DS1847とDS1848は、全温度範囲に渡ってレーザの 熱特性を補償します(図2を参照)。DS1848は128バイト の予備の汎用EEPROMを備えています。その他の点では これら2つは同じです。これらのチップは温度に関係す る抵抗特性をオンボードの参照表(LUT)に保存してい ます。内蔵温度センサは、レーザの動作中常に温度を 測定し、報告します。DS1847又はDS1848はこの読取 り値をLUTに保存されている値と比較して、設計者が 定義した抵抗特性に従って抵抗を調整します。温度セン サによって測定された値もEEPROMに保存され(10ms 毎に更新)、ユーザは2線バスを通じてこれを読取ること ができます。DS1847及びDS1848は自動的に動作する ことにも注意して下さい。温度変化が検出されると、 制御回路はユーザの介入なしに自動的に抵抗を調整して 補償電流値を実現します。 ダラスセミコンダクタは厳密に言えば通信メーカでは ありませんが、いくつかの関連技術(ディジタル制御の 可変抵抗及びポテンショメータ、EEPROM、温度センサ 及び超低電力CMOS法)において専門技術を提供してい ます。ギガビット光技術のニーズに応えて、ダラスセミ コンダクタは新しい特長を備えた製品ファミリを製造 しています。 EEPROM付のDS1845デュアルポテンショメータの 場合、ダラスセミコンダクタは特にプラガブルギガビット トランシーバモジュール用に、半導体業界初のメモリ 内蔵ポテンショメータを設計しました。DS1845は2つ のリニアテーパーポテンショメータを2 5 6バイトの EEPROMと組み合わせています(MSA規格の要件)。分解 能の高い256位置のポテンショメータは変調電流の調整 用、100位置のポテンショメータはバイアス電流の制御 用です。ユーザは両方の出力を設定し、ワイパー設定と 必要なシリアルIDデータをチップ上の非揮発性EEPROM メモリに保存し、動作中に参照します。 13 WP AO A1 A2 SDA SCL VCC GRID 2-WIRE INTERFACE 72 x 8-BIT 72 x 8-BIT EEPROM EEPROM LOOK-UP TABLE 1 LOOK-UP TABLE 2 (RESISTOR 0) (RESISTOR 1) TABLE SELECT BYTE CONFIGURATION BYTE TEMPERATURE MSB BYTE DIGITAL TEMPERATURE SENSOR TEMPERATURE LSB BYTE ADDRESS POINTER USER MEMORY 256-POSITION DIGITALLY CONTROLLED VARIABLE RESISTOR HG 256-POSITION DIGITALLY CONTROLLED VARIABLE RESISTOR H1 LO INTERNAL ADDRESS SET USER MEMORY RESISTOR 0 SETTING L1 RESISTOR 1 SETTING USER MEMORY 図2. 光トランシーバ − ここに示すような光トランシーバ用に設計された可変抵抗は、従来のメカ式トリムのポテンショメータより高い精度で、自動 的に各ダイオードのキャリブレーションを行います。 合っています。新しい技術のスターであるレーザの成功 は、比較的古く馴染み深い地味な要素である抵抗に依存 しているのです。但しこの物語の最後に、ダラスセミ コンダクタは「おじいさんの時代の抵抗とは違うよ」と付 け加えたいと思います。 全体として、ダラスセミコンダクタの全ての回路は低電 力CMOS技術を採用しているため、貴重な電力予算を 抑えることができます。全ての回路が工業用の全温度 範囲で動作し、3V及び5V両方の電源で動作します。 光通信ネットワークのような巨大で複雑かつ野心的な 市場においては、多くの要素が多くのレベルで作用し 14 SHA-1を使った電子 取引の安全保証 は非常に大きな数(チャレンジと呼ばれます)を全くラン ダムに作ってトークンに送ります。トークンはこのチャ レンジを受け取って、これに対して内部に保存された秘 密を使って複雑な数学演算を行います。そして、その演 算の結果をホストに返します(図1を参照)。ホストも同 じ秘密を知っているので、同じ数学演算を内部で行い、 結果を比較します。トークンからのレスポンスがホスト 内で計算されたものと一致すれば、トークンは秘密を暴 露することなくその秘密を知っていることを証明したこ とになります(これがゼロ・ノレッジ・プルーフの本質 です)。秘密を知らない攻撃者がこの会話を盗み聞きし ても、何の役にも立ちません。これは、チャレンジが ランダムに生成され、毎回異なるからです。次のチャ レンジが何であるかは全く予想できません。秘密は安全 にトークン内に保持され、ホストはそのトークンが本物 であることを知ります(本物のトークンだけが秘密を 知っているからです)。 暗号化能力を持った携帯電子機器を使って、非常に安全 なネットワーク真正証明、仮想私的ネットワーク、販売 機レギュレーション、料金徴収、従業員又は市民の識別 を行う傾向が世界的に強くなっています。こうした携帯 機器(又はトークン)の設計には、暗号化装置がデリケート なデータ及び金銭情報が真正であることを証明し、保護 する方法を注意深く研究する必要があります。もちろん eキャッシュ(識別トークン)は持ち運び可能で、長持ちし、 安全が保証される必要がありますが、安全保証トークン はさらにいくつかの暗号化、電気的及び物理的条件を 満たさなければならないことがすぐに明らかになってき ます。 もちろん、使用される複雑な数学アルゴリズムは不可逆 なものであることが必須です。さもないと攻撃者はその 演算を逆に実行して秘密を引き出すことができるからで す。実際、チャレンジ・アンド・レスポンス方式の安全 保証を審査する上で最も重要な要因はどのアルゴリズム を選択するかということかもしれません。過去には、自 家製アルゴリズム、ストリームサイファー、ローリング コードあるいはこの目的用に短縮された暗号アルゴリズ ムを使った電子トークンが作られてきましたが、これら は広く受け入れられていません。問題なのは、広範な同 業者による検討なしには、これらのアルゴリズムが攻撃 に対して安全を保証できるかどうかが保証できないこと です。また、これらのアルゴリズムにデバイスメーカだ けが知っている(意図的、あるいは偶然の)「裏口」がない という保証もありません。 真の安全保証トークンが持つべき最も重要な機能は真正 証明機能です。トークンは、発行者(サービスプロバイダ) から認可されていること及び本物であることを証明でき なければなりません。そのトークンが認可されていると いうことは、発行権限所有者だけが作成できる暗号化情 報を持っているということだけで証明できます。しかし、 安全保証付真正証明ははるかに難しい問題です。デバ イスは自らが偽物や複製でないことを証明しなければな りませんが、これには非常に特殊なハードウェア機能が 必要とされます。デバイスの設計を自由に調べることが できなければ、そのデバイスは信用されないため、設計 や機能の秘密は保つことができません。デバイスの内部 のしかけが公表されて周知である場合、十分な技術を 持った人なら誰でもそのデバイスの模造品を作り、デバ イスのハードウェアが課する特別なコントロールの一部 をバイパスすることができます。分かり難さで安全を保 証しようとするトークン設計は必ず失敗します。 真の安全保証暗号トークンを作るには、選択したアルゴ リズムがよく知られていて、信用があり、長期に渡って 試されていて、しかも世界中の暗号技術者による検討が なされたものでなければなりません。入力データから 非可逆的にそのデータのダイジェスト版を作るアルゴリ ズムは、一方向ハッシュ(ごたまぜ)関数と呼ばれます。 最もよく研究され、信用されている一方向ハッシュ関数 はSHA-1(安全保証ハッシュアルゴリズム)です。この アルゴリズムは政府から認可されていて(FIPS 180-1)、 現代のディジタル署名及び書類保護方式の基礎になって います。また、暗号技術者の世界で長い歴史を持ち、検 討され、広く信用されているものです。 暗号法の世界では、真の安全保証真正証明は「チャレン ジ・アンド・レスポンス」という方法で扱われます。この 方法は、正当なトークンとホストにしか知られていない 秘密と、トークンがその秘密を知っていることを証明し て本物であることを自ら証明する方法から成ってい ます。もちろん、このプロセスの中で秘密が知られてし ま っ て は い け ま せ ん 。 こ こ で 、「 ゼ ロ ・ ノ レ ッ ジ ・ プルーフ」という暗号概念が使用されます。トークンは 自らがその秘密を知っていることを、その秘密に関する 情報を全く暴露することなく証明するメカニズムを サポートしなければなりません。一見、これは不可能に 見えます。しかし、これは安全保証付暗号システムにお いて普通に行われていることです。この方式は次のよう に機能します。問題のトークンが来ると、ホストシステム しかし、SHA-1は複数の32ビット5方向加算、複雑な 論理関数、データシフト及び非常に多数の繰り返しを含 む複雑なアルゴリズムです。シリコンでSHA-1アルゴ リズムを実現するには従来大きなチップ面積を必要とし、 15 VENDING MACHINE iButton RANDOM NUMBER GENERATOR CHALLENGE IDENTITY SERIAL NUMBER BALANCE $ 1,234.56 SECRET SECRET SHA-1 SHA-1 RESPONSE MATCH? ALL DATA TRANSFERRED IS SECURE. ANY ALTERATION WILL BE DETECTED. IF RESPONSE MATCHES, THEN iButton TOKEN MUST BE AUTHENTIC. SHA iButton Authentication 図1. SHA iButton真正証明 より、金銭的データ、デバイスのアイデンティティ、 及び金銭的な事例が全て一緒にまとめられます。デバイス からデータを取って後で書き戻した場合、カウンタが変 化しているために無効とみなされます。同じ値ですが、 その値の事例が異なるからです。 トークンがかなり高価になっていました。このアルゴ リズムをシリアル式に実行する新しい方法が工夫された ことで、チップ面積が10分の1以下になり、妥当な価格 のSHA-1式トークンが可能になりました。 真の安全保証トークンのもう一つの必須条件は、世界的 に唯一独自で変更不能なアイデンティティを持っている ことです。唯一のトークンシリアル番号を真正証明アル ゴリズムの追加入力として含めることにより、物理的な トークンとその内容が結びつけられるため、トークン間 で金銭値や信用証明を複製することが不可能になり ます。 チャレンジ・アンド・レスポンス真正証明プロセスの 興味深い特長は、トークンからホストに至るルートにお いてもデータが保護されているということです。データ、 トークンのアイデンティティ及び事例カウンタの全てが SHA-1アルゴリズム入力に含まれているため、トークン とホストの間の通信経路でデータビットを変更あるいは 注入しようとすれば、その取引は無効になります。すな わち、このチャレンジ・アンド・レスポンスデータ交換 を数々の信用できない仲介者が扱ったとしても、プロセス の安全保証は保たれます。遠隔地にあるインターネット のサーバーが、数知れぬルーター、ブリッジ、ハブ及び 盗聴者を通じて家庭にあるユーザのトークンの真正証明 を行う場合でも、安全保証が全く損なわれません。 金銭的アプリケーションで安全保証トークンが使用され る時、そのトークンが含む情報(おそらく口座預金高)は 動的になります。なぜなら、デバイスが使用される度に 重要な値が読み取られ、借方記入され、それから再び 書き込まれるからです。こういった使い方にもとづいて、 暗号技術者がリプレーアタックと呼ぶタイプの攻撃が 可能になります。攻撃者はトークンからの値のデータを 読取り、「正当に買い物をして」そのトークンを空にし ます。それから、元のデータを復元(又はリプレー)する ことでトークンの金銭値を復元して何度も使えるように します。このリプレーを防ぐためには、トークンが使用 される度に含まれるデータをそれぞれ唯一独自のものに するようなメカニズムを持っている必要があります。 従って、真の安全保証金銭トークンは特別なカウンタを 持っています。このカウンタはデバイスに書込みがある 度にカウントが上がり、循環、リセット、カウントダウン 又はリロードができないようになっています。このカウン タ値 を 真 正 証 明 ア ル ゴ リ ズ ム の 入 力 に 含 め る こ と に 安全保証付真正証明トークンにおいてもう一つ重要な 条件は、そのトークンが保持している秘密を保護する能 力を持っていることです。シリコンチップを埋め込んだ プラスチックカードは物理的な攻撃を受けやすく、また 通常のメモリデバイスは秘密が保持されている保存エリ アを保護する特別な手段を持っていません。安全保証付 トークンは、含まれている秘密を保護するために高レベ ルの物理的な安全保証手段を提供しなければなりま せん。 暗号技術が提供するもう一つの方法は、各デバイスの 秘密が、デバイスに保存されていない別のマスター秘密 16 データを暗号化する唯一独自のセッションキーを生成 することができます。 と唯一独自のデバイスアイデンティティの組み合わせか ら引き出されるというものです。これにより、各デバイス に唯一独自の秘密が提供され、ある一つのデバイスの秘 密が破れてもシステム全体のブレーク(クラスブレークと 呼ばれます)を防止することができます。また、金銭シス テムは一般にトークンの真正証明用に一つの秘密(トークン の中に保存)を使用し、別の秘密(トークンに保存されな い)をトークンに保存されている金銭値の確認用に使用し ています。これにより、トークンを物理的に攻撃しても その一つのトークンを模倣できるだけになるため、物理的 な攻撃で得られる利益が大きく制限されます。 ダラスセミコンダクタのDS1963S iButtonはこれらの要 求条件を全て満たす安全保証付の電子トークンです。各 トークンは世界的に唯一独自の出荷時レーザ処理済みの 64ビットアイデンティティ、リチウム電池でバックアップ された512バイトのNV RAMデータ保存エリア及び8つの 保護付64ビット秘密を備えています。これらの全てが小型 で頑丈なステンレススチール容器に収められています。 このデバイスとの双方向通信は単一データ導体を使って最大 140kbpsで行われ、SHA-1は内部で500マイクロ秒以内に 実行されます。秘密のサイズが64ビットであるということ は、力づくで破るのに約9,223,000,000,000,000,000 回の試行を要することを意味するため、力づくの攻撃は 非現実的です。iButtonは装身具のように身に付けたり、 IDカード又はバッジに付けたり、あるいは鍵のように持ち 運ぶことができます。容器や製品あるいは出荷カートンに 張りつけることもできます。コンピュータや回路基板に 埋め込むことも可能です。 しばしば見過ごされる攻撃経路は、サービスプロバイダ の施設で不謹慎な従業員が真正証明に使用される重要な 秘密を知ってしまうことです。この問題を克服するため に、暗号技術者はシークレットシェアリングと呼ばれる 方法を提供しています。実際の秘密は存在せず、その代 わりに2つ以上の部分的な秘密を結合した計算の結果が存 在します。サービスプロバイダはこれらの部分的な秘密 を離れた場所の別々のシステムに保存し、誰も2つ以上の 部分にアクセスできないようにします。全ての部分的な 秘密を正しい順番で使用しない限り、実際の秘密を計算 することができません。真に効果的な安全保証トークン は、これらの部分的な秘密を全てトークンの中で結合し て、最終的な秘密が人間に観察可能な場所に決して存在 しないようにしなければなりません。トークンがサービス プロバイダの初期化プロセスの中を進むにつれて、後に 続く各々の部分的秘密が注入され、実際の秘密は各デバ イスの内側だけで計算されます。最終ステップとして、 唯一独自のデバイスアイデンティティがプロセスに注入 されるため、その結果得られるデバイスの秘密はそのデバ イスの唯一独自のものとなり、マスター秘密は損なわれる 可能性のある場所には決して存在しません。 ダラスセミコンダクタのDS1961S iButtonはDS1963S のEEPROMバージョンです。本製品は1 2 8バイトの メモリを持ち、デバイスを改変するにはホストシステム がSHA真正証明に合格しなければならないようにした 書込み保護方式を提供しています。 また、DS1963Sはホスト側の処理能力と速度に制限の ある自動販売機や料金徴収システムにおいてコプロセッサ として貢献します。コプロセッサとして使用された場合、 DS1963Sはシステムの秘密を安全に保存・保護し、 SHA-1アルゴリズムを非常に迅速に実行し、徴収された 料金を安全に保存するほか、徴収ボックス又は自動販売 機を識別する世界的に唯一独自のシリアル番号を提供し ます。コプロセッサとしてのDS1963S iButtonは、ホスト が使用する重要な設定及び価格データを保持することも できます。ホストの電子機器は単にiButton間でデータを 動かすだけです。eキャッシュシステムにおいては、 ここで説明した安全保証機能の全てを使って金銭取引を 一通り実行するのに要する時間が50ミリ秒以下です。 強力な真正証明が可能な安全保証付電子トークンは、ドア ロック、アクセス制御機器及び機器制御ロックアウト用の 非常に安全保証度の高いキーになります。チャレンジ・ アンド・レスポンスを使った電子キーは複製や改変が不可能 であり、盗聴しても無益です。このアプリケーションに おいてはデータは静的であるといわれます。なぜなら、 eキャッシュアプリケーションと違って使用する度に変化 することがないからです。トークンを差し出す人間の真正 証明をそのトークンに行わせることにより、(そうしたPIN 又はパスワード保護機能を持たないシステムの場合でも) システムの安全保証がさらに強くなります。 DS1961Sはチップの形でも提供されていて、ネット ワーク化されたデバイスに埋め込むこともできます(通 信は僅か1つのポートで可能です)。これにより、ネット ワーク化されたデバイス間での強力な暗号化真正証明が 可能になり、インターネットを使ってそれらのデバイス に対する質問や制御を行う新しい可能性が開けました。 ネットワーク化されたデバイスは、迅速で信頼性の高い 相互真正証明と、データ暗号化用の乱数ベースセッション キー生成の全てを、1つのメッセージを交換するだけで 行うことができます。システムの秘密は保護付EEPROM に安全に保存され、ほとんどオーバーヘッドなしでネット ワーク化されたデバイスに強力な暗号化安全保証を付加 することができます。 対等(ピアツウピア)真正証明アプリケーションにより、 ネットワークで結合された電気製品同士が互いに真正確 認を行うことができます。これにより、外部の者が操作 するのを防ぐことができます。真正確認を迅速に行い、 内部の秘密を保護するトークンを使うと、電気製品に 必要な物理的な安全保証対策がずっと少なくて済みます。 また、トークンを使って制御コマンド又はデリケートな 17 DESIGN SHOWCASE 8051マイクロプロセッサのクロックとしての EconOscillatorの使用 始めに を知っています。エラーはデータ転送中にスタート 及びストップビットの同期を行っても生じます。 許容誤差が3%の場合、12MHzクリスタル使用時の 最大通信速度は2400ボーに制限されます。これは 1990年代の初期なら悪くない速度ですが、今日の 基準では遅すぎます。幸い、8051シリアル通信用に 作られたクリスタルがあり、周波数は11.059MHz 又は22.118MHzとなっています。これらのクリス タルを使用するマイクロプロセッサは、ボーレート が 大 幅 に 改 善 さ れ て お り (表 2 )、 最 大 5 7 . 6 k b p s (SMOD = 1としてボーレートダブラを使用する DS87C520の場合115.2kbps)を実現しています。 これは今日の殆どのマイクロプロセッサ機器にとっ て十分な値です。 EconOscillatorは基本周波数を提供する内部発振器 を備えており、内部分周器チェーンを使用して基本 周波数を所望の速度まで落とします。各部品番号が 4つの基本周波数(60MHz、66.67MHz、80MHz又 は100MHz)を分周して、基本周波数の2052分の1 まで速度を調整できます。EconOscillatorは、シス テムの要求条件に応じてマイクロプロセッサ、FPGA 及びCPLD回路を含む任意のタイプのクロック付ロ ジック用に使用することができます。 8051マイクロプロセッサと RS-232シリアル通信 クロックを選択する時は、クロック速度と、動作寿 命を通じてのクロック精度という2つの要因に注意し て下さい。8051マイクロプロセッサシステムにおい ては、RS-232シリアル通信の使用がしばしばシス テムクロック速度を決定します。例えば、12MHz クロック(オリジナルの8051の最大クロック速度)を 使用する非同期モード1シリアル通信を想定して下さ い。表1に、標準ボーレートを確立するために必要な タイマ1オートリロード値を示します。 8051のクロックとしての DS1075の使用 上述のように、DS1075は4つの基本周波数で提供 されており、内部発振器は100MHz、80MHz、 66.667MHz及び60MHzとなっています。内部分周 器チェーンを使用して、これらを8051アプリケー ションに十分なだけ遅くする場合、理論的にはどれ を使用しても構いません。しかし8051のシリアル ポートを使用する場合は、マイクロプロセッサに 合せて基本周波数選んで下さい。これは必要なボー レートとマイクロプロセッサのボーレート生成式に 依存します。 表1の実際のボーレートは、次式を使用して計算され ました(ダラスセミコンダクタの「高速マイクロコン トローラユーザーズガイド」から転載)。 BaudRate = f OSC 2SMOD x 32 12 x (255-TH1) • ボーレートダブラ(SMOD = 0)はディセーブル この例の8051マイクロプロセッサの場合、発振器 周波数としては11.059MHzと22.118MHzが適し ています。ボーレート生成の許容誤差は約3%です。 基本周波数が6 6 . 6 6 7 M H zの製品を使用すると、 基本周波数を6分周して11.111MHzまで下げること ができます。これだと理想の周波数11.059MHzと の誤差が0.47%と小さくなります。設定周波数から の偏差が1%というワーストケースの場合でも、誤差 は許容範囲に収まります。即ち、DS1075-66は 所望の周波数11.059MHzからの最大誤差1.47%を 許容することになり、最大28.8kbpsまでの通信には 十分です。 RS-232シリアル通信のユーザの殆どは、ボーレート 誤差が3%を超えると通信エラーが起こりやすいこと DS87C520(最大クロック速度33MHz)のような 許容クロック速度の高い8051を使用する場合は、 SMOD = ボーレートダブラ f OSC = 発振器速度 TH1 = タイマ1のオートリロード値 表の数字は以下のタイマ1条件を基にしています。 • タイマ当たりの増分を12クロックサイクルに設定 (DS87C520はタイマ1 のカウントを4 又は1 2 クロックサイクル毎に増分できます) • オートリロードモードはイネーブル 18 表1. オリジナルの8051マイクロプロセッサ用に12MHzクリスタルを使用する場合のボーレート及び ボーレート誤差 Timer 1 Auto-Reload Value Actual Baud Rate (Desired Baud Rate) Baud Rate Error 255 254 253 249/250 243 31250 (28800) 15625 (14400) 10417 (9600) 4464/5208 (4800) 2404 (2400) 8.5% 8.5% 8.4% 7%/8.5% 0.16% 表2. RS-232シリアル通信用に選択されたクリスタル周波数を使用して生成されたボーレート Timer 1 Auto-Reload Value Baud Rate with fOSC = 11.059MHz Baud Rate with fOSC = 22.118MHz 255 254 253 250 244 232 208 160 64 28,799.5 14399.7 9599.8 4799.91 2399.95 1199.98 599.98 299.99 149.99 57598.9 28799.5 19199.6 9599.83 4799.91 2399.95 1199.98 599.99 299.99 注:ボーレートを指定されたレートの3%以内に要求することでクロックの精度を確保することができます。仮にRS-232通信向けに理想的な クロックレートが選択されても、クロックが3%以上変化すれば一貫した通信に支障をきたす可能性があります。 ナルの8 0 5 1より5 0倍アップの高性能を提供し、 ウォッチドッグタイマ及び電源管理等、オリジナルの 8051にはないリソースも備えています。DS87C520 のように最大1 1倍の性能を提供するチップもあり ます。ダラスセミコンダクタは更に制御アプリケー ション用にPWM及びA/Dコンバータを備えた8051 のバージョンも作っていますが、これらは4 0ピン DIPパッケージでは提供されていません。 クロック速度を3分周するだけで22.222MHzを得る ことができます。この時の最大誤差は1.47%で、い ずれの22.118MHzボーレートにおいても通信可能 な範囲です。クロック速度が速いと、他のアプリ ケーションのニーズに対しても高レベルのプロセッサ 性能を提供できます。 8051設計にDS1075を使用することの大きな利点 は柔軟性です。オリジナルの8051又は相当品のマイ クロプロセッサ(最大クロック速度12MHz)を使用し て始めた設計の場合でも、単に発振器を再設定して マイクロプロセッサを置き換えるだけでアップ グレードすることができます。設計によっては、 DS1075をソケット内で再設定することもできます。 8051マイクロプロセッサの40ピンDIPバージョン を使用している場合、ダラスセミコンダクタ及び 多くの他社が100%コンパチブルのいくつかの置換 え用チップを製造しています。中でも最も速いのは ダラスセミコンダクタのDS89C420であり、オリジ ハードウェアのセットアップ DS1075を使用するためには、本製品のEEPROMレ ジスタを設定するための方法を確立する必要があり ます。一番簡単な方法はDS1075Kプログラミング/ 評価キットを購入することです。このキットのハード ウェア及びWindows® 95ソフトウェア(サンプル付) はデバイスを設定してアプリケーションに試用する 簡単な方法を提供します。これを利用しない場合は、 キットなしでデバイスを設定するために必要な情報 19 が全てデータシート(www.maxim-ic.comで入手 可能)に含まれています。 発振器出力です。このピンに何かを接続するとマイ クロプロセッサの負荷となりますし、XTAL1で補助 クロックデバイスをマイクロプロセッサと並列に 接続できる時は必要ありません。但しこれは、補助 デバイスと8051の複合負荷がDS1075の出力電流 仕様を超えないと仮定した場合です。 一旦、DS1075を設定したら、図1の回路図を参照 して、DS1075を8051マイクロプロセッサと適正 に動作させるための配線を行います。DS1075の出力 はXTAL1に行き、XTAL2は接続されていないことに 注意して下さい。XTAL2は通常、8051のクリスタル ALE DS87C520 DS123OY-70 PO.X 74F373 LATCH P2.X NC XTAL2 XTAL1 1 I/O NC VCC LSB ADDRESS (8) DATA BUS (8) MSB ADDRESS (7) 32k x 8 NV RAM RD (P3.7) OE WR (P3.6) WE DS1075 OSCIN 8 2 OUT0 XTAL 7 NC 3 VCC OE 6 4 GND PDN 5 SELX VCC 図1. 8051マイクロプロセッサのクロックとしてDS1075発振器を使用する場合のハードウェアセットアップ WindowsはMicrosoft Corporationの登録商標です。 20 CE DESIGN SHOWCASE 多機能の ダラス1-Wireネットワークの解剖 広いパルス幅又は狭いパルス幅を使用して0又は1の ビットを書き込みます。データを読み取る時、マス ターは狭いパルスを使用してタイムスロットを開始 し、スレーブはラインをローに保持してこれにより パルスを延長することでロジック0ビットを返すか、 又はパルスを変えないことでロジック1を返します。 ダラスセミコンダクタの1-Wireバスは、単一の電気 的接続を通じて周辺デバイスとの双方向通信を行う シンプルな信号方式です。1-Wireシステムにおいて は、単一のマスターと1つ以上のスレーブが通信データ ラインを共有しています。この単一のデータライン に、多重化アドレス、制御及びデータ情報が乗せら れています。これらのデバイスの殆どは、データバス からの給電で動作しています(ローカル電源がある場 合はそれを使用しているものもあります)。データ ラインがハイの時に電荷が内部で保存され、データ ラインがローの時にはこの電荷を使用してデバイス が動作します。単一のポートピンによりマイクロプロ セッサに複数のデバイスを接続することもできます。 1-Wireデバイスとしては、データの保存(NV RAM、 EPROM及びEEPROM)、温度と電圧の読取りと記録、 抵抗の調整、カウント、制御と検出、他システムと のインタフェース、及び計時と暗号化等、様々な 機能を備えたものが提供されています。 殆どの1-Wireデバイスは2つのデータ速度をサポート します。低い方(標準)のデータ速度は約14kbps、高 い方のは約140kbpsです。更に高いデータレート (1Mbps)も開発中です。プロトコルはセルフクロック 式で、長いビット間遅延を許容しているために、割込 み付のソフトウェア環境における動作も容易です。 どのような通信の場合でも、最初に通信相手のスレーブ デバイスを選びます。それには、全てのスレーブを 選択するか、(デバイスのシリアル番号を使用して) 特定のスレーブを選択するか、又はバイナリ検索 アルゴリズムを使用してバス上の次のスレーブを 見つけます。一旦特定のデバイスが選択されたら、 他の全てのデバイスはドロップアウトして、(次の リセットが発生するまで)その後の通信を無視します。 全ての1-Wireバスデバイスが共有する最も基本的な 特長は、各デバイスが出荷時にレーザで書き込まれ たアドレス(シリアル番号のようなもの)を持って おり、アドレスは決して他のデバイスと重複しない ことです。即ち、各デバイスは独特であるというこ とです。これにより、同じバスワイヤに接続されて いる多くのデバイスから、1つを個別に選択できます。 1つ、2つ、又は何十個もの1-Wireデバイスが通信用 に単一のワイヤを共有できるため、各デバイスを 順番に見つけるためにバイナリ検索アルゴリズムが使 用されています。各デバイスのアドレスが分かれば、 そのアドレスを使用して任意のデバイスを個別に選択 することができます。 あるデバイスがバス通信用に分離されると、マスター はそのデバイス特有のコマンドを発し、デバイスと の間でデータの送受信を行うことができます。 各スレーブ独自のID番号には8ビットのファミリコード が含まれています。各デバイスタイプは異なる機能 を備えているため、このコードを使用してデバイス への制御又は質問のためのプロトコルが選択されま す。各デバイスタイプには異なる機能及び目的があ るため、一旦選択されると各々が独自のプロトコル を持つようになります。 スレーブデバイスはタイマ付プロセスを備えていた り、現実(非同期)のデータソースを監視している 可能性があるため、迅速にマスターの注意を引く 必要が生じることがあります。接続された数十個の スレーブに対してポーリングを行い、各々に独自の ID番号でアドレス指定してから内部レジスタを読取 るのは比較的時間のかかるプロセスであり、又CPU を集中的に使用することになりがちです。そのため、 条件付検索と呼ばれる特別なタイプのデバイス検索 がサポートされています。この特別な検索には、 電気的には、1-WireバスはワイヤードOR構成になっ ています。標準的なマスターはオープンドレインのプ ルダウンと3∼5Vへの抵抗プルアップで構成されてい ます。スレーブはオープンドレイン出力を備えており、 バスをプルダウンすることしかできません。 1-Wireデータの波形はパルス幅変調に似ています。 バスマスターがリセット(最長のロー期間)を発生し、 それによってバス全体が同期されます。その後マスター は各ビットタイム期間(タイムスロット)を開始し、 21 人間にも識別できます。多くの1-Wireデバイスは、 プリント基板への実装用に標準SOP、TSOC又はTO パッケージでも提供されています。デバイスによっ ては、チップスケールパッケージ(フリップチップ) で提供されているものもあります。 予 め 決 め ら れ た 基 準 に 一 致 す る 条 件 (又 は 過 去 の イベント)を持つスレーブデバイスのみが現れます。 マスターはこの条件付検索を定期的に行い、サービス を必要とするデバイスのみを見つけ出します。 殆どの1-Wireデバイスは、iButtonと呼ばれる1 0 セント硬貨を4つ重ねた位の大きさの丈夫なステンレ ス容器に収められています。一部のiButtonは、内部 リアルタイムクロック又はデータロガーを駆動する と共に、NV SRAMデータ又は設定情報を10年以上 保持できる小さなリチウム電池を備えています。又、 バ ッ ク ア ッ プ 電 源 不 要 の EEPROMを 備 え て い る iButtonもあります。 1-Wire周辺デバイスとしては、PC用の様々なシリア ル及びパラレルポートアダプタ、プローブ、フォブ 及びホルダー、広範囲のiButton付属品等が挙げられ ます。 www.ibutton.comにアクセスすると、ファイル通信、 構造及びエラー制御用の規格を実施するための広範 な1-Wireソフトウェアの例及びAPIを入手すること ができます。 これらのステンレスiButtonは、蓋の部分に独自の シリアル番号がレーザエッチングされているため、 SECURE MEMORY (SHA-1) TEMPERATURE ® THERMOCHRON TEMPERATURE LOGGER DS1920 DS1921 BUS MASTER NETWORK OR DIAL-UP DS2406 DS2450 SENSE AND CONTROL ANALOG SIGNALS DS2401 SERIAL NUMBER ® iButton PROBE The 1-Wire® Bus Thermochron, 1-Wire, and iButton are registered trademarks of Dallas Semiconductor. 図1. 1-Wireデバイスとしては、データの保存(NV RAM、EPROM及びEEPROM)、温度と電圧の読取りと記録、抵抗の調整、カウント、 制御と検出、他システムとのインタフェース、及び計時と暗号化等、様々な機能を備えたものが提供されています。 22
© Copyright 2024 Paperzz