总线周期的概念
- 格式:doc
- 大小:99.00 KB
- 文档页数:16
第一章微型计算机概述复习题一、填空题1、微机系统由(硬件系统)和(软件系统)两部分组成。
2、总线按传输的信息种类可分成(数据)、(地址)和(控制)三种。
3、模型机CPU主要由(运算器)、(控制器)和(寄存器)三部分组成。
4、指令格式通常由(操作码)和(操作数)组成。
5、指令的执行分(取指)和(执指)两个阶段。
6、8086有(20 )位地址线,存储器容量为(1M )B。
二、名字解释1、PC :程序计数器2、CACHE:高速缓冲存储器2、FLAGS :标志寄存器3、ALU :算术逻辑运算单元4、ID:指令译码器三、问答题1、微机中各部件的连接采用什么技术?为什么?解答:现代微机中广泛采用总线将各大部件连接起来。
有两个优点:一是各部件可通过总线交换信息,相互之间不必直接连线,减少了传输线的根数,从而提高了微机的可靠性;二是在扩展计算机功能时,只须把要扩展的部件接到总线上即可,十分方便。
2、微机系统的总线结构分哪三种?解答:单总线、双总线、双重总线3、微机系统的主要性能指标(四种)?解答:字长、主频、内存容量、指令系统4、模型机有哪些寄存器,以及作用?解答:通用寄存器组:可由用户灵活支配,用来存放参与运算的数据或地址信息。
地址寄存器:专门用来存放地址信息的寄存器。
程序计数器:它的作用是指明下一条指令在存储器中的地址。
指令寄存器:用来存放当前正在执行的指令代码指令译码器:用来对指令代码进行分析、译码,根据指令译码的结果,输出相应的控制信号5、请举例8、16、准16、32、准32位CPU芯片型号。
解答:8085:8位;8086:16位;8088准16位;80386DX:32位;80386SX:准32位第二章典型微处理器一、填空题1、8086CPU 内部组成结构从功能上讲,可分为__BIU_____和___EU______两部分。
2、8086/8088的四个段寄存器为___DS_____、___ES_____、___SS____、__CS_______3、用来存放CPU状态信息的寄存器是_____FLAGS______。
1.时钟周期:(晶振频率倒数、控制计算机节奏)时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12us),是计算机中最基本的、最小的时间单位。
在一个时钟周期内,CPU仅完成一个最基本的动作。
对于某种单片机,若采用了1MHZ 的时钟频率,则时钟周期为1us;若采用4MHZ的时钟频率,则时钟周期为250us。
由于时钟脉冲是计算机的基本工作脉冲,它控制着计算机的工作节奏(使计算机的每一步都统一到它的步调上来)。
显然,对同一种机型的计算机,时钟频率越高,计算机的工作速度就越快。
8051单片机把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。
2.机器周期:(指令中单个阶段的执行周期)在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。
例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。
完成一个基本操作所需要的时间称为机器周期。
一般情况下,一个机器周期由若干个S周期(状态周期)组成。
8051系列单片机的一个机器周期由6个S周期(状态周期)组成。
前面已说过一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示),8051单片机的机器周期由6个状态周期组成,也就是说一个机器周期=6个状态周期=12个时钟周期。
(例如外接24M晶振的单片机,他的一个机器周期=12/24M秒)3.指令周期:执行一条指令所需要的时间,一般由若干个机器周期组成。
指令不同,所需的机器周期也不同。
对于一些简单的的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。
对于一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。
通常含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令。
习题解答:1、8086CPU从功能上看可分为哪两大部分?它们的主要作用是什么?答:8086CPU功能结构可分为两大部分,即总线接口单元BIU(BUS INTERFASE UNIT)和执行单元EU(Execution Unit)构成。
BIU负责与存储器和外设传递数据,具体地说,BIU从内存指定部分取出指令,送到指令队列排队;在执行指令时所需的操作数也是由BIU从内存的指定区域取出传送到EU去执行或者把EU的执行结果传送到指定的内存单元或外设中。
EU 负责指令的执行,它从指令队列中取出指令,译码并执行,完成指令所规定的操作后将指令执行的结果提供给BIU。
2、8086CPU中有哪些通用寄存器?各有什么用途?答:8086/8088CPU的通用寄存器包括4个数据寄存器AX、BX、CX、DX,2个地址指针寄存器SP和BP,2个变址寄存器SI和DI。
通用寄存器都能用来存放运算操作数和运算结果,这是它们的通用功能,除此之外在不同的场合它们还有各自的专门用途。
(1)数据寄存器数据寄存器包括4个寄存器AX、BX、CX、DX,用于暂时保存运算数据和运算结果,由于每个16位数据寄存器可分为2个8位数据寄存器,这4个数据寄存器既可以保存16位数据,也可保存8位数据。
AX(accumulator)称为累加器,常用于存放算术逻辑运算的操作数,所有输入输出指令也都通过AX与外设进行信息传输。
BX(base)称为基址寄存器,常用于存放访问内存时的基地址。
CX(count)称为计数器,在循环和串操作指令中用来存放计数值。
DX(data)称为数据寄存器,在双字长(32位)乘除运算中将DX与AX两个寄存器组合成一个双字长的数据,其中DX存放高16位数据,AX存放低16位数据,另外在间接寻址的输入输出指令中把要访问的输入输出端口地址存放在DX中。
(2)指针寄存器指针寄存器包括堆栈指针寄存器SP(stack pointer)和基址指针寄存器BP(base pointer)。
微型计算机原理及应⽤知识点总结第⼀章计算机基础知识⼀、微机系统的基本组成1.微型计算机系统由硬件和软件两个部分组成。
(1)硬件:①冯●诺依曼计算机体系结构的五个组成部分:运算器,控制器,存储器,输⼊设备,输⼊设备。
其特点是以运算器为中⼼。
②现代主流的微机是由冯●诺依曼型改进的,以存储器为中⼼。
③冯●诺依曼计算机基本特点:核⼼思想:存储程序;基本部件:五⼤部件;信息存储⽅式:⼆进制;命令⽅式:操作码(功能)+地址码(地址),统称机器指令;⼯作⽅式:按地址顺序⾃动执⾏指令。
(2)软件:系统软件:操作系统、数据库、编译软件应⽤软件:⽂字处理、信息管理(MIS)、控制软件⼆、微型计算机的系统结构⼤部分微机系统总线可分为3类:数据总线DB(Data Bus),地址总线AB(Address Bus),控制总线CB(Control Bus)。
总线特点:连接或扩展⾮常灵活,有更⼤的灵活性和更好的可扩展性。
三、⼯作过程微机的⼯作过程就是程序的执⾏过程,即不断地从存储器中取出指令,然后执⾏指令的过程。
★例:让计算机实现以下任务:计算计算7+10=?程序:mov al,7Add al,10hlt指令的机器码:10110000(OP)0000011100000100(OP)0000101011110100(OP)基本概念:1.微处理器、微型计算机、微型计算机系统2.常⽤的名词术语和⼆进制编码(1)位、字节、字及字长(2)数字编码(3)字符编码(4)汉字编码3.指令、程序和指令系统习题:1.1,1.2,1.3,1.4,1.5第⼆章8086/8088微处理器⼀、8086/8088微处理器8086微处理器的内部结构:从功能上讲,由两个独⽴逻辑单元组成,即执⾏单元EU和总线接⼝单元BIU。
执⾏单元EU包括:4个通⽤寄存器(AX,BX,CX,DX,每个都是16位,⼜可拆位,拆成2个8位)、4个16位指针与变址寄存器(BP,SP,SI,DI)、16位标志寄存器FLAG(6个状态标志和3个控制标志)、16位算术逻辑单元(ALU)、数据暂存寄存器;EU功能:从BIU取指令并执⾏指令;计算偏移量。
第一章1.辨析三个概念:微处理器、微型计算机、微型计算机系统微处理器:简称μP或MP(Microprocessor)是指由一片或几片大规模集成电路组成的具有运算器和控制器功能的中央处理器部件,又称为微处理机。
微型计算机: 简称μC或MC,是指以微处理器为核心,配上存储器、输入/输出接口电路及系统总线所组成的计算机(又称主机或微电脑)。
微型计算机系统(主机+外设+软件配置)(Microcomputer system) 简称μCS或MCS,是指以微型计算机为中心, 以相应的外围设备、电源和辅助电路(统称硬件)以及指挥微型计算机工作的系统软件所构成的系统。
2.微机系统结构(三种总线结构):数据总线,地址总线,控制总线第三章内部结构,由两部分组成:总线接口单元BIU(Bus Interface Unit); 执行单元EU(Execution Unit). (1).总线接口单元BIU组成:4个16位的段寄存器(CS、DS、ES、SS);1个16位的指令指针寄存器IP;1个20位的地址加法器;1个指令队列(长度为6个字节);I/O控制电路(总线控制逻辑);]内部暂存器。
BIU的功能:根据EU的请求负责CPU与内存或I/O端口传送指令或数据。
①BIU从内存取指令送到指令队列②当EU执行指令时,BIU要配合EU从指定的内存单元或I/O端口中读取数据,或者把EU的操作结果送到指定的内存单元或I/O端口去。
(2)执行单元EU(Execution Unit)组成:①ALU(算术逻辑单元);②通用寄存器组AX,BX,CX,DX(4个数据寄存器)'BP(基址指针寄存器)SP(堆栈指针寄存器)SI(源变址寄存器)DI(目的变址寄存器)③数据暂存寄存器④标志寄存器FR⑤EU控制电路~作用:负责执行指令,执行的指令从BIU的指令队列中取得;运算结果和所需数据,则由EU向BIU发出请求,经总线访问内存或I/O端口进行存取。
指令周期、时钟周期、总线周期概念辨析在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。
例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。
完成一个基本操作所需要的时间称为机器周期。
一般情况下,一个机器周期由若干个S周期(状态周期)组成。
通常用内存中读取一个指令字的最短时间来规定CPU周期,(也就是计算机通过内部或外部总线进行一次信息传输从而完成一个或几个微操作所需要的时间)),它一般由12个时钟周期组成。
而时钟周期=1秒/晶振频率,因此单片机的机器周期=12秒/晶振频率 .指令周期(Instruction Cycle):取出并执行一条指令的时间。
总线周期(BUS Cycle):也就是一个访存储器或I/O端口操作所用的时间。
时钟周期(Clock Cycle):又称节拍周期,是处理操作的最基本单位。
(晶振频率的倒数,也称T状态)指令周期、总线周期和时钟周期之间的关系:一个指令周期由若干个总线周期组成,而一个总线周期时间又包含有若干个时钟周期。
指令周期CPU每取出一条指令并执行这条指令,都要完成一系列的操作,这一系列操作所需要的时间通常叫做一个指令周期。
换言之指令周期是取出一条指令并执行这条指令的时间。
由于各条指令的操作功能不同,因此各种指令的指令周期是不尽相同的。
例如一条加法指令的指令周期同一条乘法指令的指令周期是不相同的。
指令周期常常用若干个CPU周期数来表示,CPU周期也称机器周期。
指令不同,所需的机器周期数也不同。
对于一些简单的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。
对于一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。
通常含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令。
总线周期1.微处理器是在时钟信号CLK控制下按节拍工作的。
8086/8088系统的时钟频率为4.77MHz,每个时钟周期约为200ns。
总线的基本概念总线和总线上信息传输的特点:总线是连接多个部件的信息传输线,是各个部件共享的传输介质,而且在某一个时刻,只允许一个部件,想总线发送消息,但是多个部件,可以同时从总线上接受相同的消息。
总线的传输周期:一次总线操作所需的时间,简称总线周期,有四个阶段:申请阶段,寻址阶段,传输阶段,结束阶段。
总线宽度:又称总线位宽。
他是总线上,同时鞥够传输的数据位数。
通常是指数据总线的根数。
总线带宽:单位时间内,可以传输数据的位数。
通常用每秒传输的字节数衡量。
总线的特性:电气特性,机械特性,功能特性,时间特性。
总线标准:国际公布或者推荐的互联各个部件的标准。
把各个部件组合在一起构成计算机系统时所遵循的标准。
总线标准为计算机系统的各个模块提供统一的接口。
该界面对他两端的模块都是透明的,即界面的任何一方,只需根据总线的标准,实现自身一方的接口功能。
而不必考虑对方的接口工鞥界面。
总线的主模块:总线的主设备是指获得总线控制权的设备。
总线的从设备:总线的从设备是指只能被主设备访问的设备。
只能响应从指设备发来的总线命令。
总线的应用很广泛,按照不同的分类,可以有不同的分类方法,按照部件的连接方式,有片内总线:芯片内的总线系统总线:连接CPU,I/O,主存各个部件的信息传输线通信总线:连接计算机信息系统之间,或者计算机与其他系统之间的信息传输线。
为什么要采用多总线结构?单总线结构的计算机将CPU,主存,各种速度不同的外设I/O,都挂载同一个跟总线上,这种结构简单,便于增删设备,但所有的传输,都经过这组共享总线,极易形成计算机系统的瓶颈。
随着计算机应用范围的扩大,对数据传输量和传输速度,要求越来越高,单总线的结构已经不能满足系统工作的需要。
为了解决总线瓶颈的问题,可以采用多总线结构,如果将速度不同的外设挂载在不同速度的外设上总线上,如多媒体卡,高速局域网卡,能图像版,等传输速率很高的设备挂载到PCI总线上,将低速的FAX,MOdel,等挂载到性能较低的ISA,EISA,总线上,使设备的信息分流,从而提高整机的性能。
计算机组成原理(七)——总线BUS总线(BUS)总线(BUS)概念 连接计算机系统各个功能部件的信息传输线。
是各个部件共享数据及信息的传输介质,⽤来连接计算机系统各功能部件⽽构成⼀个完整系统。
实际上是⼀组信号线。
⼴义地讲,任何连接两个以上电⼦元器件的导线都可以称为总线。
计算机各部件之间的两种连接⽅式分散连接 各部件之间使⽤单独的连线连接起来,数量庞⼤,系统难以扩展,结构复杂。
总线连接 将各部件连接到⼀组公共信息传输线上。
总线特点信息传输 总线实际上是由许多传输线或通路组成的,每条线可⼀位⼀位地传输⼆进制代码,⼀串⼆进制代码可在⼀段时间内逐⼀传输完成。
若⼲条传输线可以同时传输若⼲位⼆进制代码。
串⾏:每条线⼀位接⼀位的传输⼆进制代码,⼀串⼆进制代码可在⼀段时间内逐⼀传输完成。
并⾏:若⼲条传输线可以同时传输若⼲位⼆进制代码,如,16条传输线组成的总线可同时传输16位⼆进制代码。
共享 总线是连接多个部件的信息传输线,是各部件共享的传输介质。
分时(总线上信息传输的特征) 在某⼀时刻,只允许有⼀个部件向总线发送信息,⽽多个部件可以同时从总线上接收相同的信息。
总线由总线控制器管理,总线控制器的主要功能有总线系统的资源管理、总线系统的定时及总线的仲裁和连接。
系统总线结构简单举例单总线结构 单总线结构将 CPU、主存、I/O 设备(通过 I/O 接⼝)都挂到⼀组总线上,允许 I/O 设备之间、I/O 设备与主存之间直接交换信息。
单总线结构的优缺点优点:结构简单,允许 I/O 设备之间或 I/O 设备与主存之间直接交换信息,I/O设备与主存交换信息时,原则上不影响CPU的⼯作,只须 CPU分配总线使⽤权,不需要 CPU ⼲预信息的交换,CPU⼯作效率有所提⾼。
缺点:由于全部系统部件都连接在⼀组总线上,各部件都要同时占⽤时,会发⽣冲突,总线的负载很重,可能使其吞吐量达到饱和甚⾄不能胜任的程度,所以需要设置总线判优逻辑,按照优先级⾼低来占⽤总线,影响整机⼯作速度。
《微型计算机及其接口技术》是计算机应用专业(专科)非常重要的一门专业课,也是难度较大的一门课。
考生不但要熟悉计算机硬件的功能特点,还要熟练的编制、调试软件,对考生的综合能力要求比较高。
本课程的先修课程为:1.模拟电路与数字电路2.计算机组成原理3.汇编语言程序设计《微型计算机及其接口技术》复习大纲是我根据教科书内容反复整理与总结的,剔除了教材上的冗余,精简了基本理论。
若考生在读懂、读通教科书的基础上,能全部掌握此大纲的内容(一定要全部掌握,本大纲已经很精简了),那么通过考试会很有把握的。
另外,希望考生准备一本南京大学出版的《微型计算机及其接口技术应试指导》在手边,以便查阅。
《微型计算机及其接口技术》复习大纲第1章微型计算机概论微处理器——由运算器、控制器、寄存器阵列组成微型计算机——以微处理器为基础,配以内存以及输入输出接口电路和相应的辅助电路而构成的裸机微型计算机系统——由微型计算机配以相应的外围设备及其它软件而构成的系统单片机——又称为“微控制器”和“嵌入式计算机”,是单片微型计算机单板机——属于计算机系统总线——是CPU、内存、I/O接口之间相互交换信息的公共通路,由数据总线(双向)、地址总线和控制总线组成微机系统中的三种总线:1.片总线,元件级总线2.内总线(I-BUS),系统总线3.外总线(E-BUS),通信总线第2章80X86处理器8086CPU两个独立的功能部件:1.执行部件(EU),由通用计算器、运算器和EU控制系统等组成,EU从BIU的指令队列获得指令并执行2.总线接口部件(BIU),由段寄存器、指令指针、地址形成逻辑、总线控制逻辑和指令队列等组成,负责从内存中取指令和取操作数8086CPU的两种工作方式:1.最小方式,MN/MX接+5V(MX为低电平),用于构成小型单处理机系统支持系统工作的器件:(1)时钟发生器,8284A(2)总线锁存器,74LS373(3)总线收发器,74LS245控制信号由CPU提供2.最大方式,MN/MX接地(MX为低电平),用于构成多处理机和协处理机系统支持系统工作的器件:(1)时钟发生器,8284A(2)总线锁存器,74LS373(3)总线收发器,74LS245(4)总线控制芯片,8288控制信号由8288提供指令周期、总线周期、时钟周期的概念及其相互关系:1.执行一条指令所需要的时间称为指令周期2.一个CPU同外部设备和内存储器之间进行信息交换过程所需要的时间称为总线周期3.时钟脉冲的重复周期称为时钟周期4.一个指令周期由若干个总线周期组成,一个总线周期又由若干个时钟周期组成5. 8086CPU的总线周期至少由4个时钟周期组成6.总线周期完成一次数据传输包括:传送地址,传送数据等待周期——在等待周期期间,总线上的状态一直保持不变空闲周期——总线上无数据传输操作MMX——多媒体扩展SEC——单边接口,PENTIUM2的封装技术SSE——数据流单指令多数据扩展,PENTIUM3的指令集乱序执行——不完全按程序规定的指令顺序执行(PENTIUM PRO)推测执行——遇到转移指令时,不等结果出来便先推测可能往哪里转移以便提前执行(PENTIUM PRO)8086CPU逻辑地址与物理地址的关系:1. CPU与存储器交换信息,使用20位物理地址2.程序中所涉及的都是16位逻辑地址3.物理地址==段基值* 16 +偏移地址4. 20条地址线== 1M,(00000H ~ FFFFFH);16条数据线== 64K,(0000H ~ FFFFH)5.段起始地址必须能被16整除8086的结构,各引脚功能,全部要掌握(教科书P14 ~ P18)复位(RESET)时CPU内寄存器状态:1. PSW(FR)、IP、DS、SS、ES清零2. CS置FFFFH3.指令队列变空8086CPU外部总线16位,8088CPU外部总线8位80286CPU:1. 16位CPU2.两种工作方式:(1)实地址方式,使用20条地址线,兼容8086全部功能(2)保护虚地址方式,使用24条地址线,有16M的寻址能力80386CPU:1. 32位CPU2.数据线32位3.地址线32位,直接寻址4GB4.内部寄存器32位5.三种存储器地址空间:逻辑地址,线性地址,物理地址6.三种工作方式:实方式,保护方式,虚拟8086方式80486CPU:1.采用RISC2.集成FPU和CACHE第3章存储器及其接口半导体存储器分类:1.随机存取存储器,RAM(1)静态RAM,SRAM (HM6116,2K * 8)(2)动态RAM,DRAM,需要刷新电路(2164,64K * 1)2.只读存储器,ROM(1) PROM,可编程ROM,一次性写入ROM(2) EPROM,可擦除可编程ROM (INTEL2732A,4K * 8)(3) EEPROM,电可擦除可编程ROM半导体存储器的性能指标:1.存储容量2.存取速度(用两个时间参数表示:存取时间,存取周期)3.可靠性4.性能/价格比内存条及其特点:内存条是一个以小型板卡形式出现的存储器产品,它的特点是:安装容易,便于用户进行更换,也便于扩充内存容量HM6116、2164、INTEL2732A的外特性INTEL2732A的6种工作方式:1.读2.输出禁止3.待用4.编程5.编程禁止6. INTEL标识符实现片选控制的三种方法:1.全译码2.部分译码(可能会产生地址重叠)3.线选法地址重叠——多个地址指向同一存储单元存储器芯片同CPU连接时应注意的问题:1. CPU总线的负载能力问题2. CPU的时序同存储器芯片的存取速度的配合问题16位微机系统中,内存储器芯片的奇偶分体:1. 1M字节分成两个512K字节(偶存储体,奇存储体)2.偶存储体同低8位数据总线(D7 ~ D0)相连接,奇存储体同高8位数据总线(D15 ~ D8)相连接3. CPU的地址总线A19 ~ A1同两个存储体中的地址线A18 ~ A0相连接,CPU地址总线的最低位A0和BHE(低电平)用来选择存储体4.要访问的16位字的低8位字节存放在偶存储体中,称为对准字,访存只需要一个总线周期;要访问的16位字的低8位字节存放在奇存储体中,称为未对准字,访存需要两个总线周期5. 8088CPU数据总线是8位,若进行字操作,则需要两个总线周期,第一个周期访问低位,第二个周期访问高位存储器的字位扩展,考试必考(教科书P71习题2、习题6)74LS138的综合应用必须熟练掌握,考试必考:(教科书P55 ~ P58;P71 ~ P72习题7、习题8;P231第五。
硬件基础名词解释流水线技术:将功能部件分离、执行时间重叠的一种技术,它可以在增加尽可能少的硬件设备情况下有效地提高CPU性能。
超流水线技术:把流水段进一步细分,使各段的功能部件在每个时钟周期内被使用多次,这样,在一个时钟周期内多条指令流入流水线,即在一个基本时钟周期内分时发射多条指令。
超标量:超标量处理器是指在处理器中安排多个指令执行部件,多条指令可以被同时启动和独立执行。
多核技术:在一个处理器封装中包含多个处理器核心。
超长指令字: VLIW中编译器经过优化策略,将多条能并行执行的指令合并成一条具有多个操作码的超长指令。
微程序:完成指定任务的微指令序列称为微程序。
微程序存储器:存放计算机指令系统所对应的所有微程序的一个专门存储器。
通道程序:通道控制器和I/O处理器可以独立地执行一系列的I/O操作,I/O操作序列被称为I/O通道程序。
指令系统:一台计算机能执行的机器指令全体称为该机的指令系统。
堆栈:堆栈是一种按特定顺序访问的存储区;其特点是后进先出(LIFO)或先进后出(FILO)。
输入输出系统:通常把I/O设备及其接口线路、控制部件、通道或I/O处理器以及I/O软件统称为输入输出系统。
接口:接口是CPU与“外部世界”的连接电路,负责“中转”各种信息。
中断:由于内部/外部事件或由程序的预先安排引起CPU暂停现行程序,转而处理随机到来的事件,待处理完后再回到被暂停的程序继续执行,这个过程就是中断。
中断系统:是计算机实现中断功能的软、硬件的总称。
中断向量:把中断服务程序的首址PC和初始PSW称为中断向量。
数据通路:数据在功能部件之间传送的路径称为数据通路。
寻址方式:指定当前指令的操作数地址以及下条指令地址的方法称为寻址方式。
有效地址:数据实际存在的存储器地址。
波特率:单位时间内传送的二进制数据的位数,以位/秒(b/s)表示,也称为数据位率。
它是衡量串行通信速率的重要指标。
指令助记符:为了便于书写和阅读程序,每条指令通常用3个或4个英文缩写字母来表示。
习题一1.1微型计算机系统主要由哪些部分组成?参考答案:微型计算机系统由硬件和软件两大部分组成。
1.2微型计算机中的CPU由哪些部件组成?各部件的功能是什么?参考答案:微型计算机中的CPU由运算器、控制器、寄存器组等部件组成。
其中运算器也称算术逻辑单元(ALU),主要用来完成对数据的运算(包括算术运算和逻辑运算);控制器是控制部件,它能自动、逐条地从内存储器中取指令,将指令翻译成控制信号,并按时间顺序和节拍发往其它部件,指挥各部件有条不紊地协同工作。
微机的数据输入/输出、打印、运算处理等一切操作都必须在控制器的控制下才能进行。
寄存器组是微处理器内部的一组暂时存储单元,主要起到数据准备、调度和缓冲的作用,寄存器的访问速度要比存储器快得多。
1.3微型计算机硬件结构由哪些部分组成?各部分的主要功能是什么?参考答案:微型计算机的硬件结构主要由微处理器、内存储器、输入/输出接口电路、输入/输出设备及系统总线组成。
其中微处理器是微型计算机的核心部件,其主要功能是负责统一协调、管理和控制系统中的各个部件有机地工作;内存储器的主要功能是用来存储微机工作过程中需要操作的数据、程序,运算的中间结果和最后结果,具有存数和取数的功能;输入/输出(I/O)接口电路的功能是完成主机与外部设备之间的信息交换;I/O设备是用户与微机进行通信联系的主要装置,其中输入设备是把程序、数据、命令转换成微机所能识别接收的信息,然后输入给微机;输出设备是把CPU计算和处理的结果转换成人们易于理解和阅读的形式,然后输出到外部。
微机的系统总线实现将CPU、存储器和外部设备进行连接,共有数据总线、地址总线和控制总线三种,其中数据总线主要用来实现在CPU与内存储器或I/O接口之间传送数据;地址总线是由CPU输出用来指定其要访问的存储单元或输入/输出接口的地址的;控制总线;控制总线用于传送控制信号、时序信号和状态信息,实现CPU的工作与外部电路的工作同步。
总线周期的名词解释是什么总线周期,又称总线时钟周期,是指计算机系统中各个设备进行数据传输和通信所需要的时间间隔。
在计算机系统中,总线相当于一条电子通路,用于连接各个设备,让它们能够相互传递数据和指令。
不同设备之间的数据传输需要通过总线进行,而总线周期则是用来衡量这个传输过程的时间。
总线周期的长度是由计算机系统的时钟频率决定的。
时钟频率通常以赫兹(Hz)作为单位,表示每秒钟发生的时钟脉冲的次数。
比如,如果计算机系统的时钟频率为1 GHz(即10^9 Hz),那么每秒钟会有10亿个时钟脉冲产生。
总线周期则是时钟周期的倒数,可以用来衡量一个总线操作所需要的时间。
在计算机系统中,各个设备之间的通信需要进行诸如读取、写入、传输等操作。
这些操作会涉及到数据的传输和处理,而总线周期则是用来计算这些传输和处理所需时间的基本单位。
在每个总线周期内,数据会以特定的方式在总线上传输,设备之间要进行的操作会按照时序进行。
当一个总线周期结束后,下一个总线周期即开始,设备之间的下一个操作也会相继执行。
总线周期可以进一步细分为读周期和写周期。
读周期即设备从总线上读取数据的时间段,写周期则是设备向总线上写入数据的时间段。
读周期和写周期的长度取决于设备的特性和总线的带宽。
通常情况下,读周期比写周期短,因为读取数据的操作要比写入数据的操作简单。
在一个总线周期内,可能会有多个设备进行读操作,但一次只能有一个设备进行写操作,以避免数据冲突和干扰。
总线周期对于计算机系统的性能和效率有着重要的影响。
如果总线周期过长,会导致设备之间的数据传输速度变慢,影响计算机系统的响应速度和运行效率。
相反,如果总线周期过短,设备之间的数据传输可能会出现错误和冲突,导致系统不稳定。
因此,合理设置总线周期是计算机系统设计中需要考虑的关键因素之一。
总线周期的名词解释就是上述所述,它是计算机系统中用来衡量设备之间数据传输所需要的时间间隔。
它是由计算机系统的时钟频率决定的,用来标记一个总线操作的开始和结束。
DMA总线周期的概念1.微处理器是在时钟信号CLK控制下按节拍工作的。
8086/8088系统的时钟频率为4.77MHz,每个时钟周期约为200ns。
2.由于存贮器和I/O端口是挂接在总线上的,CPU对存贮器和I/O 接口的访问,是通过总线实现的。
通常把CPU通过总线对微处理器外部(存贮器或I/O接口)进行一次访问所需时间称为一个总线周期。
一个总线周期一般包含4个时钟周期,这4个时钟周期分别称4个状态即T1状态、T2状态、T3状态和T4状态。
1.DMA的通道选择不是随便的,要根据映像来。
2.外设地址的自增,可能会曾到下一个外设,比如:0X40012400为ADC1的起始地址0X40012800就是ADC2的起始地址了所以在设置此元素是否要递增时要注意了。
STM32 DMA使用详解DMA部分我用到的相对简单,当然,可能这是新东西,我暂时还用不到它的复杂功能吧。
下面用问答的形式表达我的思路。
DMA有什么用?直接存储器存取用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。
无须CPU的干预,通过DMA数据可以快速地移动。
这就节省了CPU的资源来做其他操作。
有多少个DMA资源?有两个DMA控制器,DMA1有7个通道,DMA2有5个通道。
数据从什么地方送到什么地方?外设到SRAM(I2C/UART等获取数据并送入SRAM);SRAM的两个区域之间;外设到外设(ADC读取数据后送到TIM1控制其产生不同的PWM占空比);SRAM到外设(SRAM中预先保存的数据送入DAC产生各种波形);……还有一些目前还搞不清楚的。
DMA可以传递多少数据?传统的DMA的概念是用于大批量数据的传输,但是我理解,在STM32中,它的概念被扩展了,也许更多的时候快速是其应用的重点。
数据可以从1~65535个。
直接存储器存取(Direct Memory Access,DMA)是计算机科学中的一种内存访问技术。
它允许某些电脑内部的硬体子系统(电脑外设),可以独立地直接读写系统存储器,而不需绕道 CPU。
在同等程度的CPU负担下,DMA是一种快速的数据传送方式。
它允许不同速度的硬件装置来沟通,而不需要依于 CPU的大量中断请求。
【摘自Wikipedia】现在越来越多的单片机采用DMA技术,提供外设和存储器之间或者存储器之间的高速数据传输。
当 CPU 初始化这个传输动作,传输动作本身是由DMA 控制器来实行和完成。
STM32就有一个DMA控制器,它有7个通道,每个通道专门用来管理一个或多个外设对存储器访问的请求,还有一个仲裁器来协调各个DMA请求的优先权。
DMA 控制器和Cortex-M3核共享系统数据总线执行直接存储器数据传输。
当CPU和DMA同时访问相同的目标(RAM或外设)时,DMA请求可能会停止 CPU访问系统总线达若干个周期,总线仲裁器执行循环调度,以保证CPU至少可以得到一半的系统总线(存储器或外设)带宽。
在发生一个事件后,外设发送一个请求信号到DMA控制器。
DMA控制器根据通道的优先权处理请求。
当DMA控制器开始访问外设的时候,DMA控制器立即发送给外设一个应答信号。
当从DMA控制器得到应答信号时,外设立即释放它的请求。
一旦外设释放了这个请求,DMA控制器同时撤销应答信号。
如果发生更多的请求时,外设可以启动下次处理。
总之,每个DMA传送由3个操作组成:1. 从外设数据寄存器或者从DMA_CMARx寄存器指定地址的存储器单元执行加载操作。
2. 存数据到外设数据寄存器或者存数据到DMA_CMARx寄存器指定地址的存储器单元。
3. 执行一次DMA_CNDTRx寄存器的递减操作。
该寄存器包含未完成的操作数目。
仲裁器根据通道请求的优先级来启动外设/存储器的访问。
优先级分为两个等级:软件(4个等级:最高、高、中等、低)、硬件(有较低编号的通道比拥有较高编号的通道有较高的优先权)。
可以在DMA传输过半、传输完成和传输错误时产生中断。
STM32中DMA的不同中断(传输完成、半传输、传输完成)通过“线或”方式连接至NVIC,需要在中断例程中进行判断。
进行DMA配置前,不要忘了在RCC设置中使能DMA时钟。
STM32的DMA 控制器挂在AHB总线上。
DMA总共有7个通道,各个通道的DMA映射关系如下:外设的事件连接至相应DMA通道,每个通道均可以通过软件触发实现存储器内部的DMA数据传输(M2M模式)Tips:库2.0中函数RCC_AHBPeriphClockCmd的参数由“RCC_AHBPeriph_DMA”改成“RCC_AHBPeriph_DMA1”(如果是DMA1控制器的话)。
DMA的传输标志位(CHTIFx、CTCIFx、CGIFx)由硬件设置为“1”,但需要软件清零,在中断服务程序中清除。
当CGIFx(全局中断标志位)清零后,CHTIFx 和 CTCIFx均清零。
过程:怎样启用DMA?首先,众所周知的是初始化,任何设备启用前都要对其进行初始化,要对模块初始化,还要先了解该模块相应的结构及其函数,以便正确的设置;由于DMA较为复杂,我就只谈谈DMA 的基本结构和和常用函数,这些都是ST公司提供在库函数中的。
1、下面代码是一个标准DMA设置,当然实际应用中可根据实际情况进行裁减:DMA_DeInit(DMA_Channel1);上面这句是给DMA配置通道,根据ST提供的资料,STM3210Fx中DMA 包含7个通道(CH1~CH7),也就是说可以为外设或memory提供7座“桥梁”(请允许我使用桥梁一词,我觉得更容易理解,哈哈,别“拍砖”呀!);DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR_Address;上面语句中的DMA_InitStructure是一个DMA结构体,在库中有声明了,当然使用时就要先定义了;DMA_PeripheralBaseAddr是该结构体中一个数据成员,给DMA一个起始地址,好比是一个buffer起始地址,数据流程是:外设寄存器à DMA_PeripheralBaseAddàmemory 中变量空间(或flash中数据空间等),ADC1_DR_Address是我定义的一个地址变量;DMA_InitStructure.DMA_MemoryBaseAddr =(u32)ADC_ConvertedValue;上面这句很显然是DMA要连接在Memory中变量的地址,ADC_ConvertedValue是我自己在memory中定义的一个变量;DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;上面的这句是设置DMA的传输方向,就如前面我所说的,DMA可以双向传输,也可以单向传输,这里设置的是单向传输,如果需要双向传输:把DMA_DIR_PeripheralSRC改成DMA_DIR_PeripheralDST即可。
DMA_InitStructure.DMA_BufferSize = 2;上面的这句是设置DMA在传输时缓冲区的长度,前面有定义过了buffer的起始地址:ADC1_DR_Address ,为了安全性和可靠性,一般需要给buffer定义一个储存片区,这个参数的单位有三种类型:Byte、HalfWord、word,我设置的2个 half-word(见下面的设置);32位的MCU中1个half-word占16 bits。
DMA_InitStructure.DMA_PeripheralInc =DMA_PeripheralInc_Disable;上面的这句是设置DMA的外设递增模式,如果DMA选用的通道(CHx)有多个外设连接,需要使用外设递增模式:DMA_PeripheralInc_Enable;我的例子里DMA只与ADC1建立了联系,所以选用DMA_PeripheralInc_DisableDMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;上面的这句是设置DMA的内存递增模式,DMA访问多个内存参数时,需要使用DMA_MemoryInc_Enable,当DMA只访问一个内存参数时,可设置成:DMA_MemoryInc_Disable。
DMA_InitStructure.DMA_PeripheralDataSize =DMA_PeripheralDataSize_HalfWord;上面的这句是设置DMA在访问时每次操作的数据长度。
有三种数据长度类型,前面已经讲过了,这里不在叙述。
DMA_InitStructure.DMA_MemoryDataSize =DMA_MemoryDataSize_HalfWord;与上面雷同。
在此不再说明。
DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;上面的这句是设置DMA的传输模式:连续不断的循环模式,若只想访问一次后就不要访问了(或按指令操作来反问,也就是想要它访问的时候就访问,不要它访问的时候就停止),可以设置成通用模式:DMA_Mode_NormalDMA_InitStructure.DMA_Priority = DMA_Priority_High;上面的这句是设置DMA的优先级别:可以分为4级:VeryHigh,High,Medium,Low.DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;上面的这句是设置DMA的2个memory中的变量互相访问的DMA_Init(DMA_Channel1,&DMA_InitStructure);前面那些都是对DMA结构体成员的设置,在次再统一对DMA整个模块做一次初始化,使得DMA各成员与上面的参数一致。
/*DMA Enable*/DMA_Cmd(DMA_Channel1,ENABLE);哈哈哈!这一句我想我就不罗嗦了,大家一看就明白。
至此,整个DMA总算设置好了,但是,DMA通道又是怎样与外设联系在一起的呢?哈哈,这也是我当初最想知道的一个事情,别急!容我想喝口茶~~~~~~哈哈哈!要使DMA与外设建立有效连接,这不是DMA自身的事情,是各个外设的事情,每个外设都有一个xxx_DMACmd(XXXx,Enable )函数,如果使DMA与ADC建立有效联系,就使用ADC_DMACmd(ADC1,Enable); (这里我启用了ADC中的ADC1模块)。
一个简单的例子 transfer a word data buffer from FLASH memory to embedded SRAM memory.在V3.1.2库的位置STM32F10x_StdPeriph_Lib_V3.1.2\Project\STM32F10x_StdPeriph_ Examples\DMA\FLASH_RAM/* DMA1 channel6 configuration */DMA_DeInit(DMA1_Channel6);//peripheral base addressDMA_InitStructure.DMA_PeripheralBaseAddr =(uint32_t)SRC_Const_Buffer;//memory base addressDMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)DST_Buffer; //数据传输方向 Peripheral issourceDMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;//缓冲区大小 Number of data to be transferred (0 up to 65535).数据传输数目DMA_InitStructure.DMA_BufferSize = BufferSize;// the Peripheral address register isincrementedDMA_InitStructure.DMA_PeripheralInc =DMA_PeripheralInc_Enable;//the memory address register is incrementedDMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;//the Peripheral data widthDMA_InitStructure.DMA_PeripheralDataSize =DMA_PeripheralDataSize_Word;DMA_InitStructure.DMA_MemoryDataSize =DMA_MemoryDataSize_Word;DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;DMA_InitStructure.DMA_Priority = DMA_Priority_High;//the DMAy Channelx will be used in memory-to-memory transfer //DMA通道的操作可以在没有外设请求的情况下进行,这种操作就是存储器到存储器模式。