アプリケーションノート 1740

White Paper 6: 1-Wire® Drivers Installation Guide for Windows


要約: The software application developer has two options for installing 1-Wire device drivers on Microsoft® Windows® 32- and 64-bit platforms (Windows 7, Windows Server 2008, Windows Vista®, and Windows XP® service pack 2 or greater). The first option uses Maxim's 1-Wire Drivers installation program; the second option is to develop a custom installation program. This application note discusses the installation process for 1-Wire drivers. It explains which drivers and dlls go with which 1-Wire port adapter (USB, serial port, and parallel port). It also lists the subdirectory to which each dll and driver must be copied and the appropriate registry keys that need to be created. This white paper also covers the installation of both the TMEX API and the 1-Wire API for .NET.

Introduction

This white paper discusses the installation process of the 1-Wire drivers for the following Microsoft Windows 32-bit and 64-bit operating systems: Windows 7, Windows Server 2008, Windows Vista, and Windows XP (service pack 2 or greater). There are two ways to accomplish a 1-Wire drivers installation. The first option uses Maxim's 1-Wire drivers installation program, and the second option is to develop a custom installation program.

1-Wire Drivers Installation Program

The easiest option for a 1-Wire software developer is to use the installation program created by Maxim. Also known as the TMEX runtime environment (RTE), the 1-Wire Drivers installation program performs a comprehensive install of all 1-Wire adapter drivers. Other files installed include application programming interface (API) library called TMEX, along with supporting dlls and documentation. The installation also writes the necessary registry keys for the software's proper functioning. The 1-Wire Drivers installation program is available for download.

When deploying a custom 1-Wire application, there are two approaches for distributing the 1-Wire Drivers installation package. One approach is to notify the end customer to download and install the 1-Wire Drivers package. This is the easiest method, but it requires the end user to install two separate software pieces: the 1-Wire Drivers package and the software developer's custom 1-Wire application. The second approach is to make a custom installation program that not only installs the developer's own program, but spawns the 1-Wire drivers. This can be done easily since the 1-Wire Drivers package can be installed silently, without any user interaction. For more information, see the 1-Wire Drivers Installation Project section below.

Creating Custom Installation Programs

Some 1-Wire software-application developers desire or are required to make a single installation program that includes their custom 1-Wire application, the necessary 1-Wire drivers, and other API libraries. Many developers do not need the entire 1-Wire Drivers installation, but only the drivers necessary for their application. To make a custom driver installation, the software developer must understand the interdependencies among the different 1-Wire drivers and API libraries. Figure 1 below illustrates those interdependencies.

Determining which files are needed for a custom installation requires the developer to know which API is being used and what hardware adapters will be supported. The API could be either a derivative of the 1-Wire API for Java® (such as the .NET support) or the TMEX API. For a more complete discussion of both APIs and a list of hardware adapters supported by the 1-Wire Drivers, see the documentation included in the 1-Wire Software Development Kit (SDK) for Windows available for download.

Table 1 lists the files and adapter dependencies involved in a 1-Wire Drivers custom installation. Each file is described, along with the file's destination directory on the customer's computer. Note that variables are used to represent the destination directories, as those directories can differ for each Microsoft installation. The default windows\system directory, for example, depends on the operating system used (i.e., C:\windows\system32 or C:\winnt\system32). These system directories are represented in Table 1 as %SYS%. The application directory to which the 1-Wire application is copied is represented by %APP%. Table 2 lists the appropriate registry entries to complete a custom installation.

Figure 1. 1-Wire drivers and API connectivity.
*Note: XX in the DLL name is either "32" for 32-bit or "64" for 64-bit Windows.
Figure 1. 1-Wire drivers and API connectivity.























Table 1. 1-Wire Drivers File List with Installation Instructions
(Please note that the XX in the file names of the dlls indicates the Microsoft platform: "32" for 32-bit and "64" for 64-bit Windows.)
Files Description Copy to Destination Subdirectory 1-Wire Adapter Type
OneWireAPI.NET.dll .NET interface to the 1-Wire API for J# This file is not included in the 1-Wire Drivers package, but can be found in the 1-Wire SDK for Windows. Preferably, this file should be copied to the end-user application's directory. It requires that Microsoft's .NET 2.0 redistributable and Visual J# 2.0 Second Edition redistributable be installed on the end-user's computer.  
ibtmjava.dll
or
ibtmjava64.dll
Java JNI native interface to TMEX API %SYS%  
IBFSXX.DLL Main TMEX API library %SYS%  
IB97UXX.DLL Serial port (DS2480B-based adapter) subdriver %SYS% Serial
IB97EXX.DLL Legacy serial port subdriver %SYS% Serial (legacy)
IBUSBXX.DLL USB subdriver %SYS% USB
ds2490winusb_x86.cat
or
ds2490winusb_amd64.cat
USB device driver signed catalog file %APP%\WinUSB_Driver. See Special Considerations for USB. USB
ds2490winusb_x86.inf
or
ds2490winusb_amd64.inf
USB device driver INF file %APP%\WinUSB_Driver. See Special Considerations for USB. USB
WdfCoInstaller01009.dll
(The 64-bit and 32-bit versions have the same name.)
USB Windows Driver Framework Coinstaller %APP%\WinUSB_Driver. See Special Considerations for USB. USB
WUDFUpdate_01009.dll
(The 64-bit and 32-bit versions have the same name.)
Driver Framework Updater %APP%\WinUSB_Driver. See Special Considerations for USB. USB
winusbcoinstaller2.dll
(The 64-bit and 32-bit versions have the same name.)
USB WinUSB Coinstaller %APP%\WinUSB_Driver. See Special Considerations for USB. USB













Table 2. Registry Entries
OS
Type
Files Affected Registry Keys
x86
(32-bit)
IBFS32.DLL
IB97E32.DLL
IB97U32.DLL
IBUSB32.DLL
[HKEY_CURRENT_USER\SOFTWARE\Maxim Integrated\1-Wire Drivers]
"MainDriver"="IBFS32.DLL"
"TYPE1"="IB97E32.DLL"
"TYPE2"="IB10E32.DLL"
"TYPE5"="IB97U32.DLL"
"TYPE6"="IBUSB32.DLL"
"DefaultPortNum"="1"
"DefaultPortType"="6"
x64
(64-bit)
IBFS64.DLL
IB97E64.DLL
IB97U64.DLL
IBUSB64.DLL
[HKEY_CURRENT_USER\SOFTWARE\Maxim Integrated\1-Wire Drivers]
"MainDriver"="IBFS64.DLL"
"TYPE1"="IB97E64.DLL"
"TYPE5"="IB97U64.DLL"
"TYPE6"="IBUSB64.DLL"
"DefaultPortNum"="1"
"DefaultPortType"="6"
x86 (bit) WDFCoInstaller01009.dll
winusbcoinstaller2.dll
WUDFUpdate_01009.dll
ds2490winusb_x86.cat
ds2490winusb_x86.inf
Appropriate registry keys set through Windows plug-and-play installation of WinUSB through the *.inf file.
x64 (bit) WDFCoInstaller01009.dll
winusbcoinstaller2.dll

WUDFUpdate_01009.dll
ds2490winusb_amd64.cat
ds2490winusb_amd64.inf
Appropriate registry keys set through Windows plug-and-play installation of WinUSB through the *.inf file.

Considerations for Running 32-bit Applications on 64-bit Operating Systems

64-bit Microsoft (x64) operating systems allow 32-bit code to run in them. To do this, you will need to perform the following actions:
  1. Make sure that any device driver required to be installed for a 1-Wire adapter is the 64-bit version (called x64 or AMD64).
  2. Note that the 32-bit API dll files starting with "IB" should be copied to the C:\Windows\SysWOW64 directory.

Installation of .NET Files

The .NET 1-Wire software requires that the Windows operating system on which it runs (either 32-bit or 64-bit) to have the .NET runtime installed, along with the Visual J# redistributable. Specifically, the .NET Framework version 2.0 and Visual J# redistributable version 2.0 Second Edition are required. These files can be downloaded from Microsoft's .NET website.

After downloading, perform a search in the search box by using the appropriate keywords. For the .NET framework use ".net 2.0 redistributable" as keywords; for the J# redistributable, use "J# 2.0 redistributable" as keywords. Click on the appropriate item in the results list for each search. Download and installation instructions should appear.

The .NET 1-Wire support is a Microsoft Visual J# compiled version of the 1-Wire API for Java. It comes in the form of a single dll file, OneWireAPI.NET.dll. To install this file, simply copy it to the folder where the parent application (i.e., the application that needs the .NET file) resides. Thus, a developer only needs to copy the .dll file to the folder to which the 1-Wire .NET program is copied.

Besides the OneWireAPI.NET.dll, the developer must also install the TMEX API files and drivers. For complete instructions on this installation, see section below, Installation of TMEX API Files and Drivers.

Installation of TMEX API Files and Drivers

For a list of all TMEX API files and drivers and a description of where these files need to be copied, see Table 1. Also, review the necessary registry entries for the associated files and drivers in Table 2.

The TMEX API files and drivers consist of a main dll library, IBFSXX.DLL (where XX is either 32 or 64, depending upon whether the OS is 32-bit or 64-bit), along with adapter dependent files. The TMEX API files are where a developer can pick and choose which dll files and drivers need to be installed. For example, if a developer only wants DS2480B-based adapters supported (e.g., the DS9097U), the custom installation program only needs to install the main TMEX dll library and the adapter-dependent library file, IB97UXX.DLL. (Again, XX is either 32 or 64, representing a 32- or 64-bit OS.) The developer's custom install must also ensure that the appropriate registry entries are written. In this case the registry entries specified would need to be written from the Registry Keys column in Table 2.

Special Considerations for USB

There are special considerations for installing the 1-Wire USB files. Together, all the device driver USB files are known as a "driver package." The developer is encouraged to write the installation program to "preinstall" the 1-Wire USB driver package. This procedure does not install the device driver files completely. Instead, it simply makes the operating system aware that a device driver is available and flags where to find the device driver files. After the driver package is preinstalled, the user can plug in a 1-Wire USB adapter. The resulting plug-and-play event finishes the installation process.

To preinstall the USB driver package, Microsoft developed special Driver Install Frameworks (DIFx) tools. These tools allow plug-and-play device driver installation to "just work." Three categories of the DIFx tools exist: DIFxApp, DPInst, and DIFxAPI. The category used in the 1-Wire Drivers installation is DIFxApp, which stands for "Driver Install Frameworks for Applications." Using DIFxApp, the Microsoft Windows Installer can install signed driver packages, along with custom applications that use the driver. This is the method used by most custom 1-Wire software vendors. This is also the method used in the current 1-Wire Drivers installation. The DIFxApp tools are located in the Windows Driver Kit (WDK) under the redist\DIFx subdirectory. The DIFxApp tools consist of a merge module for Windows Installer projects and a WixLib object for Windows Installer for XML (WiX) projects. The 1-Wire Drivers installation project is a WiX project. See Appendix A for more information about 1-Wire USB adapter (DS9490) installation help.

1-Wire Drivers Installation Project

As mentioned above, the 1-Wire Drivers installation project was written as a Microsoft's Windows Installer for XML (WiX) project. WiX is an open-source toolset released by Microsoft that builds Windows installation packages from XML source code. The toolset supports a command line environment that developers can integrate into their build processes to create custom MSI installation packages. The WiX toolset is downloadable.

The WiX source code for the 1-Wire Drivers installation project is available as a free download. Specifically look for the "WiX Toolset Download Version x.xx" hyperlink and download the most current 1-Wire Drivers installation source. This download consists of a zip archive that contains the XML source to the install and every file necessary to recreate the 1-Wire Drivers MSI installation package. Besides the WiX toolset, the 1-Wire Drivers WiX project only needs the Windows Driver Kit (WDK). The WDK is where the ".wixlib" object for installing plug-and-play drivers through DIFxApp is found. The WDK is available as a free download from the Microsoft Download Center (search with the keyword "WDK").

When compiled, the 1-Wire Drivers WiX project outputs an MSI installation package. When the installation package is double-clicked, the program msiexec.exe is actually executed with the *.msi file as an input to the program. This means that the msiexec.exe program can be called programmatically by other installs or from a command line. This process is how a "silent" install can be performed with the 1-Wire drivers. From a command line, type: msiexec /package 1-WireDrivers.msi /quiet /norestart. This will start a silent (or "quiet") install with no UI or user interaction required. Replace the 1-WireDrivers.msi file name in the command-line example above with the most current 1-Wire Drivers MSI file name. Consult the Windows Installer SDK for additional documentation on the command-line syntax of msiexec.exe. The Windows Installer SDK is bundled with the Microsoft SDK, which is available as a free download from the Microsoft Download Center (search with the key phrase "Microsoft SDK").

Conclusion

This white paper helps the software developer create a custom installation of 1-Wire drivers and API files. The installation process covers the 1-Wire Drivers for the following Microsoft Windows 32-bit and 64-bit operating systems: Windows 7, Windows Server 2008, Windows Vista, and Windows XP (service pack 2 and later). If more clarification is needed on the installation of a particular file, or if other software technical-support questions arise, the developer is encouraged to submit questions to Maxim's applications engineers through our online support request system.

Appendix A: 1-Wire USB Adapter (DS9490) Installation Help

This appendix provides troubleshooting tips for 1-Wire USB adapter installations. Please see the 1-Wire Drivers page on Maxim's website for the latest information and downloadable installation packages.

Troubleshooting the 1-Wire USB Device Driver Installation

  1. Make sure that the most current version of the 1-Wire Drivers has been downloaded.
  2. Log into an account with administrator privileges. This is required for installing devices drivers. See the note at the end of this document.
  3. Uninstall previous 1-Wire Drivers versions.
  4. Install the most current version of the 1-Wire Drivers by double-clicking on the installation program's icon and following the instructions closely. See application note 4373, "OneWireViewer and iButton Quick Start Guide" for a step-by-step guide to installing the 1-Wire Drivers.
  5. After installation, if difficulties persist, look in the Device Manager to see if the 1-Wire USB adapter has been installed correctly. (It will appear in a list of hardware devices attached to the computer.) To do this using Windows XP, double-click System from the Control Panel. Then click the correct tab (usually the Hardware tab). Then click on the Device Manager button. From Windows Vista or Windows 7, from the Control Panel, click System and Security followed by Device Manager.
  6. With the USB adapter plugged in, the Device Manager should show either of two entries: 1Wire Devices or 1-Wire Devices. The following image shows a successful install on Windows XP (with USB adapter plugged in).

    Figure 2.

  7. If the following error appears, indicated below by a yellow circle with an exclamation mark under the "1Wire Devices" entry, try "Updating" the device driver by right-clicking the entry and then clicking on the "Update Drivers" menu option. (Keep the USB adapter plugged in.)

    Figure 3.

  8. When prompted for the new driver, browse the <applications> folder. This is the default applications folder where the installation program puts the helper utility and readme files. For 32-bit operating systems, this is:
    C:\Program Files\Maxim Integrated\1-Wire Drivers x32\WinUSB_Driver. For 64-bit operating systems, this is:
    C:\Program Files\Maxim Integrated\1-Wire Drivers x64\WinUSB_Driver. Then proceed to finish the Update Driver Wizard.
  9. The driver should now be correctly installed. See the image in Step 6 above where the Device Manager with the 1-Wire USB adapter's driver is successfully installed.

Hand-Installing the 1-Wire USB Adapter's Device Driver

  1. Five files are necessary to hand-install the 1-Wire USB adapter (DS9490) device driver. The first three files are coinstaller dlls: WDFCoInstaller01009.dll, winusbcoinstaller2.dll, and WUDFUpdate_01009.dll. These files install the Windows Driver Framework (WDF) and WinUSB. The last two files have slightly different names based on the type of OS (i.e., either 32-bit or 64-bit). The first file is the signed catalog file, ds2490winusb_x86.cat or ds2490winusb_amd64.cat; the second is the inf file, ds2490winusb_x86.inf or ds2490winusb_amd64.inf. After the 1-Wire Drivers installation occurs, these files can be found in the <applications>\WinUSB_Driver folder.
  2. Alternatively, download the the WiX toolset for the latest 1-Wire Drivers. Extract the files to a specified directory. Included in these files will be the USB driver files mentioned in Step 1.
  3. Log into an account with administrator privileges. This is required for installing device drivers. See note below on how to determine account privileges.
  4. Plug in the DS9490 1-Wire USB adapter.
  5. If the Add Hardware (or Add New Hardware) Wizard does not run in response to plugging in the DS9490, you may already have a failed install. Check the Troubleshooting the 1-Wire USB Device Driver Installation section for details on how to fix this installation.
  6. Follow the instructions when asked to browse for the driver. Browse to the directory containing the files listed in Step 1 above.
  7. Finish the Add Hardware Wizard.
Note: To determine the Windows account privileges, follow these steps:
  1. Log on to Windows with the user account in question.
  2. Click Start > Control Panel.
  3. Double-click the User Accounts icon.
  4. Accounts are listed as Computer Administrator and Password Protected for XP, and Computer Administrator Password Protected, and simply Password Protected for Windows 7 and Windows Vista.
Please contact technical support to determine the availability of software drivers for legacy 1-Wire adapters.