Sie sind auf Seite 1von 88

SHCST Hyderabad

CHAPTER 1
OVERVIEW OF THE EMBEDDED SYSTEMS

1.1 Embedded Systems:


An embedded system can be defined as a computing device that does a specific focused
job. Appliances such as the air-conditioner, VCD player, DVD player, printer, fax machine,
mobile phone etc. are examples of embedded systems. Each of these appliances will have a
processor and special hardware to meet the specific requirement of the application along with the
embedded software that is executed by the processor for meeting that specific requirement.
The embedded software is also called ―firm ware‖. The desktop/laptop computer is a
general purpose computer. You can use it for a variety of applications such as playing games,
word processing, accounting, software development and soon.
In contrast, the software in the embedded systems is always fixed listed below:
Embedded systems do a very specific task, they cannot be programmed to do different
things. Embedded systems have very limited resources, particularly the memory. Generally, they
do not have secondary storage devices such as the CDROM or the floppy disk. Embedded
systems have to work against some deadlines. A specific job has to be completed within a
specific time. In some embedded systems, called real-time systems, the deadlines are stringent.
Missing a deadline may cause a catastrophe-loss of life or damage to property. Embedded
systems are constrained for power. As many embedded systems operate through a battery, the
power consumption has to be very low. Some embedded systems have to operate in extreme
environmental conditions such as very high temperatures and humidity.
Following are the advantages of Embedded Systems:
1. They are designed to do a specific task and have real time performance constraints which
must be met.
2. They allow the system hardware to be simplified so costs are reduced.
3. They are usually in the form of small computerized parts in larger devices which serve a
general purpose.

MD SHAKIR RAHMANI 14565A0401 Page 1


SHCST Hyderabad

4. The program instructions for embedded systems run with limited computer hardware
resources, little memory and small or even non-existent keyboard or screen.

1.2. Definition of an Embedded System

Embedded system is defined as, For a particular/specific application implementing the


software code to interact directly with that particular hardware what we built. Software is used
for providing features and flexibility, Hardware = {Processors, ASICs, Memory,...} is used for
Performance (& sometimes security)

There are many definitions of embedded system but all of these can be combined into a
single concept. An embedded system is a special purpose computer system that is used for
particular task.

1.3. Features of Embedded Systems

The versatility of the embedded computer system lends itself to utility in all kinds of
enterprises, from the simplification of deliverable products to a reduction in costs in their
development and manufacture. Complex systems with rich functionality employ special
operating systems that take into account major characteristics of embedded systems. Embedded
operating systems have minimized footprint and may follow real-time operating system
specifics.

The special computers system is usually less powerful than general-purpose systems, although
some expectations do exist where embedded systems are very powerful and complicated.
Usually a low power consumption CPU with a limited amount of memory is used in embedded
systems. Many embedded systems use very small operating systems; most of these provide very
limited operating system capabilities.

Since the embedded system is dedicated to specific tasks, design engineers can
optimize it, reducing the size and cost of the product, or increasing the reliability and
performance. Some embedded systems are mass-produced, benefiting from economies of scale.

MD SHAKIR RAHMANI 14565A0401 Page 2


SHCST Hyderabad

Some embedded systems have to operate in extreme environment conditions such as very high
temperature & humidity.

For high volume systems such as portable music players or mobile phones, minimizing cost is
usually the primary design consideration. Engineers typically select hardware that is just ―good
enough‖ to implement the necessary functions.

For low volume or prototype embedded systems, general purpose computers may be adapted by
limiting the programs or by replacing the operating system with a real-time operating system.

1.4. Characteristics of Embedded Systems


Embedded computing systems generally exhibit rich functionality—complex
functionality is usually the reason for introducing CPUs into the design. However, they also
exhibit many non-functional requirements that make the task especially challenging:

• Real-time deadlines that will cause system failure if not met;

• Multi-rate operation;

• In many cases, low power consumption;

• Low manufacturing cost, which often means limited code size.

Workstation programmers often concentrate on functionality. They may consider the


performance characteristics of a few computational kernels of their software, but rarely analyze
the total application. They almost never consider power consumption and manufacturing cost.
The need to juggle all these requirements makes embedded system programming very
challenging and is the reason why embedded system designers need to understand computer
architecture.

MD SHAKIR RAHMANI 14565A0401 Page 3


SHCST Hyderabad

1.5. Overview of an Embedded System Architecture

Every Embedded system consists of a custom-built hardware built around a central


processing unit. This hardware also contains memory chips onto which the software is loaded.

Application Software

Operating System

H/W

The operating system runs above the hardware and the application software runs above the
operating system. The same architecture is applicable to any computer including desktop
computer. However these are significant differences. It is not compulsory to have an operating
system in every embedded system. For small applications such as remote control units, air
conditioners, toys etc.

Applications of Embedded Systems

Some of the most common embedded systems used in everyday life are

Small embedded controllers: 8-bit CPUs dominate, simple or no operating system

(e.g., thermostats)

MD SHAKIR RAHMANI 14565A0401 Page 4


SHCST Hyderabad

Control systems: Often use DSP chip for control computations

(e.g., automotive engine control)

Distributed embedded control: Mixture of large and small nodes on a real-time

Embedded networks

(e.g., cars, elevators, factory automation)

System on chip: ASIC design tailored to application area

(e.g., consumer electronics, set-top boxes)

Network equipment: Emphasis on data movement/packet flow

(e.g., network switches; telephone switches)

Critical systems: Safety and mission critical computing

(e.g., pacemakers, automatic trains)

Signal processing: Often use DSP chips for vision, audio, or other signal

Processing (e.g., face recognition)

Robotics: Uses various types of embedded computing (especially

Vision and control) (e.g., autonomous vehicles)

Computer peripherals: Disk drives, keyboards, laser printers, etc.

Wireless systems: Wireless network-connected ―sensor networks‖ and

―Motes‖ to gather and report information

Embedded PCs: Palmtop and small form factor PCs embedded into

Equipment

Command and control: Often huge military systems and ―systems of systems‖

(e.g., a fleet of warships with interconnected

Computers)

MD SHAKIR RAHMANI 14565A0401 Page 5


SHCST Hyderabad

Home Appliances, intercom, telephones, security systems, garage door openers, answering
machines, fax machines, home computers, TVs, cable TV tuner, VCR, camcorder, remote
controls, video games, cellular phones, musical instruments, sewing machines, lighting control,
paging, camera, pinball machines, toys, exercise equipment

Office Telephones, computers, security systems, fax machines, microwave, copier, laser printer,
color printer, paging

Auto Trip computer, engine control, air bag, ABS, instrumentation, security system,
transmission control, entertainment, climate control, cellular phone, keyless entry

1.6. TYPES OF EMBEDDED SYSTEMS


Based on functionality and performance embedded systems categorized as 4 types
1. Stand alone embedded systems
2. Real time embedded systems
3. Networked information appliances
4. Mobile devices

1. Stand alone embedded systems:-


As the name implies, stand alone systems work in stand alone mode. They take i/p, process them
and produce the desire o/p. The i/p can be an electrical signal from transducer or temperature
signal or commands from human being. The o/p can be electrical signal to drive another system
an led or LCD display

ex digital camera, microwave oven, CD player, Air conditioner etc

2. Real time embedded systems:-


In this type of an embedded system a specific work has to be complete in a particular
period of time.
Hard Real time systems: - embedded real time used in missiles
Soft Real time systems: - DVD players

MD SHAKIR RAHMANI 14565A0401 Page 6


SHCST Hyderabad

3. Networked information appliances:-


Embedded systems that are provided with n/w interfaces and accessed by n/w such as local area
n/w or internet are called Network Information Appliances

Ex A web camera is connected to the internet. Camera can send pictures in real time to any
computers connected to the internet

4. Mobile devices:-
Actually it is a combination of both VLSI and Embedded System

Mobile devices such as Mobile phone, Personal digital assistants, smart phones etc are
special category of embedded systems

MD SHAKIR RAHMANI 14565A0401 Page 7


SHCST Hyderabad

CHAPTER 2
ARM LPC214x

2.1. LPC214x

The LPC2141/42/44/46/48 microcontrollers are based on a 16-bit/32-bit ARM7TDMI-S


CPU with real-time emulation and embedded trace support, that combine microcontroller with
embedded high speed flash memory ranging from 32 kB to 512 kB. A 128-bit wide memory
interface and a unique accelerator architecture enable 32-bit code execution at the maximum
clock rate. For critical code size applications, the alternative 16-bit Thumb mode reduces code by
more than 30 % with minimal performance penalty. Due to their tiny size and low power
consumption, LPC2141/42/44/46/48 are ideal for applications where miniaturization is a key
requirement, such as access control and point-of-sale. Serial communications interfaces ranging
from a USB 2.0 Full-speed device, multiple UARTs, SPI, SSP to I2C-bus and on-chip SRAM of
8 kB up to 40 kB, make these devices very well suited for communication gateways and protocol
converters, soft modems, voice recognition and low end imaging, providing both large buffer
size and high processing power. Various 32-bit timers, single or dual 10-bit ADC(s), 10-bit
DAC, PWM channels and 45 fast GPIO lines with up to nine edge or level sensitive external
interrupt pins make these microcontrollers suitable for industrial control and medical systems

2.1.1. ARM LPC2148

General description:

The LPC2141/42/44/46/48 microcontrollers are based on a 16-bit/32-bit ARM7TDMI-S


CPU with real-time emulation and embedded trace support, that combine microcontroller with
embedded high speed flash memory ranging from 32 kB to 512 kB. A 128-bit wide memory
interface and a unique accelerator architecture enable 32-bit code execution at the maximum
clock rate. For critical code size applications, the alternative 16-bit Thumb mode reduces code by
more than 30 % with minimal performance penalty. Due to their tiny size and low power
consumption, LPC2141/42/44/46/48 are ideal for applications where miniaturization is a key

MD SHAKIR RAHMANI 14565A0401 Page 8


SHCST Hyderabad

requirement, such as access control and point-of-sale. Serial communications interfaces ranging
from a USB 2.0 Full-speed device, multiple UARTs, SPI, SSP to I2C-bus and on-chip SRAM of
8 kB up to 40 kB, make these devices very well suited for communication gateways and protocol
converters, soft modems, voice recognition and low end imaging, providing both large buffer
size and high processing power. Various 32-bit timers, single or dual 10-bit ADC(s), 10-bit
DAC, PWM channels and 45 fast GPIO lines with up to nine edge or level sensitive external
interrupt pins make these microcontrollers suitable for industrial control and medical systems.

2.1.2. ARM LPC 2148 Introduction:

The ASK 16/32-bit ARM7TDMI-S microcontroller Training board is specifically designed


to help students to master the required skills in the area of embedded systems. The kit is designed
in such way that all the possible features of the microcontroller will be easily used by the
students. The kit supports in system programming (ISP) which is done through serial port. ASK
Board has new and advance options which will give user the liberty of implementing complex
logic used in the design of Embedded Systems. The development experience on the ASK Board
will posed an opportunity to excel in the field of Embedded Systems.

2.2. ASK ARM Project KIT (LPC 2148)


Board Features :

 Processor: LPC2148

 2xSerial ports(One for ISP and other for Serial Communication)

 12.00 MHz crystal

 On board Reset Circuit with a switch.

 Dual Power supply (either through USB or using external power adapter).

 Power on LED supply.

 Three on-board voltage regulators 1.8V, 3.3V and 5V with up to 800mA current

MD SHAKIR RAHMANI 14565A0401 Page 9


SHCST Hyderabad

 Extension headers for μC ports.

 Graphic LDC display interfacing port.

 USB Ports.

 CAN controller Interfacing.

 MMC/SD card interfacing.

 8 Bit LED interfacing.

 EEPROM Interfacing.

 On board UART.

LPC2148 Chip Features:

 16-bit/32-bit ARM7TDMI-S microcontroller in a tiny LQFP64 package.

 8 kB to 40 kB of on-chip static RAM and 32 kB to 512 kB of on-chip flash memory.

 128-bit wide interface/accelerator enables high-speed 60 MHz operation.

 In-System Programming/In-Application Programming (ISP/IAP) via on-chip boot loader


software. Single flash sector or full chip erase in 400 ms and programming 256 bytes in
1 ms.

 Embedded ICE RT and Embedded Trace interfaces offer real-time debugging with the
on-chip Real Monitor software and high-speed tracing of instruction execution.

 USB 2.0 Full-speed compliant device controller with 2 kB of endpoint RAM.

 Single 10-bit DAC provides variable analog output (LPC2142/44/46/48 only).

 Two 32-bit timers/external event counters (with four capture and four compare channels
each), PWM unit (six outputs) and watchdog.

MD SHAKIR RAHMANI 14565A0401 Page 10


SHCST Hyderabad

 Low power Real-Time Clock (RTC) with independent power and 32 kHz clock input.

 Multiple serial interfaces including two UARTs (16C550), two Fast I2C-bus (400 kbit/s),

 SPI and SSP with buffering and variable data length capabilities.

2.2.1. Brief history of ARM:


• ARM is short for Advanced Risc Machines Ltd.

• Founded 1990, owned by Acorn, Apple and VLSI

• Known before becoming ARM as computer manufacture Acorn which developed a 32-bit
RISC processor for it‘s own use (used in Acorn Archimedes)

Why ARM here:

• ARM is one of the most licensed and thus widespread processor cores in the world

• Used especially in portable devices due to low power consumption and reasonable
performance (MIPS / watt)

• Several interesting extensions available or in development like Thumb instruction set and
Jazelle Java machine

ARM:

• Processor cores: ARM6, ARM7, ARM9, ARM10, ARM11

• Extensions: Thumb, El Segundo, Jazelle etc.

• IP-blocks: UART, GPIO, memory controllers, etc

MD SHAKIR RAHMANI 14565A0401 Page 11


SHCST Hyderabad

2.3. ARM architecture:


• ARM:

• 32-bit RISC-processor core (32-bit instructions)

• 37 pieces of 32-bit integer registers (16 available)

• Pipelined (ARM7: 3 stages)

• Cached (depending on the implementation)

• Von Neuman-type bus structure (ARM7), Harvard (ARM9)

• 8 / 16 / 32 -bit data types

• 7 modes of operation (usr, fiq, irq, svc, abt, sys, und)

• Simple structure -> reasonably good speed / power

• consumption ratio

2.3.1 ARM as a standard component:

• Even tough ARM is mostly used as a processor core in SoC and other ASICs have some
manufacturers brought ARM based standard products to market

MD SHAKIR RAHMANI 14565A0401 Page 12


SHCST Hyderabad

• Examples of manufacturers: Atmel, Cirrus Logic, Hyundai, Intel, Oki, Samsung, Sharp •
Most of the products are based on 7TDMI-core, some to 720Tand 920T-cores

• ARM + FPGA: Altera and Triscend

• In addition, there are a number of ASSP (Application Specific Standard Product) -chips
available for example to communication applications (Philips VWS22100 = ARM7 based
GSM baseband chip).

2.3.2. Key features

 16-bit/32-bit ARM7TDMI-S microcontroller in a tiny LQFP64 package.


 8 kB to 40 kB of on-chip static RAM and 32 kB to 512 kB of on-chip flash memory.
 128-bit wide interface/accelerator enables high-speed 60 MHz operation.

MD SHAKIR RAHMANI 14565A0401 Page 13


SHCST Hyderabad

 In-System Programming/In-Application Programming (ISP/IAP) via on-chip boot loader


software. Single flash sector or full chip erase in 400 ms and programming of 256 bytes
in 1 ms.
 Embedded ICE RT and Embedded Trace interfaces offer real-time debugging with the
on-chip Real Monitor software and high-speed tracing of instruction execution.
 USB 2.0 Full-speed compliant device controller with 2 KB of endpoint RAM. In
addition, the LPC2146/48 provides 8 KB of on-chip RAM accessible to USB by DMA.
 One or two (LPC2141/42 vs. LPC2144/46/48) 10-bit ADCs provide a total of 6/14 analog
inputs, with conversion times as low as 2.44 μs per channel.
 Single 10-bit DAC provides variable analog output (LPC2142/44/46/48 only).
 Two 32-bit timers/external event counters (with four capture and four compare channels
each), PWM unit (six outputs) and watchdog.
 Low power Real-Time Clock (RTC) with independent power and 32 kHz clock input
Multiple serial interfaces including two UARTs (16C550), two Fast I2C-bus (400
Kbit/s),SPI and SSP with buffering and variable data length capabilities.
 Vectored Interrupt Controller (VIC) with configurable priorities and vector addresses.
 Up to 45 of 5 V tolerant fast general purpose I/O pins in a tiny LQFP64 package.
 Up to 21 external interrupt pins available.
 60 MHz maximum CPU clock available from programmable on-chip PLL with settling
time of 100 μs.
 On-chip integrated oscillator operates with an external crystal from 1 MHz to 25 MHz
 Power saving modes include Idle and Power-down.
 Individual enable/disable of peripheral functions as well as peripheral clock scaling for additional
power optimization.
 Processor wake-up from Power-down mode via external interrupt or BOD.
 Single power supply chip with POR and BOD circuits: CPU operating voltage range of
3.0 V to 3.6 V (3.3 V ± 10 %) with 5 V tolerant I/O pads.

MD SHAKIR RAHMANI 14565A0401 Page 14


SHCST Hyderabad

2.3.3. block diagram of LPC2148

Fig : Block diagram


1) Pins shared with GPIO
2) LPC2144/46/48 only
3) USB DMA controller with 8KBof Ram accessible as general purpose RAmand/or DMA
available in LPC2146/48 only.
4) LPC21422/44/46/48 only

MD SHAKIR RAHMANI 14565A0401 Page 15


SHCST Hyderabad

2.3.4. Pin description

Fig : pin diagram

MD SHAKIR RAHMANI 14565A0401 Page 16


SHCST Hyderabad

pin description is given in the following table below

MD SHAKIR RAHMANI 14565A0401 Page 17


SHCST Hyderabad

MD SHAKIR RAHMANI 14565A0401 Page 18


SHCST Hyderabad

MD SHAKIR RAHMANI 14565A0401 Page 19


SHCST Hyderabad

Table pin description

2.3.5. Functional description


Architectural overview

The ARM7TDMI-S is a general purpose 32-bit microprocessor, which offers high


performance and very low power consumption. The ARM architecture is based on Reduced
Instruction Set Computer (RISC) principles, and the instruction set and related decode
mechanism are much simpler than those of micro programmed Complex Instruction Set
Computers (CISC). This simplicity results in a high instruction throughput and impressive real-

MD SHAKIR RAHMANI 14565A0401 Page 20


SHCST Hyderabad

time interrupt response from a small and cost-effective processor core. Pipeline techniques are
employed so that all parts of the processing and memory systems can operate continuously.
Typically, while one instruction is being executed, its successor is being decoded, and a third
instruction is being fetched from memory. The ARM7TDMI-S processor also employs a unique
architectural strategy known as Thumb, which makes it ideally suited to high-volume
applications with memory restrictions, or applications where code density is an issue.The key
idea behind Thumb is that of a super-reduced instruction set. Essentially, the ARM7TDMI-S
processor has two instruction sets:
• The standard 32-bit ARM set.
• A 16-bit Thumb set.
The Thumb set‘s 16-bit instruction length allows it to approach twice the density of
standard ARM code while retaining most of the ARM‘s performance advantage over a
traditional 16-bit processor using 16-bit registers. This is possible because Thumb code operates
on the same 32-bit register set as ARM code. Thumb code is able to provide up to 65 % of the
code size of ARM, and 160 % of the performance of an equivalent ARM processor connected to
a 16-bit memory system.The particular flash implementation in the LPC2141/42/44/46/48 allows
for full speed execution also in ARM mode. It is recommended to program performance critical
and short code sections (such as interrupt service routines and DSP algorithms) in ARM mode.
The impact on the overall code size will be minimal but the speed can be increased by 30% over
Thumb mode.
2.3.6. On-chip flash program memory
The LPC2148 incorporate a 512 KB flash memory system respectively. This memory
may be used for both code and data storage. Programming of the flash memory may be
accomplished in several ways. It may be programmed In System via the serial port. The
application program may also erase and/or program the flash while the application is running,
allowing a great degree of flexibility for data storage field firmware upgrades, etc. Due to the
architectural solution chosen for an on-chip boot loader, flash memory available for user‘s code
on LPC2141/42/44/46/48 is 32 kB, 64 KB, 128 KB, 256 KB and 500 KB respectively. The
LPC2141/42/44/46/48 flash memory provides a minimum of 100,000 erase/write cycles and 20
years of data-retention.

MD SHAKIR RAHMANI 14565A0401 Page 21


SHCST Hyderabad

2.3.7. On-chip static RAM


On-chip static RAM may be used for code and/or data storage. The SRAM may be
accessed as 8-bit, 16-bit, and 32-bit. The LPC2141, LPC2142/44 and LPC2146/48 provide 8 KB,
16 KB and 32 KB of static RAM respectively. In case of LPC2146/48 only, an 8 KB SRAM
block intended to be utilized mainly by the USB can also be used as a general purpose RAM for
data storage and code storage and execution.
2.3.8. Memory map
The LPC2141/42/44/46/48 memory map incorporates several distinct regions, as shown
in Figure In addition, the CPU interrupt vectors may be remapped to allow them to reside in
either flash memory (the default) or on-chip static RAM. Memory mapping table is shown in the
table 4.1

Table: memory map table

MD SHAKIR RAHMANI 14565A0401 Page 22


SHCST Hyderabad

2.4. 10-bit ADC


The LPC2141/42 contain one and the LPC2144/46/48 contain two analog to digital
converters. These converters are single 10-bit successive approximation analog to digital
converters. While ADC0 has six channels, ADC1 has eight channels. Therefore, total number of
available ADC inputs for LPC2141/42 is 6 and for LPC2144/46/48 is 14.

Features
• Measurement range of 0 V to VREF (2.0 V ≤ VREF ≤ VDDA).
• Each converter capable of performing more than 400,000 10-bit samples per second.
• Every analog input has a dedicated result register to reduce interrupt overhead.
• Burst conversion mode for single or multiple inputs.

2.5. 10-bit DAC


The DAC enables the LPC2141/42/44/46/48 to generate a variable analog output. The
maximum DAC output voltage is the VREF voltage.

Features
• 10-bit DAC.
• Buffered output.
• Power-down mode available.
• Selectable speed versus power.

2.6. USB 2.0 device controller


The USB is a 4-wire serial bus that supports communication between a host and a
number (127 max) of peripherals. The host controller allocates the USB bandwidth to attached
devices through a token based protocol. The bus supports hot plugging, unplugging, and dynamic
configuration of the devices. All transactions are initiated by the host controller. The
LPC2141/42/44/46/48 is equipped with a USB device controller that enables 12 Mbit/s data
exchange with a USB host controller. It consists of a register interface, serial interface engine,
endpoint buffer memory and DMA controller. The serial interface engine decodes the USB data

MD SHAKIR RAHMANI 14565A0401 Page 23


SHCST Hyderabad

stream and writes data to the appropriate end point buffer memory. The status of a completed
USB transfer or error condition is indicated via status registers. An interrupt is also generated if
enabled. A DMA controller (available in LPC2146/48 only) can transfer data between an
endpoint buffer and the USB RAM.
Features
• Fully compliant with USB 2.0 Full-speed specification.
• Supports 32 physical (16 logical) endpoints.
• Supports control, bulk, interrupt and isochronous endpoints.
• Scalable realization of endpoints at run time.
• Endpoint maximum packet size selection (up to USB maximum specification) by software at
run time.
• RAM message buffer size based on endpoint realization and maximum packet size.
• Supports SoftConnect and GoodLink LED indicator. These two functions are sharing one pin.
• Supports bus-powered capability with low suspend current.
• Supports DMA transfer on all non-control endpoints (LPC2146/48 only).
• One duplex DMA channel serves all endpoints (LPC2146/48 only).
• Allows dynamic switching between CPU controlled and DMA modes (only in LPC2146/48).
• Double buffer implementation for bulk and isochronous endpoints.

2.7. UARTs
The LPC2141/42/44/46/48 each contain two UARTs. In addition to standard transmit and
receive data lines, the LPC2144/46/48 UART1 also provide a full modem control handshake
interface. Compared to previous LPC2000 microcontrollers, UARTs in LPC2141/42/44/46/48
introduce a fractional baud rate generator for both UARTs, enabling these microcontrollers to
achieve standard baud rates such as 115200 with any crystal frequency above 2 MHz In addition,
auto-CTS/RTS flow-control functions are fully implemented in hardware (UART1 in
LPC2144/46/48 only).
Features
• 16 byte Receive and Transmit FIFOs.
• Register locations conform to ‗550 industry standard.
• Receiver FIFO trigger points at 1, 4, 8, and 14 bytes

MD SHAKIR RAHMANI 14565A0401 Page 24


SHCST Hyderabad

• Built-in fractional baud rate generator covering wide range of baud rates without a need for
external crystals of particular values.
• Transmission FIFO control enables implementation of software (XON/XOFF) flow control on
both UARTs.
• LPC2144/46/48 UART1 equipped with standard modem interface signals. This module also
provides full support for hardware flow control (auto-CTS/RTS).

2.7.1. Universal Asynchronous Receiver/Transmitter 0 (UART0)


Features
• 16 byte Receive and Transmit FIFOs
• Register locations conform to ‗550 industry standard.
• Receiver FIFO trigger points at 1, 4, 8, and 14 bytes.
• Built-in fractional baud rate generator with autobauding capabilities.
• Mechanism that enables software and hardware flow control implementation.

Table 4.3 gives UART Pin description in controller

Table: pin description of UART in controller

Register description
UART0 contains registers organized as shown in Table 4.4. The Divisor Latch Access
Bit (DLAB) is contained in U0LCR[7] and enables access to the Divisor Latches.

MD SHAKIR RAHMANI 14565A0401 Page 25


SHCST Hyderabad

table 4.3: register organization of UART0

2.7.2. UART0 Receiver Buffer Register (U0RBR - 0xE000 C000, when DLAB = 0, Read
Only)
The U0RBR is the top byte of the UART0 Rx FIFO. The top byte of the Rx FIFO
contains the oldest character received and can be read via the bus interface. The LSB (bit 0)
represents the ―oldest‖ received data bit. If the character received is less than 8 bits, the unused
MSBs are padded with zeroes. The Divisor Latch Access Bit (DLAB) in U0LCR must be zero in
order to access the U0RBR. The U0RBR is always Read Only. Since PE, FE and BI bits
correspond to the byte sitting on the top of the RBR FIFO (i.e. the one that will be read in the
next read from the RBR), the right approach for fetching the valid pair of received byte and its
status bits is first to read the content of the U0LSR register, and then to read a byte from the
U0RBR.
UART0 Receiver Buffer Register (U0RBR - address 0xE000 C000, when DLAB = 0,
Read Only) bit description

MD SHAKIR RAHMANI 14565A0401 Page 26


SHCST Hyderabad

UART0 Transmit Holding Register (U0THR - 0xE000 C000, when DLAB = 0, Write
Only) The U0THR is the top byte of the UART0 TX FIFO. The top byte is the newest character
in the TX FIFO and can be written via the bus interface. The LSB represents the first bit to
transmit.
The Divisor Latch Access Bit (DLAB) in U0LCR must be zero in order to access the U0THR.
The U0THR is always Write Only.
UART0 Transmit Holding Register (U0THR - address 0xE000 C000, when
DLAB = 0, Write Only) bit description

UART0 Divisor Latch Registers (U0DLL - 0xE000 C000 and U0DLM -C004, when
DLAB = 1)
The UART0 Divisor Latch is part of the UART0 Fractional Baud Rate Generator and
holds the value used to divide the clock supplied by the fractional prescaler in order to produce
the baud rate clock, which must be 16x the desired baud rate (Equation 1). The U0DLL and
U0DLM registers together form a 16 bit divisor where U0DLL contains the lower 8 bits of the
divisor and U0DLM contains the higher 8 bits of the divisor. A 0x0000 value is treated like a
0x0001 value as division by zero is not allowed.The Divisor Latch Access Bit (DLAB) in
U0LCR must be one in order to access the UART0 Divisor Latches.

2.7.3. UART0 Transmit Enable Register (U0TER - 0xE000 C030)


LPC2141/2/4/6/8‘s U0TER enables implementation of software flow control. When
TXEn=1, UART0 transmitter will keep sending data as long as they are available. As soon as
TXEn becomes 0, UART0 transmission will stop.Table describes how to use TXEn bit in order
to achieve software flow control.

MD SHAKIR RAHMANI 14565A0401 Page 27


SHCST Hyderabad

2.8. Architecture
The architecture of the UART0 is shown below in the block diagram 4.3. The VPB
interface provides a communications link between the CPU or host and the UART0. The UART0
receiver block, U0RX, monitors the serial input line, RXD0, for valid input. The UART0 RX
Shift Register (U0RSR) accepts valid characters via RXD0. After a valid character is assembled
in the U0RSR, it is passed to the UART0 RX Buffer Register FIFO to await access by the CPU
or host via the generic host interface. The UART0 transmitter block, U0TX, accepts data written
by the CPU or host and buffers the data in the UART0 TX Holding Register FIFO (U0THR).
The UART0 TX Shift Register (U0TSR) reads the data stored in the U0THR and assembles the
data to transmit via the serial output pin, TXD0. The UART0 Baud Rate Generator block,
U0BRG, generates the timing enables used by the UART0 TX block. The U0BRG clock input
source is the VPB clock (PCLK). The main clock is divided down per the divisor specified in the
U0DLL and U0DLM registers. This divided down clock is a 16x oversample clock,
NBAUDOUT. The interrupt interface contains registers U0IER and U0IIR. The interrupt
interface receives several one clock wide enables from the U0TX and U0RX blocks. Status
information from the U0TX and U0RX is stored in the U0LSR. Control information for the
U0TX and U0RX is stored in the U0LCR.

MD SHAKIR RAHMANI 14565A0401 Page 28


SHCST Hyderabad

Fig : Architecture of UART

MD SHAKIR RAHMANI 14565A0401 Page 29


SHCST Hyderabad

CHAPTER 3
Hardware Implementation of the Project

This chapter briefly explains about the Hardware Implementation of the project. It
discusses the design and working of the design with the help of block diagram and circuit
diagram and explanation of circuit diagram in detail. It explains the features, timer programming,
serial communication, interrupts of Lpc 2148 microcontroller. It also explains the various
modules used in this project.

3.1 Project Design


The implementation of the project design can be divided in two parts.
3. Hardware implementation
4. Firmware implementation
Hardware implementation deals in drawing the schematic on the plane paper according to
the application, testing the schematic design over the breadboard using the various IC‘s to find if
the design meets the objective, carrying out the PCB layout of the schematic tested on
breadboard, finally preparing the board and testing the designed hardware.
The firmware part deals in programming the microcontroller so that it can control the
operation of the IC‘s used in the implementation. In the present work, we have used the Orcad
design software for PCB circuit design, the Keil µv3 software development tool to write and
compile the source code, which has been written in the C language. The Flash maic programmer
has been used to write this compile code into the microcontroller. The firmware implementation
is explained in the next chapter.
The project design and principle are explained in this chapter using the block diagram
and circuit diagram. The block diagram discusses about the required components of the design
and working condition is explained using circuit diagram and system wiring diagram.

MD SHAKIR RAHMANI 14565A0401 Page 30


SHCST Hyderabad

3.2 Block Diagram of the Project and its Description


The block diagram of the project is as shown in the figure 3.1

Power
Supply
Finger
Print
Module
16 X 2 LCD

MAX 232 ARM 7TDMI


EEPROM
LPC2148

Crystal
Oscillator Switches

Fig 3.1 : block diagram


Brief explanation of functioning of each block of the system is given below the detailed
is given in next chapters

3.3 Power Supply:


The input to the circuit is applied from the regulated power supply. The a.c. input i.e.,
230V from the mains supply is step down by the transformer to 12V and is fed to a rectifier. The
output obtained from the rectifier is a pulsating d.c voltage. So in order to get a pure d.c voltage,
the output voltage from the rectifier is fed to a filter to remove any a.c components present even
after rectification. Now, this voltage is given to a voltage regulator to obtain a pure constant dc
voltage. The block diagram of regulated power supply is shown in the figure 3.2

MD SHAKIR RAHMANI 14565A0401 Page 31


SHCST Hyderabad

Fig 3.2 components of power supply


3.3.1 Transformer:
Usually, DC voltages are required to operate various electronic equipment and these
voltages are 5V, 9V or 12V. But these voltages cannot be obtained directly. Thus the a.c input
available at the mains supply i.e., 230V is to be brought down to the required voltage level. This
is done by a transformer. Thus, a step down transformer is employed to decrease the voltage to a
required level.
3.3.2 Rectifier:
The output from the transformer is fed to the rectifier. It converts A.C. into pulsating
D.C. The rectifier may be a half wave or a full wave rectifier. In this project, a bridge rectifier is
used because of its merits like good stability and full wave rectification.

3.3.3 Filter:
Capacitive filter is used in this project. It removes the ripples from the output of rectifier
and smoothens the D.C. Output received from this filter is constant until the mains voltage and
load is maintained constant. However, if either of the two is varied, D.C. voltage received at this
point changes. Therefore a regulator is applied at the output stage.

MD SHAKIR RAHMANI 14565A0401 Page 32


SHCST Hyderabad

3.3.4 Voltage regulator:


As the name itself implies, it regulates the input applied to it. A voltage regulator is an
electrical regulator designed to automatically maintain a constant voltage level. In this project,
power supply of 5V and 12V are required. In order to obtain these voltage levels, 7805 and 7812
voltage regulators are to be used. The first number 78 represents positive supply and the numbers
05, 12 represent the required output voltage levels

3.4 LPC2148:
LPC2148 arm processor is used for controlling. ARM processor is used because of its
extra features when compared to microcontroller. It controls LCD and finger print module. It
receives input commands from switches and control finger print module when to receive the
data, performs comparison , gives command to LCD to display messages to direct the users to
use it properly and also displays the results.

3.5 Finger Print Module :


Finger print module is an input device used for Fingerprint processing which includes
two parts: fingerprint enrollment and fingerprint matching (the matching can be 1:1 or 1:N).
When enrolling, user needs to enter the finger two times. The system will process the two time
finger images, generate a template of the finger based on processing results and store the
template. When matching, user enters the finger through optical sensor and system will generate
a template of the finger and compare it with templates of the finger library. For 1:1 matching,
system will compare the live finger with specific template designated in the Module; for 1:N
matching, or searching, system will search the whole finger library for the matching finger. In
both circumstances, system will return the matching result, success or failure.

3.6 LCD display and Switches:


Switches here function as inputs that gives command to the controller what to do and
LCD display as output that directs the users how to use the module and also to display the final
results.

MD SHAKIR RAHMANI 14565A0401 Page 33


SHCST Hyderabad

The firmware programmed in LPC2148 is designed to communicate with Finger print


and operates according the commands received from the Switches. Therefore, after Receiving
the Data from Finger print and processing and validating, It takes the data from switches and
comparing with the data base and updating the data base and display the command and display
the result with respect to the switch operations.

The switches are used to activate the controller for registration during enrollment, for
comparisons to the database while identifying the user, for selecting the party while casting the
vote, finally for display of results.
LCD screen functions as interface between the user and microcontroller, which displays
messages that facilitates the user to know when to register and when to vote, and also whether
their vote is valid are not.
It displays ―welcome‖ messages initially and ―enrolling‖ message during enrollment,
―identifying‖ message when controller is comparing the data base whether the user is valid are
not, if valid displays ―please vote‖ message, if not displays ―no access‖ message, and finally
displays the result with party name with their respective number of votes.
3.7. LIQUID CRYSTAL DISPLAY (LCD):
LCD stands for Liquid Crystal Display. LCD is finding wide spread use replacing LEDs
(seven segment LEDs or other multi segment LEDs) because of the following reasons:
1. The declining prices of LCDs.
2. The ability to display numbers, characters and graphics. This is in contrast to LEDs,
which are limited to numbers and a few characters.
3. Incorporation of a refreshing controller into the LCD, thereby relieving the CPU of the
task of refreshing the LCD. In contrast, the LED must be refreshed by the CPU to keep
displaying the data.
4. Ease of programming for characters and graphics.

These components are ―specialized‖ for being used with the microcontrollers, which means
that they cannot be activated by standard IC circuits. They are used for writing different
messages on a miniature LCD.

MD SHAKIR RAHMANI 14565A0401 Page 34


SHCST Hyderabad

Fig 6.3 LCD display


A model as shown in figure 6.3 here is for its low price and great possibilities most
frequently used in practice. It is based on the HD44780 microcontroller (Hitachi) and can display
messages in two lines with 16 characters each. It displays all the alphabets, Greek letters,
punctuation marks, mathematical symbols etc. In addition, it is possible to display symbols that
user makes up on its own. Automatic shifting message on display (shift left and right),
appearance of the pointer, backlight etc. are considered as useful characteristics.

3.7.1 Pins Functions


There are pins along one side of the small printed board used for connection to the
microcontroller. There are total of 14 pins marked with numbers (16 in case the background light
is built in). Their function is described in the table 6.1 below:

Pin Logic
Function Name Description
Number State

Ground 1 Vss - 0V

Power supply 2 Vdd - +5V

Contrast 3 Vee - 0 – Vdd

D0 – D7 are interpreted as
0
Control of 4 RS commands
1
operating D0 – D7 are interpreted as data

5 R/W 0 Write data (from controller to

MD SHAKIR RAHMANI 14565A0401 Page 35


SHCST Hyderabad

1 LCD)
Read data (from LCD to
controller)

0 Access to LCD disabled


1 Normal operating
6 E
From 1 to Data/commands are transferred
0 to LCD

7 D0 0/1 Bit 0 LSB

8 D1 0/1 Bit 1

9 D2 0/1 Bit 2

10 D3 0/1 Bit 3
Data / commands
11 D4 0/1 Bit 4

12 D5 0/1 Bit 5

13 D6 0/1 Bit 6

14 D7 0/1 Bit 7 MSB


Table 6.1 pin description of LCD

3.8 LCD screen:


LCD screen consists of two lines with 16 characters each. Each character consists of 5x7
dot matrix. Contrast on display depends on the power supply voltage and whether messages are
displayed in one or two lines. For that reason, variable voltage 0-Vdd is applied on pin marked as
Vee. Trimmer potentiometer is usually used for that purpose the connections are as shown in
figure 6.4. Some versions of displays have built in backlight (blue or green diodes). When used
during operating, a resistor for current limitation should be used (like with any LE diode).

MD SHAKIR RAHMANI 14565A0401 Page 36


SHCST Hyderabad

Fig 6.4:power supply connection to LCD


3.8.1 LCD Basic Commands
All data transferred to LCD through outputs D0-D7 will be interpreted as commands or as
data, which depends on logic state on pin RS:
 RS = 1 - Bits D0 - D7 are addresses of characters that should be displayed. Built in
processor addresses built in ―map of characters‖ and displays corresponding symbols.
Displaying position is determined by DDRAM address. This address is either previously
defined or the address of previously transferred character is automatically incremented.
 RS = 0 - Bits D0 - D7 are commands which determine display mode. List of commands
which LCD recognizes are given in the table 6.2 below:

Command RS RW D7 D6 D5 D4 D3 D2 D1 D0 Execution Time

Clear display 0 0 0 0 0 0 0 0 0 1 1.64mS

Cursor home 0 0 0 0 0 0 0 0 1 x 1.64mS

Entry mode set 0 0 0 0 0 0 0 1 I/D S 40uS

Display on/off control 0 0 0 0 0 0 1 D U B 40uS

Cursor/Display Shift 0 0 0 0 0 1 D/C R/L X x 40uS

Function set 0 0 0 0 1 DL N F X x 40uS

Set CGRAM address 0 0 0 1 CGRAM address 40uS

Set DDRAM address 0 0 1 DDRAM address 40uS

MD SHAKIR RAHMANI 14565A0401 Page 37


SHCST Hyderabad

Read ―BUSY‖ flag (BF) 0 1 BF DDRAM address -

Write to CGRAM or DDRAM 1 0 D7 D6 D5 D4 D3 D2 D1 D0 40uS

Read from CGRAM or DDRAM 1 1 D7 D6 D5 D4 D3 D2 D1 D0 40uS

Function Value Operation


I/D 1 Increment by 1
0 Decrement by 1
S 1 Display shift on
0 Display shift off
D 1 Display on
0 Display off
U 1 Cursor on
0 Cursor off
B 1 Cursor blink on
0 Cursor blink off
R/L 1 Shift right
0 Shift left
DL 1 8-bit interface
0 4-bit interface
N 1 Display in two lines
0 Display in one line
F 1 Character format
5x10 dots
0 Character format
5x7 dots
D/C 1 Display shift
0 Cursor shift

Table 6.2: LCD command description


3.9. LCD Connection
Depending on how many lines are used for connection to the microcontroller, there are 8-
bit and 4-bit LCD modes. The appropriate mode is determined at the beginning of the process in
a phase called ―initialization‖. In the first case, the data are transferred through outputs D0-D7 as

MD SHAKIR RAHMANI 14565A0401 Page 38


SHCST Hyderabad

it has been already explained. In case of 4-bit LED mode, for the sake of saving valuable I/O
pins of the microcontroller, there are only 4 higher bits (D4-D7) used for communication, while
other may be left unconnected.

Consequently, each data is sent to LCD in two steps: four higher bits are sent first (that
normally would be sent through lines D4-D7), four lower bits are sent afterwards. With the help
of initialization, LCD will correctly connect and interpret each data received. Besides, with
regards to the fact that data are rarely read from LCD (data mainly are transferred from
microcontroller to LCD) one more I/O pin may be saved by simple connecting R/W pin to the
Ground. Even though message displaying will be normally performed, it will not be possible to
read from busy flag since it is not possible to read from display.
3.10. Switches and Pushbuttons

This is the simplest way of controlling appearance of some voltage on microcontroller‘s


input pin. There is also no need for additional explanation of how these components operate.

Fig 6.1 switch bounce patterns

This is about something commonly unnoticeable when using these components in


everyday life. It is about contact bounce, a common problem with mechanical switches as shown
in figure 6.1. If contact switching does not happen so quickly, several consecutive bounces can
be noticed prior to maintain stable state. The reasons for this are: vibrations, slight rough spots
and dirt. Anyway, this whole process does not last long (a few micro- or milliseconds), but long

MD SHAKIR RAHMANI 14565A0401 Page 39


SHCST Hyderabad

enough to be registered by the microcontroller. Concerning the pulse counter, error occurs in
almost 100% of cases.

Fig 6.2 Switch interfacing with microcontroller

The simplest solution is to connect simple RC circuit as shown in figure 6.2 which will
suppress each quick voltage change. Since the bouncing time is not defined, the values of
elements are not strictly determined. In the most cases, the values shown on figure are sufficient.

If complete safety is needed, radical measures should be taken. The circuit (RS flip-flop)
changes logic state on its output with the first pulse triggered by contact bounce. Even though
this is more expensive solution (SPDT switch), the problem is definitely resolved. Besides, since
the condensator is not used, very short pulses can be also registered in this way. In addition to
these hardware solutions, a simple software solution is also commonly applied. When a program
tests the state of some input pin and finds changes, the check should be done one more time after
certain time delay. If the change is confirmed, it means that switch (or pushbutton) has changed
its position. The advantages of such solution are: it is free of charge, effects of disturbances are
eliminated and it can be adjusted to the worst-quality contacts.

MD SHAKIR RAHMANI 14565A0401 Page 40


SHCST Hyderabad

3.11. Buzzer

Piezo Electric buzzers are Solid state devices that produce an Audible signal when

powered.

_ They are basically made up of piezo crystal.

_ The fundamental property of Piezo crystal states that when a voltage is applied to the

crystal in a particular plane. It enters into oscillations.

_ A simple oscillator circuit is used to make these signals audible.

Piezo electric buzzers operate right from 3V up to 24V DC. Similar to the LED drive, a transistor
driver is used for driving the load. The other advantage with this scheme is that the drive voltage
can be much higher than the operating voltage of the microcontroller.

A protection diode is included in all inductive load circuits to prevent the back emf from
damaging the driving transistor & subsequently the microcontroller.

MD SHAKIR RAHMANI 14565A0401 Page 41


SHCST Hyderabad

3.12. System wiring diagram and working procedure:


Wiring diagram of the project is as shown in the figure 3.3 below

Fig : wiring diagram

MD SHAKIR RAHMANI 14565A0401 Page 42


SHCST Hyderabad

Working procedure:
Voting machine using Finger print is basically an embedded system that makes the things
easy in the polling booths during the time of elections. The project Finger print technology and
Embedded systems to implement the application.

The user, who wants to poll his vote, has to submit the identity proof at the counter at the
polling booth. In this project, the necessary and, upto an extent, the sufficient material, the user
no need to carry with him is the Voter card.

Voter card is nothing but an Finger Print which stores the details of the person like the
name of the user, location of place, mobile number for contact etc. When the user is asked to
show his Finger print. The Finger print module reads the data present.

The working of our EVM an be explained in three modes


1.Enrolling mode
2.Identification and vote casting mode
3. Results
When the power of Ballot unit is turned on, the ballot unit awaits a ―READY SIGNAL‖
from controller. After getting ―READY SIGNAL‖, ballot unit displays its ―welcome to EVM‖
message on LCD indicating that the machine is ready and waits for user input. The mode of operation
depends on command given by the user from the switches.
3.12.1. Enrolling Mode
If enrolling mode command is given, the controller waits for input and activates the
scanner to accept the finger print, displaying ―Enrolling…‖on the LCD display . The candidate‘s
finger print is scanned and generates a unique characters code. During the character code
generation, ―GENRATING CHARACTER CODE…‖ is displayed on LCD. This unique code is
stored in the EEPROM memory of the controller for the future reference. After all enrollments
the system is ready for vote cast.

MD SHAKIR RAHMANI 14565A0401 Page 43


SHCST Hyderabad

3.13. Identification and vote casting mode

Before casting the vote the candidate has to check for validity .so after user pressing the
identify button the controller displays ―identifying ..― message. During this mode the fingerprint
of the candidate casting the vote is compared with the finger prints already enrolled in the
memory. If it is matched a message ―PLEASE VOTE……‖ will be displayed on LCD. Once the
voter presses the button corresponding to the candidate of her/his choice, a four-bit code is
generated and sent to the control unit. Once the casting is over message is displayed to whom
they voted for.‖No ACCESS..‖ message will be displayed if the same user tries to cast again.
The machine returns to the identifying mode and starts all over again for next voting.

3.14.. RESULTS MODE


The contestant name and the secured votes will be displayed on the LCD when the
controller receives results instruction through the switches.

MD SHAKIR RAHMANI 14565A0401 Page 44


SHCST Hyderabad

CHAPTER-4
R303A Series Fingerprint Identification Module

Fingerprint module‘s processing , shown in figure 5.1 includes two parts: fingerprint
enrollment and fingerprint matching (the matching can be 1:1 or 1:N). When enrolling, user
needs to enter the finger two times. The system will process the two time finger images, generate
a template of the finger based on processing results and store the template. When matching, user
enters the finger through optical sensor and system will generate a template of the finger and
compare it with templates of the finger library. For 1:1 matching, system will compare the live
finger with specific template designated in the Module; for 1:N matching, or searching, system
will search the whole finger library for the matching finger. In both circumstances, system will
return the matching result, success or failure.

Fig 5.1: photograph of finger print module

MD SHAKIR RAHMANI 14565A0401 Page 45


SHCST Hyderabad

The following table 5.1 gives the specifications of finger print module R303a

Table 5.1 Specifications of fingerprint module

4.1 Serial Communication(P1)


When the FP module communicates with user device, definition of J1 is as shown in the
table 5.2:

Table 5.2: pin description of FP

MD SHAKIR RAHMANI 14565A0401 Page 46


SHCST Hyderabad

4.2. Hardware connection and feature


Via serial interface, the Module may communicate with MCU of 3.3V or 5V power: TD
(pin 2 of P1) connects with RXD (receiving pin of MCU), RD (pin 3 of P1) connects with TXD
(transferring pin of MCU). Should the upper computer (PC) be in RS-232 mode, please add level
converting circuit, like MAX232, between the Module and PC. Serial communication protocol
The mode is semi duplex asynchronies serial communication. And the default baud rate is
57600bps. User may set the baud rate in 9600~115200bps Transferring frame format is 10 bit:
the low-level starting bit, 8-bit data with the LSB first, and an ending bit. There is no check bit.
Reset time
At power on, it takes about 500ms for initialization. During this period, the Module can‘t
accept commands for upper computer. Electrical parameter (All electrical level takes GND as
reference)

Power supply
The logic levels and their corresponding voltage levels are given in the table 5.3 below

MD SHAKIR RAHMANI 14565A0401 Page 47


SHCST Hyderabad

Table 5.3: logic levels and power supply specifications

IV System Resources
To address demands of different customer, Module system provides abundant resources
at user‘s use.
Notepad
The system sets aside a 512-bytes memory (16 pages* 32 bytes) for user‘s notepad,
where data requiring power-off protection can be stored. The host can access the page by
instructions of PS_WriteNotepad and PS_Read Notepad.
Note: when write on one page of the pad, the entire 32 bytes will be written in wholly
covering the original contents.
Buffer
There are an image buffer and two 512-byte-character-file buffer within the RAM space
of the module. Users can read & write any of the buffers by instructions.
Note: Contents of the above buffers will be lost at power-off.

MD SHAKIR RAHMANI 14565A0401 Page 48


SHCST Hyderabad

Image buffer
Image Buffer serves for image storage and the image format is 256*288 pixels. When
transferring through UART, to quicken speed, only the upper 4 bits of the pixel is transferred
(that is 16 grey degrees). And two adjacent pixels of the same row will form a byte before the
transferring. When uploaded to PC, the 16-grey-degree image will be extended to 256-grey-
degree format. That‘s 8-bit BMP format. When transferring through USB, the image is 8-bit
pixel, that‘s 256 grey degrees.
Character file buffer
Character file buffer, CharBuffer1, CharBuffer2, can be used to store both character file
and template file.

4.3 Fingerprint Library


System sets aside a certain space within Flash for fingerprint template storage, that‘s
fingerprint library. Contents of the library remain at power off. Capacity of the library changes
with the capacity of Flash, system will recognize the latter automatically. Fingerprint template‘s
storage in Flash is in sequential order. Assume the fingerprint capacity N, then the serial number
of template in library is 0, 1, 2, 3 … N. User can only access library by template number. System
Configuration Parameter To facilitate user‘s developing, Module opens part system parameters
for use. And the basic instructions are SetSysPara & ReadSysPara. Both instructions take
Parameter Number as parameter. When upper computer sends command to modify parameter,
Module first responses with original configurations, then performs the parameter modification
and writes configuration record into Flash. At the next startup, system will run with the new
configurations.

4.3.1 Baud rate control (Parameter Number: 4)


The Parameter controls the UART communication speed of the Module. Its value is an
integer N, N= [1, 12]. Corresponding baud rate is 9600*N bps
4.3.2 Security Level (Parameter Number: 5)
The Parameter controls the matching threshold value of fingerprint searching and
matching. Security level is divided into 5 grades, and corresponding value is 1, 2, 3, 4, 5. At

MD SHAKIR RAHMANI 14565A0401 Page 49


SHCST Hyderabad

level 1, FAR is the highest and FRR is the lowest; however at level 5, FAR is the lowest and
FRR is the highest.
4.3.3 Data package length (Parameter Number: 6)
The parameter decides the max length of the transferring data package when
communicating with upper computer. Its value is 0, 1, 2, 3, corresponding to 32 bytes, 64 bytes,
128 bytes, 256 bytes respectively.

4.4 System status register


System status register indicates the current operation status of the Module. Its length is 1
word, and can be read via instruction ReadSysPara. Definition of the register is as follows:

Note:
Busy:1 bit. 1: system is executing commands; 0: system is free;
Pass:1 bit. 1: find the matching finger; 0: wrong finger;
PWD:1 bit. 1: Verified device‘s handshaking password.
ImgBufStat:1 bit. 1: image buffer contains valid image.
4.4.1 Module password
At power-on reset, system first checks whether the handshaking password has been
modified. If not, system deems upper computer has no requirement of verifying password and
will enter into normal operation mode. That‘s, when Module password remains the default,
verifying process can be jumped. The password length is 4 bytes, and its default factory value is
0FFH, 0FFH, 0FFH, 0FFH. Should the password have be modified, refer to instruction SetPwd,
then Module (or device) handshaking password must be verified before the system enter into
normal operation mode. Or else, system will refuse to execute and command. The new modified
password is stored in Flash and remains at power off.
4.4.2 Module address:
Each module has an identifying address. When communicating with upper computer,
each instruction/data is transferred in data package form, which contains the address item.
Module system only responds to data package whose address item value is the same with its

MD SHAKIR RAHMANI 14565A0401 Page 50


SHCST Hyderabad

identifying address. The address length is 4 bytes, and its default factory value is 0xFFFFFFFF.
User may modify the address via instruction SetAdder. The new modified address remains at
power off.
Random number generator Module integrates a hardware 32-bit random number
generator (RNG) (without seed). Via instruction GetRandomCode, system will generate a
random number and upload it.

4.4.3 Module Instruction System


R303A series provide 23 instructions. Through combination of different
instructions, application program may realize muti finger authentication functions. All
commands/data are transferred in package format.

4.5 Communication Protocol


The protocol defines the data exchanging format when ZFM-20 series communicates
with upper computer. The protocol and instruction sets apples for both UART and USB
communication mode. For PC, USB interface is strongly recommended to improve the
exchanging speed, especially in fingerprint scanning device.
4.6. Data package format
When communicating, the transferring and receiving of command/data/result are all
wrapped in data package format.

MD SHAKIR RAHMANI 14565A0401 Page 51


SHCST Hyderabad

The new modified password is stored in Flash and remains at power off.

4.7. FINGER PRINT SCANNER:

Computerized fingerprint scanners have been a mainstay of spy thrillers for decades, but up
until recently, they were pretty exotic technology in the real world. In the past few years,
however, scanners have started popping up all over the place -- in police stations, high-security
buildings and even on PC keyboards. You can pick up a personal USB fingerprint scanner for
less than $100, and just like that, your computer's guarded by high-tech biometrics. Instead of, or
in addition to, a password, you need your distinctive print to gain access.

In this article, we'll examine the secrets behind this exciting development in law
enforcement and identity security. We'll also see how fingerprint scanner security systems stack
up to conventional password and identity card systems, and find out how they can fail.

MD SHAKIR RAHMANI 14565A0401 Page 52


SHCST Hyderabad

4.7.1. Fingerprint Basics

Fingerprints are one of those bizarre twists of nature. Human beings happen to have built-
in, easily accessible identity cards. You have a unique design, which represents you alone,
literally at your fingertips. How did this happen?

People have tiny ridges of skin on their fingers because this particular adaptation was extremely
advantageous to the ancestors of the human species. The pattern of ridges and "valleys" on
fingers make it easier for the hands to grip things, in the same way a rubber tread pattern helps a
tire grip the road.

The other function of fingerprints is a total coincidence. Like everything in the human body,
these ridges form through a combination of genetic and environmental factors. The genetic code
in DNA gives general orders on the way skin should form in a developing fetus, but the specific
way it forms is a result of random events. The exact position of the fetus in the womb at a
particular moment and the exact composition and density of surrounding amniotic fluid decides
how every individual ridge will form.

MD SHAKIR RAHMANI 14565A0401 Page 53


SHCST Hyderabad

So, in addition to the countless things that go into deciding your genetic make-up in the first
place, there are innumerable environmental factors influencing the formation of the fingers. Just
like the weather conditions that form clouds or the coastline of a beach, the entire development
process is so chaotic that, in the entire course of human history, there is virtually no chance of
the same exact pattern forming twice.

Consequently, fingerprints are a unique marker for a person, even an identical twin. And while
two prints may look basically the same at a glance, a trained investigator or an advanced piece of
software can pick out clear, defined differences.

This is the basic idea of fingerprint analysis, in both crime investigation and security. A
fingerprint scanner's job is to take the place of a human analyst by collecting a print sample and
comparing it to other samples on record.

A fingerprint scanner system has two basic jobs it needs to get an image of your finger, and it
needs to determine whether the pattern of ridges and valleys in this image matches the pattern of
ridges and valleys in pre-scanned images.

There are a number of different ways to get an image of somebody's finger. The most common
methods today are optical scanning and capacitance scanning. Both types come up with the
same sort of image, but they go about it in completely different ways.

The heart of an optical scanner is a charge coupled device (CCD), the same light sensor system
used in digital cameras and camcorders. A CCD is simply an array of light-sensitive diodes
called photosites, which generate an electrical signal in response to light photons. Each photosite
records a pixel, a tiny dot representing the light that hit that spot. Collectively, the light and dark
pixels form an image of the scanned scene (a finger, for example). Typically, an analog-to-digital
converter in the scanner system processes the analog electrical signal to generate a digital
representation of this image. See How Digital Cameras Work for details on CCDs and digital
conversion.

MD SHAKIR RAHMANI 14565A0401 Page 54


SHCST Hyderabad

The scanning process starts when you place your finger on a glass plate, and a CCD camera takes
a picture. The scanner has its own light source, typically an array of light-emitting diodes, to
illuminate the ridges of the finger. The CCD system actually generates an inverted image of the
finger, with darker areas representing more reflected light (the ridges of the finger) and lighter
areas representing less reflected light (the valleys between the ridges).

4.7.2. Finger print identification:

Fingerprint identification is one of the most important biometric technologies which have
drawn a substantial amount of attention recently. A fingerprint is the pattern of ridges and valleys
(also called furrows in the fingerprint literature) on the surface of a fingertip. Each individual has
unique fingerprints. The uniqueness of a fingerprint is exclusively determined by the local ridge
characteristics and their relationships. A total of 150 different local ridge characteristics (islands,
short ridges, enclosure, etc.) have been identified. These local ridge characteristics are not evenly
distributed. Most of them depend heavily on the impression conditions and quality of fingerprints
and are rarely observed in fingerprints. The two most prominent local ridge characteristics,
called minutiae, are

1. Ridge ending.

2. Ridge bifurcation.

A ridge ending is defined as the point where a ridge ends abruptly. A ridge bifurcation is
defined as the point where a ridge forks or diverges into branch ridges. A good quality
fingerprint typically contains about 40 to 100 minutiae. Examples of minutiae are shown in the
following Figure.

MD SHAKIR RAHMANI 14565A0401 Page 55


SHCST Hyderabad

Examples of minutiae. (a) A minutiae can be characterized by its

position and its orientation. (b) Minutiae overlaid on a fingerprint Image.

Automatic fingerprint matching depends on the comparison of these local ridge


characteristics and their relationships to make a personal identification. A critical step in
fingerprint matching is to automatically and reliably extract minutiae from the input fingerprint
images, which is a difficult task. The performance of a minutiae extraction algorithm relies
heavily on the quality of the input fingerprint images.

In an ideal fingerprint image, ridges and valleys alternate and flow in a locally constant
direction and minutiae are anomalies of ridges, i.e., ridge endings and ridge bifurcations. In such
situations, the ridges can be easily detected and minutiae can be precisely located from the
thinned ridges. Fig. 1 shows an example of good quality live scan fingerprint image. However, in
practice, due to variations in impression conditions, ridge configuration, skin conditions
(aberrant formations of epidermal ridges of fingerprints, postnatal marks, occupational marks),
acquisition devices, and non cooperative attitude of subjects, etc., a significant percentage of

MD SHAKIR RAHMANI 14565A0401 Page 56


SHCST Hyderabad

acquired fingerprint images (approximately 10 percent) is of poor quality. The ridge structures in
poor-quality fingerprint images are not always well-defined and, hence, they cannot be correctly
detected. This leads to following problems:

1. a significant number of spurious minutiae may be created.

2. A large percent of genuine minutiae may be ignored.

3. Large errors in their localization (position and orientation) may be introduced.

In order to ensure that the performance of the minutiae extraction algorithm will be
robust with respect to the quality of input fingerprint images, an enhancement algorithm which
can improve the clarity of the ridge structures is necessary. A fingerprint expert is often able to
correctly identify the minutiae by using various visual clues such as local ridge orientation, ridge
continuity, ridge tendency, etc., as long as the ridge and valley structures are not corrupted
completely. It is possible to develop an enhancement algorithm that exploits these visual clues to
improve the clarity of ridge structures in corrupted fingerprint images.

Before comparing the print to stored data, the scanner processor makes sure the CCD has
captured a clear image. It checks the average pixel darkness, or the overall values in a small
sample, and rejects the scan if the overall image is too dark or too light. If the image is rejected,
the scanner adjusts the exposure time to let in more or less light, and then tries the scan again.

If the darkness level is adequate, the scanner system goes on to check the image
definition (how sharp the fingerprint scan is). The processor looks at several straight lines
moving horizontally and vertically across the image. If the fingerprint image has good definition,
a line running perpendicular to the ridges will be made up of alternating sections of very dark
pixels and very light pixels.

If the processor finds that the image is crisp and properly exposed, it proceeds to
comparing the captured fingerprint with fingerprints on file. We'll look at this process in a
minute, but first we'll examine the other major scanning technology, the capacitive scanner.

MD SHAKIR RAHMANI 14565A0401 Page 57


SHCST Hyderabad

4.8. Polling unit:

Polling unit improves the voting process for both electors and administrative authorities at all
levels by providing an innovative infrastructure for supporting remote voting based on leading-
edge technology.

Using E-Poll, constituents can vote wherever they may be on Election Day. With the new model,
the concept of a district associated with an electoral register is replaced by a network allowing
delocalization of the booths. E-Poll aims to bridge the gap between the availability of leading-
edge technology and the practical possibility of exploiting it, by dealing with the following
issues:

* Need to adapt legislation

* Need for full confidence in the voting process on the part of voters and the administrative
authorities

* Guarantee of security and reliability

* Preservation of current roles in the election process.

MD SHAKIR RAHMANI 14565A0401 Page 58


SHCST Hyderabad

CHAPTER 5
SOFTWARE Implementation of the project design

5.1. Kiel Software Working

Step1: Click for KEIL μVISION4 Icon. Which appearing after Installing Keil KEIL
μVISION4.

MD SHAKIR RAHMANI 14565A0401 Page 59


SHCST Hyderabad

Step2: Click on Project Menu, Then New μVison Project.

MD SHAKIR RAHMANI 14565A0401 Page 60


SHCST Hyderabad

Step3: Create New Project Folder named as ―Keil Test”.

MD SHAKIR RAHMANI 14565A0401 Page 61


SHCST Hyderabad

Step 4: Select Target Device Vendor (i.e.).

Step 5: Then select specific chip LPC2148.

Step 6: Then select specific chip i.e. LPC2148.

MD SHAKIR RAHMANI 14565A0401 Page 62


SHCST Hyderabad

Step 7: Then you will see following window.

Step 8: Now you see Startup.s is already added which is necessary for running code for
Keil.
Note: Code wills Not Run without Startup.s
Startup.s is available in C:\Keil\ARM\Startup\Philips.
The startup-code executes immediately upon reset of the target system and performs the
following operations:
1. Defines interrupt and exception vectors.
2. Configures the CPU clock source (on some devices).
3. Initializes the external bus controller.
4. Copies the exception vectors from ROM to RAM for systems with memory
remapping.
5. Initializes other low level peripherals, if necessary.
6. Reserves and initializes the stack for all modes.

MD SHAKIR RAHMANI 14565A0401 Page 63


SHCST Hyderabad

7. Reserves the heap.


8. Transfers control to the main C function.

Step 9: Now Click on File Menu and Click on New.

Step 10: Write Code for Blink LED in C and FileName.c Save.
Note: Don‘t forget to save .c Extension.

MD SHAKIR RAHMANI 14565A0401 Page 64


SHCST Hyderabad

Step 11: Now you Window in C Syntax.

Step 12: Now you add LED.c file by adding Sourse Group 1 Add files to Group ‗Source Group
1‘.

MD SHAKIR RAHMANI 14565A0401 Page 65


SHCST Hyderabad

Step 13: Add LED.C file.

MD SHAKIR RAHMANI 14565A0401 Page 66


SHCST Hyderabad

Step 14: Now Click on Options for Target ‗Target 1‘.

Step 15: Go to Options for Target ‗Target 1‘. Click on Check Box Create HEX File.

MD SHAKIR RAHMANI 14565A0401 Page 67


SHCST Hyderabad

Step 16: Then go to Linker. Click on Use Memory Layout for Target Dialog.

MD SHAKIR RAHMANI 14565A0401 Page 68


SHCST Hyderabad

Step 16: Then Click on Rebuild All Target Files

MD SHAKIR RAHMANI 14565A0401 Page 69


SHCST Hyderabad

Step 17: Now you see 0 Error(s), 0 Warning (s). Then Hex File will create in Specific Folder.
Now to download it for you target hardware.

5.2. CODE:

/* Voting mechain using Finger print; */

#include <lpc214x.h>

#include "serial.h"

#include"lcd.h"

#define sw1 0x00100000

#define sw2 0x00020000

#define sw3 0x00040000

MD SHAKIR RAHMANI 14565A0401 Page 70


SHCST Hyderabad

#define sw4 0x00080000

unsigned char i=0,fp[20],j=0,str[4],s=0,rec,dummy;

unsignedchar
enroll[12]={0xEF,0X01,0XFF,0XFF,0XFF,0XFF,0X01,0X00,0X03,0X01,0X00,0X05};

unsignedchar
generate_ch[13]={0xEF,0X01,0XFF,0XFF,0XFF,0XFF,0X01,0X00,0X04,0x02,0X01,0X00,0X
08};

unsignedchar store[11]={0xEF,0X01,0XFF,0XFF,0XFF,0XFF,0X01,0X00,0X06,0X06,0X01};

unsignedchar
identify[12]={0xEF,0X01,0XFF,0XFF,0XFF,0XFF,0X01,0X00,0X03,0X11,0X00,0X15};

unsigned char b1=0,b2=0,i1=0,i2=0,id=0,id1=0,id2=0,cnt=0,eeprom_add=0,aa,n=0;

void clearfp(void);

void convert (unsigned char temp_value);

unsignedchar part_A=0,part_B=0,part_C=0,part_D=0,check=0,count=0,enroll_check=0,en_byte;

void long_delay (void );

/*-------------------------------------------------------------------------
main program
--------------------------------------------------------------------------*/
int main (void )
{
lcd_init();
again:
lcd_cmd(0x01,0);
delay(1000);
message(0," welcome ");

MD SHAKIR RAHMANI 14565A0401 Page 71


SHCST Hyderabad

//lcd_cmd(0x01,0);
lcd_cmd(0xc0,0);
message(0,"EVM with FP");
delay(1000);
i=0;

while(1)
{
/******* Enrolling your ID *********************/

if((IOPIN0&sw1)==0) //checking for sw1


{
while((IOPIN0&sw1)==0);
lcd_cmd(0x01,0);
message(0,"Enrolling....");
i=0;
while(i<12)
{
send_ch_UART0(enroll[i]);
i++;
}
rec=UART1_getch();
rec=UART1_getch();
rec=UART1_getch();
rec=UART1_getch();
rec=UART1_getch();
rec=UART1_getch();
rec=UART1_getch();
rec=UART1_getch();
rec=UART1_getch();

MD SHAKIR RAHMANI 14565A0401 Page 72


SHCST Hyderabad

rec=UART1_getch();
dummy=UART1_getch();
dummy=UART1_getch();
if(!rec)
{
lcd_cmd(0x01,0);
message(0,"Enrolling ok");
}
else
{
lcd_cmd(0x01,0);
message(0,"Enrolling not ok");
goto again;
}

i=0;
while(i<13)
{
send_ch_UART0(generate_ch[i]);
i++;
}
rec=UART1_getch();
rec=UART1_getch();
rec=UART1_getch();
rec=UART1_getch();
rec=UART1_getch();
rec=UART1_getch();
rec=UART1_getch();
rec=UART1_getch();

MD SHAKIR RAHMANI 14565A0401 Page 73


SHCST Hyderabad

rec=UART1_getch();
rec=UART1_getch();
dummy=UART1_getch();
dummy=UART1_getch();

if(!rec)
{
lcd_cmd(0x01,0);
message(0,"gen char ok");
}
else
{
lcd_cmd(0x01,0);
message(0,"genchar not ok");
goto again;
}

i=0;
while(i<11)
{
send_ch_UART0(store[i]);
i++;
}
rec=UART1_getch();
rec=UART1_getch();
rec=UART1_getch();
rec=UART1_getch();
rec=UART1_getch();
rec=UART1_getch();
rec=UART1_getch();

MD SHAKIR RAHMANI 14565A0401 Page 74


SHCST Hyderabad

rec=UART1_getch();
rec=UART1_getch();
rec=UART1_getch();
dummy=UART1_getch();
dummy=UART1_getch();

if(!rec)
{
lcd_cmd(0x01,0);
message(0,"store ok");
}
else
{
lcd_cmd(0x01,0);
message(0,"store not ok");
goto again;
}

//check=1;
//enroll_check =0;
//en_byte=12;
}

/*********** identifying your ID *******************/

if((IOPIN0&sw2)==0) //checking for sw2


{
while((IOPIN0&sw2)==0);
lcd_cmd(0x01,0);

MD SHAKIR RAHMANI 14565A0401 Page 75


SHCST Hyderabad

message(0,"Identfying...");
i=0;

while(i<12)
{
send_ch_UART0(identify[i]);
i++;
}
check=1;
enroll_check =1;
en_byte=16;
}

/*********** final result *******************/

if((IOPIN0&sw3)==0) //checking for sw3


{
while((IOPIN0&sw3)==0);
lcd_cmd(0x01,0);
message(1,"A B C D");
lcd_cmd(0xc0,0);
convert(part_A);
lcd_cmd(0xc4,0);
convert(part_B);
lcd_cmd(0xc7,0);
convert(part_C);
lcd_cmd(0xcc,0);
convert(part_D);
long_delay();

MD SHAKIR RAHMANI 14565A0401 Page 76


SHCST Hyderabad

long_delay();

part_A=part_B=part_C=part_D=0;
goto again;

/********* receiving data from FP *********/

if(check==1)
{
count=0;
check=0;
while(count<en_byte)
{
fp[count]=UART0_getch();
count++;
}
long_delay();

n=0;
while(n<20)
{
if((fp[n]==0xEF)&&(fp[n+1]==0x01)&&(fp[n+9]==0x00))
{

lcd_cmd(0x01,0);
lcd_cmd(0x80,0);
message(1," Successfully ");
lcd_cmd(0xc0,0);

MD SHAKIR RAHMANI 14565A0401 Page 77


SHCST Hyderabad

message(0xc0," completed");
b1=0; b2=0; i1=0; i2=0; id=0;
b1=fp[n+11]/10;
b2=fp[n+11]%10;
long_delay();
long_delay();
long_delay();

// lcd_cmd(0xc0,0);
// message(0xc0,"Id:");
// lcd_cmd(0xC3,0);
// lcd_cmd(b1+0x30,1);
// lcd_cmd(b2+0x30,1);
i1=b1-48;
i1=i1*10;
i2=b2-48;
i2=i2*1;
id=i1+i2;
long_delay();
if(enroll_check ==1)
{
lcd_cmd(0x01,0);
message(1," Plz poll ur vote ");
// clearfp();
enroll_check=0;
goto poll;
}
goto again;

MD SHAKIR RAHMANI 14565A0401 Page 78


SHCST Hyderabad

else
{
lcd_cmd(0x01,0);
message(1," Failed");
long_delay();

goto again;
}
}
}
}

/*-----------------------------------------------------
polling your vote
----------------------------------------------------*/

poll:
while(1)
{
if((IOPIN0&sw1)==0) //sw1
{
part_A++;
lcd_cmd(0x01,0);
message(1,"Vote for part A");
long_delay();
goto again;
}
if((IOPIN0&sw2)==0) //sw2
{

MD SHAKIR RAHMANI 14565A0401 Page 79


SHCST Hyderabad

part_B++;
lcd_cmd(0x01,0);
message(1,"Vote for part B");
long_delay();
goto again;
// goto again;
}
if((IOPIN0&sw3)==0) //sw3
{
part_C++;
lcd_cmd(0x01,0);
message(1,"Vote for part C");
long_delay();

goto again;
// goto again;
}
if((IOPIN0&sw4)==0) //sw4
{
part_D++;
lcd_cmd(0x01,0);
message(1,"Vote for part D");
long_delay();
goto again;
// goto again;
}
}

}
/*------------------------------------------------

MD SHAKIR RAHMANI 14565A0401 Page 80


SHCST Hyderabad

Clear the string clearfp


------------------------------------------------*/

void clearfp(void)
{
unsigned char cl=0;
while(cl<20)
{
fp[cl]=' ';
cl++;
}
j=0;
}
/*---------------------------------------------------------------------------------------
;convertion program Binary to ASCii ;
--------------------------------------------------------------------------------------*/

void convert(unsigned char temp_value)

{
unsigned char value,d1,d2,d3,k=0;
temp_value = temp_value;
value=temp_value/10;
d3=temp_value%10;
d1=value/10;
d2=value%10;
d1=d1+30;
// lcddata(d1);
delay(10);
d2=d2+30;

MD SHAKIR RAHMANI 14565A0401 Page 81


SHCST Hyderabad

lcd_cmd(d2,1);
delay(4);
k++;
// msgdisplay(".");
d3=d3+0x30;
lcd_cmd(d3,1);
delay(10);
k=0;
}
/*---------------------------------------------------------------------------------
; long delay ;
----------------------------------------------------------------------------------*/
void long_delay (void )
{
unsigned int g;
for(g=0;g<500;g++)
delay(40000);
}

MD SHAKIR RAHMANI 14565A0401 Page 82


SHCST Hyderabad

CHAPTER 6
RESULTS AND CONCLUSION

6.1 Results
Assemble the circuit on the PCB as shown in Fig 5.1. After assembling the circuit on the
PCB, check it for proper connections before switching on the power supply.
 The EVM consists of a controller and switching unit , both the units are working
independently and in collaboration with each other as well.
 The CU is accepting fingerprints in enrolling mode and is responding accordingly.
 In identifying and vote casting mode, the CU checks for finger print detection routine
 In identifying and vote casting mode, CU communicates with switching unit in order to
exchange various signals.
 CU is counting the votes for individual candidate (20 in number) and total number of votes
cast can be checked at anytime.
 In result mode, the CU displays the votes of individual candidate, in consecutive order,
whenever the ―Result Button‖ is pressed.
 The total number of votes can be checked in result mode.
In total, the complete system (including all the hardware components and software routines)
is working as per the initial specifications and requirements of our project. Because of the
creative nature of the design, and due to lack of time, some features could not be fine-tuned and
are not working properly. So certain aspects of the system can be modified as operational
experience is gained with it. As the users work with the system, they develop various new ideas
for the development and enhancement of the project

MD SHAKIR RAHMANI 14565A0401 Page 83


SHCST Hyderabad

MD SHAKIR RAHMANI 14565A0401 Page 84


SHCST Hyderabad

CONCLUSION
The implementation of Finger print based voting machine using microcontroller is done
successfully. The communication is properly done without any interference between different
modules in the design. Design is done to meet all the specifications and requirements. Software
tools like Keil Uvision Simulator, Flash Magic to dump the source code into the microcontroller,
Orcad Lite for the schematic diagram have been used to develop the software code before
realizing the hardware.
The performance of the system is more efficient. Reading the Data and verifying the
information with the already stored data and perform the specified task is the main job of the
microcontroller. The mechanism is controlled by the microcontroller.
Circuit is implemented in Orcad and implemented on the microcontroller board. The
performance has been verified both in software simulator and hardware design. The total circuit
is completely verified functionally and is following the application software. It can be concluded
that the design implemented in the present work provide portability, flexibility and the data
transmission is also done with low power consumption.

MD SHAKIR RAHMANI 14565A0401 Page 85


SHCST Hyderabad

CHAPTER 7
ADVANTAGES AND APPLICATION

7.1. Advantages
 Cost effective
 Low power consumption
 It is economical
 Less manpower required
 Time conscious, as less time required for voting & counting
 Avoids invalid voting
 Saves transportation cost due to its compact size
 Convenient on the part of voter

7.2. Applications
This project can be used as an voting machine that can prevent rigging during the elections in
the polling booths.
 Fast track voting which could be used in small scale elections, like resident welfare
association, ―panchayat‖ level election and other society level elections.
 It could also be used to conduct opinion polls during annual share holders meeting.
 It could also be used to conduct general assembly elections where number of candidates
are less than or equal to eight in the current situation

MD SHAKIR RAHMANI 14565A0401 Page 86


SHCST Hyderabad

CHAPTER 8
FUTURE SCOPE
 Number of candidates could be increased.
 It could be interfaced with printer to get the hard copy of the result almost instantly from the
machine itself.
 It could also be interfaced with the personal computer and result could be stored in the
central server and its backup could be taken on the other backend servers.
 Again, once the result is on the server it could be relayed on the network to various offices of
the election conducting authority. Thus our project could make the result available any corner
of the world in a matter of seconds

MD SHAKIR RAHMANI 14565A0401 Page 87


SHCST Hyderabad

CHAPTER 9
REFERENCES
1. http://www.aimglobal.org/technologies/rfid/what_is_rfid.asp
2. http://www.rfidjournal.com/faq
3. http://www.technovelgy.com/ct/Technology-Article.asp
4. http://www.perada.eu/documents/articles-perspectives/an-introduction-to-rfid-
technology.pdf
5. http://csrc.nist.gov/publications/nistpubs/800-98/SP800-98_RFID-2007.pdf
6. www.ieee.org
7. http://www.zntu.edu.ua/base/lection/rpf/lib/zhzh03/8051_tutorial.pdf
8. http://www.taltech.com/TALtech_web/resources/intro-sc.html
9. http://focus.ti.com/lit/ds/symlink/max232.pdf
10. http://www.kmitl.ac.th/~kswichit/89prog/index.html
11. http://www.microdigitaled.com/8051/Software/keil_tutorial.pdf

MD SHAKIR RAHMANI 14565A0401 Page 88