Top Banner
Microcontroller & Applications By Mr. Asim Sayed
71

Microcontrollers and Applications

Nov 22, 2015

Download

Documents

asim

This is a small tutorial on microcontroller related technologies.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • Microcontroller & Applications

    By Mr. Asim Sayed

  • microprocessor and microcontroller

  • Microprocessors vs Microcontrollers

    The contrast between a microcontroller and a microprocessor is best exemplified by the fact that most microprocessors have many operational codes (opcodes) for moving data from external memory to the CPU; microcontrollers may have one, or two.

    Microprocessors may have one or two types of bit-handling instructions; microcontrollers will have many.

    The microprocessor is concerned with rapid movement of code and data from external addresses to the chip; the microcontroller is concerned with rapid movement of bits within the chip.

    The microcontroller can function as a computer with the addition of no external digital parts; the microprocessor must have many additional parts to be operational.

  • Eight-Bit Microcontrollers

    Eight bits has proven to be a very useful word size for small computing tasks.

    Capable of 256 decimal values or quarter-percent resolution. the 1-byte word is adequate for many control and monitoring applications. Serial ASCII data is also stored in byte sizes, making 8 bits the natural choice for data communications.

    Most integrated circuit memories and many logic functions are arranged in an 8-bit configuration that interfaces easily to data buses of 8 bits.

  • Harvard architecture The Harvard architecture is a computer architecture with physically

    separate storage and signal pathways for instructions and data.

    The term originated from the Harvard Mark I relay-based computer, which stored instructions on punched tape (24 bits wide) and data in electro-mechanical counters.

    These early machines had limited data storage, entirely contained within the central processing unit, and provided no access to the instruction storage as data.

    Programs needed to be loaded by an operator, the processor could not boot itself.

  • Modified Harvard architecture

    Today, most processors implement such separate signal pathways for performance reasons but actually implement a Modified Harvard architecture, so they can support tasks like loading a program from disk storage as data and then executing it.

  • Von Neumann architecture

    This is also known as Princeton architecture.

    The data and code memories are combined into one architecture.

    In this architecture instruction fetching and data operations ant occur at the same time.

    The design is simpler than Harvard architecture.

  • Microcontrollers for embedded systems

    Microprocessors and microcontrollers are widely used in embedded system products.

    An embedded product uses a microprocessor (or microcontroller) to do one task and one task only.

    Ex. of embedded applications-

    Use of microcontroller based systems and PCs.

    One of the most critical needs of an embedded system is to decrease power consumption and space.

  • This can be achieved by integrating more functions into the CPU chip.

    All the embedded processors based on the x86 and 680x0 have low

    Power consumption in addition to some forms of 110, COM p011, and ROM all on a single chip.

    In high-performance embedded processors, the trend is to integrate more and more functions on the CPU chip and let the designer decide which features he/she wants to use.

  • Criteria for choosing a microcontroller

    Three criteria in choosing microcontrollers are as follows:

    (I) meeting the computing needs or the task at hand efficiently and cost effectively,

    (2) availability of software development tools such as compilers, assemblers, and debuggers

    (3) wide availability and reliable sources of the microcontroller.

  • Bitwise Data Transmission

    Data transmission requires:

    Encoding bits as energy

    Transmitting energy through medium

    Decoding energy back into bits

    Energy can be electric current, radio, infrared, light, smell, etc.

    Transmitter and receiver must agree on encoding scheme and transmission timing

  • Asynchronous Transmission

    One definition of asynchronous: transmitter and receiver do not explicitly coordinate each data transmission

    Transmitter can wait arbitrarily long between transmissions

    Used, for example, when transmitter such as a keyboard may not always have data ready to send

    Asynchronous may also mean no explicit information about where data bits begin and end

    E.g. when we send individual ASCII characters

  • Using Electric Current to Send Bits

    Simple idea - use varying voltages to represent 1s and 0s

    One common encoding use negative voltage for 1 and

    positive voltage for 0

    In following figure, transmitter puts positive voltage on line

    for 0 and negative voltage on line for 1

  • Transmission Timing Problems

    Encoding scheme leaves several questions unanswered:

    How long will voltage last for each bit?

    How soon will next bit start?

    How will the transmitter and receiver agree on timing? Later : Self-clocking codes (e.g. Manchester Encoding)

    Standards specify operation of communication systems

    Devices from different vendors that adhere to the standard can interoperate

    Example organizations: International Telecommunications Union (ITU)

    Electronic Industries Association (EIA)

    Institute for Electrical and Electronics Engineers (IEEE)

  • RS-232

    Standard for transfer of characters across copper wire

    Produced by EIA

    Full name is RS-232-C

    RS-232 defines serial, asynchronous communication Serial - bits are encoded and transmitted one at a time (as opposed to parallel

    transmission)

    Asynchronous - characters can be sent at any time and bits are not individually synchronized

  • Details of RS-232

    Components of standard:

    Connection must be less than 50 feet

    Data represented by voltages between +15v and -15v

    25-pin connector, with specific signals such as data, ground and control

    assigned to designated pins

    Specifies transmission of characters between, e.g., a terminal and a modem

    Transmitter never leaves wire at 0v; when idle, transmitter puts negative

    voltage (a 1) on the wire

  • Identifying asynchronous

    characters Transmitter indicates start of next character by

    transmitting a one

    Receiver can detect transition as start of character

    Extra one called the start bit

    Transmitter must leave wire idle so receiver can detect transition marking beginning of next character

    Transmitter sends a zero after each character

    Extra zero call the stop bit

    Thus, character represented by 7 data bits requires transmission of 9 bits across the wire

  • Start, Stop Bits

    Typically one of the data bits might be a parity bit

    (7N1, 8E1)

  • Timing

    Transmitter and receiver must agree on timing of each bit

    Agreement accomplished by choosing transmission rate

    Measured in bits per second

    Detection of start bit indicates to receiver when subsequent bits will arrive

    Hardware can usually be configured to select matching bit rates

    Switch settings

    Software

    Autodetection

  • Transmission Rates

    Baud rate measures number of signal changes per second

    Bits per second measures number of bits transmitted per second

    In RS-232, each signal change represents one bit, so baud rate and bits per second are equal

    If each signal change represents more than one bit, bits per second may be greater than baud rate

    This is the case with modems nowadays!

    More on this when we look at modulation

  • Framing

    Start and stop bits represent framing of each character

    If transmitter and reciver are using different speeds, stop bit will not be received at the expected time

    Problem is called a framing error

    RS-232 devices may send an intentional framing error called a BREAK

  • Duplex Two endpoints may send data simultaneously -

    full-duplex communication

    Requires an electrical path in each direction

    If only one endpoint may send data half-duplexcommunications or simplex

    Pin 2 - Receive (RxD)

    Pin 3 - Transmit (TxD)

    Pin 4 - Ready to send (RTS)

    Pin 5 - Clear to send (CTS)

    Pin 7 - Ground

  • Limitations on Transmission

    Limitations on wires makes waveforms look like:

    Longer wire, external interference may make signal look even worse

    RS-232 standard specifies how precise a waveform the transmitter must generate, and how tolerant the receiver must be of imprecise waveform

  • Channel Capacity

    Data rate In bits per second

    Rate at which data can be communicated

    Bandwidth In cycles per second, or Hertz

    Amount of bandwidth constrained by transmitter and medium (and the feds!)

    For digital data: Want as high a data rate as possible given some slice of bandwidth! Limited by the error rate

  • Nyquist Bandwidth(1)

    If the rate of signal transmission is 2B then a signal with frequencies no greater than B is sufficient to carry the signal rate

    Converse: Given a bandwidth of B, the highest signal rate that can be carried is 2B

    Ex: Given 3000Hz (typical on phone lines), the capacity C of the channel is : C=2B = 6000bps

  • Nyquist Bandwidth(2)

    Wait! But given about 3000Hz our modems go much faster than 6000bps. How?

    The previous capacity assumes a binary signal element. If a signal element can represent more than one bit, the formulation becomes:

    C=2B(log2M) ; M = # of signal elements

    If M=32, we get C=30,000bps

  • Shannons Capacity

    Shannons capacity includes the concept of error rates. At a given noise level, the higher the data rate, the higher the error rate. This is a theoretical maximum!

    Signal to Noise Ratio: SNR = SignalPower/NoisePower

    Ratio measured at the receiver

    SNRdb = 10log10(SNR)

    SNR of 100 = 20 dB

    SNR of 1000 = 30 dB

    Capacity: C = B*log2(1+SNR)

  • Shannon Capacity Examples

    If voice telephone has a SNR of 30 dB and bandwidth of 3000 Hz: C = 3000 log2(1 + 1000) = 30,000 bps

    If our LAN technology has a SNR=251, B = 1Mhz C=106*log2(252) = 8Mbps

    Using Nyquists formula, the number of symbols we would need to transmit this data per signaling element:

    8*106 = 2*106*log2M M = 24 = 16

  • RS-232 Signals

    Architecturally RS-232 is a

    bi-directional point to point

    link.(serial port - PC side)

    Two independent channels are

    established for two-way (full-

    duplex) communications.

    RS-232 can also carry

    additional signals used for flow

    control (RTS, CTS) and modem

    control (DCD, DTR, DSR, RI).

  • RS-232 Signals

    Common 25 pin D-shell connector pinout used for

    asynchronous data communications.

    Pin Signal1 PGND Protective Ground2 TXD Transmit Data3 RXD Receive Data4 RTS Ready To Send5 CTS Clear To Send6 DSR Data Set Ready7 SG Signal Ground8 CD Carrier Detect20 DTR Data Terminal Ready22 RI Ring Indicator

    (serial port - PC side)

  • RS-232 Line Driver Unbalanced Line Drivers

    Each signal appears on the interface connector as a voltage with reference to a signal ground.

    The idle state (MARK) has the signal level negative with respect to common whereas the active state (SPACE) has the signal level positive respest to the same reference.

  • RS-232 Speed How fast can RS-232 be?

    The maximum speed, according to the standard, is 20kbit/s.

    However, modern equipment can operate much faster than this.

    (i.e. Lynx can reach 115200 baud.)

    The length of the cable also plays a part in

    maximum speed.

    The longer the cable and the slower the speed at which you can

    obtain accurate results.

    A large wire capacitance and inductance limits the maximum

    length of the cable and/or the maximum speed; Moreover higher

    is the capacitance of the cable higer is the interference between

    two adjacent signal wire.

    50 feet (15m) @ max baudrate is commonly quoted as the

    maximum distance.

    It is not specified in EIA standard but its recommended respect

    these values.

  • RS-232 sw settings

    One byte of async data has:

    Start Bit = 1 (always)

    Data Bits = 8 (or 7)

    Stop bits = 1 (or 2)

    Parity = NONE (or EVEN or ODD)

    + 25

    - 25

  • What is RS-485

    What is RS-485?

    RS-485 is a EIA standard interface which is very common in the data acquisition world

    RS-485 provides balanced transmission line which also can be shared in Multidrop mode.

    It allows high data rates communications over long distances in real world environments.

    How fast can RS-485 be?

    RS-485 was designed for greater distance and higher baudrates

    than RS-232.

    According to the standard, 100kbit/s is the maximum speed and

    distance up to 4000 feet (1200 meters) can be achieved.

  • RS-485 Line Driver Balanced Line Drivers

    Voltage produced by the driver appears across a pair of signal wires that transmit only one signal. Both wires are driven opposite.

    RS-485 driver has always the Enable direction control signal.

    Differential system provides noise immunity, because much of the common mode signal can be rejected by the receiver. So ground shifts and induced noise signals can be nullified.

  • RS-485 Network

    RS-485 provides Half-Duplex, Multidrop communications over a

    single twisted pair cable.

    MASTER SLAVE-1

    SLAVE-2 SLAVE-3

    The standard specifies

    up to 32 drivers and

    32 receivers can share

    a multidrop network

    Terminator resistors

    avoid reflected signal

  • RS-485 Half-duplex

    Datalogic uses Half-Duplex configurations for Data Collecting

    and Master/Slave layouts.

    Usually we talk about Multidrop

    network (i.e. MX4000,DPS9000)Slave 1

    TX

    ENABLE

    RX

    Slave 2

    TX

    ENABLE

    RX

    Slave N

    TX

    ENABLE

    RX

    RTX485+

    RTX485-

    485GND

    Master

    TX

    ENABLE

    RX

  • RS-485 Full-duplex Potentially RS-485 interface can also use 4-wires to comunicate in

    multidrop mode but...

    Scanner

    TX

    ENABLE

    RX

    TX485+

    TX485-

    RX485+

    RX485-

    485GND

    TX

    ENABLE

    RX

    Other device

  • RS-232 vs RS-485

    The architectural difference between RS-232 and RS-485 is

    that 232 is a bi-directional point to point link, whereas 485 is

    a single channel bus.

    Electrically, each 232 signal uses a single wire with symmetric

    voltages about a common ground wire. 485 uses two wires to

    carry the single signal differentially.

    The big difference to the software is that only one device on a

    485 bus can transmit at a time, whilst there is not similar

    limitation on RS232 because is a peer-to-peer link .

  • RS-232 vs RS-485RS-232 RS-485

    Mode of Operation SINGLE-ENDED DIFFERENTIAL

    Total Number of Drivers 1 DRIVER 32 DRIVERand Receivers on One Line 1 RECEIVER 32 RECEIVER

    Maximum Cable Length 50 FEET 4000 FEET

    Maximum Data Rate @Max length 20kb/s 100kb/s

    Driver Output Signal Level(Loaded Min.) Loaded +/-5V to +/-15V +/-1.5V

    Driver Output Signal Level(Unloaded Max) Unloaded +/-25V +/-6V

    Driver Load Impedance 3k to 7k 54

    Max. Driver Current inHigh Z State Power On N/A N/A

    Max. Driver Current inHigh Z State Power Off +/-6mA @ +/-2v +/-100uA

    Slew Rate (Max.) 30V/S N/A

    Receiver Input Voltage Range +/-15V -7V to +12V

    Receiver Input Sensitivity +/-3V +/-200mV

    Receiver Input Resistance 3k to 7k 12k

  • Data Format and Protocols

    Information content passing through peer-to-peer connection is packed in a

    very simple structure:

    and are both configurable via software

    (device configuration parameters)

    Most common generic Handshake are available/selectable with RS232

    interface:

    Hardware (RTS-CTS)

    Software XON/XOFF

  • Single ended signalling

    Single-ended signaling is the simplest and most commonly used method of

    transmitting electrical signals over wires. One wire carries a varying voltage

    that represents the signal, while the other wire is connected to a reference

    voltage, usually ground.

    Single ended signaling is less expensive to implement than differential, but it

    lacks the ability to reject noise caused by:

    differences in ground voltage level between transmitting and receiving circuits

    induction picked up on the signal wire

  • Ex of single ended signalling

    Single-ended signaling is widely used, and can be seen in numerous common

    transmission standards, including:

    RS-232 serial communications

    PS/2 mouse and keyboard connectors

    IC serial bus

    TTL circuits

    CMOS logic circuits

    ECL circuits

    Most parallel computer buses, such as:

    VMEbus

    PCI

  • continued

    Some more examples:

    VGA video connectors

    SCSI interfaces for hard drives and other peripherals

    Parallel ATA interfaces for hard drives and other peripherals

    Some kinds of connectors, though more often used for balanced pairs, are

    sometimes used for single-ended operation:

    RCA jacks for audio signals

    TRS phone connectors for audio signals

  • The main advantage of single-ended over differential signaling is that fewer

    wires are needed to transmit multiple signals.

    If there are n signals, then there are n+1 wires - one for each signal and one

    for ground. (Differential signaling uses at least 2n wires.)

    A disadvantage of single-ended signaling is that the return currents for all the

    signals share the same conductor (even if separate ground wires are used, the

    grounds are inevitably connected together at each end), and this can

    sometimes cause interference ("crosstalk") between the signals.

  • Differential Signalling

    Differential signaling is a method of transmitting information electrically with

    two complementary signals sent on two paired wires, called a differential pair.

    Since external interference tends to affect both wires together, and

    information is sent only by the difference between the wires, the technique

    improves resistance to electromagnetic noise compared with use of only one

    wire and an un-paired reference (ground).

    The technique can be used for both analog signaling, as in balanced audio, and

    digital signaling, as in RS-422, RS-485, Ethernet over twisted pair, PCI

    Express, Display Port, HDMI, and USB. The opposite technique is called single-

    ended signaling. Differential pairs are usually found on a printed circuit board,

    in cables (twisted-pair cables, ribbon cables), and in connectors.

  • SPI

    The Serial Peripheral Interface or SPI bus is a synchronous serial

    data link, a de facto standard, named by Motorola, that operates in

    full duplex mode.

    Devices communicate in master/slave mode where the master device

    initiates the data frame. Multiple slave devices are allowed with

    individual slave select lines. Sometimes SPI is called a four-wire

    serial bus, contrasting with three-, two-, and one-wire serial buses.

    SPI is often referred to as SSI (Synchronous Serial Interface).

    V 0.3 50

  • The MOSI/MISO convention requires that, on devices using the alternate names, SDI on the master be connected to SDO on the slave, and vice versa.

    Chip select polarity is rarely active high, although some notations (such as SS or CS instead of nSS or nCS) suggest otherwise.

    Slave select is used instead of an addressing concept.

    The 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).

    Alternative naming conventions are also widely used, and SPI port pin names for particular IC products may differ from those depicted in these illustrations:SCLK : SCK, CLK.MOSI : SIMO, SDO, DO, DOUT, SI, MTSR.MISO : SOMI, SDI, DI, DIN, SO, MRST.SS : nCS, CS, CSB, CSN, nSS, STE, SYNC.

    V 0.3 51

  • V 0.3 52

    Serial Peripheral Interface (SPI)

    SDI: data

    in

    SDO:

    data out

    SCK:

    clock

  • V 0.3 53

    CKE configuration bit allows either falling or rising edge

    of clock to be used, while CKP selects clock polarity.

  • V 0.3 54

    SPM bit selects whether data is sampled in middle of clock

    period or at end of clock period.

    Between the CKP, CKE, SPM bits there is a lot of flexibility in

    how data is clocked in. Can make the SPI protocol work with

    just about any serial device.

  • V 0.3 55

    Multiple SPI peripherals each require a separate chip select line

    via parallel port line. We will concentrate on the I2C serial bus

    as it does not require use of chip selects.

  • I2C

    IC (Inter-Integrated Circuit, alternately spelled I2C or IIC, most commonly pronounced I-squared-C) is a multimaster serial single-ended computer bus invented by the Philips semiconductor division, today NXP Semiconductors, and used for attaching low-speed peripherals to a motherboard, embedded system, cellphone, or other digital electronic devices.

    IC uses only two bidirectional open-drain lines, Serial Data Line (SDA) and Serial Clock Line (SCL), pulled up with resistors.

    Typical voltages used are +5 V or +3.3 V although systems with other voltages are permitted.

    V 0.3 56

  • V 0.3 57

    I2C (Inter-Integrated-Circuit) BusI2C is a two wire serial interface.

    18F242

    SDA

    Microchip 24LC515

    SDA

    A2SCL

    10K

    10K

    SCL

    Vdd

    Vdd

    A1

    A0

    SDA

    A2SCL

    A1

    A0

    SCL clock line

    SDA data

    (bidirectional)

  • V 0.3 58

    What is a bus??

  • V 0.3 59

    I2C Features

    Multiple receivers do not require separate select lines as in SPI

    At start of each I2C transaction a 7-bit device address is sent

    Each device listens if device address matches internal address, then device responds

    SDA (data line) is bidirectional, communication is half duplex

    SDA, SCLK are open-drain, require external pullups

    Allows multiple bus masters (will discuss this more later).

  • V 0.3 60

    I2C Bus Addressing

    No chip selects needed!!!!!

    pullups are needed

  • V 0.3 61

    I2C Bus Transfer

    Multiple bytes sent in a transaction; every 8 bits has a

    9th bit that is an acknowledge.

  • V 0.3 62

    Write (master to slave)

    Read (master from slave)

    Master

    initiates all

    transactions,

    read or write.

  • IC is appropriate for peripherals where simplicity and low manufacturing cost are more important than speed. Common applications of the IC bus are:

    Reading configuration data from SPD EEPROMs on SDRAM, DDR SDRAM, DDR2 SDRAM memory sticks (DIMM) and other stacked PC boards

    Supporting systems management for PCI cards, through an SMBus 2.0 connection.

    Accessing NVRAM chips that keep user settings.

    Accessing low speed DACs and ADCs.

    Changing contrast, hue, and color balance settings in monitors (Display Data Channel).

    Changing sound volume in intelligent speakers.

    Controlling OLED/LCD displays, like in a cellphone.

    Reading hardware monitors and diagnostic sensors, like a CPU thermostat and fan speed.

    Reading real-time clocks.

    Turning on and turning off the power supply of system components.

    V 0.3 63

  • Assembler

    An assembler is a program which creates object code by translating combinations of mnemonics and syntax for operations and addressing modes into their numerical equivalents. This representation typically includes an operation code("opcode") as well as other control bits.

    The assembler also calculates constant expressions and resolves symbolic names for memory locations and other entities.

    The use of symbolic references is a key feature of assemblers, saving tedious calculations and manual address updates after program modifications.

    Most assemblers also include macro facilities for performing textual substitutione.g., to generate common short sequences of instructions as inline, instead of called subroutines.

  • There are two types of assemblers based on how many passes through the source are needed to produce the executable program.

    One-pass assemblers go through the source code once. Any symbol used before it is defined will require "errata" at the end of the object code (or, at least, no earlier than the point where the symbol is defined) telling the linker or the loader to "go back" and overwrite a placeholder which had been left where the as yet undefined symbol was used.

    Multi-pass assemblers create a table with all symbols and their values in the first passes, then use the table in later passes to generate code.

  • Compiler

    A compiler is a computer program (or set of programs) that transforms source code written in a programming language (the source language) into another computer language (the target language, often having a binary form known as object code).

    The most common reason for wanting to transform source code is to create an executable program.

  • The name "compiler" is primarily used for programs that translate source code from a high-level programming language to a lower level language (e.g., assembly language or machine code).

    If the compiled program can run on a computer whose CPU or operating system is different from the one on which the compiler runs, the compiler is known as a cross-compiler.

    A cross compiler is necessary to compile for multiple platforms from one machine. A platform could be infeasible for a compiler to run on, such as for the microcontroller of an embedded system because those systems contain no operating system.

    In paravirtualization one machine runs many operating systems, and a cross compiler could generate an executable for each of them from one main source.

  • Debugger

    A debugger or debugging tool is a computer program that is used to test and debug other programs (the "target" program).

    The code to be examined might alternatively be running on an instruction set simulator (ISS), a technique that allows great power in its ability to halt when specific conditions are encountered but which will typically be somewhat slower than executing the code directly on the appropriate (or the same) processor.

    Some debuggers offer two modes of operationfull or partial simulationto limit this impact.

  • A "trap" occurs when the program cannot normally continue because of a programming bug or invalid data. For example, the program might have tried to use an instruction not available on the current version of the CPU or attempted to access unavailable or protected memory.

    When the program "traps" or reaches a preset condition, the debugger typically shows the location in the original code if it is a source-level debugger or symbolic debugger, commonly now seen in integrated development environments.

    If it is a low-level debugger or a machine-language debugger it shows the line in the disassembly (unless it also has online access to the original source code and can display the appropriate section of code from the assembly or compilation).

  • IDE

    An integrated development environment (IDE) or interactive development environment is a software application that provides comprehensive facilities to computer programmers for software development.

    An IDE normally consists of a source code editor, build automation tools and a debugger.

    Most modern IDEs offer Intelligent code completion features.

  • Some IDEs contain a compiler, interpreter, or both, such as Net Beans and Eclipse; others do not, such as SharpDevelop and Lazarus.

    The boundary between an integrated development environment and other parts of the broader software development environment is not well-defined.

    Sometimes a version control system and various tools are integrated to simplify the construction of a GUI. Many modern IDEs also have a class browser, an object browser, and a class hierarchy diagram, for use in object-oriented software development.