Interfacing of Devices to Microcontroller

Interfacing of Devices to Microcontroller
Prof Prabhat Ranjan
Dhirubhai Ambani Institute of Information and
Communication Technology, Gandhinagar
Acknowledgment
●
●
Based on a document “Microcontroller Interfacing
Techniques” available from www.bipom.com
Wikipedia
Overview
●
●
Micro-controllers are useful to the extent that they communicate with other devices, such as sensors, motors, switches, keypads, displays, memory and even other micro-controllers
Many interface methods have been developed over the years to solve the complex problem of balancing circuit design criteria such as features, cost, size, weight, power consumption, reliability, availability, manufacturability
Overview
●
Many microcontroller designs typically mix multiple interfacing methods. In a very simplistic form, a micro-controller system can be viewed as a system that reads from (monitors) inputs, performs processing and writes to ( controls ) outputs
---USB
Digital I/O - On/OFF control and monitoring
●
●
●
●
Advantages
Simplest interface
Lowest-cost to implement (built into the microcontroller)
High speed
Low programming overhead
●
●
●
Disadvantages
Only on/off control/monitoring
Short distance, few feet maximum
Single device control/ monitoring
Digital Input Example: Reading the status of buttons or switches
Digital Input : Keypad
Digital Output : LED display
Digital Output : Relay Control
Analog I/O : Voltage-based control and monitoring
●
●
●
●
Simple interface
Low cost for lowresolutions
High speed
Low programming overhead
●
●
●
●
High cost for higher resolutions
Not all uC have analog
I/O built-in
Complicates the circuit design when external
ADC or DAC are needed
Short distance, few feet maximum
Analog I/O types
●
●
●
●
●
●
Voltage Ranges
0 to 2.5 V
0 to 4 V
0 to 5 V
+/- 2.5 V
+/- 4 V
+/- 5 V
●
●
Current Ranges
0-20 mA
4-20 mA
Analog Interface
Parallel Bus
Consists of multiple digital inputs/outputs. Most common types:
• 4-bit
• 8-bit ( e.g. Centronics )
• 16-bit ( e.g. ISA )
• 32-bit ( e.g. PCI )
●
●
●
High speed
High throughput:
Several bits are transmitted on one clock transition
Low cost
●
Large number of microcontroller pins needed for implementing the parallel bus
Parallel Example : 4 bit LCD interface
8 Bit LCD Interface
Serial Buses : I
Circuit bus)
2
C (Inter Integrated
●
●
●
●
2-wire interface with one master and multiple slaves ( multi-master configurations possible)
Originated by Philips Semiconductor in the early
80’s to connect a microcontroller to peripheral devices in TV sets
Signals: DATA (SDA), CLOCK (SCL) and
Ground. SDA is always bi-directional; SCL is bidirectional only in multi-master mode
Maximum allowable capacitance on the lines is
400 pF. Typical device capacitance is 10 pF
Serial Buses : I
Circuit bus)
2
C (Inter Integrated
●
●
●
●
To start the communications, the bus master
(typically a microcontroller) places the address of the device with which it intends to communicate
(the slave) on the bus
All slave devices monitor the bus to determine if the master device is sending their address
Only the device with the correct address communicates with the master
By definition, I
2
C is 5V
●
●
●
●
●
Multiple slave devices
- with only 3 wires
Low-cost to implement
Implemented in hardware or software
Ease to implement, many examples
Supports multi-master configuration
●
●
●
●
Short distance
Slow speed: 100 KHz although 400 KHz and
1 MHz slave device exist
These can not coexist with slower devices
Limited device addresses
Start & Stop
●
●
●
An I
2
C master prepares to communicate with a slave device first by generating a Start condition on the bus
Start condition is defined as SDA signal going low while SCL signal is high
Stop condition is defined as SDA going high while
SCL is high
Data Validity
●
●
Data can change while the clock is low
Data should remain stable while the clock is going high
Acknowledge(ACK)
●
Data transfer is initiated with the START bit (S) when SDA is pulled low while SCL stays high. Then, SDA sets the transferred bit while SCL is low (blue) and the data is sampled
(received) when SCL rises (green). When the transfer is complete, a STOP bit (P) is sent by releasing the data line to allow it to be pulled up while SCL is constantly high.
●
Writing a byte to a serial EEPROM (24C04 ) on the I2C bus:
● where Device Address is defined as : P0, P1, P2 indicate the page number ( 2Kbit pages ). A0, A1,
A2 indicate the device number on the bus
●
Reading a byte from a serial EEPROM (24C04 ) on the I2C bus ( starting from the current address )
SPI ( Serial Peripheral Interface )
●
●
●
4-wire interface with one master and multiple slaves. Signals: DATA IN, DATA OUT, CLOCK,
CS( Chip Select )
Originated by Motorola, SPI bus is a relatively simple synchronous serial interface for connecting low speed external devices using minimal number of wires.
A synchronous clock shifts serial data into and out of the microcontrollers in blocks of 8 bits.
SPI ( Serial Peripheral Interface )
●
●
●
SPI bus is a master/slave interface. Whenever two devices communicate, one is referred to as the
"master" and the other as the "slave" device
The master drives the serial clock
SPI is full duplex: Data is simultaneously transmitted and received
●
●
●
●
●
Multiple slave devices
- with only few wires
Low-cost
HW/SW Implement
Ease to implement, many examples
Can be high speed
( e.g. 4MHz or higher if implemented in hardware )
●
●
Short distance
Data and clock lines can be shared but each device requires a separate Chip Select signal, limiting the number of devices in limited I/O systems
●
●
●
●
SPI bus specifies four logic signals
SCLK — Serial Clock
(output from master)
MOSI — Master Output,
Slave Input (output from master)
MISO — Master Input,
Slave Output (output from slave)
SS — Slave Select (active low; output from master
●
●
●
●
Sometimes, the following naming convention is used:
SCLK — Serial Clock
(output from master)
SDI — Serial Data In
SDO — Serial Data Out
CS — Chip Select (active low; output from master)
SPI Bus with multiple slaves
Multimedia Card ( MMC ) Interface using SPI
1-wire
●
●
●
Originated by Dallas Semiconductor ( now part of
MAXIM ) to address a variety of peripherals, sensors, and memory chips from a single wire interface ( DATA and Ground ).
One signal wire carries both operating power and signal. Usually the network is built using a wire pair where one wire carries the signal and power and the other wire is ground.
The system is sensitive to the right timing to operate well
●
●
●
●
●
Multiple slave devices- with only 2 wires
Low-cost
Implemented in HW/SW
Ease to implement, many examples
Relatively long distance.
Theoretically 300 meters but this is limited in practice due to noise and cable capacitance
●
●
Slow speed
1-wire slave devices typically has to come from one source:
Dallas Semiconductor
RS232
Asynchronous communications
●
●
●
●
●
●
Popular interface with many examples
Many compatible legacy devices
Relatively long distance, 50 feet maximum for low baud rates although longer distances work in practice, with low baud rates and error correction
Immune to noise due to +/-5 Volts or higher voltage levels for logic “0” and “1”
Implemented in hardware or software
Ease to implement, many examples
●
●
●
●
More suitable for system to system communications, not so much for chip to chip or chip to sensor
Low speed for long distance, 115200 baud can be achieved with small microcontrollers using short distances
Requires transceiver chips which add to system cost ( TTL/CMOS level RS232 can be used without transceiver chips ).
Single master/single slave
RS485
Asynchronous communications
●
●
●
●
●
●
●
Popular interface
Very long distance, thousands of feet
Immune to noise due to differential voltage
Implemented in hardware or software
Ease to implement
Widely used in industrial automation
Higher speeds beyond
115200 baud
●
●
●
More suitable for system to system communications, not so much for chip to chip or chip to sensor
Requires transceiver chips and twisted pair cable with terminating resistors which add to system cost
●
RS485 Network Topology: Any station can communicate with any other station, but not at the same time
UART : Universal asynchronous receiver/transmitter
●
●
A universal asynchronous receiver/transmitter
(UART) is a type of "asynchronous receiver/transmitter", a piece of computer hardware that translates data between parallel and serial interfaces
Used for serial data telecommunication, a UART converts bytes of data to and from asynchronous start-stop bit streams represented as binary electrical impulses
UART : Universal asynchronous receiver/transmitter
●
●
●
UARTs are commonly used in conjunction with other communication standards such as EIA
RS-232.
A UART is usually an individual (or part of an) integrated circuit used for serial communications over a computer or peripheral device serial port.
UARTs are now commonly included in microcontrollers. A dual UART or DUART combines two UARTs into a single chip.
●
●
●
As of now, UARTs are commonly used with
RS-232 for embedded systems communications.
It is useful to communicate between microcontrollers and also with PCs.
Many chips provide UART functionality in silicon, and low-cost chips exist to convert logic level signals (such as TTL voltages) to RS-232 level signals (for example, Maxim MAX232)
Ethernet
●
●
●
●
Very high speed (10
Mbit to 100 Mbit/s )
Very long distance, hundreds of feet can be achieved, more with hubs and switches
Immune to noise
Widely used in industrial automation due to noise immunity
●
●
●
●
●
Cost
More suitable for system to system communications, not so much for chip to chip/sensor
Requires Ethernet chipset, transformer, jack and special cabling that add to system cost.
Complicated to implement
High code footprint
Programming
●
●
Hardware interface
Software emulation : Bit banging
Bit banging
●
●
Bit-banging is a technique in embedded systems for example to use serial communications without the use of dedicated hardware such as a UART or shift register, instead using software to emulate their behavior
A software routine handles the UART transmit function by alternating a pin on the microcontroller by given time intervals
Bit banging
●
●
●
A receiver function is implemented by sampling a pin on the microcontroller by a given time interval
With a few extra components, video signals can be output from digital pins
Although it is not referred to as bit-banging, software-defined radio is an extreme extension of the same idea
Bit banging
●
●
●
Although it is often considered to be something of a hack, bit-banging does allow greater flexibility, allowing the same device to speak different protocols with minimal or no hardware changes required
There are some problems with bit-banging
More power is normally consumed in the software emulation process than in dedicated hardware
Bit banging
●
●
●
Another problem is that the microcontroller is busy most of the time looking at samples or sending a sample to the pin, instead of performing other tasks
Yet another potential problem is that the signal produced normally has more jitter or glitches, especially when the microcontroller moves on to perform other tasks.
However, if the bit-banging software is hardware interrupt-driven by the signal, this may be of minor importance
More Buses
●
●
●
●
●
●
USB
RS232 <-> UART
RS-422
CAN
Diff between TWI and I
2
C
FIREWIRE
CONTROLLER AREA NETWORK
(CAN)
●
●
Controller Area Network (CAN) is a broadcast, differential serial bus standard, originally developed in the 1980s by Robert Bosch GmbH, for connecting electronic control units (ECUs)
CAN was specifically designed to be robust in electromagnetically noisy environments and can utilize a differential balanced line like RS-485
CAN ...
●
●
●
It can be even more robust against noise if twisted pair wire is used.
Although initially created for automotive purposes
(as a vehicle bus), nowadays it is used in many embedded control applications (e.g., industrial) that may be subject to noise
The messages it sends are small (8 data bytes max) but are protected by a CRC-15 (polynomial
0x62CC) that guarantees a Hamming bit length of
6 (so up to 5 bits in a row corrupted will be detected by any node on the bus).
CAN ...
●
Bit rates up to 1 Mbit/s are possible at networks length below 40 m. Decreasing the bit rate allows longer network distances (e.g. 125 kbit/s at 500 m)
USB
●
●
●
Universal Serial Bus (USB) is a serial bus standard to interface devices
It was originally designed for computers, but its popularity has prompted it to also become commonplace on video game consoles, PDAs, portable DVD and media players, cellphones; and even devices such as televisions, home stereo equipment, car stereos and portable memory devices
The radio spectrum based USB implementation is known as Wireless USB
USB : Overview
●
●
●
USB was devised as a major component in the transition towards a legacy-free PC
The intention was to let go of all older serial and parallel ports on personal computers since these were not properly standardized and required a multitude of device drivers to be developed and maintained
A USB system has an asymmetric design, consisting of a host controller and multiple daisychained devices
USB : Overview
●
●
●
●
Additional USB hubs may be included in the chain, allowing branching into a tree structure
No more than 127 devices, including the bus devices, may be connected to a single host controller
Modern computers often have several host controllers, allowing a very large number of USB devices to be connected
USB cables do not need to be terminated
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
Related manuals
advertisement