1 |
2 |
ZTEX |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
2 |
|
|
<html>
|
3 |
|
|
<head></head>
|
4 |
|
|
<body bgcolor="white">
|
5 |
|
|
The Java API of the <a href="http://www.ztex.de/firmware-kit/index.e.html">ZTEX EZ-USB SDK</a>.
|
6 |
|
|
<p>
|
7 |
|
|
This API is the host-side counterpart of the Firmware-Kit and allows user software to interact with
|
8 |
|
|
EZ-USB devices running with such firmware. It uses <a href="../ch/ntb/usb/package-summary.html">libusbJava</a>, a Java wrapper
|
9 |
|
|
for the libusb 0.1 and the libusb-win32 USB libraries. This API is known to run on Linux and Windows, but should work on every operating
|
10 |
|
|
system which supports libusb and Java.
|
11 |
|
|
<p>
|
12 |
|
|
<h2>Features</h2>
|
13 |
|
|
The main features are:
|
14 |
|
|
<ul>
|
15 |
|
|
<li> Platform independent host software. It is possible to pack all necessary files (libusb libraries, firmware, bitstream) into
|
16 |
|
|
one single jar archive which runs on both, Linux and Windows (and other OS's that support libusb and Java) </li>
|
17 |
|
|
<li> Licensed as Open Source under GPLv3 </li>
|
18 |
|
|
<li> Firmware upload directly into the EZ-USB Microcontroller</li>
|
19 |
|
|
<li> Access to EEPROM memory</li>
|
20 |
|
|
<li> Firmware upload to EEPROM</li>
|
21 |
|
|
<li> Support of Flash memory </li>
|
22 |
|
|
<li> Bitstream upload directly to the FPGA (for <a href="http://www.ztex.de/usb-fpga-1/usb-fpga-1.2.e.html">ZTEX USB-FPGA-Modules</a>)</li>
|
23 |
|
|
<li> Bitstream upload to Flash memory (for <a href="http://www.ztex.de/usb-fpga-1/usb-fpga-1.2.e.html">ZTEX USB-FPGA-Modules</a>)</li>
|
24 |
|
|
</ul>
|
25 |
|
|
|
26 |
|
|
<p>
|
27 |
|
|
<h2>Interaction with the firmware</h2>
|
28 |
|
|
Firmware built using the <a href="http://www.ztex.de/firmware-kit/index.e.html">Firmware Development Kit</a> supports an additional descriptor, the ZTEX descriptor 1. This descriptor
|
29 |
|
|
identifies the device and firmware, provides compatibility information (e.g. to avoid that a device is loaded with the wrong firmware)
|
30 |
|
|
and specifies the communication protocol. A description of the descriptor is given in {@link ztex.ZtexDevice1}.
|
31 |
|
|
<p>
|
32 |
|
|
The communication protocol defines how the functions provided by the firmware (see main features above)
|
33 |
|
|
can be accessed. Currently there is only one protocol implemented, the so called interface 1.
|
34 |
|
|
A description of the interface is given in {@link ztex.Ztex1v1}.
|
35 |
|
|
<p>
|
36 |
|
|
The most importand classes for the interaction with the EZ-USB device / firmware are
|
37 |
|
|
<p>
|
38 |
|
|
<table bgcolor="#404040" cellspacing=1 cellpadding=4>
|
39 |
|
|
<tr>
|
40 |
|
|
<td bgcolor="#ffffff" valign="top">{@link ztex.ZtexDevice1}</td>
|
41 |
|
|
<td bgcolor="#ffffff" valign="top">Represents an EZ-USB device that supports ZTEX descriptor 1. These devices can be found using {@link ztex.ZtexScanBus1}. </td>
|
42 |
|
|
</tr>
|
43 |
|
|
<tr>
|
44 |
|
|
<td bgcolor="#ffffff" valign="top">{@link ztex.Ztex1}</td>
|
45 |
|
|
<td bgcolor="#ffffff" valign="top">Implementation of interface-independent part of the communication protocol, e.g. uploading the firmware to the EZ-USB and renumeration management.</td>
|
46 |
|
|
</tr>
|
47 |
|
|
<tr>
|
48 |
|
|
<td bgcolor="#ffffff" valign="top">{@link ztex.Ztex1v1}</td>
|
49 |
|
|
<td bgcolor="#ffffff" valign="top">Implemenetaion of the Interface 1, i.e. the interface dependent part of the communication protocol.</td>
|
50 |
|
|
</tr>
|
51 |
|
|
</table>
|
52 |
|
|
|
53 |
|
|
<p>
|
54 |
|
|
<h2>SDK overview</h2>
|
55 |
|
|
The following diagram gives an overview about the usage of the different parts of the <a href="http://www.ztex.de/firmware-kit/index.e.html">ZTEX EZ-USB SDK</a>.
|
56 |
|
|
<p>
|
57 |
|
|
<img src="../../imgs/ztex_firmware_kit-diagram.png" width="660" height="600" alt="ZTEX EZ-USB SDK overview for Linux and Windows">
|
58 |
|
|
<p>
|
59 |
|
|
The host software usually consists of a single jar archive which contains
|
60 |
|
|
<ul>
|
61 |
|
|
<li> all necessary Java bytecode; </li>
|
62 |
|
|
<li> the libusb Java wrapper libraries for Linux (libusbJava.so) and Windows (libusbJava.dll), which are statically linked against libusb (no libusb installation required); </li>
|
63 |
|
|
<li> the firmware for the EZ-USB device (unless not installed in EEPROM); </li>
|
64 |
|
|
<li> Bitstream for the FPGA (if required). </li>
|
65 |
|
|
</ul>
|
66 |
|
|
This single jar archive runs on both, Linux and Windows (or other OS's that support libusb and Java).
|
67 |
|
|
<p>
|
68 |
|
|
On Linux this jar archive has no additional software requirements. The libusb(Java) library communicates directly with the EZ-USB device using kernel routines.
|
69 |
|
|
<p>
|
70 |
|
|
On Windows a libusb driver is required. (This driver is a part of the ZTEX SDK package). The libusb(Java) library communicates with the EZ-USB device using that driver.
|
71 |
|
|
|
72 |
|
|
<h2>Related Resources</h2>
|
73 |
|
|
For more information about this project visit the
|
74 |
|
|
<a href="http://www.ztex.de/firmware-kit/index.e.html">ZTEX EZ-USB SDK</a> page.
|
75 |
|
|
|
76 |
|
|
</body>
|
77 |
|
|
</html>
|