CHAPTER 1 INTRODUCTION In democratic societies, voting is an important tool to collect and re-act people’s opinion. Traditionally, voting is conducted in centralized or distributed places called voting booths. Voters go to voting booths and cast their votes under the supervision of authorized parties. The votes are then counted manually once the election has finished. With the rapid development of computer technology and cryptographic methods, electronic voting systems can be employed that replace the incident and most importantly error-prone human Component. To increase the efficiency and accuracy of voting procedures, computerized voting systems were developed to help collecting and counting the votes. These include Lever Voting Machines, Punched Cards for Voting, Optical Mark-Sense Scanners and Direct Recording Electronic (DRE) voting systems. The term e-voting is defined as any voting method where the voter‘s intention is expressed or collected by electronic means. E-Voting has been performed recently in some nations and regions. In an e-voting by touch screen, a voter directly selects candidates or the vote content appeared on a screen as the finger. This voting with fast counting time has also a problem that voters go to the
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
CHAPTER 1
INTRODUCTION
In democratic societies, voting is an important tool to collect and re-act
people’s opinion. Traditionally, voting is conducted in centralized or distributed
places called voting booths. Voters go to voting booths and cast their votes under the
supervision of authorized parties. The votes are then counted manually once the
election has finished. With the rapid development of computer technology and
cryptographic methods, electronic voting systems can be employed that replace the
incident and most importantly error-prone human Component. To increase the
efficiency and accuracy of voting procedures, computerized voting systems were
developed to help collecting and counting the votes. These include Lever Voting
Machines, Punched Cards for Voting, Optical Mark-Sense Scanners and Direct
Recording Electronic (DRE) voting systems.
The term e-voting is defined as any voting method where the voter‘s intention
is expressed or collected by electronic means. E-Voting has been performed recently
in some nations and regions. In an e-voting by touch screen, a voter directly selects
candidates or the vote content appeared on a screen as the finger. This voting with fast
counting time has also a problem that voters go to the polling place. In the meantime,
an e-voting using internet has no inconvenience that voters should visit the voting
booth. However, this voting is executed just in the environment with internet
accessible computer.
For a variety of reasons, voters may be unable to attend voting booths
physically, but need to vote remotely, for example, from home or while traveling
abroad. Hence, there is great demand for remote voting procedures that are easy,
transparent, and, most importantly, secure.
In this project, we Endeavour to improve mobility and address security
problems of remote voting procedures and systems. We present an electronic voting
scheme using GSM. With more than one billion users, the GSM authentication
infrastructure is the most widely deployed authentication mechanism by far. We make
use of this well-designed GSM authentication infrastructure to improve mobility and
security of mobile voting procedures.
An e-voting system that allows a voter to be identified using a wireless
certificate without additionally registering when a user votes using his mobile
terminal such as a cellular phone.. We also present a method that ensures the
anonymity of voter and the confidentiality of vote content. By our mobile voting
system, a voter can cast his vote more easily and conveniently than the existing e-
voting using internet, within the scheduled time period anywhere even when a voter is
not able to access internet on a voting day. Our proposal can be applied not only to
presidential election but also to any votes such as a national assembly election or a
local election.
Here is the Percentage of Voting From 1952 to 2004 of Lok sabha Election:
First 1952 61.02%
Second 1957 62.09%
Third 1962 55.42%
Fourth 1967 61.33%
Fifth 1971 55.29%
Sixth 1977 60.49%
Seventh 1980 56.92%
Eight 1984 63.56%
Ninth 1989 61.15%
Tenth 1991 56.93%
Eleventh 1998 61.97%
Twelfth 1999 59.99%
Thirteen 2004 57.65%
Here we can see that average voting rate is approximately 50 to 60 percentages.
Consider the case if any one registered voter in his/her home state that is
Goa, if he need to register himself in Bangalore he need to prove that he is a resident
there. However, he lives as a paying guest; he has no proof of residence, so registering
himself in Bangalore is not an option. Importantly he is not acquainted with the
political scenario there and so even if he had an opportunity to vote he would not
know whom to vote for, except make a choice along party lines, that too the national
ones only, most of us people from outside the State hardly know the regional parties.
So in effect, he would be able to make the best choice if he was to vote in Goa.
Metropolitan cities consists of millions of people, from all parts of the country,
a large majority of them are a floating population like above case , working one state
but with no political id entity. Therefore, there is need of remote voting system to
increase the voting rate.
CHAPTER 2
LITERATURE OVERVIEW
More than 700 GSM mobile networks have been established in Europe, the
North America, South America, Iceland, Asia, Africa and Australasia up until now,
woven together by international roaming agreements and a common bond called the
"Memorandum of Understanding" (MOU) which defines the GSM standards and the
different phases of its world-wide implementation.
1982 - The Beginning
Nordic Telecom and Netherlands PTT propose to CEPT(Conference of
European Post and Telecommunications) the development of a new digital
cellular standard that would cope with the ever a burgeoning demands on
European mobile networks.
The European Commission (EC) issues a directive which requires member states to
reserve frequencies in the 900 MHz band for GSM to allow for roaming.
1986
Main GSM radio transmission techniques are chosen
1987
September - 13 operators and administrators from 12 areas in the CEPT
GSM advisory group sign the charter GSM (Groupe Spéciale Mobile) MoU
"Club" agreement, with a launch date of 1 July 1991.
The original French name was later changed to Global System for Mobile
Communication, but the original GSM acronym stuck.
GSM spec drafted.
1989
The European Telecommunications Standards Institute (ETSI) defined GSM
as the internationally accepted digital cellular telephony standard
GSM becomes an ETSI technical committee
1990
Phase 1 GSM 900 specifications are frozen
DCS adaptation starts
Validation systems implemented
First GSM World congress in Rome with 650 Participants
1991
First GSM spec demonstrated
DCS specifications are frozen
GSM World Congress Nice has 690 Participants
1992
January - First GSM network operator is Oy Radiolinja Ab in Finland
December 1992 - 13 networks on air in 7 areas
GSM World Congress Berlin - 630 Participants
1993
GSM demonstrated for the first time in Africa at Telkom '93 in Cape Town
Roaming agreements between several operators established
December 1993 - 32 networks on air in 18 areas
GSM World Congress Lisbon with 760 Participants
Telkom '93 held in Cape Town. First GSM systems shown.
Function Set: 8-bit, 2 Line, 5x7 Dots 0x38 56Function Set: 4-bit, 1 Line, 5x7 Dots 0x20 32Function Set: 4-bit, 2 Line, 5x7 Dots 0x28 40Entry Mode 0x06 6Display (clearing display without clearing DDRAM content) 0x08 8Display on Cursor on 0x0E 14Display on Cursor off 0x0C 12Display on Cursor blinking 0x0F 15Shift entire display left 0x18 24Shift entire display right 0x1C 30Move cursor left by one character 0x10 16Move cursor right by one character 0x14 20Clear Display (also clear DDRAM content) 0x01 1Set DDRAM address or cursor position on display 0x80+add 128+addSet CGRAM address or set pointer to CGRAM location 0x40+add 64+add
4-bit programming of LCD There are many reasons why sometime we prefer to use LCD in 4-bit mode
instead of 8-bit. One basic reason is lesser number of pins are needed to interface
LCD.
In 4-bit mode the data is sent in nibbles, first we send the higher nibble and
then the lower nibble. To enable the 4-bit mode of LCD, we need to follow special
sequence of initialization that tells the LCD controller that user has selected 4-bit
mode of operation. We call this special sequence as resetting the LCD. Following is
the reset sequence of LCD.
Wait for about 20mS
Send the first init value (0x30)
Wait for about 10mS
Send second init value (0x30)
Wait for about 1mS
Send third init value (0x30)
Wait for 1mS
Select bus width (0x30 - for 8-bit and 0x20 for 4-bit)
Wait for 1mS
The busy flag will only be valid after the above reset sequence. Usually we do
not use busy flag in 4-bit mode as we have to write code for reading two nibbles from
the LCD. Instead we simply put a certain amount of delay usually 300 to 600uS. This
delay might vary depending on the LCD you are using, as you might have a different
crystal frequency on which LCD controller is running. So it actually depends on the
LCD module you are using.
In 4-bit mode, we only need 6 pins to interface an LCD. D4-D7 are the data
pins connection and Enable and Register select are for LCD control pins. We are not
using Read/Write (RW) Pin of the LCD, as we are only writing on the LCD so we
have made it grounded permanently. If you want to use it, then you may connect it on
your controller but that will only increase another pin and does not make any big
difference. Potentiometer RV1 is used to control the LCD contrast. The unwanted
data pins of LCD i.e. D0-D3 are connected to ground.
Sending data/command in 4-bit Mode
We will now look into the common steps to send data/command to LCD when
working in 4-bit mode. In 4-bit mode data is sent nibble by nibble, first we send
higher nibble and then lower nibble. This means in both command and data sending
function we need to separate the higher 4-bits and lower 4-bits.
There are many types of power supply. Most are designed to convert high
voltage AC mains electricity to a suitable low voltage supply for electronic circuits
and other devices. A power supply can by broken down into a series of blocks, each
of which performs a particular function. For example a 5V regulated supply can be
shown as above
Transformer: A transformer steps down high voltage AC mains to low voltage
AC. Here we are using a center-tap transformer whose output will be sinusoidal
with 36volts peak to peak value.
Fig: 5.3 Output Waveform of transformer
The low voltage AC output is suitable for lamps, heaters and special
AC motors. It is not suitable for electronic circuits unless they include a
rectifier and a smoothing capacitor. The transformer output is given to the
rectifier circuit.
Rectifier:
A rectifier converts AC to DC, but the DC output is varying. There
are several types of rectifiers; here we use a bridge rectifier.
The Bridge rectifier is a circuit, which converts an ac voltage to dc
voltage using both half cycles of the input ac voltage. The Bridge rectifier
circuit is shown in the figure. The circuit has four diodes connected to form a
bridge. The ac input voltage is applied to the diagonally opposite ends of the
bridge. The load resistance is connected between the other two ends of the
bridge.
For the positive half cycle of the input ac voltage, diodes D1 and D3
conduct, whereas diodes D2 and D4 remain in the OFF state. The conducting
diodes will be in series with the load resistance RL and hence the load current
flows through RL.
For the negative half cycle of the input ac voltage, diodes D2 and D4
conduct whereas, D1 and D3 remain OFF. The conducting diodes D2 and D4
will be in series with the load resistance RL and hence the current flows through
RL in the same direction as in the previous half cycle. Thus a bi-directional
wave is converted into unidirectional.
Figure 5.4 Rectifier circuit
Now the output of the rectifier shown in Figure 3.3 is shown in below Figure
The varying DC output is suitable for lamps, heaters and standard motors. It is
not suitable for lamps, heaters and standard motors. It is not suitable for
electronic circuits unless they include a smoothing capacitor.
Smoothing: The smoothing block smoothes the DC from varying greatly to a small
ripple and the ripple voltage is defined as the deviation of the load voltage from its
DC value. Smoothing is also named as filtering.
Filtering is frequently effected by shunting the load with a capacitor. The
action of this system depends on the fact that the capacitor stores energy during the
conduction period and delivers this energy to the loads during the no conducting
period. In this way, the time during which the current passes through the load is
prolonging Ted, and the ripple is considerably decreased. The action of the capacitor
is shown with the help of waveform.
Figure 5.5 Smoothing action of capacitor
Fig: 5.6 Waveform of the rectified output smoothing
Regulator:
Regulator eliminates ripple by setting DC output to a fixed voltage. Voltage
regulator ICs are available with fixed (typically 5V, 12V and 15V) or variable output
voltages. Negative voltage regulators are also available.
Many of the fixed voltage regulator ICs has 3 leads (input, output and high
impedance). They include a hole for attaching a heat sink if necessary. Zener diode is
an example of fixed regulator
The MC78XX/LM78XX/MC78XXA series of three terminal positive
regulators are available in the TO-220/D-PAK package and with several fixed output
voltages, making them useful in a wide range of applications. Each type employs
internal current limiting, thermal shut down and safe operating area protection,
making it essentially indestructible. If adequate heat sinking is provided, they can
deliver over 1A output current. Although designed primarily as fixed voltage
regulators, these devices can be used with external components to obtain adjustable
voltages and currents.
Part pin out of LM7805 showing its constant voltage reference
Fig: 5.7:LM705 voltage regulator LM7805 is the standard part number for an integrated three-terminal adjustable
linear voltage regulator. LM7805 is a positive voltage regulator supporting input
voltage of 3V to 40V and output voltage between 1.25V and 37V. A typical current
rating is 1.5A although several lower and higher current models are available.
Variable output voltage is achieved by using a potentiometer or a variable voltage
from another source to apply a control voltage to the control terminal. LM7805 also
has a built-in current limiter to prevent the output current from exceeding the rated
current, and LM7805 will automatically reduce its output current if an overheat
condition occurs under load. LM7805 is manufactured by many companies, including
National Semiconductor, Fairchild Semiconductor, and STMicroelectronics.
Although LM7805 is an adjustable regulator, it is sometimes preferred for
high-precision fixed voltage applications instead of the similar LM78xx devices
because the LM7805 is designed with superior output tolerances. For a fixed voltage
application, the control pin will typically be biased with a fixed resistor network, a
Zener diode network, or a fixed control voltage from another source. Manufacturer
datasheets provide standard configurations for achieving various design applications,
including the use of a pass transistor to achieve regulated output currents in excess of
what the LM7805 alone can provide.
LM7805 is available in a wide range of package forms for different
applications including heat sink mounting and surface-mount applications. Common
form factors for high-current applications include TO-220 and TO-3. LM7805 is
capable of dissipating a large amount of heat at medium to high current loads and the
use of a heat sink is recommended to maximize the lifespan and power-handling
capability. LM7905 is the negative voltage complement to LM7805 and the
specifications and function are essentially identical, except that the regulator must
receive a control voltage and act on an input voltage that are below the ground
reference point instead of above it.
Transformer + Rectifier + Smoothing + Regulator:
Fig:5.8: Bridge rectifier
RS-232:
Below is the pinout of a typical standard male 9-pin RS232 connector, this
connector type is also referred to as a DB9 connector.
A computer's serial COM port (DTE) is usually a male port as shown below, and any
peripheral devices you connect to this port usually has a female connector (DCE).
Pin SIG. Signal Name DTE (PC)1 DCD Data Carrier Detect in2 RXD Receive Data in3 TXD Transmit Data out4 DTR Data Terminal Ready out5 GND Signal Ground -6 DSR Data Set Ready in7 RTS Request to Send out8 CTS Clear to Send in9 RI Ring Indicator in
Fig: 5.9. RS232 diagram
TTL/CMOS Serial Logic Waveform
The diagram above shows the expected waveform from the UART
when using the common 8N1 format. 8N1 signifies 8 Data bits, No Parity and 1 Stop
Bit. The RS-232 line, when idle is in the Mark State (Logic 1). A transmission starts
with a start bit which is (Logic 0). Then each bit is sent down the line, one at a time.
The LSB (Least Significant Bit) is sent first. A Stop Bit (Logic 1) is then appended to
the signal to make up the transmission. The data sent using this method, is said to be
framed. That is the data is framed between a Start and Stop Bit.
RS-232 Voltage levels:
Send enable signal +3 to +25 volts to signify a "Space" (Logic 0)
3 to -25 volts for a "Mark" (logic 1).
Any voltage in between these regions (i.e. between +3 and -3 Volts) is undefined
The data byte is always transmitted least-significant-bit first. The bits are
transmitted at specific time intervals determined by the baud rate of the serial signal. This is the signal present on the RS-232 Port of your computer, shown below.
RS-232 Logic Waveform
RS-232 LEVEL CONVERTER:
Fig: 5.10: max 232 diagram
Standard serial interfacing of microcontroller (TTL) with PC or any RS232C
Standard device requires TTL to RS232 Level converter. A MAX232 is used for this
purpose. It provides 2-channel RS232C port and requires external 10uF capacitors.
The driver requires a single supply of +5V.
It is helpful to understand what occurs to the voltage levels. When a MAX232
IC receives a TTL level to convert, it changes a TTL Logic 0 to between +3 and
+15 V, and changes TTL Logic 1 to between -3 to -15 V, and vice versa for
converting from RS232 to TTL. This can be confusing when you realize that the
RS232 Data Transmission voltages at a certain logic state are opposite from the
RS232 Control Line voltages at the same logic state. To clarify the matter, see the
table below. For more information see RS-232 Voltage Levels.
Table: 5.1 RS232 Voltage levels
RS232 Line Type & Logic Level RS232 Voltage TTL Voltage to/from MAX232
Data Transmission (Rx/Tx) Logic 0 +3 V to +15 V 0 V
Data Transmission (Rx/Tx) Logic 1 -3 V to -15 V 5 V
Control Signals (RTS/CTS/DTR/DSR)
Logic 0-3 V to -15 V 5 V
Control Signals (RTS/CTS/DTR/DSR)
Logic 1+3 V to +15 V 0 V
Fig: 5.11. Max 232 pin diagram
CHAPTER 4
IMPLEMENTATION OF THE PROJECT
This chapter briefly explains about the firmware implementation of the
project. The required software tools are discussed in section 4.2. Section 4.3 shows
the flow diagram of the project design. Section 4.4 presents the firmware
implementation of the project design.
Block diagram:
Working flow:
When the message is sent, GSM modem receives the message and transmits
this message to microcontroller via RS 232 cable.
If the mobile number available in the microcontroller then the vote is
accepted.
Then according to the programmed candidates votes are incremented and the
final result appears on the pc.
The microcontroller has been programmed in such a way that no user can vote
more than once.
In this project GSM is connected to the microcontroller through USB or serial
cable. Microcontroller is programmed to store the mobile numbers of voters and when
mobile number received from GSM modem it verifies whether the number is stored or
not, if mobile number is available it takes the vote otherwise it will not accept.
When the message is received from the GSM modem by the microcontroller
after verifying mobile number the message or vote is stored in the EEPROM which
connected to the microcontroller through I2C(integrated ic).
LCD displays the message received and vote to the candidate if the number is
available in the microcontroller otherwise it displays sorry invalid vote.
Personal computers displays the details of the number of votes casted and how
many votes received by the each candidate.
Software Tools Required
Keil µv3, Flashmagic are the two software tools used to program
microcontroller. The working of each software tool is explained below in detail.
4.1.1 Programming Microcontroller
A compiler for a high level language helps to reduce production time. To
program the LPC2148 microcontroller the Keil µv3 is used. The programming is done
strictly in the embedded C language. Keil µv3 is a suite of executable, open source
software development tools for the microcontrollers hosted on the Windows platform.
The compilation of the C program converts it into machine language file
(.hex). This is the only language the microcontroller will understand, because it
contains the original program code converted into a hexadecimal format. The
compilation of the program is shown in Fig 4.1. If there are no errors and warnings
then run the program, the system performs all the required tasks and behaves as
expected the software developed. If not, the whole procedure will have to be repeated
again. Fig 4.2 shows expected outputs for given inputs when run compiled program.
One of the difficulties of programming microcontrollers is the limited amount
of resources the programmer has to deal with. In personal computers resources such
as RAM and processing speed are basically limitless when compared to
microcontrollers. In contrast, the code on microcontrollers should be as low on
resources as possible
4.2 Keil Compiler:
.
Fig 4.1: Compilation of source Code
Keil compiler is software used where the machine language code is written and
compiled. After compilation, the machine source code is converted into hex code which is to
be dumped into the microcontroller for further processing. Keil compiler also supports C
language code.
Fig 4.2: Run the compiled program
Keil compiler is software used where the machine language code is written and
compiled. After compilation, the machine source code is converted into hex code which is to
be dumped into the microcontroller for further processing. Keil compiler also supports C
language code.
4.3 Flash Magic:Flash Magic is a PC tool for programming flash based microcontrollers from
NXP using a serial or Ethernet protocol while in the target hardware. The figures
below show how the baud rate is selected for the microcontroller, how are the
registers erased before the device is programmed.
Features:
Straightforward and intuitive user interface.
Five simple steps to erasing and programming a device and setting any options
desired.
Programs Intel Hex Files.
Verifying after programming.
Fills unused flash to increase firmware security.
Ability to automatically program checksums. Using the supplied checksum
calculation routine your firmware can easily verify the integrity of a Flash
block, ensuring no unauthorized or corrupted code can ever be executed.
Program security bits.
Check which Flash blocks are blank or in use with the ability to easily erase all
blocks in use.
Read the device signature.
Read any section of Flash and save as an Intel Hex File.
Reprogram the Boot Vector and Status Byte with the help of confirmation
features that prevent accidentally programming incorrect values.
Displays the contents of Flash in ASCII and Hexadecimal formats.
Single-click access to the manual, Flash Magic home page and NXP
Microcontrollers home page.
Ability to use high-speed serial communications on devices that support it.
Flash Magic calculates the highest baud rate that both the device and your PC
can use and switches to that baud rate transparently.
Command Line interface allowing Flash Magic to be used in IDEs and Batch
Files in PDF format.
Supports half-duplex communications.
Verify Hex Files previously programmed.
Save and open settings.
Able to reset Rx2 and 66x devices (revision G or higher).
Able to control the DTR and RTS RS232 signals when connected to RST
and /PSEN to place the device into Boot ROM and Execute modes
automatically. An example circuit diagram is included in the Manual. This is
essential for ISP with target hardware that is hard to access.
This enables us to send commands to place the device in Boot ROM mode,
with support for command line interfaces. The installation includes an example
project for the Keil and Raisonance 8051 compilers that show how to build
support for this feature into applications.
Able to play any Wave file when finished programming built in automated
version checker - helps ensure you always have the latest version.
Powerful, flexible Just In Time Code feature. Write your own JIT Modules to
generate last minute code for programming. Uses include:
Serial number generation.
Copy protection and copy authorization.
Storing program date and time - manufacture date.
Storing program operator and location.
Lookup table generation.
Language tables or language selection.
Centralized record keeping.
Obtaining latest firmware from the Corporate Web site or project intranet.
Fig 4.3 Dumping procedure into the chip
Schematic:
ADVANTAGES:
Reduced costs:
Instead of having thousands of polling stations scattered all over the country
which will involve enormous logistics to is deployed deploy, the only 'polling
stations' will be one counting center per service provider where the election polling
software system, this makes it easier to monitor.
Increased participation and voting options:
People can vote from home or offices so no need of public holiday to enable
people vote. Participation will be higher because people do not have to leave their
home and stand on long endless queues. Participation will generally be higher than
ever before. Many people do not vote just because of the stress involved.
Reduced Risk:
The risks associated with road travel such as road traffic accidents and late
arrival of electoral resources due to unforeseen delays during deployment of polling
stations will be avoided.
Reduced time Consumption:
Due to its electronic nature, the results of the Poling will be available
immediately after voting with the GSM sms voting.
Greater speed and accuracy placing and tallying votes:
Possibility of rigging will be very low as compared with the ballot box
system. The reasons are:
1. Every political office candidate will be allocated a number eg. NCP candidate:
sms to 3005, BJP: sms to 5604, Congress: sms to 1009 etc.
2. An electronic voters' register (which is a primary requirement for the GSM
sms system) will be used to control the rigging. Every voter will also register
a particular GSM phone number in which he would use for voting during the
elections.
3. To vote, voters will type their registration number as a sms message eg.
00030611 and send to the number of their candidate of choice. To confirm the
vote, the voter will receive a confirmation message from the Counting Station
that their votes have been received. This is the voting receipt.
4. During registration voters who don't have phones can register with designated
handsets to be provided by service providers or use numbers of well known
friends. Once a number is used, it cannot be changed until after the voting
exercise.
5. Possibility of multiple voting is not possible since voter registration number
must match the GSM number used.
Provide Equal Opportunity:
Best of all, this process will guarantee that a new generation of political
leaders will emerge at last, since it provides an equal opportunity for all the political
parties.
DISADVANTAGES:
The SMS transition involves SMS server. This may introduce delay in
delivering the message. If it delivers after polling duration is completed then that vote