sivaraja b et al, international journal of computer ... · pdf filesivaraja b et al,...

16
PRISONER LOCALIZATION AND ESCAPE PREVENTION INSIDE THE PRISON AUTHORS: SIVARAJA.B MUKIL BHARATHI.RD PURUSHOTHAMAN.D KAVITHA.M(PROFESSOR SRM University ) ABSTRACT Existing researches on location tracking focus either entirely on indoor or entirely on outdoor by using different devices and techniques. Several solutions have been proposed to adopt a single location sensing technology that fits in both situations. This paper aims to track a user position in both indoor and outdoor environments by using a single wireless device with minimal tracking error. RSSI (Received Signal Strength Indication) technique together with enhancement algorithms is proposed to cater this solution. The proposed RSSI-based tracking technique is divided into two main phases, namely the calibration of RSSI coefficients (deterministic phase) and the distance along with position estimation of user location by iterative trilateration (probabilistic phase). A low complexity RSSI smoothing algorithm is implemented to minimize the dynamic fluctuation of radio signal received from each reference node when the target node is moving. Experiment measurements are carried out to analyze the sensitivity of RSSI. The results reveal the feasibility of these algorithms in designing a more accurate real-time position monitoring system. KEYWORDS Global robot localization, Kalman filtering,radio frequency identification (RFID) technology, redundantsensors COMPARISON OF EXISTING AND PROPOSED SYSTEM Existing System Proposed System In this system, there is CCTV device to monitor the localization of the prisoner inside the jail. Need to review the camera continuously until the patient is tracked. Drawbacks Targets may escape in the CCTV camera. In this system, RSSI zigbee is used to track the prisoner location at any time. The RSSI zigbeetechnology helps in reading the prisoner which tells the current location. Advantages Fast response. Low cost and wireless. Sivaraja B et al, International Journal of Computer Technology & Applications,Vol 8(2),204-219 IJCTA | Mar-Apr 2017 Available [email protected] 204 ISSN:2229-6093

Upload: dangdieu

Post on 12-Mar-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

PRISONER LOCALIZATION AND

ESCAPE PREVENTION INSIDE THE

PRISON

AUTHORS:

SIVARAJA.B MUKIL BHARATHI.RD PURUSHOTHAMAN.D

KAVITHA.M(PROFESSOR

SRM University

)

ABSTRACT

Existing researches on location tracking

focus either entirely on indoor or entirely on

outdoor by using different devices and

techniques. Several solutions have been

proposed to adopt a single location sensing

technology that fits in both situations. This

paper aims to track a user position in both

indoor and outdoor environments by using a

single wireless device with minimal tracking

error. RSSI (Received Signal Strength

Indication) technique together with

enhancement algorithms is proposed to cater

this solution. The proposed RSSI-based

tracking technique is divided into two main

phases, namely the calibration of RSSI

coefficients (deterministic phase) and the

distance along with position estimation of

user location by iterative trilateration

(probabilistic phase). A low complexity RSSI

smoothing algorithm is implemented to

minimize the dynamic fluctuation of radio

signal received from each reference node

when the target node is moving. Experiment

measurements are carried out to analyze the

sensitivity of RSSI. The results reveal the

feasibility of these algorithms in designing a

more accurate real-time position monitoring

system.

KEYWORDS Global robot localization, Kalman

filtering,radio frequency identification (RFID)

technology, redundantsensors

COMPARISON OF EXISTING AND

PROPOSED SYSTEM

Existing System Proposed System

In this

system, there

is CCTV

device to

monitor the

localization

of the

prisoner

inside the jail.

Need to

review the

camera

continuously

until the

patient is

tracked.

Drawbacks

Targets may

escape in the

CCTV

camera.

In this system, RSSI

zigbee is used to

track the prisoner

location at any time.

The RSSI

zigbeetechnology

helps in reading the

prisoner which tells

the current location.

Advantages

Fast response.

Low cost and

wireless.

Sivaraja B et al, International Journal of Computer Technology & Applications,Vol 8(2),204-219

IJCTA | Mar-Apr 2017 Available [email protected]

204

ISSN:2229-6093

High cost.

OVER ALL DIAGRAM

Receiver section:section 1 (Prisoner1):

TRASMITTER SCTION2(CONTROL

ROOM):

PROPOSED SYSTEM

In the proposed system, we use RSSI

technology to monitor the location and

position of prisoner will always hold the RSSI

Zigbeeand neuron stimulator. For example, if

the prisoner is try to move outside the jail it

automatically indicate through buzzer in the

control room based on the signal strength. The

control room automatically sends a control to

activate neuron simulator. If the prisoner is try

to break the module is sense by vibration

sensor, it will automatically produce alarm in

the prisoner section and control section. The

RSSI ZIGBEE inside the room reads the

location and distance to the control section. In

the receiver section, the data is gathered and

stored in the PC for the future use. LCD will

display the location and action performed by

the microcontroller.

HARDWARE REQUIRMENTS AND

EXPLANATION

MODULES

1. CONTROLLER MODULE

2. RSSI MODULE

3. SENSOR MODULE

4. AUXILIARY MODULE

PIC Microcontroller

AT89c51 microcontroller

RSSI zigbee

Neuro-stimulator

LCD

Buzzer

Vibration sensor

1. CONTROLLER MODULE

8051

Micro

Controller RSSI

Zigbee

Power

Supply

LCD

PC

Buzzer

pic

Micro

Controller

RSSI

Zigbee

Power

Supply

LCD

Neuro-

stimulator

Vibration

sensor

Sivaraja B et al, International Journal of Computer Technology & Applications,Vol 8(2),204-219

IJCTA | Mar-Apr 2017 Available [email protected]

205

ISSN:2229-6093

PIC Microcontroller:

INTRODUCTION OF PIC16F877A:

The PIC16F877A CMOS FLASH-based 8-bit

microcontroller is upward compatible with the

PIC16C5x, PIC12Cxxx and PIC16C7x

devices. It features 200 ns instruction

execution, 256 bytes of EEPROM data

memory, self programming, an ICD, 2

Comparators, 8 channels of 10-bit Analog-to-

Digital (A/D) converter, 2

capture/compare/PWM functions, a

synchronous serial port that can be configured

as either 3-wire SPI or 2-wire I2C bus, a

USART, and a Parallel Slave Port.

Microchip PIC16F877A Microcontroller

Features

HIGH PERFORMANCE SI RSI CPU

Operating speed: 20 MHz, 200 ns

instruction cycle

Operating voltage: 4.0-5.5V

Industrial temperature range (-40° to

+85°C)

15 Interrupt Sources

35 single-word instructions

All single-cycle instructions except for

program branches (two-cycle)

SPECIAL MICROCONTROLLER

FEATURES:

Flash Memory: 14.3 Kbytes (8192

words)

Data SRAM: 368 bytes

Data EEPROM: 256 bytes

Self-reprogrammable under software

control

In-Circuit Serial Programming via two

pins (5V)

Watchdog Timer with on-chip RC

oscillator

Programmable code protection

Power-saving Sleep mode

Selectable oscillator options

In-Circuit Debug via two pins

Sivaraja B et al, International Journal of Computer Technology & Applications,Vol 8(2),204-219

206

ISSN:2229-6093

PERIPHERAL FEATURES

33 I/O pins; 5 I/O ports

Timer0: 8-bit timer/counter with 8-bit

prescaler

Timer1: 16-bit timer/counter with

prescaler

o 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

o 16-bit Capture input; max

resolution 12.5 ns

o 16-bit Compare; max resolution

200 ns

o 10-bit PWM

Synchronous Serial Port with two modes:

o SPI Master

o I2C Master and Slave

USART/SCI with 9-bit address detection

Parallel Slave Port (PSP)

o 8 bits wide with external RD, WR

and CS controls

Brown-out detection circuitry for Brown-

Out Reset

ANALOG FEATURES

10-bit, 8-channel A/D Converter

Brown-Out Reset

Analog Comparator module

o 2 analog comparators

o Programmable on-chip

voltage reference module

o Programmable input

multiplexing from device

inputs and internal VREF

o Comparator outputs are

externally accessible

MEMORY OF THE PIC16F877

DIVIDED INTO 3 TYPES OF

MEMORIES:

PROGRAM MEMORY- A

memory that contains the program(which we

had written), afte we've burned it. As

a reminder, Program Counter executes

commands stored in the program memory, one

after the other.

DATA MEMORY– This is RAM

memory type, which contains a special

registers like SFR (Special Faction Register)

and GPR (General Purpose Register). The

variables that we store in the Data Memory

during the program are deleted after we turn of

the micro.

These two memories have separated

data buses, which makes the access to

each one of them very easy.

DATA EEPROM (Electrically

Erasable Programmable Read-

Only Memory) - A memory that

allows storing the variables as a result

of burning the written program.

Each one of them has a different role. Program

Memory and Data Memory two memories that

Sivaraja B et al, International Journal of Computer Technology & Applications,Vol 8(2),204-219

IJCTA | Mar-Apr 2017 Available [email protected]

207

ISSN:2229-6093

are needed to build a program, and Data

EEPROM is used to save data after the

microcontroller is turn off.

Program Memory and Data EEPROM they are

non-volatile memories, which store the

information even after the power is turn off.

These memories called Flash OrEEPROM. In

contrast, Data Memory does not save the

information because it needs power in order to

maintain the information stored in the chip.

PIC16F87XA PROGRAM MEMORY

The PIC16F87XA devices have a 13-bit

program counter capable of addressing an 8K

word x 14 bit program memory space. This

memory is used to store the program after we

burn it to the microcontroller. The

PIC16F876A/877A devices have 8K words x

14 bits of Flash program memory that can be

electrically erased and reprogrammed. Each

time we burn program into the micro, we erase

an old program and write a new one.

PIC16F876A/877A program memory map and

stack

Program Counter (PC) keeps track of the

program execution by holding the address of

the current instruction. It is automatically

incremented to the next instruction during the

current instruction execution.

The PIC16F87XA family has an 8-level deep

x 13-bit wide hardware stack. The stack space

is not part of either program or data space and

the stack pointer is not readable or writable. In

the PIC microcontrollers, this is a special

block of RAM memory used only for this

purpose.

The CALL instruction is used to jump to a

subroutine, which must be terminated with the

RETURN instruction. CALL has the address

Sivaraja B et al, International Journal of Computer Technology & Applications,Vol 8(2),204-219

IJCTA | Mar-Apr 2017 Available [email protected]

208

ISSN:2229-6093

of the first instruction in the subroutine as its

operand. When the CALL instruction is

executed, the destination address is copied to

the PC. The PC is PUSHed onto the stack

when a CALL instruction is executed, or an

interrupt causes a branch. The stack is POP’ed

in the event of a RETURN, RETLW or a

RETFIE instruction execution.

The stack operates as a circular buffer. This

means that after the stack has been PUSHed

eight times, the ninth push overwrites the

value that was stored from the first push. The

tenth push overwrites the second push (and so

on).

Each time the main program execution starts at

address 0000 - Reset Vector. The address 0004

is “reserved” for the “interrupt service routine”

(ISR).

If we plan to use an interrupt, our program will

begin after the Interrupt Vector; and if not we

can start to write from the beginning of the

Reset Vector.

Here is a code where we use interrupt:

ORG 0x000 ; processor reset vector

goto main ; go to beginning of main program

ORG 0x004 ; interrupt vector location

movwfw_temp ; save off current W register

contents

movfSTATUS,w ; move status register into W

register

movwfstatus_temp ; save off contents of

STATUS register

.

.

RETFIE

main

Some of the memory is divided into the pages

that are designed for write/burn the program

into them; the remaining memory (Stack,

Interrupt Vector, and Reset Vector) is

hardware registers.

Attention!

Program Memory is divided into the pages,

where the program is stored. Data Memory is

divided into the banks. The banks are located

inside the RAM, where the special registers

and the data located.

PIC16F87XA DATA MEMORY

ORGANAIZATION

The data memory is partitioned into multiple

banks which contain the General Purpose

Registers and the Special Function Registers.

Number of banks may vary depending on the

microcontroller; for example, micro PIC16F84

has only two banks.

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. While program is being executed, it is

working with the particular bank. The default

bank is BANK0.

Sivaraja B et al, International Journal of Computer Technology & Applications,Vol 8(2),204-219

IJCTA | Mar-Apr 2017 Available [email protected]

209

ISSN:2229-6093

To access a register that is located in another

bank, one should access it inside the program.

There are special registers which can be

accessed from any bank, such as STATUS

register.

PIC16F876A/877A register file map

In order to start programming and build

automated system, there is no need to study all

the registers of the memory map, but only a

few most important ones:

STATUS register – changes/moves

from/between the banks

PORT registers – assigns logic values

(“0”/”1”) to the ports

TRIS registers - data direction register

(input/output)

You can learn about other registers at a later

stage or as needed.

STATUS REGISTER

In most cases, this register is used to switch

between the banks (Register Bank Select), but

also has other capabilities.

PIC STATUS register

With the help of three left bits (IRP, RP1, and

RP0) one can control the transition between

the banks:

IRP - Register Bank Select bit, used

for indirect addressing method.

RP1:RP0: - Register Bank Select

bits, used for direct addressing

method.

To distinguish between the two methods, at

this point, the will use the definition of

fundamental concepts. Later on, the two

methods will be studied in detail.

When the IRP Equal to 0, the program will

work with banks 0, 1.

When the IRP Equal to 1, the program will

work with banks 2, 3.

Sivaraja B et al, International Journal of Computer Technology & Applications,Vol 8(2),204-219

IJCTA | Mar-Apr 2017 Available [email protected]

210

ISSN:2229-6093

The following table demonstrates, which of

the Banks the program is working with, based

on the selection of the RP0 and RP1 bits:

RP1:RP0 BANK

00 0

01 1

10 2

11 3

An example of using STATUS register and

Register Bank Select bit:

1. bsf STATUS, 5 ; Change to Bank 1

2. clrf TRISB ; Set PORTB as output

3. bcf STATUS, 5 ; Change to Bank 0

In the first line, we are in changing/setting the

5th bit, RP0, in the STATUS register to 1, and

thus, base on the table we are

switching/selecting Bank 1. After PortB was

set as output in the second line, we switched

back to Bank 0 by in changing/setting the 5th

bit, RP0, in the STATUS register to 0, in the

third line.

C: Carry/borrow bit (ADDWF,

ADDLW,SUBLW,SUBWF instructions)

1 = A carry-out from the Most Significant bit

of the result occurred

0 = No carry-out from the Most Significant bit

of the result occurred

An example of using STATUS register and

Carry/borrow bit:

1. Movlw 200

2. Addwf 100, 0

In this example, we are assigning value of 200

to the W (working) register. Then, we are

adding the value of 100 and the W register

together. The result is stored in W register and

should be 300 (200+100).

However, the maximum value is 256, resulting

in carry out. The C (bit 0) of the STATUS

register becomes 1 (C = 1). Register W will

contain the reminder: 44.

DC: Digit carry/borrow bit (ADDWF,

ADDLW,SUBLW,SUBWF instructions) (for

borrow, the polarity is reversed)

1 = A carry-out from the 4th low order bit of

the result occurred

0 = No carry-out from the 4th low order bit of

the result

Z: Zero bit

1 = The result of an arithmetic or logic

operation is zero

0 = The result of an arithmetic or logic

operation is not zero

The bits 3 and 4 are used with WDT -

Watchdog Timer.

PD: Power-down bit

1 = After power-up or by the CLRWDT

instruction

0 = By execution of the SLEEP instruction

Sivaraja B et al, International Journal of Computer Technology & Applications,Vol 8(2),204-219

IJCTA | Mar-Apr 2017 Available [email protected]

211

ISSN:2229-6093

TO: Time-out bit

1 = After power-up, CLRWDT instruction or

SLEEP instruction

0 = A WDT time-out occurred

PORT REGISTER

The role of the PORT register is to receive the

information from an external source (e.g.

sensor) or to send information to the external

elements (e.g. LCD). The 28-pin devices have

3 I/O ports, while the 40/44-pin devices, like

PIC16F877, have 5 I/O ports located in the

BANK 0.

1. 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.

Clearing a TRISA bit (= 0) will make the

corresponding PORTA pin an output.

2. 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.

Clearing a TRISB bit (= 0) will make the

corresponding PORTB pin an output.

3. 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.

Clearing a TRISC bit (= 0) will make the

corresponding PORTC pin an output.

4. PORTD is an 8-bit port with Schmitt

Trigger input buffers. Each pin is

individually configurable as an input or

output.

5. 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.

We can control each port by using an assigned

address of specific port, but there is much

easier way to control the port. We are allowed

to use the names of the ports without

considering their addresses.

For example:

# define SWITCH PORTA, 0

We define a variable named SWITCH, which

received a value of bit number 0 of the

PORTA. Usually we define the ports at the

beginning of the program, and then we use

only the given names.

TRIS REGISTER

The TRIS register is data direction register

which defines if the specific bit or whole port

will be an input or an output. Each PORT has

its own TRIS register. Here's a map of the

locations:

Sivaraja B et al, International Journal of Computer Technology & Applications,Vol 8(2),204-219

IJCTA | Mar-Apr 2017 Available [email protected]

212

ISSN:2229-6093

BANK0 BANK1

PORTA TRISA

PORTB TRISB

PORTC TRISC

PORTD TRISD

PORTE TRISE

The default mode of each TRIS is input. If you

want to set a specific port as exit you must

change the state of the TRIS to 0.

Keep in mind: to change a specific port to an

output, one should first move to the BANK1,

make the change, and then return to BANK0.

The default state of the banks is BANK0.

The running program is working only with one

bank at all time. If not set otherwise, then as

stated, the default bank is BANK0. Part of the

registers located inside BANK0, and some are

not. When we need to access a register that is

not located inside BANK0, we are required to

switch between the banks.

For example, the access to PORT registers is

done inside BANK0. However, to change port

from an input to an output and vice versa, we

need to access TRIS register that is located

inside BANK1. From the moment we moved

to the BANK1, the program will always work

with BANK1; at this time, to access registers

inside BANK0, we will have to return to the

situation in which our program will work with

BANK0.

Direct Addressing: Using this method we are

accessing the registers directly by detecting

location inside Data Memory from Opcode

and by selecting the bank using bits RP1 and

RP0 of the STATUS register.

DIRECT AND INDIRECT REGISTER

Indirect Addressing: To implement indirect

addressing, a File Select Register (FSR) and

indirect register (INDF) are used. In addition,

when using this method we choose bank using

bit IRP of the STATUS register. Indirect

addressing treated like a stack pointer,

allowing much more efficient work with a

number of variables. INDF register is not an

actual register (it is a virtual register that is not

found in any bank).

Don’t be confused! There is SFR (Special

Function Register) - special registers of RAM,

and there is FSR (File Select Register).

The following figure shows the two addressing

methods:

Sivaraja B et al, International Journal of Computer Technology & Applications,Vol 8(2),204-219

IJCTA | Mar-Apr 2017 Available [email protected]

213

ISSN:2229-6093

Pin diagram of PIC16F877A

To the left you can see the direct addressing

method, where the bank selection is made by

RP bits and the referencing is made directly

from memory Opcode by using the variable

name.

To the right you can see the indirect

addressing method, where the bank selection is

made by IRP bit and accessing the variable by

pointer FSR.

Let’s explore the differences between the 2

methods:

We want to assign number 5 to the variable

TEMP located at address 0X030. In the first

row of each example, we will define the

variable TEMP at the address 0X030.

Example of direct addressing:

1. TEMP Equ 0x030

2. Movlw 5

3. Movwf TEMP

It's easy to understand, that direct addressing

method means working directly with the

variables. In the second line we put the

number 5 into the working register W, and in

the line 3, the content of the W passes to the

TEMP variable.

Example of indirect addressing:

1. TEMP Equ 0x030

2. Movlw 0x030

3. Movwf FSR

4. Movlw 5

5. Movwf INDF

In the second line, we put a value into the W

register. In the third line, the value passes to

the FSR register, and from this moment FSR

points to the address of the TEMP variable. In

the fourth line, the number 5 passes to the W

register, and in the fifth line, we move the

contents of W register (which is 5) to the

INDF. In fact INDF performs the following: it

takes the number 5 and puts it in the address

indicated by FSR register.

POWER SUPPLY AND 8051

MICRO CONTROLLER

This section describes how to

generate +5V DC power supply

Sivaraja B et al, International Journal of Computer Technology & Applications,Vol 8(2),204-219

IJCTA | Mar-Apr 2017 Available [email protected]

214

ISSN:2229-6093

The power supply section is the

important one. It should deliver

constant output regulated power

supply for successful working of the

project. A 0-12V/1 mA transformer is

used for this purpose. The primary of

this transformer is connected in to

main supply through on/off switch&

fuse for protecting from overload and

short circuit protection. The secondary

is connected to the diodes to convert

12V AC to 12V DC voltage. And

filtered by the capacitors, which is

further regulated to +5v, by using IC

7805

MICROCONTROLLER:

A microcontroller (also microcontroller unit,

MCU or µC) is a small computer on a single

integrated circuit consisting of a relatively

simple CPU combined with support functions

such as a crystal oscillator, timers and etc.

Microcontrollers are used in automatically

controlled products and devices, such as

automobile engine control systems, remote

controls, office machines, appliances, power

tools, and toys.

8051 schematic

The input and output device or

connected to port pins of the

controller. Typical input and

output devices include switches,

relays, solenoids, LEDs, small or

custom LCD displays, radio

frequency devices, and sensors for

data such as temperature,

humidity, light level etc. The

device, such as GSM, GPS and

RFID are interfaced to the

controller via serial

communication i.e. TX and RX

pins.

2. RSSI MODULE

RSSI ZIGBEE

The ZigBee (cc2530) is a true system on chip

(SoC) solution for IEEE 802.15.4 applications.

It combines the excellent performance of a

leading RF transreceiver with an industry-

Sivaraja B et al, International Journal of Computer Technology & Applications,Vol 8(2),204-219

IJCTA | Mar-Apr 2017 Available [email protected]

215

ISSN:2229-6093

standard enhanced 8051 MCU, in system

programmable flash memory, 8 kB RAM, and

many other powerful features. Received Signal

Strength Indicator (RSSI) is a measurement of

power present in a received radio signal.

FEATURES

• Supply voltage: 5v DC

• RS232 output

• Output power: up to 4.5dBm–

• Detection range: (10-20) m

• Frequency: 2.4GHz

• Ultra-low power consumption

APPLICATIONS

• Remote control systems

• Home/building automation

• Lighting systems

• Consumer electronics

• Health care

3. SENSOR MODULE

VIBRATION SENSOR

Sensor is mounted at the bottom of the

unit. The unit should be fixed with the

vibrating body firmly the sensitivity is

adjusted for the required vibration/ shock is

detected the output goes low and the delay is

provided for proper operation vibrating

frequency and amplitude can be detected.

SPEC:

Supply- DC +2v ripple free

Output current-PNP 100ma

Analog o/p- 10ma

Sensors available to detect the flame / fire

smoke flow level speed position Temp Bio

medical application.

Special sensor can be developed against

specific requirement.

4. AUXILIARY MODULE

LIQUID CRYSTAL

DISPLAYS:

The LCD standard requires 3 control lines and

8 I/O lines for the data bus.

• 8 data pins D7:D0

Bi-directional data/command pins.

Alphanumeric characters are sent in

ASCII format.

• RS: Register Select

RS = 0 -> Command Register is

selected

RS = 1 -> Data Register is selected

• R/W: Read or Write

0 -> Write, 1 -> Read

• E: Enable (Latch data)

The 8 data lines are connected to

PORT 1 of 8051 microcontroller. The

three control lines( RS,RW and EN )

are connected to PORT 3.5,3.6 and 3.7

respectively.

SOFTWARE EXPLANATION

Embedded C:

As time progressed, use of

microprocessor-specific assembly-only as the

programming language reduced and embedded

systems moved onto C as the embedded

Sivaraja B et al, International Journal of Computer Technology & Applications,Vol 8(2),204-219

IJCTA | Mar-Apr 2017 Available [email protected]

216

ISSN:2229-6093

programming language of choice. C is the

most widely used programming language for

embedded processors/controllers. Assembly is

also used but mainly to implement those

portions of the code where very high timing

accuracy, code size efficiency, etc. are prime

requirements.

Initially C was developed by Kernighan and

Ritchie to fit into the space of 8K and to write

(portable) operating systems. Originally it was

implemented on UNIX operating systems. As

it was intended for operating systems

development, it can manipulate memory

addresses. Also, it allowed programmers to

write very compact codes. This has given it the

reputation as the language of choice for

hackers too.

As assembly language programs are specific to

a processor, assembly language didn’t offer

portability across systems. To overcome this

disadvantage, several high level languages,

including C, came up. Some other languages

like PLM, Modula-2, Pascal, etc. also came

but couldn’t find wide acceptance. Amongst

those, C got wide acceptance for not only

embedded systems, but also for desktop

applications. Even though C might have lost

its sheen as mainstream language for general

purpose applications, it still is having a strong-

hold in embedded programming. Due to the

wide acceptance of C in the embedded

systems, various kinds of support tools like

compilers & cross-compilers, ICE, etc. came

up and all this facilitated development

of embedded systems using C.

MPLAB:

Microchip has a large suite of software

and hardware development tools integrated

within one software package called MPLAB

Integrated Development Environment (IDE).

MPLAB IDE is a free, integrated toolset for

the development of embedded applications on

Microchip's PIC and dsPIC microcontrollers. It

is called an Integrated Development

Environment, or IDE, because it provides a

single integrated environment to develop code

for embedded 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 software simulator to

hardware debug and programming tools is

done in a flash because MPLAB IDE has the

same user interface for all tools.

COMPONENTS OF MPLAB IDE: The

MPLAB IDE has both built-in components

and plug-in modules to configure the system

for a variety of software and hardware tools.

PROJECT MANAGER: The project

manager provides integration and

Sivaraja B et al, International Journal of Computer Technology & Applications,Vol 8(2),204-219

IJCTA | Mar-Apr 2017 Available [email protected]

217

ISSN:2229-6093

communication between the IDE and the

language tools.

EDITOR: The editor is a full-featured

programmer's text editor that also serves as a

window into the debugger.

ASSEMBLER/LINKAGE LANGUAGE

TOOLS: The assembler can be used stand-

alone to assemble a single file, or can be used

with the linker to build a project from separate

source files, libraries and recompiled objects.

The linker is responsible for positioning the

compiled code into memory areas of the target

microcontroller.

DEBUGGER: The Microchip debugger

allows breakpoints, single stepping, watch

windows and all the features of a modern

debugger for the MPLAB IDE. It works in

conjunction with the editor to reference

information from the target being debugged

back to the source code.

EXECUTION ENGINES: There are

software simulators in MPLAB IDE for all

PICmicro MCU and dsPIC DSC devices.

These simulators use the PC to simulate the

instructions and some peripheral functions of

the PICmicro MCU and dsPIC DSC devices.

Optional in-circuit emulators and in-circuit

debuggers are also available to test code as it

runs in the applications hardware.

Key Features

MPLAB IDE is a Windows® Operating

System (OS) based Integrated Development

Environment for the PIC MCU families and

the dsPIC Digital Signal Controllers.

The MPLAB IDE provides the ability to:

Create and edit source code using the built-in

editor.

Assemble, compile and link source code.

Debug the executable logic by watching

program flow with the built-in simulator or in

real time with in-circuit emulators or in-circuit

debuggers.

Make timing measurements with the simulator

or emulator.

View variables in Watch windows.

Program firmware into devices with device

programmers

KEIL

Compilers are programs used to

convert a High Level Language to object code.

Desktop compilers produce an output object

code for the underlying microprocessor, but

not for other microprocessors. I.E the

programs written in one of the HLL like ‘C’

will compile the code to run on the system for

a particular processor like x86 (underlying

microprocessor in the computer). For example

compilers for Dos platform is different from

the Compilers for Unix platform

So if one wants to define a compiler

then compiler is a program that

translates source code into object code. The

compiler derives its name from the way it

works, looking at the entire piece of source

code and collecting and reorganizing

Sivaraja B et al, International Journal of Computer Technology & Applications,Vol 8(2),204-219

IJCTA | Mar-Apr 2017 Available [email protected]

218

ISSN:2229-6093

the instruction. See there is a bit little

difference between compiler and

an interpreter. Interpreter just interprets whole

program at a time while compiler analyzes and

execute each line of source code in succession,

without looking at the entire program.

The advantage of interpreters is that they

can execute a program immediately. Secondly

programs produced by compilers run much

faster than the same programs executed by an

interpreter. However compilers require some

time before an executable program emerges.

Now ascompilers translate source code into

object code, which is unique for each type of

computer, many compilers are available for the

same language.

SUMMARY AND CONCLUSIONS

The RSSI and the phase can be considered two

redundant measurements of the same quantity:

the distance of the robot from the projection of

the tag on the floor. However, the information

delivered by these two quantities presents

different features, for some aspects

complementary: phase measurements are more

sensitive than the RSSI to a change in the

robot position but suffer from a cycle

ambiguity, which complicates matters. The

optimal combination of the two measurements

is not straightforward and represents a

challenging problem,dual in a sense to the

problem of the dynamic allocation of

redundant actuators. An effective solution is

proposed in this paper by considering an

algorithm characterized by two stages: in the

first stage, only the RSSI is used for estimation

purposes, while in the second stage, also the

phase measurements are considered. A

dynamic criterion, based on the observation of

the variance of the estimation of the tag

coordinates, is adopted to decidethe switching

time between the two stages, which is

performed independently on each tag. The

proposed two-stage algorithm estimates the

robot pose and simultaneously improves the

estimate on the tag coordinates.Errors up to

about 1 m can be tolerated by the algorithm on

the initial estimate of the tag positions. If no

informationis available at the beginning on the

tag coordinates, rangeonly SLAM techniques

could be considered to solve the problem,

capitalizing on the ideas presented in this

paper to properly combine RSSI and phase

measurements.

REFFERENCE

1. Jon, "Designing with 802.15.4 and

ZigBee", Industrial Wireless

Applications Summit San Diego, pp.

11, Mar. 2004.

2. I.F. Akyyiliz, S. Weilian, Y.

Sankarasubramaniam, E. Cayirci, "A

Survey on Sensor Networks", IEEE

Communications Magazine, pp. 102-

114, Aug. 2

3. K. Kaemarungsi, Design of Indoor

positioning system based on location

fingerprint technique, University of

Pittsburgh, 2005

.

Sivaraja B et al, International Journal of Computer Technology & Applications,Vol 8(2),204-219

IJCTA | Mar-Apr 2017 Available [email protected]

219

ISSN:2229-6093