Microcontroller

From CVL Wiki

(Difference between revisions)
Jump to: navigation, search
(New page: =A typical microcontroller= ==The programming model== ==Memory== ===ROM=== ===PROM=== ===EPROM=== ===EEPROM=== ===Flash EEPROM=== ===RAM=== == Central Processor Unit (CPU)== ==The I/O inte...)
 
 
Line 8: Line 8:
 
===Flash EEPROM===
 
===Flash EEPROM===
 
===RAM===
 
===RAM===
== Central Processor Unit (CPU)==
+
==Central Processor Unit (CPU)==
 
==The I/O interface==
 
==The I/O interface==
 
==The address, data, and control buses==
 
==The address, data, and control buses==
 +
 +
[[Image:Buses.jpg|thumb|left|Fig.1 Buses on the Spartan-3E board]]Electrical lines that travel between microcontroller components (such as memory[http://computing.ece.vt.edu/mediawiki/index.php?title=Microcontroller&action=submit#Memory] and the CPU[http://computing.ece.vt.edu/mediawiki/index.php?title=Microcontroller&action=submit#Central_Processor_Unit_.28CPU.29]) are called buses.  Buses[http://en.wikipedia.org/wiki/Data_bus] are either wires (typically insulated if they are free-standing), or copper lines printed on a circuit board.  Buses carry data between microcontroller components.  The data carried over these buses are in digital form, which means with the exception of transition periods, they are discrete voltage values.  There are three types of buses: address, data, and control buses.  The two most popular microprocessor architectures, Harvard[http://www.ee.nmt.edu/~rison/ee308_spr99/supp/990119/harvard.gif] and Princeton[http://www.ee.nmt.edu/~rison/ee308_spr99/supp/990119/princeton.gif], each have different interconnects between components (such as memory, control, and processing); they, however, use the same buses to communicate with each other.
 +
 +
The address bus carries address data of varying size, depending on the platform and design of the microcontroller.  For the MicroBlaze microcontroller, addresses are in 32-bit word form.  This allows for up to 2<sup>32</sup> or 4,294,967,296 different addresses in any given component.  The main components that communicate via the address bus are the processor (CPU) and memory (either data memory or instruction memory).  Memory addresses are needed so that the reads and writes to memory are done in the right memory locations.
 +
 +
The data bus passes actual data through its communication lines.  Again, the bandwidth of this bus can vary, but for the MicroBlaze it is 32 bits.  The data bus is mostly used between memory and another microcontroller component.  The address information for data to be passed goes through the address bus, but the actual data with reads and writes are passed through the data bus.
 +
 +
The control bus passes instructions and other control information between microcontroller components.  This bus is mainly used to and from a major control component (a CPU or control circuit, or otherwise).  A main job of the control component is to decide whether the data bus is to perform a read or write.  The control circuitry also prioritizes instructions that need to be performed, and is in charge of executing them in sequence.  In other words, the control bus keeps everything in order, and prevents data from being moved unsystematically.
 +
 
=Microprocessors vs microcontrollers=
 
=Microprocessors vs microcontrollers=
 
==Hardware architecture==
 
==Hardware architecture==

Latest revision as of 01:36, 2 May 2007

Contents

[edit] A typical microcontroller

[edit] The programming model

[edit] Memory

[edit] ROM

[edit] PROM

[edit] EPROM

[edit] EEPROM

[edit] Flash EEPROM

[edit] RAM

[edit] Central Processor Unit (CPU)

[edit] The I/O interface

[edit] The address, data, and control buses

Fig.1 Buses on the Spartan-3E board
Electrical lines that travel between microcontroller components (such as memory[1] and the CPU[2]) are called buses. Buses[3] are either wires (typically insulated if they are free-standing), or copper lines printed on a circuit board. Buses carry data between microcontroller components. The data carried over these buses are in digital form, which means with the exception of transition periods, they are discrete voltage values. There are three types of buses: address, data, and control buses. The two most popular microprocessor architectures, Harvard[4] and Princeton[5], each have different interconnects between components (such as memory, control, and processing); they, however, use the same buses to communicate with each other.

The address bus carries address data of varying size, depending on the platform and design of the microcontroller. For the MicroBlaze microcontroller, addresses are in 32-bit word form. This allows for up to 232 or 4,294,967,296 different addresses in any given component. The main components that communicate via the address bus are the processor (CPU) and memory (either data memory or instruction memory). Memory addresses are needed so that the reads and writes to memory are done in the right memory locations.

The data bus passes actual data through its communication lines. Again, the bandwidth of this bus can vary, but for the MicroBlaze it is 32 bits. The data bus is mostly used between memory and another microcontroller component. The address information for data to be passed goes through the address bus, but the actual data with reads and writes are passed through the data bus.

The control bus passes instructions and other control information between microcontroller components. This bus is mainly used to and from a major control component (a CPU or control circuit, or otherwise). A main job of the control component is to decide whether the data bus is to perform a read or write. The control circuitry also prioritizes instructions that need to be performed, and is in charge of executing them in sequence. In other words, the control bus keeps everything in order, and prevents data from being moved unsystematically.

[edit] Microprocessors vs microcontrollers

[edit] Hardware architecture

[edit] Applications

[edit] Instruction set features

[edit] MicroBlaze architecture

[edit] Data types and endianness

[edit] Registers (general-purpose and special-purpose)

[edit] Pipeline architecture

[edit] Memory architecture

[edit] Instruction cache

[edit] Data cache

[edit] Floating Point Unit

[edit] Fast Simplex Link

[edit] MicroBlaze instruction set architecture

[edit] Instruction set summary

[edit] Instruction and operand syntax

[edit] Instructions

[edit] Load/store instructions

[edit] Arithmetic instructions

[edit] Logical instructions (including barrel shifts)

[edit] Comparisons and conditional branches

[edit] Unconditional branches, subroutines/exceptions, and returns

[edit] All other MicroBlaze instructions

[edit] Assembly language and C programming for the MicroBlaze

[edit] Using MicroBlaze tools for assembly and linking

[edit] Elements of a program: header, assembler directives, and conventions

[edit] Steps for writing an assembler program

[edit] Assembly source file, listing file, object file, and executable (elf) file

[edit] MicroBlaze C compiler

[edit] Downloading machine code into MicroBlaze memory

[edit] System stack and subroutines

[edit] Debugging techniques

[edit] Assembly program examples

[edit] C program examples

[edit] Overview of MicroBlaze peripherals

[edit] On-chip memory

[edit] DDR SDRAM

[edit] OPB GPIO peripherals: LEDs, switches, LCD, ADC start, and SPI interface

[edit] Interrupt controller

[edit] Debug module

[edit] 10/100 Ethernet MAC

[edit] VGA video interface

[edit] Programmable Timer/Counter

[edit] DMA controller

[edit] Bus Masters, Slaves, and OPB Bus Arbitration

[edit] OPB Timer/Counter

[edit] Generate mode

[edit] Capture mode

[edit] PWM mode

[edit] Interrupts

[edit] Reset, Interrupts, Exceptions and Break

[edit] OPB interrupt controller

[edit] Interrupts with OPB GPIO

[edit] Serial data link protocols

[edit] SPI Protocol

[edit] I2C Protocol

[edit] RS-232 Protocol

[edit] USB Protocol

[edit] Firewire Protocol

[edit] CAN Bus Protocol

[edit] Source-Synchronous and Self-Synchronous protocols

[edit] Analog converter subsystem

[edit] Concepts and terminology

[edit] Analog-to-digital (A/D) converters

[edit] A/D input synchronization

[edit] A/D interrupts

[edit] A/D programming

[edit] Example of A/D programs

[edit] Appendix A: List of microcontrollers and microprocessors that are widely used today

[edit] Appendix B: Glossary

Views
Personal tools
Support