Hardware Requirements

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 36

6.

HARDWARE REQUIREMENTS
1. Microcontroller PIC16F877A
2. RFID Transponder
3. Power Supply
4. USART
5. LCD

6.1.1. MICROCONTROLLER PIC16F877A


Microcontroller Core Features:
• High-performance RISC CPU.
• Only 35 single word instructions to learn.
• All single cycle instructions except for program branches which are two cycle.
• Operating speed: DC - 20 MHz clock input DC - 200 ns instruction cycle.
• Up to 8K x 14 words of FLASH Program Memory, Up to 368 x 8 bytes of Data Memory
(RAM) Up to 256 x 8 bytes of EEPROM data memory.
• Pin out compatible to the PIC16C73B/74B/76/77
• Interrupt capability (up to 14 sources)
• Eight level deep hardware stack
• Direct, indirect and relative addressing modes.
• Power-on Reset (POR).
• Power-up Timer (PWRT) and Oscillator Start-up Timer (OST).
• Watchdog Timer (WDT) with its own on-chip RC oscillator for reliable operation.
• Programmable code-protection.
• Power saving SLEEP mode.
• Selectable oscillator options.
• Low-power, high-speed CMOS FLASH/EEPROM technology.
• Fully static design.
• In-Circuit Serial Programming (ICSP) .
• Single 5V In-Circuit Serial Programming capability.
• In-Circuit Debugging via two pins.
• Wide operating voltage range: 2.0V to 5.5V.
• High Sink/Source Current: 25 mA.
• Commercial and Industrial temperature ranges.
• Low-power consumption.
- < 2 mA typical @ 5V, 4 MHz
- 20 µA typical @ 3V, 32 kHz
- < 1 µA typical standby current
6.1.2. PIN DIAGRAM OF PIC 16F874A/877A:

6.1.3. PERIPHERAL FEATURES:


• Timer0: 8-bit timer/counter with 8-bit prescaler
• Timer1: 16-bit timer/counter with prescaler, can be incremented during sleep via external
crystal/clock
• Timer2: 8-bit timer/counter with 8-bit period register, prescaler and postscaler
• Two Capture, Compare, PWM modules
- Capture is 16-bit, max. Resolution is 12.5 ns
- Compare is 16-bit, max. Resolution is 200 ns
- PWM max. Resolution is 10-bit
• 10-bit multi-channel Analog-to-Digital converter
• Synchronous Serial Port (SSP) with SPI (Master Mode) and I2C (Master/Slave)
• Universal Synchronous Asynchronous Receiver Transmitter (USART/SCI) with 9-bit address
detection
• Parallel Slave Port (PSP) 8-bits wide, with external RD, WR and CS controls (40/44-pin only)
• Brown-out detection circuitry for Brown-out Reset (BOR)
6.1.4. CMOS TECHNOLOGY:
• Low-power, high-speed Flash/EEPROM technology.
• Fully static design.
• Wide operating voltage range (2.0V to 5.5V).
• Commercial and Industrial temperature ranges.
• Low-power consumption.

6.1.5. ARCHITECTURE:
6.1.6.
PIN DESCRIPTION:
OSC1/CLKI:
Oscillator crystal or external clock input. Oscillator crystal input or external clock source
input. ST buffer when configured in RC mode; otherwise CMOS. External clock source input.
Always associated with pin function OSC1 (see OSC1/CLKI, OSC2/CLKO pins).
OSC2/CLKO:
Oscillator crystal or clock output. Oscillator crystal output. Connects to The crystal or
resonator in Crystal Oscillator mode. In RC mode, OSC2 pin outputs CLKO, which has 1/4 the
frequency of OSC1 and denotes the instruction cycle rate.
MCLR/VPP:
Master Clear (input) or programming voltage (output). Master Clear (Reset) input. This
pin is an active low Reset to the device. Programming voltage input.

 RA0/AN0.
 RA1/AN1.
 RA2/AN2/VREF-/CVREF.
 VREFCVREF.
 RA3/AN3/VREF+.
 VREF+.
 RA4/T0CKI/C1OUT.
 T0CKI.
 C1OUT.
 RA5/AN4/SS/C2OUT/SS/C2OUT.
I/O PORTS:
Some pins for these I/O ports are multiplexed with an alternate function for the peripheral
features on the device. In general, when a peripheral is enabled, that pin may not be used as a
general purpose I/O pin.
PORTA AND TRISA REGISTER:
PORTA is a 6-bit wide, bidirectional port. The corresponding data direction register is
TRISA. Setting a TRISA bit (= 1) will make the corresponding PORTA pin an input (i.e., put the
corresponding output driver in a High – Impedance mode). Clearing a TRISA bit (= 0) will make
the corresponding PORTA pin an output (i.e., put the contents of the output latch on the selected
pin). Reading the PORTA register reads the status of the pins, whereas writing to it will write to
the port latch. All write operations are read-modify-write operations. Therefore, a write to a port
implies that the port pins are read; the value is modified and then written to the port data latch.
Pin RA4 is multiplexed with the Timer0 module clock input to become the RA4/T0CKI
pin. The RA4/T0CKI pin is a Schmitt Trigger input and an open-drain output. All other PORTA
pins have TTL input levels and full CMOS output drivers. Other PORTA pins are multiplexed
with analog inputs and the analog VREF input for both the A/D converters and the comparators.
The operation of each pin is selected by clearing/setting the appropriate control bits in the
ADCON1 and/or CMCON registers. The TRISA register controls the direction of the port pins
even when they are being used as analog inputs. The user must ensure the bits in the TRISA
register are maintained set when using them as analog inputs.
Note: On a Power-on Reset, these pins are configured as analog inputs and read as ‘0’. The
comparators are in the off (digital).
PORT B AND TRISB REGISTER:
PORTB is an 8-bit wide, bidirectional port. The corresponding data direction register is
TRISB. Setting a TRISB bit (= 1) will make the corresponding PORTB pin an input (i.e., put the
corresponding output driver in a High-Impedance mode). Clearing a TRISB bit (= 0) will make
the corresponding PORTB pin an output (i.e., put the contents of the output latch on the selected
pin). Three pins of PORTB are multiplexed with the In-Circuit Debugger and Low-Voltage
Programming function: RB3/PGM, RB6/PGC and RB7/PGD.
Four of the PORTB pins, RB7:RB4, have an interruption- change feature. Only pins
configured as inputs can cause this interrupt to occur (i.e., any RB7:RB4 pin configured as an
output is excluded from the interruption- change comparison). The input pins (of RB7:RB4) are
compared with the old value latched on the last read of PORTB. The “mismatch” outputs of
RB7:RB4 are OR’ed together to generate the RB port change interrupt with flag bit RBIF
(INTCON<0>).
This interrupt can wake the device from Sleep. The user, in the Interrupt Service
Routine, can clear the interrupt in the following manner:
a) Any read or write of PORTB. This will end the mismatch condition.
b) Clear flag bit RBIF.
A mismatch condition will continue to set flag bit RBIF. Reading PORTB will end
the mismatch condition and allow flag bit RBIF to be cleared. The interrupt-on-change feature is
recommended for wake-up on key depression operation and operations where PORTB is only
used for the interrupt-on-change feature. Polling of PORTB is not recommended while using the
interrupt-on- change feature. This interrupt-on-mismatch feature, together with software
configurable pull-ups on these four pins, allow easy interface to a keypad and make it possible
for wake-up on key depression.

PORTC AND TRISC REGISTER:


PORTC is an 8-bit wide, bidirectional port. The corresponding data direction register is
TRISC. Setting a TRISC bit (= 1) will make the corresponding PORTC pin an input (i.e., put the
corresponding output driver in a High- Impedance mode). Clearing a TRISC bit (= 0) will make
the corresponding PORTC pin an output (i.e., put the contents of the output latch on the selected
pin). PORTC is multiplexed with several peripheral functions (Table 4-5). PORTC pins have
Schmitt Trigger input buffers. When the I2C module is enabled, the PORTC<4:3> pins can be
configured with normal I2C levels, or with SMBus levels, by using the CKE bit (SSPSTAT<6>).
When enabling peripheral functions, care should be taken in defining TRIS bits for each PORTC
pin. Some peripherals override the TRIS bit to make a pin an output, while other peripherals
override the TRIS bit to make a pin an input. Since the TRIS bit override is in effect while the
peripheral is enabled, read-modify write instructions (BSF, BCF, XORWF) with TRISC as the
destination, should be avoided. The user should refer to the corresponding peripheral section for
the correct TRIS bit settings.
PORTD AND TRISD REGISTERS:
PORTD is an 8-bit port with Schmitt Trigger input buffers. Each pin is individually
configurable as an input or output. PORTD can be configured as an 8-bit wide microprocessor
port (Parallel Slave Port) by setting control bit, PSP MODE (TRISE<4>). In this mode, the input
buffers are TTL.
PORTE AND TRISE REGISTER:
PORTE has three pins (RE0/RD/AN5, RE1/WR/AN6 and RE2/CS/AN7) which are
individually configurable as inputs or outputs. These pins have Schmitt Trigger input buffers.
The PORTE pins become the I/O control inputs for the microprocessor port when bit PSPMODE
(TRISE<4>) is set. In this mode, the user must make certain that the TRISE<2:0> bits are set and
that the pins are configured as digital inputs. Also, ensure that ADCON1 is configured for digital
I/O. In this mode, the input buffers are TTL. Register 4-1 shows the TRISE register which also
controls the Parallel Slave Port operation. PORTE pins are multiplexed with analog inputs.
When selected for analog input, these pins will read as ‘0’s. TRISE controls. The
direction of the RE pins, even when they are being used as analog inputs. The user must make
sure to keep the pins configured as inputs when using them as analog inputs.
MEMORY ORGANIZATION:
There are three memory blocks in each of the PIC16F87XA devices. The program
memory and data memory have separate buses so that concurrent access can occur and is
detailed in this section. The EEPROM data memory block is detailed in.

PROGRAM MEMORY ORGANIZATION:


The PIC16F87XA devices have a 13-bit program counter capable of addressing an 8K
word x 14 bit program memory space. The PIC16F876A/877A devices have 8K words x 14 bits
of Flash program memory, while PIC16F873A/874A devices have 4K words x 14 bits.
Accessing a location above the physically implemented address will cause a wraparound. The
Reset vector is at 0000h and the interrupt vector is at 0004h.
The data memory is partitioned into multiple banks which contain the General Purpose
Registers and the Special Function Registers. Bits RP1 (Status<6>) and RP0 (Status<5>) are the
bank select bits. Each bank extends up to 7Fh (128 bytes). The lower locations of each bank are
reserved for the Special Function Registers. Above the Special Function Registers are General
Purpose Registers, implemented as static RAM. All implemented banks contain Special Function
Registers. Some frequently used Special Function Registers from one bank may be mirrored in
another bank for code reduction and quicker access.
TIMER0 MODULE:
The Timer0 module timer/counter has the following features:
• 8-bit timer/counter
• Readable and writable
• 8-bit software programmable prescaler
• Internal or external clock select
• Interrupt on overflow from FFh to 00h
• Edge select for external clock
Timer mode is selected by clearing bit T0CS (OPTION_REG<5>). In Timer mode, the Timer0
module will increment every instruction cycle (without prescaler). If the TMR0 register is
written, the increment is inhibited for the following two instruction cycles. The user can work
around this by writing an adjusted value to the TMR0 register.
TIMER0 INTERRUPT:
The TMR0 interrupt is generated when the TMR0 register overflows from FFh to 00h.
This overflow sets bit TMR0IF (INTCON<2>). The interrupt can be masked by clearing bit
TMR0IE (INTCON<5>). Bit TMR0IF must be cleared in software by the Timer0 module
Interrupt Service Routine before re-enabling this interrupt. The TMR0 interrupt cannot awaken
the processor from Sleep since the timer is shut-off during Sleep.

TIMER1 MODULE:
The Timer1 module is a 16-bit timer/counter consisting of two 8-bit registers (TMR1H
and TMR1L) which are readable and writable. The TMR1 register pair (TMR1H:TMR1L)
increments from 0000h to FFFFh and rolls over to 0000h. The TMR1 interrupt, if enabled, is
generated on overflow which is latched in interrupt flag bit, TMR1IF (PIR1<0>). This interrupt
can be enabled/disabled by setting or clearing TMR1 interrupt enable bit, TMR1IE (PIE1<0>).
Timer1 can operate in one of two modes:
• As a Timer
• As a Counter
The operating mode is determined by the clock select bit, TMR1CS (T1CON<1>).
In Timer mode, Timer1 increments every instruction cycle. In Counter mode, it increments on
every rising edge of the external clock input. Timer1 can be enabled/disabled by setting/clearing
control bit, TMR1ON (T1CON<0>).Timer1 also has an internal “Reset input”. This Reset can be
generated by either of the two CCP modules. Shows the Timer1 Control register. When the
Timer1 oscillator is enabled (T1OSCEN is set), the RC1/T1OSI/CCP2 and RC0/T1OSO/T1CKI
pins become inputs. That is, the TRISC<1:0> value is ignored and these pins read as ‘0’.
TIMER2 MODULE:
Timer2 is an 8-bit timer with a prescaler and a postscaler. It can be used as the PWM
time base for the PWM mode of the CCP module(s). The TMR2 register is readable and writable
and is cleared on any device Reset. The input clock (FOSC/4) has a prescale option of 1:1, 1:4 or
1:16, selected by control bits T2CKPS1:T2CKPS0 (T2CON<1:0>). The Timer2 module has an
8-bit period register, PR2. Timer2 increments from 00h until it matches PR2 and then resets to
00h on the next increment cycle. PR2 is a readable and writable register. The PR2 register is
initialized to FFh upon Reset. The match output of TMR2 goes through a 4-bit postscaler (which
gives a 1:1 to 1:16 scaling inclusive) to generate a TMR2 interrupt (latched in flag bit, TMR2IF
(PIR1<1>)). Timer2 can be shut-off by clearing control bit, TMR2ON (T2CON<2>), to
minimize power consumption.

IN-CIRCUIT DEBUGGER:
PIC16F87XA devices have a Watchdog Timer which can be shut-off only through
configuration bits. It runs off its own RC oscillator for added reliability. There are two timers
that offer necessary delays on power-up. One is the Oscillator Start-up Timer (OST), intended to
keep the chip in Reset until the crystal oscillator is stable. The other is the Power-up Timer
(PWRT), which provides a fixed delay of 72 ms (nominal) on power-up only. It is designed to
keep the part
In Reset while the power supply stabilizes. With these two timers on-chip, most applications
need no external Reset circuitry. Sleep mode is designed to offer a very low current power-down
mode. The user can wake-up from Sleep through external Reset, Watchdog Timer wake-up or
through an interrupt. Several oscillator options are also made available to allow the part to fit the
application. The RC oscillator option saves system cost while the LP crystal option saves power.
A set of configuration bits is used to select various options.
6.2 RFID TRANSPONDER
6.2.1 OVERVIEW
Radio-frequency identification (RFID) is an automatic identification method, relying
on storing and remotely retrieving data using devices called RFID tags or transponders. The
technology requires some extent of cooperation of an RFID reader and an RFID tag.
An RFID tag is an object that can be applied to or incorporated into a product, animal, or
person for the purpose of identification and tracking using radio waves. Some tags can be read
from several meters away and beyond the line of sight of the reader.
Most RFID tags contain at least two parts. One is an integrated circuit for storing and
processing information, modulating and demodulating a radio-frequency (RF) signal, and other
specialized functions. The second is an antenna for receiving and transmitting the signal.
There are generally two types of RFID tags:
Active RFID tags, which contain a battery, and
Passive RFID tags, which have no battery.
Future Chip less RFID allows for discrete identification of tags without an integrated circuit,
thereby allowing tags to be printed directly onto assets at a lower cost than traditional tags.

6.2.2 VARIETIES OF RFID TAGS

RFID tags come in three general varieties:- passive, active, or semi-passive (also known
as battery-assisted or semi-active) and beacon types. Passive tags require no internal power
source, thus being pure passive devices (they are only active when a reader is nearby to power
them by wireless illumination), whereas semi-passive and active tags require a power source,
usually a small battery. Beacon tags transmit autonomously with a certain blink pattern and do
not respond to interrogation.

6.2.2.1 Passive

Passive RFID tags have no internal power supply. The minute electrical current induced
in the antenna by the incoming radio frequency signal provides just enough power for the CMOS
integrated circuit in the tag to power up and transmit a response. Most passive tags signal by
backscattering the carrier wave from the reader. This means that the antenna has to be designed
both to collect power from the incoming signal and also to transmit the outbound backscatter
signal. The response of a passive RFID tag is not necessarily just an ID number; the tag chip can
contain non-volatile data, possibly writable EEPROM for storing data.

6.2.2.2 Active

Unlike passive RFID tags, active RFID tags have their own internal power source, which
is used to power the integrated circuits and to broadcast the response signal to the reader.
Communications from active tags to readers is typically much more reliable (i.e. fewer errors)
than those from passive tags due to the ability for active tags to conduct a "session" with a
reader.

Active tags, due to their onboard power supply, also may transmit at higher power levels
than passive tags, allowing them to be more robust in "RF challenged" environments with
humidity and spray or with RF-dampening targets (including humans and cattle, which contain
mostly water), reflective targets from metal (shipping containers, vehicles), or at longer
distances. In turn, active tags can be larger (due to battery size) and more expensive to
manufacture (due to price of the battery). However, the potential shelf life of an active tag can be
many years.

Many active tags today have operational ranges of hundreds of meters, and a battery life
from several months to 10 years. Active tags may include larger memories than passive tags, and
may include the ability to store additional information received from the reader.

Special active RFID tags may include specialized sensors. For example, a temperature
sensor can be used to record the temperature profile during the transportation and storage of
perishable goods. Other sensor types used include humidity, shock/vibration, light, nuclear
radiation, pressure and concentrations of gases such as ethylene.

Increasingly, active tags on the market today are internationally standardized according to
the ISO 18000-7 air interface standard, which operates at the 433 MHz frequency. In addition,
active tags that are sold in the form of an electronic seal are standardized according to the ISO
18185 standard.

6.2.2.3 Semi-passive

Semi-passive tags are similar to active tags in that they have their own power source, but
the battery only powers the microchip and does not power the broadcasting of a signal. The
response is usually powered by means of backscattering the RF energy from the reader, where
energy is reflected back to the reader as with passive tags. An additional application for the
battery is to power data storage.

If energy from the reader is collected and stored to emit a response in the future, the tag is
operating active.

Whereas in passive tags the power level to power up the circuitry must be 100 times
stronger than with active or semi-active tags, also the time consumption for collecting the energy
is omitted and the response comes with shorter latency time. The battery-assisted reception
circuitry of semi-passive tags leads to greater sensitivity than passive tags, typically 100 times
more. The enhanced sensitivity can be leveraged as increased range (by one magnitude) and/or
as enhanced read reliability (by reducing bit error rate at least one magnitude).

The enhanced sensitivity of semi-passive tags places higher demands on the reader
concerning separation in denser population of tags. Because an already weak signal is
backscattered to the reader from a larger number of tags and from longer distances, the
separation requires more sophisticated anti-collision concepts, better signal processing and some
more intelligent assessment of which tag might be where. For passive tags, the reader-to-tag link
usually fails first. For semi-passive tags, the reverse (tag-to-reader) link usually collides first.

Semi-passive tags have three main advantages: greater sensitivity than passive tags;
longer battery powered life cycle than active tags; they can perform active functions (such as
temperature logging) under their own power, even when no reader is present for powering the
circuitry.

Most semi-passive tags use the 2.4Ghz frequency which has shown to be less reliable in
"RF challenged" environments where frozen items, dense metal, and other elements that are
hostile to RF are found. This is far less common with fully active tags that broadcast at the 433
Mhz frequency.

6.2.2.4 Beacon tags

Beacon tags blink the coded identity signal at a regular pattern. This may be a constant
blink rate or a blink rate with stochastic shift or some triggered blinking. Not to activate the
responder function in a tag first prevents from limiting the speed capabilities and improves the
availability of the identification information under noisy conditions. Therefore the beacon
concept appliers to very robust processes: The regular availability of the coded signal reduces
latency and allows for low power levels, as with active tags. However, the permanent talk of
many tags may pollute the frequency channel and therefore prevent from operating in denser
populations. The design of the blinking scheme must take the battery life cycle into account.
Currently (2008) none of the offered products follows any known line of international
standardization. However, all blinking must obey the national wireless communications
regulations concerning power level and channel occupation.

6.2.2 ANTENNA TYPES

The antenna used for an RFID tag is affected by the intended application and the
frequency of operation. Low-frequency is 30–300 kHz. LFID or Low FID passive tags are
normally inductively coupled, and because the voltage induced is proportional to frequency,
many coil turns are needed to produce enough voltage to operate an integrated circuit. Compact
Low FID tags, like glass-encapsulated tags used in animal and human identification, use a
multilayer coil (3 layers of 100–150 turns each) wrapped around a ferrite core.

High frequency is 3-30 MHz At 13.56 MHz, a HFID or High FID tag, using a planar
spiral with 5–7 turns over a credit-card-sized form factor can be used to provide ranges of tens of
centimeters. These coils are less costly to produce than LF coils, since they can be made using
lithographic techniques rather than by wire winding, but two metal layers and an insulator layer
are needed to allow for the crossover connection from the outermost layer to the inside of the
spiral where the integrated circuit and resonance capacitor are located.

Ultrahigh-frequency or UHF is 300 MHz-3 GHz. UHFID and microwave passive tags are
usually radiatively-coupled to the reader antenna and can employ conventional dipole-like
antennas. Only one metal layer is required, reducing cost of manufacturing. Dipole antennas,
however, are a poor match to the high and slightly capacitive input impedance of a typical
integrated circuit. Folded dipoles, or short loops acting as inductive matching structures, are
often employed to improve power delivery to the IC. Half-wave dipoles (16 cm at 900 MHz) are
too big for many applications; for example, tags embedded in labels must be less than 10 cm (4
inches) in extent. To reduce the length of the antenna, antennas can be bent or meandered, and
capacitive tip-loading or bowtie-like broadband structures are also used. Compact antennas
usually have gain less than that of a dipole — that is, less than 2 dBi — and can be regarded as
isotropic in the plane perpendicular to their axis.

Dipoles couple to radiation polarized along their axes, so the visibility of a tag with a
simple dipole-like antenna is orientation-dependent. Tags with two orthogonal or nearly-
orthogonal antennas, often known as dual-dipole tags, are much less dependent on orientation
and polarization of the reader antenna, but are larger and more expensive than single-dipole tags.

Patch antennas are used to provide service in close proximity to metal surfaces, but a
structure with good bandwidth is 3–6 mm thick, and the need to provide a ground layer and
ground connection increases cost relative to simpler single-layer structures.

HFID and UHFID tag antennas are usually fabricated from copper or aluminum.
Conductive inks have seen some use in tag antennas but have encountered problems with IC
adhesion and environmental stability.

6.2.3 TAG ATTACHMENT

There are three different kinds of RFID tags based on their attachment with identified
objects, i.e. attachable, implantable and insertion tags [10]. In addition to these conventional
RFID tags, Eastman Kodak Company has filed two patent applications for monitoring ingestion
of medicine based on a digestible RFID tag.

6.2.4 RFID BACKSCATTER:

To communicate, tags respond to queries generating signals that must not create
interference with the readers, as arriving signals can be very weak and must be differentiated.
Besides backscattering, load modulation techniques can be used to manipulate the reader's field.
Typically, backscatter is used in the far field, whereas load modulation applies in the near field,
within a few wavelengths from the reader.

6.3 POWER SUPPLY UNIT:


6.3.1 Circuit Diagram
Power supply unit consists of following units
i) Step down transformer
ii) Rectifier unit
iii) Input filter
iv).Regulator unit
v) Output filter
6.3.2 STEPDOWN TRANSFORMER:
The Step down Transformer is used to step down the main supply voltage from 230V AC to
lower value. This 230 AC voltage cannot be used directly, thus it is stepped down. The Transformer
consists of primary and secondary coils. To reduce or step down the voltage, the transformer is
designed to contain less number of turns in its secondary core. The output from the secondary coil is
also AC waveform. Thus the conversion from AC to DC is essential. This conversion is achieved by
using the Rectifier Circuit/Unit.

Step down transformers can step down incoming voltage, which enables you to have the correct
voltage input for your electrical needs.  For example, if our equipment has been specified for input
voltage of 12 volts, and the main power supply is 230 volts, we will need a step down transformer,
which decreases the incoming electrical voltage to be compatible with your 12 volt equipment.

6.3.3 RECTIFIER UNIT:


The Rectifier circuit is used to convert the AC voltage into its corresponding DC voltage. The
most important and simple device used in Rectifier circuit is the diode. The simple function of the
diode is to conduct when forward biased and not to conduct in reverse bias. Now we are using three
types of rectifiers. They are
1. Half-wave rectifier
2. Full-wave rectifier
3. Bridge rectifier

6.3.3.1 Half-wave rectifier:


In half wave rectification, either the positive or negative half of the AC wave is passed,
while the other half is blocked. Because only one half of the input waveform reaches the output, it
is very inefficient if used for power transfer. Half-wave rectification can be achieved with a
single diode in a one phase supply, or with three diodes in a three-phase supply.
6.3.3.2 Full-wave rectifier:

A full-wave rectifier converts the whole of the input waveform to one of constant polarity
(positive or negative) at its output. Full-wave rectification converts both polarities of the input
waveform to DC (direct current), and is more efficient. However, in a circuit with a non-center
tapped transformer, four diodes are required instead of the one needed for half-wave rectification.
A full-wave rectifier uses a diode bridge, made of four diodes, like this:

At first, this may look just as confusing as the one-way streets of Boston. The thing to realize is
that the diodes work in pairs. As the voltage of the signal flips back and forth, the diodes shepard
the current to always flow in the same direction for the output.
Here's what the circuit looks like to the signal as it alternates:

 
So, if we feed our AC signal into a full wave rectifier, we'll see both halves of the wave above 0
Volts. Since the signal passes through two diodes, the voltage out will be lower by two diode drops, or
1.2 Volts.

AC wave input

AC Wave Out(Full Wave Rectified)


If we're interested in using the full-wave rectifier as a DC power supply, we'll add a
smoothing capacitor to the output of the diode bridge.

6.3.3.3 Bridge rectifier:

A bridge rectifier makes use of four diodes in a bridge arrangement to achieve full-wave
rectification. This is a widely used configuration, both with individual diodes wired as shown and
with single component bridges where the diode bridge is wired internally.
A diode bridge or bridge rectifier is an arrangement of four diodes in a bridge configuration that
provides the same polarity of output voltage for either polarity of input voltage. When used in its
most common application, for conversion of alternating current (AC) input into direct current (DC)
output, it is known as a bridge rectifier. A bridge rectifier provides full-wave rectification from a two-
wire AC input, resulting in lower cost and weight as compared to a center-tapped transformer design.

The Forward Bias is achieved by connecting the diode’s positive with positive of the
battery and negative with battery’s negative. The efficient circuit used is the Full wave Bridge
rectifier circuit. The output voltage of the rectifier is in rippled form, the ripples from the obtained
DC voltage are removed using other circuits available. The circuit used for removing the ripples is
called Filter circuit.

6.3.4 INPUT FILTER:


Capacitors are used as filter. The ripples from the DC voltage are removed and pure DC
voltage is obtained. And also these capacitors are used to reduce the harmonics of the input voltage.
The primary action performed by capacitor is charging and discharging. It charges in positive half
cycle of the AC voltage and it will discharge in negative half cycle. So it allows only AC voltage and
does not allow the DC voltage. This filter is fixed before the regulator. Thus the output is free from
ripples.
There are two types of filters. They are

1. Low pass filter

2. High pass filter

6.3.4.1 Low pass filter:


One simple electrical circuit that will serve as a low-pass filter consists of a resistor in series
with a load, and a capacitor in parallel with the load. The capacitor exhibits reactance, and blocks
low-frequency signals, causing them to go through the load instead. At higher frequencies the
reactance drops, and the capacitor effectively functions as a short circuit. The combination of
resistance and capacitance gives you the time constant of the filter τ = RC (represented by the Greek
letter tau). The break frequency, also called the turnover frequency or cutoff frequency (in hertz), is
determined by the time constant: or equivalently (in radians per second):

One way to understand this circuit is to focus on the time the capacitor takes to charge. It
takes time to charge or discharge the capacitor through that resistor:

 At low frequencies, there is plenty of time for the capacitor to charge up to practically
the same voltage as the input voltage.

 At high frequencies, the capacitor only has time to charge up a small amount before
the input switches direction. The output goes up and down only a small fraction of the amount the
input goes up and down. At double the frequency, there's only time for it to charge up half the
amount.

Another way to understand this circuit is with the idea of reactance at a particular frequency:

 Since DC cannot flow through the capacitor, DC input must "flow out" the path
marked Vout (analogous to removing the capacitor).

 Since AC flows very well through the capacitor — almost as well as it flows through
solid wire — AC input "flows out" through the capacitor, effectively short circuiting to ground
(analogous to replacing the capacitor with just a wire).

It should be noted that the capacitor is not an "on/off" object (like the block or pass fluidic
explanation above). The capacitor will variably act between these two extremes. It is the Bode plot
and frequency response that show this variability.

6.3.4.2 High pass filter:


The above circuit diagram illustrates a simple 'RC' high-pass filter. we should find that the
circuit passes 'high' frequencies fairly well, but attenuates 'low' frequencies. Hence it is useful as a
filter to block any unwanted low frequency components of a complex signal whilst passing higher
frequencies. Circuits like this are used quite a lot in electronics as a 'D.C. Block' - i.e. to pass a.c.
signals but prevent any D.C. voltages from getting through.

The basic quantities which describe this circuit are similar to those used for the Low Pass
Filter. In effect, this circuit is just a simple low-pass filter with the components swapped over.

The action of the circuit can also be described in terms of a related quantity, the Turn over
Frequency, f0, which has a value

As with the low-pass filter, the circuit's behavior we can be understood as arising due to the
time taken to change the capacitor's charge when we alter the applied input voltage. It always takes a
finite (i.e. non-zero) time to change the amount of charge stored by the capacitor. Hence it takes time
to change the potential difference across the capacitor. As a result, any sudden change in the input
voltage produces a similar sudden change on the other side of the capacitor. This produces a voltage
across the resistor and causes a current to flow thorough it, charging the capacitor until all the voltage
falls across it instead of the resistor. The result is that steady (or slowly varying) voltages appear
mostly across the capacitor and quick changes appear mostly across the resistor. Since we're using the
voltage across the resistor as out output the main properties of the circuit are
therefore

The Voltage Gain:


The Phase Delay:

Try using the above experimental system to collect results and plot a graph of how the voltage
gain, Av, (and the phase change) depend upon the input frequency and if we check result agrees with
the above formulae. Compare this with a low-pass filter that uses the same component values and you
should see that they give 'opposite' results. In the high-pass filter, the output waveform 'leads' the
input waveform - i.e. it peaks before the input.

6.3.5 REGULATOR UNIT:

7805 Regulator
Regulator regulates the output voltage to be always constant. The output voltage is maintained
irrespective of the fluctuations in the input AC voltage. As and then the AC voltage changes, the DC
voltage also changes. Thus to avoid this Regulators are used. Also when the internal resistance of the
power supply is greater than 30 ohms, the output gets affected. Thus this can be successfully reduced
here. The regulators are mainly classified for low voltage and for high voltage. Further they can also
be classified as:
i) Positive regulator
1---> input pin
2---> ground pin
3---> output pin
It regulates the positive voltage.
ii) Negative regulator
1---> ground pin
2---> input pin
3---> output pin
It regulates the negative voltage.
6.3.5.1 FIXED REGULATORS
An assortment of 78xx series ICs
"Fixed" three-terminal linear regulators are commonly available to generate fixed voltages of plus 3
V, and plus or minus 5 V, 9 V, 12 V, or 15 V when the load is less than about 7 amperes.

7805 VOLTAGE REGULATOR:

The 7805 provides circuit designers with an easy way to regulate DC voltages to 5v.
Encapsulated in a single chip/package (IC), the 7805 is a positive voltage DC regulator that has only
3 terminals. They are: Input voltage, Ground, Output Voltage.
General Features:

 Output Current up to 1A
 Output Voltages of 5, 6, 8, 9, 10, 12, 15, 18, 24V
 Thermal Overload Protection
 Short Circuit Protection
 Output Transistor Safe Operating Area Protection

7812 12V Integrated Circuit3-Terminal Positive Voltage Regulator:

The 7812 fixed voltage regulator is a monolithic integrated circuit in a TO220 type package
designed for use in a wide variety of applications including local, onboard regulation. This regulator
employs internal current limiting, thermal shutdown, and safe area compensation.
With adequate heat-sinking it can deliver output currents in excess of 1.0 ampere. Although
designed primarily as a fixed voltage regulator, this device can be used with external components to
obtain adjustable voltages and currents.

6.3.6 OUTPUT FILTER:


The Filter circuit is often fixed after the Regulator circuit. Capacitor is most often used as
filter. The principle of the capacitor is to charge and discharge. It charges during the positive half
cycle of the AC voltage and discharges during the negative half cycle. So it allows only AC voltage
and does not allow the DC voltage. This filter is fixed after the Regulator circuit to filter any of the
possibly found ripples in the output received finally. Here we used 0.1µF capacitor. The output at this
stage is 5V and is given to the Microcontroller. The output voltage overshoots when the load is
removed or a short clears. When the load is removing from a switching mode power supply with a LC
low-pass output filter, the only thing the control loop can do is stop the switching action so no more
energy is taken from the source. The energy that is stored in the output filter inductor is dumped into
the output capacitor causing a voltage overshoot.
The magnitude of the overshoot is the vector sum of two orthogonal voltages, the output
voltage before the load is removed and the current through the inductor times the characteristic
impedance of the output filter, Zo = (L/C)^1/2. This can be derived from conservation of energy
considerations.

The initial energy, Ei, is:

Ei = 1/2*(L*Ii^2 + C*Vi^2)

The final energy, Ef, is:

Ef = 1/2*(L*If^2 = C*Vf^2)

The two energies are equal when the load is removed, since the load is no longer taking
energy from the system. Equating the two energies, substituting zero current for the final inductor
current, then the solution for the final voltage Vf is:

Vf = (Vi^2 + (Ii*Zo)^2)^1/2

This is the orthogonal vector sum of the output voltage and the load current times the
characteristic impedance and is illustrated in Figure 1.

Figure 1: Overshoot Voltage as Vector Sum

The problem becomes worse if the current in the inductor is established by a short circuit on
the output and the short circuit clears. In this case, the initial voltage is zero (short circuit) and the
overshoot is I*Zo, where I can be very large, resulting in a ruinous overshoot.
6.4. USART
6.4.1 SERIAL COMMUNICATION
A serial port sends and receives data one bit at a time over one wire. While it takes eight
times as long as to transfer each byte of data this way, only a few wires are required. In fact, two-
way (full duplex) communications is possible with only three separate wires- one to send, one to
receive, and a common signal ground wire.
 Bi-directional communications
 Communicating by wires
 The Parity Bit
 Cable lengths
 MAX-232C
 DCE And DTE devices
 Synchronous and Asynchronous Communications
>Bi-directional Communications
The serial port on your PC is a full-duplex device meaning that it can send and receive
data at the same time. In order to be able to do this, it uses separate lines for transmitting and
receiving data. Some types of serial devices support only one-way communications and therefore
use only two-wires in the cable – the transmit line and the signal ground.
>Communicating by bits
Once the start bit has been sent, the transmitter sends the actual data bits. There may
either be 5,6,7, or 8 data bits, depending on the number you have selected. Both receiver and the
transmitter must agree on the number of data bits, as well as the baud rate. Almost all devices
transmit data using either 7 or 8 data bits. Notice that when only 7 data bits are employed, you
cannot send ASCII values greater than 127. Likewise, using 5 bits limits the highest possible
value to 31. After the data has been transmitted, a stop bit is sent. A stop bit has a value of 1- or a
mark state- and it can be detected correctly even if the previous data bit also had a value of 1.
This is accomplished by the stop bit’s duration.
>The Parity Bit
Besides the synchronization provided by the use of start and stop bits, an additional bit
called a parity bit may optionally be transmitted along with the data. A parity bit affords a small
amount of error checking, to help detect data corruption that might occur during transmission.

>Cable Lengths
The MAX-232 standard imposes a cable length limit of 50 feet. You can usually ignore
this “standard”, since a cable can be as long as 10000 feet at baud rates up to 19200 if you use a
high quality, well shielded cable. The external environment has a large effect on lengths for
unshielded cables.
>MAX232 (Voltage Converter)
Since the RS232 is not compatible with todays microprocessors and micro controller, we
need line driver to convert the RS232 signals to TTL voltage levels that will be acceptable to the
8051’s TXD and RXD pins. One example of such a converter is MAX 232 from maxim corp.
The MAX 232 converts from RS232 voltage levels to TTL voltage levels, and vice versa. One
advantage of MAX232 chip is that it uses a +5V power source, which is the same as the source
voltage for the PIC 16f877A micro controller. In other words, with a single +5v power supply
we can power both the PIC and MAX 232, with no need of for the dual power supplies that are
common in many older systems. The MAX 232 requires four capacitors ranging from 1 to 22
microfarad. The most widely used value for this capacitor is 22microfarad.
PIN DIAGRAM OF MAX232:

>DCE and DTE devices


Two terms you should be familiar with are DTE and DCE. DTE stands for Data Terminal
Equipment, and DCE stands for Data Communication Equipment. These terms are used to
indicate the pin-out for the connectors on a device and the direction of the signals on the pins.
Your computer is a DTE device, while most other devices are usually DCE devices. If you have
trouble keeping the two straight then replace the term “DTE device” with your PC and the term
DCE device with “remote Device” in the following discussion. The RS-232 standard states that
DTE devices use a 25-pin male connector, and DCE devices use a 25-pin female connector. You
can therefore connect a DTE device to a DCE using a straight pin-for-pin connection. However,
to connect two like devices, you must instead use a null modem cable. Null modem cables cross
the transmit and receive lines in the cable.
The DTE device puts this line in a mark condition to tell the remote device that it is ready
and able to receive data. If the DTE device is not able to receive data (typically because its
receive buffer is almost full), it will put this line in the space condition as a signal to the DCE to
stop sending data. When the DTE device is ready to receive more data it will place this line back
in the mark condition. The complement of the RTS wire is CTS, which stands for Clear to Send.
The DCE device puts this line in a mark condition to tell the DTE device that it is ready to
receive the data. Likewise, if the DCE device is unable to receive data, it will place this line in
the space condition. Together, these two lines make up what is called RTS/CTS or “hardware”
flow control. The software wedge supports this type of flow control as well as Xon/Xoff or
“software” flow control. Software flow control uses special control characters transmitted from
one device to another to tell the other device to stop or start sending data. With software flow
control the RTS and CTS lines are not used.
DTR stands for Data Terminal Ready. Its intended function is very similar to the RTS
line. DSR (Data Set Ready) is the companion to DTR in the same way that CTS is to RTS. Some
serial devices use DTR and DSR as signals to simplify confirm that a device is connected and
turned on. The software wedge sets DTR to the mark state when the serial port is opened and
leaves it in that state until the port is closed. The DTR and DSR lines were originally designed to
provide an alternate method of hardware handshaking. It would be pointless to use both
RTS/CTS and DTR/DSR for flow control signals at the same time. Because of this DTR and
DSR are rarely used for flow control.
>Synchronous and Asynchronous Communications
There are two basic types of serial communications, synchronous and asynchronous.
With synchronous communications, the two devices initially synchronize themselves to each
other, and then continually send characters to stay in sync. Even when the data is not really being
sent, a constant flow of bits allows each device to know where the other is at any given time.
That is, each character that is sent is either actual data or an idle character. Synchronous
communications allows faster data transfer rates than asynchronous methods, because additional
bits to mark the beginning and end of each data byte are not required. The serial ports on IBM
style PCs are asynchronous devices and therefore only support asynchronous serial
communications. Asynchronous means no “synchronization”, and thus does not require sending
and receiving idle characters. However, the beginning and end of each byte of data must be
identified by start and stop bits. The start bit indicates when the data byte is about to begin and
the stop bit signals when it ends. The requirement to send these additional two bits causes
asynchronous communication to be slightly slower than synchronous however it has the
advantage that the processor does not have to deal with the additional idle characters.
6.5 LCD DISPLAY:
Liquid crystal display (LCD) has material which combines the properties of both liquid
and crystals. They have a temperature range within which the molecules are almost as mobile as
they would be in a liquid, but are grouped together in an order form similar to a crystal.
LCD DISPLAY:

More microcontroller devices are using 'smart LCD' displays to output visual
information. The following discussion covers the connection of a Hitachi LCD display to a PIC
microcontroller. LCD displays designed around Hitachi's LCD HD44780 module, are
inexpensive, easy to use, and it is even possible to produce a readout using the 8 x 80 pixels of
the display. Hitachi LCD displays have a standard ASCII set of characters plus Japanese, Greek
and mathematical symbols.
For an 8-bit data bus, the display requires a +5V supply plus 11 I/O lines. For a 4-bit data
bus it only requires the supply lines plus seven extra lines. When the LCD display is not enabled,
data lines are tri-state which means they are in a state of high impedance (as though they are
disconnected) and this means they do not interfere with the operation of the microcontroller
when the display is not being addressed. 

The LCD also requires 3 "control" lines from the microcontroller.


Enable (E) This line allows access to the display through R/W and RS lines. When this
line is low, the LCD is disabled and ignores signals from R/W and RS. When
(E) line is high, the LCD checks the state of the two control lines and responds
accordingly.
Read/Write (R/W) This line determines the direction of data between the LCD and
microcontroller. When it is low, data is written to the LCD. When it is high,
data is read from the LCD.
Register select With the help of this line, the LCD interprets the type of data on data lines.
(RS) When it is low, an instruction is being written to the LCD. When it is high, a
character is being written to the LCD.
Logic status on control lines:
E     0 Access to LCD disabled
       1 Access to LCD enabled

R/W 0 Writing data to LCD


       1 Reading data from LCD

RS    0 Instruction
       1 Character

Writing data to the LCD is done in several steps:


Set R/W bit to low 
Set RS bit to logic 0 or 1 (instruction or character)
Set data to data lines (if it is writing)
Set E line to high 
Set E line to low 
Read data from data lines (if it is reading).
Reading data from the LCD is done in the same way, but control line R/W has to be high. When
we send a high to the LCD, it will reset and wait for instructions. Typical instructions sent to
LCD display after a reset are: turning on a display, turning on a cursor and writing characters
from left to right. When the LCD is initialized, it is ready to continue receiving data or
instructions. If it receives a character, it will write it on the display and move the cursor one
space to the right. The Cursor marks the next location where a character will be written. When
we want to write a string of characters, first we need to set up the starting address, and then send
one character at a time. Characters that can be shown on the display are stored in data display
(DD) RAM. The size of DDRAM is 80 bytes.

The LCD display also possesses 64


bytes of Character-Generator (CG) RAM. This
memory is used for characters defined by the
user. Data in CG RAM is represented as an 8-
bit character bit-map. Each character takes up
8 bytes of CG RAM, so the total number of
characters, which the user can define, is eight.
In order to read in the character bit-map to the
LCD display, we must first set the CG RAM
address to starting point (usually 0), and then
write data to the display. The definition of a
'special' character is given in the picture.

Before we access DD RAM after defining a special character, the program must set the
DD RAM address. Writing and reading data from any LCD memory is done from the last
address which was set up using set-address instruction. Once the address of DD RAM is set, a
new written character will be displayed at the appropriate place on the screen. Until now we
discussed the operation of writing and reading to an LCD as if it were an ordinary memory. But
this is not so. The LCD controller needs 40 to 120 microseconds (uS) for writing and reading.
Other operations can take up to 5 mS. During that time, the microcontroller can not access the
LCD, so a program needs to know when the LCD is busy. We can solve this in two ways.

One way is to check the BUSY bit found on data line D7. This is not the best method
because LCD's can get stuck, and program will then stay forever in a loop checking the BUSY
bit. The other way is to introduce a delay in the program. The delay has to be long enough for the
LCD to finish the operation in process.
At the beginning we mentioned that we needed 11 I/O lines to communicate with an LCD.
However, we can communicate with an LCD through a 4-bit data bus. Thus we can reduce the
total number of communication lines to seven. The wiring for connection via a 4-bit data bus is
shown in the diagram below. In this example we use an LCD display with 2x16 characters,
labeled LM16X212 by Japanese maker SHARP. The message 'character' is written in the first
row: and two special characters '~' and '}' are displayed. In the second row we have produced the
word 'mikroElektronika'.
7. SOFTWARE REQUIREMENT
7.1 SOFTWARE TOOLS

 MPLAB
 Protel
 Propic
 HI-Tech PIC C Compiler
7.2 MPLAB INTEGRATION
MPLAB Integrated Development Environment (IDE) is a free, integrated toolset for the
development of embedded applications employing Microchip's PIC micro and dsPIC
microcontrollers. MPLAB IDE runs as a 32-bit application on MS Windows, is easy to use and
includes a host of free software components for fast application development and super-charged
debugging. MPLAB IDE also serves as a single, unified graphical user interface for additional
Microchip and third party software and hardware development tools. Moving between tools is a
snap, and upgrading from the free simulator to MPLAB ICD 2 or the MPLAB ICE emulator is
done in a flash because MPLAB IDE has the same user interface for all tools.
Choose MPLAB C18, the highly optimized compiler for the PIC18 series
microcontrollers, or try the newest Microchip's language tools compiler, MPLAB C30, targeted
at the high performance PIC24 and dsPIC digital signal controllers. Or, use one of the many
products from third party language tools vendors. They integrate into MPLAB IDE to function
transparently from the MPLAB project manager, editor and compiler.
7.3 INTRODUCTION TO EMBEDDED ‘C’:
Ex: Hitec – c, Keil – c
HI-TECH Software makes industrial-strength software development tools and C
compilers that help software developers write compact, efficient embedded processor code.
For over two decades HI-TECH Software has delivered the industry's most reliable
embedded software development tools and compilers for writing efficient and compact code to
run on the most popular embedded processors. Used by tens of thousands of customers including
General Motors, Whirlpool, Qualcomm, John Deere and many others, HI-TECH's reliable
development tools and C compilers, combined with world-class support have helped serious
embedded software programmers to create hundreds of breakthrough new solutions.
Whichever embedded processor family you are targeting with your software, whether it is
the ARM, PICC or 8051 series, HI-TECH tools and C compilers can help you write better code
and bring it to market faster.
HI-TECH PICC is a high-performance C compiler for the Microchip PIC micro
10/12/14/16/17 series of microcontrollers. HI-TECH PICC is an industrial-strength ANSI C
compiler - not a subset implementation like some other PIC compilers. The PICC compiler
implements full ISO/ANSI C, with the exception of recursion. All data types are supported
including 24 and 32 bit IEEE standard floating point. HI-TECH PICC makes full use of specific
PIC features and using an intelligent optimizer, can generate high-quality code easily rivaling
hand-written assembler. Automatic handling of page and bank selection frees the programmer
from the trivial details of assembler code.
7.4 EMBEDDED “C” COMPILER
 ANSI C - full featured and portable
 Reliable - mature, field-proven technology
 Multiple C optimization levels
 An optimizing assembler
 Full linker, with overlaying of local variables to minimize RAM usage
 Comprehensive C library with all source code provided
 Includes support for 24-bit and 32-bit IEEE floating point and 32-bit long data types
 Mixed C and assembler programming
 Unlimited number of source files
 Listings showing generated assembler
 Compatible - integrates into the MPLAB IDE, MPLAB ICD and most 3rd-party
development tools
 Runs on multiple platforms: Windows, Linux, UNIX, Mac OS X, Solaris
7.5 EMBEDDED DEVELOPMENT ENVIRONMENT
This environment allows you to manage all of your PIC projects. You can compile,
assemble and link your embedded application with a single step.
Optionally, the compiler may be run directly from the command line, allowing you to
compile, assemble and link using one command. This enables the compiler to be integrated into
third party development environments, such as Microchip's MPLAB IDE.

7.6 EMBEDDED SYSTEM TOOLS


7.6.1 ASSEMBLER
An assembler is a computer program for translating assembly language — essentially, a
mnemonic representation of machine language — into object code. A cross assembler (see cross
compiler) produces code for one type of processor, but runs on another. The computational step
where an assembler is run is known as assembly time. Translating assembly instruction
mnemonics into opcodes, assemblers provide the ability to use symbolic names for memory
locations (saving tedious calculations and manually updating addresses when a program is
slightly modified), and macro facilities for performing textual substitution — typically used to
encode common short sequences of instructions to run inline instead of in a subroutine.
Assemblers are far simpler to write than compilers for high-level languages.
7.6.2 ASSEMBLY LANGUAGE HAS SEVERAL BENEFITS
Speed: Assembly language programs are generally the fastest programs around.
Space: Assembly language programs are often the smallest.
Capability: You can do things in assembly which are difficult or impossible in High
level languages.
Knowledge: Your knowledge of assembly language will help you write better programs,
even when using High level languages. An example of an assembler we use in our project is
RAD 51.
7.6.3 SIMULATOR
Simulator is a machine that simulates an environment for the purpose of training or
research. We use a UMPS simulator for this purpose in our project.
7.6.4 UMPS
Universal microprocessor program simulator simulates a microcontroller with its external
environment. UMPS is able to simulate external components connected to the microcontroller.
Then, debug step is dramatically reduced. UMPS is not dedicated to only one microcontroller
family, it can simulate all kind of microcontrollers. The main limitation is to have less than 64K-
Bytes of RAM and ROM space and the good microcontroller library. UMPS provide all the
facilities other low-cost simulator does not have. It offers the user to see the "real effect" of a
program and a way to change the microcontroller family without changing IDE. UMPS provide a
low-cost solution to the problems. UMPS is really the best solution to your evaluation.

7.6.5 UMPS KEY FEATURES

 The speed, UMPS can run as fast as 1/5 the real microcontroller speed. No need to wait 2
days to see the result of a LCD routine access. All the microcontroller parts are simulated,
interrupts, communication protocol, parallel handshake, timer and so on.
 UMPS have an integrated assembler/disassembler and debugger. It is able to accept an
external assembler or compiler. It has a text editor which is not limited to 64K-bytes and shows
keyword with color. It can also communicate with an external compiler to integrate all the debug
facilities you need.
 UMPS is universal, it can easily be extended to other microcontroller with a library. Ask
us for toolkit development.
 External resource simulation is not limited. It can be extended to your proper needs by
writing your own DLL.
 UMPS allows you to evaluate at the lowest cost the possibility to build a microcontroller
project without any cable. - UMPS include a complete documentation on each microcontroller
which describe special registers and each instruction
7.6.6COMPILER
A compiler is a program that reads a program in one language, the source language and
translates into an equivalent program in another language, the target language. The translation
process should also report the presence of errors in the source program.
Source Target
→  Compiler →
Program Program

    ↓    

Error
       
Messages

There are two parts of compilation. The analysis part breaks up the source program into
constant piece and creates an intermediate representation of the source program. The synthesis
part constructs the desired target program from the intermediate representation.
7.6.7 COUSINS OF THE COMPILER ARE
1. Preprocessor.
2. Assembler.
3. Loader and Link-editor.
A naive approach to that front end might run the phases serially.
1. Lexical analyzer takes the source program as an input and produces a long string of
tokens.
2. Syntax Analyzer takes an out of lexical analyzer and produces a large tree.
Semantic analyzer takes the output of syntax analyzer and produces another tree.
Similarly, intermediate code generator takes a tree as an input produced by semantic analyzer
and produces intermediate code
7.6.8 PHASES OF COMPILER
The compiler has a number of phases plus symbol table manager and an error handler.

Input Source
       
Program

    ↓    

Lexical
       
Analyzer
    ↓    
Syntax
       
Analyzer
    ↓    
Symbol
Semantic  Error
Table    
Analyzer Handler
Manager
    ↓    
    Intermediate    
Code
Generator
    ↓    
Code
       
Optimizer
    ↓    
Code
       
Generator
  ↓    
Out Target
     
Program

FABRICATION DETAILS
The fabrication of one demonstration unit is carried out in the following sequence.

 Finalizing the total circuit diagram, listing out the components and sources of
procurement.
 Procuring the components, testing the components and screening the components.
 Making layout, repairing the interconnection diagram as per the circuit diagram.
 Assembling the components as per the component layout and circuit diagram and
soldering components.
 Integrating the total unit, interwiring the unit and final testing the unit.
7.7 DESIGN OF EMBEDDED SYSTEM
Like every other system development design cycle embedded system too have a design
cycle. The flow of the system will be like as given below. For any design cycle these will be the
implementation steps. From the initial state of the project to the final fabrication the design
considerations will be taken like the software consideration and the hardware components,
sensor, input and output. The electronics usually uses either a microprocessor or a
microcontroller. Some large or old systems use general-purpose mainframe computers or
minicomputers.
7.8 USER INTERFACES
User interfaces for embedded systems vary widely, and thus deserve some special
comment. User interface is the ultimate aim for an embedded module as to the user to check the
output with complete convenience. One standard interface, widely used in embedded systems,
uses two buttons (the absolute minimum) to control a menu system (just to be clear, one button
should be "next menu entry" the other button should be "select this menu entry").
Another basic trick is to minimize and simplify the type of output. Designs sometimes
use a status light for each interface plug, or failure condition, to tell what failed. A cheap
variation is to have two light bars with a printed matrix of errors that they select- the user can
glue on the labels for the language that he speaks. For example, most small computer printers use
lights labeled with stick-on labels that can be printed in any language. In some markets, these are
delivered with several sets of labels, so customers can pick the most comfortable language.
In many organizations, one person approves the user interface. Often this is a
customer, the major distributor or someone directly responsible for selling the system.
7.9 PLATFORM
There are many different CPU architectures used in embedded designs such as ARM,
MIPS, Coldfire/68k, PowerPC, X86, PIC, 8051, Atmel AVR, H8, SH, V850, FR-V, M32R etc.
This in contrast to the desktop computer market, which as of this writing (2003) is limited
to just a few competing architectures, mainly the Intel/AMD x86, and the Apple/Motorola/IBM
PowerPC, used in the Apple Macintosh. With the growing acceptance of Java in this field, there
is a tendency to even further eliminate the dependency on specific CPU/hardware (and OS)
requirements.
Standard PC/104 is a typical base for small, low-volume embedded and ruggedized
system design. These often use DOS, Linux or an embedded real-time operating system such as
QNX or Inferno.
A common configuration for very-high-volume embedded systems is the system on a
chip, an application-specific integrated circuit, for which the CPU was purchased as intellectual
property to add to the IC's design. A related common scheme is to use a field-programmable gate
array, and program it with all the logic, including the CPU. Most modern FPGAs are designed
for this purpose.
7.10 TOOLS
Like typical computer programmers, embedded system designers use compilers,
assemblers, and debuggers to develop embedded system software. However, they also use a few
tools that are unfamiliar to most programmers.
Software tools can come from several sources:

 Software companies that specialize in the embedded market.


 Ported from the GNU software development tools.
Sometimes, development tools for a personal computer can be used if the embedded
processor is a close relative to a common PC processor. Embedded system designers also use a
few software tools rarely used by typical computer programmers.
One common tool is an "in-circuit emulator" (ICE) or, in more modern designs, an
embedded debugger. This debugging tool is the fundamental trick used to develop embedded
code. It replaces or plugs into the microprocessor, and provides facilities to quickly load and
debug experimental code in the system. A small pod usually provides the special electronics to
plug into the system. Often a personal computer with special software attaches to the pod to
provide the debugging interface.
Another common tool is a utility program (often home-grown) to add a checksum or
CRC to a program, so it can check its program data before executing it.
An embedded programmer that develops software for digital signal processing often has a
math workbench such as MathCad or Mathematical to simulate the mathematics.
Less common are utility programs to turn data files into code, so one can include any
kind of data in a program. A few projects use Synchronous programming languages for extra
reliability or digital signal processing.
7.11 DEBUGGING
Debugging is usually performed with an in-circuit emulator, or some type of debugger
that can interrupt the microcontroller's internal microcode. The microcode interrupt lets the
debugger operate in hardware in which only the CPU works. The CPU-based debugger can be
used to test and debug the electronics of the computer from the viewpoint of the CPU. This
feature was pioneered on the PDP-11.
As the complexity of embedded systems grows, higher level tools and operating systems
are migrating into machinery where it makes sense. For example, cell phones, personal digital
assistants and other consumer computers often need significant software that is purchased or
provided by a person other than the manufacturer of the electronics. In these systems, an open
programming environment such as Linux, OSGi or Embedded Java is required so that the third-
party software provider can sell to a large market.
7.12 OPERATING SYSTEM
Embedded systems often have no operating system, or a specialized embedded operating
system (often a real-time operating system), or the programmer is assigned to port one of these to
the new system.

7.13 BUILT- IN SELF- TEST


Most embedded systems have some degree or amount of built-in self-test.
There are several basic types.
1. Testing the computer.
2. Test of peripherals.
3. Tests of power.
4. Communication tests.
5. Cabling tests.
6. Rigging tests.
7. Consumables test.
8. Operational test.
9. Safety test.
7.14 START UP
All embedded systems have start-up code. Usually it disables interrupts, sets up the
electronics, tests the computer (RAM, CPU and software), and then starts the application code.
Many embedded systems recover from short-term power failures by restarting (without recent
self-tests). Restart times under a tenth of a second are common.
Many designers have found a few LEDs useful to indicate errors (they help
troubleshooting). A common scheme is to have the electronics turn on all of the LED(s) at reset
(thereby proving that power is applied and the LEDs themselves work), whereupon the software
changes the LED pattern as the Power-On Self Test executes. After that, the software may blink
the LED(s) or set up light patterns during normal operation to indicate program execution
progress or errors. This serves to reassure most technicians/engineers and some users. An
interesting exception is that on electric power meters and other items on the street, blinking lights
are known to attract attention and vandalism.

You might also like