Chapter 3 - Serial Interfacing With Microprocessor Based System
Chapter 3 - Serial Interfacing With Microprocessor Based System
Chapter -3
Within a microcomputer data is transferred in parallel, because that is the fastest way to do it.
For transferring data over long distances, however, parallel data transmission requires too many
wires. Therefore, data to be sent long distances is usually converted from parallel form to serial
form so that it can be sent on a single wire or pair of wires. Serial data received from a distant
source is converted to parallel form so that it can easily be transferred on the microcomputer
buses.
But in serial mode of transfer, only one bit of a word is transferred at a time so that data
transfer rate is very slow; it is the one of the demerit over parallel data transfer.
Compiled By: Er. Hari Aryal [haryal4@gmail.com] References: Gaonkar, Hall & Hyde | 1
Instrumentation II Chapter 3: Serial Interfacing With Microprocessor Based System
In case of serial transmission data is sent in a serial form i.e. bit by bit on a single line. Also, the
cost of communication hardware is considerable reduced since only a single wire or channel is
require for the serial bit transmission. Serial data transmission is slow as compared to parallel
transmission. Serial data can be sent synchronously or asynchronously.
Compiled By: Er. Hari Aryal [haryal4@gmail.com] References: Gaonkar, Hall & Hyde | 2
Instrumentation II Chapter 3: Serial Interfacing With Microprocessor Based System
Synchronous transmission has the advantage that the timing information is accurately aligned to
the received data, allowing operation at much higher data rates. It also has the advantage that the
receiver tracks any clock drift which may arise (for instance due to temperature variation). The
penalty is however a more complex interfaces design, and potentially a more difficult interface to
configure (since there are many more interface options).
Data transmission takes place without any gap between two adjacent characters. However data is
send block by block. A block is a continuous steam of characters or data bit pattern coming at a
fixed speed. You will find a SYNC bit pattern between any two blocks of data and hence the data
transmission is synchronized. Synchronous communication is used generally when two
computers are communicating to each other at a high speed or a buffered terminal is
communicating to the computer.
Compiled By: Er. Hari Aryal [haryal4@gmail.com] References: Gaonkar, Hall & Hyde | 3
Instrumentation II Chapter 3: Serial Interfacing With Microprocessor Based System
Compiled By: Er. Hari Aryal [haryal4@gmail.com] References: Gaonkar, Hall & Hyde | 4
Instrumentation II Chapter 3: Serial Interfacing With Microprocessor Based System
Parity Check
This is the simplest method of error checking which checks the characters by counting the
number of 1s. In this method, D7 of each ASCII code is used to transmit parity check
information. Parity may be the even parity (having even number of 1s in a character) or the odd
parity (having odd number of 1s in a character).
In an even parity system, when a character has an odd number of 1s, the bit D7 is set to 1 and an
even number of 1s is transmitted. On the other hand, in an odd parity system, when a character
has an even number of 1s, the bit D7 is set to 1 and an odd number of 1s is transmitted.
For an example, character to be sent is ‘A’ whose ASCII code is 41H (0100 0001) with two 1s. If
the character is transmitted in an odd parity system, the bit D7 is set to 1 and if it is transmitted in
an even parity system, the bit D7 is set to 0. Most of microprocessors are designed to detect
Compiled By: Er. Hari Aryal [haryal4@gmail.com] References: Gaonkar, Hall & Hyde | 6
Instrumentation II Chapter 3: Serial Interfacing With Microprocessor Based System
parity using the parity flag. However, the parity check cannot detect multiple errors in any given
character.
Checksum
The checksum technique is used when blocks of data are transmitted. It involves adding all the
bytes in a block without carriers. Then, the 2’s complement of the sum (negative of the sum) is
transmitted as the last byte. The receiver adds all the bytes, including the 2’s complement of the
sum; thus, the result should be zero if there is no error in the block.
A baud rate is the number of times a signal in a communications channel changes state or varies.
For example, a 2400 baud rate means that the channel can change states up to 2400 times per
second. The term “change state” means that it can change from 0 to 1 or from 1 to 0 up to X (in
this case, 2400) times per second. It also refers to the actual state of the connection, such as
voltage, frequency, or phase level).
The main difference between the two is that one change of state can transmit one bit, or slightly
more or less than one bit, that depends on the modulation technique used. So the bit rate (bps)
and baud rate (baud per second) have this connection:
Note:
If 1 frame of data is coded with 1 bit then band rate and bit rate are same. Sometimes frame of
data are coded with two or more bits then baud rate and bit rate are not same.
Compiled By: Er. Hari Aryal [haryal4@gmail.com] References: Gaonkar, Hall & Hyde | 7
Instrumentation II Chapter 3: Serial Interfacing With Microprocessor Based System
System A System B
Transmitter/Rec Transmitter/Rec
OR
eiver eiver
Fig:Half Duplex mode
Transmitter/Rec Transmitter/Rec
eiver OR/AND eiver
Compiled By: Er. Hari Aryal [haryal4@gmail.com] References: Gaonkar, Hall & Hyde | 8
Instrumentation II Chapter 3: Serial Interfacing With Microprocessor Based System
RS-232C
Serial transmission of data is used as an efficient means for transmitting digital information
across long distances, the existing communication lines usually the telephone lines can be used
to transfer information which saves a lot of hardware. RS-232C is an interface developed to
standardize the interface between data terminal equipment (DTE) and data communication
equipment (DCE) employing serial binary data exchange. Modem and other devices used to send
serial data are called data communication equipment (DCE). The computers or terminals that are
sending or receiving the data are called data terminal equipment (DTE).
RS- 232C is the interface standard developed by electronic industries Association (EIA) in
response to the need for the signal and handshake standards between the DTE and DCE. RS-
232C has following standardize features.
- It uses 25 pins (DB – 25P) or 9 Pins (DE – 9P) standard where 9 pins standard does not
use all signals i.e. data, control, timing and ground.
- It describes the voltage levels, impendence levels, rise and fall times, maximum bit rate
and maximum capacitance for all signal lines.
- It specifies that DTE connector should be male and DCE connector should be female.
- It can send 20kBd for a distance of 50 ft.
- The voltage level for RS-232 are:
o A logic high or 1 or mark, -3V to -15V
o A logic low or 0 or space, +3v to +15v
- Normally ±12V voltage levels are used
Compiled By: Er. Hari Aryal [haryal4@gmail.com] References: Gaonkar, Hall & Hyde | 9
Instrumentation II Chapter 3: Serial Interfacing With Microprocessor Based System
Compiled By: Er. Hari Aryal [haryal4@gmail.com] References: Gaonkar, Hall & Hyde | 10
Instrumentation II Chapter 3: Serial Interfacing With Microprocessor Based System
Compiled By: Er. Hari Aryal [haryal4@gmail.com] References: Gaonkar, Hall & Hyde | 11
Instrumentation II Chapter 3: Serial Interfacing With Microprocessor Based System
Simplex, Half Duplex and Full Duplex Operation Using RS-232 port
signal is also enabled all the time on most modems but on some DCEs, DSR may be active only
if preparations for calling destination device are completed. The signal is normally activated by
DCE only if it has detected a carrier signal from the destination device. Also, in this connection,
DTR signal acts as a main switch and RI indicates that an external device wants to establish a
connection with DTE via DCE.
A full duplex connection is very comfortable, as we need not pay attention to the roles of
receiver and transmitter i.e. we may keep RTS signal active all time ignoring CTS and DSR
signals.
A zero modem serves for data exchange between DTEs. Since both the computers are
configured as DTEs, directly connecting them by means of the conventional serial interface cable
is impossible; not even the plug fits into the jack of the second terminal. Also the TxD meets
TxD and RxD meets RxD, DTR meets DTR and DSR meets DSR etc. This means that outputs
are connected to outputs and inputs are connected to inputs. With this convention, no data
transfer is possible.
For the transmission of data, it is required to twist the TxD and RxD lines. In this way, the
transmitted data of one terminal (PC) becomes received data of other and vice versa. As shown
in figure, activation of RTS to begin a data transfer gives rise to an activation of CTS on same
DTE and to an activation of DCD on other DTE. Further, an activation of DTR leads to rise of
DSR and RI on other DTE. Hence for every DTE, it is simulated that a DCE is on the end of line,
although a connection between two DTEs is actually present. Zero modem can be operated with
standard BIOS and DOS functions.
Compiled By: Er. Hari Aryal [haryal4@gmail.com] References: Gaonkar, Hall & Hyde | 13
Instrumentation II Chapter 3: Serial Interfacing With Microprocessor Based System
Connection to Printers
As a printer is not DCE, various control and status lines have to be connected or interchanged to
emulate behavior of a DCE. TxD data of PC becomes received data of printer. DCD and RI
signals on PC are meaningless. On PC, RTS and CTS are connected to each other so that a
transmission request from PC immediately enables the transmission. Since, printer as DTE refers
to print anything as long as no active signal is present at inputs CTS, DSR and DCD. This
problem is solved by connecting RTS with CTS and DTR with DCD and DSR. Thus, activating
RTS gives rise to an activation of CTS and that of DTR to an activation of DCD and DSD.
Overrun error arises in serial interface as PC can transmit data much faster than printer can print
it so internal printer buffer gets full. On parallel interface, this problem is solved as printer
activates BUSY signal informing PC that it cannot accept data temporarily. In serial interface,
pin 19 of printer is used to output a <<Buffer Full Signal>>. On DTE, DSR provide an input for
this signal. If printer buffer is full, printer simply disables handshake signal at pin 19 and DTE
knows that temporarily no additional data can be transferred. If enough room is available in
buffer again, printer enables signal once more; PC may transfer data to printer. Not all printers
with serial interface provide such a buffer full signal at pin 19.
RS-423A
A major problem with RS-232C is that it can only transmit data reliably for about 50 ft at its
maximum rate of 20Kbd. If longer lines are used the transmission rate has to be drastically
reduced due to open signal lines with a common signal ground. Another EIA standard which is
improvement over RS-232C is RS-423A. The standardize features of RS-423 are:
- This standard specifies a low impendence single ended signal which can be sent over 50
coaxial cable and partially terminated at the receiving end to prevent reflection.
- Voltage levels
o Logic High 4V - 6V negative
o Logic Low 4V - 6V positive
Compiled By: Er. Hari Aryal [haryal4@gmail.com] References: Gaonkar, Hall & Hyde | 14
Instrumentation II Chapter 3: Serial Interfacing With Microprocessor Based System
- It allows a maximum data rate of 100 Kbd over 40 ft line or a maximum baud rate of 1
Kbd over 4000 ft line.
RS-422A
It is a newer standard for serial data transfer. It specifies that each signal will be sent
differentially over two adjacent wires in a ribbon cable or a twisted pair of wires uses differential
amplifier to reject noise. The term differential in this standard means that the signal voltage is
developed between two signal lines rather than between signal line and ground as in RS-232C
and RS-423A. Any electrical noise induced in one signal line will be induced equally in the other
signal line. A differential line receiver MC3486 responds only to the voltage difference between
its two inputs so any noise voltage that is induced equally on two inputs will not have any effect
on the output of the differential receiver.
Features of USB
Single connector type: USB replaces all the different legacy connectors with one well-
defined, standardized USB connector for all USB peripheral devices, eliminating the need
for different cables and connectors and thus simplifying the design of the USB devices.
So all USB devices can be connected directly to a standard USB port on a computer.
Compiled By: Er. Hari Aryal [haryal4@gmail.com] References: Gaonkar, Hall & Hyde | 16
Instrumentation II Chapter 3: Serial Interfacing With Microprocessor Based System
Hot-swappable: USB devices can be safely plugged and unplugged as needed while the
computer is running. So there is no need to reboot.
Plug and Play: Operating system software automatically identifies, configures, and loads
the appropriate device driver when a user connects a USB device.
High performance: USB offers low speed (1.5 Mbit/s), full speed (12 Mbit/s) and high
speed (up to 480 Mbit/s) transfer rates that can support a variety of USB peripherals.
USB 3.0 (SuperSpeed USB) achieves the throughput up to 5.0 Gbit/s.
Expandability: Up to 127 different peripheral devices may theoretically be connected to a
single bus at one time.
Power supplied from the bus: USB distributes the power to all connected devices
eliminating the need for external power source for low-power devices. High-power
devices can still require their own local power supply. USB also supports power saving
suspend/resume modes.
Easy to use for end user: A single standard connector type for all USB devices simplifies
the end user's task at figuring out which plugs go into which sockets. The operating
system automatically recognizes the USB device attachment and loads appropriate device
drivers.
Low-cost implementation: Most of the complexity of the USB protocol is handled by the
host, which along with low-cost connection for peripherals makes the design simple and
low cost.
• Wide range of workloads and applications:
– Suitable for device bandwidths ranging from a few kb/s to several Mb/s
– Supports isochronous as well as asynchronous transfer types over the same set of
wires
– Supports concurrent operation of many devices (multiple connections)
– Supports up to 127 physical devices
– Supports transfer of multiple data and message streams between the host and
devices
– Allows compound devices (i.e., peripherals composed of many functions)
– Lower protocol overhead, resulting in high bus utilization
• Isochronous bandwidth
– Guaranteed bandwidth and low latencies appropriate for telephony, audio, etc.
– Isochronous workload may use entire bus bandwidth
• Robustness
– Error handling/fault recovery mechanism is built into the protocol
– Dynamic insertion and removal of devices is identified in user-perceived real-time
– Supports identification of faulty devices
USB Standards
USB 1.0
USB 1.0: Released in January 15, 1996.
Specified data rates of 1.5 Mbit/s (Low-Bandwidth) and 12 Mbit/s (Full-Bandwidth).
Does not allow for extension cables or pass-through monitors (due to timing and power
limitations). Few such devices actually made it to market.
USB 1.1: Released in September 23, 1998.
Introduced the improved specification and was the first widely used version of USB.
Compiled By: Er. Hari Aryal [haryal4@gmail.com] References: Gaonkar, Hall & Hyde | 17
Instrumentation II Chapter 3: Serial Interfacing With Microprocessor Based System
Fixed problems identified in 1.0, mostly relating to hubs. Earliest revision to be widely
adopted.
USB 2.0
The USB 2.0 specification was released in April 27, 2000 and was ratified by the USB
Implementers Forum (USB-IF) at the end of 2001.
The major feature of revision 2.0 was the addition of a high-speed transfer rate of 480
Mbit/s. USB 2.0 supports three speeds namely High Speed - 480Mbits/s, Full Speed -
12Mbits/s and Low Speed - 1.5Mbits/s with one host per bus (at a time).
USB 3.0
The USB 3.0 specification was published on 12 November 2008.
Brings significant performance enhancements to the USB standard while offering
backward compatibility with the peripheral devices currently in use. Legacy USB 1.1/2.0
devices continue to work while plugged into new USB 3.0 host and new USB 3.0 devices
work at USB 2.0 speed while plugged into USB 2.0 host.
Delivering data transfer rates up to ten times faster (the raw throughput is up to 5.0
Gbit/s) than Hi-Speed USB (USB 2.0), SuperSpeed USB is the next step in the continued
evolution of USB technology.
Its main goals were to increase the data transfer rate (up to 5 Gbit/s), to decrease power
consumption, to increase power output, and to be backwards-compatible with USB 2.0.
USB 3.0 includes a new, higher speed bus called SuperSpeed in parallel with the USB 2.0
bus. For The first USB 3.0 equipped devices were presented in January 2010
Transfer of 25 GB file in approx 70 seconds
Extensible – Designed to scale > 25Gbps
Optimized power efficiency
o No device polling (asynchronous notifications)
o Lower active and idle power requirements
Backward compatible with USB 2.0
o USB 2.0 device will work with USB 3.0 host
o USB 3.0 device will work with USB 2.0 host
Wireless USB
Released in May 12, 2005 which uses UWB (Ultra Wide Band) as the radio technology.
480 M bits/sec up to 3m
110 m bits/sec up to 10m
Compiled By: Er. Hari Aryal [haryal4@gmail.com] References: Gaonkar, Hall & Hyde | 18
Instrumentation II Chapter 3: Serial Interfacing With Microprocessor Based System
• USB Schedule: The USB provides a shared interconnect. Access to the interconnect is
scheduled in order to support isochronous data transfers and to eliminate arbitration
overhead.
Signals
Compiled By: Er. Hari Aryal [haryal4@gmail.com] References: Gaonkar, Hall & Hyde | 19
Instrumentation II Chapter 3: Serial Interfacing With Microprocessor Based System
Reset
When the host wants to start communicating with a device it will start by applying a 'Reset'
condition which sets the device to its default unconfigured state.
The Reset condition involves the host pulling down both data lines to low levels (SE0) for at
least 10 ms. The device may recognize the reset condition after 2.5 us.
This 'Reset' should not be confused with a micro-controller power-on type reset. It is a USB
protocol reset to ensure that the device USB signaling starts from a known state.
Compiled By: Er. Hari Aryal [haryal4@gmail.com] References: Gaonkar, Hall & Hyde | 20
Instrumentation II Chapter 3: Serial Interfacing With Microprocessor Based System
EOP signal
The End of Packet (EOP) is an SE0 state for 2 bit times, followed by a J state for 1 bit time.
Suspend
One of the features of USB which is an essential part of today's emphasis of 'green' products is
its ability to power down an unused device. It does this by suspending the device, which is
achieved by not sending anything to the device for 3 ms.
Normally a SOF packet (at full speed) or a Keep Alive signal (at low speed) is sent by the host
every 1 ms, and this is what keeps the device awake.
A suspended device may draw no more than 0.5 mA from Vbus.
A suspended device must recognise the resume signal, and also the reset signal.
Resume
When the host wants to wake the device up after a suspend, it does so by reversing the polarity of
the signal on the data lines for at least 20ms. The signal is completed with a low speed end of
packet signal.
It is also possible for a device with its remote wakeup feature set, to initiate a resume itself. It
must have been in the idle state for at least 5ms, and must apply the wakeup K condition for
between 1 and 15 ms. The host takes over the driving of the resume signal within 1 ms.
Throughput
• Throughput is the actual output of any device, USB’s actual throughput is a function of
many variables:
– Target device’s ability to source or sink data
– Bandwidth consumption by other devices in the bus
– Efficiency of host’s USB ports
– Types of data
Compiled By: Er. Hari Aryal [haryal4@gmail.com] References: Gaonkar, Hall & Hyde | 21
Instrumentation II Chapter 3: Serial Interfacing With Microprocessor Based System
Speed
A USB device must indicate its speed by pulling either the D+ or D- line high to 3.3 volts. A full
speed device, pictured below will use a pull up resistor attached to D+ to specify itself as a full
speed device. These pull up resistors at the device end will also be used by the host or hub to
detect the presence of a device connected to its port. Without a pull up resistor, USB assumes
there is nothing connected to the bus.
Compiled By: Er. Hari Aryal [haryal4@gmail.com] References: Gaonkar, Hall & Hyde | 22
Instrumentation II Chapter 3: Serial Interfacing With Microprocessor Based System
USB Protocols
Unlike RS-232 and similar serial interfaces where the format of data being sent is not defined,
USB is made up of several layers of protocols. While this sounds complicated, don’t give up
now. Once you understand what is going on, you really only have to worry about the higher level
layers. In fact most USB controller I.C.s will take care of the lower layer, thus making it almost
invisible to the end designer.
Each USB transaction consists of a
Token Packet (Header defining what it expects to follow), an
Optional Data Packet, (Containing the payload) and a
Status Packet (Used to acknowledge transactions and to provide a means of error
correction)
As we have already discussed, USB is a host centric bus. The host initiates all transactions. The
first packet, also called a token is generated by the host to describe what is to follow and whether
the data transaction will be a read or write and what the device’s address and designated endpoint
is. The next packet is generally a data packet carrying the payload and is followed by an
handshaking packet, reporting if the data or token was received successfully, or if the endpoint is
stalled or not available to accept data.
• ADDR: The address field specifies which device the packet is designated for. Being 7
bits in length allows for 127 devices to be supported. Address 0 is not valid, as any
device which is not yet assigned an address must respond to packets sent to address zero.
• ENDP: The endpoint field is made up of 4 bits, allowing 16 possible endpoints. Low
speed devices, however can only have 2 additional endpoints on top of the default pipe.
(4 endpoints max)
• CRC: Cyclic Redundancy Checks are performed on the data within the packet payload.
All token packets have a 5 bit CRC while data packets have a 16 bit CRC.
• EOP: End of packet. Signalled by a Single Ended Zero (SE0) for approximately 2 bit
times followed by a J for 1 bit time.
Compiled By: Er. Hari Aryal [haryal4@gmail.com] References: Gaonkar, Hall & Hyde | 23
Instrumentation II Chapter 3: Serial Interfacing With Microprocessor Based System
• Data Packets: There are two types of data packets each capable of transmitting up to
1024 bytes of data.
o Data0
o Data1
High Speed mode defines another two data PIDs, DATA2 and MDATA.
Data packets have the following format,
Sync PID Data CRC16 EOP
o Maximum data payload size for low-speed devices is 8 bytes.
o Maximum data payload size for full-speed devices is 1023 bytes.
o Maximum data payload size for high-speed devices is 1024 bytes.
o Data must be sent in multiples of bytes.
• Status / Handshake Packets: There are three type of handshake packets which consist
simply of the PID
o ACK - Acknowledgment that the packet has been successfully received.
o NAK - Reports that the device temporary cannot send or received data. Also used
during interrupt transactions to inform the host there is no data to send.
o STALL - The device finds its in a state that it requires intervention from the host.
Handshake Packets have the following format,
Sync PID EOP
Transfer Model
Endpoints
Endpoints can be described as sources or sinks of data. As the bus is host centric, endpoints
occur at the end of the communications channel at the USB function. At the software layer, your
device driver may send a packet to your devices EP1 for example. As the data is flowing out
from the host, it will end up in the EP1 OUT buffer. Your firmware will then at its leisure read
this data. If it wants to return data, the function cannot simply write to the bus as the bus is
controlled by the host. Therefore it writes data to EP1 IN which sits in the buffer until such time
when the host sends a IN packet to that endpoint requesting the data. Endpoints can also be seen
Compiled By: Er. Hari Aryal [haryal4@gmail.com] References: Gaonkar, Hall & Hyde | 24
Instrumentation II Chapter 3: Serial Interfacing With Microprocessor Based System
as the interface between the hardware of the function device and the firmware running on the
function device.
All devices must support endpoint zero. This is the endpoint which receives all of the devices
control and status requests during enumeration and throughout the duration while the device is
operational on the bus.
Pipes
While the device sends and receives data on a series of endpoints, the client software transfers
data through pipes. A pipe is a logical connection between the host and endpoint(s). Pipes will
also have a set of parameters associated with them such as how much bandwidth is allocated to
it, what transfer type (Control, Bulk, Iso or Interrupt) it uses, a direction of data flow and
maximum packet/buffer sizes. For example the default pipe is a bi-directional pipe made up of
endpoint zero in and endpoint zero out with a control transfer type.
USB defines two types of pipes
Stream Pipes have no defined USB format, that is you can send any type of data down a
stream pipe and can retrieve the data out the other end. Data flows sequentially and has a
pre-defined direction, either in or out. Stream pipes will support bulk, isochronous and
interrupt transfer types. Stream pipes can either be controlled by the host or device.
Message Pipes have a defined USB format. They are host controlled, which are initiated
by a request sent from the host. Data is then transferred in the desired direction, dictated
by the request. Therefore message pipes allow data to flow in both directions but will
only support control transfers.
Compiled By: Er. Hari Aryal [haryal4@gmail.com] References: Gaonkar, Hall & Hyde | 25
Instrumentation II Chapter 3: Serial Interfacing With Microprocessor Based System
integrated within the PC, which allows a number of attachment points (often loosely
referred to as ports). A further hub may be plugged into each of these attachment points,
and so on. However there are limitations on this expansion.
A device can be plugged into a hub, and that hub can be plugged into another hub and so
on. However the maximum number of tiers permitted is six.
All devices have an upstream connection to the host and all hosts have a downstream
connection to the device.
The length of any cable is limited to 5 metres. This limitation is expressed in the
specification in terms of cable delays etc, but 5 metres can be taken as the practical
consequence of the specification. This means that a device cannot be further than 30
metres from the PC, and even to achieve that will involve 5 external hubs, of which at
least 2 will need to be self-powered.
So the USB is intended as a bus for devices near to the PC. For applications requiring
distance from the PC, another form of connection is needed, such as Ethernet.
Un-powered Hub
• Un-powered hubs can be used with any number of high-power devices such as printers
and scanners that have their own power supply, thus not requiring power from the bus.
• Safe to use with low-power devices (mice, cameras, joysticks, etc.) as long as too many
aren’t connected as once.
Compiled By: Er. Hari Aryal [haryal4@gmail.com] References: Gaonkar, Hall & Hyde | 26
Instrumentation II Chapter 3: Serial Interfacing With Microprocessor Based System
• Endpoint is where data enters or leaves the USB system. An IN endpoint is data creator
and OUT endpoint is data consumer. For reliable data delivery scheme, need multiple IN
and OUT endpoints.
• The collection of endpoints is called an interface and is directly related to the real world
connection.
• An operating system will have a driver that corresponds to each interface.
• Some devices may have multiple interfaces such as a telephone has a keypad interface
and audio interface. Operating system will manage two separate device drivers.
• A collection of interface is called a configuration, and only one configuration can be
active at a time.
• A configuration defines the attribute and features of a specific model.
Compiled By: Er. Hari Aryal [haryal4@gmail.com] References: Gaonkar, Hall & Hyde | 28