EE 319K Introduction to Embedded Systems Lecture 11: Data Acquisition, Numerical Fixed-Point Calculations,

Download Report

Transcript EE 319K Introduction to Embedded Systems Lecture 11: Data Acquisition, Numerical Fixed-Point Calculations,

EE 319K
Introduction to Embedded Systems
Lecture 11: Data Acquisition,
Numerical Fixed-Point Calculations,
Lab 8
Bard, Tiwari, Telang, Janapa Reddi, Gerstlauer, Valvano, Yerraballi
11-1
Agenda
Recap
Sampling, Nyquist
Analog to Digital Conversion
 Agenda
Exam 2
o Pointers, arrays, strings, structures, FSMs
Data acquisition
Numerical fixed-point calculations
Lab 8
Bard, Tiwari, Telang, Janapa Reddi, Gerstlauer, Valvano, Yerraballi
11-2
Exam 2 review
http://users.ece.utexas.edu/~valvano/Volume1/Exam2thoughts.pdf
 0) Being able to quickly design, implement, and
debug assembly software
 1) Understanding differences between data and
address, being able to use pointers and indices
 2) Understanding differences between 8-bit,
16-bit data and 32-bit data
 3) Understanding differences between signed
and unsigned integers
 4) Programming if-then if-then-else for-loops
while-loops and do-while-loops in assembly
 5) Processing a variable-length array or string,
either size first or terminating code at end
 6) Addition, subtraction, multiplication,
division, shift, and, or, xor
11-3
Exam 2 review
 7) Structures
 8) Call by value, call by reference, return by value
 9) AAPCS Program conventions




Save and restore R4-R11,LR if you wish to modify
Parameter passing in registers R0,R1,R2,R3
All input parameters promoted to 32 bits
Return parameter in R0
 10) Implementation of FSM using a table structure with an
index
No FSM



Moore
Spring 2015
Not a real port, so no bit-specific addressing, no timer
Read modify write sequences to be friendly (including input pin)
 11) Accessing arrays strings and structures using pointers
and indices


Stepping through two or more arrays at a time
8/16/32-bit data, signed/unsigned numbers
11-4
Exam 2 review
A) You may be given one or more
variable length arrays of data, buf[i]
The size may be the first entry
There may be a termination code
The data may be 8-bit ASCII characters or
integers
The integers may be 8 16 or 32 bits
Integers may be signed or unsigned
A pointer to this array may be passed in R0
You may be asked to deal with special cases:
size=0, size too big, overflow
11-5
Exam 2 Array problems
















Determine the size of the array
Return the first element of the array
Find the maximum or minimum element in an array
Find the sum of all the elements
Find the average of all the elements
Find the mode of all the elements
Find the range = maximum - minimum
Find the maximum or minimum slope (buf[i+1]-buf[i])
Find the maximum or minimum absolute value
Count the number of times a particular value occurs
(buf[i]==1000)
Search for the occurrence of one string in another
Concatenate two strings together
Delete characters from a string
Insert one string into another
Move data from one place to another within an array or string
Sort the array (we will give the steps)
11-6
Exam 2 FSM problems
Convert a FSM graph to a linked data
No FSM
structure or table with an index
Spring 2015
Write a Mealy FSM controller (with or
without timer wait)
Write a Moore FSM controller (with or
without timer wait)
It also may involve accessing a linked
structure like Lab 5
11-7
Exam 2
Runs on your laptop
Keil in simulation (no board)
During exam: Keil, Keil help, PC calculator
Needs internet to download and upload
Battery power
Written in assembly (no C)
No SysTick, no interrupts
Overall grade a combination of
Numerical score from grader
Program style (reviewed later)
Tricking the grader is considered dishonest
Hard-coding answers is considered dishonest
11-8
Data Acquisition System (Lab 8)
Hardware
Transducer
Electronics
ADC
 Software
 ADC device driver
 Timer routines
 Output compare
interrupts
 LCD driver
 Measurement
system
 How fast to update
 Fixed-point number
system
 Algorithm to
convert ADC into
position
Bard, Tiwari, Telang, Janapa Reddi, Gerstlauer, Valvano, Yerraballi
11-9
Analog Input Device
Transducer – A device actuated by
power from one system that supplies
power in the same or other form to
another system.
Bard, Tiwari, Telang, Janapa Reddi, Gerstlauer, Valvano, Yerraballi
11-10
Transducer Circuit
Position to voltage
Bard, Tiwari, Telang, Janapa Reddi, Gerstlauer, Valvano, Yerraballi
11-11
Data Acquisition System
Data flow graph
ST7735
Position Voltage
0 to 2 cm 0 to +3.3V
Position
Sensor
Sample
0 to 4095
ADC
hardware
Sample
0 to 4095
ADC
driver
SysTick
ISR
SysTick
hardware
LCD
display
LCD
driver
Mailbox
main
Fixed-point
0 to 2.000
Bard, Tiwari, Telang, Janapa Reddi, Gerstlauer, Valvano, Yerraballi
11-12
Data Acquisition System
Call graph
main
SysTick
ISR
SysTick
hardware
Init
ADC driver
In
ADC
hardware
LCD
driver
ST7735
LCD
hardware
Bard, Tiwari, Telang, Janapa Reddi, Gerstlauer, Valvano, Yerraballi
11-13
Thread Synchronization in Lab 8
Background thread
Foreground thread
SysTick ISR
Main loop
Sample ADC
Store in ADCmail
Set ADCstatus
Main
program
ISR
Read data
from input
Other calculations a
Empty
c
Status
Wait for ADCstatus
Read ADCmail
Clear ADCstatus
Convert to distance
Display on LCD
Mail = data b
Status = Full
Full
Process Mail
Status = Empty
d
Bard, Tiwari, Telang, Janapa Reddi, Gerstlauer, Valvano, Yerraballi
11-14
Sampling Jitter
Definition of time-jitter, δt:
Let nΔt be the time a task is scheduled to be
run and tn the time the task is actually run
Then δtn= tn – nΔt
Real time systems with periodic tasks,
must have an upper bound, k, on the
time-jitter
-k ≤ δtn ≤ +k for all n
Bard, Tiwari, Telang, Janapa Reddi, Gerstlauer, Valvano, Yerraballi
11-15
Measurement
Resolution: Limiting factors
Transducer noise
Electrical noise
ADC precision
Software errors
100 measurements with
Position = P1
100 measurements with
P
Position= P1+P
pdf
Measurement Output
Accuracy: Limiting factors
Resolution
Calibration
Transducer stability
Average accuracy (with units of x) =
n
x

n
1
i 0
Bard, Tiwari, Telang, Janapa Reddi, Gerstlauer, Valvano, Yerraballi
ti
 xmi
11-16
Fixed-Point Revisited
 Why:
express non-integer values
no floating point hardware support (want it to run fast)
 When:
range of values is known
range of values is small
value  integer • 
 How:
1) variable integer, called I.
may be signed or unsigned
may be 8, 16 or 32 bits (precision)
2) fixed constant, called  (resolution)
value is fixed, and can not be changed
not stored in memory
specify this fixed content using comments
Bard, Tiwari, Telang, Janapa Reddi, Gerstlauer, Valvano, Yerraballi
11-17
Fixed-Point Numbers
 The value of the fixed-point number:
Fixed-point number  I•
Smallest value
= Imin • , where Imin is the smallest
integer
Largest value
= Imax • , where Imax is the largest
integer
 Decimal fixed-point, =10m
Decimal fixed-point number = I • 10m
Nice for human input/output
b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 b-1 b-2 b-3 b-4 b-5 b-6
 Binary fixed-point, =2m
Binary fixed-point number = I • 2m
Easier for computers to perform calculations
Bard, Tiwari, Telang, Janapa Reddi, Gerstlauer, Valvano, Yerraballi
Fixed binary point
11-18
Fixed-Point Math Example
Consider the following calculation.
C = 2**R
The variables C, and R are integers
2 ≈ 6.283
C = (6283*R)/1000
Bard, Tiwari, Telang, Janapa Reddi, Gerstlauer, Valvano, Yerraballi
11-19
Fixed-Point Math Example
Calculate the volume of a cylinder
V = *R2 * L
The variables are fixed-point
R = I*2-4 cm
L = J*2-4 cm
V = K*2-8 cm3
2 ≈ 201*2-5
K = (201*I*I*J)>>9
Bard, Tiwari, Telang, Janapa Reddi, Gerstlauer, Valvano, Yerraballi
11-20
Make a Voltmeter with ADC
Vin (V)
Analog in
N
Digital out
I (1 mV)
Variable part
LCD
0
0
0
0.000
0.75
1024
750
0.750
1.5
2048
1500
1.500
2.25
3072
2250
2.250
3
4096
3000
3.000
=0.001 V
Vin = 3•N/4096
Vin = I • 0.001
I = (3000*N)/4096
I = (m•N+b)/ 4096
how ADC works
definition of fixed point
substitution
calibrate to get m and b
Bard, Tiwari, Telang, Janapa Reddi, Gerstlauer, Valvano, Yerraballi
11-21
Lab 8 Calibration
Position
0.10 cm
0.40 cm
0.80 cm
1.20 cm
1.40 cm
Analog input
0.432
1.043
1.722
2.455
2.796
ADC sample
538
1295
2140
3050
3474
Correct Fixed-point
100
400
800
1200
1400
Measured Fixed-point Output
84
421
797
1202
1391
n
x

n
1
i 0
Bard, Tiwari, Telang, Janapa Reddi, Gerstlauer, Valvano, Yerraballi
ti
 xmi
11-22