EUSB
Basics
EID's universal serial bus (EUSB)
are an educational electronics kits
that allows you to connect your personal computer (PC) universal
serial port directly to them. The kits are based on Cypress
integrated circuit (IC), the CY7C63001.
Note:
The CY7C63001 IC is
Universal Serial Bus (USB) RISC type Micro-controller.
It conforms to USB 1.5 Mbps specification, version 1.1.
See
USB specifications at www.usb.org
for more details, or click here
to download the the CY7C63001
chip
data-sheet.
No
need for external Power supply! The board is powered directly
from your PC.
The
EUSB (EID’s Universal Serial Bus) provides a new way
of interfacing low speed peripherals to personal
computers. Adding
I/O pin and/or Analog to digital converter (ADC)
integrated circuit (IC) to your application on the PC
via a EUSB interface is now easier than ever.
EID’s
“engineering and applied science group” develop
basic electronics kits which include on board
pre-installed EUSB firmware. Just link your software
application with our DLL, enter a few lines of code and you're
done.
EID’s
EUSB support the USB protocol (see www.usb.org)
among others…
EUSB
uses a time-shared serial data stream. The PC acts as a
master by polling all connected peripherals at regular
intervals of one milli-second (1mS). Each peripheral
responds by placing its data on the time multiplexed bus
at their allocated time within this 1mS frame. An
addressing configuration mechanism allows up to 127 devices to be
connected to the bus.
EUSB
utilizes a four-wire cable structure. Two leases are used
for differential data, the other two are used for power
+5 Volt DC and Ground (GND). See below connector
drawings.
EID's
board side
PC side
The
Protocol is very complicated, however, our software
package (DLL + firmware) takes care of it.
For
general knowledge, all you need to know is that the PC
transferred data from the EUSB board is in packet bursts
contained within frames separated by 1mS. Low speed
devices operate at a rate of 1.5Mbit/s. There are faster
rates today i.e. 12Mbit/sec, we use the kit to demonstrate
interface for
industrial and HVAC applications, checking sensors, etc.
1.5Mbit/sec is very fast.
Stop
reading here, and go directly to code example --
unless you
really want to know more details on the protocol...
EUSB
peripherals have to synchronize their outputs to the
frame start. The bit rate clock is recovered from the
NRZI encoded data stream, see drawings below.
EUSB
peripheral may have more than one “endpoint”.
Endpoints are different destination registers sharing
the same device address. Different endpoints can be used
for initializations and control, and for ordinary data
transfers. EUSB uses the term “pipe” to denote a data
transfer from the PC to a particular endpoint. To
increase data rate, a peripheral may occupy more than
one pipe at a time.
There
are four basic methods of transferring information
between a PC and a EUSB peripheral:
Control
–Transfer (CNT): Used to send control signals to the
peripheral. These have high priority and incorporate
inbuilt error protection. It is used for transferring
initializations information, but can also be used for
general-purpose low speed data transfers. Our kits support control transfers.
Bulk
– Transfer (BT): Used by storage devices to transfer
large amounts of data in a time independent manner. This
is useful for printers, disk drivers etc. This method
has low priority on the bus.
Interrupt
– Transfer (INT): Used by low speed data peripherals
such as mice and keyboards that need to send small
amounts of data quickly and periodically to the PC.
Isochronously
– Transfer (IST): Used by peripherals transferring
large amounts of data at a defined data rate, e.g.
soundcards. No error protection is included. The system
must assume that some data may be lost.
All
of our board using an error protected control link
utilizing the low speed bus and guaranteed data rate is
limited to 800 bytes per second.
On
your personal computer (PC), witch we assuming has
support for EUSB via kernel level device drivers in the
operating system. Each EUSB peripheral requires a driver
of its own “class”. EUSB is a “hot wire”
protocol. The PC can also recognize when a peripheral
has been plugged or unplugged during normal work, and is
able to load or unload the corresponding driver at the
same time. This makes EUSB more or less transparent to
the user.
Windows
includes a EUSB driver for interface EUSB going under the
generic name of HID (human interface devices). This
allows for our generic boards to be plugged in without
having installing a special driver.
The
installation procedure is very simple. When the EUSB-kit
is plugged in, a polling signal causes Windows to send
signals on the EUSB asking for identification. The
peripheral responds with its own PID and VID (Product
and Vendor IDs). Windows then searches its directories
for the correct driver assigned to that particular
peripheral. If it cannot find one, it pops up a message
requesting the user to install one. The drivers are
usually supplied on CD. Once the driver is installed,
the application program carries on as normal.
Adding
EUSB is a very simple -- our kit uses Cypress devices
with enough memory and processing power for all of our
flagship boards and kits. EUSB support is provided in the
form of firmware subroutines witch we created in
pre-download to the chip on the board. All you need to
do is to link it into your own code. See code
samples and libraries.
No
need to create the Product and Vendor description
tables. Most of the information here will be provided by
the firmware. If needed (for additional cost) we may
customized them for your information and needs.
We use
a negative number ID that makes our kit boards uniquely
recognizable by the operating system in order to load
the right driver. Since the standard doesn't include or
call for negative ID numbers, we use one for our boards. Our
EUSB series of kits are for research and development purposes
only! Therefore, if you would like to use them as
products -- commercial or other, we strongly
recommend that you will obtain (for a fee) your own USB
product ID (PID) and vendor ID (VID). See www.usb.org
for more details. Doing so, will ensure that your
product doesn't interfere with other USB products.
Finally,
the EUSB cable can provide some power for the peripheral
up to 400mA to be drawn when the peripheral is active,
but only 500uA when inactive. This means you have to
provide for means of switching the power off while the
EUSB is in the suspended state.
|