嵌入式系统复习总结

一、嵌入式系统定义:以应用中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

二、硬件设计的步骤:1需求和功能分析,这是系统设计的首要任务和依据。2设计方案的规划,主要操作有构造系统体系结构;软硬件功能划分;性能指标评估;可维护性;3核心部件选型,核心部件通常指系统的处理器、微控制器或DSP等;4主要部件选型,主要部件有存储器、测试接口、外设接口等;5 基础部件选型,基础部件指系统设计所需的电源电路、时钟电路、复位电路、低功耗电路等;6 原理图设计;7 PCB设计;8 系统调试;9产品维护和升级。

三、嵌入式操作系统EOS(Embedded Operating System):嵌入式应用软件的基础和开发平台,它是一段嵌入在目标硬件中的软件,用户的其他应用程序都建立在嵌入式操作系统之上。目前有:linux、uClinux、WinCE、Uc/OS-II、VxWorks等,它们具有实时性高、可靠性好、可裁剪、体积小等特性。实时系统是指一个能够在指定或者确定的时间内完成系统功能以及对外部或内部、同步或异步时间作出响应的系统。嵌入式实时操作系统(Real Time Embedded Operating System)是一种实时的、支持嵌入式系统应用的操作系统,是嵌入式系统(包括硬、软件系统)极为重要的组成部分。

四、S3C44B0X功能:


Ø  2.5V ARM7TDMI内核,带有8K高速缓存器(SAMBAII总线体系结构);

Ø  外部存储器控制器(FP/EDO/SDRAM控制,片选逻辑);

Ø  LCD控制器(最大支持256色STN,LCD具有专用DMA);

Ø  2通道通用DMA、2通道外设DMA并具有外部请求引脚;

Ø  2通道UART,带有握手协议1通道SIO;

Ø  1通道多主IIC-BUS控制器;

Ø  1通道IIS-BUS控制器;

Ø  5个PWM定时器核1通道内部定时器;

Ø  看门狗定时器;

Ø  71个通用I/O口8通道外部中断源;

Ø  功耗控制:具有普通、慢速、空闲核停止模式;

Ø  8通道10位ADC;

Ø  具有日历功能的RTC;

Ø  具有PLL的片上时钟发生器。


5种模式

正常模式:正常运行模式;低速模式:不加PLL 的低时钟频率模式;

空闲模式:只停止CPU 的时钟;停止模式:停止所有的时钟;

LCD的SL空闲模式:SL 空闲模式的进入将导致 LCD 控制器开始工作。此时,CPU和除LCD控制器外的所有外设都停止工作。

五、嵌入式最小系统是指由保证嵌入式微处理器可靠工作所必需的基本电路组成的系统,通常包括处理器单元、时钟单元、复位单元、存储器单元、供电单元和调试接口。

基于ARM的嵌入式最小系统基本组成主要包括:基于ARM核的微处理器、电源电路、复位电路、时钟电路、存储器电路(FLASH和SDRAM)、UART接口电路和JTAG调试接口。

六、异常处理的基本步骤:1将下一条指令的地址存入相应连接寄存器LR,将CPSR复制到相应的SPSR中。2根据异常类型,强制设置CPSR的运行模式位。3强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。如果异常发生时,处理器处于Thumb状态,则当异常向量地址加载入PC时,处理器自动切换到ARM状态。

异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回:1将连接寄存器LR的值减去相应的偏移量后送到PC中。2将SPSR复制回CPSR中。若在进入异常处理时设置了中断禁止位,要在此清除。

七、调用:

1、   汇编访问C变量全局:汇编可通过地址间接访问在C语言中声明过的全局变量。通过使用important关键词引入全局变量,并利用ldr与str指令根据全局变量的地址访问他们。

2、   C语言调用汇编:汇编语言设计首先遵守atpcs。首先在汇编文件需要使用EXPORT为操作来声明,使得本程序可以被其他程序调用。同时要在C程序调用汇编程序之前要在C程序中使用extern关键字作为引入的汇编程序的声明;

3、   汇编调用C:汇编语言设计首先遵守atpcs。需要在汇编中使用IMPORT伪操作来声明对应的C语言程序。在汇编语言程序中通过BL指令来调用子程序。

八、嵌入式系统特点:1“专用”计算机系统,2运行环境差异很大,3比通用PC资源少,4功耗低、体积小、集成度高、成本低,5具有完整的系统测试和可靠性评估体系,6具有较长的生命周期7需要专用开发工具和方法进行设计,8包含专用调试电路,9多学科知识集成系统。应用范围:1汽车;2工业控制;3通信设备;4消费电子5商业终端6航空航天、军事需求。

嵌入式应用的多样性,造就了嵌入式微处理器的多样性,32位嵌入式RISC处理器产品主要有MIPS公司的MIPS,IBM公司的PowerPC系列,Sun公司的Sparc和ARM公司的基于ARM核系列。

九、嵌入式系统的设计过程:(1)系统定义与需求分析 (2)系统设计方案的初步确立 (3)初步设计方案性价比评估与方案评审论证 (4)完善初步方案、初步方案实施 (5)软硬件集成测试 (6)系统功能性能测试及可靠性测试

ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令;第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且,处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。但ARM微处理器在开始执行代码时,应该处于ARM状态。

十、ARM微处理器:7种运行模式

用户模式(usr):ARM处理器正常的程序执行状态。

快速中断模式(fiq):用于高速数据传输或通道处理。

外部中断模式(irq):用于通用的中断处理。

管理模式(svc):操作系统使用的保护模式。

数据访问终止模式(abt)当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。

系统模式(sys):运行具有特权的操作系统任务。

未定义(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。除用户模式以外,其余的所有6种模式称之为非用户模式,或特权模式;其中除去用户模式和系统模式以外的5种又称为异常模式,常用于处理中断或异常,以及需要访问受保护的系统资源等情况。工作状态一般有两种,并可在两种状态之间切换:第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令;第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。但ARM微处理器在开始执行代码时,应该处于ARM状态。

十一、 ARM寄存器: ARM处理器共有37个寄存器。其中包括:31个通用寄存器,包括程序计数器(PC)在内。这些寄存器都是32位寄存器。以及6个32位状态寄存器。

ARM指令集可以分为6大类:数据处理指令(算术运算指令;逻辑运算指令;数据传送指令;比较指令;测试指令;乘法指令);Load/Store指令;跳转指令;程序状态寄存器处理指令;协处理器指令;异常产生指令。

ARM处理器支持的基本寻址方式有7种:立即寻址;寄存器寻址;寄存器间接寻址;基址加偏址寻址;堆栈寻址;快拷贝寻址;相对寻址。

两种常见的ARM开发环境及其特点:ADS/SDT IDE开发环境:它由ARM公司开发,使用了CodeWarrior公司的编译器; 集成了GNU开发工具的IDE开发环境:它由GNU的汇编器as、交叉编译器gcc、和链接器ld等组成。

十二、Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。BootLoader是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的 Boot Loader 几乎是不可能的。尽管如此,我们仍然可以对BootLoader归纳出一些通用的概念来,以指导用户特定的 Boot Loader 设计与实现。

BootLoader包含两种不同的操作模式:启动加载(Boot loading)模式:Boot Loader 从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行,整个过程并没有用户的介入。下载(Downloading)模式:Boot Loader 将通过串口连接或网络连接等通信手段从主机(Host)下载文件

嵌入式系统的发展趋势:

1即将迎来以ARM为核心的32位浪潮

嵌入式系统应用的高低端 :以4位、8位单片机或为控制器(MCU)为核心的嵌入式系统,早已广泛的应用于工业控制、军事、航空航天、家电等各个领域,极大地推动了IT技术的发展。目前这些属于最低端应用的嵌入式系统。这些低端应用市场范围非常广泛,局部带动了低端应用。

即将来临的32位浪潮:随着嵌入式系统的不断发展,当应用越来越复杂、使用范围越来越广时,8位处理器已经无法满足的需要,此时32位SoC为高性能嵌入式系统开发提供了功能丰富的硬件平台,也为实时嵌入式操作系统的广泛应用提供了硬件基础。因此,以32位处理器作为高性能嵌入式系统开发的核心已是嵌入式技术发展的必然趋势。

32位向ARM 转移,形成ARM市场主导地位:在嵌入式微处理器中,虽然有多种嵌入式处理器可供选择,但是ARM处理器核以其低功耗、高性能等突出优点已在32位嵌入式应用中稳居第一。ARM已成为移动通信、手持计算、多媒体数字消费等嵌入式解决方案事实上的标准。优良的性能和广泛的市场定位极大地增加和丰富了ARM的资源,加速了ARM处理器面向各种应用的系统芯片的开发和发展。

2嵌入式系统与Internet的融合:

为适应嵌入式分布处理结构和应用上网需求,面向21世纪的嵌入式系统要求配备标准的一种或多种网络通信接口。针对外部联网要求,嵌入设备必需配有通信接口,相应需要TCP/IP协议簇软件支持;由于家用电器相互关联(如防盗报警、灯光能源控制、影视设备和信息终端交换信息)及实验现场仪器的协调工作等要求,新一代嵌入式设备还需具备IEEE1394、USB、CAN、Bluetooth或IrDA通信接口,同时也需要提供相应的通信组网协议软件和物理层驱动软件。为了支持应用软件的特定编程模式,如Web或无线Web编程模式,还需要相应的浏览器,如HTML、WML等。      

3未来嵌入式系统的发展趋势

近几年,在消费电子、工业应用、军事国防、网络设备等领域的嵌入式应用,为中提供了难得的发展机遇。另外,嵌入式技术又不断地刺激新的技术的产生——信息家电、医疗电子病历、微小型智能武器等方面应用也日益广泛,应用深度也进一步加强。

互联网的普及、微电子加工工艺的提高、3C技术的普遍融合、使用者需求的增多、信息服务应用的生活化、技术的渗透性和融合性、设备的关联性以及个性化服务的普遍需求。因而,移动化处理信息,即随时随地的获取信息、处理信息等,成为信息社会把握先机而制胜的必然武器。日益发展的嵌入式已能够满足人们随时随地利用任何设备和手段来接收、处理和发布信息的需求。低成本、低功耗的消费电子和宽带、无线通信以及处理运算的高效计算结合技术将进一步刺激和加速嵌入式技术的发展,造就更广阔的市场空间。

 

第二篇:嵌入式系统复习总结

第一章 嵌入式系统导论

一、嵌入式系统架构:

(1)嵌入式系统的组成:嵌入式系统由硬件和软件两大部分组成,用于实现对其他设备的

控制、监视或管理等功能。前者是整个系统的物理基础,它提供软件运行平台和通信接口;后者实际控制系统的运行。

1、硬件:嵌入式微处理器、外围电路、外围硬件设备。

2、软件:嵌入式操作系统、用户的应用程序。

(2)嵌入式系统的软/硬件框架

硬件:嵌入式微处理器、外围电路、外围硬件设备。

软件:嵌入式操作系统、用户的应用程序。

二、嵌入式定义:是以现代计算机技术为基础,以应用为中心,可以根据系统或用户需求(功能、可靠性、成本、体积、功耗、环境等),灵活裁剪软硬件模块的专用计算机系统;

1、IEEE(国际电气和电子工程师协会)对嵌入式系统的定义:

“用于控制、监视或者辅助操作机器和设备的装置”。

2、广义定义:任何一个非计算机的计算系统

3、通俗的说法:1、把一个计算机嵌入到其他系统中构成的一个系统

2、是一个应用

3、主体是其他内容,计算机作为一个设备出现

三、嵌入式系统的主要特点:

(1)面向应用,(2)软硬件可剪裁。(3)专用计算机控制系统。

四、嵌入式系统与单片机、PC相比的优势

(1)性能方面:采用32位RISC结构微处理器,主频从30MHz到624MHz以上,处理能力大大超出单片机系统,接近PC机的水平,但体积更小,能够真正地“嵌入”到设备中; 实性性方面:嵌入式机控制器内嵌实时操作系统(RTOS),能够完全保证控制系统的强实时性;

(2)人机交互方面:嵌入式控制器可支持大屏幕的液晶显示器,提供功能强大的图形用户界面;输入方法多种多样;

(3)系统升级方面:嵌入式控制器可为控制系统专门设计,其功能专一,成本较低,而且开放的用户程序接口(API)保证了系统能够快速升级和更新。

嵌入式系统的应用

家用方面:数字电视、信息家电、智能玩具、手持通讯、存储设备的核心。

信息家电技术特点:

1、处理器发展趋向低成本、高整合性与低耗能。

2、整合数字与模拟处理的技术。

3、较PC更强调通讯能力。

4、利用软件增加产品的差异性(高附加价值的关键)

五、使用嵌入式操作系统的优缺点

优点:1、使程序的设计和扩展变得容易,大大提高了开发效率。2、充分发挥32位CPU多任务的潜力,实现多任务设计,能够充分利用硬件资源和实现资源共享。3、实时性和健壮性能够得到更好的保证。

缺点:嵌入式操作系统增加ROM/RAM等额外开销,5~10%的CPU额外负荷。

六、嵌入式操作系统分类

常见的几种嵌入式操作系统:. uC/OS II 2. uCLinux 3. Windows CE 4.嵌入式Linux

七、冯诺依曼架构

早期的冯诺依曼架构→改进的冯诺依曼架构→冯诺依曼架构的扩展(1)→哈佛结构------冯诺依曼架构的扩展(2)

第二章 Cortex-M3微处理器

一、Cortex-M3 内核原理:

1、Cortex-M3是ARM公司推出的新一代32位低成本、高性能通用微控制器内核;内核基于最新的ARMv7架构,采用Thumb-2指令集,集成了分支预测,单周期乘法,硬件除法等众多功能强大特性。

二、Cortex-M3内核主要包括:

1、中央处理器核心(Cortex-M3 Core)

即通常所说的CPU,包括指令提取单元、译码单元、寄存器组和ALU等。

2、嵌套向量中断控制器(NVIC)

NVIC是一个在Cortex-M3中内建的中断控制器,与CPU核心紧密耦合。包含众多控制寄存器,支持中断嵌套模式,提供向量中断处理机制等功能。中断发生时,自动获得服务例程入口地址并直接调用,大大缩短中断延时。

3、系统时钟(SYSTICK)

由Cortex-M3内核提供的一个24位倒计时计数器,可产生定时中断,作为系统定时器用。所有Cortex M3处理器均有该计数器,因此系统级移植时不必修改系统定时器相关代码,移植效率高。特别注意的是,即使系统处于睡眠模式,该计数器也能正常工作。

4、存储器保护单元(MPU)

可选单元。可以视为一个简化的存储器管理单元(MMU, Memory Management Unit),但重点在于存储器保护。即通过将存储器划分成存储区域块,并设置其存取特性(是否缓冲、是否读写、是否执行、是否共享等)对存储区域块进行访问保护。例如,设置某存储区域块在用户级下变成只读,从而阻止一些用户程序破坏该区域的关键数据。

5、总线矩阵

总线矩阵是Cortex-M3内部总线系统的核心。它是一个32位的AMBA(Advanced Microcontroller Bus Architecture) AHB Lite总线互连网络,通过该网络把处理器内核及调试接口连接到不同类型和功能划分的外部总线。

(1)提供数据在不同总线上的并行传输功能。 总线: 系统总线,ICode指令总线、DCode数据总线、私有外设总线等

(2)总线矩阵还提供了附加数据传送功能。如:写缓冲、位带(bit banding)等,支持非对齐数据访问,以及总线桥(AHB to APB Bridge),以支持向APB总线的连接。

三、总线

1、总线(Bus)是一种内部结构,用于在计算机内部CPU、内存、输入、输出设备等各个部件之间传递信息。

2、按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线。

3、主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。

Cortex-M3 总线结构

I-Code指令总线 D-Code数据总线 系统总线AHB(静态RAM,外部RAM,设备#1,设备#2,AHB to APB桥) 外设总线(I/O,UART,定时器)

四、Cortex-M3寄存器

1、低组寄存器(R0~R7):所有指令均能访问,字长为32位,复位后的初始值是随机的。

绝大多数16位 Thumb指令只能访问R0~R7。

2、高组寄存器(R8~R12):只有很少的 16位Thumb指令能访问,32位指令则不受限制,复位后的初始值是随机的。

3、堆栈寄存器(R13):又称“堆栈指针SP”.

4、R14 寄存器:又称链接寄存器LR。

5、程序计数寄存器(R15):又称程序计数器PC 。

(1)Cortex-M3中的指令是隶属于Thumb2指令集,且至少是半字对齐的,所以PC的LSB总是读回0。

(2)在编写分支指令时,无论是直接写PC的值还是使用分支指令,都必须保证加载到PC的数值是奇数(即LSB=1),用以表明当前指令在Thumb-2状态下执行。倘若写了0,则视为企图转入ARM模式,Cortex-M3将产生一个fault异常。

(3)Cortex-M3内部使用了指令流水线,读取PC内容时返回的值是当前指令的地址+4(?)。比如说:0x1000: MOV R0, PC ;R0 = 0x1004

6、三类特殊功能寄存器:(1)程序状态寄存器组(2)中断屏蔽寄存器组(3)控制寄存器

7、特殊功能寄存器,有预定义的功能,只能采用MSR和MRS指令进行访问。

五、工作模式及特权等级

1、线程模式+用户级 2、线程模式+特权级 3、Handler模式+特权级

复位后,处理器首先进入线程模式+特权级。

工作模式(续)

(1)在“线程模式+用户级”下,

1、禁止访问包含配置寄存器以及调试组件寄存器的系统控制空间(SCS);P39

2、禁止使用MSR访问除APSR外的特殊功能寄存器。

(2)在特权级下,

1、可通过置位CONTROL[0]来进入用户级;

2、不管是任何原因产生了任何异常,处理器都将以特权级来运行其服务例程;

3、异常返回后将回到产生异常之前的特权级。

(3)用户级下

1、代码不能再试图修改CONTROL[0]来回到特权级。

2、它必须通过产生异常,并通过异常处理程序程序(处于特权级下)来修改CONTROL[0],才能在线程模式拿到特权级。

工作模式(续)

1、特权等级和堆栈指针的选择均由CONTROL负责。

2、CONTROL[0]有在特权级下才能访问。

3、当 CONTROL[1]=0 时,只使用 MSP,此时用户程序和异常 handler 共享同一个堆栈。这也是复位后的缺省使用方式。

4、当 CONTROL[1]=1时,进入异常,自动压栈使用的是PSP,进入异常后自动改用 MSP(处理模式永远使用MSP),退出异常时切换回 PSP,并且从进程堆栈上弹出数据。

5、通过读取 PSP 的值,OS 就能够获取用户应用程序使用的堆栈,了解被压入寄存器的内容.

六、Cortex-M3微处理器工作状态

Cortex-M3 处理器有两种工作状态:

1、Thumb-2 工作状态:Thumb-2 指令执行状态。

2、调试工作状态:处理器停机调试时(in halting debug)进入该状态。

七、异常和中断

1、异常

(1)事件:为触发系统状态改变的某种行为(消息或请求等,消息或请求由某个对象发出,并由某个对象接收和处理。)

(2)异常:当软硬件出现不正常的行为时,通常会发出代表错误或危险的警告,这类事件被称为“异常”事件。

(3)异常的处理:CPU中止正在运行的程序进入特权状态去执行特定的指令或程序。

(4)通过对异常进行处理,能够控制错误的代码,避免错误的蔓延。

(5)根据触发源的不同,一般将异常分为同步异常和异步异常。

①同步异常是指与CPU当前执行的指令密切相关、造成CPU正常运行状态被中止的系 统事件(或称内部事件),如指令未定义、指令预取中止、数据访问中止等。

②异步异常则是由于外部事件的触发而产生的,与CPU当前执行的指令无关,故被称为异步异常。复位即属于异步异常。

2、中断

(1)由于微处理器内部事件或外部事件(外设请求服务),引起CPU中止正在运行的程序,转去执行相应的其他程序(一般称之为服务程序),完毕后再返回被中止的程序,这一过程被称为中断。

(2)异常是事件的子集,中断则是处理各种异常和外设请求服务的一种机制或方式。

(3)CPU与外部设备之间的数据交换,可以采取无条件传送、查询传送,也可以采用中断的方式。若采取中断的方式,相应的服务程序一般被称作“中断服务(子)程序”。

3、常见的异常/中断有:外部中断、非法指令操作、非法数据访问、错误(总线错误、存储器错误、用法错误、硬错误)、不可屏蔽中断等。

八、Thumb-2指令

1、概述、特点

Thumb-2并不是Thumb的升级,它是另起炉灶,继承并集成了传统的Thumb指令集和ARM指令集的各自优点,可以完全代替Thumb和原先的ARM指令集,是Thumb指令集和ARM指令集的一个超集。Thumb-2指令集体系架构,无需处理器进行工作状态的显示切换,就可运行16位与32位混合代码。与ARM体系架构相比,速度提高大约15%到20%。

2、Thumb-2指令集分类

按照指令的长度分类,Thumb-2指令集可分为两种:(1)16-bit指令集;(2)32-bit指令集。 按功能和寻址方式分类

(1)数据传送指令(2)Load/Store指令(3)批量Load/Store指令(4)算术四则运算指令

(5)逻辑操作指令(6)移位和循环指令(7)符号扩展指令(8)字节调序指令REV, REVH,REV16,REVSH(9)位域处理指令(10)子程序调用与无条件转移指令

(11)隔离(barrier)指令(12)饱和运算指令(13) If‐Then指令(15)比较跳转指令等

第三章

一、最小系统

定义:在尽可能减少上层应用的情况下,能够使系统运行的最小化模块配置。

1、基于MCS-51嵌入式最小系统:电源,晶振,复位电路

2、基于Cortex-M3的最小系统:

最小系统的组成: ①电源、②时钟、③复位电路、④存储系统、⑤调试系统。

(1)时钟模块——通常经ARM内部锁相环进行相应的倍频,以提供系统各模块运行所需的时钟频率输入

(2)Flash存储模块——存放启动代码、操作系统和用户应用程序代码

(3)SDRAM模块——为系统运行提供动态存储空间,是系统代码运行的主要区域

(4)JTAG模块——实现对程序代码的下载和调试

(5)UART模块——实现对调试信息的终端显示

(6)复位模块——实现对系统的复位

其中:Cortex-M3微处理器、FLASH和SDRAM模块是嵌入式最小系统的核心部分。

二、存储器与总线架构

1、存储子系统基本构架

(1)驱动单元:ICode总线(I-bus)、DCode总线(D-bus)、System总线(S-bus)、通用DMA总线(GP-DMA bus)

(2)被动单元:共有三个,分别为内部SRAM、内部闪存存储器、AHB到APB的桥(AHB2APBx)

(3)总线矩阵:用来将处理器和调试接口与外部总线相连。

2、存储器映像

程序存储器、数据存储器、寄存器和输入输出端口被组织在同一个4GB的线性地址空间内。数据字节以小端格式存放在存储器中。一个字里的最低地址字节被认为是该字的最低有效字节,而最高地址字节是最高有效字节。

位带9分为:(1)外设存储器、(2)嵌入式SRAM

3、位带绑定(计算公式)

Cortex-M3存储器包括两个位带区,分别为SRAM 和外设存储区域中的最低的1MB。 “位带操作”,就是:

(1)对 32MB SRAM 别名区的访问映射为对1MB SRAM的bit-band 区的访问。

(2)对 32MB 外设别名区的访问映射为对1MB 外设bit-band 区的访问。

计算公式:bit_word_addr=bit_band_base+(byte_offset*32)+(bit_number*4)

例1、映射别名中SRAM地址为0x20000300的字节中的位2:

0x22006008=0x22000000+(0x300*32)+(2*4)。

对0x22006008地址的写操作和对SRAM中的地址0x20000300字节的位2执行“读—改—写”操作有着相同效果。读0x22006008地址返回SRAM中地址0x20000300字节的位2的值(0x01或0x00)。

三、嵌套向量中断控制器(NVIC)及其特征

1、STM32F103的Cortex-M3内核中集成了中断控制器,芯片制造厂商可以对其进行配置,以实现低延迟的中断处理和有效处理晚到的中断。

2、嵌套向量中断控制器(Nested Vectored Interrupt Controller,NVIC)的寄存器以存储器映射的方式来访问,除了包含控制寄存器和中断处理的控制逻辑之外,NVIC 还包含了存储器保护单元MPU的控制寄存器、SysTick 定时器以及调试控制,具有43(低密度STM32F103)/中高密度STM32F103)(60个可屏蔽中断通道(不包含16 条Cortex-M3 的中断线)、16 个可编程的优先等级(使用4个bit位进行优先级设置)、低延迟的异常和中断处理、电源管理控制等功能,可实现超级多向量中断处理。

3、NVIC使用的是基于堆栈的异常模型。在处理中断时,将程序计数器,程序状态寄存器,链接寄存器和通用寄存器压入堆栈,中断处理完成后,再恢复这些寄存器。堆栈处理是由硬件完成的,无需用汇编语言创建中断服务程序的堆栈操作。

4、中断嵌套处理过程中,中断可以改为使用比先前服务程序更高的优先级,而且可以在运行时改变优先级状态。使用尾部链接(tail-chaining)连续中断技术只需消耗6个CPU周期,相比于 32个时钟周期的连续堆栈操作,大大降低了延迟,提高了性能。

5、如果在更高优先级的中断到来之前,NVIC已经压堆栈了,那就只需要获取一个新的向

量地址,就可以为更高优先级的中断服务了,而不用出栈操作来服务新的中断。这种做法是完全确定的且具有低延迟性。

四、外部中断/事件控制器(EXTI)

1、外部中断/事件控制器(EXTI)由19个产生事件/中断要求的边沿检测器组成。每个输入线可以独立地配置输入类型(脉冲或挂起)和对应的触发事件(上升沿或下降沿触发,或者双边沿都触发)。每个输入线都可以被独立屏蔽。挂起寄存器保持着状态线的中断要求。

2、EXTI控制器的主要特性如下:

(1)每个中断/事件都有独立的触发和屏蔽;

(2)每个中断线都有专用的状态位;

(3)支持多达 19 个中断/事件请求;

(4)检测脉冲宽度低于 APB2 时钟宽度的外部信号。

时钟和启动

时钟是整个数字电路的驱动之源,所有数字部件的运行都依赖时钟信号的输入才得以向前推进。一般来说,外部的频率较低的时钟振荡器信号经过倍频后得到系统时钟信号CLK。 在STM32F103中,三个不同的时钟源可以用来驱动系统时钟(SYSCLK): HSI晶振时钟(高速内部时钟信号) ;HSE晶振时钟(高速外部时钟信号) ;PLL时钟。

第四章

一、DMA工作过程

(1)外设向DMAC发出请求;(2)DMAC通过HOLD向CPU发出总线请求;(3)CPU响应释放三总线,并且发应答HLDA;(4)DMAC向外设发DMA应答;(5)DMAC发出地址、控制信号,为外设传送数据;(6)传送完规定的数据后,DMAC撤销HOLD信号,CPU也撤销HLDA信号,并且恢复对三总线的控制。

二、DMA(Direct Memory Access)原理:

可以不通过CPU而在DMA控制器的控制下,高速地与I/O设备和存储器之间交换数据。CPU除了在数据传输开始和结束时做一些处理外,在传输过程中,CPU可以进行其他工作。这样,在大部分时间里,CPU和输入/输出都处于并行操作状态。所以,使整个计算机系统的效率大提高。

三、DMA传输要素:

(1)传输源:DMA控制器从传输源读出数据;

(2)传输目标:DMA控制器将数据传输的目标;

(3)触发信号:用于触发一次数据传输的动作,执行一个单位的传输源至传输目标的数据传输;可以用来控制传输的时机

第五章

一、GPIO功能描述

1、概念:通用输入输出GPIO模块为CPU内核提供了数字输入输出功能,是微控制器外围I/O模块中不可或缺的基本模块。包括输入输出的方向配置、引脚功能复用和重映射、是否可申请中断、PWM输出等。

2、GPIO端口的每个位(引脚)可以由软件分别配置成8种模式(4输入+2输出+2复用输出):浮空输入、上拉输入、下拉输入、模拟输入、开漏输出、推挽式输出、复用功能推挽式输出、复用功能开漏输出。

每个I/O口可自由编程,但I/O端口寄存器必须按32位字被访问(不允许半字或字节访问)

3、当I/O端口配置为输入时:①输出缓冲器被禁止②施密特触发输入被激活③根据输入配置的不同,弱上拉和下拉电阻被连接④出现I/O脚上的数据在每个APB2时钟被采样到输入数据寄存器⑤对输入数据寄存器的读访问可得到I/O状态。

当I/O端口配置为输出时:①输出缓冲器被激活(开漏模式,推挽模式)②施密特触发输入被激活③弱上拉和下拉电阻被禁止④出现I/O脚上的数据在每个APB2时钟被采样到输入数据寄存器⑤在开漏模式时,对输入数据寄存器的读访问可得到I/O状态⑥在推挽模式时,对输出数据寄存器的读访问得到最后一次写的值。

4、复用功能(AF):使用默认复用功能前必须对端口位配置寄存器编程。

(1)对于复用的输入功能,端口可以配置成:输入模式(浮空、上拉或下拉);复用功能输出模式:输入驱动器被配置成浮空输入模式。

(2)对于复用输出功能,端口必须配置成复用功能输出模式(推挽或开漏)

(3)对于双向复用功能,端口位必须配置成复用功能输出模式(推挽或开漏)。这时,输入驱动器被配置成浮空输入模式。

第六章

一、输入捕获和输出比较模式

1、输入捕获功能:用来检测外部事件或输入信号。

2、输出比较模式:是指一种通过利用定时器计数值,产生特定时序波形的方法,进而实现对外部电路的控制。

二、通用定时器(TIMx)

STM32F103xx增强型系列产品中内置3个同步的标准定时器。每个定时器都有: ①一个16位的自动加载递加/递减计数器、

②一个16位的预分频器和4个独立的通道,

③每个通道都可用于输入捕获、输出比较、PWM和单脉冲模式输出,

④在最大的封装配置中可提供最多12个输入捕获、输出比较或PWM通道。

⑤它们还能通过定时器链接功能与高级控制定时器共同工作,提供同步或事件链接功能。 ⑥在调试模式下,计数器可以被冻结。

任一标准定时器都能用于产生PWM输出。每个定时器都有独立的DMA请求机制。

第七章

一、串行通信的基本原理

1、概念:串行数据传输通常用于连接两个距离较远的物理设备或电路模块,常基于微控制器内部自带的通用同步/异步收发器并辅以电平转换电路实现。

2、基本原理

二、分频设置和波特率选择

1、分频设置:根据系统主时钟设置和USART传输所需要的驱动时钟频率,计算分频系数并写入到相关控制寄存器的过程。

波特率和USART的时钟输入信号频率关系:Baud(rx)=Baud(tx)=f(ck)/(16*USARTDIV) 例1、如果DIV-Mantissa=27d,DIV-Fraction=12d,于是

Mantissa(USARTDIV)=27d;

Fraction(USARTDIV)=12/16=0.75d;

所以,USARTDIV=27.75

例2、 要求USARTDIV=25.62d,就有:

DIV-Fraction=16*0.62d=9.92d,近似等于10d,转换成16进制就是A;

DIV-Mantissa=mantissa(25.620d)=25d,转换成16进制就是19

第十一章

AD,DA

A/D变换的基本原理:

模拟信号转化为数字信号包含三个关键步骤:采样、量化和编码。

ADC模块的主要技术指标和选型考虑:

位数:即量化位数,它在很大程度上影响了ADC的精度和成本。

采样速率:表示单位时间内(通常为1S)能够正确完成的采样量化和编码操作次数。

分辨率:指数字量变化一个最小量时模拟信号的变化量,定义为满刻度与2的n次方的比值。 量化误差:由于A/D的有限分辨率而引起的误差。

绝对精度:指在整个刻度范围内,任一输入数码所对应的模拟量实际输出值与理论值之间的最大误差。

相对精度:用最大误差相对于满刻度的百分比表示。

偏移误差:表示A/D理想输出与实际输出之差,所有数字代码都存在这种误差。

增益误差:预估传递函数和实际斜率的差别,通常在模数转换器最末或最后一个传输代码转换点计算。

AD线性误差:表示实际传输特性与直线的最大偏差,根源在于ADC中模拟放大环节的非线性工作特性,一般被表示为满刻度的百分比(也可以LSB给出)。

微分非线性:ADC相邻两刻度之间最大的差异。

积分非线性:表示ADC在所有的数值点上对应的模拟值和真实值之间误差最大的那一点的误差值,也就是输出数值偏离线性最大的距离。

输入失调电压/电流:在对直流或低频信号进行A/D交换时,最主要的两个指标是输入失调电压/电流。

输入阻抗:

增益带宽积GBP:是衡量放大器性能的重要参数,他是增益和带宽的乘积。

运放的单位增益带宽:体现了信号放大的频域性能。

运放建立时间:

压摆率:是运算放大器输出电压的转换速率。

第十二章

工程建立、调试过程:

1、新建工程

2、配置工程:(1)目标常规配置(2)输出配置

3、创建源代码文件并编写源程序

4、编译程序

5、调试程序debug:(1)程序控制类 (2)状态查看

相关推荐