Sunday, October 16, 2011

Details on various components of embedded System.

After talking much about what embedded system is ? I want to go in detail for various components of embedded system.

Micro-controllers
Wikipedia says that: A microcontroller (sometimes abbreviated µC, uC or MCU) is a small computer on a single integrated circuit containing a processor core, memory, and programmable input/output peripherals. Program memory in the form of NOR flash or OTP ROM is also often included on chip, as well as a typically small amount of RAM.
A microcontroller is a single chip VLSI unit which though having computational capabilities, possesses enhanced input output capabilities and a number of on-chip functional units  


Micro-controllers are designed for embedded applications, in contrast to the microprocessors used in personal computers or other general purpose applications.

A microcontroller is a single integrated circuit with following features:


1. Processors.
2. Internal RAM.
3. Timers and Watch dog timers.
4. External Memories interface.
5. Interrupt controller.
6. Internal flash/ROM.
7. Ports
     i) I/O ports control and Interfaces/Drivers.

    ii) Serial UART communication Port.
   iii) Serial Synchronous Communication Port.
8. Application specific circuits in Specific versions.
     i) DMA controller.
    ii) Network driver stack and interfaces.
   iii) A/D Converter.
   iv) CAN controller.
   v) PWM circuit for D/A.
  vi) Print Controller.

  vii) Modem.
 viii) DTMF circuit.
.

A microcontroller is used when a small or part of the embedded software has to be located in the internal memory and when on-chip functional units such as the interrupt handler, port, timer, ADC, PWM and CAN controller are required.

 Processor
The processor (called CPU, for Central Processing Unit) is an electronic circuit that operates at the speed of an internal clock thanks to a quartz crystal that, when subjected to an electrical currant, send pulses, called "peaks". The clock speed (also called cycle), corresponds to the number of pulses per second, written in Hertz (Hz). Thus, a 400 MHz computer has a clock that sends 400,000,000 pulses per second.

With each clock peak, the processor performs an action that corresponds to an instruction or a part thereof. A measure called CPI (Cycles Per Instruction) gives a representation of the average number of clock cycles required for a microprocessor to execute an instruction. A processor power can thus be characterized by the number of instructions per second that it is capable of processing. MIPS (millions of instructions per second) is the unit used and corresponds to the processor frequency divided by the CPI.


What is Instruction ?


An instruction is an elementary operation that the processor can accomplish. Instructions are stored in the main memory, waiting to be processed by the processor. An instruction has two fields:
  • the operation code, which represents the action that the processor must execute;
  • the operand code, which defines the parameters of the action. The operand code depends on the operation. It can be data or a memory address.

The number of bits in an instruction varies according to the type of data (between 1 and 4 8-bit bytes).
Instructions can be grouped by category, of which the main ones are:
  • Memory Access: accessing the memory or transferring data between registers.
  • Arithmetic Operations: operations such as addition, subtraction, division or multiplication.
  • Logic Operations: operations such as AND, OR, NOT, EXCLUSIVE NOT, etc.
  • Control: sequence controls, conditional connections, etc.
 When these instructions are executed the data is temporarily stored into small small, local memory locations of 8, 16, 32 or 64 bits called registers. The number of registers depend upon type of processor.



The main registers are:
  • the accumulator register (ACC), which stores the results of arithmetic and logical operations;
  • the status register (PSW, Processor Status Word), which holds system status indicators (carry digits, overflow, etc.);
  • the instruction register (RI), which contains the current instruction being processed;
  • the ordinal counter (OC or PC for Program Counter), which contains the address of the next instruction to process;
  • the buffer register, which temporarily stores data from the memory.
We will go in more detail about processors when I will solely write about microprocessors.


 Internal RAM
 Internal RAM (IRAM) is the address range of RAM that is internal to the CPU. This memory is internal to CPU and is SRAM.




Watch dog timers
A watchdog timer (WDT) is a device or electronic device that performs a specific operation after a certain period of time if something goes wrong with an electronic system and the system does not recover on its own.

A common problem is for a machine or operating system to lock up if two parts or programs conflict, or, in an operating system, if memory management trouble occurs. In some cases, the system will eventually recover on its own, but this may take an unknown and perhaps extended length of time. A watchdog timer can be programmed to perform a warm boot (restarting the system) after a certain number of seconds during which a program or computer fails to respond following the most recent mouse click or keyboard action. The timer can also be used for other purposes, for example, to actuate the refresh (or reload) button in a Web browser if a Web site does not fully load after a certain length of time following the entry of a Uniform Resource Locator (URL).

A WDT contains a digital counter that counts down to zero at a constant speed from a preset number. The counter speed is kept constant by a clock circuit. If the counter reaches zero before the computer recovers, a signal is sent to designated circuits to perform the desired action.

Interrupt controller
A special-purpose integrated circuit that functions as an overall manager in an interrupt driven system. It accepts requests from the peripheral equipment, determines which of the incoming requests is of the highest priority, ascertains whether the incoming request has a higher priority value than the level currently being serviced, and issues an interrupt to the CPU based on this determination.

PICs typically have eight interrupt lines, and two PICs are often cascaded to provide 15 available interrupt lines.


Internal Flash
It is non volatile computer storage chip that can be electrically erased and programmed. Data can be written in small chunks but erasing is done block by block. This memory is created from E2PROM but is different from E2PROM in the way FLASH is erased.

Ports
These ports used for transferring data or receiving inputs from some input device. These are used for communication it could be a asynchronous communication or it could be synchronous.    

Application specific circuits in Specific versions
Under this heading I will be explaining few components.
 
DMA controllers:
Direct Memory Access (DMA) is one of several methods for coordinating the timing of data transfers between an input/output (I/O) device and the core processing unit or memory in a computer. DMA is one of the faster types of synchronization mechanisms, generally providing significant improvement over interrupts, in terms of both latency and throughput. An I/O device often operates at a much slower speed than the core. DMA allows the I/O device to access the memory directly, without using the core. DMA can
lead to a significant improvement in performance because data movement is one of the most common operations performed in processing applications. The DMA unit contains the necessary counters, offset registers, and pointers to transparently handle one-, two-, and three-dimensional data matrix transfers. These
registers can be given values that result in special addressing modes, for example, access to circular buffers and linear buffers with non-unit stride. The data structure dimensionality can be chosen independently for the source access versus the destination access involved in the data moves.

To be continued ........