Course Outline (F2019)
BME538: Microprocessor Systems
|Instructor(s)||Sattar Hussain [Coordinator]|
Office Hours: Thursdays 11:00am-1:00pm
|Calendar Description||This course introduces students to small microprocessor-based systems, with an emphasis on embedded system hardware and software design as applied to Biomedical Engineering. Topics will include microprocessor architecture and structure, with an overview of 8- 16- and 32-bit systems, assembly language programming and the use of high-level languages. Basic input/output including parallel communications with and without handshaking and serial protocols. Hardware and software timing using interrupts and exceptions. Overview of single-chip microprocessors and controllers with an emphasis on the PIC32 microcontroller. The internal structure and design of peripheral devices are examined; together with memory system design and analysis. Key software design concepts are reinforced through labs/project work; together with the use and structure of development tools such as (cross) assemblers or compilers, monitor programs, simulators, emulators, etc.
|Prerequisites||BME 328 and CEN 199|
- Programming 32-Bit Microcontrollers in C: Exploring the PIC32, Lucio Di Jasio, 1st Edition, Newnes, 2008. PDF version can be downloaded from: http://exploringpic32.com/.
- Embedded Computing and Mechatronics with the PIC32 Microcontroller, Kevin Lynch, Nicholas Marchuk, and Matthew Elwin, 1st edition, Newnes, 2015. ISBN: 978-0-12-420165-1
- Digital Design and Computer Architecture, David Money Harris and Sarah L. Harris, 2nd edition, ISBN: 978-0-12-800056-4
- Microcontrollers from Assembly Language to C Using the PIC24 Family, Reese, R., Bruce, J.W., and Jones, B.A., 2nd edition, Course Technology PTR, 2014. ISBN 13: 978-1-58450-583-9.
- Microcontrollers and Microcomputers Principles of Software and Hardware Engineering, Frederick M Cady, 2nd Edition, Oxford University Press, 2009.
- Microchip Developer's Help Center: http://microchip.wikidot.com/tls0101:start
- Embedded Computing and Mechatronics with the PIC32 Microcontroller homepage: http://hades.mech.northwestern.edu/index.php/NU32
- Microcontrollers from Assembly Language to C Using the PIC24 Family home page: http://www.reesemicro.com/Home/textbook
- Update to Lucio Di Jasio book: http://www.ee.ryerson.ca/~jasmith/AllDressedChips/files/archive-jul-2013.html
|Learning Objectives (Indicators) |
At the end of this course, the successful student will be able to:
- Use technical knowledge including microprocessor architecture, microprocessor I/O interface, microprocessor peripherals, programming and debugging methodology. Use design tools and related resources including microprocessor, microprocessor peripherals, assemblers, compilers, and hardware debuggers. Apply the programming principles to define an accurate programming problem statement. Recognize that good problem definition assists the program design process. (4a)
- Describe differences between the various approaches that can be used to solve a microprocessor programming problem using assembly/C language. Select one specific approach to solve the problem. When the selected approach fails to solve the problem satisfactorily, analyze the cause of failure using standard assembly/C language programming and debugging methodologies. Based on the analysis, come up with new suggestions to improve the existing approach. Integrate the new suggestions into the existing design plan. Judge the completeness and quality of the generated solutions using standard assembly/C language programming and debugging methodologies. (4b)
- Describe the iterative process of programming and debugging microprocessor programs using assembly/C language. Using debugging tools to generate information on the current state of an assembly/C language program that can be used to modify and improve the current program solution. Based on the generated information, examine and critique the current program solution to revise the solution as needed. Incorporate and integrate feedback from the teaching assistants and others and generate new knowledge about the programming problem. (4c)
- Produce lab and project reports using appropriate format, grammar, and citation styles for technical and non-technical audiences. (7a)
- Illustrate concepts including the structure of assembly/C language programs and obtained experimental results. (7c)
- Know the role of the biomedical engineer in society. Including responsibility for protecting, specifically, patient safety, and, generally, the broader public interest. (8b)
- Describe interactions between biomedical instrumentation system design and economic and environmental factors. (9a)
- Describe project outline and its biomedical implementations. Set up a milestone to meet project goals. Determine the project outcomes and deliverable biomedical instruments. Perform risk assessment. (11b)
NOTE:Numbers in parentheses refer to the graduate attributes required by the Canadian Engineering Accreditation Board (CEAB).
3.0 hours of lecture per week for 13 weeks
2.0 hours of lab/tutorial per week for 12 weeks
|Midterm Exam|| 25 %|
|Final Exam|| 45 %|
|Final Project|| 10 %|
|Laboratory|| 20 %|
Note: In order for a student to pass a course with "Theory and Laboratory" components, in addition to earning a minimum overall course mark of 50%, the student must pass the Laboratory and Theory portions separately by achieving a minimum of 50% in the combined Laboratory components and 50% in the combined Theory components. Please refer to the "Course Evaluation" section for details on the Theory and Laboratory components.
|Examinations||(a) Midterm Exam: A single midterm will be held on week 7, Thursday, October 24, 2019|
(b) Final Exam: A single final exam will be held during the final examination period.
(c) Laboratory: The hands-on laboratory sessions, conducted over the course of the semester, using Department-supplied laboratory kits ("MikroE" boards) and student-supplied microcontroller kits; you are expected to purchase individually prior to the first lab.
(d) Final Project: A final project will be conducted by individual students using student-supplied microcontroller kits ("uC32 ChipKit" boards).
The theory component is assessed via the midterm and Final Exam (70% of final grade), while the laboratory component is assessed on project development and reporting (Laboratory is 20% of final grade and Final Project is 10%).
|Other Evaluation Information||Laboratory|
The hands-on component of the course is made up of formal labs and a final project. The formal labs are to be done in groups of two. You are expected to find a partner either prior to the first lab or at the beginning of the first lab. Labs begin in the second week of classes. Equipment will be provided by the Department during these formal labs. Students are expected to attend the lab section for which they are registered. A short quiz will be conducted in the first ten minutes of every lab. The quiz will count towards each individual student’s lab grade. Late students will receive a zero for a missed in-lab quiz.
The other hands-on component of the course involves a student-purchased microcontroller kit. Each student is to purchase a separate kit, consisting of a ChipKit uC32 processor board, a ChipKit I/O board, a Microchip PICkit 3 programmer and an enclosure. The kit is available from the ELCE Department’s Mr. Jim Koch.
All reports, whether for the lab or the final project, are expected to include a standard FEAS cover sheet. The reports are expected to adhere to IEEE format, including referencing. Refer to the marking and style guides for details on what is required in these reports.
Text 1: 1.1-1.9, 2.1-2.3 Text 2: 1.1-1.4, 2.1, 7.1-7.3
General Concepts Internal Architecture and Parallel I/O Ports
Text 1: 6.1-6.8, Ref. 1: 6.1-6.7, Text 2: 3.1, 5.1-5.3
Assembler -Memory and Addressing Mode
Text 1: 3.1-3.7, 4.3-4.5 3.1-3.5, 7.1-7.3, Ref. 1: 6.1-6.7
Assembler cont’d - C for embedded systems
Text 1: 5.1-5.6,7.1-7.4, Text 2: 6.1-6.4, 7.1-7.3
Interrupts and Timers
Text 1: 5.7-5.9, 12.1-12.8, Text 2: 6.1-6.4, 7.1-7.3
Interrupts and Timers-cont’d-Keypad Interfacing
Text 1: 7.5-7.6, Text 2: 8.1-8.3, 17.1-17.3
Text 1: 12.12-12.15, Text 2: 9.1-9.3 15.1-15.3
Input Capture /Output Compare
Text 1: 13.5 , Text 2: 9.1-9.3 15.1-15.3
Input Capture /Output Compare
Text 1:8.1-8.12 , Text 2: 11.1-11.3, 12.1-12.3, 13.1-13.3
Asynchronous Serial Communications-UART
Text 1:8.1-8.12 , Text 2: 11.1-11.3, 12.1-12.3, 13.1-13.3
Synchronous Serial Communication-SPI and I2C
Text 1: 11.1-11.9 , Text 2: 10.1-10.3
Text 1: 5.13-5.14
Interrupts to RTOSs
Text 2: 21.1-21.9
More on Interfacing
PIC32 Ports Configuration
Output Compare-Pulse Width Modulation
Measuring body joint angles
Input Capture-Temperature Sensor interfacing
Policies & Important Information:
- Students are required to obtain and maintain a Ryerson e-mail account for timely communications between the
instructor and the students;
- Any changes in the course outline, test dates, marking or evaluation will be discussed in class prior to being implemented;
- Assignments, projects, reports and other deadline-bound course assessment components handed in past the due date will receive a mark of ZERO, unless otherwise stated. Marking information will be made available at the time when such course assessment components are announced.
- Refer to our Departmental FAQ page for information on common questions and issues at the following link: https://www.ee.ryerson.ca/guides/Student.Academic.FAQ.html.
Missed Classes and/or Evaluations
When possible, students are required to inform their instructors of any situation which arises during the semester which may have an adverse effect upon their academic performance, and must request any consideration and accommodation according to the relevant policies as far in advance as possible. Failure to do so may jeopardize any academic appeals.
- Health certificates - If a student misses the deadline for submitting an assignment, or the date of an exam or other evaluation component for health reasons, they should notify their instructor as soon as possible, and submit a Ryerson Student Health Certificate AND an Academic Consideration Request form within 3 working days of the missed date. Both documents are available at https://www.ryerson.ca/senate/forms/medical.pdf.. If you are a full-time or part-time degree student, then you submit your forms to your own program department or school;
- Religious, Aboriginal and Spiritual observance - If a student needs accommodation because of religious, Aboriginal or spiritual observance, they must submit a Request for Accommodation of Student Religious, Aboriginal and Spiritual Observance AND an Academic Consideration Request form within the first 2 weeks of the class or, for a final examination, within 2 weeks of the posting of the examination schedule. If the requested absence occurs within the first 2 weeks of classes, or the dates are not known well in advance as they are linked to other conditions, these forms should be submitted with as much lead time as possible in advance of the absence. Both documents are available at www.ryerson.ca/senate/forms/relobservforminstr.pdf. If you are a full-time or part-time degree student, then you submit the forms to your own program department or school;
- Academic Accommodation Support - Before the first graded work is due, students registered with the Academic Accommodation Support office (AAS - www.ryerson.ca/studentlearningsupport/academic-accommodation-support) should provide their instructors with an Academic Accommodation letter that describes their academic accommodation plan.
Ryerson's Policy 60 (the Academic Integrity policy) applies to all students at the University. Forms of academic misconduct include plagiarism, cheating, supplying false information to the University, and other acts. The most common form of academic misconduct is plagiarism - a serious academic offence, with potentially severe penalties and other consequences. It is expected, therefore, that all examinations and work submitted for evaluation and course credit will be the product of each student's individual effort (or an authorized group of students). Submitting the same work for credit to more than one course, without instructor approval, can also be considered a form of plagiarism.
Suspicions of academic misconduct may be referred to the Academic Integrity Office (AIO). Students who are found to have committed academic misconduct will have a Disciplinary Notation (DN) placed on their academic record (not on their transcript) and will normally be assigned one or more of the following penalties:
- A grade reduction for the work, ranging up to an including a zero on the work (minimum penalty for graduate work is a zero on the work);
- A grade reduction in the course greater than a zero on the work. (Note that this penalty can only be applied to course components worth 10% or less, and any additional penalty cannot exceed 10% of the final course grade. Students must be given prior notice that such a penalty will be assigned (e.g. in the course outline or on the assignment handout);
- An F in the course;
- More serious penalties up to and including expulsion from the University.
The unauthorized use of intellectual property of others, including your professor, for distribution, sale, or profit is expressly prohibited, in accordance with Policy 60 (Sections 2.8 and 2.10). Intellectual property includes, but is not limited to:
- Lecture notes
- Presentation materials used in and outside of class
- Lab manuals
- Course packs
For more detailed information on these issues, please refer to the Academic Integrity policy(https://www.ryerson.ca/senate/policies/pol60.pdf) and to the Academic Integrity Office website (https://www.ryerson.ca/academicintegrity/).
Important Resources Available at Ryerson
- The Library (https://library.ryerson.ca/) provides research workshops and individual assistance. Inquire at the Reference Desk on the second floor of the library, or go to library.ryerson.ca/guides/workshops
- Student Learning Support(https://www.ryerson.ca/studentlearningsupport) offers group-based and individual help with writing, math, study skills and transition support, and other issues.