嵌入式接口复习资料
Posted Icy Hunter
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入式接口复习资料相关的知识,希望对你有一定的参考价值。
文章目录
- 前言
- 题目
- 什么是冯诺依曼体系结构和哈佛体系结构?各有什么特点?
- 什么是CISC和RISC?他们相比较有什么区别?
- 微型计算机系统的组成是什么?硬件部分主要由哪几部分组成?
- 微型计算机有哪些总线?总线结构有哪些优点和缺点?
- 简述微型计算机的工作过程。
- CPU内部主要包括哪些功能部件?
- 什么是标志寄存器,它包含哪些位?这些位地含义是什么?
- 当两个无符号数比较大小时,如何利用标志位判断大于、等于、小于等于和大于等于关系?
- 当两个有符号数比较大小时,如何利用标志位判断大于、等于、小于等于和大于等于关系?
- CM3内核中有哪些总线相关部件,它们有什么作用?
- 连接寄存器R14是如何实现程序地跳转和返回地?
- STM32主系统由哪些单元构成?
- 什么是堆栈?有什么作用?CM3采用了哪些形式地堆栈?
- 微处理器与外设传送数据时为什么需要I/O接口?
- CPU同外设交换的信息有哪些类型?什么是接口和端口?他们之间的关系如何?
- I/O端口编址方式有哪两种?各有什么优缺点?
- CPU与外设之间传送数据有哪几种方式?各有什么特点?
- 简述查询输入传送方式的实现过程。
- 通常情况下输入接口和输出接口在硬件上需要什么逻辑电路?
- 什么是上拉电阻和下拉电阻?在什么情况下需要上拉电阻和下拉电阻?
- 推挽输出有什么特点,使用的时候需要注意什么?
- STM32的GPIO有哪几种工作方式,分别用于什么场合?
- STM32的GPIO相关寄存器有哪些?各有什么作用?
- 什么是中断?中断有什么作用?
- 中断的工作机制是什么?中断请求与中断服务的关系是什么?中断系统在其中起到什么作用?
- 什么是外部中断?什么是内部异常?二者有何不同?为什么许多时候又不区分它们?
- 一个外部中断请求会在哪些地方被挂起记录?中断挂起寄存器中的有效位是如何被清除的?
- 如何表示优先级的高低?为什么STM32中的一些中断的优先级位负数?![在这里插入图片描述](https://image.cha138.com/20220624/7662f5db8ce94a0983c750060a5b0c9b.jpg)
- 中断优先级的作用是什么?为何要划分抢占优先级和子优先级?
- 选用NVIC_PriorityGroup_0优先级分组有什么用途?选用NVIC_PriorityGroup_4呢?
- 什么是中断服务程序?它与普通的子程序有什么区别?
- 什么是中断向量?什么是中断向量表?有哪两种类型的中断向量表?
- 编写中断服务程序需要注意些什么?
- 中断处理过程中为什么需要保护断点和保护现场?STM32再这方面有何特别?
- 定(延)时有哪些基本方法?各有什么用途?
- 什么是影子寄存器?它有何作用?查阅STM32参考手册,说明通用定时器有哪些影子寄存器?哪些库函数可以使能或关闭预加载控制?
- STM32的通用定时器由哪三部分组成?它们各自有什么功能?
- 什么是更新事件?STM32通用定时器有哪些更新事件?各有什么用途?
- 输入捕获有什么作用?STM32是如何实现输入捕获的?
- 什么是连续转换?什么是扫描模式?
- 结语
前言
刚考完,想着万一以后还要看看呢?记录一下吧
题目
什么是冯诺依曼体系结构和哈佛体系结构?各有什么特点?
冯诺依曼结构具体由以下特点:
(1) 计算机处理的数据和指令一律用二进制数表示,并且存储在同一个地方。
(2) 计算机顺序执行程序,即把要执行的程序和处理的数据首先存入主存储器,执行程序时,自动地并按顺序从主存储器中取出一条一条地执行。
(3) 计算机硬件由运算器、控制器、存储器、输入设备和输出设备五大部分组成。
哈佛结构是一种并行体系结构,它地主要特点是将程序和数据存储在不同地存储空间中,即程序存储器和数据存储器是两个独立地存储器,每个存储器独立编址、独立访问。与两个存储器相对应地是系统地4条总线:程序的数据总线与地址总线。数据的数据总线与地址总线。
哈佛结构与冯诺依曼结构处理器相比,由两个明显的特点:一是使用两个独立地存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存;二是使用独立地两条总线,分别作为CPU与每个存储器之间的专用通信路径,而这两条总线之间毫无关联。
什么是CISC和RISC?他们相比较有什么区别?
CISC是指复杂指令系统计算机;RISC是指精简指令系统计算机。自计算机诞生以来,CISC指令集方式一直被使用,X86体系结构就是使用CISC技术。CISC基本上是一个功能就对应一条指令,它的特点是指令系统庞大,指令功能复杂,指令格式、寻址方式多;绝大多数指令需多个机器周期完成;各种指令都可访问存储器;采用微程序控制;专用寄存器少。
RISC技术的基本思想是尽量简化计算机指令功能,只保留那些功能简单、能在一个节拍内执行完成地指令,而把较复杂地功能用一段子程序来实现。RISC技术地精华就是通过简化计算机指令功能,使指令的平均执行周期减少,从而提高计算机的工作主频,同时大量使用通用寄存器来提高子程序的执行效率。
区别:
(1) CISC计算机的指令系统比较丰富,有专用指令来完成特定的功能,因此,处理特殊任务效率较高。RISC机器实现特殊功能的效率可能较低,这是因为对不常用的功能,是通过组合指令来完成的,但这一不足可以利用流水技术和超标量技术加以改进和弥补。
(2) RISC对存储器操作有限制,使控制简单化;而CISC机器的存储器操作指令多,操作直接。
(3) RISC汇编语言程序一般需要较大的内存空间,实现特色功能时程序复杂;而CISC汇编语言程序相对简单,科学计算以及复杂操作的程序设计相对容易,效率较高。
(4) RISC机器在一条指令执行的适当地方可以响应中断;而CISC机器是在一条指令执行结束后响应中断。
(5) RISC的CPU包含较少的单元电路,面积小,功耗低;而CISC的CPU包含丰富的单元电路,功能强、面积大、功耗大。
(6) RISC微处理器结构简单,指令规整;CISC微处理器结构复杂,功能强大,易于实现特殊功能。
RISC和CISC技术都是试图在体系结构、操作运转、软件硬件、编译时间和运行时间等诸多因素做出某种平衡,单独偏向某一方面都不是最佳的选择,因此随着技术的不断进步,微处理器的功能越来越强大,RISC和CISC技术也在相互取长补短,以提高微处理器的总和性能。
微型计算机系统的组成是什么?硬件部分主要由哪几部分组成?
微型计算机系统由硬件系统和软件系统两部分组成。硬件系统构成微型计算机的物理设备,软件系统则是在硬件系统中运行的各类程序。
微型计算机的硬件主要由微处理器(CPU)、主存储器、输入/输出接口以及设备等电路组成,它们以微处理器为核心,通过地址总线、数据总线和控制总线三总线连接起来。
微型计算机有哪些总线?总线结构有哪些优点和缺点?
总线是微型计算器各个部件连接的纽带,是各个功能部件之间进行信息交互的公共通道。各个功能部件连在总线上都必须通过三态门,当功能部件需要与CPU交换信息时,相应的三态门打开;不交换信息时则相应的三态门处于高阻状态。
总线按照所处位置不同分为内部总线和外部总线。内部总线也称为系统总线,按照传输信息不同分为地址总线、数据总线和控制总线。外部总线位于计算机之间或者计算机与其他智能设备之间的信息传输线路,以串行总线为主,主要有RS-232C、RS422/485、USB等。
微型计算机从诞生以来一直采用总线结构,总线结构使整个系统的结构非常清晰,简化了系统结构和硬件设计,便于采用模块化结构设计方法。在同一个总线标准下,系统的扩充性好,同时便于故障诊断和维修。
采用总线结构的缺点是利用总线传送具有分时性。当有多个主机同时申请总线的使用时必须进行总线的仲裁,以确定谁具有总线的使用权。
简述微型计算机的工作过程。
微型计算机必须在硬件和软件的密切配合下才能工作。在工作之前,必须将程序代码存放在主存储器内,每一条指令都有唯一的操作码,它代表操作的性质。绝大多数指令还有操作数,它是操作对象,有的操作数位于CPU内部,有的操作数位于CPU内部,有的操作数位于存储单元中,甚至还有操作数位于外部设备中。计算机的工作过程就是按照程序安排指令顺序和逻辑一条一条地执行,具体步骤如下:
(1) 程序地起始地址存放在程序指针PC中,将PC中的地址信息发到地址总线上,经过地址译码器找到相应地存储单元,将指令代码取出,并将取出地指令代码送到指令寄存器。
(2) 将指令代码送到指令译码器ID进行指令译码,得到各种控制信号,指挥CPU各部协调工作。
(3) 算术逻辑单元ALU对操作数进行运算,并存放运算结果,更新标志寄存器FR内容。
(4) 程序指针PC的值自动加1,指向下一个存储单元,开始取新的指令代码。
综上所述,微型计算机地工作过程就是取指令、译码指令、执行指令几个步骤不断重复地过程。
CPU内部主要包括哪些功能部件?
中央处理器(CPU),它是采用大规模集成电路技术制成的半导体芯片,内部集成了计算机的主要部件——控制器、运算器和寄存器,还有一些增强的功能部件,如MPU,Cache等。
什么是标志寄存器,它包含哪些位?这些位地含义是什么?
标志寄存器(FR);也称程序状态字(PSW)寄存器,用来保存最近一次ALU操作结果的特征标志,后续指令通过测试这些特征标志,判断程序是否转移。这些特征标志被称为标志位,各标志位的意义与具体的CPU有关。通常有以下几种标志位:
(1) 符号标志位(SF),表示运算结果是否为负数。
(2) 零标志位ZF,表示运算结果是否为零。
(3) 辅助进位标志位AF,也称为半进位标志位,表示运算时第三位与第四位之间是否有进位或借位
(4) 奇偶标志位PF,表示运算结果中1的数量是奇数还是偶数。
(5) 进/借位标志位CF,表示运算是否产生了进位或借位。
(6) 溢出标志位OF,表示有符号运算结果是否超出范围,产生溢出。
当两个无符号数比较大小时,如何利用标志位判断大于、等于、小于等于和大于等于关系?
A-B然后看进/借位标志位CF标志,有借位(CF=1)则B大,再看零标志位ZF标志,如果ZF=1则说明结果为0,说明A=B。
当两个有符号数比较大小时,如何利用标志位判断大于、等于、小于等于和大于等于关系?
A-B看符号标志位SF,如果SF=1说明结果为负数,那么说明B大,再看零标志位ZF,如果ZF=1说明结果为0,说明A=B。
CM3内核中有哪些总线相关部件,它们有什么作用?
ICode总线:该总线将CM3内核指令总线和闪存指令接口相连,完成指令的预取。
DCode总线:该总线将CM3内核的DCode总线与闪存存储器的数据接口相接,完成常量加载和调试访问。
系统总线:该总线连接CM3内核的系统总线到总线矩阵,总线矩阵协调内核和DMA间访问。
连接寄存器R14是如何实现程序地跳转和返回地?
R14是连接寄存器(LR)。当调用一个子程序时,由R14存储返回地址。与大多数其他处理器不同的是,ARM为了减少访问内存的次数(访问内存的操作往往需要3个代码以上指令周期),把返回地址直接存储在寄存器中。这样足以使很多只有1级子程序调用的代码,在返回时无需访问堆栈内存,从而提高了子程序调用的效率。如果多余1级,则需要把前一级的R14值压入堆栈。在ARM上编程时,应尽量只使用寄存器保存中间结果,迫不得已时才访问内存。
当调用一个子程序指令执行时,返回地址被自动装入LR;子程序返回时,借助LR,即可返回到主程序中调用指令的下一条指令。
STM32主系统由哪些单元构成?
STM32主系统由四个驱动单元和四个被动单元构成。四个驱动单元是:内核DCode总线、系统总线、通用DMA1、通用DMA2。四个被动单元是:AHB到APB的桥,连接所有的APB设备,内部Flash闪存,内部SRAM(静态随机存取存储器),FSMC(可变静态存储控制器)。
什么是堆栈?有什么作用?CM3采用了哪些形式地堆栈?
堆栈是一种存储器的使用模型,它由一块连续的内存和一个栈顶指针SP组成,用于实现LIFO的缓冲区。其最典型的应用,就是在数据处理前先保存寄存器的值,再在处理任务完成后从中恢复先前保存的这些值。它有压栈和出栈两种操作。
R13是堆栈指针寄存器SP,CM3支持内存中设置2个堆栈,分别称为主堆栈和进程堆栈,相应地CM3核中R13包含2个堆栈指针寄存器,分别为主堆栈指针MSP和进程堆栈指针PSP。
在没有OS环境下,用户程序一般使用主堆栈。在带有OS的环境中,OS使用主堆栈,用户程序使用进程堆栈。
微处理器与外设传送数据时为什么需要I/O接口?
I/O接口是指CPU与外部设备之间的连接通道及其相关的控制电路。I/O接口是连接CPU与外设的桥梁和纽带,他在CPU与外部设备交换信息中起着非常重要的作用。
I/O接口电路的作用:
(1) 为数据提供锁存和缓冲功能:在计算机系统中,CPU的运行速度很高,而外设的速度往往很低,即使是快速的外部设备,其工作速度也远远不及CPU的工作速度,一般而言,CPU的工作速度是外设的几十倍乃至几千倍。计算机是通过数据总线输入或输出信息的,不允许任何外设长时间占用总线,I/O接口为数据提供输出锁存和输入缓冲功能,在CPU不操作外设时,I/O接口电路实现CPU与外设的隔离,解决速度匹配问题。
(2) 实现信号变换功能:计算机内部的信号都是并行的、数字的,采用TTL电平标准,而外设有串行的、模拟的,信号电平也千差万别,要实现这种不同信号的连接,必须通过I/O接口电路进行转换。实现并行信号与串行信号之间的转换需要移位寄存器,通信接口电路具有这种功能。实现模/数和数/模信号输入/输出需要A/D和D/A转换接口电路。实现各种电平的开关量信号的输入/输出需要进行电平转换,如TTL电平不能直接去驱动24V的直流继电器。
(3) 提供外设控制、监制和管理功能:I/O接口电路接受来自CPU的控制信号,实现对外设的控制和管理。外设的工作状态也可以通过I/O接口送回CPU,确保操作同步。为实现CPU与外设并行工作,专用的I/O接口可以挂历来自外设的中断请求,以中断方式进行输入/输出,大大提高CPU的利用率。
CPU同外设交换的信息有哪些类型?什么是接口和端口?他们之间的关系如何?
CPU同外设交换的信息有数据信息、状态信息和控制信息三种。
I/O接口通常是指连接CPU与外设的集成芯片,不同的外设需要不同的I/O接口。一个I/O接口芯片往往有若干个I/O端口,根据CPU与外设之间传输信息类型不同可以分为数据、状态、控制三种I/O端口,需要说明的是,不是每个I/O接口都具有三种类型的端口,也不是同一种类型端口的数量只有一个,要根据实际需要确定。
I/O端口编址方式有哪两种?各有什么优缺点?
CPU与外设之间传送数据有哪几种方式?各有什么特点?
CPU与外设之间的数据传送方式一般分为4种:无条件传送、查询传送方式、中断传送方式和DMA传送方式。可将无条件传送和查询传送方式合称为程序控制传送方式。
简述查询输入传送方式的实现过程。
通常情况下输入接口和输出接口在硬件上需要什么逻辑电路?
在外部扩展并行I/O接口电路时,通常用缓冲器扩展输入接口电路,用锁存器扩展输出接口电路。上拉/下拉电阻输入;OC/OD输出电路;推挽输出电路
什么是上拉电阻和下拉电阻?在什么情况下需要上拉电阻和下拉电阻?
推挽输出有什么特点,使用的时候需要注意什么?
STM32的GPIO有哪几种工作方式,分别用于什么场合?
输入浮空模式:适用负载驱动能力强(允许大灌电流、大拉电流)的外部输入设备。例如,两态输出的按键设备。
输入上拉模式:适用于(1)拉电流承受能力弱的外部输入设备(2)仅能产生低电平信号的按键(闭合输出低电平,断开输出高阻)
输入下拉模式:适用于:(1)承受灌电流能力弱的外部设备.(2)仅能产生高电平信号的按键(闭合输出高电平,断开输出高阻)
模拟模式:适用于模拟信号输入(作为片内ADC接口的信号输入)。例如:模拟温度传感器、模拟压力传感器、模拟风速传感器、话筒、模拟摄像头等
开漏输出模式:适用于:
(1)外部输出设备需要大于接口电源电压的情况
例如芯片接口电源VCC=3.3V(输出高电平3.3v),而外部设备电机设备电压12V,为此采用开楼输出,通过外接上拉电阻连接到12V外设电源,即可提供12V输出驱动电机。
(2)需要将不同的输出信号相与,在此模式下,多个IO输出信号直接连到一起(外接上拉电阻),实现“线与”功能。省下专用的与门。
开漏复用输出模式:
适用于:复用功能情况下的开漏输出
例如,定时器接口、DAC接口、USART接口,它们无专用外设信号线,需要借助于GPIO接口输出信号,此时应该将GPIO接口设置为复用模式。如果需要线与,或加大输出电压,则设复用置开漏模式
推挽输出模式:
适用于:输出设备功率较大(额定输出功率3.3V20mA,实际可以达到3.3V 50mA),信号变化块的场合
推挽复用输出模式:
适用于:复用功能情况下的推挽输出
例如,定时器接口、DAC接口、USART接口,它们无专用外设信号线,需要借助于GPIO接口输出信号,此时应该将GPIO接口设置为复用模式。如果需要驱动功率大、速度快,则设复用置推挽模式
STM32的GPIO相关寄存器有哪些?各有什么作用?
- GPIOx_CRL :端口配置低寄存器
- GPIOx_CRH:端口配置高寄存器
- GPIOx_IDR:端口输入寄存器
- GPIOx_ODR:端口输出寄存器
- GPIOx_BSRR:端口位设置/清除寄存器
- GPIOx_BRR :端口位清除寄存器
- GPIOx_LCKR:端口配置锁存寄存器
什么是中断?中断有什么作用?
中断的工作机制是什么?中断请求与中断服务的关系是什么?中断系统在其中起到什么作用?
中断系统对众多的中断源进行管理:
1)决定中断源是否有权请求以及有效的请求方式。
2)多个中断源随机产生中断请求,有可能先后产生,也有可能同时产生,而CPU在同一时间只能响应其中一个。这就需要中断系统的优先级管理来协调这种竞争关系。
3)为每个请求找到其相应的服务程序地址。
什么是外部中断?什么是内部异常?二者有何不同?为什么许多时候又不区分它们?
一个外部中断请求会在哪些地方被挂起记录?中断挂起寄存器中的有效位是如何被清除的?
中断请求:中断源通过专用的中断请求信号线(外部中断源)或内部异常请求信号线(内部异常源)向CPU中的中断控制器(如CM3中的NVIC)发出规定的有效信号(如,约定高电平代表有效),表示“中断请求”
中断挂起:如果一个异常源或中断源发出请求后不能立即得到CPU的响应(CPU当前正在响应更高优先级的异常或相关屏蔽寄存器被设置,它将暂时得不到响应),这个状态称为“挂起”(悬而未决)。
EXTI1_PR、EXTI1_SWIER
如何表示优先级的高低?为什么STM32中的一些中断的优先级位负数?
3种系统内部异常(复位,NMI和硬FAULT)拥有固定不变的负数优先级(高于其它所有的异常)。
中断优先级的作用是什么?为何要划分抢占优先级和子优先级?
选用NVIC_PriorityGroup_0优先级分组有什么用途?选用NVIC_PriorityGroup_4呢?
NVIC_PriorityGroup_0选择第0组,抢占优先级0位,子优先级4位,说明抢占优先级只能为0,一直拥有最高的抢占优先级
NVIC_PriorityGroup_4选择第4组,抢占优先级4位,子优先级0位,说明子优先级只能为0,一直拥有最高的子优先级。(可能是这样)
什么是中断服务程序?它与普通的子程序有什么区别?
什么是中断向量?什么是中断向量表?有哪两种类型的中断向量表?
编写中断服务程序需要注意些什么?
编写位置、不宜过长等
中断处理过程中为什么需要保护断点和保护现场?STM32再这方面有何特别?
定(延)时有哪些基本方法?各有什么用途?
1.软件延时:CPU执行一段“空”程序实现延时
优点:不需要添加额外的硬件设备,简单易实现
缺点:占用CPU时间,精度受中断及CPU主频时钟影响
2.硬件延时电路:采用附加的数字电路(如555单稳态芯片)产生特定的延时。
优点:不占用CPU时间
缺点:改变延时时间需要调整电路参数(电阻、电容值),通用性灵活性差,时间精度受电路参数影响,稳定性差。
3.可编程定时器(计数器):
以专用芯片(如Intel8253)或MCU中集成的定时器接口设备(如STM32中的TIM1~8 )来进行定时。
优点:定时器初始化后就独立于CPU工作,不占用CPU时间,时间长短不限,使用灵活精度高。
缺点:增加硬件成本
什么是影子寄存器?它有何作用?查阅STM32参考手册,说明通用定时器有哪些影子寄存器?哪些库函数可以使能或关闭预加载控制?
预分频器PSC、自动重加载寄存器ARR、捕获/比较寄存器1234
举例说明: TIMx_CR1中ARPE位(自动加载使能位)
ARPE =0时:每次软件写入自动更新寄存器ARR新计数初值时,硬件自动将ARR的预加载寄存器的值传送到其影子寄存器(无缓冲直通);
ARPE=1时:只有在下一次更新事件发生时,硬件才将ARR的预加载寄存器的值传送到其影子寄存器。
STM32的通用定时器由哪三部分组成?它们各自有什么功能?
什么是更新事件?STM32通用定时器有哪些更新事件?各有什么用途?
输入捕获有什么作用?STM32是如何实现输入捕获的?
什么是连续转换?什么是扫描模式?
连续转换模式
当前面一次ADC转换结束后,马上启动另一次转换。将ADC_CR2寄存器中的CONT位置可选择连续转换模式,此模式可通过外部触发启动或软件触发启动,一旦启动后,ADC执行转换将转换结果存放ADC_DR寄存器中,如果使能中断则产生中断信号,ADC会继续启动下一次的ADC转换,一直往复循环。
扫描模式
用来扫描一组模拟通道,该模式可通过设置ADC_CR1寄存器中的SCAN位设置,SCAN=0表示关闭扫描模式,ADC_会扫描被ADC_SQRx寄存器或ADC_JSQR寄存器选中的所有通道。在每个组的每个通道执行一次单词转换,在单次转换结束时,同一组的下一个通道会被自动转换。如果选择了单词转换模式CONT=0,则会在该组最后一个通道转换完成后停止,并产生一个结束信号。如果选择了连续转换模式CONT=1,则不会在选择组的最后一个通道上停止,而是再次从选择组中的第一个通道继续转换。
结语
就整理了这些,然后可能里面会有些错误,因为有的是按自己的理解来的,难免会不准确。
本文参考 : 微机原理与嵌入式接口技术 by 刘显荣
以上是关于嵌入式接口复习资料的主要内容,如果未能解决你的问题,请参考以下文章
《安富莱嵌入式周报》第309期:开源脑机接口套件,三相多电平逆变器,开源电位仪,单片机并行计算,蓝牙市场分析报告,AI密码破解,nRF54H2发布,Z-Wave