Transcript Lec11
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