ABSTRACT ABSTRACT i In today’s fastest world the use of vehicle is unavoidable as well as the accident occurring due it is also a biggest issue. So we have designed the system in a move to save lives on the road by measuring the pressure of the vehicle. Current estimates suggest annually there are around 43,000 deaths across Europe’s road networks. Experts believe this could be reduced significantly if the load of the vehicle is maintained as well as the traffic is also maintained by allowing the heavy vehicles only in the specific time. TABLE OF CONTENTS TABLE OF CONTENTS CHAPTER NO. TITLE PAGE NO. ii ABSTRACT vii LIST OF FIGURES xiii LIST OF ABBREVATION xiv 1. 02 2. INTRODUCTION 1.1 Block Diagram Description 02 1.2 Block Diagram 03 1.3 Circuit Diagram 04 1.4 Circuit Diagram Description 05 POWER SUPPLY UNIT 07 2.1 Circuit Diagram 07 2.1.1 Working Principle 2.1.2 Transformer 07 08 2.1.3 Bridge Rectifier 2.1.4 IC Voltage Regulators 3. MICROCONTROLLER 08 10 12 3.1 Description 12 3.2 Pin Diagram 14 3.2.1 8051 Pin Functions 15 3.2.1.1 I/O PORTS 15 3.2.1.2 Port0 15 3 3.2.1.3 Port1 16 3.2.1.4 Port2 16 3.2.1.5 Port3 17 3.2.1.6 Oscillator inputs 19 3.2.1.7 RESET Line (RST) 19 3.2.1.8Address Latch Enable (ALE) 19 3.2.1.9 Program Store Enable (PSEN) 20 3.2.1.10 External Access (EA) 20 3.2.1.11 Memory Organization 21 3.2.1.12 Common Memory Space 25 3.3 Block Diagram 26 3.3.1Oscillator characteristics 26 3.3.2 8051 CLOCK 27 3.3.3 IDLE mode 27 3.3.4 Power down mode 28 3.3.5 8051 RESET 28 3.3.6 Central Processing Unit 29 3.3.7 The Accumulator 29 3.3.8 The "R" Register 29 4 4. 3.3.9 The "B" Register 30 3.3.10 The Program Counters (PC) 31 3.3.11 The Data Pointer (DPTR) 31 3.3.12 The Stack Pointer (SP) 32 3.3.13 Input/Output ports 32 3.3.14 Timers/Counters 33 3.3.15 Interrupts 34 3.3.16 Serial port 35 3.3.17 Applications 36 SERIAL COMMUNICATION 38 4.1 Introduction 38 4.2 Null MODEM 41 4.3 RS232 42 4.4 Null MODEM without Handshaking 43 4.5 Compatibility issues 44 5 5. SOFTWARE CODING 47 6. SOFTWARE TOOLS 56 6.1 Types of Tools 7. 56 6.1.1 KEIL C 56 6.1.2 Flash Magic 57 6.1.3 ORCAD 58 6.1.4 Design flow of ORCAD 59 HARDWARE TOOLS 61 7.1 RF MODULE 66 7.1.1 RF TRANSMITTER 7.1.2 RF RECEIVER 67 7.2 ENCODER 7.3 DECODER 67 69 7.4 SERIAL COMMUNICATION 6 8. CONCLUSION 75 9. APPENDIX 77 10. REFERENCES 79 LIST OF FIGURES FIGURE NO. TITLE PAGE NO. 7 1.1 Block diagram of car security system 03 1.2 Circuit Diagram 04 2.1 Circuit diagram of power supply 07 2.2 Block Diagram of power supply 08 3.1 Pin Diagram of 8051 14 3.2 Program Memory 22 3.3 Main Memory 23 3.4 Internal Data Memory 24 3.5 Block Diagram of the 8051 Core 26 3.6 8051 CLOCK 27 3.7 8051 RESET 28 3.8 Block diagram of timers/counters 34 4.1 Simple null modem without handshaking 44 6.1 Design window of ORCAD 58 7.1 GPS segments 62 7.2 Position of the 28 GPS satellites at 12.00 hrs UTC 63 7.3 GPS Satellite 64 7.4 Block diagram of satellite 65 8 LIST OF ABBREVATIONS MCU Micro Controller Unit RMS Root Mean Square CMOS Complementary Metal Oxide Semiconductor CPU Central Processing Unit RAM Random Access Memory ALU Arithmetic Logic Unit SP Stack Pointer PSW Program Status Word PC Program Counter DPTR Data Pointer Register UART Universal Asynchronous Receiver Transmitter CD Carrier Detect Signal RI Ring Indicator DSR Data Set Ready CTS Clear To Send DTR Data Terminal Ready DCE Data Communication Equipment RX Receiver TX Transmitter 9 10 CHAPTER-1 INTRODUCTION 11 The main motive of this project is to avoid the heavy loaded vehicles roaming in the city, avoid heavy weight and to control the traffic in the signal in order to overcome the crucial factors like measuring the load , detection of vehicle and Miscellaneous of vehicle in the city for long durations . 1.1 BLOCK DIAGRAM: VEHICLE SECTION 12 CONTROL SECTION 13 SIGNAL SECTION 14 1.2 BLOCK DIAGRAM DESCRIPTION: The piezoelectric sensor detect the overload of vehicle. RF modules are used to transmit and receive the signals. Infra Red sensor is detect the vehicle arrival in signal. 1.3 EXISTING SYSTEM: Measuring the load and perimeters are crucial 15 Detection of the vehicle is difficult Miscellaneous of vehicle in the city for long durations 1.4 PROPOSED SYSTEM: Easy to indentify and predict the heavy load vehicles in the city Automatic fine can be charged using wireless technology Traffic signal will be controlled Easy to maintain the record about the vehicles crossing from the other arena 1.5 CIRCUIT DIAGRAM 16 VCC 10uF C2 RST VCC 1 2 3 4 5 6 7 8 P3_ 0 P3_ 1 P3_ 2 P3_ 3 P3_ 4 P3_ 5 P3_ 6 P3_ 7 10 11 12 13 14 15 16 17 9 R2 8K2 18 19 11 .0 592 MHz X1 C4 33 PF C3 33 PF P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P3.0/RXD P3.1/TXD P3.2/INTO P3.3/INT1 P3.4/TO P3.5/T1 P3.6/WR P3.7/RD RST XTAL 2 XTAL 1 20 GND P1_ 0 P1_ 1 P1_ 2 P1_ 3 P1_ 4 P1_ 5 P1_ 6 P1_ 7 C1 VCC U1 40 0.1u F P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 EA/VPP ALE/PROG PSEN P2.7/A15 P2.6/A14 P2.5/A13 P2.4/A12 P2.3/A11 P2.2/A10 P2.1/A9 P2.0/A8 39 38 37 36 35 34 33 32 P0_ 0 P0_ 1 P0_ 2 P0_ 3 P0_ 4 P0_ 5 P0_ 6 P0_ 7 31 30 29 28 27 26 25 24 23 22 21 P2_ 7 P2_ 6 P2_ 5 P2_ 4 P2_ 3 P2_ 2 P2_ 1 P2_ 0 80 51 1.6 CIRCUIT DIAGRAM DESCRIPTION The operation of power supply circuits built using filters, rectifiers, and then voltage regulators. Starting with an AC voltage, a steady DC voltage is obtained by rectifying the AC voltage, Then filtering to a DC level, and finally, regulating to obtain a desired fixed DC voltage. The regulation is usually obtained from an IC voltage regulator Unit, which takes a DC voltage and provides a somewhat lower DC voltage, Which remains the same even if the input DC voltage varies, or the output Load connected to the DC voltage changes. 17 CHAPTER 2 POWER SUPPLY UNIT 18 POWER SUPPLY UNIT 19 1 D1 VDD JP2 2 - +4 C5 470 uF VIN VOUT 2 VDD U2 7805 C6 100 uF R4 220 ohm C7 0.1 uF D2 3 3 220 VAC 1 GND 2 1 LED 2.1 CIRCUIT DIAGRAM OF POWER SUPPLY 20 2.1.1 WORKING PRINCIPLE: The AC voltage, typically 220V rms, is connected to a transformer, which steps that ac voltage down to the level of the desired DC 21 output. A diode rectifier then provides a full-wave rectified voltage that is initially filtered by a simple capacitor filter to produce a dc voltage. This resulting dc voltage usually has some ripple or ac voltage variation. A regulator circuit removes the ripples and also remains the same dc value even if the input dc voltage varies, or the load connected to the output dc voltage changes. 2.1.2 TRANSFORMER: The potential transformer will step down the power supply voltage (0-230V) to (0-6V) level. Then the secondary of the potential transformer will be connected to the precision rectifier, which is constructed with the help of op–amp. The advantages of using precision rectifier are it will give peak voltage output as DC, rest of the circuits will give only RMS output. 2.1.3 BRIDGE RECTIFIER: When four diodes are connected as shown in figure, the circuit is called as bridge rectifier. The input to the circuit is applied to the diagonally opposite corners of the network, and the output is taken from the remaining two corners. Let us assume that the transformer is working properly and there is a positive potential, at point A and a negative potential at point B. the positive potential at point A will forward bias D3 and reverse bias D4. The negative potential at point B will forward bias D1 and reverse D2. At this time D3 and D1 are forward biased and will allow current flow to pass through them; D4 and D2 are reverse biased and will block current flow. 22 The path for current flow is from point B through D1, up through RL, through D3, through the secondary of the transformer back to point B. this path is indicated by the solid arrows. Waveforms (1) and (2) can be observed across D1 and D3. One-half cycle later the polarity across the secondary of the transformer reverse, forward biasing D2 and D4 and reverse biasing D1 and D3. Current flow will now be from point A through D4, up through RL, through D2, through the secondary of T1, and back to point A. This path is indicated by the broken arrows. Waveforms (3) and (4) can be observed across D2 and D4. The current flow through RL is always in the same direction. In flowing through RL this current develops a voltage corresponding to that shown waveform (5). Since current flows through the load (RL) during both half cycles of the applied voltage, this bridge rectifier is a full-wave rectifier. One advantage of a bridge rectifier over a conventional full-wave rectifier is that with a given transformer the bridge rectifier produces a voltage output that is nearly twice that of the conventional full-wave circuit. This may be shown by assigning values to some of the components shown in views A and B. assume that the same transformer is used in both circuits. The peak voltage developed between points X and y is 1000 volts in both circuits. In the conventional full-wave circuit shown—in view A, the peak voltage from the center tap to either X or Y is 500 volts. Since only one diode can conduct at any instant, the maximum voltage that can be rectified at any instant is 500 volts. 23 The maximum voltage that appears across the load resistor is nearly-but never exceeds-500 v0lts, as result of the small voltage drop across the diode. In the bridge rectifier shown in view B, the maximum voltage that can be rectified is the full secondary voltage, which is 1000 volts. Therefore, the peak output voltage across the load resistor is nearly 1000 volts. With both circuits using the same transformer, the bridge rectifier circuit produces a higher output voltage than the conventional full-wave rectifier circuit. 2.1.4 IC VOLTAGE REGULATORS: Voltage regulators comprise a class of widely used ICs. Regulator IC units contain the circuitry for reference source, comparator amplifier, control device, and overload protection all in a single IC. IC units provide regulation of either a fixed positive voltage, a fixed negative voltage, or an adjustably set voltage. The regulators can be selected for operation with load currents from hundreds of milli amperes to tens of amperes, corresponding to power ratings from milli watts to tens of watts. A fixed three-terminal voltage regulator has an unregulated dc input voltage, Vi, applied to one input terminal, a regulated dc output voltage, Vo, from a second terminal, with the third terminal connected to ground. The series 78 regulators provide fixed positive regulated voltages from 5 to 24 volts. Similarly, the series 79 regulators provide fixed negative regulated voltages from 5 to 24 volts. 24 25 CHAPTER-3 CHAPTER-3 MICROCONTROLLER 3.1 DESCRIPTION 26 A microcontroller is heart of the embedded system. It contains a processor core, memory, and programmable input/output peripherals. It contain four ports, port0 port1 port2 port3.where port 0 is an external port and other three ports are internal ports. heavy devices like motor, alarm devices etc.. are connected to the port0. Port 0 does not have internal pull up resistors. Ports 1 2 3 have internal pull up resistors. Port 3 provides serial communication signals. Features of Microcontroller 8 bit controller 16 bit Program Counter(PC) and Data Pointer(DPTR) 128 byte of RAM 4KB on chip of ROM Two 16 bit timers/ counter( T0,T1) 40 pin 32 I/O pins for four 8 bit ports 6 Interrupt sources 64K Program/ Data memory address space The generic 8051 architecture supports Harvard architecture, which contains two separate buses for both program and data. So, it has two distinctive memory spaces of 64K X 8 size for both program and data. It is 27 based on an 8 bit central processing unit with an 8 bit Accumulator and another 8 bit B register as main processing blocks. Other portions of the architecture include few 8 bit and 16 bit registers and 8 bit memory locations. Each 8031 device has some amount of data RAM built in the device for internal processing. This area is used for stack operations and temporary storage of data. This base architecture is supported with on chip peripheral functions like I/O ports, timers/counters, versatile serial communication port. So it is clear that this 8031 architecture was designed to cater many real time embedded needs. Now you may be wondering about the non mentioning of memory space meant for the program storage, the most important part of any embedded controller. Originally this 8031 architecture was introduced with on chip, ‘one time programmable version of Program Memory of size 4K X 8. Intel delivered all these microcontrollers (8051) with user’s program fused inside the device. The memory portion was mapped at the lower end of the Program Memory area. But, after getting devices, customers couldn’t change any thing in their program code, which was already made available inside during device fabrication. So, very soon Intel introduced the 8031 devices (8751) with re-programmable type of Program Memory using built-in EPROM of size 4K X 8. Like a regular EPROM, this memory can be re-programmed many times. Later on Intel started manufacturing these 8031 devices without any on chip Program Memory. The AT89S51 is a low-power, high-performance CMOS 8-bit microcontroller with 4K bytes of In-System Programmable Flash memory. The device is manufactured using Atmel’s high-density nonvolatile memory technology and is 28 compatible with the Indus-try-standard 80C51 instruction set and pin out. The onchip Flash allows the program memory to be reprogrammed in-system or by a conventional nonvolatile memory pro-grammar. By combining a versatile 8-bit CPU with In-System Programmable Flash on a monolithic chip, the Atmel AT89S51 is a powerful microcontroller which provides a highly-flexible and costeffective solution to many embedded control applications. The AT89S51 provides the following standard features: 4K bytes of Flash, 128 bytes of RAM, 32 I/O lines, Watchdog timer, two data pointers, two 16-bit timer/counters, a five-vector two-level interrupt architecture, a full duplex serial port, on-chip oscillator, and clock circuitry. In addition, the AT89S51 is designed with static logic for operation down to zero frequency and supports two software selectable power saving modes. The Idle Mode stops the CPU while allowing the RAM, timer/counters, serial port, and interrupt system to continue functioning. The Power-down mode saves the RAM con-tents but freezes the oscillator, disabling all other chip functions until the next external interrupt or hardware reset. 29 3.2 PIN DIAGRAM 30 3.2.1 8051 PIN FUNCTIONS 3.2.1.1 I/O PORTS (P0, P1, P2, P3): 31 Of the 40 pins of the typical 8052, 32 of them are dedicated to I/O lines that have a one-to-one relation with SFRs P0, P1, P2, and P3. The developer may raise and lower these lines by writing 1s or 0s to the corresponding bits in the SFRs. Likewise; the current state of these lines may be read by reading the corresponding bits of the SFRs. All of the ports have internal pull-up resistors except for port 0. 3.2.1.2 PORT 0: Port 0 is dual-function in that it in some designs port 0ís I/O lines are available to the developer to access external devices while in other designs it is used to access external memory. If the circuit requires external RAM or ROM, the microcontroller will automatically use port 0 to clock in/out the 8-bit data word as well as the low 8 bits of the address in response to a MOVX instruction and port 0 I/O lines may be used for other functions as long as external RAM isn’t being accessed at the same time. If the circuit requires external code memory, the microcontroller will automatically use the port 0 I/O lines to access each instruction that is to be executed. In this case, port 0 cannot be utilized for other purposes since the state of the I/O lines are constantly being modified to access external code memory. Note that there are no pull-up resistors on port 0, so it may be necessary to include your own pull-up resistors depending on the characteristics of the parts you will be driving via port 0.here small decoupling capacitor is connected in this port 0. 3.2.1.3 PORT 1: 32 Port 1 consists of 8 I/O lines that you may use exclusively to interface to external parts. Unlike port 0, typical derivatives do not use port 1 for any functions themselves. Port 1 is commonly used to interface to external hardware such as LCDs, keypads, and other devices. With 8052 derivatives, two bits of port 1 are optionally used as described for extended timer 2 functions. These two lines are not assigned these special functions on 8051ís since 8051ís don’t have a timer 2. Further, these lines can still be used for your own purposes if you don’t need these features of timer 2. P1.0 (T2): If T2CON.1 is set (C/T2), then timer 2 will be incremented whenever there is a 1-0 transition on this line. With C/T2 set, P1.0 is the clock source for timer 2. P1.1 (T2EX): If timer 2 is in auto-reload mode and T2CON.3 (EXEN2) is set, a 1-0 transition on this line will cause timer 2 to be reloaded with the auto-reload value. This will also cause the T2CON.6 (EXF2) external flag to be set, which may cause an interrupt if so enabled. 3.2.1.4 PORT 2: Like port 0, port 2 is dual-function. In some circuit designs it is available for accessing devices while in others it is used to address external RAM or external code memory. When the MOVX @DPTR instruction is used, port 2 is used to output the high byte of the memory address that is to be accessed. In these cases, port 2 may be used to access other devices as long as the devices are not being accessed at the same time a MOVX instruction is using port 2 to address external RAM. If the circuit requires external code memory, the microcontroller will automatically use the port 2 I/O lines to access each instruction that is to be executed. 33 In this case, port 2 cannot be utilized for other purposes since the state of the I/O lines are constantly being modified to access external code memory. 3.2.1.5 PORT 3: Port 3 consists entirely of dual-function I/O lines. While the developer may access all these lines from their software by reading/writing to the P3 SFR, each pin has a pre-defined function that the microcontroller handles automatically when configured to do so and/or when necessary. P3.0 (RXD): The UART/serial port uses P3.0 as the receive line. In circuit designs that will be using the microcontroller’s internal serial port, this is the line into which serial data will be clocked. Note that when interfacing an 8052 to an RS-232 port that you may not connect this line directly to the RS-232 pin; rather, you must pass it through a part such as the MAX232 to obtain the correct voltage levels. This pin is available for any use the developer may assign it if the circuit has no need to receive data via the integrated serial port. P3.1 (TXD): The UART/serial port uses P3.1 as the ‘transmit line.’ In circuit designs that will be using the microcontroller’s internal serial port, this is the line that the microcontroller will clock out all data which is written to the SBUF SFR. Note that when interfacing an 8052 to an RS-232 port that you may not connect this line directly to the RS-232 pin; rather, you must pass it through a part such as the MAX232 to obtain the correct voltage levels. This pin is available for any use the developer may assign it if the circuit has no need to transmit data via the integrated serial port. P3.2 (-INT0): When so configured, this line is used to trigger an ‘External 0 Interrupt.’ This may either be low-level triggered or may be triggered on a 1-0 transition. Please see the chapter on interrupts for details. This pin is available for 34 any use the developer may assign it if the circuit does not need to trigger an external 0 interrupt. P3.3 (-INT1): When so configured, this line is used to trigger an ‘External 1 Interrupt.’ This may either be low-level triggered or may be triggered on a 1-0 transition. Please see the chapter on interrupts for details. This pin is available for any use the developer may assign it if the circuit does not need to trigger an external 1 interrupt. P3.4 (T0): When so configured, this line is used as the clock source for timer 0. Timer 0 will be incremented either every instruction cycle that T0 is high or every time there is a 1-0 transition on this line, depending on how the timer is configured. Please see the chapter on timers for details. This pin is available for any use the developer may assign it if the circuit does not to control timer 0 externally. P3.5 (T1): When so configured, this line is used as the clock source for timer 1. Timer 1 will be incremented either every instruction cycle that T1 is high or every time there is a 1-0 transition on this line, depending on how the timer is configured. Please see the chapter on timers for details. This pin is available for any use the developer may assign it if the circuit does not to control timer 1 externally. P3.6 (-WR): This is external memory write strobe line. This line will be asserted low by the microcontroller whenever a MOVX instruction writes to external RAM. This line should be connected to the RAM’s write (-W) line. This pin is available for any use the developer may assign it if the circuit does not write to external RAM using MOVX. 35 P3.7 (-RD): This is external memory write strobe line. This line will be asserted low by the microcontroller whenever a MOVX instruction writes to external RAM. This line should be connected to the RAM’s write (-W) line. This pin is available for any use the developer may assign it if the circuit does not read from external RAM using MOVX. 3.2.1.6 OSCILLATOR INPUTS (XTAL1, XTAL2): The 8052 is typically driven by a crystal connected to pins 18 (XTAL2) and 19 (XTAL1). Common crystal frequencies are 11.0592Mhz as well as 12Mhz, although many newer derivatives are capable of accepting frequencies as high as 40Mhz. While a crystal is the normal clock source, this isn’t necessarily the case. A TTL clock source may also be attached to XTAL1 and XTAL2 to provide the microcontroller’s clock. 3.2.1.7 RESET LINE (RST): Pin 9 is the master reset line for the microcontroller. When this pin is brought high for two instruction cycles, the microcontroller is effectively reset. SFRs, including the I/O ports, are restored to their default conditions and the program counter will be reset to 0000h. Keep in mind that Internal RAM is not affected by a reset. The microcontroller will begin executing code at 0000h when pin 9 returns to a low state. The reset line is often connected to a reset button/switch that the user may press to reset the circuit. It is also common to connect the reset line to a watchdog IC or a supervisor IC (such as MAX707). 36 3.2.1.8 ADDRESS LATCH ENABLE (ALE): The ALE at pin 30 is an output-only pin that is controlled entirely by the microcontroller and allows the microcontroller to multiplex the low-byte of a memory address and the 8-bit data itself on port 0. This is because, while the highbyte of the memory address is sent on port 2, port 0 is used both to send the low byte of the memory address and the data itself. This is accomplished by placing the low-byte of the address on port 0, exerting ALE high to latch the low-byte of the address into a latch IC (such as the 74HC573), and then placing the 8 data-bits on port 0. In this way the 8052 is able to output a 16-bit address and an 8-bit data word with 16 I/O lines instead of 24. The ALE line is used in this fashion both for accessing external RAM with MOVX @DPTR as well as for accessing instructions in external code memory. When your program is executed from external code memory, ALE will pulse at a rate of 1/6th that of the oscillator frequency. Thus if the oscillator is operating at 11.0592 MHz, ALE will pulse at a rate of 1,843,200 times per second. The only exception is when the MOVX instruction is executed one ALE pulse is missed in lieu of a pulse on WR or RD. 3.2.1.9 PROGRAM STORE ENABLE (PSEN): The Program Store Enable (PSEN) line at pin 29 is exerted low automatically by the microcontroller whenever it accesses external code memory. This line should be attached to the Output Enable (-OE) pin of the EPROM that contains your code memory. 37 PSEN will not be exerted by the microcontroller and will remain in a high state if your program is being executed from internal code memory. 3.2.1.10 EXTERNAL ACCESS (EA): The External Access (EA) line at pin 31 is used to determine whether the 8052 will execute your program from external code memory or from internal code memory. If EA is tied high (connected to +5V) then the microcontroller will execute the program it finds in internal/on-chip code memory. If EA is tied low (to ground) then it will attempt to execute the program it finds in the attached external code memory EPROM. Of course, your EPROM must be properly connected for the microcontroller to be able to access your program in external code memory. 3.2.1.11 MEMORY ORGANIZATION: The 8051 architecture provides both on chip memory as well as off chip memory expansion capabilities. It supports several distinctive ‘physical’ address spaces, functionally separated at the hardware level by different addressing mechanisms, read and write controls signals or both: On chip Program Memory On chip Data Memory Off chip Program Memory Off chip Data Memory On chip Special Function Registers 38 The Program Memory area (EPROM incase of external memory or Flash/EPROM incase of internal one) is extremely large and never lose information when the power is removed. Program Memory is used for information needed each time power is applied: Initialization values, Calibration data, Keyboard lookup tables etc along with the program itself. The Program Memory has a 16 bit address and any particular memory location is addressed using the 16 bit Program Counter and instructions which generate a 16 bit address. On chip Data memory is smaller and therefore quicker than Program Memory and it goes into a random state when power is removed. On chip RAM is used for variables which are calculated when the program is executed. In contrast to the Program Memory, on chip Data Memory accesses need a single 8 bit value (may be a constant or another variable) to specify a unique location. Since 8 bits are more than sufficient to address 128 RAM locations, the on chip RAM address generating register is single byte wide. Different addressing mechanisms are used to access these different memory spaces and this greatly contributes to microcomputer’s operating efficiency. The 64K byte Program Memory space consists of an internal and an external memory portion. If the EA pin is held high, the 8051 executes out of internal Program Memory unless the address exceeds 0FFFH and locations 1000H through FFFFH are then fetched from external Program Memory. If the EA pin is held low, the 8031 fetches all instructions from the external Program Memory. In either case, the 16 bit Program Counter is the addressing mechanism. 39 Figure.3.2 - Program Memory The Data Memory address space consists of an internal and an external memory space. External Data Memory is accessed when a MOVX instruction is executed. Apart from on chip Data Memory of size 128/256 bytes, total size of Data Memory can be expanded up to 64K using external RAM devices. Total internal Data Memory is divided into three blocks: Lower 128 bytes. Higher 128 bytes Special Function Register space. Higher 128 bytes are available only in 8032/8052 devices. 40 Fig.3.3. Main Memory Even though the upper RAM area and SFR area share same address locations, they are accessed through different addressing modes. Direct addresses higher than 7FH access SFR memory space and indirect addressing above 7FH access higher 128 bytes (in 8032/8052). Fig.3.4. Internal Data Memory The next figure indicates the layout of lower 128 bytes. The lowest 32 bytes (from address 00H to 1FH) are grouped into 4 banks of 8 registers. Program 41 instructions refer these registers as R0 through R7. Program Status Word indicates which register bank is being used at any point of time. The next 16 bytes above these register banks form a block of bit addressable memory space. The instruction set of 8031 contains a wide range of single bit processing instructions and these instructions can directly access the 128 bits of this area. The SFR space includes port latches, timer and peripheral control registers. All the members of 8031 family have same SFR at the same SFR locations. There are some 16 unique locations which can be accessed as bytes and as bits. 3.21.12 COMMON MEMORY SPACE: The 8031’s Data Memory may not be used for program storage. So it means you can’t execute instructions out of this Data Memory. But, there is a way to have 42 a single block of off chip memory acting as both Program and Data Memory. By gating together both memory read controls (RD and PSEN) using an AND gate, a common memory read control signal can be generated. In this arrangement, both memory spaces are tied together and total accessible memory is reduced from 128 Kbytes to 64 Kbytes. The 8031 can read and write into this common memory block and it can be used as Program and Data Memory. You can use this arrangement during program development and debugging phase. Without taking Microcontroller off the socket to program its internal ROM (EPROM/Flash ROM), you can use this common memory for frequent program storage and code modifications. Basically, 8031’s assembly language instruction set consists of an operation mnemonic and zero to three operands separated by commas. In two byte instructions the destination is specified first, and then the source. Byte wide mnemonics like ADD or MOV use the Accumulator as a source operand and also to receive the result. 3.3 BLOCK DIAGRAM: 43 Fig.3.5. Block Diagram of the 8051 Core 3.3.1 OSCILLATOR CHARACTERISTICS: XTAL1 and XTAL2 are the input and output, respectively, of an inverting amplifier which can be configured for use as an on chip oscillator, as shown in Figure 1. Either a quartz crystal or ceramic resonator may be used. To drive the device from an external clock source, XTAL2 should be left unconnected while XTAL1 is driven as shown in Figure 2. 44 There are no requirements on the duty cycle of the external clock signal, since the input to the internal clocking circuitry is through a divide-by two flipflop, but minimum and maximum voltage high and low time specifications must be observed. 3.3.2 8051 CLOCK: 8051 has an on-chip oscillator It needs an external crystal Crystal decides the operating frequency of the 8051 Fig.3.6 8051 CLOCK 3.3.3 IDLE MODE: In idle mode, the CPU puts itself to sleep while all the on-chip peripherals remain active. The mode is invoked by software. The content of the on-chip RAM and all the special functions registers remain unchanged during this mode. The idle mode can be terminated by any enabled interrupt or by a hardware reset. It should be noted that when idle is terminated by a hardware reset, the device normally resumes program execution, from where it left off, up to two machine cycles before the internal reset algorithm takes control. On-chip hardware inhibits access 45 to internal RAM in this event, but access to the port pins is not inhibited. To eliminate the possibility of an unexpected write to a port pin when Idle is terminated by reset, the instruction following the one that invokes Idle should not be one that writes to a port pin or to external memory. 3.3.4 POWER DOWN MODE: In the power down mode the oscillator is stopped, and the instruction that invokes power down is the last instruction executed. The on-chip RAM and Special Function Registers retain their values until the power down mode is terminated. The only exit from power down is a hardware reset. Reset redefines the SFRs but does not change the on-chip RAM. The reset should not be activated before VCC is restored to its normal operating level and must be held active long enough to allow the oscillator to restart and stabilize. 3.3.5 8051 RESET: RESET is an active High input When RESET is set to High, 8051 goes back to the power on state Power-On Reset Push PB and active High on RST Release PB, Capacitor discharges and RST goes low RST must stay high for a min of 2 machine cycles 46 Fig.3.7.8051 RESET 3.3.6 CENTRAL PROCESSING UNIT: The CPU is the brain of the microcontrollers reading user’s programs and executing the expected task as per instructions stored there in. Its primary elements are an 8 bit Arithmetic Logic Unit (ALU), Accumulator (Acc), few more 8 bit registers, B register, Stack Pointer (SP), Program Status Word (PSW) and 16 bit registers, Program Counter (PC) and Data Pointer Register (DPTR). 3.3.7 THE ACCUMULATOR: If worked with any other assembly language you will be familiar with the concept of an accumulator register. The Accumulator, as its name suggests, is used as a general register to accumulate the results of a large number of instructions. It can hold an 8-bit (1-byte) value and is the most versatile register the 8052 has due to the sheer number of instructions that make use of the accumulator. More than half of the 8052ís 255 instructions manipulate or use the Accumulator in some way. For example, if you want to add the number 10 and 20, the resulting 30 will be stored in the Accumulator. Once you have a value in the Accumulator you may continue processing the value or you may store it in another register or in memory. 47 3.3.8 THE "R" REGISTERS: The "R" registers are sets of eight registers that are named R0, R1, through R7. These registers are used as auxiliary registers in many operations. To continue with the above example, perhaps you are adding 10 and 20. The original number 10 may be stored in the Accumulator whereas the value 20 may be stored in, say, register R4. To process the addition you would execute the command: As mentioned earlier, there are four sets of ‘R’ registers, register bank 0, 1, 2, and 3. When the 8052 is first powered up, register bank 0 (addresses 00h through 07h) is used by default. In this case, for example, R4 is the same as Internal RAM address 04h. However, your program may instruct the 8052 to use one of the alternate register banks; i.e., register banks 1, 2, or 3. In this case, R4 will no longer be the same as Internal RAM address 04h. For example, if your program instructs the 8052 to use register bank 1, register R4 will now be synonymous with Internal RAM address 0Ch. If you select register bank 2, R4 is synonymous with 14h, and if you select register bank 3 it is synonymous with address 1Ch. The concept of register banks adds a great level of flexibility to the 8052, especially when dealing with interrupts (we'll talk about interrupts later). However, always remember that the register banks really reside in the first 32 bytes of Internal RAM. 48 3.3.9 THE "B" REGISTER: The "B" register is very similar to the Accumulator in the sense that it may hold an 8-bit (1-byte) value. The "B" register is only used implicitly by two 8052 instructions: MUL AB and DIV AB. Thus, if you want to quickly and easily multiply or divide A by another number, you may store the other number in "B" and make use of these two instructions. Aside from the MUL and DIV an instruction, the “B” register is often used as yet another temporary storage register much like a ninth "R" register. 3.3.10 THE PROGRAM COUNTER (PC): The Program Counter (PC) is a 2-byte address that tells the 8052 where the next instruction to execute is found in memory. When the 8052 is initialized PC always starts at 0000h and is incremented each time an instruction is executed. It is important to note that PC isn’t always incremented by one. Since some instructions are 2 or 3 bytes in length the PC will be incremented by 2 or 3 in these cases. The Program Counter is special in that there is no way to directly modify its value. That is to say, you can’t do something like PC=2430h. On the other hand, if you execute LJMP 2430h you’ve effectively accomplished the same thing. It is also interesting to note that while you may change the value of PC (by executing a jump instruction, etc.) there is no way to read the value of PC. That is to say, there is no way to ask the 8052 "What address are you about to execute?" As it turns out, this is not completely true: There is one trick that may be used to determine the current value of PC. 3.3.11 THE DATA POINTER (DPTR): 49 The Data Pointer (DPTR) is the 8052ís only user-accessible 16-bit (2-byte) register. The Accumulator, "R" registers, and "B" register are all 1-byte values. The PC just described is a 16-bit value but isn’t directly user-accessible as a working register. DPTR, as the name suggests, is used to point to data. It is used by a number of commands that allow the 8052 to access external memory. When the 8052 accesses external memory it accesses the memory at the address indicated by DPTR. While DPTR is most often used to point to data in external memory or code memory, many developers take advantage of the fact that it’s the only true 16-bit register available. It is often used to store 2-byte values that have nothing to do with memory locations. 3.3.12 THE STACK POINTER (SP): The Stack Pointer, like all registers except DPTR and PC, may hold an 8-bit (1-byte) value. The Stack Pointer is used to indicate where the next value to be removed from the stack should be taken from. When you push a value onto the stack, the 8052 first increments the value of SP and then stores the value at the resulting memory location. When you pop a value off the stack, the 8052 returns the value from the memory location indicated by SP, and then decrements the value of SP. This order of operation is important. When the 8052 is initialized SP will be initialized to 07h. If you immediately push a value onto the stack, the value will be stored in Internal RAM address 08h. This makes sense taking into account what was mentioned two paragraphs above: First the 8051 will increment the value of SP (from 07h to 08h) and then will store the pushed value at that memory address 50 (08h). SP is modified directly by the 8052 by six instructions: PUSH, POP, ACALL, LCALL, RET, and RETI. It is also used intrinsically whenever an interrupt is triggered (more on interrupts later. Don’t worry about them for now!). 3.3.13 INPUT / OUTPUT PORTS: The 8031’s I/O port structure is extremely versatile and flexible. The device has 32 I/O pins configured as four eight bit parallel ports (P0, P1, P2 and P3). Each pin can be used as an input or as an output under the software control. These I/O pins can be accessed directly by memory instructions during program execution to get required flexibility. These port lines can be operated in different modes and all the pins can be made to do many different tasks apart from their regular I/O function executions. Instructions, which access external memory, use port P0 as a multiplexed address/data bus. At the beginning of an external memory cycle, low order 8 bits of the address bus are output on P0. The same pins transfer data byte at the later stage of the instruction execution. Also, any instruction that accesses external Program Memory will output the higher order byte on P2 during read cycle. Remaining ports, P1 and P3 are available for standard I/O functions. But all the 8 lines of P3 support special functions: Two external interrupt lines, two counter inputs, serial port’s two data lines and two timing control strobe lines are designed to use P3 port lines. When you don’t use these special functions, you can use corresponding port lines as a standard I/O. 51 Even within a single port, I/O operations may be combined in many ways. Different pins can be configured as input or outputs independent of each other or the same pin can be used as an input or as output at different times. You can comfortably combine I/O operations and special operations for Port 3 lines. 3.3.14 TIMERS / COUNTERS: 8031 has two 16 bit Timers/Counters capable of working in different modes. Each consists of a ‘High’ byte and a ‘Low’ byte which can be accessed under software. There is a mode control register and a control register to configure these timers/counters in number of ways. These timers can be used to measure time intervals, determine pulse widths or initiate events with one microsecond resolution up to a maximum of 65 millisecond (corresponding to 65, 536 counts). Use software to get longer delays. Working as counter, they can accumulate occurrences of external events (from DC to 500 KHz) with 16 bit precision. 52 Fig.3.8. Block Diagram of timers/counters 3.3.15 INTERRUPTS: The 8031 has five interrupt sources: one from the serial port when a transmission or reception operation is executed; two from the timers when overflow occurs and two come from the two input pins INT0, INT1. Each interrupt may be independently enabled or disabled to allow polling on same sources and each may be classified as high or low priority. A high priority source can override a low priority service routine. These options are selected by interrupt enable and priority control registers, IE and IP. When an interrupt is activated, then the program flow completes the execution of the current instruction and jumps to a particular program location 53 where it finds the interrupt service routine. After finishing the interrupt service routine, the program flows return to back to the original place. The Program Memory address, 0003H is allotted to the first interrupt and next seven bytes can be used to do any task associated with that interrupt. Interrupt Source Service routine starting address: External 0 0003H Timer/Counter 0 000BH External 1 0013H Timer/counter 1 001BH Serial port 0023H 3.3.16 SERIAL PORT: Each 8031 microcomputer contains a high speed full duplex (means you can simultaneously use the same port for both transmitting and receiving purposes) serial port which is software configurable in 4 basic modes: 8 bit UART; 9 bit UART; Interprocessor Communications link or as shift register I/O expander. For the standard serial communication facility, 8031 can be programmed for UART operations and can be connected with regular personal computers, teletype writers, modem at data rates between 122 bauds and 31 kilo bauds. 54 Getting this facility is made very simple using simple routines with option to select even or odd parity. You can also establish a kind of Interprocessor communication facility among many microcomputers in a distributed environment with automatic recognition of address/data. Apart from all above, you can also get super fast I/O lines using low cost simple TTL or CMOS shift registers. 3.3.17APPLICATIONS: Security applications Image processing applications Banking applications 55 CHAPTER-4 56 CHAPTER-4 SERIAL COMMUNICATION 4.1 INTRODUCTION: Serial communication is basically the transmission or reception of data one bit at a time. Today's computers generally address data in bytes or some multiple thereof. A byte contains 8 bits. A bit is basically either a logical 1 or zero. Every character on this page is actually expressed internally as one byte. The serial port is used to convert each byte to a stream of ones and zeroes as well as to convert a stream of ones and zeroes to bytes. The serial port contains a electronic chip called a Universal Asynchronous Receiver/Transmitter (UART) that actually does the conversion. The serial port has many pins. We will discuss the transmit and receive pin first. Electrically speaking, whenever the serial port sends a logical one (1) a negative voltage is effected on the transmit pin. Whenever the serial port sends a logical zero (0) a positive voltage is affected. When no data is being sent, the serial port's transmit pin's voltage is negative (1) and is said to be in a MARK state. Note that the serial port can also be forced to keep the transmit pin at a positive voltage (0) and is said to be the SPACE or BREAK state. (The terms MARK and SPACE are also used to simply denote a negative voltage (1) or a positive voltage (0) at the transmit pin respectively). When transmitting a byte, the UART (serial port) first sends a START BIT which is a positive voltage (0), followed by the data (general 8 bits, but could be 5, 6, 7, or 8 bits) followed by one or two STOP Bits which is a negative(1) voltage. 57 The sequence is repeated for each byte sent. Figure 1 shows a diagram of what a byte transmission would look like. At this point you may want to know what the duration of a bit is. In other words, how long does the signal stay in a particular state to define a bit. The answer is simple. It is dependent on the baud rate. The baud rate is the number of times the signal can switch states in one second. Therefore, if the line is operating at 9600 baud, the line can switch states 9,600 times per second. This means each bit has the duration of 1/9600 of a second or about 100µsec. when transmitting a character there are other characteristics other than the baud rate that must be known or that must be setup. These characteristics define the entire interpretation of the data stream. The first characteristic is the length of the byte that will be transmitted. This length in general can be anywhere from 5 to 8 bits. The second characteristic is parity. The parity characteristic can be even, odd, mark, space, or none. If even parity, then the last data bit transmitted will be a logical 1 if the data transmitted had an even amount of 0 bits. If odd parity, then the last data bit transmitted will be a logical 1 if the data transmitted had an odd amount of 0 bits. If MARK parity, then the last transmitted data bit will always be a logical 1. If SPACE parity, then the last transmitted data bit will always be a logical 0. If no parity then there is no parity bit transmitted. The third characteristic is the amount of stop bits. This value in general is 1 or 2. Assume we want to send the letter 'A' over the serial port. The binary representation of the letter 'A' is 01000001. Remembering that bits are transmitted 58 from least significant bit (LSB) to most significant bit (MSB), the bit stream transmitted would be as follows for the line characteristics 8 bits, no parity, 1 stop bit and 9600 baud. LSB (0 1 0 0 0 0 0 1 0 1) MSB The above represents (Start Bit) (Data Bits) (Stop Bit). To calculate the actual byte transfer rate simply divide the baud rate by the number of bits that must be transferred for each byte of data. In the case of the above example, each character requires 10 bits to be transmitted for each character. As such, at 9600 baud, up to 960 bytes can be transferred in one second. The above discussion was concerned with the "electrical/logical" characteristics of the data stream. We will expand the discussion to line protocol. Serial communication can be half duplex or full duplex. Full duplex communication means that a device can receive and transmit data at the same time. Half duplex means that the device cannot send and receive at the same time. It can do them both, but not at the same time. Half duplex communication is all but outdated except for a very small focused set of applications. Half duplex serial communication needs at a minimum two wires, signal ground and the data line. Full duplex serial communication needs at a minimum three wires, signal ground, transmit data line, and receive data line. The RS232 specification governs the physical and electrical characteristics of serial communications. This specification defines several additional signals that are asserted (set to logical 1) for information and control beyond the data signal 59 These signals are the Carrier Detect Signal (CD), asserted by modems to signal a successful connection to another modem, Ring Indicator (RI), asserted by modems to signal the phone ringing, Data Set Ready (DSR), asserted by modems to show their presence, Clear To Send (CTS), asserted by modems if they can receive data, Data Terminal Ready (DTR), asserted by terminals to show their presence, Request To Send (RTS), asserted by terminals if they can receive data. The section RS232 Cabling describes these signals and how they are connected. The above paragraph alluded to hardware flow control. Hardware flow control is a method that two connected devices use to tell each other electronically when to send or when not to send data. A modem in general drops (logical 0) its CTS line when it can no longer receive characters. It re-asserts it when it can receive again. A terminal does the same thing instead with the RTS signal. Another method of hardware flow control in practice is to perform the same procedure in the previous paragraph except that the DSR and DTR signals. Note that hardware flow control requires the use of additional wires. The benefit to this however is crisp and reliable flow control. Another method of flow control used is known as software flow control. This method requires a simple 3 wire serial communication link, transmit data, receive data, and signal ground. If using this method, when a device can no longer receive, it will transmit a character that the two devices agreed on. This character is known as the XOFF character. This character is generally a hexadecimal 13. When a device can receive again it transmits an XON character that both devices agreed to. This character is generally a hexadecimal 11. 60 4.2 NULL MODEM: Serial communications with RS232. One of the oldest and most widely spread communication methods in computer world. The way this type of communication can be performed is pretty well defined in standards. I.e. with one exception. The standards show the use of DTE/DCE communication, the way a computer should communicate with a peripheral device like a modem. For your information, DTE means Data Terminal Equipment (computers etc.) where DCE is the abbreviation of Data Communication Equipment (modems). One of the main uses of serial communication today where no modem is involved—a serial null modem configuration with DTE/DTE communication—is not so well defined, especially when it comes to flow control. The terminology null modem for the situation where two computers communicate directly is so often used nowadays, that most people don't realize anymore the origin of the phrase and that a null modem connection is an exception, not the rule. In history, practical solutions were developed to let two computers talk with each other using a null modem serial communication line. In most situations, the original modem signal lines are reused to perform some sort of handshaking. Handshaking can increase the maximum allowed communication speed because it gives the computers the ability to control the flow of information. A high amount of incoming data is allowed if the computer is capable to handle it, but not if it is busy performing other tasks. If no flow control is implemented in the null modem connection, communication is only possible at speeds at which it is sure the receiving side can handle the amount information even under worst case conditions. 61 4.3 RS232: When we look at the connector pin out of the RS232 port, we see two pins which are certainly used for flow control. These two pins are RTS, request to send and CTS, clear to send. With DTE/DCE communication (i.e. a computer communicating with a modem device) RTS is an output on the DTE and input on the DCE. CTS are the answering signal coming from the DCE. Before sending a character, the DTE asks permission by setting its RTS output. No information will be sent until the DCE grants permission by using the CTS line. If the DCE cannot handle new requests, the CTS signal will go low. A simple but useful mechanism allowing flow control in one direction. The assumption is that the DTE can always handle incoming information faster than the DCE can send it. In the past, this was true. Modem speeds of 300 baud were common and 1200 baud was seen as a high speed connection. For further control of the information flow, both devices have the ability to signal their status to the other side. For this purpose, the DTR data terminal ready and DSR data set ready signals are present. The DTE uses the DTR signal to signal that it is ready to accept information, whereas the DCE uses the DSR signal for the same purpose. Using these signals involves not a small protocol of requesting and answering as with the RTS/CTS handshaking. These signals are in one direction only. The last flow control signal present in DTE/DCE communication is the CD carrier detect. It is not used directly for flow control, but mainly an indication of the ability of the modem device to communicate with its counter part. This signal indicates the existence of a communication link between two modem devices. 62 4.4 NULL MODEM WITHOUT HANDSHAKING: How to use the handshaking lines in a null modem configuration? The simplest way is to don't use them at all. In that situation, only the data lines and signal ground are cross connected in the null modem communication cable. All other pins have no connection. An example of such a null modem cable without handshaking can be seen in the figure below. Connector 1 Connector 2 Function 2 3 Rx TX 3 2 TX Rx 5 5 Signal ground Fig.4.1. Simple null modem without handshaking 63 4.5 COMPATIBILITY ISSUES: If you read about null modems, this three wire null modem cable is often talked about. Yes, it is simple but can we use it in all circumstances? There is a problem, if either of the two devices checks the DSR or CD inputs. These signals normally define the ability of the other side to communicate. As they are not connected, their signal level will never go high. This might cause a problem. The same holds for the RTS/CTS handshaking sequence. If the software on both sides is well structured, the RTS output is set high and then a waiting cycle is started until a ready signal is received on the CTS line. This causes the software to hang because no physical connection is present to either CTS line to make this possible. The only type of communication which is allowed on such a null modem line is data-only traffic on the cross connected Rx/TX lines. This does however not mean that this null modem cable is useless. Communication links like present in the Norton Commander program can use this null modem cable. This null modem cable can also be used when communicating with devices which do not have modem control signals like electronic measuring equipment etc. As you can imagine, with this simple null modem cable no hardware flow control can be implemented. The only way to perform flow control is with software flow control using the XOFF and XON characters. 64 CHAPTER-5 SOFTWARE CODING 65 CHAPTER-6 CHAPTER-6 SOFTWARE TOOLS 6.1 TYPES OF TOOLS: KEIL C Flash Magic 66 ORCAD Capture Layout 6.1.1 KEIL C: Keil software is the leading vendor for 8/16-bit development tools (ranked at first position in the 2004 embedded market study of the embedded system and EE times magazine). Keil software is represented world wide in more than 40 countries, since the market introduction in 1988; the keil C51 compiler is the de facto industry standard and supports more than 500 current 8051 device variants. Now, keil software offers development tools for ARM. Keil software makes C compilers, macro assemblers, real-time kernels, debuggers, simulators, integrated environments, and evaluation boards for 8051, 251, ARM and XC16x/C16x/ST10 microcontroller families. The Keil C51 C Compiler for the 8051 microcontroller is the most popular 8051 C compiler in the world. It provides more features than any other 8051 C compiler available today. The C51 Compiler allows you to write 8051 microcontroller applications in C that, once compiled, have the efficiency and speed of assembly language. Language extensions in the C51 Compiler give you full access to all resources of the 8051. 67 The C51 Compiler translates C source files into relocatable object modules which contain full symbolic information for debugging with the µVision Debugger or an in-circuit emulator. In addition to the object file, the compiler generates a listing file which may optionally include symbol table and cross reference Nine basic data types, including 32-bit IEEE floating-point, Flexible variable allocation with bit, data, bdata, idata, xdata, and pdata memory types, Interrupt functions may be written in C, Full use of the 8051 register banks, Complete symbol and type information for source-level debugging, Use of AJMP and ACALL instructions, Bit-addressable data objects, Built-in interface for the RTX51 real time kernels, Support for the Philips 8xC750, 8xC751, and 8xC752 limited sets, Support for the Infineon 80C517 arithmetic unit. instruction 6.1.2 FLASH MAGIC: Flash magic can control the entry into ISP mode of some microcontroller devices by using the COM port handshaking signals to control the device. Typically the handshaking signals are used to control such pins as Reset, PSEN and VCC. The exact pins used depend on the specific device. 68 When this feature is supported, Flash Magic will automatically place the device into ISP mode at the beginning of an ISP operation. Flash Magic will then automatically cause the device to execute code at the end of the ISP operation. 6.1.3 ORCAD: ORCAD really consists of tools. Capture is used for design entry in schematic form. You will probably be already familiar with looking at circuits in this form from working with other tools in your university courses. Layout is a tool for designing the physical layout of components and circuits on a PCB. During the design process, you will move back and forth between these two tools. The design flow diagram is given below: Fig.6.1. Design window of ORCAD 6.1.4 DESIGN FLOW OF ORCAD: 69 70 CHAPTER-7 71 CHAPTER-7 HARDWARE TOOLS Microcontroller AT89S51 RF Modules Encoder/Decoder Serial Communication Max232 IR sensor Power Supply Unit 7.1 RF MODULES Radio-frequency identification (RFID) is an automatic identification method, relying on storing and remotely retrieving data using devices called RFID tags or transponders. The technology requires some extent of cooperation of an RFID reader and an RFID tag. An RFID tag is an object that can be applied to or incorporated into a product, animal, or person for the purpose of identification and tracking using radio waves. Some tags can be read from several meters away and beyond the line of sight of the reader 72 7.1.1 RF TRANSMITTER • The transmitter output is up to 8mW at 433.92MHz with a range of approximately few meters 73 • It accepts both linear and digital inputs • It can operate from 1.5 to 12 Volts-DC • It is approximately the size of a standard postage stamp. 7.1.2 RF RECEIVER 74 • It also operates at 433.92MHz, and has a sensitivity of 3uV. • It operates from 4.5 to 5.5 volts-DC, • It has both linear and digital outputs. 7.2 ENCODER 75 • Operating voltage:2.4V~12V for the HT12E • Low power and high noise immunity CMOS technology • Minimum transmission word’s of 4 words for the HT12E • Built-in oscillator needs only 5% resistor • Data code has positive polarity • Minimal external components • HT12E: 18-pin DIP/20-pin SOP package 76 • The 2^12 encoders are a series of CMOS LSIs for remote control system applications. • They are capable of encoding information which consists of N address bits and 12N data bits. • Each address/data input can be set to one of the two 77 • logic states. • The programmed addresses/data are transmitted together with the header bits via an RF transmission medium . • Transmission is enabled by applying a low signal to the TE pin. 7.3 DECODER 78 • Operating voltage: 2.4V~12V • Low power and high noise immunity • CMOS technology • Low standby current • Capable of decoding 12 bits of information • Binary address setting • Received codes are checked 3 times • Address/Data number combination • - HT12D: 8 address bits and 4 data bits • Built-in oscillator needs only 5% resistor • Valid transmission indicator • Easy interface with an RF transmission medium • Minimal external components • Pair with Holtek's 212 series of encoders • 18-pin DIP, 20-pin SOP package 79 • 2^12 decoders are a series of CMOS LSIs for remote control system applications.. • The decoders receive serial addresses and data from a programmed 2^12 series of encoders that are transmitted by a carrier using an RF transmission medium. • They compare the serial input data three times continuously with their local addresses. • If no error or unmatched codes are found, the input data codes are decoded and then transferred to the output pins. • The VT pin also goes high to indicate a valid transmission. • The 2^12 series of decoders are capable of decoding information's that consist of N bits of address and 12-N bits of data. 80 7.4 SERIAL COMMUNICATION 7.4.1 MAX 232 Introduction MAX-232 is primary used for people building electronics with an RS-232 interface. Serial RS-232 communication works with voltages (-15V ... -3V for high) and +3V ... +15V for low) which are not compatible with normal computer logic voltages. To receive serial data from an RS-232 interface the voltage has to be reduced, and the low and high voltage level inverted. In the other direction (sending data from some logic over RS-232) the low logic voltage has to be "bumped up", and a negative voltage has to be generated, too. 81 Fig 5.11 Pin Diagram Of Max 232 RS232 COMMUNICATION 82 Fig 5.12 Circuit Diagram Of Serial Communication Introduction In telecommunications, RS-232 is a standard for serial binary data interconnection between a DTE (Data terminal equipment) and a DCE (Data Circuit-terminating Equipment). It is commonly used in computer serial ports. Scope of the Standard: The Electronic Industries Alliance (EIA) standard RS-232-C [3] as of 1969 defines: Electrical signal characteristics such as voltage levels, signaling rate, timing and slew-rate of signals, voltage withstand level, short-circuit behavior, maximum stray capacitance and cable length 83 Interface mechanical characteristics, pluggable connectors and pin identification Functions of each circuit in the interface connector Standard subsets of interface circuits for selected telecom applications The standard does not define such elements as character encoding (for example, ASCII, Baudot or EBCDIC), or the framing of characters in the data stream (bits per character, start/stop bits, parity). The standard does not define protocols for error detection or algorithms for data compression. The standard does not define bit rates for transmission, although the standard says it is intended for bit rates lower than 20,000 bits per second. Many modern devices can exceed this speed (38,400 and 57,600 bit/s being common, and 115,200 and 230,400 bit/s making occasional appearances) while still using RS-232 compatible signal levels. Details of character format and transmission bit rate are controlled by the serial port hardware, often a single integrated circuit called a UART that converts data from parallel to serial form. A typical serial port includes specialized driver and receiver integrated circuits to convert between internal logic levels and RS-232 compatible signal levels. Circuit Working Description 84 In this circuit the MAX 232 IC used as level logic converter. The MAX232 is a dual driver/receiver that includes a capacive voltage generator to supply EIA 232 voltage levels from a single 5v supply. Each receiver converts EIA-232 to 5v TTL/CMOS levels. Each driver converts TLL/CMOS input levels into EIA-232 levels. In this circuit the microcontroller transmitter pin is connected in the MAX232 T2IN pin which converts input 5v TTL/CMOS level to RS232 level. Then T2OUT pin is connected to reviver pin of 9 pin D type serial connector which is directly connected to PC. 85 In PC the transmitting data is given to R2IN of MAX232 through transmitting pin of 9 pin D type connector which converts the RS232 level to 5v TTL/CMOS level. The R2OUT pin is connected to receiver pin of the microcontroller. Likewise the data is transmitted and received between the microcontroller and PC or other device vice versa. 8.CONCLUSION 9.APPENDIX 10.REFERENCES 86