1 / 22

EE 319K Introduction to Embedded Systems

EE 319K Introduction to Embedded Systems. Lecture 11: Data Acquisition, Numerical Fixed-Point Calculations, Lab 8. Agenda. Recap Sampling, Nyquist Analog to Digital Conversion Agenda Exam 2 Pointers, Array and String Manipulation, FSMs Data acquisition Numerical fixed-point calculations

chas
Télécharger la présentation

EE 319K Introduction to Embedded Systems

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. EE 319KIntroduction to Embedded Systems Lecture 11: Data Acquisition,Numerical Fixed-Point Calculations, Lab 8 Bard, Gerstlauer, Valvano, Yerraballi

  2. Agenda Recap Sampling, Nyquist Analog to Digital Conversion Agenda Exam 2 Pointers, Array and String Manipulation, FSMs Data acquisition Numerical fixed-point calculations Lab 8 Bard, Gerstlauer, Valvano, Yerraballi

  3. Exam 2 review • 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 and division

  4. Exam 2 review • 7) Shift left and right (signed and unsigned) • 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 linked data structure or using a table structure with an index • Mealy and Moore • Not a real port, so no bit-specific addressing • Read modify write sequences to be friendly (including input pin) • 11) Accessing arrays and strings using pointers and indices • Stepping through two or more arrays at a time • 8/16/32-bit data, signed/unsigned numbers

  5. 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

  6. 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)

  7. Exam 2 FSM problems • Convert a FSM graph to a linked data structure or table with an index • 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

  8. 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 bad

  9. 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 Data Acquisition System (Lab 8) Bard, Gerstlauer, Valvano, Yerraballi

  10. 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, Gerstlauer, Valvano, Yerraballi

  11. Transducer Circuit • Position to voltage Bard, Gerstlauer, Valvano, Yerraballi

  12. P o s i t i o n V o l t a g e S a m p l e 0 t o 2 c m 0 t o + 3.3V 0 t o 4 0 9 5 S a m p l e P o s i t i o n A D C 0 t o 4 0 9 5 A D C S e n s o r h a r d w a r e d r i v e r S y s T i c k I S R S y s T i c k M a i l b o x h a r d w a r e m a i n L C D L C D d i s p l a y F i x e d - p o i n t d r i v e r 0 t o 2 . 0 0 0 Data Acquisition System • Data flow graph Bard, Gerstlauer, Valvano, Yerraballi

  13. Data Acquisition System • Call graph Bard, Gerstlauer, Valvano, Yerraballi

  14. Thread Synchronization in Lab 8 Background thread Foreground thread • SysTick ISR • Sample ADC • Store in ADCmail • Set ADCstatus • Main loop • Wait for ADCstatus • Read ADCmail • Clear ADCstatus • Convert to distance • Display on LCD Bard, Gerstlauer, Valvano, Yerraballi

  15. Sampling Jitter • Definition of time-jitter,δt: • LetnΔt be the time a task is scheduled to be run and tnthe 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 alln Bard, Gerstlauer, Valvano, Yerraballi

  16. Measurement • Resolution: Limiting factors • Transducer noise • Electrical noise • ADC precision • Software errors • Accuracy: Limiting factors • Resolution • Calibration • Transducer stability Average accuracy (with units of x) = Bard, Gerstlauer, Valvano, Yerraballi

  17. 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 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 value  integer•  Bard, Gerstlauer, Valvano, Yerraballi

  18. Fixed-Point Numbers The value of the fixed-point number: Fixed-point number I• Smallest value = Imin • D, where Imin is the smallest integer Largest value = Imax • D, where Imax is the largest integer Decimal fixed-point, =10m Decimal fixed-point number = I • 10m Nice for human input/output Binary fixed-point, =2m Binary fixed-point number = I • 2m Easier for computers to perform calculations Bard, Gerstlauer, Valvano, Yerraballi

  19. Fixed-Point Math Example Consider the following calculation. C = 2**R The variables C, and R are integers 2p ≈ 6.283 C = (6283*R)/1000 Bard, Gerstlauer, Valvano, Yerraballi

  20. 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 2p ≈ 201*2-5 K = (201*I*I*J)>>9 Bard, Gerstlauer, Valvano, Yerraballi

  21. Make a Voltmeter with ADC =0.001 V Vin = 3•N/4096 how ADC works Vin = I • 0.001 definition of fixed point I = (3000*N)/4096 substitution I = (m•N+b)/ 4096 calibrate to get m and b Bard, Gerstlauer, Valvano, Yerraballi

  22. Lab 8 Calibration Bard, Gerstlauer, Valvano, Yerraballi

More Related