Railway Foundation - Sheffield Hallam University

download report

Transcript Railway Foundation - Sheffield Hallam University

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
Examples
Rail - Points Heating Control
Systems
5
Programming
• Can be done at different levels
– Object (machine) binary code
– Assembly language
– High level language ( e.g. ‘C’ language)
– Graphical (e.g. LabVIEW)
• Internal architecture
• Memory Map
• Programmers Model – different for
programming at different levels
6
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.
7
An Assembler program
Program
Line
Numbers
000000
000000
000000
000002
000004
000004
000006
000008
9693
9681
8681
9681
D7FD
00050
00051
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
;Constants
LED
equ 3
;LED bit 3 on PORTB
;Reset vector
; This code will start executing when a reset occurs.
ORG
0x0000
;Start of main program
Start:
bcf TRISB,LED
bcf PORTB,LED
Loop:
bsf PORTB,LED
bcf PORTB,LED
bra Loop
ROM
location
Object
code in
HEX
format
Labels
Assembly
instructions
;Set PortB bit 3 as an o/p
;set LED off
;while(1)
; turn led on
; turn led off
;endwhile
Comments
Begin with ;
8
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.)
9
Simple ‘C’ outline
Selection - two types
if (comparison is true )
{
Do this once;
}
Loops
while (comparison is true )
{
KEEP Doing this;
}
if (comparison is true)
{
do this;
}
else
{
do that;
}
Comparisons:== is equal to
!= is not equal to
> is greater than
< is less than
>= is greater or equal to
<= is less than or equal to
Misc.
Defining variables
// starts a comment
unsigned char i; //8 bit value
i++;
int x;
// 16 bit signed
unsigned int y;
// 16 bit value
// increment by one
i--;
// decrement by one
&&
// logical AND
||
// logical OR
10
Graphical Programming
• LabVIEW is a graphical programming language that
uses icons instead of lines of text to create applications.
• In contrast to text-based programming languages,
where instructions determine program execution,
LabVIEW uses dataflow programming, where data
determine execution.
11
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 knowledge of a programming
language and microcontroller specific
features.
12
Analogue to Digital Converter
• n bits – determines the resolution
• Reference voltage sets the input range
• often have an analogue multiplexer to
allow several input channels to use a
single ADC
n bits
ADC
Analogue input voltage
Reference voltages (one is
usually analogue ground)
13
Example 8 bit ADC
•
•
•
•
•
Reference voltage 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 = 5
Number of digital values
256
=0.01953125 = 19.53125mV
• This is the smallest change in voltage that can be
detected
14
Remember max digital value = 255.
Max convertible input = 255 × resolution
in volts = 255 × 0.01953125
= 4.980468755
255
Input voltage
0
4.98046875 Volts
15
Digital Conversion
Digital value
3
0.05859375
2
0.0390625
1
0.01953125
Analogue input voltage
0
16