Schweitzer Fachinformationen
Wenn es um professionelles Wissen geht, ist Schweitzer Fachinformationen wegweisend. Kunden aus Recht und Beratung sowie Unternehmen, öffentliche Verwaltungen und Bibliotheken erhalten komplette Lösungen zum Beschaffen, Verwalten und Nutzen von digitalen und gedruckten Medien.
Preface xiii
1: Introduction to Digital Systems 1
1.1 Explanation of Terms 2
1.2 Design Levels 6
1.3 Combinational and Sequential Circuits 7
1.4 Digital Integrated Circuits 7
1.4.1 Diodes 7
1.4.2 Transistors 8
1.4.3 MOS Transistors 14
1.5 Integrated Circuits (ICs) 18
1.6 CAD (Computer-Aided Design) 19
1.7 Evolution of the Microcontroller 20
1.8 Typical Microcontroller Applications 21
1.8.1 A Simple Microcontroller Application 22
1.8.2 Embedded Controllers 23
2: Number Systems and Codes 25
2.1 Number Systems 25
2.1.1 General Number Representation 25
2.1.2 Converting Numbers from One Base to Another 28
2.2 Unsigned and Signed Binary Numbers 30
2.3 Codes 34
2.3.1 Binary-Coded-Decimal Code (8421 Code) 34
2.3.2 Alphanumeric Codes 35
2.3.3 Excess-3 Code 36
2.3.4 Gray Code 37
2.3.5 Unicode 39
2.4 Fixed-Point and Floating-Point Representations 40
2.5 Arithmetic Operations 41
2.5.1 Binary Arithmetic 41
2.5.2 BCD Arithmetic 51
2.6 Error Correction and Detection 53
Questions and Problems 55
3: Boolean Algebra and Digital Logic Gates 59
3.1 Basic Logic Operations 59
3.1.1 NOT Operation 59
3.1.2 OR operation 60
3.1.3 AND operation 62
3.2 Other Logic Operations 64
3.2.1 NOR operation 64
3.2.2 NAND operation 64
3.2.3 Exclusive-OR operation (XOR) 65
3.2.4 Exclusive-NOR Operation (XNOR) 66
3.3 IEEE Symbols for Logic Gates 67
3.4 Positive and Negative Logic 68
3.5 Boolean Algebra 69
3.5.1 Boolean Identities 70
3.5.2 Simplification Using Boolean Identities 72
3.5.3 Consensus Theorem 74
3.5.4 Complement of a Boolean Function 75
3.6 Standard Representations 76
3.7 Karnaugh Maps 80
3.7.1 Two-Variable K-map 81
3.7.2 Three-Variable K-map 82
3.7.3 Four-Variable K-map 85
3.7.4 Prime Implicants 87
3.7.5 Expressing a Boolean function in Product-of-sums (POS) form using a K-map 89
3.7.6 Don't Care Conditions 91
3.7.7 Five-Variable K-map 95
3.8 Quine-McCluskey Method 96
3.9 Implementation of Digital Circuits with NAND, NOR, and Exclusive-OR/Exclusive-NOR Gates 97
3.9.1 NAND Gate Implementation 98
3.9.2 NOR Gate Implementation 99
3.9.3 XOR / XNOR Implementations 102
Questions and Problems 106
4: Combinational Logic 109
4.1 Basic Concepts 109
4.2 Analysis of a Combinational Logic Circuit 109
4.3 Design of a Combinational Circuit 110
4.4 Multiple-Output Combinational Circuits 112
4.5 Typical Combinational Circuits 114
4.5.1 Comparators 114
4.5.2 Decoders 118
4.5.3 Encoders 122
4.5.4 Multiplexers 127
4.5.5 Demultiplexers 129
4.5.6 Binary / BCD Adders and Binary Subtractors 129
4.6 IEEE Standard Symbols 136
4.7 Read-Only Memories (ROMs) 138
4.8 Programmable Logic Devices (PLDs) 140
4.9 Commercially Available Field Programmable Devices (FPDs) 144
4.10 HARDWARE DESCRIPTION LANGUAGE (HDL) 146
4.11 Verilog basics 148
4.11.1 Verilog keywords 148
4.11.2 A typical Verilog Segment 148
4.11.3 Verilog operators 151
4.11.4 Verilog Constants 152
4.11.5 Modeling logical conditions in a circuit 152
4.11.6 Verilog if-else and case-endcase structures 153
4.11.7 A typical Verilog Simulator 153
4.12 Verilog modeling examples for combinational circuits 155
4.12.1 Structural modeling 155
4.12.2 Dataflow modeling 161
4.12.3 Behavioral modeling 163
Questions and Problems 168
5: Sequential Logic 173
5.1 Basic Concepts 173
5.2 Latches and Flip-Flops 173
5.2.1 SR Latch 174
5.2.2 Gated SR Latch 176
5.2.3 Gated D Latch 176
5.2.4 Edge-Triggered D Flip-Flop 177
5.2.5 JK Flip-Flop 180
5.2.6 T Flip-Flop 181
5.3 Flip-flop timing parameters for edge-triggered flip-flops 181
5.4 Preset and Clear Inputs 182
5.5 Summary of the gated SR latch and the Flip-Flops 182
5.6 Analysis of Synchronous Sequential Circuits 185
5.7 Types of Synchronous Sequential Circuits 188
5.8 Minimization of States 188
5.9 Design of Synchronous Sequential Circuits 190
5.10 Design of Counters 196
5.11 Examples of Synchronous Sequential Circuits 201
5.11.1 Registers 201
5.11.2 Modulo-n Counters 203
5.11.3 Random-Access Memory (RAM) 206
5.12 Algorithmic State Machines (ASM) Chart 207
5.13 Asynchronous Sequential Circuits 214
5.14 Verilog description of typical synchronous sequential circuits 217
Questions and Problems 235
6: CPU, MEMORY, AND I/O 243
6.1 Design of the CPU 243
6.1.1 Register Design 244
6.1.2 Arithmetic Logic Unit (ALU) 244
6.1.3 ALU Design 255
6.1.4 Control Unit Design 257
6.2 Memory Organization 280
6.2.1 Types of Main memory 283
6.2.2 READ and WRITE Timing Diagrams 285
6.2.3 Main Memory Organization 287
6.3 Input/Output (I/O) 290
6.3.1 Simple I/O Devices 292
6.3.2 Programmed I/O 293
6.3.3 Interrupt I/O 295
6.4 CPU design using Verilog 296
Questions and Problems 309
7: Microcontroller Basics 317
7.1 Basic Blocks of a Microcontroller 317
7.1.1 System Bus 318
7.1.2 Clock Signals 319
7.2 Microcontroller Architectures 320
7.3 Basic Concept of Pipelining 321
7.4 RISC vs. CISC 323
7.5 Functional Representation of a Typical RISC Microcontroller-The PIC18F4321 324
7.6 Basics of Programming Languages 324
7.6.1 Machine Language 326
7.6.2 Assembly Language 327
7.6.3 High-Level Language 327
7.7 Choosing a Programming Language 328
7.8 Introduction to C Language 329
7.8.1 Data Types 332
7.8.2 Bit Manipulation Operators 333
7.8.3 Control Structures 334
7.8.4 The switch Construct 338
7.8.5 The while Construct 338
7.8.6 The for Construct 340
7.8.7 The do-while Construct 341
7.8.8 Structures and Unions 341
7.8.9 Functions in C 342
7.8.10 Macros 343
Questions and Problems 344
8: PIC18F Hardware and Interfacing Using C: Part 1 345
8.1 PIC18F Pins and Signals 345
8.1.1 Clock 346
8.1.2 PIC18F Reset 350
8.1.3 A Simplified Setup for the PIC18F4321 350
8.2 PIC18F4321 programmed I/O using C 351
8.2.1 PIC 18F4321 I/O ports 351
8.2.2 Interfacing LEDs (Light Emitting Diodes) and Seven-segment Displays 354
8.2.3 Microchip MPLAB C18 compiler and the PICkit3 interface 355
8.2.4 Configuration commands 356
8.3 PIC18F Interrupts 359
8.3.1 PIC18F Interrupt Types 359
8.3.2 PIC18F External Interrupts in Default Mode 359
8.3.3 Interrupt Registers and Priorities 361
8.3.4 Setting the Triggering Levels of INTn Pin Interrupts 362
8.3.5 Programming the PIC18 interrupts using C 363
Questions and Problems 369
9: PIC18F Hardware and Interfacing Using C: Part 2 373
9.1 PIC18F Timers 373
9.1.1 Timer0 375
9.1.2 Timer1 378
9.1.3 Timer2 382
9.1.4 Timer3 384
9.2 PIC18F Interface to an LCD (Liquid Crystal Display) 390
9.3 Analog Interface 394
9.3.1 On-chip A/D Converter 395
9.3.2 Interfacing an External D/A (Digital-to-Analog) Converter to the PIC18F4321 403
9.4 Serial Interface 405
9.4.1 Synchronous Serial Data Transmission 405
9.4.2 Asynchronous Serial Data Transmission 405
9.4.3 PIC18F Serial I/O 406
9.5 PIC18F4321 Capture/Compare/PWM (CCP) Modules 413
9.5.1 CCP Registers 413
9.5.2 CCP Modules and Associated Timers 413
9.5.3 PIC18F4321 Capture Mode 413
9.5.4 PIC18F4321 Compare Mode 416
9.5.5 PIC18F4321 PWM (Pulse Width Modulation) Mode 417
9.6 DC Motor Control 419
Questions and Problems 425
Appendix A: Answers to Selected Problems 429
Appendix B: Glossary 439
Appendix C: Tutorial For Compiling and Debugging A C-Program Using The MPLAB 451
Appendix D: Interfacing The PIC18F4321 to A Personal Computer or A Laptop Using PICkit(TM) 3 479
D.1 Initial Hardware Setup For The PIC18F4321 479
D.2 Connecting The Personal Computer (Pc) or The Laptop to The PIC18F4321 Via PICkit3 480
D.3 Programming The Pic18f4321 From A Personal Computer or A Laptop Using The PICkit3 482
Bibliography 485
Credits 487
Index 489
Digital systems are designed to store, process, and communicate information in digital form. They are found in a wide range of applications, including process control, communication systems, digital instruments, and consumer products. The digital computer, more commonly called the computer, is an example of a typical digital system.
A computer manipulates information in digital, or more precisely, binary form. A binary number has only two discrete values - zero or one. Each of these discrete values is represented by the OFF and ON status of an electronic switch called a transistor. All computers, therefore, only understand binary numbers. Any decimal number (base 10, with ten digits from 0 to 9) can be represented by a binary number (base 2, with digits 0 and 1).
The basic blocks of a computer are the central processing unit (CPU), the memory, and the input/output (I/O). The CPU of the computer is basically the same as the brain of a human. Computer memory is conceptually similar to human memory. A question asked to a human is analogous to entering a program into the computer using an input device such as the keyboard, and answering the question by the human is similar in concept to outputting the result required by the program to a computer output device such as the printer. The main difference is that human beings can think independently, whereas computers can only answer questions that they are programmed for. Computer hardware refers to components of a computer such as memory, CPU, transistors, nuts and bolts. Programs can perform a specific task such as addition if the computer has an electronic circuit capable of adding two numbers. Programmers cannot change these electronic circuits but can perform tasks on them using instructions.
Computer software, on the other hand, consists of a collection of programs. Programs contain instructions and data for performing a specific task. These programs, written using any programming language such as C, must be translated into binary prior to execution by the computer. This is because the computer only understands binary numbers. Therefore, a translator for converting such a program into binary is necessary. Hence, a translator program called the compiler is used for translating programs written in a programming language such as C into binary. These programs in binary form are then stored in the computer memory for execution because computers only understand 1's and 0's. Furthermore, computers can only add. This means that all operations such as subtraction, multiplication, and division are performed by addition.
Due to advances in semiconductor technology, it is possible to fabricate the CPU in a single chip. The result is the microprocessor. Both metal oxide semiconductor (MOS) and bipolar technologies were used in the fabrication process. The CPU can be placed on a single chip when MOS technology is used. However, several chips are required with the bipolar technology. HCMOS (high speed complementary MOS) or BICMOS (combination of bipolar and HCMOS) technology (to be discussed later in this chapter) is normally used these days to fabricate the microprocessor in a single chip. Along with the microprocessor chip, appropriate memory and I/O chips can be used to design a microcomputer. The pins on each one of these chips can be connected to the proper lines on the system bus, which consists of address, data, and control lines. In the past, some manufacturers have designed a complete microcomputer on a single chip with limited capabilities. Single-chip microcomputers were used in a wide range of industrial and home applications.
"Microcontrollers" evolved from single-chip microcomputers. The micro-controllers are typically used for dedicated applications such as automotive systems, home appliances, and home entertainment systems. Typical microcontrollers, therefore, include a microcomputer, timers, and A/D (analog to digital) and D/A (digital to analog) converters - all in a single chip. Examples of typical microcontrollers are Intel 8751 (8-bit) / 8096 (16-bit) and Motorola/Freescale Hc011 (8-bit) / Hc016 (16-bit), and Microchip Technology PIc018F(8-bit)/PIC32(32-bit).
In this chapter, we first define some basic terms associated with the computers. We then describe briefly the evolution of the computers and the microcontrollers. Finally, a typical practical application, and technological forecasts are included.
Before we go on, it is necessary to understand some basic terms (arranged in alphabetical order).
Dateiformat: ePUBKopierschutz: Adobe-DRM (Digital Rights Management)
Systemvoraussetzungen:
Das Dateiformat ePUB ist sehr gut für Romane und Sachbücher geeignet – also für „fließenden” Text ohne komplexes Layout. Bei E-Readern oder Smartphones passt sich der Zeilen- und Seitenumbruch automatisch den kleinen Displays an. Mit Adobe-DRM wird hier ein „harter” Kopierschutz verwendet. Wenn die notwendigen Voraussetzungen nicht vorliegen, können Sie das E-Book leider nicht öffnen. Daher müssen Sie bereits vor dem Download Ihre Lese-Hardware vorbereiten.Bitte beachten Sie: Wir empfehlen Ihnen unbedingt nach Installation der Lese-Software diese mit Ihrer persönlichen Adobe-ID zu autorisieren!
Weitere Informationen finden Sie in unserer E-Book Hilfe.