1、嵌入式硬件系统一般由嵌入式微处理器、存储器和输入/输出部分组成。
2、嵌入式微处理器是嵌入式硬件系统的核心,通常由控制单元、算术逻辑单元和寄存器
A、控制单元:主要负责取指、译码和取数等基本操作并发送主要的控制指令。
B、算术逻辑单元:主要处理数值型数据和进行逻辑运算工作。
C、寄存器:用于暂存临时性的数据。
3、嵌入式微处理器的分类(根据用途)
(1)嵌入式微控制器(MCU):又称为单片机,片上外设资源一般比较丰富,适合于控制。最大的特点是单片化,体积小,功耗和成本低,可靠性高。目前约占70%的市场份额。
(2)嵌入式微处理器(EMPU):又称为单板机,由通用计算机中的CPU发展而来,它的特征是具有32位以上的处理器,具有较高的性能。通常嵌入式微处理器把CPU、ROM、RAM及I/O等模块做到同一个芯片上。
(3)嵌入式DSP处理器(DSP):专门用于信号处理方面的处理器,其在系统结构和指令算法方面进行了特殊设计,使其处理速度比最快的CPU还快10~50倍,在数字滤波、FFT、频谱分析等方面获得了大量的应用。
(4)嵌入式片上系统(SOC):追求产品系统最大包容的集成器件,其最大的特点是成功实现了软硬件的无缝结合,直接在微处理器片内嵌入操作系统的代码模块。
寻址方式
1、直接寻址
MOV A,68H 把内部ARM中的68H单元中的数据内容传送到累加器A中。特殊寄存器智能用直接寻址。
2、寄存器寻址
MOV A,R1 把R3的内容送到累加器A中
3、寄存器间接寻址
MOV A,@R0 把寄存器R0只想地址单元中的内容送到累加器A。不能用于访问特殊功能寄存器。
4、立即寻址
MOV A,#0EH 将0EH这个操作数送到累加器A中。
5、変址寻址
MOV A,@A+DPTR 实际访问的地址是@A+DPTR
MOVX A,@A+PC
JMP@A+DPTR 无条件转移指令
A作为偏移量寄存器,DPTR或PC作为変址寄存器,
6、位寻址
7、相对寻址
1、单片机组成:中央处理器、存储器、I/O设备。
2、存储器:物理实质是一组或多组具备数据输入/输出和数据存储功能的集成电路,用于充当设备缓存或保存固定的程序及数据。
A、ROM(只读存储器):一般用于存放固定的程序或数据表格等,数据在掉电后仍然会保留下来。
B、RAM(随机存储器):用于暂存程序和数据、中间计算结果,或用作堆栈用等,数据在掉电后就会丢失。
3、I/O端口:单片机与外界联系的通道,它可以对各类外部信号(开关量、模拟量、频率信号)进行检测、判断、处理,并可控制各类外部设备。
4、输出电平:高电平电压(输出"1"时)和低电平电压(输出"0"时)
A、TTL电平:正逻辑,5V为逻辑正,0V为逻辑负,例如单片机的输出。
B、RS232电平:负逻辑,-12V为逻辑正,+12V为逻辑负,例如PC的输出。
注:因此在单片机和PC进行通讯的时候需要一个MAX232芯片进行电平转换。
5、堆栈:它是一种线性的数据结构,是一个只有一个进出口的一维空间。
A、堆栈特性:后进先出(LIFO)
B、堆栈指针:用于指示栈顶的位置(地址),当发生压栈或者出栈操作时,导致栈顶位置变化时,堆栈指针会随之变化。
C、堆栈操作:压栈操作(PUSH)和出栈操作(POP)。
D、堆栈类型:"向上生长"型堆栈,每次压栈时堆栈指针加1;"向下生长"型堆栈,每次压栈堆栈时指针减1。
E、堆栈应用:调用子程序、响应中断时,堆栈用于保护现场;还可以用作临时数据缓冲区来使用。
F、使用注意:堆栈溢出问题,压栈和出栈的匹配问题。
6、定时/计数器:实质都是计数器。用作定时器时是对单片机内部的时钟脉冲进行计数,而在用作计数器时是对单片机外部的输入脉冲进行计数,其作用如下:
A、计时、定时或延时控制;
B、脉冲技术;
C、测量脉冲宽度或频率(捕获功能)
7、中断:优先级更高的事件发生,打断优先级低的时间进程。引起中断的事件称为中断源。一个单片机可能支持多个中断源,这些中断源可以分为可屏蔽中断和非可屏蔽中断,而这些中断源并不都是系统工作所需的,我们可以根据系统需求屏蔽那些不需要的中断源。
A、中断嵌套:当一个低级中断尚未执行完毕,又发生了一个高级优先级的中断,系统转而执行高级中断服务程序,待处理完高级中断后再回过头来执行低级中断服务程序。
B、中断响应时间是指从发出中断请求到进入中断处理所用的时间;中断处理时间是指中断处理开始到中断处理结束的时间。
C、中断响应过程:
a、保护现场:将当前地址、累加器ACC、状态寄存器保存到堆栈中。
b、切换PC指针:根据不同的中断源所产生的中断,切换到相应的入口地址。
c、执行中断服务处理程序。
d、恢复现场:将保存在堆栈中的主程序地址、累加器ACC、状态寄存器恢复。
e、中断返回:从中断处返回到主程序,继续执行。
D、中断入口地址:单片机为每个中断源分配了不同的中断入口地址,也称为中断向量。
8、复位:通过外部电路给单片机的复位引进一个复位信号,让系统重新开始运行。
A、复位发生时的动作:
a、PC指针从起始位置开始执行(大多数单片机都时从0x0000处开始执行)。
b、I/O端口设置成缺省状态(高阻态、或者输出低电平)。
c、部分专用控制寄存器SFR恢复到缺省状态。
d、普通RAM不变(如果时上电复位,则是随即数)。
B、两种不同的复位启动方式:
a、冷启动:也叫上电复位,指在断电状态下给系统加电,让系统开始正常运行。
b、热启动:在不断电的状态下,给单片机复位引进一个复位信号,系统重新开始。
C、两种类型的复位电路:高电平复位和低电平复位。
D注意事项:
a、注意复位信号的电平状态及持续时间必须满足系统要求。
b、注意避免复位信号抖动。
9、时钟电路:单片机是一种时序电路,必须提供脉冲电路才能正常工作。时钟电路相当于单片机的心脏,它的每一次跳动(振动节拍)都控制着单片机的工作节奏。振荡得慢时,系统工作速度就慢,振荡得快时,系统工作速度就快(功耗也增大)。
A、振荡周期:振荡源的振荡节拍。
B、机器周期:单片机完成一个基本操作需要的振荡周期(节拍)。
C、指令周期:执行一条指令需要几个机器周期。不同的指令需要的机器周期数不同。
1、ARM:Advanced RISC Machine。
2、ARM体系结构中支持两种指令集:ARM指令集和Thumb指令集。
3、ARM内核有T、D、M、I四个功能模块:
A、T模块:表示16位Thumb,可以在兼顾性能的同时减少代码尺寸。
B、D模块:表示Debug,内核中放置了用于调试的结构,通常为一个边界扫描链JTAG。
C、M模块:表示8位乘法器。
D、I模块:,用于实时断点观测及变量观测的逻辑电路部分。
4、ARM处理器有7种运行模式:
A、用户模式(User):正常程序执行模式,用于应用程序。
B、管理模式(SVE):供操作系统使用的一种保护模式。
C、系统模式(System):用于运行特权级的操作系统任务。
D、快速中断模式(FIQ):快速中断处理,用于高速数据传输和通道处理。
E、外部中断模式(IRQ):用于断处理。
F、数据访问中止模式(Abort):用于虚通用的中拟存储及存储保护。
G、未定义指令中止模式(Undefined):当未定义指令执行时进入该模式。
(1)除了用户模式之外的其他6种处理器模式称为特权模式,在这些模式下,程序可以访问所有的系统资源,也可以任意地进行处理器模式切换,其中,除了系统模式外,其他的5种特权模式又称为异常模式。
(2)处理器模式可以通过软件控制进行切换,也可以通过外部中断或异常处理过程进行切换。大多数的用户程序运行在用户模式下,这时,应用程序不能访问一些受操作系统保护的系统资源,应用程序也不能直接进行处理器模式切换。当需要进行处理器模式切换时,应用程序可以产生异常处理,在异常处理中进行处理器模式的切换。这种体系结构可以使操作系统控制整个系统的资源。
(3)当应用程序发生异常中断时,处理器进入相应的异常模式。在每一种异常模式种都有一组寄存器,供相应的异常处理程序使用,这样就可以保证进入异常模式时,用户模式下的寄存器不被破坏。
(4)系统模式并不是通过异常过程进入的,它和用户模式具有完全一样的寄存器,但是系统模式属于特权模式,可以访问所有的系统资源,也可以直接进行处理器模式切换,它主要供操作系统任务使用。
5、ARM处理器共有37个寄存器:31个通用寄存器和6个状态寄存器
A、通用寄存器包括R0~R15,可以分为3类:
a、未备份寄存器R0~R7:在所有的处理器模式下,未备份寄存器都是指向同一个物理寄存器。
b、备份寄存器R8~R14:对于R8~R12来说,每个寄存器对于2个不同的物理寄存器,它们每次所访问的物理寄存器都与当前的处理器运行模式有关。对于R13、R14来说,每个寄存器对于6个不同的物理寄存器,其中一个是用户模式和系统模式共用。R13在ARM指令种常用作堆栈指针。由于处理器的每种运行模式都有自己独立的物理寄存器R13,所有在用户应用程序的初始化部分,一般要初始化每种模式下的R13,使其指向该运行模式的栈空间。R14又称为连接寄存器(LR),在ARM体系种具有下面两种特殊作用:在通过BL或BLX指令调用子程序时,存放当前子程序的返回地址;在异常中断发生时,存放异常模式将要返回的地址。
c、程序计数器R15(PC)。由于ARM采用了流水线机制,在三级流水线中,当正确读取了PC的值时,该值为当前指令地址值加8个字节。也就是说,PC指向当前指令的下两条指令的地址。在ARM指令状态下,PC的0和1位是0,在Thumb指令状态下,PC的0位是0。
B、程序状态寄存器CPSR
31 |
30 |
39 |
28 |
27-8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
N |
Z |
C |
V |
DNM |
I |
F |
T |
M4 |
M3 |
M2 |
M1 |
M0 |
条件标志
N:负标志
Z:零标志
C:进位标志
V:举出标志
中断标志
I:置1表示禁止IRQ中断响应
F:置1表示禁止FIQ中断响应
T:置1表示执行16bit的Thumb指令,0则32bit的ARM指令
M0-M4模式控制位
a、ARM体系结构包含1个当前程序状态寄存器(CPSR)和5个备份的程序状态寄存器(SPSR),使用MSR和MRS指令来设置和读取这些寄存器。
b、可以在任何处理器模式下被访问。
c、每一种异常处理器模式下都有一个专用的物理状态寄存器。当特定的异常中断发生时,这个寄存器用于存放当前程序状态寄存器的内容,在异常中断程序退出时,可以用SPSR中保存的值来恢复CPSR。
d、由于用户模式和系统模式不属于异常模式,它们没有SPSR,当在这两种模式下访问SPSR时,结果是未知的。
6、ARM指令的寻址方
多寄存器寻址:一条指令可以完成多个寄存器值的传送。
相对寻址:
G、堆栈寻址:支持4种类型的堆栈工作方式:
a、满递增堆栈:堆栈指针指向最后压入的数据,且由低地址向高地址生长。
b、满递减堆栈:堆栈指针指向最后压入的数据,且由高地址向低地址生长。
c、空递增堆栈:堆栈指针指向下一个将要放入数据的空位置,且由低地址向高地址生长。
d、空递减堆栈:堆栈指针指向下一个将要放入数据的空位置,且由高地址向低地址生长。
7、ARM的存储方法
A、大端模式:数据的高字节存储在低地址中,低字节存储在高地址中。
B、小端模式:数据的低字节存储在低地址中,高字节存储在高地址中。
8、ARM中断与异常
A、ARM内核支持7种中断,不同的中断处于不同的处理模式,具有不同的优先级,而且每个中断都有固定的中断地址入口。当一个中断发生是,相应的R14(LR)存储中断返回地址,SPSR存储当前程序状态寄存器CPSR的值。
B、由于ARM内核支持流水线工作,LR寄存器存储的地址可能是发生中断后面指令的地址,所以不同的中断处理完成后,必须将LR寄存器值经过处理后再写入P15(PC)寄存器。
C、ARM异常的具体含义:
复位 |
处理器的复位电平有效时,产生复位异常 |
软件中断 |
执行SWI指令产生,可使用该异常机制实现操作系统调用功能。 |
外部中断 |
ARM外部中断请求管脚有效,而且CPSR的I位为0时, |
快速中断请求 |
ARM快速中断请求管脚有效,而且CPSR的F位为0时, |
指令预取中止 |
处理器预取指令的地址不存在或该地址不允许当前指令访问,存储器向处理器发出中止信号,但当预取的指令被执行时,产生指异常。 |
未定义的指令 |
ARM处理器或协处理器遇到不能处理的指令时,产生异常。 |
数据访问中止 |
处理器数据访问指令的地址不存在,或该地址不允许当前指令访问 |
D、ARM处理器对异常中断的响应过程
a、将下一条指令的地址存入相应的连接寄存器LR中。
b、将CPSR复制到相应的SPSR中。
c、根据异常的类型,强制设置CPSR的运行模式位。
d、强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。
E、ARM处理器从异常中断处理程序中返回
a、恢复中断的程序的处理器状态,将SPSR复制到CPSR中。
b、若在进入异常处理时设置了中断禁止位,要在此清除。
c、将连接寄存器LR的值减去相应的偏移量后送到PC。
F、复位异常中断处理程序不需要返回。在复位异常中断程序开始整个用户程序的执行。
9、ARM的数据类型
字Word:在ARM体系结构中,字的长度为32位,而8/16位处理器体系中是16位。
半字Half-Word:在ARM体系结构中,半字长度为16位。
字节Byte:在ARM体系结构中和8/16位处理器体系结构中均为8位。
10、用户采用16位Thumb指令集最大的好处是可以获得更高的代码密度和降低功耗
11、内存和IO地址
a) IO端口的编址方法有两种:IO映射编址和存储器映射编址
b) IO映射编址:IO端口与内存单元分开编址,互不影响。优点IO单元不占用内存空间,易区分IO程序,缺点只用IO指令访问,功能有限,微处理器复杂化,X86多用这个方式。
c) 存储器映射编址:IO单元与内存单元在共享同一地址空间。优点可采用丰富的内存操作指令访问IO单元,无需单独IO地址译码电路,无需专用IO指令;缺点外设占用内存空间,不易区分IO程序,ARM多数采用这个方式。