微机原理与应用课件_第1页
微机原理与应用课件_第2页
微机原理与应用课件_第3页
微机原理与应用课件_第4页
微机原理与应用课件_第5页
已阅读5页,还剩344页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机原理与应用基础知识(一)主要内容:计算发展、分类和应用形态计算机的组成和运行原理计算机中的数制以及带符号数的表示1电子计算机的发展、分类和应用形态

自1946年世界上第一台电子计算机问世以来计算机的发展已经历了四代:第一代:电子管计算机第二代:晶体管计算机第三代:集成电路计算机第四代:大规模、超大规模集成电路计算机目前,各国正加紧研制和开发第五代“非冯·诺依曼”计算机和第六代“神经”计算机。

电子计算机的发展电子计算机的分类微型、中型、大型个人、服务器、主机微机的应用形态通用型、嵌入式低端与高端应用微机的应用形态GeneralComputer:应用:科学运算、仿真模拟、工程与信息处理、管理、GAME。特点:对PC的硬件要求很少,有多媒体、网络/数据库支持。微机的应用形态EmbeddedComputer:应用:工业过程监测、控制与自动化、机器人、智能仪表、家电控制。特点:嵌入到被控制对象中。要考虑体积、重量、功耗、环境适应性、可靠性、价格、开发周期,维护等诸多方面因素。高端产品支持网络通信的要求功能强。

嵌入式系统定义、由来及特点嵌入式系统的定义

一种计算机硬件和软件的组合,也许还有机械装置,用于实现一个特定功能。在某些特定情况下,嵌入式系统是一个大系统或产品的一部分。嵌入式系统的由来

通用计算机系统:满足海量高速数值计算的计算机。嵌入式计算机系统:嵌入到实际应用系统中,实现嵌入式应用的计算机。嵌入式系统定义、由来及特点嵌入式系统的特点嵌入式系统是计算机系统,但不单独以通用计算机面目出现。嵌入式系统开发需要专用工具和特殊方法。使用MCU设计嵌入式系统,数据与程序空间采用不同存储介质。开发嵌入式系统涉及软件、硬件及应用领域的知识。

嵌入式系统定义、由来及特点

嵌入式系统的知识体系

学习以MCU为核心的嵌入式系统,需要以下软件硬件基础知识与实践训练:(1)硬件最小系统

(2)通用I/O(3)显示(LED、LCD等)(4)输入(KEY)(5)模数转换A/D (6)数模转换D/A(7)通信(SCI、SPI、I2C,CAN、USB、ZigBee等);(8)控制(控制各种设备,包含PWM等控制技术);(9)数据处理(图形、图像、语音、视频等处理或识别);(10)各种具体应用。Moore定律“晶体管的大小将以指数速率变小,而集成到芯片上的晶体管数目将2-3年(18-24个月)翻一番。”

——GordonMoore,1965*GordonMoore

——Intel公司的创始人,著名半导体科学家。冯.诺伊曼计算机体系结构冯•诺伊曼计算机体系结构的要点:计算机中的信息(程序和数据)以二进制方式表示。程序预存储,机器自动执行。计算机由运算器、控制器、存储器、输入设备和输出设备五大部分组成。计算机部件控制与外部世界的联系存储器编址、存储程序和数据CPU冯•诺伊曼计算机基本结构基本功能部件控制逻辑寄存器组…000……00HFFF……FFH101010010•运算器•控制器•输出设备•输入设备总线结构。时钟驱动;中央处理器(CPU)中央处理单元(CentralProcessingUnit,简写为CPU)也称之为‘处理器’,是计算机的核心部件,主要功能是解释并执行计算机指令,完成数据处理和对计算机其他各部分进行控制。CPU主要由运算器、控制器、寄存器组和内部总线等构成。名词解释CPU:计算机的中央处理单元(含运算器、控制器、总线接口部件)MPU:微处理器(MicroprocessorUnit)微型计算机(MicroComputer)以μP为核心的计算机系统微型计算机/微处理器系统的联系与区别主机,外设与电源(强调部件)CPU(μP),存储器,I/O接口与外设(强调逻辑结构)存储器(Memory)存储器(Memory)是计算机系统中用来存储程序和数据的信息记忆部件。在计算机内部,程序和数据都以二进制形式表示,8位二进制代码作为一个字节。为了便于对存储器进行访问,存储器通常被划分为许多单元,每个存储单元存放一个字节的二进制信息,每个存储单元分别赋予一个编号,称为地址。在处理器控制下,可以向地址指定的存储器单元存入数据(也称为写存储器)或从地址指定存储器单元取出数据(也称为读存储器)ROM:只读存储器(程序代码和常数)RAM:随机存储器(程序代码和数据)E7H34HA5HF2H38H……4001H4002H4003H4004H4005H……地址指令或数据内容00111000图内存单元的地址和内容地址为4005H的存储单元中存放了一个八位二进制信息00111000B。输入/输出接口与设备(IODevice)完成信息进出计算机的专用设备称为“输入/输出设备”(简称为外设)。在计算机原理上,‘外设’主要是指这些“输入/输出接口”(简称为接口外设),它不特指某一具体的外设物理装置,更具有逻辑原理普遍性。计算机总线(BUS)联结计算机各部分的公共的信号线。

DB传送信息(程序代码,数据)的一组信号线;AB传送地址(信息存储单元编址)的一组信号线;决定了CPU的寻址范围。

CPU的寻址范围=2n,n-地址线根数CB信息操作所需的一组(控制或状态)信号线;总线的作用范围片内,片外/板内,系统时序配合名词解释(二)I/OInterface:连接外设(输入与输出)BUS:总线(体系结构:字长,容量,控制功能和构成AB,DB,CB)名词解释(三)InstructionSet:指令集CISCRISC

操作系统(管理系统资源,维护和开发应用程序的平台)驱动程序(直接操作外设)应用程序(公共程序)系统程序(存储管理、文件系统、任务运行)用户程序(应用程序)嵌入式系统的程序开发微型计算机的主要技术指标字长——参与运算的数的位数.它决定着计算机的内部寄存器、加法器及数据总线(数据通路)的位数。有4位,8位,16位,32位,64位等。主存容量——主存储器所能存储信息的总量。通常以字节数(Byte)来表示。例:内存128MB。运算速度——有不同的计量方法和测试标准。MIPS(MillionInstructionPerSecond)平均无故障运行时间——

MTBF(MeanTimeBetweenFailures),平均无故障间隔时间(可靠性)性能/价格比计算机系统微处理器系统的总线结构CPU的指令系统指令(Instruction)是关于CPU的最基本的操作命令。高级语言z=x+y必须分解为:从x地址单元中取一数到累加器将y地址单元中的数加到累加器中将累加器内容传送到z地址单元中程序片段如下MOV A,XADD A,YMOV Z,A其中A为累加器,而X,Y,Z各代表一个存储单元的地址。CISC与RISCRISC(ReducedInstructionSetComputer)精简指令计算机系统,这包括两个方面:排除使用频度不高的、或能被其它指令(或指令的组)代替的指令。绝大部分指令的二进制编码是等长的,这有利于简化指令译码和执行。RISC便于实现流水线结构,平均每个时钟执行一条指令。RISC代表一种先进的计算机发展方向。CISC(ComplicatedInstructionSetComputer)

相对而言,传统的计算机因指令系统复杂,成为复杂指令系统计算机(一条指令甚至可以完成许多条指令的工作)计算机的工作过程关于运行原理(细节)CPU的基本寄存器以程序的有限存储为基础指令及指令的微操作程序调用中断程序运行必需的寄存器1累加器ACC(accummulator)数值运算和逻辑运算;很多指令使用累加器;2程序计数器PC(Programcounter)

始终指向下一条指令在存储器中的地址;3指令寄存器IR(InstructionRegistor)CPU从存储器获得的指令代码先置于IR,再译码执行;4程序状态字PSW(Programstateword)执行指令,如数值运算,影响PSW含运算结果的正负,进(借)位,溢出位后续指令根据需要判断,决定程序流程的变化;CPU的寄存器控制用寄存器组PCIRPSWSP——必不可少其余功能寄存器——多多益善工作寄存器组存临时数据,满足算法的需要配合指令实现高级功能地址寄存器组访问存储器的地址指针配合指令实现存储器的读写访问,硬件地址计算(或变换)运行原理(一)指令的微操作堆栈和堆栈指示器堆栈是在存储器中分配的、具有连续地址的一片存储区域。FILO(FirstInLastOut)CPU按堆栈指示器SP访问堆栈中的内容压栈:先调整SP中的地址,在存入新的数据到栈顶位置;弹栈:先从栈顶取数,再反向调整SP地址内容.SP始终指向栈顶位置.运行原理(二)子程序调用与返回2计算机中的数制各种常用记数制、编码以及它们相互间的转换;二进制数的算术运算和逻辑运算;带符号数的表示及补码运算;二进制数运算中的溢出问题。一、常用记数制十进制(Decimal)—符合人们的习惯二进制(Binary)—便于物理实现十六进制(Hexdecimal)—便于识别、书写1).十进制特点:以十为底,逢十进一;

共有0-9十个数字符号。表示:2).二进制特点:以2为底,逢2进位;只有0和1两个符号。表示:3).十六进制特点:以16为底,逢16进位; 有0--9及A--F共16个数字符号。表示:进位计数制的一般表示一般地,对任意一个K进制数S都可表示为其中:Si

----S的第i位数码,可以是K个符号中任何一个;n,m---整数和小数的位数;K---基数;Ki----K进制数的权如何区分不同进位记数制的数字在数字后面加一个字母进行区分:二进制:数字后面加B,如1001B十进制:一般不加,如1001十六进制:数字后面加H,如1001H二、各种数制间的转换1).非十进制数到十进制数的转换

按相应进位计数制的权表达式展开,再按十进制求和。

例:10110010B

=(?)10

13FAH

=(?)102).十进制到非十进制数的转换十进制→二进制的转换: 整数部分:除2取余;小数部分:乘2取整。十进制→十六进制的转换:整数部分:除16取余;小数部分:乘16取整。以小数点为起点求得整数和小数的各个位。3).二进制与十六进制间的转换用4位二进制数表示1位十六进制数

例:10110001001.110=(?)H

0101

1000

1001.1100

589.C注意:位数不够时要补03无符号二进制数的运算

无符号数算术运算

有符号数逻辑运算一、无符号数的运算算术运算

加法、减法、乘法、除法运算1).规则加法:1+1=0(有进位),…减法:0-1=1(有借位),…乘除法:…

一个数乘以2相当于该数左移一位;除以2则相当于该数右移1位。2).无符号数的表示范围一个n位的无符号二进制整数X,其表示范围为

0≤

X≤2n-1若运算结果超出这个范围,则产生溢出。(或者说运算结果超出n位,则产生溢出。)判别方法:运算时,当最高位向更高位有进位(或借位)时则产生溢出。[例]:

11111111

+00000001

100000000

结果超出8位(最高位有进位),发生溢出。(结果为256,超出8位二进制数所能表示的范围255)

4带符号二进制数的运算计算机中的带符号二进制数把二进制数的最高位定义为符号位符号位为0

表示正数,符号位为1

表示负数连同符号位一起数值化了的数,称为机器数。机器数所表示的真实的数值,称为真值。[例]:

+52=+0110100=0

0110100

符号位数值位

-52=-0110100=1

0110100

真值机器数1).符号数的表示对于符号数,机器数常用的表示方法有原码、反码和补码三种。数X的原码记作[X]原,反码记作[X]反,补码记作[X]补。

注意:对正数,三种表示法均相同。它们的差别在于对负数的表示。原码[X]原定义 符号位:0表示正,1表示负;数值位:真值的绝对值。原码的例子真值X=+18=+0010010X=-18=-0010010原码[X]原=00010010[X]原=10010010符号符号位n位原码表示数值的范围是对应的原码是111

1~011

1。数0的原码8位数0的原码:+0=00000000-0=10000000即:数0的原码不唯一。反码[X]反定义

若X>0,则[X]反=[X]原

若X<0,则[X]反=对应原码的符号位不变,数值部分按位求反[例]:X=-52=-0110100[X]原=10110100[X]反=11001011反码的例子真值X=+18=+0010010X=-18=-0010010反码[X]反=00010010[X]反=11101101符号符号位n位反码表示数值的范围是对应的反码是100

0~011

1。0的反码:[+0]反=00000000[-0]反=11111111即:数0的反码也不是唯一的。补码定义:若X≥0,则[X]补=[X]反=[X]原若X<0,则[X]补=[X]反+1[例]:X=–52=–0110100[X]原=10110100[X]反=11001011[X]补=[X]反+1=11001100n位补码表示数值的范围是对应的补码是100

0~011

1。0的补码:[+0]补=[+0]原=00000000[-0]补=[-0]反+1=11111111+1=100000000

对8位字长,进位被舍掉∴[+0]补=[-0]补=00000000特殊数10000000该数在原码中定义为:-0在反码中定义为:-127在补码中定义为:-128对无符号数:(10000000)2=1288位有符号数的表示范围:对8位二进制数:原码:-127~+127反码:-127~+127补码:-128~+127想一想:16位有符号数的表示范围是多少?2).有符号二进制数与十进制的转换对用补码表示的二进制数:

1)求出真值2)进行转换[例]:将一个用补码表示的二进制数转换为十进制数。

1)

[X]补=00101110B真值为:+0101110B

正数

所以:X=+462)[X]补=11010010B

负数

X=[[X]补]补=[11010010]补=-

0101110B所以:X=

-

46*补码的运算原理

模(module)就是一个计数系统的最大容量。例如,钟表的模为12,8位二进制数的模为28。

凡是用器件进行的运算都是有模运算,运算结果超过模的部分会被运算器自动丢弃。因此,当器件为n位时,有

X=2n+X(mod2n)不难验证,

[X]补=2n+X(mod2n)3).补码加减法的运算规则通过引进补码,可将减法运算转换为加法运算。规则如下:[X+Y]补=[X]补+[Y]补[X-Y]补=[X]补-[Y]补=[X]补+[-Y]补其中X,Y为正负数均可,符号位参与运算。[例]:X=-0110100,Y=+1110100,求[X+Y]补。[X]原=10110100[X]补=[X]反+1=11001100[Y]补=[Y]原=01110100所以:[X+Y]补=[X]补+[Y]补=11001100+01110100=010000004).符号数运算中的溢出问题进(借)位——在加法过程中,符号位向更高位产生进位;在减法过程中,符号位向更高位产生借位。溢出——运算结果超出运算器所能表示的范围。运算对标志的影响举例(一) 00000011 3 +3 +00001100 +12 +(+12) 00001111 15 +15 NC,NV

00000110 6 +6 +11111100 +252 +(-4)100000010 258>255 +2 CY,NV运算对标志的影响举例(二) 00001000 8 +8 +01111011 +123 +(+123)10000011131 +131NC,OV

10000111 135 -121+11110101 +245 +(-11)101111100 380>255 -132<-128CY,OV溢出的判断方法同号相减或异号相加——不会溢出。同号相加或异号相减——可能溢出:两种情况: 同号相加时,结果符号与加数符号相反—溢出;异号相减时,结果符号与减数符号相同—溢出。[例]:

10110101

+10001111

101000100

01000010

+0110001110100101

01000010

+11001101

100001111CASE1:CASE2:CASE3:CASE4:

01001010

+00101101

01110111浮点型变量(float)4个字节(32位),IEEE-754标准含数符、阶码和尾数三部分1位符号位:“0正1负”----------S8位阶码(2的指数):偏移0x7F----E24位尾数。最高位始终为“1”,实际不占位,只保存23位(小数位)。具有24位精度.-----M若1≤E≤254,则N=(-1)S·2(E-127)·(1+M)。为规格化数。

例:

(1)N=-1.5,它的单精度格式表示为:

10111111110000000000000000000000

其中,S=1,E=127,M=0.5,因此N=-1.5。(2)以下的32位数所表示的单精度浮点数为多少?11000000101000000000000000000000

其中,S=1,E=129,M=0.25,

由公式可知N=-5。(3)浮点数-12.5的存储形式是:

0xC14800005二进制编码一、十进制数的表示——BCD码

(BinaryCodedDecimal)用4位二进制数表示一位十进制数。

压缩BCD码(CompactBCD)

非压缩BCD码(Uncompact)压缩BCD码的每一位用4位二进制表示,0000~1001表示0~9,一个字节表示两位十进制数。非压缩BCD码用一个字节表示一位十进制数,高4位总是0000,低4位的0000~1001表示0~9。二、非数值数据的表示计算机中除了能够处理数值数据以外,还可以处理文字、语音、图像等各种信息,这些信息统称为非数值数据。非数值数据在计算机中也必须以二进制形式表示,非数值数据的表示本质上是编码的过程。最常用的数据编码:美国标准信息交换代码(AmericanStandardCodeforInformationInterchange,ASCII码)ASCII码—美国标准信息交换代码

ASCII码采用7位二进制代码对字符进行编码。数字0~9的编码是0110000~0111001,它们的高3位均是011,后4位正好与其对应的二进制代码(BCD码)相符。英文字母A~Z的ASCII码从1000001(41H)开始顺序递增,字母a~z的ASCII码从1100001(61H)开始顺序递增。最高位通常总为0,有时也用作奇偶校验位。6计算机中常用术语1)计算机中常用数据单位bit1Mb=1024

1024bit=220bit1Gb=230bit=1024Mb1Tb=240bit=1024GbByte1Byte=8bit,1KB=1024Byte,…2)计算机中通信速率单位波特率(baudrate)

通信信道中信号状态每秒钟变化的次数,是信息传送速率的度量单位。位速率(比特率,bitpersecond,b/s)

每秒传送多少位。每秒字符(characterpersecond,CPS)

每秒传送多少ASCII字符。C语言数据类型简介基本类型

构造类型派生类型整型int结构体struct数组类型字符型char共用体(联合)型union指针类型实型float枚举型enum双精度型double用户定义类型typedef空值型void数据类型决定:1.数据占内存字节数2.数据取值范围3.其上可进行的操作数制与C语言数据类型C语言运算符各进制C语言中的书写格式位运算用户标识符用户根据需要对C程序中用到的变量、符号常量、自己的函数或文件指针进行命名,形成用户标识符。构成规则:由英文字母、数字、下划线组成,且第一个字符不能是数字;英文字母区别大小写;取名遵循“简洁明了”和“见名知意”。基本逻辑控制规则处理处理处理1处理2处理1处理2处理n处理处理处理1处理2处理顺序分支循环递归C与汇编语言的区别与联系C具有汇编的功能具有高级语言的形式C通过库函数,一行语句能实现非常复杂的功能汇编语言指令级的语言,面向CPU和外围硬件编程运行效率高,开发效率低一行最多对应一条指令编程者要求对硬件有透彻的理解C通过编译生成汇编语言,再汇编成指令代码基础知识(三)——常用数字电路基础数字电路概念逻辑电路译码电路时序电路三态门电路与总线数字电路输入或输出只有有限个状态一般为高电平与低电平来源于三极管的饱和导通或截止或MOS器件的夹断和导通VCC逻辑电平0或1真或假正逻辑(1为真,0为假)负逻辑(0为真,1为假)TTL电平(5V电源)高电平(1电平)——输入大于2.4V,输出大于2.8V低电平(0电平)——输入小于0.8V,输出小于0.4V兼容性、噪声容限CMOS电平(与电源电压有关)基本逻辑运算及相应的电路与(&,∧)、或(|,∨)、非(~,▔)、异或(⊕)按位运算,无进(借)位:

&|~^逻辑运算,真(非0)假(0)

&&||!逻辑电路是对应于按位运算的逻辑门逻辑门:完成逻辑运算的电路。掌握:与、或、非门逻辑符号和逻辑关系(真值表);与非门、或非门的应用。与门(ANDGate)ABY000010100111Y=A&B&ABY注:基本门电路仅完成1位二进制数的运算或门(ORGate)ABY000011101111Y=A|BYAB≥1非门(NOTGate)AY01101AYY=A=~A异或门(eXclusiveORGate)ABY000011101110Y=A⊕BYAB⊕译码电路使能输入输出/EBA/Y0/Y1/Y2/Y31xx11110000111001101101011010111110时序电路D锁存器数字电路分两大类:组合逻辑、时序电路D锁存器属于时序电路分频器8D锁存器锁存时钟端为高时,其输出始终跟随输入,而时钟端为低时,输出端的状态保持不变,也就是说时钟的下跳变将输入状态锁存到输出端。三态门74LS245A0~A7和B0~B7双向数据线/E输出允许,/E=0时门开通DIR方向控制DIR=0,B→A;DIR=1,A→BLED发光管电路什么是ARM?Cortex-M3/M4基础1)通用寄存器2)特殊寄存器3)中断2.1ARM背景知识简介ARM公司于1990年11月成立于英国,原名为AdvancedRISCMachine有限公司,是苹果电脑、Acorn电脑集团和VLSITechnology的合资企业。ARM成功地研制了首个低成本RISC架构。1991年ARM公司推出了首个嵌入式RISC核心——ARM6TM系列处理器。作为知识产权(IP,IntelligenceProperty)供应商,该公司不直接从事芯片生产,靠转让设计许可,由合作公司生产各种芯片。世界各大半导体生产商从ARM公司购买其设计的ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,形成自己的ARM微处理器芯片进入市场。2.1.1ARM简介将技术授权给其它芯片厂商形成各具特色的ARM芯片...2.1ARM背景知识简介1985年,开发出ARM1Sample版1986年,ARM2量产--具有32位的数据总线、26位的寻址空间,并提供64MB的寻址范围和16个32位的寄存器1991年,ARM技术首次发布,然后苹果电脑使用ARM610当作其AppleNewtonPDA的核心。1994年,Acorn使用ARM610作为其RISCPC电脑内的CPU。2.1.2ARM架构的演进ARM处理器架构进化史架构:处理器:1993V4版架构应用最广,ARM7、ARM8、ARM9和StrongARM都采用该架构ARM10和Xcale都采用该版架构V6版架构是2001年发布的,首先在2002年春季发布的ARM11处理器中使用ARM处理器处理器名字架构版本号存储器管理特性其它特性ARM7TDMI/ARM7TDMI‐Sv4TARM7EJ‐Sv5EDSP,JazelleARM920T/ARM922Tv4TMMUARM926EJ‐Sv5EMMUDSP,JazelleARM946E‐Sv5EMPUDSPARM966E‐Sv5EDSPARM968E‐Sv5EDMA,DSPARM966HSv5EMPU(可选)DSPARM1020E/ARM1022Ev5EMMUDSPARM1026EJ‐Sv5EMMU或MPUDSP,JazelleARM1136J(F)‐Sv6MMUDSP,JazelleARM1176JZ(F)‐Sv6MMU+TrustZoneDSP,JazelleARM11MPCorev6MMU+多处理器缓存支持DSPARM1156T2(F)‐Sv6MPUDSPCortex‐M3/Cortex-M4v7‐MMPUNVICCortex‐R4v7‐RMPUDSPCortex‐R4Fv7‐RMPUDSP+浮点运算Cortex‐A8v7‐AMMU+TrustZoneDSP,Jazelle

随着技术的不断发展,ARM公司不断推陈出新,研发出较高性能的ARMv7架构。ARMv7架构采用Thumb-2技术。在该版本中,内核架构首次从单一序列变成三种序列。系列A(ARMv7-A):设计用于高性能的“开发应用平台”——越来越接近电脑。系列R(ARMv7-R):用于高端的嵌入式系统,尤其是那些带有实时要求的——既要快又要实时。系列M(ARMv7-M):用于深度嵌入的、单片机风格的系统中——本书的主角。ARMv7架构的A、R、M三个系列都以Cortex作为主名,分别命名为ARMCortex-A、ARMCortex-R、ARMCortex-M。2.1.2ARM架构的演进2.1ARM背景知识简介1)Thumb、Thumb-2及ThumbEEThumb是ARM处理器的一种16位指令模式。Thumb-2是16位Thumb指令集的扩充,以额外的32位指令让Thumb指令集的使用更加广泛。ThumbEE也就是所谓的Thumb-2EE,在基础上Thumb-2进行一些扩充,使得指令集能特别适用于执行阶段(Runtime)的代码生成(例如即时编译)2.1.3ARM的专有技术2)Jazelle、3)高级SIMD(NEON)、4)VFP、5)安全性扩充(TrustZone)

ARMCortex™-M4处理器是由ARM专门开发的最新嵌入式处理器,在M3的基础上强化了运算能力,新加了浮点、DSP、并行计算等,用以满足需要有效且易于使用的控制和信号处理功能混合的数字信号控制市场。其高效的信号处理功能与Cortex-M处理器系列的低功耗、低成本和易于使用的优点的组合,旨在满足专门面向电动机控制、汽车、电源管理、嵌入式音频和工业自动化市场的新兴类别的灵活解决方案。2.1ARM背景知识简介2.1.4Cortex-M4处理器特性简介Cortex‐M3/M4是一个32位处理器内核,采用了哈佛结构;拥有独立的指令总线和数据总线,但指令与数据共享同一个存储空间(一个统一的存储器系统)。32位的数据总线,32位的寄存器组,32位的存储器接口,一个可选的MPU,支持小端模式和大端模式,……2.1ARM背景知识简介2.1.4Cortex-M4处理器特性简介2.1ARM背景知识简介2.2Cortex-M3/M4基础寄存器组特殊功能寄存器组异常和中断向量表复位序列2.2.1寄存器组2.2.1寄存器组通用寄存器R0-R7:低组寄存器,32位,所有指令都能访问。通用寄存器R8-R12:高组寄存器,32位,所有32位指令都能访问,少量16位Thumb指令能访问。堆栈指针R13:主堆栈指针(MSP),进程堆栈指针(PSP)。连接寄存器R14:调用子程序时,存储返回地址。程序计数器R15:存储当前指令地址。堆栈:按“后进先出(LIFO)”方式工作的存储区域。堆栈4字节对齐进行压入、弹出操作。堆栈的主要用途:

调用过程/函数/子程序时保存返回地址。参数传递、临时保存数据。堆栈指针R13(SP)主程序继续执行主程序执行子程序转子程序PC压栈弹出返回地址返回主程序主程序PC继续执行主程序返回主程序执行子程序2返回子程序1PC’执行子程序1继续执行子程序1(a)子程序调用(b)子程序嵌套调用调用子程序时堆栈的使用转子程序1PC压栈弹出PCPC执行主程序转子程序2PC’压栈弹出PC’堆栈指针R13PUSH{R0};*(--R13)=R0。R13是long*的指针POP{R0};R0=*R13++R13指示堆栈栈顶,R13的初值决定了堆栈的大小。堆栈指针R13栈底低地址高地址R13堆栈段进栈方向退栈方向栈顶例:PUSHR0,设R0=10203040H,SP=0004H进栈方向执行后00H01H02H03H04H栈顶10203040执行前栈顶栈底R0102000H01H02H03H04H3040堆栈操作使用要点:①堆栈操作总是按4字节进行压入和弹出;②后压入的数据总是首先被弹出;③堆栈指针R13永远指向栈顶;⑤R13自动进行增减量(-4,+4),压入时自动减4,弹出时自动加4。课堂练习:已知R13=00C0H,R0=00008B31H,R1=0000F213H,执行指令

PUSHR0PUSHR1POPR0问,指令执行后R13=?R0=?程序状态寄存器(PSR)标志位作用N负数标志位;N=操作结果的MSBZ零标志位;1-结果为0;0-结果为非0。C进位标志位。V溢出标志位。Q中断屏蔽寄存器寄存器功能PRIMASK只有1个位的寄存器:置1:关掉所有可屏蔽的异常,只剩下NMI和硬fault可以响应。缺省值是0,表示没有关中断。FAULTMASK只有1个位的寄存器:置1:只有NMI能响应,所有其它的异常(包括中断和fault)都关闭。缺省值是0,表示没有关异常。BASEPRI最多有9位的寄存器(由表达优先级的位数决定),定义了被屏蔽优先级的阈值。当它被设成某个值后,所有优先级号大于等于此值的中断都被关闭(优先级号越大,优先级越低)。缺省值是0,则不关闭任何中断。Cortex-M3/M4基础1)通用寄存器2)特殊寄存器3)中断4)存储器系统5)总线输入输出的数据传输方式程序传送方式无条件传输方式查询传输方式中断传输方式DMA无条件方式&查询方式无条件方式:假定输入输出设备总是处于就绪状态,因此在输入输出前,不需要了解设备的实际状态.查询方式:需要了解设备的状态,有流量控制的客观要求。如微型打印机的工作方式。查询方式的流程图超时?READY?与外设进行数据交换超时错读入并测试外设状态YNYN传送完?防止死循环复位计时器NY中断中断(Interrupt)因事件发生,程序中止正常的执行流程,转入到该事件的处理程序。中断服务程序(ISR,Interruptserviceroutine)中断返回事件处理完毕(ISR执行完毕)返回正常的流程。与函数调用的区别被动、硬件调用断点是随机的、不可预知与程序异步。中断方式数据传输的优点CPU与外设异步工作,无须大量的查询,高速CPU不需要等待慢速的外部设备;编程时,程序仍分正常流程、中断服务程序ISR并可以分别编写,思路清晰;CPU的执行时,由事件驱动ISR的运行;在控制应用中几乎没有不使用中断的;异常与中断Cortex-M3/4支持大量异常,包括11个系统异常,240个外部中断(IRQ)。编号类型优先级简介0N/AN/A没有异常1复位-3(最高)复位2NMI-2不可屏蔽中断(来自外部NMI输入脚)3硬(hard)fault-1所有被除能的fault,都将“上访”成硬fault。除能的原因包括当前被禁用,或者FAULTMASK被置位。4MemManagefault可编程存储器管理fault,MPU访问犯规以及访问非法位置均可引发。企图在“非执行区”取指也会引发此fault5总线fault可编程从总线系统收到了错误响应,原因可以是预取流产(Abort)或数据流产,或者企图访问协处理器6用法(usage)Fault可编程由于程序错误导致的异常。通常是使用了一条无效指令,或者是非法的状态转换,例如尝试切换到ARM状态7-10保留N/AN/A11SVCall可编程执行系统服务调用指令(SVC)引发的异常12调试监视器可编程调试监视器(断点,数据观察点,外部调试请求)13保留N/AN/A14PendSV可编程为系统设备而设的“可悬挂请求”(pendablerequest)15SysTick可编程系统滴答定时器(周期性溢出的时基定时器)16IRQ#0可编程外中断#017IRQ#1可编程外中断#1…………255IRQ#239可编程外中断#239中断的5个步骤中断请求中断判优(有时还要进行中断源识别)中断响应中断服务中断返回1)中断请求外设接口(中断源)发出中断请求信号,送到CPU的中断引脚;中断请求信号:边沿请求,电平请求. 中断请求信号应保持到中断被处理为止;CPU响应中断后,中断请求信号应及时撤销。2)中断源识别与判优计算机中的中断源有很多,CPU必须识别是哪一个设备产生中断。多个中断源产生中断,CPU首先为谁服务?

——中断优先级排队问题。

中断优先级控制要处理两种情况:对同时产生的中断:应先处理优先级别高的中断;若优先级别相同,则按先来先服务的原则处理;对非同时产生的中断:低优先级别的中断处理程序允许被高优先级别的中断源所中断——即允许中断嵌套。3)中断响应在每条指令的最后一个时钟周期,CPU检测中断信号。若以下条件成立,则CPU响应中断:当前指令执行完。对中断信号有效;当前没有复位(RESET)和保持(HOLD)信号。若NMI和普通中断信号同时发生,则首先响应NMI。3)中断响应CPU中断响应时,要做下述三项工作:向中断源发出中断响应信号;断点保护,保证中断结束后能返回被中断的程序。获得中断服务程序首地址(入口)。中断服务子程序入口保护现场开中断中断处理

关中断恢复现场开中断中断返回4)中断处理5)中断返回执行中断返回指令CPU把堆栈内保存的断点信息弹出到程序指针寄存器,保证被中断的程序从断点处能够继续往下执行。中断向量表

存放各类中断的中断服务程序

的入口地址。表偏移地址000H~3FFH,

大小为1KB,共256个入口每个入口占用4Bytes根据中断类型号获得中断服务

程序入口的方法:(n为中断类型号)中断向量在表中的存放地址=4×n异常与中断Cortex-M3/4支持大量异常,包括11个系统异常,240个外部中断(IRQ)。编号类型优先级简介0N/AN/A没有异常1复位-3(最高)复位2NMI-2不可屏蔽中断(来自外部NMI输入脚)3硬(hard)fault-1所有被除能的fault,都将“上访”成硬fault。除能的原因包括当前被禁用,或者FAULTMASK被置位。4MemManagefault可编程存储器管理fault,MPU访问犯规以及访问非法位置均可引发。企图在“非执行区”取指也会引发此fault5总线fault可编程从总线系统收到了错误响应,原因可以是预取流产(Abort)或数据流产,或者企图访问协处理器6用法(usage)Fault可编程由于程序错误导致的异常。通常是使用了一条无效指令,或者是非法的状态转换,例如尝试切换到ARM状态7-10保留N/AN/A11SVCall可编程执行系统服务调用指令(SVC)引发的异常12调试监视器可编程调试监视器(断点,数据观察点,外部调试请求)13保留N/AN/A14PendSV可编程为系统设备而设的“可悬挂请求”(pendablerequest)15SysTick可编程系统滴答定时器(周期性溢出的时基定时器)16IRQ#0可编程外中断#017IRQ#1可编程外中断#1…………255IRQ#239可编程外中断#239向量表异常类型地址偏移量异常向量00x00MSP的初始值10x04复位20x08NMI30x0C硬fault40x10MemManagefault50x14总线fault60x18用法fault7‐100x1c‐0x28保留110x2cSVC120x30调试监视器130x34保留140x38PendSV150x3cSysTick160x40IRQ#0170x44IRQ#118‐2550x48‐0x3FFIRQ#2‐#239中断向量表例:设某中断源的中断类型码为08H,中断向量为01001000H,则相应的中断向量存储地址?从该地址开始,连续的4个存储单元存放的内容依次为?复位序列复位序列因为CM3是在Thumb态下执行,所以向量表中的每个数值都须把LSB置1。使用0x101来表达地址0x100。当0x100处的指令得到执行后,就正式开始了程序的执行。首先初始化MSP是必需的,因为可能第1条指令还没执行就会被NMI或是其它fault打断。MSP初始化好后就已经为它们的服务例程准备好了堆栈。存储系统存储器是计算机系统的记忆设备,用来存放计算机的程序指令、处理数据、运算结果以及各种需要计算机保存的信息。通常一个存储单元由8个存储元构成,可存放8位二进制信息(即一个字节,Byte)。许多存储单元组织在一起就构成了存储器。多层存储结构概念核心是解决容量、速度、价格间的矛盾,建立起多层存储结构。

存储器概述1内存与外存

内存、主存,存储系统任务的指令代码和数据.

采用半导体存储器,经系统总线,连接到CPU。内存(集成电路)的指标:容量、速度、功耗、存取模式和可靠性外存——软盘、硬盘、光盘、U盘、CF卡等(移动数据设备中很普遍)典型半导体存储器的分类随机存储器RAM只读存储器ROM半导体存储器动态DRAMPROMEPROME2PROM静态SRAMFLASHROM掩膜ROM双极型MOS型静态SRAM(StaticRAM)每个二进制位由6个MOS管构成,集成度低、容量小(单片为512Kbits到512KB)和价格高。速度高,通常为100nS~几nS;用途:小容量嵌入式控制系统、高速缓冲存储器(Cache);动态DRAM(DynamicRAM)1~3管,极间电容存储,集成度高(单片容量可达64Mb)、价格低,功耗低;需要刷新电路SRAM,DRAM的比较DRAM基本存储单元:单场效应管、极间电容,芯片;容量大、存储单元多,地址线的位数多;为减少引脚数,地址分为行地址、列地址两部分输送。访问任一单元时,行地址和列地址分别输入。系统必须配备“读出再生放大电路”,定时对存储数据进行额外的刷新,因此,DRAM芯片的存取速度低,一般为70nS(毫微秒)或60nS,比CPU低许多。每次同时对一行的存储单元进行刷新。DRAM一般采用“位结构”存储体:每个存储单元存放一位需要8个存储芯片构成一个字节单元每个字节存储单元具有一个地址半导体存储器存储单元的组织与内部地址译码存储器的构成主要的控制线存储单元的组织与内部地址译码译码器A5A4A3A2A1A06301存储单元64个单元单译码双译码可简化芯片设计主要采用的译码结构行译码A2A1A0710列译码A3A4A501764个单元双译码存储器的构成地址译码(行、列)存储单元矩阵A0-A4X译码Y译码……A5-A9I/O驱动控制读/写D0-D3数据线地址线控制线ROMROM(ReadOnlyMemory)特点:正常运行期间只能读不能写,存储内容不会被改写,且掉电后也不会丢失。用途:存放开机即执行的程序代码。ROM的分类及用途掩膜ROM

半导体工艺中,以最后一张掩膜决定各存储位是0还是1,信息是永久性的,不能更改。PROM(ProgrammableROM,可编程)出厂是空片(所有单元的初始信息是FFH),可利用专门的写入器一次性写入,不能擦除。EPROM(ErasableProgrammableROM可擦除可编程)用专门的写入器编程,用一定波长的紫外线可擦除其中内容(回到FFH),可多次进行。EEPROM(ElectricalEPROM)即电可擦除可编程ROM。存储器读周期⑩⑨⑧⑦⑥⑤④③②①浮空S6~S3A19~A16数据输入地址输出总线周期T1T2T4T3,TwM/IOCLKALEBHEA19/S6~A16/S3AD15~AD0RDREADY存储器写周期⑥③⑦⑤④②①S6~S3A19~A16数据输出地址输出总线周期T1T2T4T3,TwM/IOCLKALEBHEA19/S6~A16/S3AD15~AD0WRM3预定义的存储器映射另一种方式分为8个512MB等份1.代码区(0x0000_0000‐0x1FFF_FFFF)

该区是可以执行指令的,数据操作通过数据总线接口实现(读数据使用D‐Code,写数据使用System),且在此区上的写操作是缓冲的。另一种方式分为8个512MB等份2.SRAM区(0x2000_0000–0x3FFF_FFFF)

此区用于片内SRAM,此区亦可以执行指令,以允许把代码拷贝到内存中执行——常用于固件升级等维护工作。另一种方式分为8个512MB等份3.片上外设区(0x4000_0000–0x5FFF_FFFF)4.外部RAM区的前段

(0x6000_0000‐0x7FFF_FFFF)5.外部RAM区的后段

(0x8000_0000–0x9FFF_FFFF)另一种方式分为8个512MB等份6.外部外设区的前段(0xA000_0000–0xBFFF_FFFF)7.外部外设区的后段

(0xC000_0000–0xDFFF_FFFF)

8.系统区

(0xE000_0000–0xFFFF_FFFF)如何在系列中选择控制?ARM最小系统目前,Kinetis系列的微控制器有K10、K20、K30、K40、K50、K60和K70等几个子系列。2.2.1Kinetis系列微控制器2.4K60系列微控制器的存储器映像与编程结构K60系列微控制器具有:IEEE1588以太网全速和高速USB2.0硬件加密和防窜改探测能力,具有丰富的模拟、通信、定时和控制外设256KB~1MB闪存K60系列的模块结构框图1.内核模块2.系统模块3.存储模块4.时钟模块5.安全模块6.模拟模块7.定时器模块8.通信模块9.人机接口模块2.4K60系列微控制器的存储器映像与编程结构2.4.2K60系列存储器映像

ARMCortex-M4为32位处理器内核。内部的数据是32位的,寄存器是32位的,存储器接口也是32位的。CPU频率(MHz)闪存(KB)FlexNVM(KB)SRAM(KB)FlexRAM(KB)100LQFP14×14104BGA8×8144LQFP20×20144BGA13×13196BGA15×15256BGA17×17100256—64—++++——100512—128—++++——100256256644++++——12051251212816——++++15051251212816——++++1201024—128———++++1501024—128———++++K60系列的存储器空间地址映像(一)地址范围大小实际的物理对象0x0000_0000~0x0FFF_FFFF256MB可编程flash和只读数据(包括一开始1024字节的异常中断向量)0x1000_0000~0x13FF_FFFF64MB对MK60N256VLQ100芯片:未使用对MK60X256VLQ100芯片:FlexNVM对MK60N512VLQ100芯片:未使用0x1400_0000~0x17FF_FFFF64MB对有FlexNVM的设备:FlexRAM对只有可编程Flash的设备:可编程加速RAM0x1800_0000~0x1FFF_FFFF128MBSRAM_L0x2000_0000~0x_FFFF1MBSRAM_U0x2001_0000~0x21FF_FFFF31MB未使用0x2200_0000~0x23FF_FFFF32MBSRAM_U的混合位宽区0x2400_0000~0x3FFF_FFFF448MB未使用地址范围大小实际的物理对象0x4000_0000~0x4007_FFFF512KB外设桥0(AIPS-Lite0)0x4008_0000~0x_EFFF508KB外设桥1(AIPS-Lite1)0x_F000~0x_FFFF4KB通用输入输出0x4010_0000~0x41FF_FFFF25MB未使用0x4200_0000~0x43FF_FFFF32MB外设桥(AIPS-Lite)与通用输入输出的混合位宽区0x4400_0000~0x5FFF_FFFF448MB未使用0x6000_0000~0xDFFF_FFFF2GBFlexbus0xE000_0000~0xE_FFFF1MB私有外设0xE010_0000~0xFFFF_FFFF511MB未使用K60系列的存储器空间地址映像(二)2.4K60系列微控制器的存储器映像与编程结构1.中断向量表、程序代码及常量的存放地址

中断向量表、程序代码及常量的存放于Flash中。K60的中断向量表、程序代码及常量的存放区域是:0x0000_0000~0x0FFF_FFFF。K60的程序代码编译链接后,中断向量表将从0x0000_0000地址开始存放,程序代码从0x0000_0410地址开始存放。存放完代码空间后,常量随其后。2.全局变量、局部变量的存放地址

全局变量及局部变量存放于RAM中。K60系列微控制器的RAM地址空间分为两个部分,第一部分被称为SRAM_L,地址范围是:0x1800_0000~0x1FFF_FFFF,共128MB;第二部分被称为SRAM_U,地址范围是:0x2000_0000~0x200F_FFFF,共1MB。2.4K60的引脚功能与硬件最小系统1.硬件最小系统引脚硬件最小系统引脚包括电源类引脚、复位引脚、晶振引脚等。K60芯片电源类引脚,BGA封装22个,LQFP封装27个,其中MAPBGA封装的芯片有五个引脚未使用(A10、B10、C10、M5和L5)。芯片使用多组电源引脚分别为内部电压调节器、I/O引脚驱动、A/D转换电路等电路供电,内部电压调节器为内核和振荡器等供电。复位引脚

是一个专用引脚,内部含有上拉电阻。空闲状态为高电平,低电平迫使芯片复位。在写入器电路中,该引脚被连接到标准的10芯JTAG接口,以便写入器可以使MCU复位。

由于Flash存储器制造技术的发展,大部分芯片提供了在板或在线系统(OnSystem)写入程序功能,即把空白芯片焊接到电路板上后,再通过写入器把程序下载到芯片中。这样,硬件最小系统应该把写入器的接口电路也包含在其中。基于这个思路,MK60N512VMD10芯片的硬件最小系统包括电源电路、复位电路、晶振电路及JTAG接口电路。2.4.1K60的引脚功能2.4K60的引脚功能与硬件最小系统分类引脚名引脚号典型值功能描述MAPBGALQFP电源电源输入VDDE5、E6、E7、E8、F5、F85、16、43、56、70、94、1083.3V电源VSSF6、F7、G7、G8、H3、H7、H8、M106、17、18、44、57、71、93、107、121、1340V地VBATL6423.3VRTC模块的输入电源(可电池供电)VDDA、VSSAH5、H631、343.3V、0VA/D模块的输入电源VREFH、VREFLG5、G632、333.3V、0VA/D模块的参考电压VREGING2225VUSB模块的参考电压电源输出VREF_OUTM3371.2VADC、CMP和DAC的输出参考电压VOUT33G1213.3VUSB模块电源稳压器输出的电压复位L1274复位引脚(双向引脚)。作为输入引脚,拉低可使芯片复位。作为输出引脚,上电复位期间有低脉冲输出,表示芯片已经复位完成。晶振EXTALM1272晶振或时钟输入引脚(PTA18)*RTCEXTAL32、XTAL32M6、M741、40RTC晶振或时钟输入、输出引脚写入器JTAG_TMSK753测试模式选择(有内部上拉)JTAG_TCLKJ550JTAG时钟JTAG_TDI、JTAG_TDOJ6、K651、52JTAG数据输入、输出EZP_CS_bL754EzPort模式选择引脚个数统计MAPBGA封装31个,LQFP封装36个1.K60硬件最小系统引脚表2.4K60的引脚功能与硬件最小系统2)I/O端口资源类引脚可以为实际系统提供I/O服务。芯片提供服务的引脚也可称为I/O端口资源类引脚。K60(144引脚MAPBGA和LQFP封装)具有多达100个I/O引脚。其中A口26个,B口20个,C口20个,D口16个,E口18个,每个引脚均具有多个功能。在复位后,这些引脚立即被配置为高阻状态,且为通用输入引脚,没有内部上拉电阻。为了避免来自浮空输入引脚额外的漏电流,应用程序中的复位初始化例程需尽快使能上拉或下拉,也可改变不常用引脚的方向为输出,以使该引脚不再浮空。2.4K60的引脚功能与硬件最小系统口名引脚数引脚名功能描述A26PTA[0~19]PTA[24~29]JTAG/Enet/EXTAL/FTM/ADC/TSI/SPI/UART/I2S/CMP/GPIOB20PTB[0~11]PTB[16~23]ADC/CMP/TSI/Enet/FTM/UART/SPI/I2S/CAN/GPIOC20PTC[0~19]

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论