Chapter 11: Data acquisition and manipulation

Download Report

Transcript Chapter 11: Data acquisition and manipulation

Data acquisition and
manipulation
Chapter Eleven
11.1 - 11.3
Dr. Gheith Abandah
1
Outline
• Introduction
• The main features of a data acquisition system
• The characteristics of an analog-to-digital
converter
• The characteristics of the 16F873A analog-todigital converter
• Summary
Dr. Gheith Abandah
2
Analog vs. Digital
Property
Analog
Digital
Continuous voltage
Representation
Binary Number
or current
Infinite range of
Limited by the
Precision
values
number’s length
Resistance to
Tolerant to signal
Weak
Degradation
degradation
Processing
Limited
Powerful
Storage
Impossible
Possible
Dr. Gheith Abandah
3
Analog to Digital Conversion
• Most physical signals are analog.
• Analog signals are captured by sensors or
transducers.
• Examples: temperature, sound, pressure, …
• Need to convert to digital signals to facilitate
processing by the microcontroller.
• The device that does this is analog-to-digital
converter (ADC).
Dr. Gheith Abandah
4
ADC Types
1. Dual ramp (slow with very high accuracy, for
precision measurements)
2. Flash converter (fast, lesser accuracy, for
video or radar)
3. Successive approximation (medium speed
and accuracy, for general-purpose industrial
applications, commonly found in embedded
systems)
Dr. Gheith Abandah
5
Conversion
characteristic
Voltage Range
Vr = Vmax – 0
Resolution =
Vr / 2n
Quantization error =
± Resolution / 2
= Vr / 2n+1
Dr. Gheith Abandah
6
Conversion Steps
1.
2.
3.
4.
Get Sample
Start conversion
Wait
Read digital value (in parallel or serially)
• Usually need a voltage reference
Dr. Gheith Abandah
7
Elements of a data acquisition system
1. Transducers: physical to electrical
2. Amplify and offset circuits
– The input voltage should traverse as much of its input
range as possible
– Voltage level shifting may also be required
3. Filter: get rid of unwanted signal components
4. Multiplexer: select one of multiple inputs
5. Sampler: the conversion rate must be at least twice
the highest signal frequency (Nyquist sampling
criterion)
6. ADC
Dr. Gheith Abandah
8
Elements of a data acquisition
system
Dr. Gheith Abandah
9
Sample and hold, and acquisition
time
Dr. Gheith Abandah
10
Sample and hold, and acquisition
time
Dr. Gheith Abandah
11
Example
• What should be the acquisition time for a 10-bit
ADC?
The voltage should rise to
≥ Vs – quantization error = Vs - Vs / 2n+1
≥ Vs(2047/2048) = 0.9995 Vs
VC = Vs {1 − exp(−t/RC)}
0.9995Vs = Vs {1 − exp(−t/RC)}
exp(−t/RC) = 1 − 0.9995
−t = RC ln(0.0005)
t = 7.6RC
Dr. Gheith Abandah
12
Typical timing
requirement of
one A-to-D
conversion
Dr. Gheith Abandah
13
Data acquisition in the
microcontroller environment
• To operate to a good level of accuracy, an ADC
needs a clean power supply and ground and
no electromagnetic interference.
• When an ADC is integrated inside a
microcontroller, it will be affected by the noisy
internal power sources.
• So, integrated ADCs are not very accurate,
typically 8- or 10-bit.
Dr. Gheith Abandah
14
The PIC 16 Series
Device
Pins
Features
16F873A
16F876A
28
3 parallel ports,
3 counter/timers,
2 capture/compare/PWM,
2 serial,
5 10-bit ADC,
2 comparators
16F874A
16F877A
40
5 parallel ports,
3 counter/timers,
2 capture/compare/PWM,
2 serial,
8 10-bit ADC,
2 comparators
Dr. Gheith Abandah
15
The PIC® 16F87XA ADC module
Dr. Gheith Abandah
16
Controlling the
ADC
The ADC is controlled
by two SFRs:
•ADCON0 (1Fh)
•ADCON1 (9Fh)
The result of the
conversion is placed
in:
•ADRESH (1Eh)
•ADRESL (9Eh)
Dr. Gheith Abandah
17
ADCON0: A/D Control Register 0
(address 1Fh)
• ADCS1:0:
• CHS2:0:
• GO/DONE’:
conversion clock select
analog channel select
conversion status
The ADC interrupt flag ADIF and interrupt
enable ADIE bits can also be used
• U:
• ADON:
unimplemented
A/D On
Dr. Gheith Abandah
18
A/D Conversion Clock Select bits
•A full 10-bit conversion takes around 12 TAD cycles
•TAD should be equal to or just greater than 1.6 μs
•Minimum 2TAD between two successive conversions
•Maximum conversion rate is 30 kHz, higher rate by switching to higher
TAD after starting the conversion
Dr. Gheith Abandah
19
ADCON1: A/D Control Register 1
(address 9Fh)
• ADFM:
result format select
1 = Right justified
0 = Left justified
• ADCS2:
• U:
• PCFG3:0:
conversion clock select
unimplemented
port configuration control
Dr. Gheith Abandah
20
A/D result format
Dr. Gheith Abandah
21
A/D Port Configuration Control
Dr. Gheith Abandah
22
The analog input model
Dr. Gheith Abandah
23
Calculating acquisition time
tac
= Amplifier settling time
+ Hold capacitor charging time
+ Temperature coefficient
tac
= 2 μs
+ 7.6RC
for 10-bit accuracy
+ (Temperature − 25◦C)(0.05 μs/◦C)
Dr. Gheith Abandah
24
Calculating acquisition time Example
RSS = 7kΩ, RIC = 1kΩ (VDD = 5V), RS = 0,
Temp = 35 ◦C, TAD = 1.6 μs
tac
= 2 μs
+ 7.6(7kΩ + 1kΩ + 0)(120pF)
+ (35 − 25)(0.05 μs/◦C)
= 2 + 7.3 + 0.5 = 9.8 μs
Total time = tac + 12TAD = 9.8 + 19.2 μs = 29 μs
Dr. Gheith Abandah
25
A/D Example – Page 1
...
bsf
movlw
movwf
movlw
movwf
...
status,rp0
B'00001011'
trisa
B'10000100'
adcon1
;set port A bits,
;ADC set as inputs
;bits 0,1,3 analog input
;right justify result
Dr. Gheith Abandah
26
A/D Example – Page 2
...
bcf
status,rp0
movlw B'01000001' ;set up ADC: clock Fosc/8,
;switch ADC on but not converting,
;channel selection now is irrelevant
movwf adcon0
Dr. Gheith Abandah
27
A/D Example – Page 3
main_loop
movlw B'01000001'
movwf adcon0
call delay20u
bsf
adcon0,go
btfsc adcon0,go_done
goto $-1
movf adresh,0
movwf ldr_left_hi
bsf
status,rp0
movf adresl,0
bcf
status,rp0
movwf ldr_left_lo
;select channel 0
;acquisition time
;start conversion
;conversion ended?
;read ADC output data high
;read ADC output data low
Dr. Gheith Abandah
28
Summary - 1
• Most signals produced by transducers are analog in
nature, while all processing done by a microcontroller
is digital.
• Analog signals can be converted to digital form using
an analog-to-digital converter (ADC). The ADC
generally forms just one part of a larger data
acquisition system.
• Considerable care needs to be taken in applying ADCs
and data acquisition systems, using knowledge among
other things of timing requirements, signal
conditioning, grounding and the use of voltage
references.
Dr. Gheith Abandah
29
Summary - 2
• The 16F873A has a 10-bit ADC module that contains
the features of a data acquisition system.
• Data values, once acquired, are likely to need further
processing, including offsetting, scaling and code
conversion. Standard algorithms exist for all of these,
and Assembler libraries are published.
• A simple interface between the analog and digital
world is the comparator, which is commonly used to
classify an analog signal into one of two states.
Dr. Gheith Abandah
30