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アダプタをダウンロードするには、下の表を参照してください。

キットの利点

X+
  1. 1-Wireパブリック・ドメイン・キットを使用すると、スレーブ・デバイスを確認して通信を行うことのできる1-Wireマスタを、ソフトウェアで作成できます。1-Wireプロトコルは1本の信号線とグラウンドを使用するネットワークで、1つのマスタと1つまたは複数のスレーブ・デバイス(iButtonや1-Wireチップなど)で構成されます。このキットは、iButtonを含む任意の1-Wireデバイスとの通信用に、すべての1-Wireトランスポート層サービスとファイルレベル・サービスを提供します。
  2. 開発者は、1-Wireプログラムを複数のPCやマイクロプロセッサ・プラットフォームへ容易に移植できます。特定プラットフォームに合わせて「TODO」テンプレート(リンク・ファイル)を完成させ、使用することもできます。キットには、いくつかのサンプル・プラットフォーム実装とそのソース・コードが含まれています。
  3. キットには、様々な1-Wireセンサに使用できるReadAtoDResults()ReadTemperature()などのより高水準のAPI機能と、1-Wireメモリの書込みおよび読出し用のMemoryBank関数やFile関数が含まれています。

移植性に関する注意事項

X+

パブリック・ドメイン・キット内のすべてのプラットフォーム固有コードは、異なるプラットフォームへの移植を容易にするために、いくつかのファイル(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-009DS9097U-S09DS9097U-E25、またはDS1411などのDS2480Bベースのシリアル・アダプタをいくつか販売しています。3つめの「other」実装カテゴリは標準的な1-Wireパブリック・ドメイン用の基本APIを提供しますが、特定のシステムまたはアダプタ機能を利用することによってAPI実装の範囲を広げることができます。

サンプル・プログラム

X+

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)の温度と湿度(または電圧)を記録するためのミッションの設定や停止を行います。このアプリケーションはデバイスのパスワードも設定し、ミッションに進捗がない場合は電流データを読み出します。このアプリケーションは、DS1922TDS1922L、または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ネットワーク上でDS2432DS1961S をテストするためのテスト・アプリケーションです。 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)。

バージョン3.10での変更点

X+
  1. シリアルおよびUSB(libusb)1-Wireアダプタ用のMacintosh OSXビルドを追加。
  2. 16ビットDOS、16ビットWindows、Windows CE/PocketPCのビルドを廃止。
  3. 変換エラーのフィックスを反映してhumutil.cをアップデート。
  4. DS2413のサポート用にswtduoアプリケーションを、DS28E04-100のサポート用にswtmain1cアプリケーションを、DS2408のサポート用にswtmultiアプリケーションを追加。
  5. DS28E04-100のシリアル番号変更に対応するために検索CRCの計算を変更。
  6. multiportビルドとDS9490ビルドのowRelease()をフィックス。コードはアダプタを正しくリリースするようになっているはずです。

プリコンパイル済みバイナリ・ビルド

X+

パブリック・ドメイン・キットは、これまで複数のプラットフォームに移植されています。これらは以下からダウンロードできます。各ビルドには、ソース・コード(メイク・ファイルまたはプロジェクト・ファイル)と実行型ファイルが含まれています。userial実装には、DS9097U-009DS9097U-S09DS9097U-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)が採用されています。

プリコンパイル済みバイナリ・ビルド(先行バージョン3.11、ベータ2)

X+
プラットフォーム ポート ライブラリ コンパイラ ダウンロード
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)

レガシー・ソフトウェア

X+

旧バージョンあるいは代替のパブリック・ドメイン・キットもまだ使用できます。

サポート・リソース

X+

開発時にサポートについて不明な点がある場合、コード例が必要な場合、あるいは特定ハードウェアに関して疑問がある場合は、以下のリソースを利用できます。

  1. 使用例検索エンジンを使って、1-Wireデバイス、プラットフォーム、API、プログラミング言語などに基づき、設計条件に合ったソフトウェア例を検索できます。
  2. An iButton FAQページで、一般的な問題に対する答えを素早く見つけることができます。
  3. 1-Wireパブリック・ドメイン・キットの白書:"白書2:1-Wireパブリック・ドメイン・キットの使用」
  4. 以上のリソースで問題を解決できない場合は、アプリケーション・エンジニアにお尋ねください