| |
| |
Microcomputer-Based Systems | |
| |
| |
Embedded Computer Systems | |
| |
| |
Applications | |
| |
| |
Software Issues | |
| |
| |
Memory-Mapped Architecture | |
| |
| |
MC68HC05 Architecture | |
| |
| |
MC68HC705J1A | |
| |
| |
MC68HC05C4 | |
| |
| |
MC68HC05 Registers | |
| |
| |
MC68HC05 Addressing Modes | |
| |
| |
MC68HC08 Architecture | |
| |
| |
MC68HC708XL36 Introduction | |
| |
| |
MC68HC708XL36 Memory Map | |
| |
| |
MC68HC08 Registers | |
| |
| |
MC68HC08 Addressing Modes | |
| |
| |
MC68HC11 Architecture | |
| |
| |
MC68HC11 Family | |
| |
| |
MC68HC11 Expanded Mode | |
| |
| |
MC68HC11 Registers | |
| |
| |
MC68HC11 Addressing Modes | |
| |
| |
Erasing and Programming the MC68HC11 EEPROM | |
| |
| |
MC68HC12 Architecture | |
| |
| |
MC68HC12 Family | |
| |
| |
MC68HC12 Expanded Mode | |
| |
| |
MC68HC12 Registers | |
| |
| |
MC68HC12 Addressing Modes | |
| |
| |
Erasing and Programming the MC68HC12 EEPROM | |
| |
| |
Erasing and Programming the MC68HC912B32 Flash EEPROM | |
| |
| |
Digital Logic and Open Collector | |
| |
| |
Initializing and Accessing I/O Ports | |
| |
| |
Basic Concept of an I/O Port Address and Direction Register | |
| |
| |
Simple I/O Software | |
| |
| |
I/O Example | |
| |
| |
Choosing a Microcomputer | |
| |
| |
Glossary | |
| |
| |
Exercises | |
| |
| |
Software Development | |
| |
| |
Quality Programming | |
| |
| |
Quantitative Performance Measurements | |
| |
| |
Qualitative Performance Measurements | |
| |
| |
Memory Allocation | |
| |
| |
Self-Documenting Code | |
| |
| |
Abstraction | |
| |
| |
Definitions | |
| |
| |
Mealy FSM | |
| |
| |
Moore FSM | |
| |
| |
Modular Software Development | |
| |
| |
Modules | |
| |
| |
Dividing a Software Task into Modules | |
| |
| |
Rules for Developing Modular Software in Assembly Language | |
| |
| |
Layered Software Systems | |
| |
| |
Device Drivers | |
| |
| |
Basic Concept of Device Drivers | |
| |
| |
Serial Communications Interface Device Driver | |
| |
| |
Object-Oriented Interfacing | |
| |
| |
Encapsulated Objects Using Standard C | |
| |
| |
Object-Oriented Interfacing Using C++ | |
| |
| |
Portability Using Standard C and C++ | |
| |
| |
Threads | |
| |
| |
Single-Threaded Execution | |
| |
| |
Multithreading and Reentrancy | |
| |
| |
Recursion | |
| |
| |
Debugging Strategies | |
| |
| |
Debugging Tools | |
| |
| |
Debugging Theory | |
| |
| |
Functional Debugging | |
| |
| |
Performance Debugging | |
| |
| |
Profiling | |
| |
| |
Glossary | |
| |
| |
Exercises | |
| |
| |
Interfacing Methods | |
| |
| |
Introduction | |
| |
| |
Performance Measures | |
| |
| |
Synchronizing the Software with the State of the I/O | |
| |
| |
Variety of Available I/O Ports | |
| |
| |
Blind Cycle Counting Synchronization | |
| |
| |
Blind Cycle Printer Interface | |
| |
| |
Blind Cycle ADC Interface | |
| |
| |
Gadfly or Busy Waiting Synchronization | |
| |
| |
Parallel I/O Interface Examples | |
| |
| |
Blind Cycle Printer Interface | |
| |
| |
Accurate Time Delays | |
| |
| |
Blind Cycle ADC Interface | |
| |
| |
Gadfly Keyboard Interface Using Latched Input | |
| |
| |
Gadfly ADC Interface Using Simple Input | |
| |
| |
Gadfly External Sensor Interface Using Input Handshake | |
| |
| |
Gadfly Printer Interface Using Output Handshake | |
| |
| |
Gadfly Synchronous Serial Interface to a Temperature Sensor | |
| |
| |
Glossary | |
| |
| |
Questions | |
| |
| |
Interrupt Synchronization | |
| |
| |
What Are Interrupts? | |
| |
| |
Interrupt Definition | |
| |
| |
Interrupt Service Routines | |
| |
| |
When to Use Interrupts | |
| |
| |
Interthread Communication | |
| |
| |
Reentrant Programming | |
| |
| |
First-In First-Out Queue | |
| |
| |
Introduction to FIFOs | |
| |
| |
Two-Pointer FIFO Implementation | |
| |
| |
Two-Pointer/Counter FIFO Implementation | |
| |
| |
Index FIFO Implementation | |
| |
| |
FIFO Dynamics | |
| |
| |
General Features of Interrupts on the 6805/6808/6811/6812 | |
| |
| |
6805 Interrupts | |
| |
| |
6808 Interrupts | |
| |
| |
6811 Interrupts | |
| |
| |
6812 Interrupts | |
| |
| |
Interrupt Vectors and Priority | |
| |
| |
MC6805 Interrupt Vectors and Priority | |
| |
| |
MC68HC708XL36 Interrupt Vectors and Priority | |
| |
| |
MC68HC11A8 Interrupt Vectors and Priority | |
| |
| |
MC68HC812A4 Interrupt Vectors and Priority | |
| |
| |
MC68HC912B32 Interrupt Vectors and Priority | |
| |
| |
External Interrupt Design Approach | |
| |
| |
Polled Versus Vectored Interrupts | |
| |
| |
Keyboard Interface Using Interrupts | |
| |
| |
Printer Interface Using IRQ Interrupts | |
| |
| |
Power System Interface Using XIRQ Synchronization | |
| |
| |
Interrupt Polling Using Linked Lists | |
| |
| |
6811 Interrupt Polling Using Linked Lists | |
| |
| |
6812 Interrupt Polling Using Linked Lists | |
| |
| |
Fixed Priority Implemented Using One Interrupt Line | |
| |
| |
Fixed Priority Implemented Using XIRQ | |
| |
| |
Round-Robin Polling | |
| |
| |
Periodic Polling | |
| |
| |
Real Time Interrupt Using a 6811 STRA | |
| |
| |
6811 RTI | |
| |
| |
6812 RTI | |
| |
| |
6812 Timer Overflow Interrupt | |
| |
| |
Glossary | |
| |
| |
Exercises | |
| |
| |
Threads | |
| |
| |
Multithreaded Preemptive Scheduler | |
| |
| |
Round-Robin Scheduler | |
| |
| |
Other Scheduling Algorithms | |
| |
| |
Dynamic Allocation of Threads | |
| |
| |
Semaphores | |
| |
| |
Spin-Lock Semaphore Implementation | |
| |
| |
Blocking Semaphore Implementation | |
| |
| |
Applications of Semaphores | |
| |
| |
Thread Synchronization or Rendezvous | |
| |
| |
Resource Sharing, Nonreentrant Code or Mutual Exclusion | |
| |
| |
Thread Communication Between Two Threads Using a Mailbox | |
| |
| |
Thread Communication Between Many Threads Using a FIFO Queue | |
| |
| |
Glossary | |
| |
| |
Exercises | |
| |
| |
Timing Generation and Measurements | |
| |
| |
Input Capture | |
| |
| |
Basic Principles of Input Capture | |
| |
| |
Input Capture Details | |
| |
| |
Real Time Interrupt Using an Input Capture | |
| |
| |
Period Measurement | |
| |
| |
Pulse-Width Measurement | |
| |
| |
Output Compare | |
| |
| |
General Concepts | |
| |
| |
Output Compare Details | |
| |
| |
Periodic Interrupt Using Output Compare | |
| |
| |
Square-Wave Generation | |
| |
| |
Pulse-Width Modulation | |
| |
| |
Delayed Pulse Generation | |
| |
| |
Frequency Measurement | |
| |
| |
Frequency Measurement Concepts | |
| |
| |
Frequency Measurement with [delta]f=100Hz | |
| |
| |
Conversion Between Frequency and Period | |
| |
| |
Using Period Measurement to Calculate Frequency | |
| |
| |
Using Frequency Measurement to Calculate Period | |
| |
| |
Measurements Using Both Input Capture and Output Compare | |
| |
| |
Period Measurement with [delta]=1ms | |
| |
| |
Frequency Measurement with [delta]f=0.1Hz | |
| |
| |
Glossary | |
| |
| |
Exercises | |
| |
| |
Serial I/O Devices | |
| |
| |
Introduction and Definitions | |
| |
| |
RS232 Specifications | |
| |
| |
RS422/AppleTalk/RS423/RS485 Balanced Differential Lines | |
| |
| |
RS422 Output Specifications | |
| |
| |
RS422 Input Specifications | |
| |
| |
RS485 Half-Duplex Channel | |
| |
| |
Other Communication Protocols | |
| |
| |
Current Loop Channel | |
| |
| |
Introduction to Modems | |
| |
| |
Optical Channel | |
| |
| |
Digital Logic Channel | |
| |
| |
Serial Communications Interface | |
| |
| |
Transmitting in Asynchronous Mode | |
| |
| |
Receiving in Asynchronous Mode | |
| |
| |
MC68HC05C8 SCI Details | |
| |
| |
MC68HC708XL36 SCI Details | |
| |
| |
MC68HC11A8 SCI Details | |
| |
| |
MC68HC812A4 SCI Details | |
| |
| |
SCI Applications | |
| |
| |
SCI Hardware Interface | |
| |
| |
SCI Receive Only Interrupt Interface | |
| |
| |
SCI Transmit Only Interrupt Interface | |
| |
| |
Input and Output Interrupts on the SCI | |
| |
| |
Serial Port Printer Interfaces | |
| |
| |
Synchronous Transmission and Receiving Using the SPI | |
| |
| |
SPI Fundamentals | |
| |
| |
MC68HC05C8 SPI Details | |
| |
| |
MC68HC708XL36 SPI Details | |
| |
| |
6811 SPI Details | |
| |
| |
6812 SPI Details | |
| |
| |
SPI Applications | |
| |
| |
Glossary | |
| |
| |
Exercises | |
| |
| |
Parallel Port Interfaces | |
| |
| |
Input Switches and Keyboards | |
| |
| |
Interfacing a Switch to the Computer | |
| |
| |
Hardware Debouncing Using a Capacitor | |
| |
| |
Software Debouncing | |
| |
| |
Basic Approaches to Interfacing Multiple Keys | |
| |
| |
Sixteen-Key Electronic Piano | |
| |
| |
4 by 4 Scanned Keyboard | |
| |
| |
Multiplexed/Demultiplexed Scanned Keyboard | |
| |
| |
Output LEDs | |
| |
| |
Single LED Interface | |
| |
| |
Seven-Segment LED Interfaces | |
| |
| |
Scanned Seven-Segment LED Interface | |
| |
| |
Scanned LED Interface Using the 7447 Seven-Segment Decoder | |
| |
| |
Integrated LED Interface Using the MC14489 Display Driver | |
| |
| |
Liquid Crystal Displays | |
| |
| |
LCD Fundamentals | |
| |
| |
Simple LCD Interface with the MC14543 | |
| |
| |
Scanned LCD Interface with the MC145000, MC145001 | |
| |
| |
Parallel Port LCD Interface with the HD44780 Controller | |
| |
| |
Transistors Used for Computer-Controlled Current Switches | |
| |
| |
Computer-Controlled Relays, Solenoids, and DC Motors | |
| |
| |
Introduction to Relays | |
| |
| |
Electromagnetic Relay Basics | |
| |
| |
Reed Relays | |
| |
| |
Solenoids | |
| |
| |
Pulse-Width Modulated DC Motors | |
| |
| |
Interfacing EM Relays, Solenoids, and DC Motors | |
| |
| |
Solid-State Relays | |
| |
| |
Stepper Motors | |
| |
| |
Stepper Motor Example | |
| |
| |
Basic Operation | |
| |
| |
Stepper Motor Hardware Interface | |
| |
| |
Stepper Motor Shaft Encoder | |
| |
| |
Glossary | |
| |
| |
Exercises | |
| |
| |
Memory Interfacing | |
| |
| |
Introduction | |
| |
| |
Address Decoding | |
| |
| |
Full-Address Decoding | |
| |
| |
Minimal-Cost Address Decoding | |
| |
| |
Special Cases When Address Decoding | |
| |
| |
Flexible Full-Address Decoder | |
| |
| |
Integrated Address Decoder on the MC68HC812A4 | |
| |
| |
Timing Syntax | |
| |
| |
Available and Required Time Intervals | |
| |
| |
Timing Diagrams | |
| |
| |
General Memory Bus Timing | |
| |
| |
Synchronous Bus Timing | |
| |
| |
Partially Asynchronous Bus Timing | |
| |
| |
Fully Asynchronous Bus Timing | |
| |
| |
External Bus Timing | |
| |
| |
Synchronized Versus Unsynchronized Signals | |
| |
| |
Motorola MC68HC11A8 External Bus Timing | |
| |
| |
Motorola MC68HC812A4 External Bus Timing | |
| |
| |
Motorola MC68HC912B32 External Bus Timing | |
| |
| |
General Approach to Interfacing | |
| |
| |
Interfacing to a 6811 | |
| |
| |
Interfacing to a 6812 in Expanded Narrow Mode | |
| |
| |
Interfacing to a 6812 in Expanded Wide Mode | |
| |
| |
Memory Interface Examples | |
| |
| |
32K PROM Interface | |
| |
| |
8K RAM Interface | |
| |
| |
32K by 16-bit PROM Interface to a MC68HC812A4 | |
| |
| |
8K by 16-bit RAM Interface | |
| |
| |
Extended Address Data Page Interface to the MC68HC812A4 | |
| |
| |
Extended Address Program Page Interface to the MC68HC812A4 | |
| |
| |
Dynamic RAM (DRAM) | |
| |
| |
Glossary | |
| |
| |
Exercises | |
| |
| |
High-Speed I/O Interfacing | |
| |
| |
The Need for Speed | |
| |
| |
High Speed I/O Applications | |
| |
| |
Mass Storage | |
| |
| |
High-Speed Data Acquisition | |
| |
| |
Video Displays | |
| |
| |
High-Speed Signal Generation | |
| |
| |
Network Communications | |
| |
| |
General Approaches to High-Speed Interfaces | |
| |
| |
Hardware FIFO | |
| |
| |
Dual Port Memory | |
| |
| |
Bank-Switched Memory | |
| |
| |
Fundamental Approach to DMA | |
| |
| |
DMA Cycles | |
| |
| |
DMA Initiation | |
| |
| |
Burst Versus Cycle Steal DMA | |
| |
| |
Single-Address Versus Dual-Address DMA | |
| |
| |
DMA Programming | |
| |
| |
MC68HC708XL36 Examples | |
| |
| |
DMA I/O Registers | |
| |
| |
Memory-to-Memory Block Transfer | |
| |
| |
SCI Transmission | |
| |
| |
SPI Reception | |
| |
| |
Simple Waveform Generation | |
| |
| |
Glossary | |
| |
| |
Exercises | |
| |
| |
Analog Interfacing | |
| |
| |
Resistors and Capacitors | |
| |
| |
Resistors | |
| |
| |
Capacitors | |
| |
| |
Operational Amplifiers (Op Amps) | |
| |
| |
Transistor Models | |
| |
| |
Ideal Op Amps | |
| |
| |
Realistic Op Amp Models | |
| |
| |
Types of Op Amps | |
| |
| |
Saturation Properties | |
| |
| |
Simple Rules for Linear Op Amp Circuits | |
| |
| |
Linear Mode Op Amp Circuits | |
| |
| |
Offset Adding Op Amp Circuit | |
| |
| |
High-Gain Op Amp Circuit | |
| |
| |
Current-to-Voltage Circuit | |
| |
| |
Voltage-to-Current Circuit | |
| |
| |
Integrator Circuit | |
| |
| |
Derivative Circuit | |
| |
| |
Voltage Comparators with Hysteresis | |
| |
| |
Analog Filters | |
| |
| |
Simple Active Filter | |
| |
| |
Butterworth Filters | |
| |
| |
Bandpass and Band-Reject Filters | |
| |
| |
Digital-to-Analog Converters | |
| |
| |
DAC Parameters | |
| |
| |
DAC Using a Summing Amplifier | |
| |
| |
Three-Bit DAC with an R-2R Ladder | |
| |
| |
Twelve-Bit DAC with a DAC8043 | |
| |
| |
DAC Selection | |
| |
| |
DAC Waveform Generation | |
| |
| |
Analog-to-Digital Converters | |
| |
| |
DAC Parameters | |
| |
| |
Two-Bit Flash ADC | |
| |
| |
Eight-Bit Ramp ADC | |
| |
| |
Successive Approximation ADC | |
| |
| |
Software Schemes to Implement ADCs | |
| |
| |
Sixteen-Bit Dual Slope ADC | |
| |
| |
Sigma Delta ADC | |
| |
| |
ADC Interface | |
| |
| |
Sample and Hold | |
| |
| |
BiFET Analog Multiplexer | |
| |
| |
ADC System | |
| |
| |
ADC Block Diagram | |
| |
| |
Power and Grounding for the ADC System | |
| |
| |
Input Protection for High-Speed CMOS Analog Inputs | |
| |
| |
Multiple-Access Circular Queue | |
| |
| |
Internal ADCs | |
| |
| |
6805 ADC System | |
| |
| |
6808 ADC System | |
| |
| |
6811 ADC System | |
| |
| |
6812 ADC System | |
| |
| |
ADC Software | |
| |
| |
Glossary | |
| |
| |
Exercises | |
| |
| |
Data Acquisition Systems | |
| |
| |
Introduction | |
| |
| |
Accuracy | |
| |
| |
Resolution | |
| |
| |
Precision | |
| |
| |
Reproducibility or Repeatability | |
| |
| |
Transducers | |
| |
| |
Static Transducer Specifications | |
| |
| |
Dynamic Transducer Specifications | |
| |
| |
Nonlinear Transducers | |
| |
| |
Position Transducers | |
| |
| |
Velocity Measurements | |
| |
| |
Force Transducers | |
| |
| |
Temperature Transducers | |
| |
| |
DAS Design | |
| |
| |
Introduction and Definitions | |
| |
| |
Using Nyquist Theory to Determine Sampling Rate | |
| |
| |
How Many Bits Does One Need for the ADC? | |
| |
| |
Specifications for the Analog Signal Processing | |
| |
| |
How Fast Must the ADC Be? | |
| |
| |
Specifications for the S/H | |
| |
| |
Analysis of Noise | |
| |
| |
Thermal Noise | |
| |
| |
Shot Noise | |
| |
| |
l/f or Pink Noise | |
| |
| |
Transducer Limitations | |
| |
| |
Magnetic Field Induction | |
| |
| |
Displacement Currents or Capacitive (Electrical Field) Coupling | |
| |
| |
Impedance Loading | |
| |
| |
CMRR | |
| |
| |
Frequency Response | |
| |
| |
Motion Artifact | |
| |
| |
DAS Case Studies | |
| |
| |
Temperature Measurement System | |
| |
| |
Force Measurement System | |
| |
| |
Thermocouple Interface Using an Electronic Reference | |
| |
| |
Heart Sounds | |
| |
| |
Position Measurement System | |
| |
| |
Glossary | |
| |
| |
Exercises | |
| |
| |
Microcomputer-Based Control Systems | |
| |
| |
Introduction to Digital Control Systems | |
| |
| |
Open-Loop Control Systems | |
| |
| |
Open-Loop Control of a Toaster | |
| |
| |
Open-Loop Traffic Control | |
| |
| |
Open-Loop Stepper Controller | |
| |
| |
Simple Closed-Loop Control Systems | |
| |
| |
Bang-Bang Temperature Control | |
| |
| |
Closed-Loop Position Control System Using Incremental Control | |
| |
| |
PID Controllers | |
| |
| |
General Approach to a PID Controller | |
| |
| |
Velocity PID Controller | |
| |
| |
Integral Controller with a PWM Actuator | |
| |
| |
Empirical Method to Determine PID Controller Parameters | |
| |
| |
Fuzzy Logic Control | |
| |
| |
DAC, ADC Fuzzy Controller | |
| |
| |
PWM Fuzzy Controller | |
| |
| |
Temperature Controller Using Fuzzy Logic | |
| |
| |
Glossary | |
| |
| |
Exercises | |
| |
| |
Simple Networks | |
| |
| |
Introduction | |
| |
| |
Serial Master/Slave Desktop Bus | |
| |
| |
Parallel Bus Application Using Tristate Buffers | |
| |
| |
Parallel Bus Application Using Open Collector Logic | |
| |
| |
Binary Synchronous Communications | |
| |
| |
IEEE488 General-Purpose Instrumentation Bus | |
| |
| |
Small Computer Systems Interface | |
| |
| |
Modem Communications | |
| |
| |
FSK Modem | |
| |
| |
Phase-Encoded Modems | |
| |
| |
Quadrature Amplitude Modems | |
| |
| |
X-10 Protocol | |
| |
| |
Glossary | |
| |
| |
Exercises | |
| |
| |
Digital Filters | |
| |
| |
Basic Principles | |
| |
| |
Simple Digital Filter Examples | |
| |
| |
Impulse Response | |
| |
| |
High-Q 60-Hz Digital Notch Filter | |
| |
| |
Effect of Latency on Digital Filters | |
| |
| |
High-Q Digital High-Pass Filters | |
| |
| |
Low-Q Digital High-Pass Filters | |
| |
| |
Low-Q Digital Low-Pass Filters | |
| |
| |
Digital Low-Pass Filter | |
| |
| |
Direct-Form Implementations | |
| |
| |
Glossary | |
| |
| |
Exercises | |
| |
| |
Index | |