EE 319K Introduction to Embedded Systems Lecture 11: Data Acquisition, Numerical Fixed-Point Calculations,
Download ReportTranscript 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