要約
プリント回路基板(PCB)を見分けるには2つの方法があります'minimalist'アプローチはROM技術を使用した製品に基いています。'nameplate'アプローチでは、PnP (プラグアンドプレイ)関連情報を保存するためのユーザプログラム可能なNVメモリが必要です。プラグアンドプレイ性能を実行するための最も明確な方法は、必要な情報を保持し、電源がスイッチオフされてもその情報を失わないメモリチップによる方法です。PCB認識用1-Wireチップは、ROM、EEPROM、およびEPROM (ワンタイムプログラム可能)のような電源とは独立した保存データを維持する必要があります。
はじめに
PCにモデムカードやネットワークカードを増設しようとした人はだれでも、そうした作業が望ましくない結果をもたらし、予想以上の時間がかかることを知っています。大量生産によるコスト削減を実現するために、拡張ボードは、各種ベンダ製の様々なマザーボードと論理的互換性があるように設計されています。こうした適応性により、ボードが機能する前に動作環境に応じてボードを設定する必要があります。設定を実行するには、2つの情報が必要です。すなわち、ボードを導入予定のシステムに関する十分な知識とボード自体に関する知識です。相応する設定が決定されると、ボードのジャンパやフリップスイッチを設定する必要があります。この設定により、ハードウェア導入における作業が困難な部分が完了します。
そうしたアップグレードや変更が訓練を受けた人員により定期的に実行される限り、時間効率は高く、リスクも伴いません。しかし、不慣れな製品を取り扱う必要がある場合は、そのたびに(適切に記述されていないこともある)関連ドキュメントの精読と、試行錯誤の段階とともに新たな学習サイクルが始まります。そうした試行錯誤は、製品や製品を導入するシステムに損害をもたらすおそれがあります。1994年に、特にPCに関してこうした不便な状況を打破するために、「プラグ&プレイ」(PnP)の概念が導入されました。動作するには、各PnPデバイスは以下の機能をすべて備える必要があります。
- 一意的に識別される必要がある。
- デバイスが提供するサービスとデバイスが必要なリソースを示す必要がある。
- デバイスをサポートするソフトウェアドライバを識別する必要がある。
- ソフトウェアがデバイスを設定することが可能である必要がある。
以上の要件は当初はPC製品に対して規定されましたが、複数のデバイス(または回路基盤)で構成される電子機器はすべて、プラグ&プレイ機能の恩恵を受けています。
PnP機能を実装する最もわかりやすい方法は、電源オフの場合でも必要な情報を保持し、喪失しないメモリチップを使用する方法です。場合によっては、適切なメモリがボード上に既設されています(マイクロコントローラ内蔵メモリ、またはバイトワイドのメモリチップやシリアルEEPROMとしてなど)。メモリ全体が他機能にすでに割り当てられているなどの場合には、メモリチップがさらに必要となります。シリアルメモリの小さな物理サイズと最小限の追加I/O要件により、バイトワイドメモリよりシリアルメモリのほうが好まれています。全シリアルメモリの中で、インタフェースが最も簡単なのは1-Wireインタフェース装備のデバイスです。なぜなら、こうしたデバイスが必要なのは、1つのデータラインと基本リファレンスのみだからです。ほとんどの1-WireデバイスはVCCピンも装備せず、データラインから動作エネルギを入手します。すべての1-Wireデバイスには固有の登録番号があるので、追跡が容易になり、1-Wireネットを構築するために複数の1-Wireデバイス(単なるメモリでない)を平行接続する場合に、この番号はアドレスとして機能します。この機能は、他のシリアルデバイスにはありません。登録番号の一部をカスタマイズすることができるので、1-Wireデバイスがボードを認証するカスタムチップに変換され、複製するのが困難になります。
PnP機能に使用されない余分のメモリバイトは回路基盤のリソースの一部を有効/無効にするのに利用することができ、アップグレード用にハードウェアを変更することなく、ライセンス管理に便宜を与えます。記憶容量とチップテクノロジに応じて、メモリは品質管理、保障情報、および修復履歴の製造データを保持することができます。こうした情報を迅速に入手できるので、修復までの時間が短縮されます。
デバイステクノロジ
プリント回路基板を識別する1-Wireチップは、電力供給とは無関係に保管データを保持する必要があります。これにより、ROM、EEPROM、およびEPROMなどの不揮発性(NV)テクノロジで製造されたデバイスの選択が制約されます(表1)。プラスチックパッケージにウィンドウがないことや、アクティブ側を回路基盤に向けるチップスケールパッケージのマウント方法により、EPROMチップがOne-Time-Programmable (OTP)メモリに変換されます。
表1. 回路基盤識別用1-Wireデバイス
Part # | Technology | Memory | Appl. Type | Voltage | Packages | Extras |
DS2401 | ROM | 64 bits | Minimalist | 2.8V to 5.5V | Plastic, CSP | ----- |
DS2430A* | EEPROM | 32 + 8 bytes | Nameplate | 2.8V to 5.5V | Plastic, CSP | 8 bytes OTP |
DS2431 | EEPROM | 128 + 7 bytes | Nameplate | 2.8V to 5.25V | Plastic, CSP | Write protection |
DS2432 | EEPROM | 128 + 16 bytes | Nameplate | 2.8V to 5.5V | Plastic, CSP | Challenge & response |
DS28E01 | EEPROM | 128 + 17 bytes | Nameplate | 2.8V to 5.25V | Plastic | Challenge & response |
DS2433 | EEPROM | 512 bytes | Nameplate | 2.8V to 5.5V | Plastic, CSP | ----- |
DS28EC20 | EEPROM | 2560 + 16 bytes | Nameplate | 3.14V to 5.25V | Plastic | Write protection |
DS2406 | OTP EPROM | 128 bytes | Nameplate | 2.8V to 5.5V, 12V write | Plastic, CSP | 2 controlled I/O pins |
DS2502 | OTP EPROM | 128 bytes | Nameplate | 2.8V to 5.5V, 12V write | Plastic, CSP | Write protection |
DS2505 | OTP EPROM | 2048 bytes | Nameplate | 2.8V to 5.5V, 12V write | Plastic | Write protection |
DS2506* | OTP EPROM | 8192 bytes | Nameplate | 2.8V to 5.5V, 12V write | Plastic | Write protection |
回路基盤識別の概要
表1のAPPL. TYPEの欄で示したように、プリント回路基盤を識別するのに2つの方法があります。ミニマリスト(minimalist)アプローチは、ROMテクノロジによるデバイスに基づいています。また、ネームプレート(nameplate)アプローチは、PnP関連情報を格納するユーザプログラマブルNV (不揮発性)メモリを必要とします。表2では、両アプローチの識別選択肢を紹介しています。1から始まるリファレンス番号は、ミニマリストアプローチを示しています。ネームプレートアプローチの場合は、EEPROMテクノロジによるデバイス(2から始まるリファレンス番号)とOTP EPROM (3から始まるリファレンス番号)があります。各グループ内のリファレンス文字Aは、一般標準仕様部品を表しています。文字Bは、カスタマイズされたROMを持つ部品に使用されています。ROMのカスタマイズについては、「ミニマリストアプローチ」のセクションで説明します。文字Cは保護EEPROM (2C)を示しています。この詳細については、「ネームプレートアプローチ」のセクションを参照してください。
カスタマイズされたデバイスの場合は、複製の保護は供給の制限により実現されています。複製メーカは、カスタマイズ部品を購入することができません。一般デバイス(DS2432およびDS28E01を除く)を保護するには、暗号化などによりデータを操作する必要があります。
一般的な暗号方式(暗号ブロック連鎖方式など)は、鍵(「秘密」)と初期設定ベクトルに依存しています。メモリチップの一意のROM登録番号を初期設定ベクトルに組み込むことによって、同一ソースデータが各デバイスごとに異なるように見えます。このため、データがあるチップから別のチップにコピーされても、アプリケーションでそのコピーは機能しません。暗号化アルゴリズム/ソフトウェアの詳細は、National Institute of Standards and Technology (米国立標準技術研究所)のウェブサイトなど、インターネット上で入手することができます。
表2. 識別選択肢の概要
1A | 1B | 2A | 2B | 2C | 3A | 3B | ||
Approach | Minimalist | Minimalist | Nameplate | Nameplate | Nameplate | Nameplate | Nameplate | |
Identification | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
Cloning Protection | No | Yes | With encryption | Yes | Yes | With encryption | Yes | |
Plug & Play | No | Limited | Yes | Yes | Yes | Yes | Yes | |
Automation | Low | Medium | High | High | High | High | High | |
Min. Order | N/A | > 10k parts | N/A | > 10k parts | N/A | N/A | > 10k parts | |
Typical Volume | Any | > 100k p.a. | Any | > 100k p.a. | Any | Any | > 100k p.a. |
ミニマリストアプローチ
回路基盤を識別する最小コスト方式(1A)では、一般(カスタマイズされていない) DS2401半導体シリアル番号を使用し、1-WireチップのROM登録番号を各ボードに対応付ける中央データベースに依存しています。ユーザプログラマブルメモリがないため、このアプローチではPnPをサポートしていません。
いくぶんコストがかかる選択肢(1B)では、カスタマイズされたROM登録番号付きのデバイスを使用します。これにより、カスタマー(ボード製造メーカ)は、64ビットROMコンテンツの8、12、または16ビットを指定することができます(図1)。ROMビットの一部を制御することによって、PnPへの一部対応を実現しています。ただし、中央ベータベースが、ROMコンテンツを各ボードに対応付ける必要が依然としてあります。PnPが機能するには、ボード上の回路が1-Wireデバイスを読み取り、その情報をホストCPUに転送することができる必要があります。
カスタマイズされたチップは発注元のカスタマーとその正規特約店にのみ販売されるので、こうしたチップは複製メーカが入手することができない規制製品です。こうしたことを利用するには、ファームウェアが正規のカスタマイズチップか、一般チップや他のカスタマー用に製造されたカスタマイズチップであるかを判別する必要があります。
一般デバイス(1A)は注文が容易で、通常在庫から少量出荷されます。カスタマイズされたデバイス(1B)は受注生産され、13週間のリードタイムがあります。登録用紙をお求めの場合は、マキシムまたはその販売組織にお問い合わせください。
ミニマリストアプローチの典型的なチップは、DS2401です。
ミニマリストアプローチ—ユーザメモリなし—比較表
1A | 一般デバイス |
方式 | 登録番号に基づくデータベース参照。 |
事前条件 | データベースが、製品の詳細情報にアクセスするキーとして登録番号を利用。 |
管理 | データベースに全ボードの登録番号を入力し、製品の詳細情報(のリファレンス)を対応付ける。 |
複製保護 | なし。 |
長所 | チップコストが最小。 |
短所 | データベース自動化が、一群のボードの登録番号を読み取り、データベースにリストとして登録番号を送信するテスタに制約される。製品情報への対応付けが手動で行われる。 ボードの詳細情報を読み取るために(リモート)データベースへのアクセスが必要。 |
1B | カスタマイズデバイス |
方式 | 登録番号に基づくデータベース参照。 ボードタイプやボードバージョンを登録番号のカスタマー指定セクション(サブフィールド)にある各種コードが判別。 |
事前条件 | データベースが、製品の詳細情報にアクセスするキーとして登録番号を利用。 |
管理 | データベースに全ボードの登録番号を入力し、製品の詳細情報(のリファレンス)を対応付ける。 一部の製品情報をカスタマー指定のビット(サブフィールド)のコンテンツが自動識別可能。 |
複製保護 | あり。 |
長所 | チップがネームプレートアプローチのメモリチップよりもコスト安。 適切なチップがボードにマウントされると、人為ミスが起こりにくくなる。 各製品や製品バージョンが各種テストプログラムを必要とする場合、テストプログラム名を使って、適切なチップがボードにマウントされているか検証することが可能。 |
短所 | データベース自動化が、一群のボードの登録番号を読み取り、テストプログラム名とともにデータベースにリストとして登録番号を送信するテスタに制約される。 ボードの詳細情報を読み取るために(リモート)データベースへのアクセスが必要。 各種カスタマイズチップのストックと利用のための物流管理が必要。 |

図1. 一般およびカスタマイズROMの登録番号
Option A: 268 million serial numbers per subfield value
Option B: 16.7 million serial numbers per subfield value
Option C: 1.04 million serial numbers per subfield value
例
Generic DS2401
Hex representation of sample registration number: A3 00 00 00 00 D4 92 01
Customized DS2401, customer ID 123 hex, option A, subfield contents AB hex
Hex representation of sample registration number: E5 12 3A B0 00 56 1D 81
The most significant bit of the customized family code is always 1.
カスタマイズROMを読み取っても、選択オプションの内容はわかりません。ただし、特定のカスタマー識別コードとデバイスについては、すべてのユーザ定義サブフィールドコンテンツのオプションは変わりません。
ネームプレートアプローチ
ネームプレートアプローチに適したデバイスはすべて、PnP関連情報を格納するユーザプログラマブルNV (不揮発性)メモリを装備しています。ネームプレートアプローチの場合、PnPが機能し、各データ項目を識別する方法を定義し、各データ項目の(数値的、論理的、およびテキストの)価を表す形式を決定するのに必要なデータ項目をリストにすることが必要です。この形式を特定のアプリケーションがスペースを節約するようにカスタマイズしたり、XML (拡張マークアップ言語)などの業界標準のより優れた形式を使用することができます。データ項目を識別でき、形式が選択されている場合は、データ項目をリストにさらに追加することができます。次に、ボード識別チップのメモリのシーケンスにデータ項目を次々に格納することができます。代わりに、最初のバイト長から最後のCRCチェックの間にデータを組み込み、データをデータファイルとして保存することもできます。1-Wireデバイスのファイル形式の詳細は、アプリケーションノート114 「1-Wire File Structure」を参照してください。
メモリサイズ(単位:バイト)に応じて、製造データなど他の情報用のスペースが存在する場合もあります。こうした情報はボード上のチップに格納されるので、ボード情報を取得するのに中央データベースにアクセスする必要は全くありません。ただし、メモリチップに収まらなかったり、パブリックアクセスから意図的に分離された情報(部品表、部品ベンダ名など)を格納するために、こうしたデータベースを維持するのは依然として適切な行為です。ミニマリストアプローチと同様に、64ビットROM登録番号はこうしたデータベースの基幹です。
識別チップの価格は、記憶容量(メモリサイズ)と製造されるテクノロジに左右されます。このドキュメントの後の例で示すように、PnPに不可欠な情報は128バイト以下に容易に収まります。追加情報の格納を考慮すると、小型メモリチップの128バイトが十分でない場合があります。逆にいえば、2048バイトのチップの場合は、コンパクトな形式で150以上の項目の部品表全体を格納するには十分なスペースがあります。記憶領域の効率が悪いXMLタグ形式を使っても、場合によっては2048バイトは最大50項目の部品表を格納するには依然として十分です。
ネームプレートアプローチに適したメモリチップは、EEPROMとOTP-EPROMという2つのテクノロジで製造されます。どちらのテクノロジにも一般チップ(EEPROMは2Aとして、EPROMは3Aとして参照)およびROMカスタマイズチップ(それぞれ、2Bと3B)があります。ROMのカスタマイズは、ミニマリストアプローチでの説明と同じで(図1参照)、同じ制約事項と推奨事項が適用されます。
保護EEPROM (2C)は、8バイトの機密事項をデバイスに組み込んで、ユーザがカスタマイズすることができます。1度組み込まれると、(パスワードと大幅に異なる)機密事項は、1-Wireラインに決して公開されません。保護EEPROMに書き込む際には、ホストコンピュータは、機密事項と他のデータから計算される160ビットのメッセージ認証コードを送信する必要があります。EEPROMを読み取る際に、デバイスは認証コードを作成することもでき、この認証コードによりマスタは機密事項自体を決して公開することなくチップが正しい機密事項を把握しているかどうかを検証することができます。保護EEPROMの特別な使用についての詳細は、アプリケーションノート3675 「研究開発の投資の保護—双方向の認証とセキュアなソフトによる機能の設定」をご参照ください。
一般デバイス(2A、3A、および2C)は注文が容易で、通常在庫から少量出荷されます。カスタマイズされたデバイス(2B、3B) は受注生産され、13週間のリードタイムがあります。登録用紙をお求めの場合は、マキシムまたはその販売組織にお問い合わせください。
ネームプレートアプローチ(2A、2B)の最小のEEPROMチップは、DS2430Aです。特別機能として、32バイトのリプログラマブルメモリだけでなく、このチップは8バイトの1回限りのプログラマブルレジスタを備えています。DS2431、DS2433、およびDS28EC20は、それぞれ32バイトの4、16、または80ページで構成されています。DS2431およびDS28EC20は書込み保護とOTP-EPROMエミュレーションに対応しています。DS2432およびDS28E01の保護EEPROM (2C)はアプリケーションデータの128バイト(32バイトの4ページ)および1つの8バイトシークレットを保存できます。これらは制御機能用にさらにいくつかのレジスタを備えています。そこにおけるEPROM技術(3A、3B)は、 DS2502 (128バイト)、DS2505 (2048バイト)、DS2506 (8192バイト)、およびDS2406 (128バイト)の4デバイスの選択肢があります。以上のデバイスはすべて32バイトのメモリページで構成されています。メモリだけでなく、DS2406は、ソフトウェア制御のもとでオープンドレイン出力 (アクチュエータ)やディジタル入力(センサ)として機能可能な2つのピンを余分に装備しています。
ネームプレートアプローチ—EEPROM—比較表
2A | 一般デバイス |
方式 | ユーザプログラマブルメモリチップが回路基盤の関連PnPデータを格納。 オプション:追加データについて登録番号に基づくデータベース参照。 |
事前条件 | PnPデータ、追加データ(任意)、データ表現、およびフォーマッティングの定義。 ボードテスタが最終テストでメモリチップをプログラミング。 オプション:追加製品情報にアクセスするデータベース。 |
管理 | ボードテスタが適切なソフトウェアを使用していることを確認。 オプション:テスタとデータベース間のリンクを作成して、ボード登録番号、チップデータのコピー、およびボードテスト結果を格納。 |
複製保護 | データが暗号化されていない場合は、なし。 |
長所 | 大幅に自動化されたデータベース。 メモリチップが不適切なデータでプログラミングされた場合、再プログラミング可能。 |
短所 | ミニマリストアプローチよりもコスト高。 暗号化されていないまたは書込み保護されていない場合、データは未承認の変更により危険。 |
2B | カスタマイズデバイス |
方式 | (2Aと同じ) |
事前条件 | (2Aと同じ) |
管理 | (2Aと同じ) |
複製保護 | あり、暗号化はオプション。 |
長所 | (2Aと同じ) |
短所 | 一般デバイスよりもコスト高。 暗号化されていないまたは書込み保護されていない場合、データは未承認の変更により危険。 |
2C | 保護デバイス(ユーザによるカスタマイズ) |
方式 | (2Aと同じ) |
事前条件 | ボードテスタが、最終テストでメモリチップの機密事項を組み込み、任意データで機密事項をプログラミング。 (それ以外は2Aと同じ) |
管理 | ボードテスタが適切なソフトウェアおよび機密事項を使用していることを確認。 (それ以外は2Aと同じ) |
複製保護 | あり、暗号化はオプション。 |
長所 | データを読み取ることができるが、機密事項を把握せずに変更不可能。機密事項を書き込み保護することが可能。 (それ以外は2Aと同じ) |
短所 | ミニマリストアプローチよりもコスト高。 |
ネームプレートアプローチ—OTP EPROM—比較表
3A | 一般デバイス |
方式 | (2Aと同じ) |
事前条件 | 12V機能付きのボードテスタが最終テストでメモリチップをプログラミング。 (それ以外は2Aと同じ) |
管理 | (2Aと同じ) |
複製保護 | データが暗号化されていない場合は、なし。 |
長所 | 大幅に自動化されたデータベース。メモリチップが不適切なデータでプログラミングされた場合、不適切なデータを無効にし、新規データを未使用メモリセクションに書き込むことが可能(利用可能時)。 データを32バイトのブロックで書き込み保護可能。 |
短所 | ミニマリストアプローチよりもコスト高。 メモリチップへの書き込みに12Vが必要。 |
3B | カスタマイズデバイス |
方式 | (2Aと同じ) |
事前条件 | (3Aと同じ) |
管理 | (2Aと同じ) |
複製保護 | あり、暗号化はオプション。 |
長所 | (3Aと同じ) |
短所 | 一般デバイスよりもコスト高。 メモリチップへの書き込みに12Vが必要。 |
ネームプレート設計の考慮事項
電子ネームプレートは、適切な形式で各データ項目と各項目の値を識別する手段であるPnPに必要なデータ項目をすべて組み込む必要があります。スペースが許せば、ネームプレートに付加情報を追加することができます。金属製や紙製のネームプレート同様に、企業名を組み込み、情報を処理することができます。OTP-EPROMビットは1から0までしかプログラミングすることができないので、こうした制約下でプログラミングデータを変更できる形式定義が推奨されます。
以下の設計概念例は、こうした要件に適合しています。ネームプレートは、企業名とウェブサイトアドレスのASCII文字列から始まり、区切り文字として00バイトが後に続きます。以降のデータはすべて、グループとして構成されています。各グループは、特定目的のためのデータ項目を備えています。また、各データ項目は、グループ内で一意の識別番号(1~255)を保持しています。グループ内の全データ項目値の長さは、同じです。各グループは、グループ番号(1~15)を識別する導入バイトと、グループに適用される値の長さ(1~15バイト)から始まります。値の長さの指定用に下位の4ビットをそのままにして、グループ番号は導入バイトの上位のニブルに格納されます。グループの最後の値の後に、区切り文字として00hバイトが存在します。
当定義の実効性は、SIMMボードサイズの小型ウェブサーバであるMxTNI™ボード上で実証されています。このMxTNIサーバは、マイクロプロセッサなど約65点の部品で構成されています。一部の部品とジャンパは、特定バージョンのボードにのみ組み込まれています。こうしたデータは、表3で示しているように、製造データとPnPデータの2グループに分けて構成されています。
表3. ネームプレートコンテンツ例
Group | Function | Items | Ident. # |
Length | Format |
1 | Manufacturing Data | Product name Part number Hardware revision Date code/lot number |
1 2 3 4 |
12 bytes each | ASCII |
2 | PnP Data | RAM chip select RAM size Ethernet chip presence Ethernet chip to SIMM connection Non-volatizer presence |
1 2 3 4 5 |
1 byte each | Numeric Numeric (Mbits) Boolean Boolean Boolean |
製造データには、IC特有の事項がすべて含まれています。こうした全情報を項目ごとに12バイト以下のASCIIテキストとして表すことができます。
PnPデータは、以下の5つのパラメータで構成されています。1) RAMチップセレクト行数、2) 各RAMチップのサイズ、3) Ethernetチップの存在、4) EthernetチップのSIMMピンへの接続、5) 不揮発性の存在以上のパラメータの最初の2つは数値を持ち、残り3つは、「ブール」で、真か偽のどちらかであることを意味します。こうしたブールパラメータを1バイトのうちの3ビットにマージすることができますが、当例では行いません。代わりに、「真」には1バイト全体のFFh、「偽」には00hが使われます。企業名を含むネームプレート全体は、以下のようになります。
(C)MAXIM www.ibutton.com<00>
<1C><01>MxTNI SERVER <02>90-TINI1-512<03>REVB1 030900<04>0023B/117989<00>
<21><01><01><02><04><03><FF><04><FF><05><FF><00>
角括弧<>に囲まれた情報は、16進形式でバイトを表します。その他の情報はすべて、ASCIIプレーンテキストです。ネームプレート全体としては106バイトのみを必要とし、これはDS2502チップに容易に収まります。大型のメモリチップを選択した場合は、ネームプレートに部品表全体を組み込むことができます。こうした目的のために、パラメータグループを以下のように構成することができます。
Group | Function | Length | Format |
1 | Manufacturing data | 12 bytes each | ASCII |
2 | Plug-and-play data | 1 byte each | (varies) |
3 | Batteries | 9 bytes each | ASCII |
4 | Capacitors | 9 bytes each | ASCII |
5 | Diodes | 9 bytes each | ASCII |
6 | Transistors | 9 bytes each | ASCII |
7 | Resistors | 9 bytes each | ASCII |
8 | ICs part 1 | 9 bytes each | ASCII |
9 | ICs part 2 | 12 bytes each | ASCII |
10 | Crystals | 9 bytes each | ASCII |
11 | Circuit board | 9 bytes each | ASCII |
この情報はすべて同じボード例に適用され、1kB未満に収まります。この想定では、12桁の部品番号をコンポーネント部品などあらゆるものに割り当てる独自の部品番号方式が選択されました。コンポーネント部品の最初の3つの桁は常に同じなので、それらは除外され、長さは9桁に短縮されます。グループ9のICの部品番号は、別のコードで始まります。このため、12桁全部の長さが使われます。
その識別番号はグループ内の各項目の前に置かれるので、項目の順序はそれほど重要ではありません。また、各グループは導入バイトにより識別されるので、グループの順序を変更することもできます。こうした柔軟性により、グループやグループ内の各パラメータを無効にして、後で再定義することができます。OTP-EPROMデバイスでは、こうしたことに特に注目する必要があります。グループ番号を0に変更すると、グループが無効になります。グループ内のパラメータの長さを指定するビットを変更しないでください。グループ全体の新規コピーは、最後のパラメータグループの後に付加されます。パラメータの無効化と再定義を行うには、元の場所でパラメータ番号を00に変更し、新規パラメータ値を備える新バージョンのパラメータグループを付加します。また、変更されなかったグループのパラメータを組み込む必要はありません。EEPROMデバイスの場合、値やグループの無効化と再定義は不要です。何か変更された場合、データ全体を再書き込みすることができます。
上記の設計概念例は、ネームプレート作成の1方法です。バイナリデータとASCIIデータの組み合わせはメモリ消費を最小限に抑えますが、標準化はされません。ASCIIコードのみを使用するXML形式はメモリ効率が劣りますが、標準化されます。XML形式では、同じ例は以下のようになります。
<NamePlate name="MxTNI SERVER">
<Company> (C)MAXIM www.ibutton.com </Company>
</NamePlate>
<ProdData>
<PartNo> 90-TINI1-512 </PartNo>
<Rev> B1 030900 </Rev>
<Date> 0023B/117989 </Date>
</ProdData>
<Config>
<MemChips> 1 </MemChips>
<MemSize> 4Mbits </MemSize>
<EthChip> true </EthChip>
<EthSimm> true </EthSimm>
<NonVol> true </NonVol>
</Config>
このXMLファイルは長さ380バイトで、アプリケーションノート114で記載されたように1-Wireファイル構造でフォーマッティングされています。このXMLネームプレートは、DS2433チップの16メモリページのうち15ページを占めます。パラメータごとにより短い省略形を選択して、XMLファイルのサイズを縮小することができます。
従来型ボードシリアル番号の取得
電子ボード識別やネームプレートの装備にもかかわらず、人が読み取り可能な従来型の回路基板上のシリアル番号もプリントしたい要望があるかもしれません。シリアル番号の16進形式は、64ビットROMの登録番号に組み込まれ済みです。ネームプレートアプローチが選択されている場合は、ネームプレートの設計に10進数のシリアル番号を組み込むことができます。要するに、以下の3つの事例に分類することができます。
- 一般半導体、ミニマリストアプローチ(リファレンス1A)
- カスタマイズ半導体、ミニマリストおよびネームプレートアプローチ(リファレンス1B、2B、および3B)
- 一般半導体、ネームプレートアプローチ(リファレンス2A、2C、および3A)
従来型シリアル番号を取得するには、48ビットのシリアル番号を入手し(図1参照)、その番号を10進数に変換します。ミニマリストアプローチの一般的なチップであるDS2401は量産されているので、もたらされる10進数の長さは9、10桁です。
従来型シリアル番号を取得するには、シリアル番号化セクションのコンテンツを入手し、それを10進数に変換します。図1に示されているように、カスタマイズ部品のシリアル番号化セクションは28ビット以下です。これにより、シリアル番号の長さが、(オプションAで) 9桁の10進数に、オプションBで8桁に制限されます。予測需要に応じて、7桁のプリントシリアル番号も許容可能な場合もあります。プリントシリアル番号の形式を定義する際には、ユーザ定義サブフィールドの組み込みの有無と組み込み方法を決定する必要があります。16進形式はどんな場合でも機能します。サブフィールドコンテンツに応じて、その桁を2進化10進数(BCD)として取得して、10進数としてそのままプリントすることができます。16進形式でROM登録番号全体やその一部をプリントする際には、CRCを左側に、ファミリーコードを右側にプリントする必要があります。例:25002066007A8081。ファミリコードとCRCを除外すると、カスタマー識別と、ユーザ定義サブフィールドおよびシリアル番号の組み合わせである002066007A80が残ります。ROMオプション(当例ではB)を認識すると、当デバイスの実際のシリアル番号が16進法で007A80、10進法で31360であることがわかります。当例では、サブフィールドを10進法および16進法とみなすことができます。
従来型シリアル番号取得の推奨方法は、10進法形式のシリアル番号をネームプレートに組み込む方法です。こうしたタイプのシリアル番号はボードテスタを制御するソフトウェアにより管理される必要がありますが、その作業は予想ほど容易ではない場合があります。シリアル番号はその名が示す通りすべてにわたって固有である必要があるので、回路基盤にマウントされる前に識別チップをギャングプログラミングするのは選択の対象ではありません。ネームプレートにシリアル番号を組み込まずに、「1) 一般半導体、ミニマリストアプローチ」の事例と同じ手順にフォールバックすることができます。
主回路との接続
PnPデータをホストCPUに提供するには、ボード識別チップをボード上の回路と接続する必要があります。図2に示されるインタフェースは、双方向ポートに適応しています。8051準拠のマイクロコントローラのポート0が、そのオープンドレイン特性により1-Wireライン稼動の選択対象として推奨されます。
図2. デュアル読み取りモードインタフェース
通常動作時にはポートピンは、2.2kΩ抵抗を通じてVCCまでプルアップされます。MOSFET内の寄生ダイオードにより、VGSがゼロでMOSFETがオフでも、1-Wireデバイスの電圧はVCCに接近します。マイクロコントローラがポートピンに論理0 (0V)をプットすると、VGSはトランジスタを導通させるほど十分高くなります。これにより、ポートピンの電圧がトランジスタを通じて1-Wireデバイスに伝播されます。0ビットをマイクロコントローラに転送するために、1-Wireデバイスは短い間、対地1-Wireラインを短絡させます。その間に、電流が1-Wireデバイスを通じてVCCから抵抗およびMOSFETの寄生ダイオードまで流れます。MOSFETのソースとドレイン間の電圧降下にもかかわらず、ポートピンの電圧は許容範囲内で論理0としてまだ無事に認識されています。1ビットを転送するために、1-Wireデバイスはハイインピーダンスのままです。このため、1-Wireラインは、マイクロコントローラがプルダウンを停止するとすぐに、抵抗によりVCCにプルされます。ボードが電源供給されていない場合は、外部プローブポイントを通じて1-Wireチップを読み取ることができます。2.2kΩ抵抗によってMOSFETのVGSが0になり、これにより、トランジスタが導通しなくなり、外部1-Wireリーダからボード上の他の回路への電流フローが妨げられます。図2で示すジャンパは、EPROMデバイスの場合のみ必要です。このジャンパは、MOSFETを保護するために12Vパルスから除去する必要があります。これはネームプレートデータ付きのEPROMチップをプログラミングするために、テスタにより使用されます。プログラミングの完了後に、マイクロコントローラが識別チップにアクセスできるようにジャンパを再組み込みする必要があります。
図2の回路の概念は、シリアルインタフェースの他のタイプに適用することができます。ただし、デカップリングトランジスタは、クロック/制御信号だけでなく、データラインにとっても必要です。また、シリアルメモリチップの電源供給ラインを分断することも必要です。シンプルな2ピンプローブポイントの代わりに、4ピンや5ピンが必要な場合もあります。その他の短所としては、1-Wire以外のシリアルメモリデバイスには、カスタマイズ可能な内蔵シリアル番号が組み込まれていません。DS2432は、そのセキュリティ機能で市場において卓越しており、直接のライバルがいません。
実際例
ネームプレート設計の考慮事項の一例として選ばれたMxTNIボードは、電子ネームプレートを実際内蔵しています。こうした各ボードでは、そのEthernetインタフェースのためEthernet Addressが必要です。半導体にこうしたアドレスを実装する最も簡単な方法は、1ページはイーサネットアドレスと管理データによって事前設定され、追加コストなしで3つのメモリページをネームプレートに利用できるままにするDS2502-E48の方法によるものです。
実際のMxTNIネームプレート設計は、この設計概念例とは少し異なります。しかし、すべての関連データが含まれ、識別可能で、値を備えている限り、少し異なっていても許容できます。MxTNIネームプレートは、表4に示されているように7つのデータエンティティやタグを備えています。
表4. MxTNIネームプレートコンテンツ
Tag Name | Tag # | Tag Length | Tag Format | Possible Tag Values |
TAG_TINI_HW_VERSION | 01 | 35 bytes | ASCII | (text string) |
TAG_DATE_CODE | 02 | 4 bytes | numeric | (UNIX 32-bit time format) |
TAG_RAM_CHIP_SELECT_CONFIG | 03 | 1 byte | numeric | 1, 2 |
TAG_RAM_SIZE_EACH_CONFIG | 04 | 3 bytes | numeric | 0 to 16777216 bytes |
TAG_SMC_NOT_PLACED | 05 | 1 byte | numeric | 0 = Ethernet available 1 = Ethernet unavailable |
TAG_SMC_PORT_PINS_CONNECTED | 06 | 1 byte | numeric | 0 = pins not connected 1 = pins connected |
TAG_NONVOLATIZER_NOT_PLACED | 07 | 1 byte | numeric | 0 = non-volatizer used 1 = non-volatizer not used |
各タグは、バイト長とタグ値が後続する数字により識別されます。タグ番号1から始まり、7つのタグは結合して、MxTNI構成データを構成します。この構成データは、メモリページのサイズに合致する、それぞれ32バイトのデータパケットに再フォーマッティングされます。各パケットはバイト長から始まり、CRC16で終わります。デバイス例の事前設定されたデータを含むデータパターン結果は、表5に紹介されています。
表5. MxTNI識別チップ例
Preprogrammed Section | ||||||||||||||||
Address | ||||||||||||||||
0000 | 0A | 29 | 11 | 00 | 00 | B8 | 93 | 00 | 35 | 60 | 00 | 68 | 59 | FF | FF | FF |
0010 | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF |
Nameplate Section | ||||||||||||||||
Address | ||||||||||||||||
0020 | 1D | 01 | 23 | 44 | 53 | 20 | 54 | 49 | 4E | 49 | 20 | 4D | 6F | 64 | 65 | 6C |
0030 | 20 | 33 | 39 | 30 | 20 | 52 | 65 | 76 | 20 | 44 | 20 | 44 | 53 | 54 | F3 | 3C |
0040 | 1D | 49 | 4E | 49 | 31 | 2D | 35 | 31 | 32 | 02 | 04 | A0 | 3E | 36 | 3A | 03 |
0050 | 01 | 01 | 04 | 03 | 00 | 00 | 08 | 05 | 01 | 00 | 06 | 01 | 01 | 07 | C5 | 01 |
0060 | 02 | 01 | 00 | AF | AF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF |
0070 | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF |
Color Code Legend
Data Packet Length Byte | Constant data (IEEE® company Identification) | |
Data Packet CRC | (no color = unused byte) | |
Data Pattern Identification Number | Nameplate Parameter Number and Parameter Length | |
Serialization | Nameplate Parameter Value |
ネームプレートを読み取るには、タグサイズが後に続くタグ番号を識別する必要があります。タグ長が示す後続のバイト数がタグ値です。さらにその次のバイトがタグ番号で、以下同様に続きます。表6では復号化形式で表5のデータを示しています。タグ値を復号化する際には、最下位のバイトを数値の小さいアドレスにしてマルチバイト数が格納されることを認識する必要があります(「リトルエンディアン」バイト順方式)。桁の通常シーケンスを復元するには、逆の順序で(すなわち、「Explanation (説明)」欄に示されているように右から左に)、バイト(桁でない)を記述する必要があります。テキストは、通常シーケンスで格納されています(すなわち、数値の小さいアドレスに先頭文字)。
表6. 復号化ネームプレート
Preprogrammed Section | Tag # | Value | Explanation |
(N/A) | 29 11 00 00 | Data pattern ID# 00001129 | |
(N/A) | B8 93 00 | Ethernet extension ID# 0093B8 (serialization) | |
(N/A) | 35 60 00 | Ethernet company ID# 006035 (constant data) | |
Nameplate Section | |||
01 | (text) | Text = "DS MxTNI Model 390 Rev D DSTINI1-512" | |
02 | A0 3E 36 3A | 3A363EA0 = December 12, 2000, 15:05:04 hours (see note) | |
03 | 01 | 1 chip select | |
04 | 00 00 08 | 08 00 00 = decimal 524288 bytes (512K) | |
05 | 00 | SMC Ethernet chip is available | |
06 | 01 | SMC port pins are connected to SIMM edge connector | |
07 | 00 | Non-volatizer is used |
注:日付コード3A363EA0は、1970年1月1日の0時UTC (協定世界時)からの、976633504秒を表しています。この時刻形式では、1日が厳密に24時間ちょうどであると想定しています。したがって秒から日時への変換は、非常に簡単です。日付の計算は、うるう年の補正を含み、複雑になっています。通常の時刻および日付から秒に変換するアルゴリズムや、その逆の変換については、アプリケーションノート517 「DS1371/DS1372/DS1374 32-Bit Binary Counter Time Conversion」を参照してください。
最初のバイト長と最後のCRC16により構成データがパケット化されるので、パラメータを無効にすることはできません(追加メモリチップの導入後のネームプレートの更新など)。パケット化を行わない場合は、パラメータの無効化は可能でした。ただし、こうしたパケット化により、メモリビットエラーからチップ内のデータが保護されます。メモリビットがフリップした場合は、CRC16は合致しません。通信時のビットエラーから保護するために、すべての1-Wire EPROMチップは、メモリデータに基づくCRCを自動生成し、メモリページの終了後にそのCRCを転送する読み取り機能をサポートしています。
この記事に関して
製品
SHA-1エンジン付き、1Kb保護1-Wire EEPROM
シリコンシリアルナンバー
1024ビット、1-Wire EEPROM
1-Wire EEPROM
20Kb 1-Wire EEPROM
4Kb、1-Wire EEPROM
48ビットノードアドレスチップ
1Kbメモリ付き、デュアル、アドレス指定可能なスイッチ
1Kbアドオンリーメモリ
SHA-1エンジン内蔵、1Kb保護1-Wire EEPROM
シリコン・シリアル・ナンバー、VCC入力内蔵またはなし
16Kbアドオンリーメモリ
64Kbアドオンリーメモリ
{{modalTitle}}
{{modalDescription}}
{{dropdownTitle}}
- {{defaultSelectedText}} {{#each projectNames}}
- {{name}} {{/each}} {{#if newProjectText}}
-
{{newProjectText}}
{{/if}}
{{newProjectTitle}}
{{projectNameErrorText}}