Railway Foundation by J63o2xk8

VIEWS: 0 PAGES: 17

									Railway Foundation

Electronic, Electrical and
 Processor Engineering
     Microprocessor Systems
• Four main components
  – Microprocessor
  – Memory
  – Inputs
  – Outputs
• Memory
  – ROM types – program and fixed data
  – RAM (Read & Write) – Data variables

                                          1
           Microprocessor
• Circuit is driven by a clock signal
• The microprocessor has internal registers.
• The action performed is determined by a
  set of binary instructions stored in ROM
• A reset starts the microprocessor at a
  predetermined point in the program
  (usually location 0)

                                               2
           Inputs & Outputs
• Normally Digital I/O ( two levels ‘0’ & ‘1’)
• Normally parallel i.e grouped – 8bit Ports
What about analogue signals?
  – Analogue to Digital Converter (ADC)
  – Digital to Analogue Converter (DAC)
• Other devices include hardware timers
  and counters
• Digital data can also be in a serial format
  (e.g. RS232, RS 485 are serial standards)
                                                 3
           Microcontrollers
• Integration of all required components
  onto one chip.
• Many manufacturers – Microchip,
  Freescale, Intel, Infineon, Philips, ARM
  etc. producing different microprocessors
• Many microcontrollers with same
  microprocessor but differ in other
  components.
• Used in embedded products.
                                             4
              Programming
• Can be done different levels
  – Object (machine) binary code
  – Assembly language
  – High level language ( e.g. ‘C’ language)
• Internal architecture
• Memory Map
• Programmers Model – different for
  programming at different levels
                                               5
An example machine instruction
                                 EXAMPLES


                                 Machine code –
                                 0110111100001000
                                 means move the value
                                 from W reg. to file
                                 register 00001000 i.e 8



                                 Assembly –
                                 Count    EQU      8
                                          MOVWF Count
                                 A program called an
                                 assembler converts it to
                                 the binary object code.


                                                            6
                       An Assembler program
    Program
                     00050   ;Constants
    Line             00051   LED     equ 3        ;LED bit 3 on PORTB
    Numbers          00053   ;Reset vector
                     00054   ; This code will start executing when a reset occurs.
                     00055
 000000              00056            ORG   0x0000
                     00057
                     00058   ;Start of main program
 000000              00059   Start:
 000000    9693      00060           bcf TRISB,LED         ;Set PortB bit 3 as an o/p
 000002    9681      00061           bcf PORTB,LED         ;set LED off
 000004              00062   Loop:                            ;while(1)
 000004    8681      00063           bsf PORTB,LED         ; turn led on
 000006    9681      00064           bcf PORTB,LED         ; turn led off
 000008    D7FD      00065           bra Loop              ;endwhile


ROM
location                                                        Comments
                                            Assembly            Begin with ;
           Object
                             Labels         instructions
           code in
           HEX
           format                                                                 7
           C Programming
• Portable
• High level – Abstract
• Standard constructs
  – Variables – various data types
  – Selection ( if statements)
  – Loops (while, for, do)
  – Standard operations (+-*/)
  – Logical and bit-wise operations (AND OR
    XOR etc.)
                                              8
                  Simple ‘C’ outline
Selection - two types                  Loops
   if (comparison is true )            while (comparison is true )
   {
         Do this once;                 {
   }                                      KEEP Doing this;
                                       }
   if (comparison is true )
   {                                      Example: while ( y < 10)
        Do this once;
   }
   else                                Comparisons:-
   {                                   == is equal to
        do this once;
   }                                   != is not equal to
Example: if (x == 9)                   > is greater than
                                       < is less than
Defining variables                     >= is greater or equal to
unsigned char i; //8 bit value         <= is less than or equal to
int x;           // 16 bit signed
unsigned int y; // 16 bit value        Misc.

Assignment(=) and operators(+-*/)      // starts a comment
                                       i++;      // increment by one
x = 9;                                 i--;     // decrement by one
i = 7;                                 &&       // logical AND
y = x/4 + (5*i); //integer division!   ||       // logical OR          9
         Practical approach
• Treat as a programmable digital device
• Choose device based on number and
  types of input and outputs
• Write program:-
  – Define inputs and outputs
  – Read input data, process data and generate
    outputs
• Requires ‘C’ language and knowledge of
  microcontroller specific features.
                                                 10
  Microchip PIC 18F452 & C18 ‘C’
             Compiler
• Access to Special Function Registers by
    #include <p18f452.h>
• Defines names for all component parts.
• Example : PORTB an 8 bit digital I/O Port
   TRISB - Port B direction register (0 = output, 1
    = input)
   PORTB - all 8 bits
   PORTBbits.RBx - individual bits where x is bit
    number (numbering starts at 0)

                                                  11
                           What does this do?
//PortA is 7 bits
TRISA = 15;
TRISB = 0;
PORTBbits.RB0 = 0;
while(1)
{
   while( PORTAbits.RA4   == 0)
   {
   }
   while( PORTAbits.RA4   == 1)
   {
   }
   PORTBbits.RB0 = 1;
   while( PORTAbits.RA4   == 0)
   {
   }
   while( PORTAbits.RA4   == 1)
   {
   }
   PORTBbits.RB0 = 0;
}

                                                12
  Analogue to Digital Converter(ADC)

• n bits – determines resolution
• Reference voltage sets the input range
• Often have an analogue multiplexer to
  allow several input channels to a single
  ADC
                                               n bits
   Analogue             ADC
   voltage


                  Reference voltages (one is
                  usually analogue ground)
                                                        13
            Example: 8 bit ADC
•   Reference voltages of 0v and +5v
•   Input voltage range = 5v – 0v = 5v
•   Number of digital values (steps) = 2n = 28 = 256
•   NOTE: Values range from 0 to 255
•   Resolution = Reference voltage range
                 Number of digital values
    = 5 / 256
    = 0.01953125 volts = 19.53125mV

                                                       14
                     Remember max. digital value = 255.
                     Max. convertible input = 255 x resolution in volts
                     = 255 x 0.01953125
                     0.01953125 = 4.98046875 V
     Digital value
255




                                                            Input
 0                                                          voltage
      0                                          4.98046875
                                                 Volts
                                                                   15
                Digital Conversion
Digital value




3


2
                        0.05859375
1
                 0.0390625
                                     Analogue
                                     Input voltage
0       0.01953125
                                              16

								
To top