基本信息
书名:数字电子技术实验教程(全国普通高等院校电子信息规划教材)
定价:14.00元
作者:周素茵,章云,李光辉著
出版社:清华大学出版社
出版日期:2014-07-01
ISBN:9787302360971
字数:
页码:
版次:1
装帧:平装
开本:16开
商品重量:0.4kg
编辑推荐
内容提要
本书是《数字电子技术》的配套实验教材,共包括三部分内容: 实验基础知识、基础性实验和综合性实验。实验基础知识主要讲述实验中的操作规范和常见故障的检查方法,数字集成电路中的相关概念、特点及使用时的注意事项等;基础性实验主要针对数字电子技术中常用的组合电路模块和时序电路模块进行逻辑功能的验证及基本应用的设计;综合性实验主要围绕几个具体的应用实例将数字电子技术中的多个知识点有机地融合在一起,以培养学生设计小型数字系统的能力。
目录
部分 实验基础知识
第2部分 基础性实验
实验一 TTL集成门的逻辑功能与参数测试
实验二 TTL集电极开路门和三态门逻辑功能的测试及应用
实验三 组合逻辑电路的分析与设计
实验四 编码器及其应用
实验五 译码器及其应用
实验六 数据选择器及其应用
实验七 触发器及其应用
实验八 计数器及其应用
实验九 移位寄存器及其应用
实验十 555定时器及其应用
第3部分 综合性实验
综合实验一 计数译码显示电路设计
综合实验二 脉冲序列发生器电路
综合实验三 多功能数字钟设计
综合实验四 篮球比赛24秒倒计时及报警电路
综合实验五 汽车尾灯控制电路设计
附录A 部分芯片引脚图
参考文献
作者介绍
文摘
序言
《微控制器嵌入式系统设计:原理、实践与应用》 内容简介 本书是一本系统介绍微控制器嵌入式系统设计原理、实践方法及典型应用的高等院校教材。内容涵盖微控制器硬件架构、指令集、存储器组织、接口技术、中断处理、实时操作系统、外围设备驱动以及典型的嵌入式系统开发流程。旨在帮助读者深入理解嵌入式系统的核心概念,掌握实际的开发技能,并能够独立设计和实现各类嵌入式应用。 第一部分:微控制器基础 第一章:嵌入式系统概述 本章将带领读者走进嵌入式系统这个广阔而迷人的领域。我们将首先阐释嵌入式系统的定义,强调其“嵌入”于其他系统中的特性,以及由此带来的对功耗、成本、体积、实时性、可靠性和安全性的特殊要求。通过对嵌入式系统典型应用场景的广泛介绍,如消费电子(智能手机、家用电器)、工业控制(自动化生产线、机器人)、汽车电子(车载娱乐系统、ADAS)、医疗器械(监护仪、诊断设备)以及通信设备(基站、路由器)等,揭示嵌入式系统在现代社会中无处不在的重要性。 接着,我们将深入探讨嵌入式系统的基本组成,分析其通常包含微控制器(MCU)或微处理器(MPU)作为核心处理器,配合存储器(ROM、RAM)、输入/输出(I/O)接口、定时器、通信接口(UART、SPI、I2C等)以及其他专用外围设备(ADC、DAC、PWM等)。本书将重点关注以微控制器为核心的嵌入式系统设计,并明确指出微控制器在集成度高、功耗低、成本适中等方面的优势,使其成为嵌入式领域的主流选择。 此外,本章还将简要介绍嵌入式系统与通用计算机系统的区别,突出嵌入式系统在专用性、实时性、资源受限性以及硬件软件紧耦合性等方面的独特之处。最后,我们将展望嵌入式技术的发展趋势,如物联网(IoT)、人工智能(AI)在嵌入式领域的应用、低功耗设计、安全设计以及软硬件协同设计等,激发读者对未来嵌入式技术的探索热情。 第二章:微控制器体系结构与指令集 本章将聚焦于微控制器的核心——其内部体系结构。我们将以ARM Cortex-M系列微控制器为例,详细解析其流水线结构、寄存器组织、工作模式(用户模式、特权模式)、堆栈操作以及中断和异常处理机制。深入理解这些底层细节,对于编写高效、可靠的嵌入式软件至关重要。 我们将详细介绍ARM Cortex-M系列微控制器的指令集架构(ISA),包括定长指令、可变长指令、数据处理指令(算术、逻辑、移位)、存储器访问指令(LDR, STR)、分支指令(B, BL)、条件执行指令以及协处理器指令等。我们将重点讲解Thumb指令集,分析其相比于ARM指令集的优势,如代码密度高,尤其适用于资源受限的嵌入式环境。 在此基础上,我们将进一步阐述寻址模式,如立即数寻址、寄存器寻址、寄存器偏移寻址、基址加偏移量寻址等,以及这些寻址模式在访问不同类型数据时的应用。同时,本章还将深入讲解中断和异常处理流程,包括中断向量表、中断优先级、中断控制器(NVIC)的工作原理,以及如何编写中断服务程序(ISR)来响应外部事件。理解中断机制是实现嵌入式系统实时响应的关键。 第三章:存储器组织与访问 本章将深入探讨嵌入式系统中至关重要的存储器组织与访问技术。我们将首先介绍嵌入式系统常用的存储器类型,包括易失性存储器(RAM)和非易失性存储器(ROM)。RAM主要包括静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM),我们将分析它们的结构、读写特性、功耗以及在嵌入式系统中的典型应用场景。 非易失性存储器是存储程序代码和常量数据的关键,我们将重点介绍闪存(Flash Memory)的原理、读写操作(擦除、编程)、寿命以及其在嵌入式系统中作为程序存储器的广泛应用。此外,我们还将简要介绍其他非易失性存储器,如EEPROM(电可擦可编程只读存储器),并分析其与Flash Memory在特性和应用上的差异。 本章将详细解析微控制器内部存储器的组织结构,包括寄存器、SRAM、Flash Memory的地址映射。我们将讲解内存管理单元(MMU)或内存保护单元(MPU)的作用,以及它们如何支持更复杂的存储器管理和保护机制。 在理解存储器结构的基础上,我们将重点讲解微控制器与外部存储器(如SDRAM、NOR/NAND Flash)的接口技术。我们将分析各种存储器接口的时序,以及如何通过GPIO(通用输入输出)或专用的存储器接口控制器来连接和访问外部存储器。还将探讨内存映射I/O(Memory-Mapped I/O)和端口I/O(Port I/O)这两种不同的I/O设备访问方式,并分析它们在微控制器系统中的应用。 第四章:微控制器接口技术 本章将全面介绍微控制器与外部世界进行信息交互的关键——接口技术。我们将重点讲解几种最常用的串行通信接口:UART(通用异步收发传输器)、SPI(串行外设接口)和I2C(集成电路总线)。 对于UART,我们将详细解析其工作原理,包括发送器、接收器、波特率、数据位、停止位、校验位等参数的设置,以及如何在嵌入式系统中实现简单的点对点通信,例如与PC机、GPS模块等进行数据交换。 SPI接口作为一种全双工、同步串行通信方式,将重点讲解其主从设备结构、时钟极性(CPOL)和相位(CPHA)的设置,以及如何通过SPI接口连接如EEPROM、SD卡、传感器等外围设备。 I2C总线作为一种多主多从的总线,我们将深入分析其通信协议,包括起始条件、停止条件、地址仲বলে(ACK/NACK)机制,以及如何通过I2C总线连接多个传感器、显示器等设备,实现灵活的总线通信。 除了串行接口,我们还将介绍并行通信接口,如GPIO(通用输入输出)。我们将讲解GPIO的配置(输入/输出、上拉/下拉)、输出模式(推挽、开漏)以及如何通过GPIO控制LED、读取按钮状态等基本操作。 此外,本章还将涉及其他重要的接口技术,如ADC(模数转换器)和DAC(数模转换器),分析它们的采样率、分辨率以及在采集模拟信号和输出模拟信号方面的应用。同时,还将简要介绍PWM(脉冲宽度调制)技术,及其在电机控制、LED亮度调节等方面的应用。 第二部分:嵌入式软件开发 第五章:中断与异常处理 本章将深入剖析微控制器系统中至关重要的一环——中断与异常处理。我们将首先明确中断(Interrupt)和异常(Exception)的概念,以及它们与正常程序执行流程的区别。我们将详细阐述中断产生的时机,包括外部硬件中断(如按钮按下、传感器数据就绪)、内部定时器中断、通信接口中断等,以及异常的产生,如非法指令、访存越界等。 我们将重点讲解中断控制器(如ARM Cortex-M中的NVIC)的工作原理。这包括中断向量表的作用,以及CPU如何通过中断向量表跳转到相应的中断服务程序(ISR)。我们将深入分析中断优先级机制,理解高优先级中断如何抢占低优先级中断,以及中断嵌套的实现。 本章将指导读者如何编写高效、安全的中断服务程序。我们将讲解在ISR中应遵循的原则,如尽量缩短ISR执行时间、避免执行耗时操作、注意共享资源的访问同步问题等。我们将演示如何通过设置中断触发条件、使能中断、清除中断标志位等来管理中断。 此外,我们还将探讨异常处理机制,包括未定义指令异常、SVC(Supervisor Call)异常等。理解异常处理对于系统的稳定性和健壮性至关重要,例如如何通过异常处理来捕获和报告程序错误。 第六章:实时操作系统(RTOS)基础 本章将为读者引入嵌入式系统开发中的一个重要概念——实时操作系统(RTOS)。我们将首先解释RTOS的定义及其在嵌入式系统中的必要性,尤其是在需要多任务并发执行、严格时间约束的应用场景下。我们将对比RTOS与普通操作系统的区别,强调RTOS的实时性、确定性、资源占用率低等特性。 我们将详细介绍RTOS的核心概念,包括任务(Task)或线程(Thread)、任务状态(就绪、运行、阻塞、挂起)、任务调度算法(如优先级调度、时间片轮转调度)、任务间通信机制(如信号量、互斥锁、消息队列、事件标志)以及中断处理与RTOS的结合。 本章将选取一款经典的嵌入式RTOS(例如FreeRTOS)作为示例,对其关键API进行介绍和讲解。我们将演示如何创建、删除任务,如何进行任务的同步与通信,以及如何使用定时器和事件等RTOS提供的功能。我们将通过具体的代码示例,帮助读者理解如何在RTOS环境下进行嵌入式软件的设计与开发。 第七章:外围设备驱动程序设计 本章将聚焦于嵌入式系统开发中不可或缺的一部分——外围设备驱动程序的设计。我们将以常见的微控制器外围设备为例,讲解驱动程序的开发流程和关键技术。 我们将首先以LED作为最简单的输出设备为例,讲解如何编写控制LED点亮、熄灭、闪烁的驱动程序。接着,以按键作为输入设备,讲解如何编写读取按键状态(按下、释放)、实现消抖的驱动程序。 然后,我们将深入讲解如何为串行通信接口(UART、SPI、I2C)编写驱动程序。这包括如何配置接口参数、发送和接收数据、处理发送/接收缓冲区、以及如何实现阻塞式或非阻塞式的通信方式。 对于ADC和DAC,我们将讲解如何配置ADC的采样通道、采样速率,读取ADC转换结果;以及如何配置DAC的输出值,生成模拟信号。 此外,本章还将介绍如何为更复杂的外围设备编写驱动,例如LCD显示屏、传感器(温度、湿度、光照等)。我们将强调驱动程序的可移植性、模块化设计,以及如何通过抽象层来隐藏硬件细节,提高代码的复用性。 第八章:嵌入式系统开发流程与工具链 本章将为读者梳理完整的嵌入式系统开发流程,并介绍常用的开发工具链。我们将从需求分析、系统设计、硬件选型、软件开发、集成测试到产品发布,详细讲解每个阶段的关键任务和注意事项。 我们将介绍交叉编译(Cross-compilation)的概念,以及嵌入式开发中为何需要交叉编译。我们将重点介绍嵌入式开发常用的工具链,包括交叉编译器(如GCC for ARM)、汇编器、链接器、调试器(如GDB)以及目标板调试工具(如JTAG、SWD仿真器)。 本章将详细讲解集成开发环境(IDE)的使用,例如Keil MDK、IAR Embedded Workbench、STM32CubeIDE等。我们将演示如何在一个典型的IDE中创建项目、编写代码、进行编译、链接、下载到目标板,以及如何使用调试器进行代码调试,包括设置断点、单步执行、查看变量值、内存内容等。 我们还将介绍版本控制系统(如Git)在嵌入式项目中的应用,以及代码管理的重要性。此外,还将简要介绍固件更新(Firmware Update)的几种常见方式。 第三部分:嵌入式系统应用 第九章:数据采集与处理系统设计 本章将带领读者设计一个典型的数据采集与处理系统。我们将以温度、湿度传感器为例,讲解如何利用微控制器的ADC接口和串行通信接口(如UART或I2C)来采集传感器数据。 我们将详细讲解数据采集的周期性触发、中断式采集等方式。在数据采集完成后,我们将探讨如何对采集到的数据进行预处理,例如滤波(移动平均滤波、中值滤波)、校准、单位转换等,以提高数据的准确性和可用性。 接着,我们将介绍如何将处理后的数据存储到本地存储器(如Flash)或通过通信接口发送到上位机进行进一步分析。我们还将讨论如何设计一个简单的数据显示界面(例如通过LCD屏幕)来实时显示采集到的数据。 本章将结合实际的硬件平台和传感器,提供完整的硬件连接图和软件代码示例,帮助读者动手实践,理解数据采集与处理系统的设计思路。 第十章:电机控制系统设计 本章将深入探讨嵌入式系统中常见的应用——电机控制。我们将以直流电机和步进电机为例,讲解不同的控制方法和实现技术。 对于直流电机,我们将重点讲解PWM(脉冲宽度调制)技术在调速方面的应用,以及如何通过PWM信号控制电机转速。我们还将介绍H桥电路,以及如何利用H桥实现直流电机的正反转控制。 对于步进电机,我们将介绍其工作原理,包括定子线圈的励磁顺序,以及如何通过微控制器输出一系列的脉冲信号来驱动步进电机按照预设方向和步数转动。我们将讨论全步、半步、微步等不同的驱动模式,并分析它们的优缺点。 本章还将介绍如何结合编码器反馈,实现电机的闭环控制,例如PID(比例-积分-微分)控制算法,以达到更精确的转速或位置控制。我们将提供相应的电路设计和嵌入式程序实现。 第十一章:通信协议与网络应用 本章将聚焦于嵌入式系统中的通信协议和网络应用。我们将从基础的通信协议讲起,逐步过渡到更复杂的网络应用。 我们将再次回顾UART、SPI、I2C等串口通信协议,并讲解它们在不同场景下的应用,例如通过UART连接GPS模块获取位置信息,通过SPI连接SD卡存储数据,通过I2C连接各种传感器。 接着,我们将介绍常见的有线和无线通信网络协议。对于有线网络,我们将简要介绍以太网接口(Ethernet)及其TCP/IP协议栈在嵌入式设备中的应用,例如连接工业控制网络或作为IoT设备接入互联网。 对于无线通信,我们将重点介绍Wi-Fi和蓝牙(Bluetooth)在嵌入式系统中的应用。我们将讲解如何配置Wi-Fi模块实现设备联网,以及如何利用蓝牙进行短距离的设备间通信或与手机进行数据交换。 此外,本章还将介绍一些新兴的物联网通信协议,如MQTT(Message Queuing Telemetry Transport),并探讨其在构建低功耗、高效率的物联网应用中的优势。我们将提供相关的实例,帮助读者理解如何将嵌入式设备接入网络,实现远程监控和控制。 第十二章:嵌入式系统项目实战 本章将通过一个综合性的项目实战,引导读者将前面章节所学的知识融会贯通。我们将选择一个具有代表性的嵌入式应用场景,例如一个智能家居控制终端。 该项目将涵盖从需求分析到最终实现的完整过程。我们将规划系统功能,包括控制灯光、监测室内环境(温度、湿度、光照)、接收远程指令等。然后,我们将进行硬件选型,例如选择一款合适的微控制器,以及相关的传感器、执行器(继电器)、通信模块(Wi-Fi)。 在软件开发阶段,我们将设计系统的软件架构,包括操作系统的选择(如果需要)、各功能模块的划分、驱动程序的编写、以及应用程序的逻辑实现。我们将重点讲解如何整合各个模块,实现系统的整体功能,例如如何利用RTOS管理多任务,如何通过Wi-Fi模块实现远程控制,如何处理用户输入等。 最后,我们将进行系统的集成测试和调试,确保各个功能模块协同工作正常,并最终完成整个智能家居控制终端的开发。本章的实战项目旨在提供一个完整的学习闭环,让读者在实践中巩固理论知识,提升解决实际问题的能力。 本书通过理论讲解与实践相结合的方式,旨在为读者打下坚实的嵌入式系统设计基础,培养独立解决嵌入式开发问题的能力,为将来在嵌入式领域从事研发、设计、应用等工作做好充分准备。
这本书在视觉传达和可读性方面也做得相当出色,这一点对于长时间面对电路图和波形图的学习者来说,非常重要。它的插图清晰度非常高,无论是逻辑符号、引脚定义图还是实验接线图,都使用了高质量的矢量图形,放大后依然锐利无比,这在排查接线错误时简直是神助攻。更值得称赞的是,它在不同知识点之间的过渡非常自然流畅,就像一条条精心铺设的轨道,将你平稳地从一个概念带到下一个更深层次的概念。例如,在讲解了基本的编码器和译码器的实现后,它会很自然地引出如何用这些模块来构建一个简单的地址译码器,这种结构的关联性让人感觉整个数字系统是一个紧密相连的整体,而不是一堆孤立的知识点。很多教材在理论部分和实验部分之间存在明显的“断层”,但这本书在这方面做得非常好,理论推导和实际操作之间的衔接几乎是无缝的,真正做到了理论指导实践,实践反哺理论的良性循环。