Understanding ARM7 Microcontroller based embedded hardware
The following figure shows the ARM7 Microcontroller. The large grey color
rectangle represents the microcontroller chip. This single chip includes
all the components required for the computer hardware. In the case of
8086 kit, every component like CPU, Memory and IO interfaces are present as
separate chips. These are interconnected using tracks on the PCB (Printed
Circuit Board). In the case of microcontroller, all the components are included
in a single chip, and interconnected exactly like in a PCB. So for our
understanding, microcontroller is like a PCB and other chips included in a
single chip. Microcontroller is also referred as 'System On Chip' (SOC).
I feel SOC is more appropriate name for the microcontroller.
The pins coming out of the SOC chip, are IO device interface pins from the
IO interface chips present in side the SOC. We place the SOC chip on a PCB.
Some IO interface pins are connected to the on board (PCB) IO devices like
LEDs, Push buttons, and LCD display. Other IO interface pins are brought
to the IO connectors present on the PCB. Typical connectors are RS-232
connector, PS/2 keyboard connector, USB device connector, and SD Card (memory
card) socket. Now external IO devices are connected to these connectors
by using appropriate cables.
The ARM7 CPU is a 32 bit CPU. It contains 16 registers. All registers are
32 bit in size. All instructions are 32 bit in size. All instructions uses
only registers as operands. So it does not support operations directly on
the memory operands, as 8086 CPU. So ARM CPU is considered as RISC
(Reduced Instruction Set Computer) model CPU and 8086 is considered as CISC
(Complex Instruction Set Computer) model CPU. Another important difference
is regarding address spaces. 8086 support two separate address spaces,
one address space is for memory and other is for IO. Where as ARM has only
single address space, which is a combined address space for both memory and IO.
In the ARM SOC shown above, it got 512K of flash ROM, and 32K of static RAM.
It has got the following IO interfaces:
- General Purpose IO (GPIO)
- Serial communication interface
- Timer/Counter/Pulse Width Modulator(PWM)
- Analog to Digital converter (ADC)
- Digital to Analog converter (DAC)
- Inter IC communication (I2C) interface
- Serial Peripheral Interface (SPI)
- Universal Serial Bus (USB) device interface