Programming Embedded Systems I pot - Pdf 12

I
Programming
Embedded
Systems I
A 10-week course, using C
40
39
38
37
36
35
34
1
2
3
4
5
6
7
‘8051’
8
9
10
33
32
31
30
29
28
27
26

P3.5
P3.3
P3.4
P3.2
P3.1
/ EA
P0.6
P0.7
P0.5
P0.4
P0.3
P0.1
P0.2
P0.0
VCC
P2.0
P2.2
P2.1
P2.3
P2.4
P2.5
P2.7
P2.6
/ PSEN
ALE
Michael J. Pont
University of Leicester
[v1.2]
II
Copyright © Michael J. Pont, 2002-2003

Oscillator frequency and machine cycle period 28
Keep the clock frequency as low as possible 29
Stability issues 30
Improving the stability of a crystal oscillator 31
Overall strengths and weaknesses 32
Reset Hardware 34
More robust reset circuits 35
Driving DC Loads 36
Use of pull-up resistors 38
Driving a low-power load without using a buffer 39
Using an IC Buffer 40
Example: Buffering three LEDs with a 74HC04 41
What is a multi-segment LED? 42
Driving a single digit 43
Preparation for the next seminar 44
V
Seminar 3: Reading Switches 45
Introduction 46
Review: Basic techniques for reading from port pins 47
Example: Reading and writing bytes (review) 48
Example: Reading and writing bits (simple version) 49
Example: Reading and writing bits (generic version) 51
The need for pull-up resistors 56
The need for pull-up resistors 57
The need for pull-up resistors 58
Dealing with switch bounce 59
Example: Reading switch inputs (basic code) 61
Example: Counting goats 68
Conclusions 74
Preparation for the next seminar 75

The interrupt service routine (ISR) 145
Automatic timer reloads 146
Introducing sEOS 147
Introducing sEOS 148
Tasks, functions and scheduling 153
Setting the tick interval 154
Saving power 157
Using sEOS in your own projects 158
Is this approach portable? 159
Example: Milk pasteurization 160
Conclusions 174
Preparation for the next seminar 175
IX
Seminar 7: Multi-State Systems and Function Sequences 177
Introduction 178
Implementing a Multi-State (Timed) system 180
Example: Traffic light sequencing 181
Example: Animatronic dinosaur 189
Implementing a Multi-State (Input/Timed) system 195
Example: Controller for a washing machine 197
Conclusions 208
Preparation for the next seminar 209
X
Seminar 8: Using the Serial Interface 211
Overview of this seminar 212
What is ‘RS-232’? 213
Basic RS-232 Protocol 214
Asynchronous data transmission and baud rates 215
RS-232 voltage levels 216
The software architecture 217

More about the robot 271
Conclusions 272
C
OPYRIGHT
© M
ICHAEL
J. P
ONT
, 2001-2003. Contains material from:
Pont, M.J. (2002) “Embedded C”, Addison-Wesley.
PES I - 1
Seminar 1:
“Hello, Embedded
World”
B
E
C
5.5V, 0.3A lamp
ZTX751
4V - 6V (battery)
10 KΩ
10 µF
4 MHz

20
19
18
17
16
15

P1.4
P1.6
P1.5
P1.7
VCC
40
39
38
37
36
35
34
1
2
3
4
5
6
7
‘8051’
8
9
10
33
32
31
30
29
28
27

P3.6
P3.5
P3.3
P3.4
P3.2
P3.1
/ EA
P0.6
P0.7
P0.5
P0.4
P0.3
P0.1
P0.2
P0.0
VCC
P2.0
P2.2
P2.1
P2.3
P2.4
P2.5
P2.7
P2.6
/ PSEN
ALE
C
OPYRIGHT
© M
ICHAEL

using a single microcontroller.
The processors examined in detail are from the 8051 family
(including both ‘Standard’ and ‘Small’ devices).
All programming is in the ‘C’ language.
C
OPYRIGHT
© M
ICHAEL
J. P
ONT
, 2001-2003. Contains material from:
Pont, M.J. (2002) “Embedded C”, Addison-Wesley.
PES I - 4
By the end of the course …
By the end of the course, you will be able to:
1. Design software for single-processor embedded applications
based on small, industry standard, microcontrollers;
2. Implement the above designs using a modern, high-level
programming language (‘C’), and
3. Begin to understand issues of reliability and safety and how
software design and programming decisions may have a
positive or negative impact in this area.
C
OPYRIGHT
© M
ICHAEL
J. P
ONT
, 2001-2003. Contains material from:
Pont, M.J. (2002) “Embedded C”, Addison-Wesley.


Good, well-proven compilers are available for every
embedded processor (8-bit to 32-bit or more);

Experienced staff are available;

Books, training courses, code samples and WWW sites
discussing the use of the language are all widely available.
Overall, C may not be an
perfect
language for developing embedded
systems, but it is a good choice (and is unlikely that a ‘perfect’ language
will ever be created).
C
OPYRIGHT
© M
ICHAEL
J. P
ONT
, 2001-2003. Contains material from:
Pont, M.J. (2002) “Embedded C”, Addison-Wesley.
PES I - 7
Pre-requisites!

Throughout this course, it will be assumed that you have had
previous programming experience: this might be in - for
example - Java or C++.

For most people with such a background, “getting to grips”
with C is straightforward.

31
30
29
28
27
26
25
24
11
12
13
14
15
16
17
18
19
20
23
22
21
P3.0
P1.7
RST
P1.6
P1.5
P1.4
P1.2
P1.3
P1.1

ALE
Typical features of a modern 8051:

Thirty-two input / output lines.

Internal data (RAM) memory - 256 bytes.

Up to 64 kbytes of ROM memory (usually flash)

Three 16-bit timers / counters

Nine interrupts (two external) with two priority levels.

Low-power Idle and Power-down modes.
The different members of this family are suitable for everything from
automotive and aerospace systems to TV “remotes”.
C
OPYRIGHT
© M
ICHAEL
J. P
ONT
, 2001-2003. Contains material from:
Pont, M.J. (2002) “Embedded C”, Addison-Wesley.
PES I - 9
The “super loop” software architecture
Problem
What is the minimum software environment you need to create an
embedded C program?
Solution

provide the accuracy or flexibility you require.
 The basic Super Loop operates at ‘full power’ (normal operating
mode) at all times. This may not be necessary in all applications, and
can have a dramatic impact on system power consumption.
[As we will see in Seminar 6, a scheduler can address these
problems.]
C
OPYRIGHT
© M
ICHAEL
J. P
ONT
, 2001-2003. Contains material from:
Pont, M.J. (2002) “Embedded C”, Addison-Wesley.
PES I - 11
Example: Central-heating controller
Central
heating
controller
Boiler
Temperature
sensor
Temperature
dial
void main(void)
{
/* Init the system */
C_HEAT_Init();
while(1) /* 'for ever' (Super Loop) */
{

ICHAEL
J. P
ONT
, 2001-2003. Contains material from:
Pont, M.J. (2002) “Embedded C”, Addison-Wesley.
PES I - 13
SFRs and ports
Control of the 8051 ports through software is carried out using what
are known as ‘special function registers’ (SFRs).
Physically, the SFR is a area of memory in internal RAM:

P0 is at address 0x80

P1 at address 0x90

P2 at address 0xA0

P3 at address 0xB0
NOTE: 0x means that the number format is HEXADECIMAL
- see Embedded C, Chapter 2.
C
OPYRIGHT
© M
ICHAEL
J. P
ONT
, 2001-2003. Contains material from:
Pont, M.J. (2002) “Embedded C”, Addison-Wesley.
PES I - 14
SFRs and ports

To write to a single pin, we can make use of an
sbit
variable in the
Keil (C51) compiler to provide a finer level of control.
Here’s a clean way of doing this:
#define LED_PORT P3
#define LED_ON 0 /* Easy to change the logic here */
#define LED_OFF 1

sbit Warning_led = LED_PORT^0; /* LED is connected to pin 3.0 */

Warning_led = LED_ON;
/* delay */
Warning_led = LED_OFF;
/* delay */
Warning_led = LED_ON;
/* etc */
C
OPYRIGHT
© M
ICHAEL
J. P
ONT
, 2001-2003. Contains material from:
Pont, M.J. (2002) “Embedded C”, Addison-Wesley.
PES I - 16
Example: Reading and writing bytes
The input port
The output port
void main (void)

{
y++;
}
}
Longer_Loop_Delay()
{
unsigned int x, y, z;
for (x=0; x<=65535; x++)
{
for (y=0; y<=65535; y++);
{
z++;
}
}
}
C
OPYRIGHT
© M
ICHAEL
J. P
ONT
, 2001-2003. Contains material from:
Pont, M.J. (2002) “Embedded C”, Addison-Wesley.
PES I - 18
Using the performance analyzer to test software delays
C
OPYRIGHT
© M
ICHAEL
J. P

In the lab session associated with this seminar, you will use a
hardware simulator to try out the techniques discussed here. This
will give you a chance to focus on the software aspects of
embedded systems, without dealing with hardware problems.
In the next seminar, we will prepare to create your first test systems
on “real hardware”.
Please read Chapters 1, 2 and 3
before the next seminar
C
OPYRIGHT
© M
ICHAEL
J. P
ONT
, 2001-2003. Contains material from:
Pont, M.J. (2002) “Embedded C”, Addison-Wesley.
PES I - 21
Seminar 2:
Basic hardware
foundations (resets,
oscillators and port
I/O)
Atmel
89C52
Vcc
RESET
GND
Vcc
EA


7
‘8051’
8
9
10
33
32
31
30
29
28
27
26
25
24
11
12
13
14
15
16
17
18
19
20
23
22
21
P3.0
P1.7

P2.1
P2.3
P2.4
P2.5
P2.7
P2.6
/ PSEN
ALE
Typical features of a modern 8051:

Thirty-two input / output lines.

Internal data (RAM) memory - 256 bytes.

Up to 64 kbytes of ROM memory (usually flash)

Three 16-bit timers / counters

Nine interrupts (two external) with two priority levels.

Low-power Idle and Power-down modes.
The different members of this family are suitable for everything from
automotive and aerospace systems to TV “remotes”.
C
OPYRIGHT
© M
ICHAEL
J. P
ONT
, 2001-2003. Contains material from:

ICHAEL
J. P
ONT
, 2001-2003. Contains material from:
Pont, M.J. (2002) “Embedded C”, Addison-Wesley.
PES I - 24
Overview of this seminar
This seminar will:

Consider the techniques you need to construct your first
“real” embedded system (on a breadboard).
Specifically, we’ll look at:

Oscillator circuits

Reset circuits

Controlling LEDs
C
OPYRIGHT
© M
ICHAEL
J. P
ONT
, 2001-2003. Contains material from:
Pont, M.J. (2002) “Embedded C”, Addison-Wesley.
PES I - 25
Oscillator Hardware

All digital computer systems are driven by some form of

Vcc
Oscillator output
(to microcontroller)

A variant of the Pierce oscillator is common in the 8051
family. To create such an oscillator, most of the components
are included on the microcontroller itself.

The user of this device must generally only supply the
crystal and two small capacitors to complete the oscillator
implementation.
C
OPYRIGHT
© M
ICHAEL
J. P
ONT
, 2001-2003. Contains material from:
Pont, M.J. (2002) “Embedded C”, Addison-Wesley.
PES I - 27
How to connect a crystal to a microcontroller
C
C
8051-family
microcontroller
GND
XTAL
XTAL

In the absence of specific information, a capacitor value of

Pont, M.J. (2002) “Embedded C”, Addison-Wesley.
PES I - 29
Keep the clock frequency as low as possible
Many developers select an oscillator / resonator frequency that is at
or near the maximum value supported by a particular device.
This can be a mistake:

Many application do not require the levels of performance
that a modern 8051 device can provide.

The electromagnetic interference (EMI) generated by a
circuit increases with clock frequency.

In most modern (CMOS-based) 8051s, there is an almost
linear relationship between the oscillator frequency and the
power-supply current. As a result, by using the lowest
frequency necessary it is possible to reduce the power
requirement: this can be useful in many applications.

When accessing low-speed peripherals (such as slow
memory, or LCD displays), programming and hardware
design can be greatly simplified - and the cost of peripheral
components, such as memory latches, can be reduced - if the
chip is operating more slowly.
In general, you should operate at the lowest possible oscillator
frequency compatible with the performance needs of your application.
C
OPYRIGHT
© M
ICHAEL

If you want a general crystal-controlled embedded system to
keep accurate time, you can choose to keep the device in an
oven (or fridge) at a fixed temperature, and fine-tune the
software to keep accurate time. This is, however, rarely
practical.

‘Temperature Compensated Crystal Oscillators’ (TCXOs)
are available that provide - in an easy-to-use package - a
crystal oscillator, and circuitry that compensates for changes
in temperature. Such devices provide stability levels of up to
±0.1 ppm (or more): in a clock circuit, this should gain or
lose no more than around 1 minute every 20 years.
TCXOs can cost in excess of $100.00 per unit

One practical alternative is to determine the temperature-
frequency characteristics for your chosen crystal, and include
this information in your application.
For the cost of a small temperature sensor (around $2.00),
you can keep track of the temperature and adjust the timing
as required.
C
OPYRIGHT
© M
ICHAEL
J. P
ONT
, 2001-2003. Contains material from:
Pont, M.J. (2002) “Embedded C”, Addison-Wesley.
PES I - 32
Overall strengths and weaknesses

any external components.
☺ Small size. About half the size of crystal oscillator.
BUT:
 Comparatively low stability: not general appropriate for use where
accurate timing (over an extended period) is required. Typically ±5000
ppm = ±2500 min per year (up to ~50 minutes / week).
C
OPYRIGHT
© M
ICHAEL
J. P
ONT
, 2001-2003. Contains material from:
Pont, M.J. (2002) “Embedded C”, Addison-Wesley.
PES I - 34
Reset Hardware

The process of starting any microcontroller is a non-trivial
one.

The underlying hardware is complex and a small,
manufacturer-defined, ‘reset routine’ must be run to place
this hardware into an appropriate state before it can begin
executing the user program. Running this reset routine takes
time, and requires that the microcontroller’s oscillator is
operating.

An RC reset circuit is usually the simplest way of controlling
the reset behaviour.
Example:


30 pF ±10
30 pF ±10
XTAL 2
XTAL 1

DS1812
12 MHz
C
OPYRIGHT
© M
ICHAEL
J. P
ONT
, 2001-2003. Contains material from:
Pont, M.J. (2002) “Embedded C”, Addison-Wesley.
PES I - 36
Driving DC Loads

The port pins on a typical 8051 microcontroller can be set at
values of either 0V or 5V (or, in a 3V system, 0V and 3V)
under software control.

Each pin can typically sink (or source) a current of around
10 mA.

The total current we can source or sink per microcontroller
(all 32 pins, where available) is typically 70 mA or less.
C
OPYRIGHT

cc
= 5V,

LED forward voltage, V
diode
= 2V,

Required diode current, I
diode
= 15 mA (note that the data
sheet for your chosen LED will provide this information).
This gives a required R value of 200

.
C
OPYRIGHT
© M
ICHAEL
J. P
ONT
, 2001-2003. Contains material from:
Pont, M.J. (2002) “Embedded C”, Addison-Wesley.
PES I - 38
Use of pull-up resistors
To adapt circuits for use on pins without internal pull-up resistors is
straightforward: you simply need to add an external pull-up resistor:
Logic 0
to light LED
Vcc
R


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status