
1-Wireパブリックドメインキット

1-Wireパブリックドメインキット
1-Wire®パブリックドメインキットは、完全にC言語で記述された1-Wire APIを含んだソフトウェア開発キット(SDK)です。キットに含まれるAPIのソースは、複数のPC用オペレーティングシステム、ハンドヘルド用オペレーティングシステム、およびマイクロコントローラプラットフォームに移植可能です。また、このキットには20以上の1-Wire/iButtonアプリケーション例も含まれており、すべてC言語で記述されています。利用可能なCコンパイラがないマイクロコントローラプラットフォーム用に、このキットにはリセット/プレゼンス検出、バイト入出力、およびビット入出力などの低レベル1-Wireバ スプロトコルアルゴリズムを表すアセンブリコード機能も備えています。次のダウンロードはソースコードのみで、パブリックドメインキットのAPI、プログ ラム例、各プラットフォーム別のリンクファイル、およびCコンパイラのないマイクロコントローラ用のアセンブリ言語ファイルが含まれています。
バージョン3.10をダウンロード—ソースコードのみ(新たにUSB 1-WireアダプタのDS9490をサポート)
- 1-Wireパブリックドメインキット + プログラム例 + 全リンクファイル + アセンブリ言語ファイル (ZIP, 784kB)
*特定のプラットフォームおよび1-Wireアダプタ用にコンパイル済みのバイナリビルドをダウンロードする場合は、下記の表を参照してください。

- 1-Wireパブリックドメインキットによって、開発者はスレーブデバイスの識別および通信が可能な1-Wireマスターをソフトウェアで作成することができます。1-Wireプロトコルは、1つのマスターと1つまたは複数のスレーブデバイス(iButtonや1-Wireチップなど)による単一ワイヤとグランドのネットワークです。このキットは、iButtonを含む任意の1-Wireデバイスと通信するための、1-Wireのトランスポートおよびファイルレベルの全サービスを提供します。
- 開発者は1-Wireプログラムを複数のPCおよびマイクロプロセッサプラットフォームに容易に移植することができます。特定 プラットフォーム用に完成させる必要がある「TODO」テンプレート(リンクファイル)が用意されています。このキットは、数種類のプラットフォーム用の 実装例とそれらのソースコードを提供します。
- このキットには、さまざまな1-Wireセンサー用のReadAtoDResults()およびReadTemperature()や、1-Wireメモリの読み書きのためのMemoryBankおよびFile関数などの、より高レベルのAPI関数が含まれています。

さまざまなプラットフォームへの移植を容易にするために、パブリックドメインキットに含まれるプラットフォーム固有の全コードは少数のファイル(TODO テンプレート)の形で構成されています。これらのファイルは、ハードウェアに依存するAPIの最低位レベルを表しています。これらの少数のファイルさえ正 しくコード化されていれば、残りのAPI (およびサンプルアプリケーション)は正常にコンパイルされ動作するはずです。
APIの最も低レベル部分をコード化するには、3つの標準的な方法があります。第1の方法は「general」と呼ばれ、第2の方法は「userial」と呼ばれます。generalの構築方法では、Linkレベルの1-Wireの基本通信関数を実装する必要があります(アプリケーションノート126を参照)。userialの構築方法は、シリアルポート(RS-232)の存在を前提として、マキシムのユニバーサルシリアル1-WireラインドライバマスターであるDS2480Bを使用します。DS2480Bはシリアルポートからコマンドを受信し、1-Wire操作を実行して、結果をシリアルポートに返信します。ソースコードは、目的の1-Wire操作をDS2480Bに対するシリアル通信パケットに変換します。userialプラットフォームの構築で使用する唯一のコンポーネントは、シリアルポートの基本読込み/書出しのみです(アプリケーションノート192を参照)。マキシムは、DS2480Bベースのいくつかのシリアルアダプタ(DS9097U-009、DS9097U-S09、DS9097U-E25、またはDS1411など)を販売しています。第3の「other」実装カテゴリは、標準1-Wireパブリックドメイン基本APIを提供しますが、特定のシステムまたはアダプタの特長を利用することによってAPIの実装は異なるものになります。

1-WireパブリックドメインAPIの実証用に、いくつかのアプリケーション例が提供されています。これらのアプリケーションについて以下で説明します。
プログラム | プログラムの説明 |
---|---|
atodtst | クワッドADCのDS2450のチャネルA、B、C、およびDの値を調べて表示します。 |
counter | 1-WireカウンタのDS2423の値を読み取ります。 |
coupler | 1-Wireカプラ(スイッチ)のDS2409のコマンドをテストし、指定したDS2409の支線上にあるDS2409およびその他のデバイスを検索します。 |
fish | 1-Wireメモリデバイス上のファイルシステムの読取り、書込み、フォーマット、および表示を行います。 |
gethumd | DS2438ベースの湿度センサーを使用して湿度を測定します。 |
humalog | 湿度ログを記録するiButtonのDS1923 Hygrochronに対して温度および湿度(または電圧)の記録ミッションを設定および/または停止します。このアプリケーションはデバイスのパスワードも設定し、ミッション進行中以外は現在のデータを読み取ります。このアプリケーションは、DS1922T、DS1922L、またはDS2422でも動作します。 |
memutil | 1-Wireメモリデバイスの読み書きを行います。各デバイスのメモリは、機能別に異なる「バンク」に分割されています。memutilは「バンク」を使用して読み書きを行います。 |
mweather | 1-Wireウェザーステーションの読取りを行います。両方のバージョンのウェザーステーションをサポートしています。 |
sa_ps (2 programs) | iButtonのDS1991を使用したソフトウェア認証およびそのパスワード保護されたメモリ領域のためのテストアプリケーション(ps_initおよびps_check)。 |
sa_sha (2 programs) | SHA iButtonのDS1963S/DS1961Sを使用したソフトウェア認証のためのテストアプリケーション(sha_initおよびsha_chck)。 |
sa_time (2 programs) | 時限式試行を使用したソフトウェア認証の例のためのテストアプリケーション(tm_initおよびtm_check)。このアプリケーションはiButtonのDS1994のリアルタイムクロックを使用します。 |
shaapp | 1-Wireネットワーク上のDS2432および |
shadebit (3 programs) | セキュア認証を必要とするe-キャッシュ/販売アプリケーションにおいてSHA iButtonのDS1963S /DS1961Sの デビット処理を行うテストプログラム。このアプリケーションでは、initcoprおよびinitrovプログラムがDS1963SをSHAコプロセッサ としてセットアップし(initcopr)、DS1963SまたはDS1961Sを(小型の電子小銭入れを備えた)ロービングトークンとしてセットアップ する必要があります。 |
swtduo | デュアルアドレス指定可能スイッチのDS2413に対するさまざまな操作を実行するテストアプリケーション。 |
swtloop | デュアルアドレス指定可能スイッチのDS2406に対するさまざまな操作を実行するテストアプリケーション。 |
swtmain1c | PIO内蔵1-Wire EEPROMのDS28E04に対するさまざまな操作を実行するテストアプリケーション。 |
swtmulti | このアプリケーションは、DS2408に対するアクセスと制御を行います。プログラムが起動して最初のDS2408を検出した時点で、選択肢のリストが示されます。 |
swtsngl | DS2405のオン/オフを行い、アドレス指定可能スイッチのDS2405のオン/オフ状態を読み取るテストアプリケーション。 |
temp | 1-WireデジタルサーモメータのDS18S20/DS1920を検出して温度測定値を表示します。 |
thermo (2 programs) | これらのユーティリティは、Thermochron iButtonのDS1921Gのダウンロード(thermodl)およびミッション(thermoms)に使用されます(現在このアプリケーションはHまたはZバージョンのThermochronには対応していません)。 |
tstfind | ネットワーク上の全1-Wireデバイスを検出する簡単なアプリケーション。 |
assembly language routines | リセット/プレゼンス検出、バイト入出力、およびビット入出力などの低レベル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、DS28E04-100、およびDS2408に対応するために、それぞれswtduo、swtmain1c、およびswtmultiの各アプリケーションを追加。
- DS28E04-100シリアルナンバーの変化に対応するために、検索CRCの計算を変更。
- 「multiport」および「DS9490」ビルドのowRelease()を修正。新しいコードはアダプタを適切に解放するようになりました。

パブリックドメインキットは複数のプラットフォームに移植されており、下記のリンクからダウンロードすることができます。各ビルドには、ソースコード、makeファイルまたはプロジェクトファイル、および実行形式が含まれています。userialの実装はDS2480Bベースのシリアルアダプタ(DS9097U-009、DS9097U-S09、DS9097U-E25、またはDS1411など)を必要とすることに注意してください。
プラットフォーム | ポート | ライブラリ | コンパイラ | ダウンロード |
---|---|---|---|---|
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 (multi-port) | Visual C++ | すべての標準的な例、検索の例は複数アダプタ間のみ (ZIP, 2.6MB) |
Win64 (x64 and IA64) | USB | USB other (DS9490 + libusb) | WDK | すべての標準的な例 (ZIP, 4.8MB) *バージョン3.11ベータ(先行リリース) |
Mac OS® X | USB | USB other (DS9490 + 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 (wrapper) | Visual C++ | すべての標準的な例 (ZIP, 1.7MB) *更新については正誤表のページを参照 |
Win32 | COM | userial | GNU C | すべての標準的な例 (ZIP, 2.0MB) |
DS550 | Active Pull-up Pin | general | Keil™ | すべての標準的な例 (ZIP, 809kB) |
DS550 | COM | userial | Keil | すべての標準的な例 (ZIP, 817kB) |
*Visor®、Palm®、DOS、Win16、Windows CE、およびその他のプラットフォーム用バイナリは、PDK 3.00ソースコードダウンロード(ZIP, 1.3MB)に含まれているリンクファイルから構築することができます。
*1-Wireパブリックドメインキット3.10に関する既知の問題の最新リストについては、正誤表のページを参照してください。
以下のバイナリビルドは、暫定のバージョン3.11ベータ2です。このアップデートには、WinUSBサポートおよび64ビットWindowsオペレーティングシステム(Windows Vista® x64、Windows XP x64、およびWindows 2003 x64)版が含まれています。

プラットフォーム | ポート | ライブラリ | コンパイラ | ダウンロード |
---|---|---|---|---|
Win32 | USB | other (DS9490 + WinUSB) | Visual Studio® | すべての標準的な例 (ZIP, 6.6MB) |
Win32 | USB LPT COM | other (multiport with 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 (multiport with WinUSB) | Visual Studio | すべての標準的な例 (ZIP, 3.1MB) |

旧版/代替パブリックドメインキットも引き続き提供されています
- 1-Wireパブリックドメインキット3.00b2 (ZIP, 1.3MB)
- 1-Wireパブリックドメインキット2.00 (ZIP, 432kB)
- 1-WireパブリックドメインキットのPIC移植版 (ZIP, 86kB)

開発者からサポートへの質問、コード例の要求、または特定のハードウェアに関するご質問がある場合は、以下のリソースをご利用ください。
- iButtonおよび1-Wireの広範囲のトピックについての白書およびアプリケーションノートをお読みください。
- ソフトウェア検索エンジンをご利用ください。開発者は、1-Wireデバイス、プラットフォーム、API、およびプログラム言語に基づいて、設計要件にぴったりのソフトウェア例を検索することができます。
- iButton FAQページでは一般的な質問に対する回答が得られます。
- 1-Wireパブリックドメインキットの白書:「白書2:1-Wireパブリックドメインキットの使用」
- 1-Wireデバイスのデータシート
- iButtonのデータシート
- サポートが必要な場合は、アプリケーションエンジニアにお尋ねください。