1-Wireパブリック・ドメイン・キット
1-Wire®パブリック・ドメイン・キットは、すべてCで書かれた1-Wire APIを含むソフトウェア開発キット(SDK)です。キットに含まれるAPIソースは、複数のPCオペレーティング・システム、携帯オペレーティング・システム、およびマイクロコントローラ・プラットフォーム間で移植可能です。このキットには1-Wire/iButtonのサンプル・アプリケーションも20以上含まれており、すべてCで記述されています。このキットには、使用できるCコンパイラがないマイクロコントローラ・プラットフォーム用に、リセット/存在検出、バイトI/O、ビットI/Oなどの低水準1-Wireバス・プロトコル・アルゴリズムを記述するアセンブリ・コード関数も含まれています。以下に示すダウンロードはソース・コードのみで、パブリック・ドメイン・キットのAPI、サンプル・プログラム、様々なプラットフォーム別リンク・ファイル、およびCコンパイラのないマイクロコントローラ用のアセンブリ言語ファイルが含まれています。
バージョン3.10をダウンロード—ソース・コードのみ。(新たにDS9490 USB 1-Wireアダプタをサポート)
* 特定プラットフォーム用のコンパイル済みバイナリ・ビルドと1-Wireアダプタをダウンロードするには、下の表を参照してください。
- 1-Wireパブリック・ドメイン・キットを使用すると、スレーブ・デバイスを確認して通信を行うことのできる1-Wireマスタを、ソフトウェアで作成できます。1-Wireプロトコルは1本の信号線とグラウンドを使用するネットワークで、1つのマスタと1つまたは複数のスレーブ・デバイス(iButtonや1-Wireチップなど)で構成されます。このキットは、iButtonを含む任意の1-Wireデバイスとの通信用に、すべての1-Wireトランスポート層サービスとファイルレベル・サービスを提供します。
- 開発者は、1-Wireプログラムを複数のPCやマイクロプロセッサ・プラットフォームへ容易に移植できます。特定プラットフォームに合わせて「TODO」テンプレート(リンク・ファイル)を完成させ、使用することもできます。キットには、いくつかのサンプル・プラットフォーム実装とそのソース・コードが含まれています。
- キットには、様々な1-Wireセンサに使用できるReadAtoDResults()やReadTemperature()などのより高水準のAPI機能と、1-Wireメモリの書込みおよび読出し用のMemoryBank関数やFile関数が含まれています。
パブリック・ドメイン・キット内のすべてのプラットフォーム固有コードは、異なるプラットフォームへの移植を容易にするために、いくつかのファイル(TODOテンプレート)にまとめられています。これらのファイルは、ハードウェアに依存する最も低水準のAPIを構成しています。これらいくつかのファイルが正しくコードされている限り、残りのAPI(およびサンプル・アプリケーション)のコンパイルと実行も正常に行われるはずです。
これら最も低水準のAPIをコードする標準的な方法は3つあります。1つめの方法は「general」と呼ばれ、もう1つは「userial」と呼ばれます。generalビルドでは、プリミティブなリンクレベルの1-Wire通信機能を実装する必要があります(アプリケーション・ノート126を参照)。userialビルドではシリアルポート(RS-232)を使用できることが前提で、マキシムのユニバーサル・シリアル1-Wireライン・ドライバ・マスタDS2480Bを利用する必要があります。DS2480Bはシリアル・ポートを介してコマンドを受信し、1-Wire処理を行った後にシリル・ポートに結果を返します。このソース・コードは、行おうとする1-Wire処理をDS2480Bへのシリアル通信パケットに変換します。userialプラットフォームに不可欠な唯一のコンポーネントは、シリアル・ポートの読出し/書込み用プリミティブです(アプリケーション・ノート192を参照)。マキシムは、DS9097U-009、DS9097U-S09、DS9097U-E25、またはDS1411などのDS2480Bベースのシリアル・アダプタをいくつか販売しています。3つめの「other」実装カテゴリは標準的な1-Wireパブリック・ドメイン用の基本APIを提供しますが、特定のシステムまたはアダプタ機能を利用することによってAPI実装の範囲を広げることができます。
1-Wireパブリック・ドメインAPIのデモ用に、いくつかのサンプル・アプリケーションが用意されています。これらのアプリケーションについて以下に説明します。
プログラム | プログラムの内容 |
atodtst | DS2450クワッドADCのチャンネルA、B、C、Dの値を探して表示します。 |
counter | DS2423 1-Wireカウンタの値を読み出します。 |
coupler | DS2409 1-Wireカプラ(スイッチ)のコマンドをテストして、指定されたDS2409のブランチ上にあるDS2409とその他のデバイスを探します。 |
fish | 1-Wireメモリ・デバイス上のファイル・システムの読出し、書込み、フォーマット、および表示を行います。 |
gethumd | DS2438ベースの湿度センサーを使って湿度を測定します。 |
humalog | DS1923 Hygrochron(湿度を記録するiButton)の温度と湿度(または電圧)を記録するためのミッションの設定や停止を行います。このアプリケーションはデバイスのパスワードも設定し、ミッションに進捗がない場合は電流データを読み出します。このアプリケーションは、DS1922T、DS1922L、またはDS2422にも使用できます。 |
memutil | 1-Wireメモリ・デバイスの読出しと書込みを行います。各デバイスのメモリは機能ごとに異なる「バンク」に分割されます。Memutilはこの「バンク」を使って読出しと書込みを行います。 |
mweather | R1-Wire Weather Stationの読出しを行います。両方のバージョンのウェザー・ステーションに使用できます。 |
sa_ps(2プログラム) | DS1991 iButtonとそのパスワード保護されたメモリ領域を使用するソフトウェア認証用のテスト・アプリケーション(ps_init and ps_check)です。 |
sa_sha (2 programs) | DS1963S/DS1961S SHA iButtonを使用するソフトウェア認証用のテスト・アプリケーション(sha_init and sha_chck)です。 |
sa_time (2プログラム) | 試行時間に制限のあるソフトウェア認証の例を示すためのテスト・アプリケーション(tm_init and tm_check)です。このアプリケーションは、DS1994 iButtons内のリアルタイム・クロックに依存しています。 |
shaapp | 1-Wireネットワーク上でDS2432とDS1961S をテストするためのテスト・アプリケーションです。 shadebit |
(3プログラム) | セキュア認証を必要とする電子キャッシュ/販売アプリケーションでDS1963S/DS1961S SHA iButtonをデビット処理するためのテスト・プログラムです。このアプリケーションにはinitcoprプログラムとinitrovプログラムが必要です。initcoprはDS1963SをSHAコプロセッサとしてセットアップし、initrovはDS1963SまたはDS1961Sをロービング・トークン(と小さい電子小銭入れ)としてセットアップします。 |
swtduo | アドレス指定可能なDS2413 デュアル・スイッチ上で様々な動作を行うためのテスト・アプリケーションです。 |
swtloop | アドレス指定可能なDS2406 デュアル・スイッチ上で様々な動作を行うためのテスト・アプリケーションです。 |
swtmain1c | PIOを備えたDS28E04 1-Wire EEPROM上で様々な動作を行うためのテスト・アプリケーションです。 |
swtmulti | このアプリケーションは、DS2408にアクセスして制御するために使用します。プログラムが起動して最初のDS2408を見つけると、オプションのリストが表示されます。 |
swtsngl | アドレス指定可能なDS2405スイッチをオン/オフし、そのオン/オフ・ステータスを読み出すためのテスト・アプリケーションです。 |
temp | DS18S20/DS1920 1-Wireデジタル温度計の温度測定値を探して表示します。 |
thermo (2プログラム) | これらのユーティリティは、DS1921G Thermochron iButton関連のダウンロード(thermodl)とミッション(thermoms)に使用します。(現在、アプリケーションはHまたはZバージョンのThermochronをサポートしていません |
tstfind | ネットワーク上のすべての1-Wireデバイスを見つけるシンプルなアプリケーションです。 |
アセンブリ言語ルーチン | リセット/存在検出、バイトI/O、ビットI/Oなどの低水準1-Wireバス・プロトコル・アルゴリズムを表すアセンブリ言語ルーチンです。これらのルーチンは次に示すタイプのマイクロコントローラに使用できます:6303、8051、808X、ATMEL(ATmega103)、PIC(16C54、12C508A)。 |
- シリアルおよびUSB(libusb)1-Wireアダプタ用のMacintosh OSXビルドを追加。
- 16ビットDOS、16ビットWindows、Windows CE/PocketPCのビルドを廃止。
- 変換エラーのフィックスを反映してhumutil.cをアップデート。
- DS2413のサポート用にswtduoアプリケーションを、DS28E04-100のサポート用にswtmain1cアプリケーションを、DS2408のサポート用にswtmultiアプリケーションを追加。
- DS28E04-100のシリアル番号変更に対応するために検索CRCの計算を変更。
- multiportビルドとDS9490ビルドのowRelease()をフィックス。コードはアダプタを正しくリリースするようになっているはずです。
パブリック・ドメイン・キットは、これまで複数のプラットフォームに移植されています。これらは以下からダウンロードできます。各ビルドには、ソース・コード(メイク・ファイルまたはプロジェクト・ファイル)と実行型ファイルが含まれています。userial実装には、DS9097U-009、DS9097U-S09、DS9097U-E25、あるいはDS1411などのDS2480Bベースのシリアル・アダプタが必要です。
プラットフォーム | ポート | ライブラリ | コンパイラ | ダウンロード |
Win32® | COM | userial | Visual C++® | すべての標準例(ZIP、2.2MB) |
Win32 | USB | other (DS9490) | Visual C++ | すべての標準例(ZIP、2.1MB) |
Win32 | USB | other (DS9490 + libusb) | Visual C++ | すべての標準例(ZIP、2.2MB) |
Win32 | USB LPT COM | other (マルチポート) | Visual C++ | <<すべての標準例、複数のアダプタに関わる例だけを検索>>(ZIP、2.6MB) |
Win64(x64およびIA64) | USB | USB other (S9490 + libusb) | WDK | すべての標準例(ZIP、4.8MB) *バージョン3.11ベータ(プレリリース) |
Mac OS® X | USB | USB other (S9490 + libusb) | GNU C | すべての標準例(ZIP、2.9MB) *ユニバーサル・バイナリ(PPC/Intel) |
Mac OS X | COM | userial | GNU C | すべての標準例(ZIP、3.2MB) *ユニバーサル・バイナリ(PPC/Intel) |
Linux | COM | userial | GNU C | すべての標準例(ZIP、1.9MB) |
Linux | USB | other(DS9490 + libusb) | GNU C | すべての標準例 (ZIP、1.9MB) |
Win32 | LPT | general (DS1410E) | Visual C++ | すべての標準例(ZIP、1.8MB) |
Win32 | TMEX | other (ラッパー) | Visual C++ | すべての標準例(ZIP、1.7MB) *アップデートについては正誤表のページを参照 |
Win32 | COM | userial | GNU C | すべての標準例(ZIP、2.0MB) |
DS550 | アクティブ・プルアップ・ピン | general | Keil™ | すべての標準例(ZIP、806kB) |
DS550 | COM | userial | Keil | すべての標準例(ZIP、817kB) |
*Visor®、Palm®、DOS、Win16、Windows CE、その他のプラットフォーム・バイナリは、PDK 3.00ソース・コード・ダウンロードのリンク・ファイル(ZIP、1.3MB)からビルドできます。
以下のバイナリ・ビルドは先行バージョンの3.11ベータ2です。このアップデートではWinUSBがサポートされ、64ビットのWindowsオペレーティング・システム(Window Vista® x64、Windows XP x64、およびWindows 2003 x64)が採用されています。
プラットフォーム | ポート | ライブラリ | コンパイラ | ダウンロード |
Win32 | USB | other(DS9490 + WinUSB) | Visual Studio® | すべての標準例 (ZIP、6.6MB) |
Win32 | USB LPT COM | other(WinUSBのマルチポート) | Visual Studio® | すべての標準例 (ZIP、2.6MB) |
Win64 | USB | other(DS9490 + WinUSB) | Visual Studio | すべての標準例 (ZIP、6.9MB) |
Win64 | COM | userial | Visual Studio | すべての標準例 (ZIP、2.6MB) |
Win64 | LPT | general(DS1410E) | Visual Studio | すべての標準例 (ZIP、2.6MB) |
Win64 | USB LPT COM | other(WinUSBのマルチポート) | Visual Studio | すべての標準例 (ZIP、3.1MB) |
旧バージョンあるいは代替のパブリック・ドメイン・キットもまだ使用できます。
- 1-Wireパブリック・ドメイン・キット3.00b2(ZIP、1.3MB)
- 1-Wireパブリック・ドメイン・キット2.00(ZIP、432kB)
- 1-Wireパブリック・ドメイン・キットのPICポート(ZIP、86kB)
開発時にサポートについて不明な点がある場合、コード例が必要な場合、あるいは特定ハードウェアに関して疑問がある場合は、以下のリソースを利用できます。
- 使用例検索エンジンを使って、1-Wireデバイス、プラットフォーム、API、プログラミング言語などに基づき、設計条件に合ったソフトウェア例を検索できます。
- An iButton FAQページで、一般的な問題に対する答えを素早く見つけることができます。
- 1-Wireパブリック・ドメイン・キットの白書:"白書2:1-Wireパブリック・ドメイン・キットの使用」
- 以上のリソースで問題を解決できない場合は、アプリケーション・エンジニアにお尋ねください。