マキシム>TransMissing[products]> iButton > ソフトウェアリソース > iButton:1-Wireパブリックドメインキット

iButton: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アダプタ用にコンパイル済みのバイナリビルドをダウンロードする場合は、下記の表を参照してください。

キットの利点

  1. 1-Wireパブリックドメインキットによって、開発者はスレーブデバイスの識別および通信が可能な1-Wireマスターをソフトウェアで作成することができます。1-Wireプロトコルは、1つのマスターと1つまたは複数のスレーブデバイス(iButtonや1-Wireチップなど)による単一ワイヤとグランドのネットワークです。このキットは、iButtonを含む任意の1-Wireデバイスと通信するための、1-Wireのトランスポートおよびファイルレベルの全サービスを提供します。
  2. 開発者は1-Wireプログラムを複数のPCおよびマイクロプロセッサプラットフォームに容易に移植することができます。特定プラットフォーム用に完成させる必要がある「TODO」テンプレート(リンクファイル)が用意されています。このキットは、数種類のプラットフォーム用の実装例とそれらのソースコードを提供します。
  3. このキットには、さまざまな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-009DS9097U-S09DS9097U-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に対して温度および湿度(または電圧)の記録ミッションを設定および/または停止します。このアプリケーションはデバイスのパスワードも設定し、ミッション進行中以外は現在のデータを読み取ります。このアプリケーションは、DS1922TDS1922L、または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および DS1961Sを動作させるためのテストアプリケーション。
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)の各タイプのマイクロコントローラ用のものが提供されます。

バージョン3.10の新機能

  1. シリアルおよびUSB (libusb) 1-WireアダプタのMacintosh OSX用のビルドを追加。
  2. 16ビットDOS、16ビットWindows、およびWindows CE/PocketPC用のビルドを削除。
  3. humutil.cを更新し、変換エラーを修正。
  4. DS2413、DS28E04-100、およびDS2408に対応するために、それぞれswtduo、swtmain1c、およびswtmultiの各アプリケーションを追加。
  5. DS28E04-100シリアルナンバーの変化に対応するために、検索CRCの計算を変更。
  6. 「multiport」および「DS9490」ビルドのowRelease()を修正。新しいコードはアダプタを適切に解放するようになりました。

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

パブリックドメインキットは複数のプラットフォームに移植されており、下記のリンクからダウンロードすることができます。各ビルドには、ソースコード、makeファイルまたはプロジェクトファイル、および実行形式が含まれています。userialの実装はDS2480Bベースのシリアルアダプタ(DS9097U-009DS9097U-S09DS9097U-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)版が含まれています。

コンパイル済みバイナリビルド(暫定バージョン3.11ベータ2)

プラットフォーム ポート ライブラリ コンパイラ ダウンロード
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. iButtonおよび1-Wireの広範囲のトピックについての白書およびアプリケーションノートをお読みください。
  2. ソフトウェア検索エンジンをご利用ください。開発者は、1-Wireデバイス、プラットフォーム、API、およびプログラム言語に基づいて、設計要件にぴったりのソフトウェア例を検索することができます。
  3. iButton FAQページでは一般的な質問に対する回答が得られます。
  4. メールアーカイブには、過去数年分のメールで議論されたトピックが保存されています。検索エンジンを利用して、この貴重なリソースからサポートの回答を見つけ出してください。
  5. 1-Wireパブリックドメインキットの白書:「白書2:1-Wireパブリックドメインキットの使用
  6. 1-Wireデバイスのデータシート
  7. iButtonのデータシート
  8. サポートが必要な場合は、アプリケーションエンジニアにお尋ねください