资源描述
第一章
冯洛伊曼计算机结构特点:
计算机由运算器,存放器,控制器,输入设备和输出设备五部分组成。
指令和数据以相同地位存放在存放器中,并可按地址对它们进行访问。
指令在存放器中次序存放。
控制器
输出设备
输入设备
运算器
存放器
机器以运算器为中心,数据传输必需经过运算器。
实现RISC(精简指令系统计算机)方法
1、 降低指令种类:
RISC指令系统只提供能完成简单操作指令,复杂操作由编译器或程序员 经过多条指令组合来完成。
2、 Load/Store结构:
存放器中数据能够用Load/Store指令不经处理器直接读入寄存器,以后处理器再对寄存器数据操作则是访问寄存器而不是存放器了。从而提升系统工作速度。
3、 采取指令流水线技术:
这种技术把一条指令实施过程分解为多个步骤,并在处理器中为每步全部配置一个硬件装置来同时工作,从而实现多条指令并行处理。
4、 在处理器中配置更多通用寄存器
寄存器是处理器访问速度最快存放装置,大量地配置处理器中寄存器有利于提升计算机系统工作速度。
嵌入式计算机系统特点
1、 专用性强:嵌入式系统通常是面相某个特定应用,所以嵌入式系统硬件是为特定用户群设计,它通常全部含有某种专用性特点。
2、 可裁剪性好:嵌入式系统硬件和操作系统全部必需设计成可裁剪,方便用户能够依据实际应用去除冗余吗,从而达成最精简配置。
3、 实时性和可靠性好:嵌入式系统中软件全部固化在存放器芯片或单片系统存放器里,加上精心设计操作系统,能够快速地响应外部事件,同时提升了系统可靠性。
4、 功耗低:因为嵌入式系统中软件全部固化在存放器芯片或单片系统存放器之中,所以它含有功耗低特点。
第二章
并行总线:
由多条传输线组成,其数目和被传输数据位数相同,每条线负责传输一位二进制代码。它能够一次同时传送一个多位二进制代码。
串行总线:
在实际系统中使用一根线来传送多位二进制信息,这个多位二进制代码在这根线上一位接着一位地逐一传输,这么总线叫做串行总线。
总线:连接计算机系统多个部件信息传输线
数据总线:在计算机各个部件之间传送数据通路。
地址总线:用来传送由指令或程序计数器经地址寄存器送出地址信息。
控制总线:用来传输控制信息总线叫控制总线。
总线标准:
1、 ISA标准:慢速IO和高速存放器总线分开一个双线结构。
2、 PCI总线:优异局部总线。
3、 USB通用串行总线接口:通用串行总线接口。
EPROM芯片在写入数据后,还要以不透光贴纸或胶布把窗口封住,以免受到周围紫外线照射而使数据受损。
信号类型:
1、 数字量:二进制形式数据
2、 模拟量:用电压高低或电流大小来表示物理量大小信号
3、 开关量:能够表示为0、1两种状态信号
4、 脉冲量:以脉冲形式来表示信号
外部设备特点:
信号种类繁多、没有地址、工作速度和处理器工作速度不匹配
端口:接口中每一个含有地址寄存器叫做端口
I/O端口编址方法
1、 存放器映像方法:把IO端口和存放器存放单元相同看待并一起编址方法
2、 隔离IO方法:即存放器和IO端口二者地址空间相互隔离,各自进行编址。
外部设备和处理器联络方法
1、 查询方法:当处理器需要和外设交换信息时,处理器主动读取对应设备接口状态信息,假如设备准备就绪,就进行数据通信,不然,就反复读取设备接口状态信息,直到设备状态信息为就绪状态为止。
2、 中止方法:此方法是外部设备进行主动联络方法,使用此方法前提是处理器必需含有一个中止请求信号输入端。当外部设备准备就绪时,使用状态信号端经过处理器中止请求输入端向处理器发出一个通知信号,通知处理器本外设已经含有通信条件了,而处理器可在条件许可时中止现行程序实施,而转向实施另一个和外设进行数据交换程序。优点是避免了高速处理器因等候低速外设而造成时间浪费,从而大大提升了处理器工作效率,所以它是现在处理器和外设进行信息沟通最普遍方法。
3、 DMA方法:直接存放器数据传输控制器,它工作原理是当io设备需要和主存进行数据传输时,由io设备向DMA控制器发出数据传输请求信号,而DMA控制逻辑向处理器发出总线请求信号HRQ;处理器让出总线控制权同时,处理器发出应答信号HLDA,经过控制逻辑再以DACK信号发到IO设备,至此主机和IO设备联络成功。接着,就按预先设置于地址指针控制机构中存放缓冲区起始地址开始在IO设备和主存之间传输数据,数据传输完成后,则由中止机构向处理器发出一个中止请求信号,以通知处理器。
异步和同时串行通信
串行通信依据时钟控制方法可分为同时通信方法和异步通信方法。假如发送设备和接收设备各自使用自己时钟来控制通信,那么这种通信方法叫做异步串行通信方法,这种通信方法许可双方时钟在正确度和稳定度上有一定差异,假如发送和接收双方使用同一个时钟来控制通信,那么这种通信方法就叫做同时串行通信方法,同时通信要求双方时钟必需严格一致。
波特率:是衡量数据传输速率指标。表示每秒钟传输二进制位数。
堆栈组织方法:
满递增堆栈:堆栈指针指向最终压入数据且由低地址向高地址生成。
满递减堆栈:堆栈指针指向最终压入数据且由高地址向低地址生成。
空递增堆栈:指向下一个将要放入数据空位置,且由低地址向高地址生成。
空递减堆栈:指向下一个将要放入数据空位置,且由高地址向低地址生成。
ARM核含有两种指令集:32位ARM和16位Thumb
ARM指令分为数据处理指令、程序跳转指令、程序状态寄存器操作指令、load/store指令、协处理器指令和异常指令。
AMR指令集和Thumb指令集区分:
Thumb指令集中指令不能使用“S”后缀来影响程序状态寄存器PSR中标志。
Thumb指令集只有一条分支指令能够使条件指令,而其它Thumb指令全部是无条件指令。
大多数指令为2操作数指令,只有极少数指令为3操作数指令
因为指令字长比较短,所以立即数取值范围要小得多
含有逻辑移位操作指令,堆栈操作愈加灵活
例:有两个128位数,第一个数由高到低存放在寄存器R7-R4中,第二个数由高到低存放在寄存器R11-R8中,编写程序把两个数相加后,运算结果由高到低存放到寄存器R3-R0中。
ADDS R0,R4,R8 ; 加低位字,不带进位
ADCS R1,R5,R9 ;加第二个字,带进位
ADCS R2,R6,R10 ; 加第三个字,带进位
ADCS R3,R7,R11 ; 加第四个字,带进位
注:ADC是带进位加法指令
RSB逆向减法指令、RSC带进位逆向减法指令、MUL32位积32位乘法运算指令、MLA带加法运算32位积32位乘法指令、SMULL64位积32乘法运算指令、SMLAL带加法运算64位积32位乘法运算指令、LDR字节加载指令、STR字节存放指令。
例:现已知寄存器R0中存放了数据a,寄存器R1中存放了数据b,编写程序求a和b最大条约数并将其存入寄存器RO
gcb CMP R0,R1 ; 比较a和b大小
SUBGT R0,R0,R1 ; 假如a大于b,a=a-b
SUBLT R1,R1,R0 ;假如a小于b,b=b-a
BNE gcb ;假如a!=b,返回gcb
MOV PC,LR ;假如a=b,返回主程序
例:已知R0=0x00000000和R1=0x00009000,并已知在存放器中首地址为0x00009000区域中存放了数据0x01010101,在首地址为0x00009004区域存放了数据0x0202。写出实施命令LDR R0,【R1,#4】后R0和R1数据
R0=0x0202,R1=0x00009000
例:实施命令LDR R0,【R1 ,#4】!后R0和R1中数据
R0=0x0202,R1=0x00009004
例:实施命令LDR R0,【R1】,#4后R0和R1中数据
R0=0x01010101,R1=0x00009004
LDMIA R0!,{R1-R3}是指将R0所指单元格中数据读出到R1中,RO自增1后再反复上述步骤。I表示增加,D表示降低,A表示取数后自增,B表示取数前自增。
非屏蔽中止信号输入端:带有开关能阻止中止请求中止输入端
中止管理原理:
在中止源和处理器之间有一个中止控制器,用来对每个中止源设置对应开关来决定一个中止源是否能发出中止请求。其中,中止控制开关受中止屏蔽寄存器装置来控制,寄存器每一位全部控制一个开关。大家把这个中止屏蔽寄存器作为中止控制器一个端口,从而使程序能够经过这个端口设置数据来对这些开关接通和断开进行控制。
中止实现方法:
硬件实现方法:为计算机系统配置一套能按优先等级对中止源进行 排队硬件电路,以确保等级高中止能先于等级低中止被处理器所响应。
软件实现方法:把全部中止源中止请求信号分成两路,其中一路经或逻辑送四处理器中止请求输入端,而另一路则送入中止接口电路经数据总线送入处理器。当处理器发觉有中止请求而响应中止并实施中止服务程序时,在中止服务程序中按中止优先级次序对各个中止源进行查询,一发觉中止源有中止请求,就转向该中止服务程序。
中止嵌套:
当处理器在处理一个低级中止时,接收到一个高级中止请求,此时,计算机系统将低级中止服务被高级中止服务所中止,这种现象叫做中止嵌套。
调用中止服务子程序方法:调用方法和转移方法
处理器响应中止条件:
处理器程序状态寄存器中止屏蔽标志处于非屏蔽状态
没有更高等级中止请求正在响应或正发出、正挂起
处理器在现行指令实施结束后
中止处理过程:
计算机系统就会响应中止请求,并自动将被中止程序下一条指令地址保留到堆栈和关闭中止;接着将自中止向量表查得和该中止源对应中止向量送入PC,并转去实施中止服务程序。
复位中止出现在系统上电或程序引发复位,它优先等级最高
软中止异常见于实现处理器工作模式切换
未定义指令异常见于模拟某种硬件功效或自定义部分指令来完成部分特殊功效。
中止响应四项准备工作:
把程序计数器PC中目前地址值保留到连接寄存器LR中
把目前途序状态寄存器中内容保护到模式私有寄存器中
将寄存器CPSR中MODE域设置为中止应进入运行模式
对cpsrI位和F位进行对应设置
响应复位中止时处理器中止系统工作过程、响应未定义指令异常时处理器中止系统
LPC结构框图
LPC可用地址空间为4GB,它被分成内部存放空间、外部可扩展存放空间和IO设备空间三部分。其中,片内存放空间占用2GB,片外存放空间占用1.5GB,IO设备占用了处于高端地址0.5GB空间。
EMC(外部存放器控制模块)和外部存放器组连接示意图
DB为数据总线(32位);AB为地址总线(24位);CS0、CS1、CS2和CS3用来选通Bank0、Bank1、Bank2、Bank3四个片选信号;BLS0、BLS1、BLS2和BLS3为四个字长控制信号。
LPC锁相环PLL原理图
定时器原理和功效:
定时器关键部件是一个32位加法计数器TC,用户程序可用匹配寄存器MR0-MR3来产生定时事件,用捕捉寄存器CR0-CR3来读取定时器目前值。
TC初始值为0,当TC被开启以后,计数器每收到一个计数脉冲计数器就加1.假如在计数过程中一直没有复位信号使之复位,则计数器会一直计到最高值0xFFFFFFFF,并在再加1时回卷到0x00000000重新开始计数,如此循环往复。
为产生定时事件,定时器配置有四个能够预先设置数据匹配寄存器MR0-MR3。在计数器TC计数过程中,当TC目前值和某个MR预置值相等时,该MR会触发一个由匹配控制寄存器MCR指定事件。
为使程序能够读取定时器目前值,定时器还配有四个能够由处理器外部引脚(CAP0-CAP3)触发捕捉寄存器CR0-CR3,在外部触发信号CAP有效时,CR能够捕捉计数器TC目前值。每个外部触发信号CAP全部能够经过LPC引脚连接模块和芯片外部一个活多个引脚相连接,该信号有效形式则由捕捉寄存器CCR相关位来指定。
脉宽调制器是一个能把输入信号大小转换成输出信号脉冲宽度转换电路或装置。
单边缘脉冲信号初始化代码
PWMPCR=0x200; //设置输出信号为单边缘信号
PWMMCR=0x02; //当匹配寄存器0匹配时复位定时器TC
PWMMR0=0x1000; //设置周期T=1000个定时脉冲
PWMMR1=0x600; //设置脉宽=600个定时脉冲
PWMLER=0x03; //许可匹配寄存器0和匹配寄存器1锁存
PWMTCR=0x09; //开启定时器TC
双边缘脉冲信号初始化代码:
PWMPCR=0x404; //设置输出信号为单边缘信号
PWMMCR=0x02; //当匹配寄存器0匹配时复位定时器TC
PWMMR0=0x1000; //设置周期T=1000个定时脉冲
PWMMR1=0x200; //设置脉宽=200个定时脉冲
PWMMR2=0x500; //设置500个定时脉冲
PWMLER=0x07; //许可匹配寄存器0、1、2锁存
PWMTCR=0x09; //开启定时器TC
看门狗:能够自动进行复位硬件电路。
看门狗实质上是一个定时器,假如它在一个预定时间内未接收到一个表示计算机工作正常信号,它就会依靠计数器溢出信号开启复位电路,将系统复位并重新开启;假如在预定时间内收到了工作正常信号,则将定时器本身复位,重新开始新定时过程。其中信号俗称喂狗
看门狗逻辑框图
看门狗初始化:
WDTC=0x10000; //设置TC时间限定值
WDMODE=0x03; //设置工作模式并开启看门狗
喂狗代码:
Void EDTFEED()
{
WDFEED=0xAA;
WDFEED=0x55;
}
LPC功率控制模式:
掉电模式:经过严禁PLL来冻结处理器和外设时钟,这时系统功耗仅取决于电路漏电流。外部设备中止请求会将处理器从功率控制状态中醒来。
空闲模式:仅停止对处理器时钟供给,任何中止请求全部能够将系统唤醒
UART(通用异步收发器)数据发送
发送数据时,处理器首先经过状态寄存器检验发送数据寄存器是否为空,假如为空,则将待发送数据由处理器写入发送数据寄存器UxTHR;然后由接口自动根据通信格式控制寄存器UxLCR设置,给数据加上开启位、奇偶校验位和停止位;最终经过发送移位寄存器将数据串行地经过发送端TxD发送给其它设备。
UART(通用异步收发器)数据接收
接收数据时,自接收端RxD接收到串行数据首先由接收移位寄存器接收;然后将其转换成并行数据暂存到接收寄存器UxRBR中,当处理器经过状态寄存器发觉接收寄存器为满状态时,处理器就读取该数据;接下来UART能够接收下一个数据。
SPI通信原理和SPI接口逻辑框图:
主设备移位寄存器数据输出端MOSI和数据输入端MISO和从设备移位寄存器连成环形结构。通信时,一个脉冲传送一位数据。在事先约定正脉冲或负脉冲作用下,在前沿时刻完成数据输出,在后沿时刻完成数据输入
IC总线组成
总线仲裁:
总线上全部器件全部含有取得总线控制权而成为主器件权力,所以常常会因为发生两个或多个器件同时企图取得总线控制权而发生所谓总线竞争。这时总线就会发生一个以某种规则确定主器件过程,这个过程叫做仲裁。
AD转换器框图
LPC中止管理原理
LPC处理器内置了中止控制器VIC。为把芯片外部外设中止引入芯片,并在引入过程中对外部中止进行管理,LPC还设置了外部中止通道。这么,LPC中止管理就形成了由外部中止通道、VIC和中止向量表所组成3层结构。
VIC组成图
VIC中止通道输入部分逻辑图
VIC分组控制部分图
快中止IRQ组处理部分图
独立按钮键盘:特点是每一个键全部占用一条接口线。
矩阵式键盘:每个按钮全部被安排在行线和列线交叉处,这么,16个键占用了8条接口线。这种键盘占用接口线数目为键数目标开平方。
触摸屏:由触摸检测部件和触摸屏控制器两部分组成。触摸检测部件安装在显示器前面,将用户触摸位置转换为电信号;而触摸屏控制器关键作用是从触摸点检测装置上接收电信号,并将它转换成数字量形式触点坐标信息馈送给处理器。
ISP叫做系统编程,无须从系统上拔下存放器芯片就能够对它进行编程;
IAP叫做在应用编程,许可在应用程序运行中由应用程序对存放器芯片进行编程。
向量表重映射概念:
在系统开启后,依靠硬件使MEM[1:0]=00,临时注销用户程序向量表地址空间,而把BootBlock向量表临时映射到从0x00000000开始64字节空间。这么,处理器在开机时从地址0x00000000处得到就是跳转到BootBlock指令,而先实施BootBlock了。至于用户程序实施,则由BootBlock在合适时机,再经过修改MEM[1:0]进行地址重映射,把用户程序中止向量表恢复到元位置。
LPC要求有效用户程序中止向量表全部指令机器码相加之和必需为0
RAM空间重映射
为提升系统效率,常常需要将放在Flash中用户程序中止向量表和后续FIQ服务程序转存到速度较高RAM中,然后把这块RAM空间重映射到0x00000000开始空间上。
Cache存放器组成:
它是一个存放阵列,其基础存放单位叫做cache行。一个cache行除了要存放从主存复制来信息之外,还要存放部分其它信息,所以每一个cache行又分为三段:cache标签(目录段)、状态段和数据段。
数据段用来存放从主存复制来指令或数据
Cache标签用来表示数据源地址
状态段用来表示数据状态。在cache行中设置了V标志来表示数据是否有效;设置d标志来表示数据是否被修改过。
颠簸现象:当应用程序需要连续访问和同一个cache行所共享多个内存块中数据时,会使cache频繁地进行内存块替换操作。
处理颠簸现象方法:多设置多个相同cache存放器,这么就会有多个含有相同行地址cache行,而使原来只有一个cache行内存块群有多个cache行使用,这种技术叫做cache组相联。
写策略:处理器核有两种对存放器进行写操作策略。一个是同时向cache存放器和内存写入数据,将两处数据同时进行更新,这种做法叫做直写法;另一个是处理器核只把数据写入cache行,只有当对应cache行需要替换时,才把数据写入内存,这种方法叫回写法。
行替换策略:cache控制器总是在一个淘汰完成后,即准备下一次需要淘汰行。Cache控制器选择下一个要丢弃行策略叫做替换策略。ARM核支持两种替换策略:轮转法和伪随机替换法。
失败时分配策略:当采取读写分配策略时,不管是在对内存进行读操作还是写操作,只要被操作对象未在cache中,cache控制器全部要为操作对象分配cache行,而采取读操作分配策略时,cache控制器只对内存读操作对象分配cache行,而写操作则只直接更新内存内容,不分配cache行。
虚拟存放空间:程序在辅存中存放空间
物理存放空间:计算机实际配置物理内存空间
映射机构重定位器:用来指示目标地址寄存器,把虚拟空间程序复制到物理空间中。
MMU用来完成虚拟存放管理工作。
页表是物理内存空间一个抽象,即用户是使用虚拟地址经过页表来使用实际物理内存。
快表工作原理:
处理器在使用虚拟地址访问某个虚存空间时,先到MMU快表中去查找所要访问虚存页是否有对应表项,假如有,则转换成物理地址去读写数据;假如没有就到内存页表中去查找。找到后就看表项中是否有有效页框码;假如有,则将其复制到快表中,并转换成物理地址去读写数据,假如没有,就产生一个缺页异常信号开启操作系统内存分配模块,为虚拟页分配页框并把页复制到该页框,同时在页表中建立对应页表项并将其复制到快表中,然后再转换成物理地址到物理内存去访问该数据。
二级页表工作原理:虚拟地址被分成三段,系统用主表基地址拼接了虚拟地址最高段;在主表中查找二级页表基地址,再把二级页表基地址拼接了虚拟地址中止;在二级页表查找页框码,最终把页框码拼接成虚拟地址低段,形成物理地址。
虚拟存放技术优点:
用户应用程序全部有自己页表,这使应用程序虚拟存放空间各自是独立,而不会发生相互干扰,从而实现了用户存放空间保护。
用户应用程序值使用虚拟地址,而无须去考虑物理内存问题。能够运行比物理内存大应用程序。
冯·诺依曼机关键特点:
计算机由运算器、存放器、控制器、输入设备和输出设备五部分组成。指令和数据以相同地位存放在存放器中,并可按地址对它们进行访问。
指令在存放器中次序存放。
机器以运算器为中心,数据传输必需经过运算器。
嵌入式和通用系统相比:
专用性强。嵌人式系统通常是面向某个特定应用,以嵌入式系统硬件是为特定
用户群设汁.它通常郜含有某种专用性特点。
可裁剪性好。嵌入式系统硬件和操作系统全部必需设计成可裁剪,方便用户能够依据实际应用需要量体裁衣,去除冗余,从而使系统在满足应用要求前提下达成最精简配置。
实时性和可靠性好。嵌入式系统中软件通常不是存放于磁盘等载体中,而全部固化在
存放器芯片或单片系统存放器里,再加上精心设计嵌入式操作系统,从而能够快速
地响应外部事件,同时也大大提升了系统可靠性。
功耗低。因为嵌入式系统中软件通常不是存放于磁盘等载体中,而全部固化在存放器
芯片或单片系统存放器之中,所以它含有功耗低特点,从而便于把它应用在飞机、
舰船、数码相机等移动设备中。
并行总线
并行总线由多条传输线组成,其数目和被传输数据位数相同,每条线负责传输一位二进制代码。它能够一次同时传送一个多位二进削代码,总线中传输数目,叫做总线宽度。
串行总线
实际系统中,也能够使用一根线来传送多位二进制信息。这个多位二进制代码在这根线上一位接着一位地逐一传输,这么总线叫做串行总线。
显然,并行总线传输多位信息速度快,但使用传输线数目多;而串行传输多位信息速度慢,但使用传输线数目少。所以,并行总线通常见来进行短距离离信息传输,而串行总线用来进行远距离传输。
异步和同时串行通信
依据时钟控制方法,可分为同时通信方法和异步通信方法。假如发送设备和接收设备各自使用自己时钟来控制通信,这种通信方法叫做异步串行通信方法。同时通信要求双方时钟必需严在正确和稳定。假如发送设备和接收设备各自使用同一个时钟来控制通信,那么叫同时串行通信方法。
7种运行模 作用
用户模式( LTSR) 用户程序运行模式
快速中止模式(FIQ 当需要和外设进行高速数据传输时使用模式
中止模式cIRQ) 用于一般中止处理模式
管理模式( SVC) 操作系统使用保护模式
中止模式( ABT) 当数据或指令预取犯错时进入模式
系统模式(SYS) 含有特权操作系统任务运行模式
未定义指令中止模式(UND) 当处理器试图实施未定义指令时进入模式
展开阅读全文