Saturday, 10 August 2013

Boolean AlgebraBoolean algebra was introduced in 1854 by George Boole in his book. According to Huntington the term "Boolean algebra" was first suggested by Sheffer in 1913. In mathematics and mathematical logic, Boolean algebra is the subarea of algebra in which the values of the variables are the truth values true and false, usually denoted 1 and 0 respectively. Instead of elementary algebra where the values of the variables are numbers, and the main operations are addition and multiplication, the main operations of Boolean algebra are the conjunction [and] is denoted by '∧'. the dis-junction [or] denoted by '∨', and the negation [not] denoted by '¬'. 

Boolean Algebra in detail:    Download

Wednesday, 7 August 2013

Download text books from here: 



FPGA DESIGN: *new*

       Application Specific Integrated Circuits by M.J.S. SMITH

       Enbedded Systems Design with platform FPGAs by Andrew G Schmidt


EMBEDDED SYSTEM ARCHITECTURE: *new*

       Embedded Systems Architecture - A Comprehensive Guide for Engineers and Programmers by Tammy Noergaard

       Embedded Systems Building Blocks by Jean J. Labrosse


RTOS:  *new*

       An Embedded Software Primer BY David E Simon  
       
       Reeal-Time Systems by Hermann Kopetz

       RTOS : Unit- 1


EMBEDDED WIRELESS SENSOR NETWORKS:  *new*

       Protocols And Architectures For Wireless Sensor Networks by Holger Karl & Andreas Willing
 
       Application and Multidisciplinary Aspects of Wireless Sensor Networks by Liljana Gavrilovska

       Cooperating Embedded Systems and Wireless Sensor Networks by John Wiley & Sons

       Fundamentals of Sensor Network Programming_Applications and Technology by S.Sitharam Iyengar

       Principles of Embedded Networked Systems Design by Gregory Pottie & William Kaiser


LOW POWER VLSI:  *new*

       Practical Low Power Digital VLSI Design by Gary Yeap


DIGITAL IMAGE PROCESSING:  *new*

      Digital Image Processing by Gonzalez_2nd Edition

      Digital Image Processing by Addison Wesley_3rd Edition


DIGITAL SYSTEM DESIGN AND TESTING: 

       Digital Systems Design Using VHDL_Charles H. Roth

       Engineering Digital Design 2nd Ed_R.F.Tinder

       Principles of Modern Digital Design_Parag.K.Lala

MICRO PROCESSORS & CONTROLLERS: 

  
       Arm System Developer Guide & Optimizing System Software

       ARM system onchip Architecture_Steve Furber  

       Embedded C by Michael.J.Pont

EMBEDDED LINUX: 

       Building Embedded Linux Systems

       Embedded Linux Primer

       Embedded Linux System Design and Development

       Linux Introduction

       Linux Basics

REAL TIME SYSTEMS:

       RTS_Hand Book

       RTOS_Qing Li

       Micro-Controller Operating System Version_μCOS-II

       Design of Real-Time Control Systems

       Task Assignment and Scheduling




Monday, 5 August 2013

Elements of Embedded Systems

Hardware Architecture for Embedded systems

An embedded system is built around a processor. The central processing unit does the necessary computation based on the input it receives from various external devices. The functionality of the CPU is an embedded system is same as the functionality of the CPU in a desktop, except that the CPU in an embedded system is less powerful. The processor has limited internal memory, and if this internal memory is not sufficient for a given application external memory devices are used. The hardware also includes any components that facilitates the user-application interaction, such as display units, keypads etc.

Lets discuss each of the above blocks in details with current trends. 

Processor

The processor used in embedded systems can be of three types:
  • Micro-Controllers
  • Microprocessors
  • Digital Signal Processor
Each of them is specified by clock speed( 100MHz, etc) and data word length( 8-bit, 16-bit, 32-bit). The higher the clock speed, the faster the processor. Same way, bigger data word-length leads to higher precision. The word length also indicates the processor's capability to address the memory. This addressing capability is specified by the number of bits used for addressing. For instance, an 8-bit processor can be use 8 or 16-bit for addressing. 

Micro-controller 

Micro-controllers are mainly of Intel's 805x family, Motorola's 68HCxx, etc. A typical micro-controller contains a CPU, interrupts, timer/counter, memory (RAM, ROM, or both) and other peripherals in same Integrated Circuit(IC). Micro-controller are often an ideal solution for control applications because you can use them to build an embedded system with little additional circuitry. The 8-bit micro-controllers are used for process control applications, such as the ones found in toys and smart cards. If your processing power and memory requirements are high, you need to choose a 16-bit or 32-bit processor.


Microprocessor

A number of 16-bit and 32-bit microprocessors are available from ARM, Atmel, Intel, Motorola, National Semiconductors, etc. In order to develop an embedded system with these processors, you great deal of peripheral circuitry. However, microprocessors higher clock speeds and word-length, so they are capable of addressing higher memory. These processors are used for high-end applications such as handheld computers, Internet access Devices, etc. A microprocessor executes a collection of machine instructions that tell the processor what to do.


Based on the instructions, a microprocessor does three basic things:

  • Using its ALU(Arithmetic/Logic Unit), a microprocessor can perform mathematical operations like addition, subtraction, multiplication and division. Modern microprocessors contain complete floating-point processors that can perform extremely sophisticated operations on large floating-point numbers.
  • A microprocessor can move data from one memory location to another. 
  • A microprocessor can make decisions and jump to a new set of instructions based on those decisions.

Types of Microprocessors
Two classification criteria:

 hardware characteristics

  • Complex Instruction Set Computer (CISC)
– large number of complex addressing modes
– many versions of instructions for different operands
– different execution times for instructions
– few processor registers
– micro-programmed control logic
  • Reduced Instruction Set Computer (RISC)
– one instruction per clock cycle
– memory accesses by dedicated load/store instructions
– few addressing modes
– hard-wired control logic
  • Very Long Instruction Word (VLIW)
– statically determined instruction-level parallelism (under 
compiler control)
– instructions are composed of different machine operations 
whose execution is started in parallel
– many parallel functional units
– large register sets
  • Super scalar Processors
– subclass of RISCs or CISCs
– multiple instruction pipelines for overlapping execution of 
instructions
– parallelism not necessarily exposed to the compiler

characteristics of application areas

• GPP (General Purpose Processor) / MCU (Micro Controller Unit)

• SPP (Special Purpose Processor)

  1. ASIC (Application-Specific Integrated Circuit)
  2. ASIP (Application-Specific Instruction-set Processor)
  3. DSP (Digital Signal Processor)


Digital Signal Processor:

The digital signal processor (DSP) is a special designed processor to handle signals, rather than data. Processing signals ( whether audio or video) is much more complex than processing digital signals. To process audio and video signals, the hardware/software needs to perform an operation called filtering, in which unwanted frequencies are removed. In signal processing, another important task is to convert the signal in frequency domain. Analyzing a signal in frequency domain requires intensive mathematical computation, which general-purpose processors take a lot of time to carry out.  The DSP carries out such mathematical computations quickly using a special module called the Multiplier and Accumulator. DSPs are available with various clock frequencies and word-lengths, with each catering to different market segments (such as speech processing, high-fidelity music processing, image compression, video processing, etc).





Digital Signal Processors (DSPs) are microprocessors with the following characteristics:

a) Real-time digital signal processing capabilities. DSPs typically have to process data in real time, i.e., the correctness of the operation depends heavily on the time when the data processing is completed.

b) High throughput. DSPs can sustain processing of high-speed streaming data, such as audio and multimedia data processing.

c) Deterministic operation. The execution time of DSP programs can be foreseen accurately, thus guaranteeing a repeatable, desired performance.
d) Re-programmability by software. Different system behavior might be obtained by re-coding the algorithm executed by the DSP instead of by hardware modifications.

Memory

The memory used in embedded systems can be either internal or external. The internal memory of a processor is very limited. For small applications, if this memory is sufficient, there is need to used external memory. 
Internal Memory 
Internal memory is found in the same silicon as the processor. It is accessible to the processor without any use of input and output. If the capacity of the internal memory is high, the cost is likely to be more. The advantage of larger memory  internal to the chip is that there will be less program swapping, resulting in fast instruction and data access.


External Memory Separate devices are used to store the program and temporary data. When the program and data are stored in external devices, data access takes more time than it would with internal memory. External devices require additional circuitry to be built around the processor, to generate the addresses for retrieving the memory contents.


Weather external to internal memories can be further classified into following categories:
  • Random Access Memory
  • Read-Only Memory
  • Hybrid Memory

Random Access Memory

Its a type of memory that can be accessed randomly - that is, a memory location can be accessed without touching other locations. RAM is also called Read-Write Memory, as you can perform both read and write operations on this memory device. 

RAM are of two types
  • Static RAM : Retains its contents as long as electrical power is being supplied to the device. For Example: The desktop PC contains SRAM, which loses data when power is switched.
  • Dynamic RAM : DRAM has sort life cycle, typically one fourth of second, even if power is being supplied. Its uses DRAM controller in conjunction with DRAM to refresh the memory periodically  They generally have low costs. Handheld computers contains DRAM to store data. 

Read Only Memory

It is a memory device from which the processor can read data but to which it cannot write data. Like CD. The programs and data that needs to be permanently stored are kept in ROM devices. ROM Retains its contents even if power is switched off; therefore it is used to store program codes and any permanent data retained to initialize and operate embedded systems. A verity of ROM devices are available, each with different capabilities.


  • PROM(Programmable ROM): It can be programmed only once. 
  • EPROM (Erasable ROM): It can be programmed many times.An EPROM programmer is required to program the EPROM chip.

Hybrid Memory

These are of tree types:
  • Electrically Erasable Programmable ROM (EEPROM) : It is similar to EPROM, but it can be erased electrically by applying an electrical signal to one of the pins. 
  • Non-Volatile RAM (NVRAM) : It is a SRAM with battery backup so that the contents are not erased even if power is switched off. Its is very expensive but data access through it is fast.
  • Flash Memory : it is also a non - volatile memory, fast EEPROM. The main attraction of flash is that it can be erased one block at a time and programmed one bit at a time. Flash memory devices are high density, low cost, fast (to read but not to write), and electrically programmable. It is being extensively used for embedded systems that contain embedded OS and the application program such as handheld computers. 

Secondary Storage Devices

Hard disks, floppy disks and CD-ROM's are secondary devices. High-end operating systems and application software require very large programs and virtual memory. Such requirements are driving the industry to introduce secondary storage on some embedded devices, such as industry to introduce automation systems, mobile devices, etc. The secondary storage devices have very large memories compared to memory chips, but they need moving parts in order for data to be written to them or read from them.

 Above picture shows the memory models that is being use extensively.
(A) In this processor writes the data to RAM, and then the contents are transferred to the secondary storage devices, such as hardisk.


(B) It is one of the models which is gained popularity with advent of smart phone and handheld devices. In this model, the processor writes directly to the flash chip, making the data transfer much faster.


Latches and Buffers

Processor based systems need to derive external devices such as LEDs, displays, relays, etc. The processor does not directly interface with these devices. Flip-flop logic chips are used to drive external drivers. These chips hold the processor output data to be send to the external devices. 

These flip-flops and buffers isolate the external devices from the common bus by using the tri state features of these chips. 

Crystal

The CPU needs a clock source, and a crystal oscillator generates the clock. The Crystal is choose d based on the cock frequency of the processor. Micro-controllers provide an on chip oscillator and you connect an external crystal or ceramic resonator. The clock generation circuitry determines the various states of machine cycles.


Reset Circuit

It is generally built in the hardware to take care of any unforeseen problems. This circuit handles software handles software hang-ups, power supply failures, etc. The processor sends a status signal to this circuit periodically. If in case this signal is not received, it is an indicator that some thing is wrong, which is then reset by this circuit. Single chip solutions are also available.  

Watchdog timer

Most of the embedded systems have no provision of resetting the processor in such cases a watchdog timer is used. It is set to a large value and is counted down. When value reaches zero, the processor resets. If things are fine and there is no need to reset the processor, the processor resets the watchdog timer to that large value again.


Chip-select logic circuit

In the processor-based systems, many digital chips share common bus. To carry out transaction with a particular chip, the processor must be able to uniquely identify the chip. The processor performs this identification through a signal called the chip-select-signal. This signal is available to all devices connected to bus and it is of either high or low level. This signal can be generated using decoder/encoder-multiplexer chip.




ADC and DAC

Embedded systems receive their inputs from the external world in the form of analog signals. An analog signal (amplitude varies continuously) needs to be converted into a digital signal as processor only takes digital signals ( a series of ones and zeros represented by voltages). Thus these conversions are performed by Analog-to-Digital(ADC) and the reverse conversion of digital to analog by Digital-to-Analog(DAC).




Every analog signal have a bandwidth (that is range of highest to lowest frequency) to convert such a signal into digital, first the signal needs to be sampled. After sampling the signal is quantized to give a digital signal.


Application-specific control circuitry

Since we are dealing with embedded systems which can be application  specific so such circuitry is needed which can handle specific  applications.  Devices which needed includes sensor and transducers(to obtain real-world from external sources), relays(to control external circuitry) and various input devices, such as keyboards, functional keypads etc. To control all these devices on needs circuitry to interface them with the processor.


Display units

Embedded Systems that require user interactions must have display units, which can be either Liquid Crystal Display (LCD): The come in various forms. Such as 2-line displays with eight characters per line, four line display with 12 characters per line. Another kind is a touch screen like that of automatic teller machine, which is more user friendly. These can be integrated either the embedded systems with a special software (LCD Driver) for displaying the data on LCD units


 Light Emitting Diodes (LEDs) indicators: Some of embedded systems use LED indicators to provide status information, such as power on, or whether or not a specific parameter being measured is within the prescribed limit. They come in different colors (red, green, yellow) to provide such status information.





Keypads

Each embedded systems offer different capabilities for providing user input. Handheld computers are provided with either full-fledged QWERTY keyboard or a form of handwriting recognition. Depending on the needs they can vary from few keys to a ful-fledged keyboard. 

Communication Interfaces

Embedded Systems need to interface with the external devices, thus they need communication interfaces. Most processors provide a serial interface to send and receive data in serial form. Networked embedded systems are provided with Ethernet interface. Mobile phones and handheld computers are provided with a number of communication interfaces es such as serial, parallel, infrared, bluetooth, and USB(Universal Serial Bus).

Programmable Logic Devices

The design  goals of an embedded system are to reduce size, cost and power consumption and to increase performance and reliability. These manifold requirements are met using PLDs(Programmable Logic Devices). Its a single chip in which a large amount of  discrete logic and memory can be combined. Using design automation tools such as   Verilog and VHDL. This Single chip can be Programmable Logic Device (PLD), Field Programmable Gate Array, Programmable Array Logic (PAL). The per chip gate count of these devices are increasing day by day. Major Suppliers are ACtel, Adaptive Silicon, Altera, Atmel, Cypress Semiconductors, QuickLogic, Triscend and Xilinx.




Application Specific Circuits (ASIC) is another option for embedded systems. ASIC needs to be custom-built for specific application so it can cost high.


A complete Embedded System Block Diagram When integrated with above components

Micro Controller :


A micro-controller (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. Micro-controllers are designed for embedded applications, in contrast to the microprocessors used in personal computers or other general purpose applications.




8051-An Application Based Introduction_Chris BraithWaite

ARM system onchip Architecture_Steve Furber


A few micro-controllers may utilize four-bit expressions and work at clock rate frequencies, which usually include:
  • An 8 or 16 bit microprocessor.
  • A little measure of RAM.
  • Programmable ROM and flash memory.
  • Parallel and serial I/O.
  • Timers and signal generators.
  • Analog to Digital and Digital to Analog conversion.
            Micro-controllers usually must have low-power requirements since many devices they control are battery-operated. Micro-controllers are used in many consumer electronics, car engines, computer peripherals and test or measurement equipment. And these are well suited for long lasting battery applications. The majority of micro-controllers in use today are embedded in other machinery.
        The micro-controllers are characterized regarding bus-width, instruction set, and memory structure. For the same family, there may be different forms with different sources. This article is going to describe some of the basic types of the Micro-controller that newer users may not know about.

Types of Micro-controller:

types of microcontroller
             The types of micro-controller is shown in figure, they are characterized by their bits, memory architecture, memory/devices and instruction set. Let’s discuss briefly about it.
Refer this for more types : http://typesofmicrocontrollers.com

Bits:

The bits in micro-controller are 8-bits, 16-bits and 32-bits micro-controller.
In 8-bit micro-controller, the point when the internal bus is 8-bit then the ALU is performs the arithmetic and logic operations. The examples of 8-bit micro-controllers are Intel 8031/8051, PIC1x and Motorola MC68HC11 families.
The 16-bit micro-controller performs greater precision and performance as compared to 8-bit. For example 8 bit micro-controllers can only use 8 bits, resulting in a final range of 0×00 – 0xFF (0-255) for every cycle. In contrast, 16 bit micro-controllers with its 16 bit data width has a range of 0×0000 – 0xFFFF (0-65535) for every cycle. A longer timer most extreme worth can likely prove to be useful in certain applications and circuits. It can automatically operate on two 16 bit numbers. Some examples of 16-bit micro-controller are 16-bit MCUs are extended 8051XA, PIC2x, Intel 8096 and Motorola MC68HC12 families.
The 32-bit micro-controller uses the 32-bit instructions to perform the arithmetic and logic operations. These are used in automatically controlled devices including implantable medical devices, engine control systems, office machines, appliances and other types of embedded systems. Some examples are Intel/Atmel 251 family, PIC3x.

Memory Devices:

The memory devices are divided into two types, they are
    • Embedded memory micro-controller
    • External memory micro-controller
Embedded memory micro-controller: When an embedded system has a micro-controller unit that has all the functional blocks available on a chip is called an embedded micro-controller  For example, 8051 having program & data memory, I/O ports, serial communication, counters and timers and interrupts on the chip is an embedded micro-controller.
External Memory Micro-controller: When an embedded system has a micro-controller unit that has not all the functional blocks available on a chip is called an external memory micro-controller  For example, 8031 has no program memory on the chip is an external memory micro-controller.

Instruction Set:

The instruction sets are classified as CISC and RISC.
CISC: CISC is a Complex Instruction Set Computer. It allows the programmer to use one instruction in place of many simpler instructions.
RISC: The industry trend for microprocessor design is for Reduced Instruction Set Computers (RISC) designs. It allows each instruction to operate on any register or use any addressing mode and simultaneous access of program and data.
Example for CISC and RISC:
CISC:Mov AX, 4        RISC:Mov AX, 0
Mov BX, 2Mov BX, 4
ADD BX, AXMov CX, 2
BeginADD AX, BX
LoopBegin
From above example, RISC systems shorten execution time by reducing the clock cycles per instruction and CISC systems shorten execution time by reducing the number of instructions per program. The RISC provides a higher performance in computing than the CISC.

Memory Architecture:

Memory architecture of micro-controller are two types, they are namely:
  • Harvard memory architecture micro-controller
  • Princeton memory architecture micro-controller
Harvard Memory Architecture Micro-controller: The point when a micro-controller unit has a dissimilar memory address space for the program and data memory, the micro-controller has Harvard memory architecture in the processor.
Princeton Memory Architecture Micro-controller: The point when a micro-controller has a common memory address for the program memory and data memory, the micro-controller has Princeton memory architecture in the processor.

Applications of Micro-controllers:

Micro-controller has many applications electronic equipment’s:
  • Mobile Phones
  • Auto Mobiles
  • Washing Machines
  • Cameras
  • Security Alarms