Design and Development of Based SMS Controlled Home Automation System

Tahmina Begum

DEPARTMENT OF ELECTRICAL & ELECTRONIC ENGINEERING DHAKA UNIVERSITY OF ENGINEERING AND TECHNOLOGY, GAZIPUR

July 2010

i

Design and Development of Microcontroller Based SMS Controlled Home Automation System

A thesis submitted to the Department of Electrical and Electronic Engineering, DUET, Gazipur in partial fulfillment of the requirements for the degree of

MASTER OF SCIENCE IN ELECTRICAL AND ELECTRONIC ENGINEERING

by

Tahmina Begum

DEPARTMENT OF ELECTRICAL & ELECTRONIC ENGINEERING DHAKA UNIVERSITY OF ENGINEERING AND TECHNOLOGY, GAZIPUR

July 2010

ii

iii DECLARATION

I hereby declare that this thesis or any part of the thesis has not been submitted elsewhere for the award of any degree or diploma.

Signature of the candidate

(Tahmina Begum)

iv ACKNOWLEDGEMENTS

First of all, I would like to thank Almighty Allah for providing me the health, courage and strength necessary to start and complete this work. Alhamdulillah. I feel privileged and proud to acknowledge my profound gratitude to Professor Dr. M. Bashir Uddin, Dean of the faculty of EEE, DUET, Gazipur, for his kind consent to select this topic, constant guidance, supervision and invaluable suggestions, inspiration, support, patience, and especially his encouragement to this thesis work. I am deeply indebted and grateful to Professor Mohammad Abdul Mannan, Head, Department of EEE, DUET, Gazipur, for his encouragement and valuable advice during this work. I would like to show my gratitude to my Co-Supervisor, Md. Shazzat Hossain, Assistant Professor, Department of EEE, DUET, Gazipur, for his guidance. I am highly grateful to Professor Dr. Md. Shaheen Choudhury, Department of EEE, DUET, Gazipur, for his constant guidance, encouragement and valuable advice during this work. I also would like to thank all my fellow friends for their contribution in giving me a moral support throughout this thesis work. I am also thankful to the librarian and the laboratory staffs of Dhaka University of Engineering and Technology (DUET) for their assistance in this thesis work. Last but not least, to all my beloved family members, especially my mother, elder brother Engineer Mr. Faizullah and my husband Dr. Mohammad Salman who were always, stand by my side to encourage, advice, comfort, cherish, and support me during this entire thesis work. Lastly, I really appreciate to have this responsibility to finish this work. This task has taught a lot of lesson and knowledge which is much valuable for me in the future.

July, 2010 Tahmina Begum

v ABSTRACT

This thesis mainly focuses on the controlling of home appliances remotely and providing security when the user is away from the place. The system is SMS based and uses wireless technology to revolutionize the standards of living. This system provides ideal solution to the problems faced by home owners in daily life. The system is wireless therefore more adaptable and cost-effective. The home appliances control system provides control on automation of various home appliances using SMS. The system is capable enough to receive the instruction from user via SMS by a cell phone to change the condition of the home appliance according to the user’s needs and requirements. The system uses GSM technology thus providing ubiquitous access to the system for automated appliance control. The whole system is comprised of two components; one is hardware includes, PIC Microcontroller, GSM Module, Cell phone, power supply, sensors and relays. Other part is to develop master software based on PICBasic Pro and EPIC WIN software which is capable of remote controlling and monitoring appliances and devices via the SMS. The Prototype developed in the premises of Dhaka University of Engineering and Technology (DUET) shows the ability to receive and transmit back the SMS to communicate with the user and automate the home appliances. Results proved that home appliances control is possible by this system with less human dependence. Keywords: Short Message Service (SMS), Global System for Mobile communication (GSM), ubiquitous access and Automation.

vi CONTENTS Pages Board of Examiners iii Declaration iv Acknowledgement v Abstract vi List of Figures xiii List of Tables xv xvi List of Abbreviations

CHAPTER-1 INTRODUCTION 1.0 Introduction 1 1.1 Review 2 1.2 Some Important Terms Related to Home Automation 3 1.2.1 GSM Network 3 1.2.2 GSM Module 3 1.2.3 Subscriber Identity Module (SIM) 3 1.2.4 Short Message Service (SMS) 4 1.2.5 Microcontroller 4 1.2.6 Software 5 1.2.6.1 PicBasic Pro Software 5 1.2.6.2 EPIC Win 5 1.3 Aims and Objectives 6 1.4 Organization of the Thesis 6 CHAPTER-2 HOME APPLIANCES CONTROL SYSTEM 2.0 An Intelligent Home 8 2.1 Types of Home Automation Controls 10 2.1.1 Individual Control Devices 10 2.1.2 Distributed Control Systems 11 2.1.3 Centrally Controlled Systems 11 2.2 Appliances usually controlled 11

vii 2.2.1 Lighting, fan, air conditioner and other electrical devices 11 2.2.2 Security Systems and Access Control 11 2.2.3 Home Theater and Entertainment 11 2.2.4 Phone System 12 2.2.5 Thermostat 12 2.2.6 Irrigation 12 CHAPTER-3 HARDWARE COMPONENTS 3.0 Microcontroller 14 3.1 Components of Microcontroller 15 3.1.1 /CPU 16 3.1.2 Memory in a Microcontroller 16 3.1.2.1 Read Only Memory (RAM) 16 3.1.2.2 Random Access Memory 17 3.1.3 The I/O (Input/Output) Ports 18 3.1.4 Embedded Design 19 3.1.4.1 Interrupts 20 3.1.4.2 Programs 20 3.1.4.3 Other Microcontroller features 20 3.1.5 List of common 21 3.1.6 PIC Microcontroller 25 3.1.7 Architecture of PIC Microcontroller 25 3.1.7.1 Data space (RAM) 25 3.1.7.2 Code space 26 3.1.7.3 Word size 26 3.1.7.4 Stacks 26 3.1.7.5 Instruction set 27 3.1.7.6 Performance 27 3.1.7.7 Limitations 28 3.1.8 8/16/24-bit PIC Microcontroller product families 29 3.1.9 Selection of PIC Microcontroller (PIC 16F877A) for this 29 study

viii 3.1.10 Memory organization 37 3.1.10.1 Program memory organization 37 3.1.10.2 Data memory organization 37 3.2 GSM Module 38 3.2.1 Features of GSM Module SIM 300 39 3.2.2 Functional diagram of GSM Module SIM 300 42 3.2.3 Operating modes of GSM Module SIM 300 44 3.2.4 SIM Card interface 44 3.3 SIM Card holder 46 3.4 Subscriber Identity Module (SIM) 47 3.4.1 Smart Card Technology 48 3.4.2 Issuer Identification Number 48 3.4.3 Usage in mobile phone standard 49 3.4.4 Operating systems 49 3.4.5 Data storage 50 3.4.6 Integrated Circuit Card ID (ICCID) 50 3.4.7 IMSI 50 3.4.8 Authentication Key (Ki) 50 3.4.9 Authentication Process 51 3.4.10 Location Area Identity 51 3.4.11 SMS Messages and Contacts 52 3.4.12 SIM Serial Number (SSN) Digits 52 3.5 Power Supply 52 3.5.1 Electrical Power Supply 53 3.5.2 Power Supply Types 53 3.5.2.1 Battery Power Supply 54 3.5.2.2 Linear Power Supply 55 3.5.2.3 AC/DC Power Supply 55 3.5.2.4 Switched Mode Power Supply 56 3.5.2.5 Programmable Power Supply 57

ix 3.5.2.6 Uninterruptible Power Supply 57 3.5.2.7 High Voltage Power Supply 58 3.6 Liquid Crystal Display 58 3.6.1 Overview 59 3.6.2 Specifications 60 3.6.3 Colour Displays 61 3.6.4 Passive Matrix and Active Matrix addressed LCDs 62 3.6.5 Drawbacks of LCD Technology 64 CHAPTER-4 SOFTWARE COMPONENTS 4.0 PICBasic Pro and PICBasic Pro Compiler 68 4.0.1 Additional commands available only in PICBASIC PRO 70 4.0.2 PICBASIC PRO advantages 70 4.0.3 PICBASIC PRO Compiler Instruction Set 72 4.0.4 Functions / Operators 74 4.0.5 PICBASIC Compiler Features 75 4.0.6 Structure of a Compiled Program 75 4.0.7 Target Specific Headers 75 4.0.8 The Library Files 76 4.0.9 PBP Generated Code 76 4.0.10 .ASM File Structure 77 4.1 EPIC programmer 78 4.1.1 EPIC Programmer for PICmicro controllers 78 4.1.2 EPICWIN and EPIC Programmer 79 4.1.2.1 Software Installation 79 4.1.2.2 Hardware Installation 79 4.1.3 General Operation 80 4.1.4 EPIC for Windows 95/98/ME/NT/2000/XP 80 4.1.5 EPICWin Controls 81 4.1.6 EPICWin Menus 83 4.1.6.1 File Menu 83

x 4.1.6.2 View Menu 83 4.1.6.3 Run Menu 84 4.1.6.4 Configuration Menu 84 4.1.6.5 Options Menu 84 4.1.6.6 Help Menu 85 4.1.7 EPICWin Command Line Parameters 86 CHAPTER-5 METHODOLOGY 5.0 Design Overview 87 5.1 Hardware implementations 92 5.1.1 The PIC16F877A Microcontroller 92 5.1.1.1 Features of PIC16F877A Microcontroller 93 5.1.2 GSM Module SIM300CZ 94 5.1.3 Interfacing of Microcontroller with GSM Module 95 5.1.4 Liquid Crystal Display (LCD) 96 5.1.5 Interfacing of Microcontroller with LCD 97 5.1.6 Interfacing Circuit (Microcontroller to Load Devices) 98 5.1.7 Short Message Service (SMS) 99 5.1.8 Interfacing Circuit (GSM Module to SIM Card) 99 5.1.9 Power Supply to the System 100 5.2 Software Implementations 101 5.2.1 Steps of writing program in PICBasic Pro 101 5.2.2 Steps of loading program in to microcontroller by using 104 EPIC WIN soft ware

5.3 Sending SMS and display 107 5.4 Functioning of the Device 109 5.4.1 Steps of the functioning of the Device 109 CHAPTER-6 RESULTS

6.0 Hardware part testing 111 6.1 Software part testing 111

xi CHAPTER-7 DISCUSSION Discussion 113 CHAPTER-8 CONCLUSION AND FUTURE WORK Conclusion and future work 117 REFERENCES References 118 APPENDICES Program used in the device 1-4

xii LIST OF FIGURES

Figures Pages

Fig. 3.1 Main components of a microcontroller 15

Fig .3.2 Microcontroller ROM/RAM 18

Fig .3.3 Microcontroller I/O ports 19

Fig.3.4 PIC16F877A Block Diagram 31

Fig. 3.5 Pin diagram of PIC16F877A 32

Fig. 3.6 PIC16F877A Program Memory Map and Stack 37

Fig. 3.7 Functional Diagram of GSM Module SIM 300CZ 42

Fig. 3.8 Top view of GSM Module SIM300CZ 43

Fig.3.9 Pin diagram of GSM Module SIM300 CZ 43

Fig. 3.10 Reference Circuit of the 6 Pins SIM Card 45

Fig. 3.11 Diagram of the SIM Card Holder 46

Fig.3.12 Diagram of the 6 pin SIM Card 46

Fig. 3.13 A General Purpose Alphanumeric LCD 63

Fig. 4.1 EPICWin Controls 81

Fig.5.1 Project development flow chart 88

Fig.5.2 Block diagram of the project 89

Fig 5.3 Flowchart of functioning of Device 90

Fig.5.4 PCB Layout 91

Fig.5.5 Schematic diagram of the project 92

Fig.5.6 Interfacing of Microcontroller with GSM Module 95

Fig.5.7 Reflective twisted nematic liquid crystal display 96

Fig.5.8 Interfacing of Microcontroller with LCD 97

Fig.5.9 Interfacing of Microcontroller with load Devices 98

Fig.5.10 Interfacing of GSM Module to SIM Card 99

xiii Fig.5.11 Power Supply Unit 100

Fig.5.12 Camera picture of SMS display 107

Fig.5.13 Front Photograph of the Device 108

Fig.5.14 Front Photograph of the Device in functional state 108

Fig.5.15 Bottom view of the Device 109 Fig.6.1 Sequence of loading the program to PIC 112

xiv

LIST OF TABLES Tables Pages

Comparison of different technology used for home Table 2.1 13 automation Table 3.1 Features of PIC16F877A Device 30 Table 3.2(a) PIC16F874A/877A Pinout Description 33 Table 3.2(b) PIC16F874A/877A Pinout Description 34 Table 3.2() PIC16F874A/877A Pinout Description 35 Table 3.2(d): PIC16F874A/877A Pinout Description 36 Table3.3(a) Key Features of GSM Module SIM 300CZ 40 Table 3.3(b) Key Features of GSM Module SIM 300CZ 41 Overview of operating modes of GSM Module SIM Table 3.4 44 300CZ Table 3.5 Pin define of the SIM interface 45 Table 3.6 Pin description of the SIM Interface 47 Comparison between PICBasic and PICBasic Pro Table 4.1 69 Compilers

xv LIST OF ABBREVIATIONS

A/D Analog-to-Digital ADC Analogue to Digital Converter AFFS Advanced Fringe Field Switching

ASM file Assembler Source Language file AT Attention AuC Authentication Center LAI BAS BASIC language source code file

BGAN Broadband Global Area Network CDMA Code Division Multiple Access

CISC Complex instruction set computer or computing

CPU Central Processing Unit

CSTN Color-STN

D/A Digital-to-Analog

DAC Digital to Analogue Converters

DCS Digital Cellular System

DSTN Double-Layer

DTMF Dual-Tone Multi-Frequency

EDGE Enhanced Data Rates for Global Evaluation

EEPROM Electrically Erasable Programmable Read-Only Memory

E-GSM Enhanced-Global System for Mobile Communication

EGSM Extended GSM

EPIC Explicitly Parallel Instruction Computing

EPROM Erasable Programmable Read-Only Memory

xvi FSR File Select Register

GPR General Purpose Registers

GPRS General Packet Radio System

GSM Global System for Mobile Communications

HACS Home Appliance Control System

I/O Input/Output

ICCID Integrated Circuit Card ID

IMSI International Mobile Subscriber Identity

INDF Indirect Register

IPS In-plane switching

ISR Interrupt Service Routine

ITO Indium Tin Oxide

ITU International Telecommunication Union

Ki Authentication Key

LAI Local Area Identity SMSC (Short Message Service Center)

LAN Local Area Network

LCD Liquid Crystal Display

LED Light Emitting Diode

MCC Mobile Country Code

MII Major Industry Identifier

MNC Mobile Network Code

MVNO Mobile Virtual Network Operator

PBP PICBasic Pro Compiler

PC Program Counter

xvii PCS Personal Communication Service

PDA Personal Digital Assistant

PIC Peripheral Interface Controller

PIN Personal Identity Number

PIT Programmable Interval Timer

PSU Power Supply Unit

PUK Personal Unblocking Key

PWM Pulse Width Modulation

RAM Random Access Memory

RAND Random Number

RF Radio frequency

RISC Reduced Instruction Set Computer

ROM Read-Only Memory

R-UIM Removable User Identity Module

RX Receive

SC Stack Pointer

SDN Service Dialing Numbers

SFR Special Function Registers

SIM Subscriber Identity Module

SMPS Switched-mode Power Supply

SMS Short Message Services

SMSC Short Message Service Center

SPN Service Provider Name

SRAM Static Random Access Memory

xviii SRES Signed Response

SSN SIM Serial Number

STN Super-Twisted Nematic

TCP/IP Transmission Control Protocol/Internet Protocol

TFTs Thin-Film Transistors

TN Twisted nematic

TPU Time Processing Unit

TTL Transistor-Transistor Logic

TX Transmit

UART Universal Asynchronous Receiver/Transmitter

UICC Universal Integrated Circuit Card

UMTS Universal Mobile Telephony System

UPS Uninterruptible Power Supply

USIM Universal Subscriber Identity Module

VAS Value Added Service

VTS Vessel Traffic Services

xix CHAPTER-1 INTRODUCTION

1.0 Introduction

Modern man is basically sleepwalking if he is not multitasking. His lifestyle has evolved in such a way that optimizing time is the most important thing. The newest innovations show that we can -and therefore must- be online while watching TV, be e-mail—ready while driving the car, be taking calls while ascending Mount Everest, be watching television while shaving in front of the mirror. Most evenings most first world's kids do their homework on the computer while instant messaging friends and talking on the phone. There may be something wrong with this picture, but the kids are definitely not sleepwalking. The pressure to be wired -everywhere, always, fast- is hard to ignore [1]. Home Automation is the integration and control of lighting, security, multimedia, climate control and other electronic systems within a household. It is a subset of building automation with particular focus on living spaces in a scale of an apartment or a family house. The main purpose is to make everyday life more comfortable, safe and energy efficient. Devices in a Smart home are interconnected into a network and controlled by specialized software called Control system. It connects to the devices, monitors their state and reacts to events. The control system performs many tasks associated with the household instead of the residents, enabling them to spend more time on matters that are really important. The control system not only enables comfortable light scenes, daily programs or remote access. It also takes care of optimal heating and ventilation to keep the air fresh and temperature comfortable, but to safe power when nobody is present.[1] Research of home automation thus gains significant importance. But until recently, it has been neglected in the shadow of industrial automation and building automation focusing on office spaces. By now, the smart homes have grown big enough to have specialized solutions. However, offered systems are often expensive, complicated and inflexible. On the other hand, really easy and affordable solutions such as X10 still have very limited functionality. That’s why home automation market falls far behind the expectations and possibilities. All the technology and hardware to build commercially successful Smart homes that today people only dream of are available. It is all just the matter of good software.

Introduction 1 This thesis discusses general considerations and technologies involved in a home automation system. This thesis covers the range of the development of this project including: the concept of the system, the technology involved in implementation, and the prototype product developed.

1.1 Review Delgado, Picking, and Grout (2006) consider the problems with the implementation of home automation systems. Furthermore the possible solutions are devised through various network technologies. Several issues affecting home automation systems such as lack of robustness, compatibility issue and acceptability among the old and disabled people are discussed [2]. Ciubotaru-Petrescu, Chiciudean, Cioarga, and Stanescu (2006) present a design and implementation of SMS based control for monitoring systems. The paper has three modules involving sensing unit for monitoring the complex applications. A processing unit that is microcontroller and a communication module that uses GPRS modem or cell phone via serial port RS-232. The SMS is used for status reporting such as power failure [3]. In their paper, Conte and Scaradozzi (2003) view home automation systems as multiple agent systems (MAS). In the paper home automation system has been proposed that includes home appliances and devices that are controlled and maintained for home management. The major task is to improve performance [4]. In their paper, Alkar and Buhur (2005) propose an Internet Based Wireless Home Automation System for Multifunctional Devices. This paper proposes a low cost and flexible web-based solution but this system has some limitations such as the range and power failure [5]. Jawarkar, Ahmed, Ladhake, and Thakare (2008) propose remote monitoring through mobile phone involving the use of spoken commands. The spoken commands are generated and sent in the form of text SMS to the control system and then the microcontroller on the basis of SMS takes a decision of a particular task [6]. Potamitis, Georgila, Fakotakis, and Kokkinakis, G. (2003) suggest the use of speech to interact remotely with the home appliances to perform a particular action on behalf of the user. The approach is inclined for people with disability to perform real-life operations at home by directing appliances through speech. Voice separation strategy is selected to take appropriate decision by speech recognition [7].

Introduction 2 1.2 Some Important Terms Related to Home Automation

The terms related to home automation such as GSM Network, GSM Module, SIM, SMS and Microcontroller are outlined below.

1.2.1 GSM Network

GSM, which stands for Global System for Mobile Communications, is a digital cellular radio network operating in over 200 countries world-wide. It provides almost complete coverage in Western Europe, and growing coverage in the Americas, Asia and elsewhere. [8] Of special interest is the capability of the GSM network to be used for data computing. Most people think of voice calls when they think of cellular phones. But because GSM is digital, you can connect your GSM-enabled phone to your laptop computer and send or receive e-mail, faxes, browse the Internet, securely access your company's Local Area Network (LAN)/intranet, and use other digital data features including Short Messaging Service. The unique roaming features of GSM allow cellular subscribers to use their services in any GSM service area in the world in which their provider has a roaming agreement. That means the phone you use in France could work in Germany, Australia, Finland and even China, depending on your provider's roaming agreements. GSM-enabled phones have a "smart card" inside called the Subscriber Identity Module (SIM). The SIM card is personalized to you and you alone. It identifies your account to the network and provides authentication, which allows appropriate billing.

1.2.2 GSM Modules

GSM modules are similar to modems, but there's one difference: A GSM modem is an external equipment, whereas the GSM module is a module that can be integrated within an equipment. It is an embedded piece of hardware. A GSM module is a wireless module that works with GSM networks. A wireless module behaves like a Hayes compatible dial- up modules. The main difference between a standard Hayes module and a GSM module is that a Hayes module sends and receives data through a fixed telephone line while a GSM Module sends and receives data through radio waves.[9]

1.2.3 Subscriber Identity Module (SIM)

One of the key features of GSM is the Subscriber Identity Module, commonly known as a SIM card. The SIM is a detachable smart card containing the user's subscription

Introduction 3 information and phone book. This allows the user to retain his or her information after switching handsets. Alternatively, the user can also change operators while retaining the handset simply by changing the SIM. A Subscriber Identity Module (SIM) on a removable SIM Card securely stores the service-subscriber key known as International Mobile Subscriber Identity (IMSI) used to identify a subscriber on mobile telephony devices (such as computers and mobile phones). SIM card contains its unique serial number, international unique number of the mobile user (IMSI), security authentication and ciphering information, temporary information related to the local network (also temporary local id that has been issued to the user), list of the services the user has access to and two passwords (regular PIN and unblocking PUK). SIM cards are available in two standard sizes. The first is the size of a credit card (85.60 mm × 53.98 mm x 0.76 mm). The newer, more popular miniature version has a width of 25 mm, a length of 15 mm, and a thickness of 0.76 mm. However, most SIM cards are still supplied as a full-sized card with the smaller card held in place by a few plastic links and can be easily broken off to be used in a phone that uses the smaller SIM.[10]

1.2.4 Short Message Service (SMS)

Short Message Service (SMS) is an integrated paging service that lets GSM cellular subscribers send and receive data right on their cellular phone's LED display, up to a maximum of 160 characters. Combine this with your laptop, and you can receive urgent email, fax notifications, news and stock quotes -- all without even dialing the phone. You can receive messages even when you are making a call. The structure of an SMS message includes the mobile number the message is originating from, time, date, country code, length and the actual message.[11]

1.2.5 Microcontroller

Microcontroller is the embedded chip form of Random Access Memory (RAM) and I/O that are parts of a computer. Today, microcontroller is used in cameras, automobiles, TV’s, cellular phones, toys, radios and many similar areas. Microcontroller is preferred because of speed, small size, reduced instruction set and serial port control over 2 pins, interrupt control, internal timer, and re-programmable properties. PIC’s (Peripheral Interface Controller) are the most popular and common used

Introduction 4 microcontrollers produced by Microchip firm. PIC has easy understandable and small sized instruction set because it’s produced with RISC (Reduced Instruction Set Computer) architecture.[12]

1.2.6 Software

The following softwares were used for uploading the machine codes in to microcontroller.

1.2.6.1 PICBasic Pro Software

The PICBasic Pro Compiler makes it quick and easy for you to program ’s powerful PICmicro microcontrollers (MCUs). The English-like BASIC language is much easier to read and write than the quirky Microchip assembly language. The PICBasic and PICBasic Pro compilers both function in the same way. The program code, saved as a text file, is run through either the PICBasic or PICBasic Pro compilers. The compiler reads through the text file and creates (or compiles) an equivalent machine code instruction listing (the hex file) of the program. The machine code is a list of hexadecimal numbers that represents the PICBasic Pro program. The hex file is uploaded (or programmed) in to the microcontroller. When the microcontroller started its CPU will run through the programmed list of hexadecimal numbers that run the PICBasic Pro program.[13]

1.2.6.2 EPIC win

EPIC (Explicitly Parallel Instruction Computing) is a 64-bit microprocessor instruction set, jointly defined and designed by Hewlett Packard and , that provides up to 128 general and floating point unit registers and uses speculative loading, predication, and explicit parallelism to accomplish its computing tasks. By comparison, current 32-bit CISC and RISC microprocessor architectures depend on 32-bit registers, branch prediction, memory latency, and implicit parallelism, which are considered a less efficient approach in micro-architecture design.[14]

Introduction 5 1.3 Aims and Objectives

The objective of this thesis is to design a microcontroller based home automation system that controls home appliances remotely by SMS. Besides, this work concern is to optimize the use of power by regulating the shutting off and on of the electrical components of the systems.

1. To develop a cost-effective method for controlling and activating home appliances remotely. 2. This system should work easily in most places where a house may exist. 3. There would have to be two-way communication to ensure that the messages had been received. 4. The system would also have to be affordable and easy to use. 5. Explain possible actual benefits for Home Automation Systems. 6. Demonstrate the possibility of a ubiquitous access to the home network using actual technologies. 7. Propose a standardized remote-controlled Home Automation architecture. 8. Encourage user- friendly interfaces development.

1.4 Organization of thesis This thesis analyzes the home automation system domain and conceives ideas for a home appliances control by SMS through Microcontroller in easy to use and secured manner. Following is the structure of the report: Chapter 1 Chapter 1 describes on the introduction and brief information of the thesis subject. It includes the review of previous works and short definitions of the components used in the thesis project. This chapter briefly describes on the thesis objectives.

Chapter 2 Chapter 2 gives an overview on the brief definition of Home Automation System and different types of automation, different appliances controlled by the system. It also gives the comparison among different technologies used in home automation.

Introduction 6 Chapter 3 Chapter 3 gives the detailed description of the hardware components used in this thesis projects e.g. Microcontroller, GSM Module, SIM holder, LCD Display and power supply. Chapter 4 Chapter 4 gives description of software components of this thesis project. It gives the detailed description of PICBasic Pro, PICBasic Pro compiler, EPIC Programmer, EPIC WIN and advantages of these programs. Chapter 5 Chapter 5 deals with the methodology used in this thesis project. It also gives the detail about the prototype developed. It includes the flow chart of the research method, block diagram of the project, assembling of the hardware and development of the software. Chapter 6 Chapter briefly discuss the results which includes the testing of hardware and software part of the prototype and its functioning. Chapter 7 Chapter 7 deals with discussion on achievement of the main objectives as mentioned in the chapter 1. The Home automation System is met the objectives which are to develop master software that capable of integrated remote control and monitoring of appliances and devices via the SMS. Chapter 8 Chapter 8 offers conclusions from the performed study and provides proposals for future work.

Introduction 7 CHAPTER 2

HOME APPLIANCES CONTROL SYSTEM

2.0 An intelligent home The area of intelligent homes, also called home automation, building automation or domotics, is broad, but at the core quite simple. It is the idea to interconnect all (or some) of the technical equipment in a house in order to combine their functions and control them in new and easier ways. It might also include automation of equipment in a house that was previously not considered technical, such as: lamps, fans, air conditioners, doors and windows. In some cases the terms intelligent houses, home automation, domotics and building automation are used to describe same things. Here follows some definitions "Home automation is the use of one or more computers/microcontrollers to control basic home functions and features automatically and sometimes remotely. An automated home is sometimes called a smart home." [15] "Intelligent Building: A building that integrates technology and process to create a facility that is safer, more comfortable and productive for its occupants, and more operationally efficient for its owners. Advanced technology combined with improved processes for design, construction and operations provide a superior indoor environment that improves occupant comfort and productivity while reducing energy consumption and operations staffing." [15] "For some it may be something as simple as remote or automatic control of a few lights. For others, security may be the central application. Still others may choose to install advanced controllers or use voice recognition. As a very basic definition, we tend to refer to home automation as anything that gives you remote or automatic control of things around the home." [15] As can be seen, the definitions are quite different, but there still is some kind of consensus about the basic purposes, goals and motivation for intelligent houses.

Home Appliances Control System 8 A home automation system automates the whole house, triggering events and routines involving light fixtures, security components and the heating/cooling system based on the time of day, temperature or any other condition. For example, when a sensor detects a person to enter a room, the home automation system could open the door. In automation system, there are collections of "subsystems." A subsystem is a system that (even when operating by itself) provides benefits to a homeowner. Common subsystems include home appliances (lighting, fan, freezer, and washing machine), security and heating/cooling systems. A home automation system puts two or more subsystems under the control of one central controller, so that the press of one button can issue several commands to a variety of different electronic products.[2] Meanwhile, most whole-house systems consist of two important components: a microcontroller and user interface. The microcontroller serves as the brains of a home automation system. Homeowners use interfaces such as SMS to interact when necessary with the various systems linked to the automation microcontroller. Subsystems, like cooling system controls, communicate with the automation system via the microcontroller. Each automation system has a different in its degree of intelligence, ease of programming, level of flexibility, intuitiveness of operation, communications media employed, price and other features. Automated home is a home equipped with special facilities to enable occupants to control or program an array of automated home electronic devices. For example, a homeowner on vacation can arm a home security system, control temperature gauges, switch appliances on or off, control lighting, program a home theater or entertainment system, and perform many other tasks. Smart home became smarter if the controlling can be done from any remote place. Our main focus is to control the home appliances from remote place. The motivations behind the goal to remote control of home appliances are simple. It’s not always feasible to be physically near to the home still sometimes it’s very important to control the appliances for many purposes. So the remote controlling takes the control of the home beyond the home and to the hands of the people. If a simple mobile phone takes the added responsibility to control the smart home then the control is reachable from almost everywhere people travels and lives on earth. This sort of high end

Home Appliances Control System 9 technology is supposed to facilitate the different life easing utilities to a new age and bringing things out of the box to as near as one’s palm.[2] There exists a number of available media for remote communication. Internet is a good example of this type of remote communication. Internet places virtually no bounds on geographical placement and is thus considered “enough” remote by our definition. But the Internet is a place crowded with various types of traffics, often hostile to each other. Security vulnerability is the most striking alert point of the Internet. Whenever a web based application goes live, a lot of efforts have to take place before it can be said to be secured, if at all. When we say remote control, we want to make sure no malicious party ever gains control and abolishes everything. Also to use web, it requires resources like flawless internet connections and hosting servers, which may not always fit to the concept of remote controlling.[16] Another candidate solution to this remote communication problem is the use of mobile telephony. Mobile telephony offers a wide range of communication services like voice and data transfer through SMS and other enhanced data transfer protocols like GPRS, EDGE at a relatively low price and at a wide variety of places on the earth. On the other hand, the security is better achieved by the use of strict traffic control. We adhered to this method of remote controlling of home appliances because of its unparallel availability and modest security at the affordable price.[16]

2.1 Types of Home Automation Controls

The new stream, automation home information system has developed into a vast one and the current market is flooded with a flurry of home automation system. Here are some of the types of home automation system.

2.1.1 Individual Control Devices This type is perhaps the first one to hit the market in the early years. Here each device like the heater or AC will have an independent control dedicated for it unlike the central control system. These are very handy and are user friendly.

Home Appliances Control System 10 2.1.2 Distributed Control Systems The main feature of this type of systems is emergency shut-down. Rest of the features includes hardware and software components developed under special software for better automated control that reduce human interaction. With this you can preset or change the control parameters, for example, the thermostat of several ACs and ON/OFF timings.

2.1.3 Centrally Controlled Systems These are computerized systems programmed to handle all functions of multiple utilities like ACs, heaters, home entertainments, doors, windows, refrigerators and cooking systems etc regardless of whether you are home or out. You can connect to your control system from office through telephone or internet. The best part of this is, with computerized control, you can afford to forget things and still be safe and timely on controls.

2.2 Appliances usually controlled

2.2.1 Lighting, fan, air-conditioner and other electrical devices Probably the most popular control category and a great way to get involved with home automation. Lighting, fan, air-conditioner and other electrical devices can be controlled from anywhere in the house or world (via SMS or the Internet).

2.2.2 Security Systems & Access Control Have your home call you and/or loved ones if there is an alert situation. Money can be saved on security monitoring services or even monitor for non-traditional security events like water in the laundry room or basement. Additionally, VTS products include devices that will allow unlocking the front door to let friends in or close the garage door from the office via the web.

2.2.3 Home Theater & Entertainment The pile of remotes can be replaced with just one controller. Now, imagine not having to know all 10 steps to starting up the home theater - just press the HBO icon and the home

Home Appliances Control System 11 automation products/system will do the rest. In-wall and in-ceiling speakers are especially popular with homeowners as they provide beautiful sound throughout the house while adding no clutter whatsoever.

2.2.4 Phone Systems Phone systems that are usually used for small business applications are surprisingly convenient in the home. With caller ID and a home automation controller you can even screen your calls for only those you wish to cause your phone to ring. Voice control software turns every phone in the home into a remote controller.

2.2.5 Thermostats Remote-control thermostats allow us to adjust the temperature from bed at night or even from a cell phone while on our way home. They can even trigger a notice to us if the temperature gets too low (to prevent pipes from freezing) or too high (to protect your pets, plants, etc.).

2.2.6 Irrigation sprinklers can be turned on only when it's not raining. Some of automation even turn the sprinklers on when there is motion in the yard at unwanted times - imagine an intruder trying to explain the wet clothes to the police!

Home Appliances Control System 12 Table 2.1: Comparison of different technology used for home automation Technology Transmission medium Transmission speed Maximum distance to the device Unshielded twisted pair 10 Mbit/s – 1 Gbit/s 100 m Ethernet Optical Fiber 1 Gbit/s – 10 Gbit/s 2 km – 15 km HomePlug Electrical wiring 14 Mbit/s - 200 Mbit/s 200 m Wi-Fi Radio frequency 11 Mbit/s – 248 Mbit/s 30 m – 100 m Bluetooth Radio frequency 1 Mbit/s – 10 Mbit/s 10 m – 100 m Electrical wiring + Wireless 1.2 kbit/s 1,000 m+ (Electrical wiring), 50 INSTEON m+ (Wireless) X10 Electrical wiring 50 bit/s – 60 bit/s ----- Zigbee Radio frequency 20 kbit/s – 250 kbit/s 10 m – 75 m Zwave Radio frequency 9.6 kbit/s – 40 kbit/s 1 m – 75 m USB Twisted pair 12 Mbit/s – 480 Mbit/s 5 m SMS Radio frequency above 144 Kbit/s Unlimited

The three areas were meant to represent different reasons why intelligent houses might be attractive to consumers. They are: 1. Saving cost, environment and energy. 2. Making everyday life easier. 3. Making the house seem luxurious and high tech. This thesis represents a simple, practical and very low cast method which applies the SMS technique that already available in all types of mobile phone devices and provided with all modern mobile telecommunication networks. [17]

Home Appliances Control System 13 CHAPTER 3

HARDWARE COMPONENTS

3.0 Microcontroller

A microcontroller (also microcontroller unit, MCU or µC) is an inexpensive single-chip computer. Single chip means that the entire computer system lies within the confines of the integrated circuit. The microcontroller existing on the encapsulated silver of silicon has features and similarities to our standard personal computers. Primarily, the microcontroller is capable of storing and running a program. [18] The microcontroller contains a central processing unit (CPU: ALU, PC, SP and registers), random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), input/output (I/O) lines, serial and parallel ports, timers, clock circuit and other built-in peripherals, such as analog-to-digital (A/D) and digital-to-analog (D/A) converters. The microcontroller’s ability to store and run unique programs makes it extremely versatile. For instance, a microcontroller can be programmed to make decisions and selections. Its ability to perform math and logic functions allows it to mimic sophisticated logic and electronic circuits. Other programs can make the microcontroller behave like a neural circuit or a fuzzy logic controller. Microcontrollers are responsible for the intelligence in most smart devices on the consumer market. In any hobbyist electronics magazine articles that features the use of microcontrollers either directly or embedded inside a circuit’s design. Because of their versatility, they add a lot of power, control and options for a small cost. It therefore becomes essential that the electronics engineer or hobbyist learns to program these microcontrollers in order to maintain a competence and to gain the advantages that microcontrollers can provide in their own circuit designs. The microcontrollers embedded in just about every-things.[18] The microcontroller is a very common component in modern electronic systems. Its use is so widespread that it is almost impossible to work in electronics without coming across it.

Microcontrollers are used in a wide number of electronic systems such as:

• Engine management systems in automobiles. Hardware Components 14 • Keyboard of a PC. • Electronic measurement instruments (such as digital multimeters, frequency synthesizers and oscilloscopes) • Printers. • Mobile phones. • Televisions, radios, CD players and tape recording equipment. • Hearing aids. • Security alarm systems, fire alarm systems and building services systems. • Remote controls, office machines, appliances, power tools and toys.

In fact the list is endless. [18]

3.1 Components of Microcontroller

Basically, a microcontroller is a device which integrates a number of the components of a microprocessor system onto a single chip (IC), with the following common features: [19]

• The CPU core - ranging from simple 4-bit processors to sophisticated 32/64-bit processors • Memory (both ROM and RAM) • Some parallel digital I/O

Fig 3.1 Main components of a microcontroller

Most microcontrollers will also combine other devices such as:

Hardware Components 15 • A Timer module to allow the microcontroller to perform tasks for certain time periods. • A serial I/O port to allow data to flow between the microcontroller and other devices such as a PC or another microcontroller. • An ADC to allow the microcontroller to accept analogue input data for processing.

3.1.1 Microprocessor/CPU

A microprocessor is a programmable digital electronic component that incorporates the functions of a central processing unit (CPU) into a single IC package. It consists of Arithmetic Logic Unit (ALU), Program Counter (PC), Stack Pointer (SP) and registers. The main functions of CPU are:

• The ability to execute a stored set of instructions to carry out user defined tasks. • The ability to be able to access external memory chips to both read and write data from and to the memory.

3.1.2 Memory in a Microcontroller

3.1.2.1 Read Only Memory (ROM)

ROM memory can be ROM (as in One Time Programmable memory), EPROM, or EEPROM. [19]

• This is memory that can only be read, the data being stored in the memory device during its manufacture. Once data has been written onto ROM memory, it cannot be easily removed and is designed for 'read only' use. ROM is referred to as being non-volatile as it retains its contents even when the power is turned off. • Erasable Programmable Read Only Memory (EPROM). This is similar to ROM type memory but the user can program it. The contents of the memory can be erased from the memory by exposing the memory chip to ultraviolet radiation for a short period of time. It can therefore be used many times over. • Electrically Erasable Programmable Read Only Memory (EEPROM). Similar to EPROM but has part or all of the memory contents erased by the microprocessor.

Hardware Components 16 3.1.2.2 Random Access Memory (RAM)

All microprocessor systems need memory that can be both read from and written to - such memory is RAM. RAM got its name because early read-write memories were sequential, and did not allow random access. RAM memory is used to store dynamic data (that will change during the operation of the program). RAM takes the form of integrated circuits that allow the stored data to be accessed in ANY order — that is, at random and without the physical movement of the storage medium or a physical reading head. The word "random" infers that any piece of data can be returned quickly, and in a constant time, regardless of its actual physical location, in relation to the previous data storage location. The key benefit of RAM is that retrieval times are short and consistent. The disadvantages of RAM are cost and the loss of data when power is turned off (volatile). [19]

Both ROM and EPROM memory are used to hold the program code of a microprocessor used in an , i.e. a microprocessor used in an application where the program code is always the same and is designed to execute every time the system is switched on. Most development work is done using EPROM or EEPROM type memory, ROM memory being used in the final production version (when all the program code has been fully tested).

So a typical microprocessor system will contain both ROM (could be EPROM, EEPROM, or ROM) to store the program code, and RAM to store dynamic data.

Figure 3.2 shows the ROM of a microcontroller which is used to store the application program and RAM is used for data storage and stack management tasks. It is also used for register stacks (as in the microchip PIC range of microcontrollers). Typically, the amount of ROM type memory will vary between around 512 bytes and 4096 bytes, although some 16 bit microcontrollers such as the Hitachi H8/3048 can have as much as 128 Kbytes of ROM type memory. The amount of RAM memory is usually somewhat smaller, typically ranging between 1 Kbytes to 64 Kbytes.

Hardware Components 17

Fig 3.2 Microcontroller ROM/RAM

3.1.3 The I/O (Input/Output) Ports

I/O (input/output) is the collection of interfaces that different functional devices, of any information processing system, use to communicate with each other. Every information transfer is an output from one device and an input into another. For instance, on a computer, a keyboard and mouse are considered input devices while monitors and printers are considered output devices. Typical devices for communication between computers, such as modems and network cards, operate as both input and output devices. [19]

I/O can be:

• A number of digital bits formed into a number of digital inputs or outputs called a port. These are usually eight bits wide and thus referred to as a BYTE wide port. i.e. byte wide input port, byte wide output port. • A serial line from the microprocessor (Transmit or TX) and a serial line to the microprocessor (Receive or RX) allowing serial data in the form of a bit stream to be transmitted or received via a two wire interface. • Other I/O devices such as Analogue to Digital Converters (ADC) and Digital to Analogue Converters (DAC), Timer modules, Interrupt controllers etc. (which will be discussed later in the context of microcontrollers).

Hardware Components 18 Figure 3.3 shows microcontroller ports which are used to access the outside world.

Fig 3.3 Microcontroller I/O ports

The digital I/O ports are the means by which the microcontroller interfaces to the environment.

Digital I/O tends to be grouped into byte wide ports (8 digital bits) that can be configured as either input bits or output bits. There are some exceptions, such as the microchip PIC 16C54 with one 6-bit RA port and a byte wide RB port.

The number of I/O port bits varies, depending upon the size of the microcontroller. Some very simple 8 bit microcontroller have as few as 4 bits of I/O, whilst those at the high end range can have as many as 33 bits of I/O (some 16 bit microcontrollers could have around 78 bits of I/O).

3.1.4 Embedded design

The majority of computer systems in use today are embedded in other machinery, such as automobiles, telephones, appliances, and peripherals for computer systems. These are called embedded systems. While some embedded systems are very sophisticated, many have minimal requirements for memory and program length, with no operating system, and low software complexity. 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. Embedded systems usually have no keyboard, screen, disks, printers, or other recognizable I/O devices of a personal computer, and may lack human interaction devices of any kind. [18]

Hardware Components 19 3.1.4.1 Interrupts

It is mandatory that microcontrollers provide real time response to events in the embedded system they are controlling. When certain events occur, an interrupt system can signal the processor to suspend processing the current instruction sequence and to begin an interrupt service routine (ISR). The ISR will perform any processing required based on the source of the interrupt before returning to the original instruction sequence. Possible interrupt sources are device dependent, and often include events such as an internal timer overflow, completing an analog to digital conversion, a logic level change on an input such as from a button being pressed, and data received on a communication link. Where power consumption is important as in battery operated devices, interrupts may also wake a microcontroller from a low power sleep state where the processor is halted until required to do something by a peripheral event. [18]

3.1.4.2 Programs

Microcontroller programs must fit in the available on-chip program memory, since it would be costly to provide a system with external, expandable, memory. Compilers and assembly language are used to turn high-level language programs into a compact machine code for storage in the microcontroller's memory. Depending on the device, the program memory may be permanent, read-only memory that can only be programmed at the factory, or program memory may be field-alterable flash or erasable read-only memory.

3.1.4.3 Other microcontroller features

Since embedded processors are usually used to control devices, they sometimes need to accept input from the device they are controlling. This is the purpose of the analog to digital converter. Since processors are built to interpret and process digital data, i.e. 1s and 0s, they won't be able to do anything with the analog signals that may be being sent to it by a device. So the analog to digital converter is used to convert the incoming data into a form that the processor can recognize. There is also a digital to analog converter that allows the processor to send data to the device it is controlling.

Hardware Components 20 In addition to the converters, many embedded include a variety of timers as well. One of the most common types of timers is the Programmable Interval Timer, or PIT for short. A PIT just counts down from some value to zero. Once it reaches zero, it sends an interrupt to the processor indicating that it has finished counting. This is useful for devices such as thermostats, which periodically test the temperature around them to see if they need to turn the air conditioner on, the heater on, etc.

Time Processing Unit or TPU for short is a sophisticated timer. In addition to counting down, the TPU can detect input events, generate output events, and perform other useful operations.

Dedicated Pulse Width Modulation (PWM) block makes it possible for the CPU to control power converters, resistive loads, motors, etc., without using lots of CPU resources in tight timer loops.

Universal Asynchronous Receiver/Transmitter (UART) block makes it possible to receive and transmit data over a serial line with very little load on the CPU.

For those wanting Ethernet one can use an external chip like Crystal Semiconductor CS8900A, Realtek RTL8019, or Microchip ENC 28J60. All of them allow easy interfacing with low pin count.[18]

3.1.5 List of common Microcontrollers

This is a list of common microcontrollers listed by brand. [18]

AMCC

Until May 2004, these µCs were developed and marketed by IBM, whose 4xx family was sold to Applied Micro Circuits Corporation.

• PowerPC 403 o PPC 403GCX

• PowerPC 405 o PPC 405EP o PPC 405GP/CR o PPC 405GPr

Hardware Components 21 o PPC NPe405H/L

• PowerPC 440 o PPC 440GP o PPC 440GX o PPC 440EP/EPx/GRx o PPC 440SP/SPe

Atmel

• AT89 series ( architecture) • AT90, ATtiny, ATmega, ATxmega series (AVR architecture) (Atmel Norway design) • AT91SAM (ARM architecture) • AVR32 (32-bit AVR architecture) (Atmel Norway design) • MARC4

Dallas Semiconductor

• 8051 Family • MAXQ RISC Family • Secure Micros Family

EPSON Semiconductor

• 4-bit Microcomputers S1C60/62/63 family • 8-bit Microcomputers S1C88 family • 16-bit Microcomputers S1C17 family • 32-bit Microcomputers S1C33 family

Freescale Semiconductor

Until 2004, these µCs were developed and marketed by Motorola, whose semiconductor division was spun-off to establish Freescale.

• 8-bit o 68HC05 (CPU05) o 68HC08 (CPU08) o 68HC11 (CPU11) • 16-bit o 68HC12 (CPU12) o 68HC16 (CPU16) o Freescale DSP56800 (DSPcontroller) • 32-bit o Freescale 683XX o M·CORE o MPC500 o MPC 860 (PowerQUICC) o MPC 8240/8250 (PowerQUICC II)

Hardware Components 22 o MPC 8540/8555/8560 (PowerQUICC III)

Fujitsu

• F²MC Family (8/16 bit) • FR Family (32 bit) • FR-V Family (32 bit RISC)

Infineon

• 8-bit o XC800 family o C500/C800 family • 16-bit o o C167 family o XC167 family • 32-bit o TRICORE family

Intel

• 8-bit o MCS-48 (8048 family – also incl. 8035, 8038, 8039, 8040, 8X42, 8X49, 8050; X=0 or 7) o MCS-51 (8051 family – also incl. 8X31, 8X32, 8X52; X=0, 3, or 7) o 8xC251 • 16-bit o MCS-96 (8096 family – also incl. 8061) o Intel MCS 296

Microchip Technology

Microchip produces microcontrollers with 3 very different architectures:

8-bit (8 bit data bus) PICmicro, with a single accumulator (8 bits):

• PIC10 and PIC12: 12-bit instruction words • PIC16 series: 14-bit instruction words, one address pointer ("indirect register pair") o PIC16F84 o PICAXE • PIC18 series: 16-bit instruction words, three address pointers ("indirect register pairs")

16-bit (16-bit data bus) microcontrollers, with 16 general-purpose registers (each 16-bit)

• PIC24: 24-bit instruction words Hardware Components 23 • dsPIC: based on PIC24, plus DSP functions, such as a single-cycle MAC (multiply- accumulate) into two 40-bit accumulators.

32-bit (32 bit data bus) microcontrollers:

• PIC32MX series: 32 bit instructions, uses the MIPS architecture

NXP(Philips Semiconductors)

• 8-bit o 80C51 • 16-bit o XA • 32-bit o ARM7 ƒ LPC2000

Toshiba

• TLCS-47 (4-bit) • TLCS-870 (8-bit CISC) • TLCS-900 (16 and 32-bit CISC) • TX19A (32-bit RISC)

ZiLOG

Zilog's (primary) microcontroller families, in chronological order:

• Older: o Zilog Z8 - 8-bit Harvard architecture ROM / EPROM / OTP microcontroller with on-chip SRAM. o Zilog Z180 - Z80 based microcontroller; on-chip peripherals; external memory; 1 MB address space. • Newer: o Zilog eZ8 - Better pipelined Z8 (2-3 times as clock cycle efficient as original Z8) with on-chip flash memory and SRAM. o Zilog eZ80 - Fast 8/16/24-bit Z80 (3-4 times as cycle efficient as original Z80) with flash, SRAM, peripherals; linear addressing of 16 MB. o Zilog Z16 - Fast 8/16/32-bit CPU with compact object code; 16 MB (4GB possible) addressing range; flash, SRAM, peripherals, on chip.

Hardware Components 24 3.1.6 PIC Microcontroller

PIC is a family of Harvard architecture microcontrollers made by Microchip Technology. [20] Originally developed by General Instrument's Microelectronics Division. The name PIC initially referred to "Peripheral Interface Controller". [20]

3.1.7 Architecture of PIC Microcontroller

The PIC architecture characterized by the following features: [20]

• Separate code and data spaces (Harvard architecture) • A small number of fixed length instructions • Most instructions are single cycle execution (4 clock cycles), with single delay cycles upon branches and skips • A single accumulator (W), the use of which (as source operand) is implied (i.e. is not encoded in the opcode) • All RAM locations function as registers as both source and/or destination of math and other functions. • A hardware stack for storing return addresses • A fairly small amount of addressable data space (typically 256 bytes), extended through banking • Data space mapped CPU, port, and peripheral registers • The program counter is also mapped into the data space and writable (this is used to implement indirect jumps).

Unlike most other CPUs, there is no distinction between memory space and register space because the RAM serves the job of both memory and registers, and the RAM is usually just referred to as the register file or simply as the registers.[4]

3.1.7.1 Data space (RAM)

PICs have a set of registers that function as general purpose RAM. Special purpose control registers for on-chip hardware resources are also mapped into the data space. The addressability of memory varies depending on device series, and all PIC devices have some banking mechanism to extend the addressing to additional memory. Later series of devices

Hardware Components 25 feature move instructions which can cover the whole addressable space, independent of the selected bank. In earlier devices (i.e., the baseline and mid-range cores), any register move had to be achieved via the accumulator. [20]

To implement indirect addressing, a "file select register" (FSR) and "indirect register" (INDF) are used: A register number is written to the FSR, after which reads from or writes to INDF will actually be to or from the register pointed to by FSR. Later devices extended this concept with post- and pre- increment/decrement for greater efficiency in accessing sequentially stored data. This also allows FSR to be treated almost like a stack pointer.

3.1.7.2 Code space

All PICs feature Harvard architecture, so the code space and the data space are separate. PIC code space is generally implemented as EPROM, ROM, or flash ROM. In general, external code memory is not directly addressable due to the lack of an external memory interface. The exceptions are PIC17 and select high pin count PIC18 devices. [20]

3.1.7.3 Word size

The word size of PICs can be a source of confusion. All PICs handle (and address) data in 8- bit chunks, so they should be called 8-bit microcontrollers. However, the unit of addressability of the code space is not generally the same as the data space. For example, PICs in the baseline and mid-range families have program memory addressable in the same wordsize as the instruction width, ie. 12 or 14 bits respectively. In contrast, in the PIC18 series, the program memory is addressed in 8-bit increments (bytes), which differs from the instruction width of 16 bits. In order to be clear, the program memory capacity is usually stated in number of (single word) instructions, rather than in bytes. [20]

3.1.7.4 Stacks

PICs have a hardware call stack, which is used to save return addresses. The hardware stack is not software accessible on earlier devices, but this changed with the 18 series devices. Hardware support for a general purpose parameter stack was lacking in early series, but this greatly improved in the 18 series, making the 18 series architecture friendlier to high level language compilers. [20]

Hardware Components 26 3.1.7.5 Instruction set

A PIC's instructions vary from about 35 instructions for the low-end PICs to over 80 instructions for the high-end PICs. The instruction set includes instructions to perform a variety of operations on registers directly, the accumulator and a literal constant or the accumulator and a register, as well as for conditional execution, and program branching.

Some operations, such as bit setting and testing, can be performed on any numbered register, but bi-operand arithmetic operations always involve W; writing the result back to either W or the other operand register. To load a constant, it is necessary to load it into W before it can be moved into another register. On the older cores, all register moves needed to pass through W, but this changed on the "high end" cores.

PIC cores have skip instructions which are used for conditional execution and branching. The skip instructions are: 'skip if bit set', and, 'skip if bit not set'. Because cores before PIC18 had only unconditional branch instructions, conditional jumps are implemented by a conditional skip (with the opposite condition) followed by an unconditional branch. Skips are also of utility for conditional execution of any immediate single following instruction.

The PIC architecture has no (or very meager) hardware support for automatically saving processor state when servicing interrupts. The 18 series improved this situation by implementing shadow registers which save several important registers during an interrupt. [20]

3.1.7.6 Performance

Many of these architectural decisions are directed at the maximization of top-end speed, or more precisely of speed-to-cost ratio. The PIC architecture was among the first scalar CPU designs, and is still among the simplest and cheapest. The Harvard architecture - in which instructions and data come from conveniently separate sources - simplifies timing and microcircuit design greatly, and this pays benefits in areas like clock speed, price, and power consumption.

The PIC is particularly suited to implementation of fast lookup tables in the program space. Such lookups are O(1) and can complete via a single instruction taking two instruction

Hardware Components 27 cycles. Basically any function can be modelled in this way. Such optimization is facilitated by the relatively large program space of the PIC (e.g. 4096 x 14-bit words on the 16F690) and by the design of the instruction set, which allows for embedded constants.

The simplicity of the PIC, and its scalar nature, also serve to greatly simplify the construction of real-time code. It is typically possible to multiply the line count of a PIC assembler listing by the time to determine execution time. (This is true because skip-based instructions take 2 cycles whether the skip occurs or doesn't.) On other CPUs (even the Atmel, with its MUL instruction), such quick methods are just not possible. In low-level development, precise timing is often critical to the success of the application, and the real- time features of the PIC can save crucial engineering time.

A similarly useful and unique property of PICs is that their interrupt latency is constant (it's also low: 3 instruction cycles). The delay is constant even though instructions can take one or two instruction cycles: a dead cycle is optionally inserted into the interrupt response sequence to make this true. External interrupts have to be synchronized with the four clock instruction cycle; otherwise there can be a one instruction cycle jitter. Internal interrupts are already synchronized.

The constant interrupt latency allows PICs to achieve interrupt driven low jitter timing sequences. An example of this is a video sync pulse generator. Other microcontrollers can do this in some cases, but it's awkward. The non-interrupt code has to anticipate the interrupt and enter into a sleep state before it arrives. On PICs, there is no need for this.

The three-cycle latency is increased in practice because the PIC does not store its registers when entering the interrupt routine. Typically, 4 instructions are needed to store the W- register, the status register and switch to a specific bank before starting the actual interrupt processing. [20]

3.1.7.7 Limitations

The PIC architectures have several limitations: [20]

• Only a single accumulator • A small instruction set

Hardware Components 28 • Operations and registers are not orthogonal; some instructions can address RAM and/or immediate constants, while others can only use the accumulator • Memory must be directly referenced in arithmetic and logic operations, although indirect addressing is available via 2 additional registers • Register-bank switching is required to access the entire RAM of many devices, making position-independent code complex and inefficient • Conditional skip instructions are used instead of conditional branch instructions used by most other architectures

3.1.8 8/16/32-bit PIC microcontroller product families

8-bit Microcontrollers

• PIC10 • PIC12 • PIC14 • PIC16 • PIC17 • PIC18

16-bit Microcontrollers

• PIC24F • PIC24H

32-bit Microcontrollers

• PIC32

16-bit Digital Signal Controllers

• dsPIC30 • dsPIC33F

3.1.9 Selection of PIC Microcontroller (PIC16F877A) for this study

Selecting PIC microcontroller for this study requires taking into account a variety of factors. These factors include: [12]

• The number of I/O pins • The peripherals needed (i.e. module) • The memory size (program memory, RAM, EEPROM) • Microcontroller speed

Hardware Components 29 • Physical size

An important thing to remember when choosing a PIC microcontroller is there is a balancing act between cost and all of the factors listed above. Keeping all these factors in mind we selected PIC16F877A for this study. Key features of PIC16F877A are given below.

Table 3.1 Features of PIC16F877A Device

Key Features PIC16F877A Operating Frequency DC – 20 MHz Resets (and Delays) POR, BOR (PWRT, OST) Flash Program Memory (14-bit 8K words) Data Memory (bytes) 368 EEPROM Data Memory (bytes) 256 Interrupts 15 I/O Ports Ports A, B, C, D, E Timers 3 Capture/Compare/PWM modules 2 Serial Communications MSSP, USART Parallel Communications PSP 10-bit Analog-to-Digital Module 8 input channels Analog Comparators 2 Instruction Set 35 Instructions Packages 40-pin PDIP 44-pin PLCC 44-pin TQFP 44-pin QFN

Hardware Components 30 Block and Pin Diagram of PIC16F877A

Figure 3.4 PIC16F877A Block Diagram

Hardware Components 31

Figure 3.5 Pin diagram of PIC16F877A

Hardware Components 32

Table 3.2(a): PIC16F874A/877A Pinout Description

Hardware Components 33

Table 3.2(b): PIC16F874A/877A Pinout Description (Continued)

Hardware Components 34

Table 3.2(c): PIC16F874A/877A Pinout Description (Continued)

Hardware Components 35

Table 3.2(d): PIC16F874A/877A Pinout Description (Continued)

Hardware Components 36 3.1.10 Memory Organization

3.1.10.1 Program 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. The PIC16F877A device has 8K words x 14 bits of Flash program memory. [12]

Figure 3.6: PIC16F877A Program Memory Map and Stack

3.1.10.2 Data Memory Organization

The data memory is partitioned into multiple banks which contain the General Purpose Registers and the Special Function Registers (SFR). 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

Hardware Components 37 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.

PICs are popular with developers and hobbyists alike due to their low cost, wide availability, large user base, extensive collection of application notes, availability of low cost or free development tools, and serial programming (and re-programming with flash memory) capability.[12]

3.2 GSM Module

GSM Modules are similar to modems, but there's one difference: A GSM Modem is external equipment, whereas the GSM Module is a module that can be integrated within equipment. It is an embedded piece of hardware. A GSM module is a wireless module that works with GSM networks. A wireless module behaves like a Hayes compatible dial-up modem. The main difference between a standard Hayes modem and a GSM module is that a Hayes modem sends and receives data through a fixed telephone line while a GSM module sends and receives data through radio waves. Like a GSM mobile phone, a GSM module requires a SIM card from a wireless carrier in order to operate. GSM modules and normal Hayes modems support a common set of AT commands. A GSM module can be used just like a Hayes compatible modem. GSM modules support an extended set of AT commands. These extended AT commands are defined in the GSM standards. With the extended AT commands, you can do things like: [21]

• Read, write and delete SMS messages. • Send SMS messages.

Hardware Components 38 • Monitor the signal strength. • Monitor the charging status and charge level of the battery. • Read, write and search phone book entries.

The number of SMS messages that can be processed by a GSM module is pretty low, approx six messages per minute. GPRS Modules are similar to modems, but there's one difference: A GRPS Modem is external equipment, whereas the GPRS Module is a module that can be integrated within equipment. It is an embedded piece of hardware.

A GPRS module is a GSM module with additional support for GPRS technology for data transmission. GPRS means: 'General Packet Radio Service'. It is based on a packet-switched technology, as an extension to GSM (note that GSM is a circuit-switched). An advantage of GPRS over GSM is that GPRS has a much higher data transmission speed.

GPRS can be used as the bearer of SMS. If SMS over GPRS is used, an SMS transmission speed of about 30 SMS messages per minute may be achieved. This is much faster than SMS over GSM. A GPRS modem is required to send and receive SMS via GPRS. Some wireless carriers do not support the sending and receiving of SMS via GPRS. In this study SIM 300 module is used. [21]

3.2.1 Features of GSM Module SIM300CZ

SIM300 is a Tri-band GSM/GPRS module that works on frequencies EGSM 900 MHz, DCS 1800 MHz and PCS 1900 MHz. SIM300 features GPRS multi-slot class 10/ class 8 (optional) and supports the GPRS coding schemes CS-1, CS-2, CS-3 and CS-4. With a tiny configuration of 40mm x 33mm x 2.85mm, SIM300 can fit almost all the space requirements in the applications, such as smart phone, PDA phone and other mobile devices. The physical interface to the mobile application is made through a 60-pin board-to-board connector, which provides all hardware interfaces between the module and customers’ boards except the RF antenna interface.

• The keypad and SPI display interface will give you the flexibility to develop customized applications.

Hardware Components 39 • Serial port and Debug port can help you easily develop your applications. • Two audio channels include two microphones inputs and two speaker outputs. This can be easily configured by AT command.

The SIM300 provides RF antenna interface with two alternatives: antenna connector and antenna pad. The antenna connector is MURATA MM9329-2700. And customer’s antenna can be soldered to the antenna pad. The SIM300 is designed with power saving technique; the current consumption is as low as 2.5mA in SLEEP mode. The SIM300 is integrated with the TCP/IP protocol; extended TCP/IP AT commands are developed for customers to use the TCP/IP protocol easily, which is very useful for those data transfer applications. [21]

Table 3.3(a) Key Features of GSM Module SIM300CZ Feature Implementation Power supply Single supply voltage 3.4V – 4.5V Power saving Typical power consumption in SLEEP mode to 2.5mA ( BS-PA- MFRMS=5 ) Frequency bands • SIM300 Tri-band: EGSM 900, DCS 1800, PCS 1900. The SIM300 can search the 3 frequency bands automatically. The frequency bands also can be set by AT command. • Compliant to GSM Phase 2/2+

GSM class Small MS Transmit power • Class 4 (2W) at EGSM 900 • Class 1 (1W) at DCS 1800 and PCS 1900 GPRS connectivity • GPRS multi-slot class 10 (default) • GPRS multi-slot class 8 (option) • GPRS mobile station class B

Temperature range • Normal operation: -20°C to +55°C (1) • Restricted operation: -30°C to -20°C and +55°C to +80°C • Storage temperature -40°C to +85°C

Hardware Components 40

Table 3.3(b) Key Features of GSM Module SIM 300CZ Feature Implementation DATA GPRS: • GPRS data downlink transfer: max. 85.6 kbps CSD: • GPRS data uplink transfer: max. 42.8 kbps • Coding scheme: CS-1, CS-2, CS-3 and CS-4 • SIM300 supports the protocols PAP (Password Authentication Protocol) usually used for PPP connections. • The SIM300 integrates the TCP/IP protocol. • Support Packet Switched Broadcast Control Channel (PBCCH) • CSD transmission rates: 2.4, 4.8, 9.6, 14.4 kbps, non- transparent • Unstructured Supplementary Services Data (USSD) support

SMS • MT, MO, CB, Text and PDU mode • SMS storage: SIM card

FAX Group 3 Class 1 SIM interface Support SIM card: 1.8V, 3V External antenna Connected via 50 Ohm antenna connector or antenna pad Audio features Speech codec modes: • Half Rate (ETS 06.20) • Full Rate (ETS 06.10) • Enhanced Full Rate (ETS 06.50 / 06.60 / 06.80) • Echo suppression Serial port and • Serial Port: Seven lines on Serial Port Interface Debug port • Serial Port can be used for CSD FAX, GPRS service and send AT command of controlling module. • Serial Port can use multiplexing function. • Autobauding supports baud rate from 4800 bps to 115200bps. • Debug Port: Two lines on Serial Port Interface /TXD and /RXD • Debug Port only used for debugging Phonebook Support phonebook types: SM, FD, LD, RC, ON, MC. management SIM Application Support SAT class 3, GSM 11.14 Release 99 Toolkit Real time clock Implemented Timer function Programmable via AT command Physical Size: 40±0.15 x 33±0.15 x 3.3±0.3mm (including application characteristics connector) 40±0.15 x 33±0.15 x 2.85±0.3mm (excluding application connector) Weight: 8g Firmware upgrade Firmware upgrade by serial port.

Hardware Components 41

3.2.2 Functional Diagram of GSM Module SIM 300CZ

The following figure shows a functional diagram of the SIM 300CZ and illustrates the mainly functional part:

• The GSM base band engine • Flash and SRAM • The GSM radio frequency part • The antenna interface • The board-to-board interface

Figure 3.7: Functional Diagram of GSM Module SIM 300CZ

Hardware Components 42

3.2.2 Top view of GSM Module SIM 300CZ

Figure 3.8: Top view of GSM Module SIM300CZ

3.2.2 Pin diagram of GSM Module SIM 300CZ

Figure 3.9: Pin diagram GSM Module SIM300 CZ

Hardware Components 43

3.2.3 Operating modes of GSM Module SIM 300CZ

The table below briefly summarizes the various operating modes. [21]

Table 3.4: Overview of operating modes of GSM Module SIM 300CZ Mode Function Normal operation GSM/GPRS SLEEP Module will automatically go into SLEEP mode if DTR is set to high level and there is no on air and no hardware interrupt (such as GPIO interrupt or data on serial port). In this case, the current consumption of module will reduce to the minimal level. During SLEEP mode, the module can still receive paging message and SMS from the system normally. GSM IDLE Software is active. Module has registered to the GSM network, and the module is ready to send and receive. GSM TALK Connection is going on between two subscribers. In this case, the power consumption depends on network settings such as DTX off/on, FR/EFR/HR, hopping sequences, antenna. GPRS STANDBY Module is ready for GPRS data transfer, but no data is currently sent or received. In this case, power consumption depends on network settings and GPRS configuration. GPRS DATA There is GPRS data in transfer (PPP or TCP or UDP). In this case, power consumption is related with network settings (e.g. power control level), uplink / downlink data rates and GPRS configuration (e.g. used multi-slot settings). POWER DOWN Normal shutdown by sending the “AT+CPOWD=1” command or using the PWRKEY. The power management ASIC disconnects the power supply from the base band part of the module, only the power supply for the RTC is

3.2.4 SIM card interface The SIM interface supports the functionality of the GSM Phase 1 specification and also supports the functionality of the new GSM Phase 2+ specification for FAST 64 kbps SIM. The SIM interface is powered from an internal regulator in the module having normal voltage 3V. All pins reset as outputs driving low. [21]

Hardware Components 44

Logic levels are as described in table Table 3.5: Pin define of the SIM interface Name Pin Function

SIM_VDD 25 SIM Card Power output automatic output on SIM mode one is 3.0V±10%, another is 1.8V±10%. Current is about 10mA. SIM_DATA 29 SIM Card data I/O SIM_CLK 31 SIM Card Clock SIM_RST 27 SIM Card Reset

Following is the reference circuit about SIM interface. The 22Ω resistors showed in the following figure should be added in series on the IO line between the module and the SIM card for protecting the SIM I/O port. The pull up resistor (about 10KΩ) must be added on the SIM_DATA line. The SIM peripheral circuit should be closed to the SIM card socket. The SIM_PRESENCE pin is used for detecting the SIM card removal. The AT commands can be used “AT+CSDT” to set the SIMCARD configure. The 6 pins SIM card can be selected. The reference circuit about 6 pins SIM card illustrates as following figure.

Figure 3.10: Reference Circuit of the 6 Pins SIM Card

Hardware Components 45 3.3 SIM Card Holder

For 6 pins SIM card, usually Amphenol C707 10M006 SIM Card holders are used. The diagram of the SIM Card holder is given below. [22]

Figure 3.11: Diagram of the SIM Card Holder

Figure 3.12: Diagram of the 6 pin SIM Card

Hardware Components 46 Table 3.6: Pin description of the SIM Interface.

Pin Name Description 1 VCC +5V DC power supply input (optional use by the card) Either used itself (reset signal supplied from the interface device) or in combination 2 RESET with an internal reset control circuit (optional use by the card). If internal reset is implemented, the voltage supply on VCC is mandatory 3 CLOCK Clocking or timing signal (optional use by the card) 4 GND Ground (reference voltage) Programming voltage input (optional). This contact may be used to supply the voltage 5 VPP required to program or to erase the internal non-volatile memory. 6 I/O Input or Output for serial data to the integrated circuit inside the card 7,8 N/C not used

The dialogue between the interface device and the card shall be conducted through the consecutive operations:

• connection and activation of the contacts by the interface device • reset of the card • answer to reset by the card • subsequent information exchange between the card and the interface device • desactivation of the contacts by the interface device

The adapter electronic gets its power supply from the smartcard reader device VCC line or an external 5 V supply can be used. The card slot’s RST line is connected using one of the TTL- >RS-232 drivers in the MAX232 to DCD, so that the software and the reader can easily resynchronize in case of a protocol error.

3.4 Subscriber Identity Module (SIM)

A Subscriber Identity Module (SIM) on a removable SIM Card securely stores the service- subscriber key (IMSI) used to identify a subscriber on mobile telephony devices (such as computers and mobile phones). The SIM card allows users to change phones by simply removing the SIM card from one mobile phone and inserting it into another mobile phone or broadband telephony device. [10]

Hardware Components 47 SIM card contains its unique serial number, international unique number of the mobile user (IMSI), security authentication and ciphering information, temporary information related to the local network (also temporary local ID that has been issued to the user), list of the services the user has access to and two passwords (regular PIN and unblocking PUK).

SIM cards are available in two standard sizes. The first is the size of a credit card (85.60 mm × 53.98 mm x 0.76 mm). The newer, more popular miniature version has a width of 25 mm, a length of 15 mm, and a thickness of 0.76 mm. However, most SIM cards are still supplied as a full-sized card with the smaller card held in place by a few plastic links and can be easily broken off to be used in a phone that uses the smaller SIM.

The first SIM Card was made in 1991, with Munich smart card maker Giesecke & Devrient selling the first 300 SIM cards to Finnish wireless network operator Elisa Oyj (formerly Radiolinja). [10]

3.4.1 Smart Card technology

Each SIM Card stores a unique International Mobile Subscriber Identity (IMSI). The format of this number is as follows:

• The first 3 digits represent the Mobile Country Code (MCC). • The next 2 digits represent the Mobile Network Code (MNC). • The next 10 digits represent the mobile station identification number.

Since a SIM card is a smart card, it also has an ICC-ID number based on International Standard ISO/IEC 7812. The maximum length of the visible card number is 20 characters; 19 digits are preferred, but telecommunication network operators who are already issuing Phase 1 SIM cards with an identification number length of 20 digits may retain this length. The number is composed of the following subparts: [10]

3.4.2 Issuer Identification number (max. 7 digits)

• Major Industry Identifier (MII), 2 digits, 89 for telecommunication purposes. • Country code, 1-3 digits, as defined by ITU-T recommendation E.164. • Issuer identifier, variable.

Hardware Components 48 Individual account identification

• Individual account identification number. • Parity check digit.

W-SIM is a SIM card which also integrates core cellular technology into the card itself.

A Virtual SIM is a mobile phone number provided by a wireless carrier which does not require a SIM Card to terminate phone calls on a user's mobile phone. [10]

3.4.3 Usage in mobile phone standards

The use of SIM cards is mandatory in GSM devices. The equivalent of a SIM in UMTS is called the Universal Integrated Circuit Card (UICC), which runs a USIM application, whereas the Removable User Identity Module (R-UIM) is more popular in CDMA-based devices. The UICC card is still colloquially referred to as a SIM card. Many CDMA-based standards do not include any such card, and the service is bound to a unique identifier contained in the handset itself.

The satellite phone networks Iridium, Thuraya and Inmarsat's BGAN also use SIM cards. Sometimes these SIM cards work in regular GSM phones and also allow GSM customers to roam in satellite networks by using their own SIM card in a satellite phone.

The SIM card introduced a new and significant business opportunity of mobile telecoms operator/carrier business of the MVNO (Mobile Virtual Network Operator) which does not own or operate a cellular telecoms network, but which leases capacity from one of the network operators, and only provides a SIM card to its customers. MVNOs first appeared in Denmark, Hong Kong, Finland and the UK and today exist in over 50 countries including most of Europe, USA, Canada, Australia and parts of Asia and account for approximately 10% of all mobile phone subscribers around the world. [10]

3.4.4 Operating systems

SIM operating systems come in two main types: Native and Java Card. Native SIMs are based on proprietary, vendor specific software whereas the Java Card SIMs are based on

Hardware Components 49 standards, particularly Java Card which is a subset of the Java programming language specifically targeted at embedded devices. Java Card allows the SIM to contain programs that are hardware independent and interoperable. [10]

3.4.5 Data Storage

SIM cards store network specific information used to authenticate and identify subscribers on the Network, the most important of these are the ICCID, IMSI, Authentication Key (Ki), Local Area Identity (LAI) and Operator-Specific Emergency Number. The SIM also stores other carrier specific data such as the SMSC (Short Message Service Center) number, Service Provider Name (SPN), Service Dialing Numbers (SDN), Advice-Of-Charge parameters and Value Added Service (VAS) applications.

3.4.6 Integrated Circuit Card ID ICCID

Each SIM is internationally identified by its ICC-ID (Integrated Circuit Card ID). ICCIDs are stored in the SIM cards and are also engraved or printed on the SIM card body during a process called personalization. The ICCID is defined by the ITU-T recommendation E.118. The number is up to 18 or 19 digits long and in addition is often associated with a single check digit calculated using the Luhn algorithm.

3.4.7 IMSI

SIM cards are identified on their individual operator networks by holding a unique International Mobile Subscriber Identity. Mobile operators connect mobile phone calls and communicate with their market SIM cards using their IMSI.

3.4.8 Authentication key (Ki)

The Ki is a 128-bit value used in authenticating the SIMs on the mobile network. Each SIM holds a unique Ki assigned to it by the operator during the personalization process. The Ki is also stored on a database (known as Authentication Center or AuC) on the carrier’s network.

The SIM card is designed not to allow the Ki to be obtained using the smart-card interface. Instead, the SIM card provides a function, "RUN GSM ALGORITHM", that allows the phone to pass data to the SIM card to be signed with the Ki. This, by design, makes usage of

Hardware Components 50 the SIM card mandatory unless the Ki can be extracted from the SIM card, or the carrier is willing to reveal the Ki. In practice, the GSM "crypto" algorithm for computing SRES_2 (see step 4, below) from the Ki has certain vulnerabilities which can allow the extraction of the Ki from a SIM card and the making of a duplicate SIM card. [10]

3.4.9 Authentication process

1. When the Mobile Equipment starts up, it obtains the IMSI (International Mobile Subscriber Identity) from the SIM card, and passes this to the mobile operator requesting access and authentication. The Mobile Equipment may have to pass a PIN to the SIM card before the SIM card will reveal this information. 2. The operator network searches its database for the incoming IMSI and its associated Ki. 3. The operator network then generates a Random Number (RAND) and signs it with the Ki associated with the IMSI (and stored on the SIM card), computing another number known as Signed Response (SRES_1). 4. The operator network then sends the RAND to the Mobile Equipment, which passes it to the SIM card. The SIM card signs it with its Ki, producing SRES_2 which it gives to the Mobile Equipment along with encryption key Kc. The Mobile Equipment passes SRES_2 on to the operator network. 5. The operator network then compares its computed SRES_1 with the computed SRES_2 that the Mobile Equipment returned. If the two numbers match the SIM is authenticated and the Mobile Equipment is granted access to the operator's network. Kc is used to encrypt all further communications between the Mobile Equipment and the network.

3.4.10 Location area identity

The SIM stores network state information, which is received from the Location Area Identity (LAI). Operator networks are divided into Location Areas, each having a unique LAI number. When the device changes locations, it stores the new LAI to the SIM and sends it back to the operator network with its new location. If the device is power cycled, it will take data off the SIM, and search for the previous LAI. This saves time by avoiding having to search the whole list of frequencies that the telephone normally would. [10]

Hardware Components 51 3.4.11 SMS messages and contacts

Most SIM cards will orthogonally store a number of SMS messages and phone book contacts. The contacts are stored in simple 'Name and number' pairs - entries containing multiple phone numbers and additional phone numbers will usually not be stored on the SIM card. When a user tries to copy such entries to SIM the handset's software will break them up into multiple entries, discarding any information that isn't a phone number. The number of contacts and messages stored depends on the SIM; early models would store as little as 5 messages and 20 contacts while modern SIM cards can usually store over 250 contacts. [10]

3.4.12 SIM Serial Number (SSN) Digits

A typical SSN (19 digits) example 89 91 10 1200 00 320451 0, provides several details as follows: [23]

• The first two digits (89 in the example) refer to the Telecom Id. • The next two digits (91 in the example) refer to the country code (88-Bangladesh). • The next two digits (10 in the example) refer to the network code. • The next four digits (1200 in the example) refer to the month and year of manufacturing; December, 2000 in this case. • The next two digits (00 in the example) refer to the switch configuration code. • The next six digits (320451 in the example) refer to the SIM number. • The last digit which is separated from the rest is called the check digit.

3.5 Power Supply Unit

Power supply is a reference to a source of electrical power. A device or system that supplies electrical or other types of energy to an output load or group of loads is called a power supply unit or PSU. The term is most commonly applied to electrical energy supplies, less often to mechanical ones, and rarely to others. [23]

Hardware Components 52 3.5.1 Electrical power supplies

This term covers the power distribution system together with any other primary or secondary sources of energy such as:

• Conversion of one form of electrical power to another desired form and voltage. This typically involves converting 120 or 240 volt AC supplied by a utility company (see electricity generation) to a well-regulated lower voltage DC for electronic devices. Low voltage, low power DC power supply units are commonly integrated with the devices they supply, such as computers and household electronics. For other examples, see switched-mode power supply, linear regulator, rectifier and inverter (electrical). • Batteries • Chemical fuel cells and other forms of energy storage systems • Solar power • Generators or alternators (particularly useful in vehicles of all shapes and sizes, where the engine has torque to spare or in semi-portable units containing an internal combustion engine and a generator).

Constraints that commonly affect power supplies are the amount of power they can supply, how long they can supply it without needing some kind of refueling or recharging, how stable their output voltage or current is under varying load conditions, and whether they provide continuous power or pulses.

The regulation of power supplies is done by incorporating circuitry to tightly control the output voltage and/or current of the power supply to a specific value. The specific value is closely maintained despite variations in the load presented to the power supply's output, or any reasonable voltage variation at the power supply's input. This kind of regulation is commonly categorized as a Stabilized power supply. [24]

3.5.2 Power supply types

Power supplies for electronic devices can be broadly divided into linear and switching power supplies. The linear supply is a relatively simple design that becomes increasingly bulky and

Hardware Components 53 heavy for high current devices; voltage regulation in a linear supply can result in low efficiency. A switched-mode supply of the same rating as a linear supply will be smaller, is usually more efficient, but will be more complex. [23,24]

3.5.2.1 Battery power supply

A battery is a type of linear power supply that offers benefits that traditional line-operated power supplies lack: mobility, portability, and reliability. A battery consists of multiple electrochemical cells connected to provide the voltage desired.

The most commonly used dry-cell battery is the carbon-zinc dry cell battery. Dry-cell batteries are made by stacking a carbon plate, a layer of electrolyte paste, and a zinc plate alternately until the desired total voltage is achieved. The most common dry-cell batteries have one of the following voltages: 1.5, 3, 6, 9, 22.5, 45, and 90. During the discharge of a carbon-zinc battery, the zinc metal is converted to a zinc salt in the electrolyte, and magnesium dioxide is reduced at the carbon electrode. These actions establish a voltage of approximately 1.5 V.

The lead-acid storage battery may be used. This battery is rechargeable; it consists of lead and lead/dioxide electrodes which are immersed in sulfuric acid. When fully charged, this type of battery has a 2.06-2.14 V potential. During discharge, the lead is converted to lead sulfate and the sulfuric acid is converted to water. When the battery is charging, the lead sulfate is converted back to lead and lead dioxide.

A nickel-cadmium battery has become more popular in recent years. This battery cell is completely sealed and rechargeable. The electrolyte is not involved in the electrode reaction, making the voltage constant over the span of the batteries long service life. During the charging process, nickel oxide is oxidized to its higher oxidation state and cadmium oxide is reduced. The nickel-cadmium batteries have many benefits. They can be stored both charged and uncharged. They have a long service life, high current availabilities, constant voltage, and the ability to be recharged.

Hardware Components 54 3.5.2.2 Linear power supply

A home-made linear power supply (used here to power amateur radio equipment). An AC powered linear power supply usually uses a transformer to convert the voltage from the wall outlet (mains) to a different, usually a lower voltage. If it is used to produce DC, a rectifier is used. A capacitor is used to smooth the pulsating current from the rectifier. Some small periodic deviations from smooth direct current will remain, which is known as ripple. These pulsations occur at a frequency related to the AC power frequency (for example, a multiple of 50 or 60 Hz).

The voltage produced by an unregulated power supply will vary depending on the load and on variations in the AC supply voltage. For critical electronics applications a linear regulator will be used to stabilize and adjust the voltage. This regulator will also greatly reduce the ripple and noise in the output direct current. Linear regulators often provide current limiting, protecting the power supply and attached circuit from over-current.

Adjustable linear power supplies are common laboratory and service shop test equipment, allowing the output voltage to be set over a wide range. For example, a bench power supply used by circuit designers may be adjustable up to 30 volts and up to 5 amperes output. Some can be driven by an external signal, for example, for applications requiring a pulsed output.

The simplest DC power supply circuit consists of a single diode and resistor in series with the AC supply. This circuit is common in rechargeable flashlights.

3.5.2.3 AC/ DC supply

In the past, mains electricity was supplied as DC in some regions, AC in others. A simple, cheap linear power supply would run directly from either AC or DC mains, often without using a transformer. The power supply consisted of a rectifier and a capacitor filter. The rectifier was essentially a conductor, having no sudden effect when operating from DC. [23]

Hardware Components 55 3.5.2.4 Switched-mode power supply

A switched-mode power supply (SMPS) works on a different principle. AC mains input is directly rectified without the use of a transformer, to obtain a DC voltage. This voltage is then sliced into small pieces by a high-speed electronic switch. The size of these slices grows larger as power output requirements increase.

The input power slicing occurs at a very high speed (typically 10 kHz — 1 MHz). High frequency and high voltages in this first stage permit much smaller step down transformers than are in a linear power supply. After the transformer secondary, the AC is again rectified to DC. To keep output voltage constant, the power supply needs a sophisticated feedback controller to monitor current draw by the load.

Modern switched-mode power supplies often include additional safety features such as the crowbar circuit to help protect the device and the user from harm. In the event that an abnormal high current power draw is detected, the switched-mode supply can assume this is a direct short and will shut itself down before damage is done. For decades PC computer power supplies have also provided a power good signal to the motherboard which prevents operation when abnormal supply voltages are present.

Switched mode power supplies have an absolute limit on their minimum current output. They are only able to output above a certain power level and cannot function below that point. In a no-load condition the frequency of the power slicing circuit increases to great speed, causing the isolation transformer to act as a tesla coil, causing damage due to the resulting very high voltage power spikes. Switched-mode supplies with protection circuits may briefly turn on but then shut down when no load has been detected. A very small low- power dummy load such as a ceramic power resistor or 10 watt light bulb can be attached to the supply to allow it to run with no primary load attached.

Power factor has become a recent issue of concern for computer manufacturers. Switched mode power supplies have traditionally been a source of power line harmonics and have a very poor power factor. Many computer power supplies built in the last few years now include power factor correction built right into the switched-mode supply, and may advertise the fact that they offer 1.0 power factor.

Hardware Components 56 By slicing up the sinusoidal AC wave into very small discrete pieces, the portion of the alternating current not used stays in the power line as very small spikes of power that cannot be utilized by AC motors and results in waste heating of power line transformers. Hundreds of switched mode power supplies in a building can result in poor power quality for other customers surrounding that building, and high electric bills for the company if they are billed according to their power factor in addition to the actual power used. Filtering capacitor banks may be needed on the building power mains to suppress and absorb these negative power factor effects. [23]

3.5.2.5 Programmable power supply

Programmable power supplies are those in which the output voltage can be varied remotely. One possible option is digital control by a computer interface. Variable properties include voltage, current, and frequency. This type of supply is composed of a processor, voltage/current programming circuits, current shunt, and voltage/current read-back circuits.

Programmable power supplies can furnish DC, AC, or both types of output. The AC output can be either single-phase or three-phase. Single-phase is generally used for low-voltage, while three-phase is more common for high-voltage power supplies.

When choosing a programmable power supply, several specifications should be considered. For AC supplies, output voltage, voltage accuracy, output frequency, and output current are important attributes. For DC supplies, output voltage, voltage accuracy, current, and power are important characteristics. Many special features are also available, including computer interface, overcurrent protection, overvoltage protection, short circuit protection, and temperature compensation. Programmable power supplies also come in a variety of forms. Some of those are modular, board-mounted, wall-mounted, and floor-mounted or bench top.

Programmable power supplies are now used in many applications. Some examples include automated equipment testing, crystal growth monitoring, and differential thermal analysis.

3.5.2.6 Uninterruptible power supply

An Uninterruptible Power Supply (UPS) takes its power from two or more sources simultaneously. It is usually powered directly from the AC mains, while simultaneously

Hardware Components 57 charging a storage battery. Should there be a dropout or failure of the mains, the battery instantly takes over so that the load never experiences an interruption. Such a scheme can supply power as long as the battery charge suffices, e.g., in a computer installation, giving the operator sufficient time to effect an orderly system shutdown without loss of data. Other UPS schemes may use an internal combustion engine or turbine to continuously supply power to a system in parallel with power coming from the AC mains. The engine-driven generators would normally be idling, but could come to full power in a matter of a few seconds in order to keep vital equipment running without interruption. Such a scheme might be found in hospitals or telephone central offices.

3.5.2.7 High-voltage power supply

High voltage refers to an output on the order of hundreds or thousands of volts. High-voltage power supplies use a linear setup to produce an output voltage in this range.

When choosing a high-voltage power supply, there are several options to consider. Some of these are maximum current, maximum power, maximum voltage, output polarity, user interface, and style. The first four of these characteristics of course depend upon the supply's intended application. There are many available types of user interfaces. For example, the interface may be local in the form of a digital meter, or analog meter. Also, the interface can be remote, as in a computer connection. Numerous styles of high-voltage power supplies are also manufactured. Available models come in printed circuit board mount, open frame (as designed to be incorporated into an instrument), and rack mount. Models with multiple outputs can also be found. [23]

3.6 Liquid crystal display

A liquid crystal display (LCD) is an electronically-modulated optical device shaped into a thin, flat panel made up of any number of color or monochrome pixels filled with liquid crystals and arrayed in front of a light source (backlight) or reflector. It is often utilized in battery-powered electronic devices because it uses very small amounts of electric power. [25]

Hardware Components 58 3.6.1 Overview

Each pixel of an LCD typically consists of a layer of molecules aligned between two transparent electrodes, and two polarizing filters, the axes of transmission of which are (in most of the cases) perpendicular to each other. With no actual liquid crystal between the polarizing filters, light passing through the first filter would be blocked by the second (crossed) polarizer.

The surfaces of the electrodes that are in contact with the liquid crystal material are treated so as to align the liquid crystal molecules in a particular direction. This treatment typically consists of a thin polymer layer that is unidirectionally rubbed using, for example, a cloth. The direction of the liquid crystal alignment is then defined by the direction of rubbing. Electrodes are made of a transparent conductor called Indium Tin Oxide (ITO).

Before applying an electric field, the orientation of the liquid crystal molecules is determined by the alignment at the surfaces. In a twisted nematic device (still the most common liquid crystal device), the surface alignment directions at the two electrodes are perpendicular to each other, and so the molecules arrange themselves in a helical structure, or twist. This reduces the rotation of the polarization of the incident light, and the device appears grey. If the applied voltage is large enough, the liquid crystal molecules in the center of the layer are almost completely untwisted and the polarization of the incident light is not rotated as it passes through the liquid crystal layer. This light will then be mainly polarized perpendicular to the second filter, and thus be blocked and the pixel will appear black. By controlling the voltage applied across the liquid crystal layer in each pixel, light can be allowed to pass through in varying amounts thus constituting different levels of gray.

The optical effect of a twisted nematic device in the voltage-on state is far less dependent on variations in the device thickness than that in the voltage-off state. Because of this, these devices are usually operated between crossed polarizers such that they appear bright with no voltage (the eye is much more sensitive to variations in the dark state than the bright state). These devices can also be operated between parallel polarizers, in which case the bright and dark states are reversed. The voltage-off dark state in this configuration appears blotchy, however, because of small variations of thickness across the device.

Hardware Components 59 Both the liquid crystal material and the alignment layer material contain ionic compounds. If an electric field of one particular polarity is applied for a long period of time, this ionic material is attracted to the surfaces and degrades the device performance. This is avoided either by applying an alternating current or by reversing the polarity of the electric field as the device is addressed (the response of the liquid crystal layer is identical, regardless of the polarity of the applied field). [26]

When a large number of pixels are needed in a display, it is not technically possible to drive each directly since then each pixel would require independent electrodes. Instead, the display is multiplexed. In a multiplexed display, electrodes on one side of the display are grouped and wired together (typically in columns), and each group gets its own voltage source. On the other side, the electrodes are also grouped (typically in rows), with each group getting a voltage sink. The groups are designed so each pixel has a unique, unshared combination of source and sink. The electronics or the software driving the electronics then turns on sinks in sequence, and drives sources for the pixels of each sink.

3.6.2 Specifications

Important factors to consider when evaluating an LCD monitor: [25]

• Resolution: The horizontal and vertical size expressed in pixels (e.g., 1024x768). Unlike CRT monitors, LCD monitors have a native-supported resolution for best display effect. • Dot pitch: The distance between the centers of two adjacent pixels. The smaller the dot pitch size, the less granularity is present, resulting in a sharper image. Dot pitch may be the same both vertically and horizontally, or different (less common). • Viewable size: The size of an LCD panel measured on the diagonal (more specifically known as active display area). • Response time: The minimum time necessary to change a pixel's color or brightness. Response time is also divided into rise and fall time. For LCD Monitors, this is measured in btb (black to black) or gtg (gray to gray). These different types of measurements make comparison difficult. A response time of <16ms is sufficient for video-gaming, and the difference between response times below 10ms becomes imperceptible due to limitations of the human eye.

Hardware Components 60 • Refresh rate: The number of times per second in which the monitor draws the data it is being given. Since activated LCD pixels do not flash on/off between frames, LCD monitors exhibit no refresh-induced flicker, no matter how low the refresh rate. Many high-end LCD televisions now have a 120 or 240 Hz (current and former NTSC countries) or 100 or 200 Hz (PAL/SECAM countries) refresh rate. The rate of 120 was chosen as the least common multiple of 24 frame/s (cinema) and 30 frame/s (NTSC TV), and allows for less distortion when movies are viewed due to the elimination of telecine (3:2 pulldown). For PAL at 25 frame/s, 100 or 200 Hz is used as a fractional compromise of the least common multiple of 600 (24 x 25). Until a 600 Hz refresh rate becomes available, PAL video will speed up cinema by a small percentage (currently 1 to 4 percent). These higher refresh rates are most effective from a 24p-source video output (e.g. Blu-ray Disc), and/or scenes of fast motion. • Matrix type: Active TFT or Passive. • Viewing angle: (coll., more specifically known as viewing direction). • Color support: How many types of colors are supported (coll., more specifically known as color gamut). • Brightness: The amount of light emitted from the display (coll., more specifically known as luminance). • Contrast ratio: The ratio of the intensity of the brightest bright to the darkest dark. • Aspect ratio: The ratio of the width to the height (for example, 4:3, 5:4, 16:9 or 16:10). • Input ports (e.g., DVI, VGA, LVDS, DisplayPort, or even S-Video and HDMI). • Gamma correction

3.6.3 Color displays

In color LCDs each individual pixel is divided into three cells, or subpixels, which are colored red, green, and blue, respectively, by additional filters (pigment filters, dye filters and metal oxide filters). Each subpixel can be controlled independently to yield thousands or millions of possible colors for each pixel. CRT monitors employ a similar 'subpixel' structures via phosphors, although the electron beam employed in CRTs do not hit exact 'subpixels'.

Hardware Components 61 Color components may be arrayed in various pixel geometries, depending on the monitor's usage. If the software knows which type of geometry is being used in a given LCD, this can be used to increase the apparent resolution of the monitor through subpixel rendering. This technique is especially useful for text anti-aliasing. [25]

3.6.4 Passive-matrix and active-matrix addressed LCDs

LCDs with a small number of segments, such as those used in digital watches and pocket calculators, have individual electrical contacts for each segment. An external dedicated circuit supplies an electric charge to control each segment. This display structure is unwieldy for more than a few display elements.

Small monochrome displays such as those found in personal organizers, or older laptop screens have a passive-matrix structure employing super-twisted nematic (STN) or double- layer STN (DSTN) technology—the latter of which addresses a color-shifting problem with the former—and color-STN (CSTN)—wherein color is added by using an internal filter. Each row or column of the display has a single electrical circuit. The pixels are addressed one at a time by row and column addresses. This type of display is called passive-matrix addressed because the pixel must retain its state between refreshes without the benefit of a steady electrical charge. As the number of pixels (and, correspondingly, columns and rows) increases, this type of display becomes less feasible. Very slow response times and poor contrast are typical of passive-matrix addressed LCDs.

High-resolution color displays such as modern LCD computer monitors and televisions use an active matrix structure. A matrix of thin-film transistors (TFTs) is added to the polarizing and color filters. Each pixel has its own dedicated transistor, allowing each column line to access one pixel. When a row line is activated, all of the column lines are connected to a row of pixels and the correct voltage is driven onto all of the column lines. The row line is then deactivated and the next row line is activated. All of the row lines are activated in sequence during a refresh operation. Active-matrix addressed displays look "brighter" and "sharper" than passive-matrix addressed displays of the same size, and generally have quicker response times, producing much better images

Hardware Components 62

Figure 3.13 A General Purpose Alphanumeric LCD,

Active matrix technologies

Twisted nematic (TN)

Twisted nematic displays contain liquid crystal elements which twist and untwist at varying degrees to allow light to pass through. When no voltage is applied to a TN liquid crystal cell, the light is polarized to pass through the cell. In proportion to the voltage applied, the LC cells twist up to 90 degrees changing the polarization and blocking the light's path. By properly adjusting the level of the voltage almost any grey level or transmission can be achieved. [26]

In-plane switching (IPS)

In-plane switching is an LCD technology which aligns the liquid crystal cells in a horizontal direction. In this method, the electrical field is applied through each end of the crystal, but this requires two transistors for each pixel instead of the single transistor needed for a standard thin-film transistor (TFT) display. This results in blocking more transmission area, thus requiring a brighter backlight, which will consume more power, making this type of display less desirable for notebook computers. [26]

Advanced Fringe Field Switching (AFFS)

Advanced Fringe Field Switching is a similar technology to IPS or S-IPS offering superior performance and color gamut besides high luminosity. AFFS is developed by Boe Hydis Displays, Korea.

AFFS-applied notebook applications minimize color distortion while maintaining its superior wide viewing angle for a professional display. Color shift and deviation caused by light

Hardware Components 63 leakage is corrected by optimizing the white gamut which also enhances white/grey reproduction.

In premium IBM ThinkPad series notebooks, Boe Hydis AFFS displays are used to provide higher resolutions up to 1600x1200, UXGA (in some versions QXGA) in a relatively small 15 inch display setting. IBM also advertised these high end panels under their FlexViewTM label. AFFS panels are mostly classified under the VIEWIZTM name by Boe Hydis resembling premium performance.

As of 2008, Hitachi acquired AFFS license to manufacture high end panels in their product line. Boe Hydis suspended their production of high quality displays however the company still advertises the benefits of the superior technology. [26]

Vertical alignment (VA)

Vertical alignment displays are a form of LC displays in which the liquid crystal material naturally exists in a horizontal state removing the need for extra transistors (as in IPS). When no voltage is applied the liquid crystal cell, it remains perpendicular to the substrate creating a black display. When voltage is applied, the liquid crystal cells shift to a horizontal position, parallel to the substrate, allowing light to pass through and create a white display. VA liquid crystal displays provide some of the same advantages as IPS panels, particularly an improved viewing angle and improved black level.

Blue Phase mode

Blue phase LCDs do not require an LC top layer. Blue phase LCDs are relatively new to the market, and very expensive because of the low volume of production. They provide a higher refresh rate than normal LCDs, but normal LCDs are still cheaper to make and actually provide better colors and a sharper image

3.6.5 Drawbacks of LCD Technology

LCD technology still has a few drawbacks in comparison to some other display technologies: [26]

Hardware Components 64 • While CRTs are capable of displaying multiple video resolutions without introducing artifacts, LCDs produce crisp images only in their native resolution and, sometimes, fractions of that native resolution. Attempting to run LCD panels at non-native resolutions usually results in the panel scaling the image, which introduces blurriness or "blockiness" and is susceptible in general to multiple kinds of HDTV blur. Many LCDs are incapable of displaying very low resolution screen modes (such as 320x200) due to these scaling limitations.

• Smaller color gamut compared to CRT and Plasma displays.

• Some types of LCD displays have a more limited color resolution than advertised, and must use spatial and/or temporal dithering to increase the apparent color depth. This can cause a shimmering effect with some types of displays which can be distracting for some users.

• Although LCDs typically have more vibrant images and better "real-world" contrast ratios (the ability to maintain contrast and variation of color in bright environments) than CRTs, they do have lower contrast ratios than CRTs in terms of how deep their blacks are. A contrast ratio is the difference between a completely on (white) and off (black) pixel, and LCDs can have "backlight bleed" where light (usually seen around corners of the screen) leaks out and turns black into gray or even a bluish / purple tint with TN-film based displays. However, as of 2009, the very best LCD TVs that do not use LED backlighting can achieve a dynamic contrast ratio of 150,000:1.

• LCDs typically have longer response times than their plasma and CRT counterparts, especially older displays, creating visible ghosting when images rapidly change. For example, when moving the mouse quickly on an LCD, multiple cursors can sometimes be seen.

• LCDs appear to exhibit motion blur as the human eye follows moving objects, where some CRT screens do not. This is because an individual LCD pixel is constantly visible for the entire duration of a frame (typically 16.7ms), whereas a CRT pixel is lit for only a fraction of a microsecond once per frame as the electron beam scans past it. The means that even on a hypothetical LCD panel with a response time of zero, a

Hardware Components 65 panning image will appear to have motion blur whereas a panning image on a CRT monitor will not. This is caused by the movement of our eyes during the time the frame is visible. Blur can be reduced by increasing the refresh rate to a multiple of the frame rate (e.g. 120 or 240 Hz) and employing various image processing techniques. Blur or ghosting can be partially "corrected" using software techniques that present a negative image of the blur to compensate by canceling-out the predicted blur. For example, if a ghost image is caused by a left-over spot that is 5% brighter than normal, the software will draw a negative of the ghost image that is minus-5 percent, and the result will add up to the expected value (n + 5 - 5 = n). However, this technique requires a processing delay, which can be problematic for fast-action video- game usage. Some monitors even come with a "gaming mode" to turn off anti- ghosting when needed.

• LCD panels using TN tend to have a limited viewing angle relative to CRT and plasma displays. This reduces the number of people able to conveniently view the same image – laptop screens are a prime example. Usually when looking below the screen, it gets much darker; looking from above makes it looks lighter. This distorts the colors and makes consumer grade LCD monitors unsuitable for work where color is important (photography, fashion, etc) as the colors change when one moves one's eyes slightly up or down, or when looks at the top of the screen or at the bottom from a fixed position. Many displays based on thin film transistor variants such as IPS, MVA, or PVA, have much improved viewing angles; typically the color only gets a little brighter when viewing at extreme angles, though much of the improvements on viewing angles has been done on lateral angles, not on vertical ones.

• Consumer LCD monitors tends to be more fragile than their CRT counterparts. The screen may be especially vulnerable due to the lack of a thick glass shield as in CRT monitors.

• Dead pixels can occur when the screen is damaged or pressure is put upon the screen; few manufacturers replace screens with dead pixels under warranty.

• Horizontal and/or vertical banding is a problem in some LCD screens. This flaw occurs as part of the manufacturing process, and cannot be repaired (short of total

Hardware Components 66 replacement of the screen). Banding can vary substantially even among LCD screens of the same make and model. The degree is determined by the manufacturer's quality control procedures.

• The cold cathode fluorescent lamps typically used for back-lights in LCD screens contain mercury, a toxic substance, though LED-backlit LCD screens are mercury- free.

• Pattern based flicker, caused by imperfect voltage balance. LCD Flicker tests - one or more of the tests will usually demonstrate objectionable flicker, which can also show up if the problem pattern occurs as a hatching pattern over a significant area.

Hardware Components 67 CHAPTER 4 SOFT WARE COMPONENTS

4.0 PICBasic and PICBasic Pro Compilers

PICBASIC is a micro-controller developed by COMFILE Technology and is programmed in a form of the BASIC language. The PICBasic Pro Compiler (or PBP) makes it even quicker and easier to program Microchip Technology’s powerful PICmicro microcontrollers (MCUs). The English-like BASIC language is much easier to read and write than the quirky Microchip assembly language.[27,13] The PICBasic and PICBasic Pro Compilers both functions in the same way. The program code, saved as a text file is run through either the PICBasic or PICBasic Pro Compiler. The compiler reads through the text file and creates (or compiles) an equivalent machine code instruction listing (the hex file) of the program. The machine code is a list of hexadecimal numbers that represents the PICBasic Pro program. The hex file is uploaded (or programmed) in to the microcontroller. When the microcontroller started its CPU will run through the programmed list of hexadecimal numbers that run the PICBasic Pro program. Uploading the machine code into the microcontroller is the job of the EPIC programmer board and software. The PICBasic Pro (Professional) compiler is considerably more expensive than the standard PICBasic compiler. The Pro version offers a richer, more enhanced Basic command syntax than is available in the PICBasic compiler packages. A few of the additional commands that can be found in the Pro version allow the use of Interrupts, direct control of Liquid crystal display (LCD) modules, dual-tone multi-frequency (DTMF) out, and X-10 commands, to name a few.

PICBasic Pro (PBP) is compatible with Windows 98/Me/NT/2000/XP/Vista. It supports over 300 of Microchip's PIC microcontrollers, including the very latest releases. From the tiny, inexpensive 6-pin parts to the immensely powerful 100-pin parts, PBP allows you to choose the microcontroller that best fits your application.

Software Components 68 Used by thousands of engineers, students, and hobbyists for more than a decade, the PICBASIC PRO Compiler is one of the most popular development tools ever created for the PIC microcontroller. [27,13]

A new 32-bit version of PBP (PBPL) is included that offers BIT, BYTE, WORD, and LONG (32-bit, signed)* variable types. This LONG version is intended for use with the PIC18 family devices. When working with LONGs, the mathematical operators return signed results in 32-bit, twos-complement format. This allows storage, calculation, and display of values from -2,147,483,648 to 2,147,483,647

Table 4.1: Comparison between PICBasic and PICBasic Pro Compilers

PICBASIC™ Compiler PICBASIC PRO™ Compiler Limited to first 2K code space. Uses all available code space. Interrupt handlers must be Assembly Interrupt handler routines may be either language. PICBASIC PRO or Assembly. Uses Peek and Poke commands to access Internal register names may be used internal registers and move contents to and directly, even in calculations and from pre-defined variables. conditional statements. Some built-in commands can only be used Software-based commands may be used on on PortB, PortC or GPIO. While all ports any available port/pin. (Commands that utilize may be accessed with Peek and Poke, some a hardware module are limited to the pins dedicated aren't available for commands like Serout, to that module. Some pins have special characteristics that might cause compatibility Pulsin, etc. issues.) Clock speed pre-defined at 4MHz. Clock speeds from 3.5975 to 48MHz, depending upon device capabilities.

Most 14-bit core PICmicro® MCUs ALL PICmicro® MCUs are supported, supported. including 12-bit core, 17CXXX, 18CXXX, and 18FXXX. BASIC Stamp I compatible variable names Define your own custom variables, pre-defined. including arrays of bits, bytes or words.

Software Components 69

4.0.1 Additional commands available only in PICBASIC PRO

• LCDOut / LCDIn - for controlling parallel interfaced LCD modules. • HSerin / HSerout - for controlling the hardware USART available on many PICmicro MCUs. • HPWM - for controlling the hardware PWM modules available on many PICmicro MCUs. • Serin2 / Serout2 - RS-232 serial commands capable of sending and receiving ASCII formatted numeric data. Serin2 can be invoked with a timeout parameter to avoid lockup caused by missed serial data. • Select Case - Visual BASIC style case statement. • ReadCode / WriteCode - read and write locations in the code space of self- programming microcontrollers. • OWin / OWout - communicate with One Wire devices. • USBin / USBout - access the USB module on specially equipped microcontrollers. • Xin / Xout - send and receive X-10 commands for household remote control. • ADCin - perform analog-to-digital conversion on devices so equipped.

4.0.2 PICBASIC PRO advantages:

• Uses 5-10% less code space than standard compiler. • Syntax is less demanding, making Pro easier to learn. • Debug information can be generated for Microchip development tools.

The PICBASIC PRO Compiler gives you direct access to all of the PIC MCU registers - I/O ports, A/D converters, hardware serial ports, etc. - easily and in BASIC. It automatically takes care of the page boundaries and RAM banks. It even includes built-in commands to control intelligent LCD modules. Floating-Point calculations are possible with downloaded routines. [13]

The PICBASIC PRO Compiler instruction set is compatible with the BASIC Stamp II and Pro uses BS2 syntax. Programs can be compiled and programmed directly into a PIC MCU, eliminating the need for a BASIC Stamp module. These programs execute

Software Components 70 much faster and may be longer than their Stamp equivalents. They may also be protected so no one can copy your code.

The PICBASIC PRO Compiler can create programs for most of Microchip's PIC microcontrollers and works with most PIC MCU programmers, including the melabs USB Programmer.

The PICBASIC PRO Compiler can also be used inside Microchip's MPLAB® IDE. This allows using Microchip tools for source-level debugging. [13]

PICBASIC PRO Compiler has limited support for the 12-bit core microcontrollers. Windows 98/Me/NT/2000/XP/Vista and DOS compatible

• Supports Microchip PIC10, PIC12, PIC14, PIC16, PIC17, and PIC18 microcontrollers • True compiler provides faster program execution and longer programs than BASIC interpreters • Direct access to any pin or internal register on a PIC MCU • Automatic code-page and RAM-bank handling • BIT, BYTE, WORD, and LONG* individual variables or arrays • 32-bit signed math for PIC18*, 16-bit unsigned for other PIC microcontroller families • Real If..Then..Else..Endif and Select Case conditionals • Hierarchal expression handling with grouping by parentheses • Interrupts in BASIC and Assembly Language • BASIC Stamp I and II libraries • System clock oscillator support from 3.58MHz to 64MHz • In-line Assembly Language insertion and Call supportMPLAB® / MPASM / ICD2 / ICE compatible with source-level debuggig

Software Components 71 4.0.3 PICBASIC PRO Compiler Instruction Set

• @ Insert one line of assembly language code. • ADCIN Read on-chip analog to digital converter. • ASM..ENDASM Insert assembly language code section. • BRANCH Computed GOTO (equiv. to ON..GOTO). • BRANCHL Branch out of page (long BRANCH). • BUTTON Debounce and auto-repeat input on specified pin. • CALL Call assembly language subroutine. • CLEAR Zero all variables. • CLEARWDT Clear (tickle) Watchdog Timer. • COUNT Count number of pulses on a pin. • DATA Define initial contents of on-chip EEPROM. • DEBUG Asynchronous serial output to fixed pin and baud. • DEBUGIN Asynchronous serial input from fixed pin and baud. • DISABLE Disable ON DEBUG and ON INTERRUPT processing. • DISABLE DEBUG Disable ON DEBUG processing. • DISABLE INTERRUPT Disable ON INTERRUPT processing. • DTMFOUT Produce touch-tones on a pin. • EEPROM Define initial contents of on-chip EEPROM. • ENABLE Enable ON DEBUG and ON INTERRUPT processing. • ENABLE DEBUG Enable ON DEBUG processing. • ENABLE INTERRUPT Enable ON INTERRUPT processing. • END Stop execution and enter low power mode. • ERASECODE Erase block of code memory • FOR..NEXT Repeatedly execute statements. • FREQOUT Produce up to 2 frequencies on a pin. • GOSUB Call BASIC subroutine at specified label. • GOTO Continue execution at specified label. • HIGH Make pin output high. • HPWM Output hardware pulse width modulated pulse train. • HSERIN Hardware asynchronous serial input. • HSERIN2 Hardware asynchronous serial input, second port. • HSEROUT Hardware asynchronous serial output. • HSEROUT2 Hardware asynchronous serial output, second port. • I2CREAD Read from I2C device. • I2CWRITE Write to I2C device. • IF..THEN..ELSE..ENDIF Conditionally execute statements. • INPUT Make pin an input. • LCDIN Read from LCD RAM. • LCDOUT Display characters on LCD. • {LET} Assign result of an expression to a variable. • LOOKDOWN Search constant table for value. • LOOKDOWN2 Search constant / variable table for value. • LOOKUP Fetch constant value from table. • LOOKUP2 Fetch constant / variable value from table.

Software Components 72 • LOW Make pin output low. • NAP Power down processor for short period of time. • ON DEBUG Execute BASIC debug monitor. • ON INTERRUPT Execute BASIC subroutine on an interrupt. • OWIN One-wire input. • OWOUT One-wire output. • OUTPUT Make pin an output. • PAUSE Delay (1mSec resolution). • PAUSEUS Delay (1uSec resolution). • PEEK Read byte from register. • PEEKCODE Read byte from code space • POKE Write byte to register. • POKECODE Write byte to code space at device programming time • POT Read potentiometer on specified pin. • PULSIN Measure pulse width on a pin. • PULSOUT Generate pulse to a pin. • PWM Output pulse width modulated pulse train to pin. • RANDOM Generate pseudo-random number. • RCTIME Measure pulse width on a pin. • READ Read byte from on-chip EEPROM. • READCODE Read word from code memory. • REPEAT..UNTIL Execute statements until condition is true. • RESUME Continue execution after interrupt handling. • RETURN Continue at statement following last GOSUB. • REVERSE Make output pin an input or an input pin an output. • SELECT CASE Compare a variable with different values. • SERIN Asynchronous serial input (BS1 style). • SERIN2 Asynchronous serial input (BS2 style). • SEROUT Asynchronous serial output (BS1 style). • SEROUT2 Asynchronous serial output (BS2 style). • SHIFTIN Synchronous serial input. • SHIFTOUT Synchronous serial output. • SLEEP Power down processor for a period of time. • SOUND Generate tone or white-noise on specified pin. • STOP Stop program execution. • SWAP Exchange the values of two variables. • TOGGLE Make pin output and toggle state. • USBIN USB input. • USBINIT Initialize USB. • USBOUT USB output. • WHILE..WEND Execute statements while condition is true. • WRITE Write byte to on-chip EEPROM. • WRITECODE Write word to code memory. • XIN X-10 input. • XOUT X-10 output.

Software Components 73 4.0.4 Functions / Operators:

All math operations are unsigned and performed with 16-bit precision. [13]

Math Operators Description + Addition - Subtraction * Multiplication ** Top 16 Bits of Multiplication */ Middle 16 Bits of Multiplication / Division // Remainder (Modulus) << Shift Left >> Shift Right ABS Absolute Value* COS Cosine DCD 2n Decode DIG Digit DIV32 31-bit x 15-bit Divide MAX Maximum* MIN Minimum* NCD Encode REV Reverse Bits SIN Sine SQR Square Root & Bitwise AND | Bitwise OR ^ Bitwise Exclusive OR ~ Bitwise NOT &/ Bitwise NOT AND |/ Bitwise NOT OR ^/ Bitwise NOT Exclusive OR

Software Components 74 4.0.5 PICBASIC Compiler Features

• Quicker and easier than "C" or assembler • Expanded BASIC Stamp I compatible instruction set • True compiler provides faster program execution and longer programs than BASIC interpreters • I2CIN and I2COUT instructions to access external serial EEPROMs • More user variables • Peek and Poke instructions to access any PICmicro MCU register from BASIC • Serial speeds to 9600 baud • In-line assembler and Call support • Supports most 14-bit core PICmicro microcontrollers • Use in DOS or Windows • Compatible with most PICmicro MCU programmers (see melabs USB Programmer)

4.0.6 Structure of a Compiled Program

PBP is designed to be easy to use. Programs can be compiled and run with little thought to PBP's internal workings. Some people, however, only have confidence in a product when they understand its internal workings. Others are just plain curious.

This section is for them. It describes the files used and output generated by PBP and gives some idea of exactly what is going on. [13]

4.0.7 Target Specific Headers

Three target specific header files are used when a program is compiled. One is used by PBP, the other two are included for use by the assembler.

A file with the name of the microcontroller followed by the extension .BAS contains chip specific information needed by PBP. This includes the memory profile of the chip, which library it uses, and includes for the definition of the variables it needs. For the PIC16F84, the default microcontroller, the file is named 16F84.BAS.

A file with the name of the microcontroller followed by the extension .INC is included in the generated .ASM file to give the assembler information about the chip, including the

Software Components 75 default configuration parameters (oscillator mode, Watchdog Timer setting, etc.). For the PIC16F84, the file is named 16F84.INC.

Finally, the assembler has its own include file that defines the addresses of the microcontroller registers. This file is usually named something on the order of M16F84.INC. and is in the INC directory. [13]

4.0.8 The Library Files

PBP includes a set of library files that contain all of the code and definition files for a particular group of microcontrollers. In the case of 14-bit core PICmicros, these files start with the name PBPPIC14.

PBPPIC14.LIB contains all of the assembly language subroutines used by the compiler. PBPPIC14.MAC contains all of the macros that call these subroutines. Most PICBASIC PRO™ commands consist of a macro and an associated library subroutine. PBPPIC14.RAM contains the VAR statements that allocate the memory needed by the library. [13]

PIC14EXT.BAS contains the external definitions that tell PBP all of the 14-bit core PICmicro register names.

4.0.9 PBP Generated Code

A PICBASIC PRO™ compiled program is built in several stages. First PBP creates the .ASM file. It then builds a custom .MAC file that contains only the macros from the macro library that are used in the .ASM file. If everything is error free up to this point, it spawns the assembler.

The assembler generates its own set of files. These include the .HEX final output file and possibly listing and debugging files.

Software Components 76 4.0.10 .ASM File Structure

The .ASM file has a very specific structure. Things must be done in a particular order for everything to work out properly.

The first item placed in the file is an equate defining which assembler is to be used, followed by an INCLUDE to tell the assembler which microprocessor is the target and give it some basic information, such as the configuration data.

Next, all of the variable allocations and aliasing is listed. EEPROM initialization is next, if called for.

An INCLUDE for the macro file is then placed in the file, followed by an INCLUDE for the library subroutines.

Finally, the actual program code is incorporated. This program code is simply a list of macros that were generated from the PICBASIC PRO™ lines. [13]

Software Components 77 4.1 EPIC programmer

EPIC (Explicitly Parallel Instruction Computing) is a 64-bit microprocessor instruction set, jointly defined and designed by Hewlett Packard and Intel, that provides up to 128 general and floating point unit registers and uses speculative loading, predication, and explicit parallelism to accomplish its computing tasks. By comparison, current 32-bit CISC and RISC microprocessor architectures depend on 32-bit registers, branch prediction, memory latency, and implicit parallelism, which are considered a less efficient approach in micro architecture design. [14]

IA-64 (Intel Architecture-64), Intel's first 64-bit CPU micro architecture, is based on EPIC. Intel's first implementation, long expected and well-known as Merced (its code name), was christened with the Itanium brand name in October, 1999. It is expected that Itanium-based systems will be compatible with versions of existing and future operating systems including HP-UX, 64-bit Windows, IA-64 , Project Monterey, and Nov

The EPIC programmer consists of software (EPIC Program) and a programming carrier board (hardware). The EPIC software package has two executable files one for DOS and another version for Windows. It is the EPIC hardware and software that take the compiled hex file generated by the compiler and upload it into the microcontroller where it may be run. The EPIC programmer is compatible with both the PICBasic and PICBasic Pro compilers. [13,14]

4.1.1 EPIC Programmer for PICmicro controllers Features

• Low cost programmer for most PICmicro microcontrollers • Connects to PC parallel printer port • ICSP programming • The programmer has a built-on 18-pin socket for programming 8-, 14- and 18-pin DIP packaged PICmicro MCUs and must be powered with a power adapter within the range of 15 - 18 Volt. (Before using the programmer be sure to adjust the

Software Components 78 programming voltage of 13.5 Volt using the mounted Potentiometer and a Voltmeter) [14]

4.1.2 EPICWIN and EPIC Programmer The EPIC Programmer is an inexpensive microcontroller programmer that will program most PICmicro microcontrollers (MCUs). Most 8-, 14- and 18-pin PICmicro MCUs may be programmed in the socket on the EPIC Programmer. Optional adapters are available to program 20-, 28- and 40-pin DIP PICmicro MCUs, as well as PICmicro MCUs in surface-mount and PLCC packages.

4.1.2.1 Software Installation

The EPIC Programmer files are compressed into a self-extracting file on the disk. They must be uncompressed before use. To uncompress the files, first a directory should be created on hard drive called EPIC, or any other name. [14]

4.1.2.2 Hardware Installation

There should be no PICmicro MCUs installed in the EPIC programming socket or any connected adapter's socket until the programming software is executed and the LED is off. The EPIC Programmer should be placed on an insulated surface to prevent the shorting out of traces on the bottom.

The EPIC Programmer is connected to a PC compatible parallel printer port using a 25- pin male to 25-pin female printer extension cable. The EPIC Programmer uses pins 2-6, 10, and 19-25. A serial cable may not have all of the necessary connections so it should be assured to use a printer extension cable.

If the EPIC Programmer is powered with the optional AC adapter, it should be plugged it into the power connector on the programmer and then into a wall outlet. The AC adapter should provide approximately 16V DC at 500ma.

Software Components 79 If the EPIC Programmer is powered with two 9-volt batteries, then batteries should be snapped onto the battery snaps. 2-pin shorting jumper should be connected to the 2-pin "Batt ON" posts. It is a good idea to check the battery voltage from time to time or if there seems to be difficulty programming parts. [14]

The EPIC Plus Programmer should now be powered up and ready to program PICmicro MCUs.

4.1.3 General Operation

The next task is to write the program using any text editor, such as DOS EDIT or Windows NOTEPAD, and assemble it using the assembler, PM, included on the disk, or MPASM (or MPLAB), available from Microchip. Instructions for the use of PM are on the included disk.

Once the program assembles properly, the generated .HEX file may be programmed into a PICmicro MCU using the EPIC programming software. Three versions of the EPIC software are included: two versions for DOS (one command line and one graphical) and one for Windows 95/98/ME/NT/2000/XP.

The Windows 95/98/ME/NT/2000/XP version should, of course, be run under Windows 95, 98, ME, NT, 2000 or XP. The Windows and command line DOS versions are more up-to-date than the graphical DOS version and are able to program more types of PICmicro MCUs. [14]

4.1.4 EPIC for Windows 95/98/ME/NT/2000/XP

First the Windows 95/98/ME/NT/2000/XP version of the EPIC software should be started by navigating using Explorer to the EPIC directory and double-clicking on EPICWin. Alternatively, a shortcut can be created to EPIC on desktop. The EPIC software will take a look around to find where the EPIC Plus Programmer is attached and get it ready to program a PICmicro MCU. If the EPIC Programmer is not found, all of the

Software Components 80 above connections should be checked and verified if there is any PICmicro MCU installed in the programmer or any connected adapter.

Once the programming bar is displayed, the device type should be selected by using the drop-down device selector box to the right of the buttons.

The assembled object (.HEX) file should be opened. Double-click on the appropriate file to load it. Once the file has been loaded, the proper device characteristics are selected under the Options menu. The Code Protect is set to OFF before programming a windowed (JW) PICmicro MCU. Code protected windowed part may not be erased. A PICmicro MCU sould be inserted into the EPIC Programmer or connected adapter socket. The end of the PICmicro MCU with the notch should be all the way at the Pin 1 end of the socket, away from the battery connectors. the Program button should be clicked or Run|Program with the mouse to program the PICmicro MCU.

Before programming, the EPIC software optionally does a blank check to ensure that the part is erased. If the PICmicro MCU is a 16F84 or another EEPROM or flash part, it is usually not necessary to erase it before programming. PIC16F7x and PIC18Fxxx devices do require erasing each time before the MCU may be reprogrammed. [14]

Figure 4.1: EPICWin Controls

4.1.5 EPICWin Controls

The Open speed button opens a .HEX file for programming. The name of an open file appears in the EPICWin title bar. Previous configuration information will not be altered if Options|Update Configuration is not checked.

Software Components 81 The Save speed button will save the current code, data, ID and configuration information to the currently open file. If no file has been previously selected, it will prompt for a filename.

The Program speed button will program the current code, data, ID and configuration into the selected device. It will optionally load the latest version of the .HEX file before programming. The device will be checked to ensure it is blank before programming, unless Options|Skip Blank Check is checked.

The Verify speed button will compare the current code, data, ID and configuration to the programmed device. If the information does not match, an error message is displayed. A verifies is also done as the device is being programmed. A code protected device cannot be verified.

The Read speed button will read the current code, data, ID and configuration from the selected device. The configuration information will not be read if Options|Update Configuration is not checked.

The Blank Check speed button will read the code space to ensure a device is blank. It will not check the data space, ID, configuration or the oscillator calibration word programmed by the factory into some devices.

The Erase speed button will erase EEPROM or flash electrically erasable devices. It is grayed out for devices that cannot be electrically erased.

The Device box allows selection of the device to be programmed. Click the down arrow to the right of the box to drop down a list of supported devices, and then click on the device. This device information, including the default device that is selected on start-up, is contained in the file EPIC.INI. This file must be in the same directory as EPICWIN.EXE. The device should be selected before a .HEX file is opened

Software Components 82 to ensure the configuration information is properly interpreted. Devices with parenthesis after them indicate that they will program either the base version of the part, or the version contained within the parenthesis. For example, selecting the device listed as PIC16F84 (A) means that either the PIC16F84 or the PIC16F84A may be programmed.

4.1.6 EPICWin Menus

4.1.6.1 File Menu

File|New clears the EPICWin code, data and ID information. If Options|Update Configuration is checked, the configuration information will also be cleared.

File|Open opens a .HEX file for programming. The name of an open file appears in the EPICWin title bar. Previous configuration information will not be altered if Options|Update Configuration is not checked.

File|Save saves the current code, data, ID and configuration information to the currently open file. If no file has been previously selected, it will prompt for a filename.

File|EPIC Port will display the parallel printer port the EPIC Programmer was found on, if Auto is checked. If Auto is not checked, the printer port can be selected manually.

File|Exit exits the program.

4.1.6.2 View Menu

View|Code displays the code window. This will show the open .HEX file or recently read code information in hexadecimal or ASCII.

View|Configuration displays the device configuration fuse window. Additional configuration fuses for the PIC17C7xx and PIC18Xxxx devices must be set from the drop-down Configuration menu.

View|Data EEPROM displays the data EEPROM window. This will show the open .HEX file or recently read data information in hexadecimal or ASCII. Only devices with on-chip EEPROM data space will read and program this data.

View|ID displays the ID window. This will show the open .HEX file or recently read code information in hexadecimal or ASCII.

View|Serial Number displays a window that allows the serial number to be set and programmed into the device. The serial number is stored in the code space at the specified location, overwriting any code that may already be there, and will be incremented by the Increment By value after each successful programming.

Software Components 83 View|Count displays a window showing the number of programming attempts and successes. The count is reset when the software is started, a file is opened, a device is read or the device type is changed.

View|Close All Windows closes any open configuration, code, data, ID or count window.

View|Stay On Top causes the EPICWin bar to float on top of any other windows when checked.

4.1.6.3 Run Menu

Run|Program will program the current code, data, ID and configuration into the selected device. It will optionally load the latest version of the .HEX file before programming. The device will be checked to ensure it is blank before programming, unless Options|Skip Blank Check is checked.

Run|Verify will compare the current code, data, ID and configuration to the programmed device. If the information does not match, an error message is displayed. A verify is also done as the device is being programmed. A code protected device cannot be verified.

Run|Read will read the current code, data, ID and configuration from the selected device. The configuration information will not be read if Options|Update Configuration is not checked.

Run|Blank Check will read the code space to ensure a device is blank. It will not check the data space, ID, configuration or the oscillator calibration word programmed by the factory into some devices.

Run|Erase will erase EEPROM or flash electrically erasable devices. It is grayed out for devices that cannot be electrically erased.

4.1.6.4 Configuration Menu

The configuration fuses are unique to each particular PICmicro MCU.

4.1.6.5 Options Menu

Options|Program/Verify Code allows the device's code space to be programmed and verified when checked. If it is not checked, the device's code space will not be programmed or verified. It will always be read and blank checked, regardless.

Options|Program/Verify Configuration allows the device's configuration fuses to be programmed and verified when checked. If it is not checked, the device's configuration fuses will not be programmed or verified.

Software Components 84 Options|Program/Verify Data allows the device's data space, if any, to be programmed and verified when checked. If it is not checked, the device's data space will not be programmed or verified. It will always be read, regardless.

Options|Program/Verify ID allows the device's ID to be programmed and verified when checked. If it is not checked, the device's ID will not be programmed or verified. It will always be read, regardless.

Options|Program/Verify Oscillator Calibration allows the device's oscillator calibration factor location to be programmed and verified when checked. If it is not checked, the device's oscillator calibration factor location will not be programmed or verified. It will always be read, regardless.

Options|Program Serial Number allows a serial number to be programmed into the device when checked. If it is not checked, the serial number will not be programmed. As the serial number is programmed into the code space, Program Code must also be checked to program the serial number.

Options|Update Configuration, when checked, will cause the configuration fuse settings to be updated when opening a file or reading a device. If it is not checked, the configuration fuse settings will not be changed.

Options|Reread File Before Programming, when checked, will cause the latest version of the .HEX file to be loaded before the device is programmed. The configuration fuse settings will also be updated, if Options|Update Configuration is checked. This will override the current settings.

Options|Erase before Programming, when checked, will cause the device to be erased before it is programmed.

Options|Verify after Programming, when checked, will cause the device to be verified as a separate step after programming.

Options|18Fxxx File Data Address * 2, when checked, will multiply the Data EEPROM addresses in the .HEX file times 2 for compatibility with files generated by PBP after version 2.43.

Options|Disable Completion Messages will prevent the displaying of operation complete messages at the end of programming, verifying and erasing a device.

Options|Skip Blank Check will prevent blank checking a device before it is programmed when checked.

4.1.6.6 Help Menu

Help|Help opens the default browser and displays the HTML help file.

Software Components 85 Help|Readme opens the default text editor and displays the README file.

Help|About... displays the program version number and copyright.

4.1.7 EPICWin Command Line Parameters

Several optional parameters may be passed to the EPICWin program via the command line:

EPICWin {switch}, {filename}

The available command line switches are:

• /D Select PICmicro MCU device • /P Program device and exit • /X Exit EPICWin after successful programming

For example:

EPICWin /DPIC16F877 BLINK would tell EPICWin to select the PIC16F877 as the device and open the file BLINK.HEX.

Software Components 86 CHAPTER 5 METHODOLOGY

In previous chapters the theoretical concepts behind the home automation system were discussed. The goal of this chapter is to present a final system specification for the proposed home automation system of this research work. In this chapter the planning of the project, hardware and software development including the hardware design and software programming are discussed.

5.0 Design Overview This section briefly discusses the overall project design including the workflow of activities, device design and program development. Initial construction of circuit is done on a test board for easier testing and modification. It is then transferred to a main board after the circuit is found to be working. Software development includes the programming of the PIC16F877A, which interfaces to all the hardware part. A set of instruction code is written to indicate the microcontroller performs the function required. In the interfacing stage, hardware and software work together as a complete system. Figure 5.1 shows the project development flow chart of this project which includes the back ground study and the planning of the project. Hardware e.g. Microcontroller, GSM module and LCD display were assembled and software components e.g. development of software and writing on PIC microcontroller was done. Subsequently hardware and software were tested and project was finalized. Figure 5.2 shows the overall block diagram of the project. Basically it is divided in to two parts; one is the mobile phone which transmits the desired SMS and other is the receiving unit comprising the GSM Module, PIC Microcontroller that process and sends the desired actions to the load devices and sends a back to back SMS to user about the present status of all load devices. Figure 5.3 shows the flow chart of the project functioning. This diagram shows the complete functioning of the project in flow chart. In figure 5.4 shows the PCB layout which depicts the positions of different components on the PCB. In the later part the interfacing of individual components are described

Methodology 87

Research & Study

Planning

Write program for PIC Assemble hardware: GSM Module, Microcontroller using PIC16F877A, LCD-Display & PICBasic Pro Devices controlled.

Test Modify programming and Hardware/troubleshoot

OK

Finalize & Complete

Figure 5.1: Project development flow chart

Methodology 88

Fan

SIM Tube AC Power Bulb Supply Unit

AC

Mobile GSM PIC16F877A LCD Module Microcontroller Display

DC Power Supply

TRANSMITTER UNIT RECEIVER UNIT

Figure 5.2: Block diagram of the project.

Methodology 89 Start

Define: LCD Pin RS 232 Pin & Input Out put Port

Read EEPROM

Is connecti on Error Message ok ? N Y

Is New 10 Sec Y SMS ? N Delay

Delete SMS

Check Password

Is password Y Read SMS correct? N

Is SMS format correct? N Y

Send proper signals to relay through port

Send SMS to Caller Store Program output in EEPROM

Prepare Reply SMS Read Caller ID

Fig 5.3: Flowchart of functioning of device.

Methodology 90

Figure 5.4: PCB Layout

Methodology 91 5.1 Hardware implementations

The complete schematic diagram of the project is shown in the Figure 5.5 where all the hardware part such as GSM Module, PIC16F877A microcontroller, LCD display and Sensors are combined together. The hardware implementation part will be discussed in the following section.

Figure 5.5: Schematic diagram of the project

5.1.1 The PIC16F877A Microcontroller

PIC is a family of Harvard architecture microcontrollers made by Microchip Technology, derived from the PIC1650 originally developed by General Instrument's Microelectronics Division. The name PIC was originally an acronym for "Programmable Intelligent Computer"

Methodology 92 5.1.1.1 Features of PIC16F877A Microcontroller

PIC16F877A is a low power, high speed FLASH/EEPROM using CMOS technology. It also has 100,000 erase or write cycle enhanced FLASH program memory and has 1,000,000 erase or write cycle data EEPROM memory typical. The PIC16F877A provides the following features: [12] • The core features of PIC16F877A are:

♦ 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) ♦ Programmable code protection ♦ Power saving SLEEP mode ♦ Low power, high speed CMOS FLASH/EEPROM technology ♦ In-Circuit Serial Programming. (ICSP) via two pins ♦ Single 5V In-Circuit Serial Programming capability ♦ In-Circuit Debugging via two pin ♦ Processor read/write access to program memory ♦ Wide operating voltage range: 2.0V to 5.5V ♦ High Sink/Source Current: 25 mA

Methodology 93 • The peripheral features of the PIC16F877 are:

♦ 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)

5.1.2 GSM Module SIM 300CZ

A GSM module is a wireless module that works with a GSM wireless network. A wireless module sends and receives data through radio waves. Like a GSM mobile phone, a GSM module requires a SIM card from a wireless carrier in order to operate [21]. • Reading and writing SMS messages. • Sending SMS messages. • Monitoring the signal strength. • Reading, writing and searching phone book entries.

Methodology 94 5.1.3 Interfacing of Microcontroller with GSM Module

Figure 5.6: Interfacing of Microcontroller with GSM Module

Interfacing of Microcontroller with GSM Module

This interfacing circuit is used to match the voltage level between GSM Module and Microcontroller. Microcontroller operates on +5 volts whereas GSM Module on 3.93 volts. Microcontroller is connected to GSM Module through pin 6 (Rx) and 7 (Tx) of Microcontroller and pin 43 (Tx) and 41 (Rx) of GSM Module respectively. Pin 43 of GSM Module transmit the 3.9 volts that is phase shifted by 3600 by two transistors Q1 and Q2 (2N2222A). R1 (4.7K), R2 (1K) are transistor base biasing and R3 (1K), R4 (1K) are the collector biasing resistor whereas R5 (10K) is a load resistor. Pin 7 of

Methodology 95 Microcontroller transmit the 5 volts which is dropped to 3.93 volts by resistors R6 (22R) and R7 (220R). Zener diode stabilizes voltage across GSM module to 3.93 volts.

Function A SMS is send by cell phone is received by the GSM module which uses the GSM SIM card. This SMS is send to Microcontroller which receives, compile and compare it with its stored program. If the message is correct according to microcontroller’s programming the microcontroller sends the instructions to relays. If the massage is wrong then microcontroller will not take any action and delete the message. These instructions are stored in the EEPROM. Microcontroller sends back instructions to module to send an acknowledgement to the cell phone of sender about the last status.

5.1.4 Liquid Crystal Display (LCD)

Liquid Crystal Display (LCD) is an electronically-modulated optical device shaped into a thin, flat panel made up of any number of color or monochrome pixels filled with liquid crystals and arrayed in front of a light source (backlight) or reflector. It is often utilized in battery-powered electronic devices because it uses very small amounts of electric power. The nematic phase is characterized by the orientational order of the constituent molecules. The molecular orientation (and hence the material's optical properties) can be controlled with applied electric fields. Nematics are (still) the most commonly used phase in liquid crystal displays (LCDs), with many such devices using the twisted nematic geometry.

Figure 5.7: Reflective twisted nematic liquid crystal display

Methodology 96 Reflective twisted nematic liquid crystal display. [26]

1. Polarizing filter film with a vertical axis to polarize light as it enters. 2. Glass substrate with ITO electrodes. The shapes of these electrodes will determine the shapes that will appear when the LCD is turned ON. Vertical ridges etched on the surface are smooth. 3. Twisted nematic liquid crystal. 4. Glass substrate with common electrode film (ITO) with horizontal ridges to line up with the horizontal filter. 5. Polarizing filter film with a horizontal axis to block/pass light. 6. Reflective surface to send light back to viewer. (In a backlit LCD, this layer is replaced with a light source.)

5.1.5 Interfacing of Microcontroller with LCD

Figure 5.8: Interfacing of Microcontroller with LCD

Methodology 97 Interfacing of LCD Display to Microcontroller PIC16F877A

Pin 11, 12, 13, 14, (D4, D5, D6, D7), 4 (RS) and 6 (E) of LCD Display are connected Pin 33, 34, 35, 36, 37& 38 (RBD/NT, RB1, RB2, RB3/PGM, RB4 &RB5) of Microcontroller PIC16F877A.

5.1.6 Interfacing Circuit (Microcontroller to Load Devices)

Figure 5.9: Interfacing of Microcontroller with load Devices

Interfacing of Microcontroller with load Relays Four load devices are connected to microcontroller pins 27, 28, 29 and 30 through relays. After receiving the signal from GSM Module, Microcontroller takes the decision to send the signal (+5V) to Transistor to turn on it (VCE approx. 0). Then there will be +12 V supply in relay coil that in turn switch on/off the load device

Methodology 98 5.1.7 Short Message Service (SMS)

SMS stands for Short Message Service. It is a technology that enables the sending and receiving of messages between mobile phones. SMS first appeared in Europe in 1992. It was included in the GSM (Global System for Mobile Communications) standards right at the beginning. Later it was ported to wireless technologies like CDMA and TDMA. SMS text messaging supports languages internationally. It works fine with all languages supported by Unicode, including Bangla, Arabic, Chinese, Japanese, and Korean. Besides text, SMS messages can also carry binary data. It is possible to send ring tones, pictures, operator logos, wallpapers, animations, business cards (e.g. V-Cards) and WAP configurations to a mobile phone with SMS messages. One major advantage of SMS is that it is supported by 100% GSM mobile phones. Almost all subscription plans provided by wireless carriers include inexpensive SMS messaging service. [28]

5.1.8 Interfacing Circuit (GSM Module to SIM Card)

Figure 5.10: Interfacing of GSM Module to SIM Card

Methodology 99 Interfacing of GSM Module to SIM Card

GSM Module SIM300CZ consists of sixty (60) pins. Pin 1, 3, 5, 7 and 9 are connected to (+ve) pole and gets the power supply of 3.93 volts for module. Pin 2, 4, 6, 8 and 10 remain grounded. Pin 16 connected to network status LED and pin 19 connected to module status LED. Pin 23 is connected to buzzer. Pin 25, 27, 29 and 31 are connected to SIM card as follows; pin 25 to VDD, pin 27 to SIM RST, pin 29 to SIM Data and pin 31 to SIM Clock (3 MHz.). Pin 43 (TX) and pin 41 (RX) of GSM Module are connected to Pin 6 (RA4/TK01/C1OUT) and pin 7 (RA5/AN4/SS/C2OUT) of Microcontroller.

5.1.9 Power Supply to the System

Figure 5.11: Power Supply Unit.

The system is powered by ordinary house power supply of 220 volts AC which is converted to 18 volts AC by a step down transformer. This is again converted to 18 volts DC power by filtering capacitor and bridging rectifier. 18 volts DC power supply is regulated by different regulators and supplied to different devices accordingly. 18 volts DC is converted to 3.93 volts by regulator IC (LM 317) and supplied to GSM Module. 18 volts DC regulated to 5 volts DC by regulator IC (LM 7805) and supplied to Microcontroller. Relays receive 12 volts DC regulated by regulator IC (LM 7812). This is bolted to a heat sink to conduct the heat away from the device to prevent it from overheating. Figure 5.11 shows the diagram of power supply.

Methodology 100 5.2 Software Implementations

5.2.1 Steps of writing program in PICBasic Pro

Step 1. Open the PICBasic Pro window • Double click on exe. file and install the PICBasic Pro • Open PICBasic Pro Step 2. Creating a new page • Double click on PICBasic Pro menu bar • Select →File on menu bar →New page or directly clicking on new page icon on standard menu bar

Methodology 101 Step 3. Selection of chip select • Click on pop down menu • Select chip 16F877A

Step 4. Write the program • Under the star marked line write the program code. Step 5. Save the program • Select the file on menu bar →Click on “Save as” →Give “File name” →Save or click on “Save” icon on standard menu bar

Methodology 102 Step 6. Compile the program • Select the project on menu bar • Click on “Compile”

The program successfully compiled.

Methodology 103 5.2.2 Steps of loading program in to microcontroller by using EPIC WIN soft ware

Step 1. Copy the EPIC WIN to the computer • Double click on EPIC WIN →Select “view” on menu bar →Code (a window will be popped up) • Again select view on menu bar → Configuration (a window will be popped up)

Methodology 104 Step 2. Select file → open → double click on “Save program file” • Select the code protection from Configuration Window • Disable other options

Step 3. Saved program will go to the right popped up window.

Methodology 105 Step 4. Click on pop down menu • Select chip PIC16F877A • Successful compilation of Hex code in to microcontroller.

The PIC microcontroller (PIC16F877A TM, Microchip Technology Inc., USA), which is programmed using PICBASIC Pro is controlled by mobile phone. The SMS is send by the mobile phone will be received by GSM module connected to SIM holder containing the SIM. The SMS read and send to the microcontroller by GSM module. The microcontroller will match the message according to its program and send the instructions to sensors and relays to switch ON/OFF the devices (Lights, Fan, and Air- conditioner). The PIC microcontroller subsequently send message GSM module that will generate a message to the mobile phone owner.

Methodology 106 Sending SMS and display

Figure 5.12 Camera picture of SMS display

5.3 Sending SMS and display For the protection of unauthorized access we used a code (1401) which is stored in microcontroller. These photographs show the status of the load devices.

Methodology 107

Figure 5.13: Front Photograph of the Device

Figure 5.14: Front Photograph of the Device in functional state

Methodology 108

Figure 5.15: Bottom view of the Device

5.4 Functioning of the Device

5.4.1 Steps of functioning of the Device

• The device is switched on by power switch. • The network status is indicated by blinking of LED. At the beginning LED blinks fast. When network is searched it blinks slowly. • A SMS is send by cell phone is received by the GSM module which uses the GSM SIM card. • This SMS is send to micro controller which receives, interpret and compare it with its stored program. • If the message is correct according to microcontroller’s programming the microcontroller sends the instructions to relays. • If the massage is wrong then microcontroller will not take any action and delete the message.

Methodology 109 • Relays switch on/off the load devices according to the instructions given by microcontroller serially. • These instructions are stored in the EEPROM. • Microcontroller sends back instructions to module to send an acknowledgement to the cell phone of sender about the last status.

Methodology 110 CHAPTER 6 RESULTS

This chapter comprises the performance of the final product with respect to the specification conditions. The beauty of this system is the fully flexible system which can be installed in both new and existing homes and offices. Plus, it is an SMS based system which is well developed and supported nowadays everywhere. It is always easy to plan, expand or change and installed. Status of given function can be controlled from anywhere on the GSM network. It is easy to add new components to a function.

6.0 Hardware Part testing When power supply is connected to the circuit, the circuit operates successfully. These include the power indication to Module, PIC Microcontroller and sensors. Usually there is a delay of about 10 seconds in getting connection of GSM network by GSM Module, but this much delay is expected. GSM Module receives the designated SMS with security code from mobile phone and sends it to PIC Microcontroller which matches the SMS with the program and sends the desired actions to relays. Another delay of average 5 seconds is experienced in delivery of SMS from mobile phone to GSM Module. GSM Module sends back to back SMS. During this testing no problem regarding the function of hardware encountered.

6.1 Software Part testing The programming has been found to be working successfully. Once a source code has been written, it is compiled to generate the HEX file. The PIC programmer is used to burn the code into the PIC 16F877A. Figure 4.4 shows the flow of the PIC programming.

Results 111

Program PIC Programmer Translator Program.hex PIC

16F877A

Figure 6.1: Sequence of loading the program to PIC

• Remote Controlling capability of the system allowed user to switch on/off through simulating the appliance as directed by the incoming SMS. • The system automatically performed tests and checked support for available features and SMS sending and receiving capability and configured system accordingly.

Overall, the product outcome was on a satisfactory level as the result was functional. Even though the result is important, the process of researching, implementing, designing and integrating are even more valuable. The skills and experience gained from this thesis project surely would be beneficial in the future careers.

Results 112 CHAPTER 7 DISCUSSION

In this thesis paper a low cost, flexible, wireless solution to the home automation is introduced. The novel approach in this thesis paper discusses the migration of the initial control mechanism of devices with simple functionality to more complex devices. The system is secured for access from outside through SMS with protection code. In the system at all stages we have used low cost easy to find components. All these choices of devices were the least possible alternatives making the whole system a low cost solution to the home automation. When we are talking about remote communication, there exists a number of available media for remote communication. Internet is a good example of this type of remote communication. Internet places virtually no bounds on geographical placement and is thus considered “enough” remote by our definition. But the Internet is a place crowded with various types of traffics, often hostile to each other. Security vulnerability is the most striking alert point of the Internet. Whenever a web based application goes live, a lot of efforts have to take place before it can be said to be secured, if at all. When we say remote control, we want to make sure no malicious party ever gains control and abolishes everything. Also to use web, it requires resources like flawless internet connections and hosting servers, which may not always fit to the concept of remote controlling. Another candidate solution to this remote communication problem is the use of mobile telephone. Mobile telephone offers a wide range of communication services like voice and data transfer through SMS and other enhanced data transfer protocols like GPRS, EDGE at a relatively low price and at a wide variety of places on the earth. On the other hand, the security is better achieved by the use of strict traffic control. In this thesis paper this method of remote controlling of home appliances is used because of its unparallel availability and modest security at the affordable price. [16] AT command and Blue Tooth based solution are the two other media by which the remote controlling of home appliances is possible. [16]

Discussion 113 ‘AT’ stands for ‘Attention command’. GSM mobile phones are equipped with built in GSM Modems which responds to the commands issued as an SMS by the connected computer. AT commands create a logical bidirectional communication between computer and mobile phone. AT commands provide the computer with the most flexible way to control and explore the services and resources of a mobile. AT commands enable one to send and receive SMS from the computer and also it lets the computer to browse the mobiles resources like memory and phone book and so on. Pros and Cons Pros 1. The communication is solely implemented using SMS protocol which is available at most of the places. 2. It doesn’t rely on the internet and web servers, which cuts down the overhead and the cost of the communication. 3. From the programming point of view, all the efforts are rendered for the computer and not the mobile, which makes the total implementation a relatively simple task. 4. There is no binding about the physical connection link that is used between the computers and mobile, which makes it more versatile and interoperable with data cables, Bluetooth and infrared. Cons 1. AT command is somewhat device dependent. So, to permit devices from multiple vendors and multiple models, it may be necessary to alter the commands accordingly. 2. It is desired for a bidirectional communication that the communication can start from any of the two ends. But here the communication always starts with the command from the computer’s end. Bluetooth wireless technology [29] stands in the way of traditional short-range wired communications technology connecting portable and/or fixed devices while maintaining high levels of security. It obsoletes wires between your workstation, mouse, laptop computer, music head-phones etc. The key features of Bluetooth technology are robustness, low power yet low cost. The Bluetooth specification sets the standard for a wide range of devices to connect and communicate with each other. A fundamental

Discussion 114 strength of Bluetooth wireless technology is the ability to simultaneously handle both data and voice transmissions, making it most feasible for handheld devices. Pros and Cons Pros 1. Bluetooth offers a global standard for connecting a wide range of devices with different services. So, using a Bluetooth protocol at the bottom makes one application somewhat versatile in terms of interoperability. 2. Bluetooth is available at most of the handheld devices like cell phones, music players and cameras all conforming to the defined standard. So, to use the Bluetooth with the computer, one need not think about overheads like internet and web servers. 3. The technology is very easy to use. The devices generally come with built-in software support for Bluetooth operations and these are most commonly used applications for handheld devices. 4. Most desirable property for a communication protocol is the ability to measure the security support it provides. And Bluetooth restricts the malicious attacks by using the 128-bit long shared keys and once securely started, maintains it until the otherwise stated. Cons 1. One of the major limitations of Bluetooth technology is the short range of operations. So the system is unable to cope with mobility. 2. Bluetooth is not fully developed and integrated into all the products involved. We have to still wait for it to get fully evolved.

In this thesis work the proposed implementation controls the home appliances of a smart home using mobile phones from anywhere. It is well devised and precisely implemented so that a mobile phone can communicate with the microcontroller. The advantages of this solution are described below. 1. Our solution doesn't need internet which is not a secure and reliable media. 2. This is the first solution of its kind that uses mobile devices which are commonly used by everyone now days.

Discussion 115 3. Use of mobile devices gives mobility to the solution and home appliance can be controlled from almost everywhere on earth. 4. Our system is not tightly coupled to a particular vendor for the third-party controllers. So, we can have any third-party controller and still make use of the mobility and accessibility. 5. Although this is about home controlling, the underlying core of the technology can be used for controlling any system using mobile telephone. 6. This is a comparatively low cost, easy to maintain and the most accessible solution.

Discussion 116 CHAPTER 8 CONCLUSION AND FUTURE WORK

In this thesis paper, a low cost, secure, ubiquitously accessible, remotely controlled solution for automation of homes has been introduced. The approach discussed in this thesis paper is novel and has achieved the target to control home appliances remotely using the SMS-based system satisfying user needs and requirements. GSM technology capable solution has proved to be controlled remotely, provide home appliances control and is cost-effective as compared to the previously existing systems. This thesis presents an overview of the designing and implementation of the system, which offers relevant theories and information toward the research. The final product has achieved essential specification and performance of the desired system at the end of the thesis. Hence development of the system fulfils the objective of the thesis with success. The basic level of home appliance control and remote monitoring has been implemented. The system is extensible and more levels can be further developed. In case of remote monitoring other appliances can also be monitored such that security system or smoke and fire in case of emergency the system will automatically generate SMS. This is a very weak step by a fragile human being but definitely it is going to dominate our life style in future like mobile phone and computer which become indispensable part of us.

Conclusion & Future Work 117 REFERENCES

[1] Intille SS. Designing a home of the future. IEEE Pervasive Computing, 2002; Vol 1 (2): pp. 80-86. [2] Delgado AR, Picking R, Grout V. Remote-controlled home automation systems with different network technologies. In: Proceedings of the 6th International Network Conference (INC 2006), 11-14 July 2006, University of Plymouth, Plymouth: pp. 357-366. [3] Ciubotaru-Petrescu B, Chiciudean D, Cioarga R, Stanescu D. Wireless Solutions for Telemetry in Civil Equipment and Infrastructure Monitoring.In: 3rd Romanian- Hungarian Joint Symposium on Applied Computational Intelligence (SACI) 25-26 May, 2006. University of Timisoara, Romania: Available from http://www.bmf.hu/conferences/saci2006/Ciubotaru.pdf/ Accessed on 16th June 2009. [4] Conte G, Scaradozzi D. Viewing home automation systems as multiple agents systems. RoboCUP2003, 10-11 July 2003, Padova, Italy. Available from http://www.robosiri.it/ROBOCUP_2003/ROBOCUPSITOSIRI/ articles/pdf/Conte.pdf/ Accessed on 16th June 2009. [5] Alkar A Z, Buhur U. An Internet Based Wireless Home Automation System for Multifunctional Devices. IEEE Consumer Electronics, 2005; 51(4): pp 1169-1174. [6] Jawarkar N P, Ahmed V, Ladhake S A, Thakare R D. Micro-controller based Remote Monitoring using Mobile through Spoken Commands. Journal of Networks, 2008; Vol 3 (2): pp. 58-63. [7] Potamitis I, Georgila K, Fakotakis N, Kokkinakis G. An integrated system for smart- home control of appliances based on remote speech interaction., 8th European Conference on Speech Communication and Technology, EUROSPEECH 2003, 1-4 Sept., 2003, Geneva, Switzerland: pp. 2197-2200, Available from http://www.wcl.ee.upatras.gr/ai/papers/potamit is14.pdf/[Accessed on 16th June 2009]. [8] GSM world. Global Mobile Communication is 20 years old.[Online]. Available from. http:// www.gsmtwenty.com/ [Accessed on 16th June 2009].

References 118 [9] GSM Module. GSM Notification Module.[Online]. Available from. http://www. g-e.ee/files/manuals/gsm-n2_eng.pdf/ [Accessed on 16th June 2009]. [10] Wikipedia. Subscriber Identity Module (SIM). [Online] Available from. http://www.en.wikipedia.org/wiki/Subscriber_Identity_Module/ [Accessed on 16th June 2009].

[11] Trosby F. SMS, the strange duckling of GSM. Telektronikk.2004; 3: pp. 187-194 [12] Microchip Technology Inc. PIC16F7X: Data Sheet 28/40-pin, 8-bit CMOS FLASH

Microcontrollers.[Online]. Available from: http://www.microchip.com/ [Accessed on 16th June 2009]. [13] MicroEngineering Labs, Inc. PicBasic Pro Compiler.[Online]. Available from. http://www.imagesco.com/microcontroller/pbpman.pdf//[Accessed on 17th June 2009]. [14] Ford Equity Research. EPIC for Windows v5.00 – Download and Install Instructions [Online]. Available from. http://www.fordupdate.com/epic.htm//[Accessed on 17th June 2009]. [15] Eklund D, Rasmusson D. A Home Automation Prototype. Master thesis. Lund University, Sweden; 2008.

[16] Shahriyar R, Hoque E, Sohan SM, Naim I, Akbar MM, Khan MK. Remote

Controlling of Home Appliances using Mobile Telephony. International Journal of Smart Home. 2008; Vol. 2,(3): pp. 37-53. [17] Wikipedia. Home automation. [Online]. Available from. http://en.wikipedia.org/wiki/Home_automation/ [Accessed on 17th June 2009]. [18] Wikipedia. Microcontoller. [Online]. Available from. http://en.wikipedia.org/wiki/Microcontroller/ [Accessed on 18th June 2009].

[19] Karataş P, Aksoy M. Microcontroller based Home Automation. Proceedings of International Conference on Intelligent Knowledge Systems (IKS-2004), 16-20 August, 2004. [Online]. Available from. http://www Ikss.org/iks- 2004/pdf/E0109.pdf//[Accessed on 17th June 2009]. [20] Wikipedia. PIC Microcontoller. [Online]. Available from. http://en.wikipedia.org/wiki/PICmicrocontroller/ [Accessed on 18th June 2009]

References 119 [21] SIM Technology Group Ltd. Wireless Module Solution. [Online]. Available from: http://www.sim.com/ [Accessed on 22nd June 2009]. [22] Mouser Catalog Download, Mouser Electronics. Amphenol Smart Card Connectors.

[Online]. Available from: http:// www.mouser.com/amphenol-tuchel/ [Accessed on 22nd June 2009]. [23] The Xperts in Power. Power Supply Technical Guide. [Online]. Available from: http://www.xppower.com/ [Accessed on 26th June 2009].

[24] National Semiconductor Corporation. Introduction to Power Supplies. Application

Note 556. 2002. [Online]. Available from: http:// www.national.com/ [Accessed on 26th June 2009]. [25] Wikipedia. Liquid Crystal Display. [Online]. Available from. http://en.wikipedia.org/wiki/ Liquid Crystal Display / [Accessed on 27th June 2009] [26] Gray GW, Kelly SM. Liquid crystals for twisted nematic display devices. Journal of Material Chemistry. 1999; Vol. 9: pp. 2037-2050.

[27] MicroEngineering Labs, Inc. PicBasic Compiler. [Online]. Available from. th http:// www.melabs.com/ [Accessed on 30 June 2009] [28] Wikipedia. Short Message Service (SMS). [Online]. Available from. http://en.wikipedia.org/wiki/Short Message Service/ [Accessed on 19th June 2009] [29] Bluetooth Technology. Bluetooth SIG. [Online]. Available from. http://www.bluetooth.com [Accessed on 20th July 2009]

References 120

'**************************************************************** '* Name : Tahmina.* '* Author : [select VIEW...EDITOR OPTIONS] * '* Notice : Copyright (c) 2009 [select VIEW...EDITOR OPTIONS] * '* : All Rights Reserved * '* Date : 4/8/2009 * '* Version : 1.0 * '* Notes : 4 output device control : From any mobile with passward * '**************************************************************** @ DEVICE WDT_OFF & PWRT_OFF & PROTECT_ON Define OSC 12 '***** Define LCD registers and bits Define LCD_DREG PORTB Define LCD_DBIT 0 Define LCD_RSREG PORTB Define LCD_RSBIT 4 Define LCD_EREG PORTB Define LCD_EBIT 5 '****** 4 Input/Output define TRISD = %00001111 TRISA = %011111 '*****SERIAL CONNECTION define txd var PortA.5 rxd var PortA.4 Baud con 84 '9600

'****** 4 Output port define lit1 VAR PORTD.4 lit2 VAR PORTD.5 fan VAR PORTD.6 ac VAR PORTD.7 read 30,lit1 : read 31,lit2 : read 32,fan : read 33,ac

'******* variabls define sms_no var byte temp var byte slit1 VAR byte[6] ' string "light1" slit2 VAR byte[6] ' string "light2" sfan VAR byte[3] ' string "fan" sac VAR byte[2] ' string "ac" son VAR byte[2] ' string "ON" soff VAR byte[3] ' string "OFF" spa var byte[2] ' string "14" sss var byte[2] ' string "01" pass var byte[4] ' string "1401" onof var byte ph_no var byte[11]

'******* string define data @0,"1","4" '0-1 "14" DATA @2,"l","i","g","h","t","1" '2-7 "light1" DATA @8,"l","i","g","h","t","2" '8-13 "light2" data @14,"f","a","n" '14-16 "fan" data @17,"a","c" '17-18 "ac" data @19,"o","n" '19-20 "ON" data @21,"o","f","f" '21-23 "OFF" data @24,"0","1" '24-25 "01"

LCDOut $fe,1," HOME APPLIANCE",$fe,$c0,"= CONTROLLER =" pause 1500 GOsub netsearch gosub connected gosub delet_sms main: LCDOut $fe,1," HOME APPLIANCE",$fe,$c0,"= CONTROLLER =" SerIn2 rxd,Baud,[wait("+CMTI:"),SKIP 6 ,dec2 sms_no] if sms_no > 9 then gosub read_sms gosub send_sms gosub delet_sms endif goto main netsearch: SerOut2 txd,Baud,["AT",13] SerIn2 rxd,Baud,1500,Conect_Err,[wait("OK")] LCDOut $fe,1," Network ",$fe,$c0," Searching...." PAUSE 1500 IF Network OK THEN goto netsearch endif return connected: SerOut2 txd,Baud,["AT+CFUN?",13] SerIn2 rxd,Baud,1500,conect_err,[wait("+CFUN: 1")] LCDOut $fe,1," connected.... " PAUSE 1500 return delet_sms: SerOut2 txd,Baud,["AT+CMGDA=",34,"DEL ALL",34,13] SerIn2 rxd,Baud,2000,Conect_Err,[wait("OK")] goto main read_sms:

if pass[0]==1 and pass[1]==4 and pass[2]==0 and pass[3]==1 then goto delet_sms endif

SerOut2 txd,Baud,["at+cmgr=",dec2 sms_no,13] SerIn2 rxd,Baud,1500,del_sms,[wait("1401")]

SerOut2 txd,Baud,["a/"] SerIn2 rxd,Baud,1500,conect_err,[wait("+88"),str ph_no\11] LCDOut $fe,1," = NEW SMS =" div1: SerOut2 txd,Baud,["a/"] SerIn2 rxd,Baud,1500,lit1_off,[wait("light1 on")] lit1=1 div2: SerOut2 txd,Baud,["a/"] SerIn2 rxd,Baud,1500,lit2_off,[wait("light2 on")] lit2=1 div3: SerOut2 txd,Baud,["a/"] SerIn2 rxd,Baud,1500,fan_off,[wait("fan on")] fan=1 div4: SerOut2 txd,Baud,["a/"] SerIn2 rxd,Baud,1500,ac_off,[wait("ac on")] ac=1 div5: return lit1_off: lit1=0 goto div2 lit2_off: lit2=0 goto div3 fan_off: fan=0 goto div4 ac_off: ac=0 goto div5 send_sms: LCDOut $fe,1," sending sms" SerOut2 txd,Baud,["at+cmgs=",34,str ph_no\11,34,13] SerIn2 rxd,Baud,1500,Conect_Err,[wait(">")] light1: SerOut2 txd,Baud,[str slit1\6," "] if lit1==1 then SerOut2 txd,Baud,[str son\2] else SerOut2 txd,Baud,[str soff\3] endif light2: SerOut2 txd,Baud,[13,str slit2\6," "] if lit2==1 then SerOut2 txd,Baud,[str son\2] else SerOut2 txd,Baud,[str soff\3] endif _fan: SerOut2 txd,Baud,[13,str sfan\3," "] if fan==1 then SerOut2 txd,Baud,[str son\2] else SerOut2 txd,Baud,[str soff\3] endif _ac: SerOut2 txd,Baud,[13,str sac\2," "] if ac==1 then SerOut2 txd,Baud,[str son\2] else SerOut2 txd,Baud,[str soff\3] endif

SerOut2 txd,Baud,[13,"------" ,13," last status",26] 'pause 500 SerIn2 rxd,Baud,2000,conect_err,[wait("OK")] write 30,lit1 : write 31,lit2 : write 32,fan : write 33,ac return

End