嵌入式系统总结_第1页
嵌入式系统总结_第2页
嵌入式系统总结_第3页
嵌入式系统总结_第4页
嵌入式系统总结_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、按照章节进行分类嵌入式系统总结嵌入式系统的概念及现实中的实例两种比较合理定义: 从技术的角度定义:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。从系统的角度定义:嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。第一章嵌入式系统概述2.1 ARM简介ARM公司简介 ARM是Advanced RISC Machines的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC (精简指令集)处理器。 公司的特点是只设计芯片,而不生产。它将技术授权给世界上许多著名的半导体

2、、软件和OEM厂商,并提供服务。ARM两大处理器状态特点及其关系 ARM7TDMI处理器内核包含2套指令系统,分别为ARM指令集和Thumb指令,并且各自对应1种处理器的状态:ARM状态:32位,处理器执行字方式的ARM指令,处理器默认为此状态;Thumb状态:16位,处理器执行半字方式的Thumb指令。第3章 ARM7TDMI(-S)指令系统简介 ARM处理器是基于精简指令集计算机(RISC)原理设计的,指令集和相关译码机制较为简单。ARM7TDMI(-S)具有32位ARM指令集和16位Thumb指令集,ARM指令集效率高,但是代码密度低;而Thumb指令集具有较高的代码密度,却仍然保持AR

3、M的大多数性能上的优势,它是ARM指令集的子集。所有的ARM指令都是可以有条件执行的,而Thumb指令仅有一条指令具备条件执行功能。ARM程序和Thumb程序可相互调用,相互之间的状态切换开销几乎为零。 第3章 ARM7TDMI(-S)指令系统ARM指令集与Thumb指令集的关系Thumb指令集具有灵活、小巧的特点ARM指令集支持ARM核所有的特性,具有高效、快速的特点3.1 ARM处理器寻址方式寻址方式分类 寻址方式是根据指令中给出的地址码字段来实现寻找真实操作数地址的方式。ARM处理器具有8种基本寻址方式。1.寄存器寻址;2.立即寻址;3.寄存器移位寻址;4.寄存器间接寻址;5.基址寻址;

4、6.多寄存器寻址;7.堆栈寻址;8.相对寻址。3.2 指令集常用指令的使用3.2 指令集介绍ARM存储器访问指令单寄存器存取装载指令:LDR 目标寄存器,源地址存储指令:STR 源寄存器,目标地址存储器源地址目标寄存器存储器目标地址源寄存器 思考与练习?1.MOV指令与LDR指令都是往目标寄存器中传送数据,但是它们有什么区别吗? MOV指令用于将数据从一个寄存器传送到另一个寄存器中,或者将一个常数传送到一个寄存器中,但是不能访问内存。LDR指令用于从内存中读取数据放入寄存器中。3.2 指令集介绍算术逻辑运算指令 算术逻辑运算指令包括“加/减”以及“与/或/异或”等指令,它们的格式如下:OpCo

5、de 结果寄存器,运算寄存器,第二操作数运算寄存器第二操作数运算符结果寄存器系列简介2.引脚描述3.存储器寻址4.系统控制模块5.存储器加速模块 (MAM)6.外部存储器控制器(EMC)7.引脚连接模块第四章LPC2000系列ARM硬件结构9.向量中断控制器10.外部中断输入11.定时器0和定时器1接口2C接口14.UART(0、1)转换器16.看门狗17.脉宽调制器(PWM)18.实时时钟4.3.1 片内存储器片内Flash编程方法1. 使用JTAG仿真/调试器,通过芯片的JTAG接口下载程序;2. 使用在系统编程技术(即ISP),通过UART0接口下载程序;3.使用在应用编程技术(即IAP

6、),在用户程序运行时对Flash进行擦除和/或编程操作,实现数据的存储和固件的现场升级。ARM7处理器核外设控制器RAMBootBlockFLASHJTAGUART0串口并口JTAGJTAGUART04.3.1 片内存储器片内Flash编程方法2. 使用在系统编程技术(即ISP),通过UART0接口下载程序;3. 使用在应用编程技术(即IAP),在用户程序运行时对Flash进行擦除和/或编程操作,实现数据的存储和固件的现场升级。1. 使用JTAG仿真/调试器,通过芯片的JTAG接口下载程序;4.3.2 片外存储器片外Flash编程方法 Flash的擦写操作需要配合一段符合Flash编程时序的代

7、码,这段代码称为装载程序,一般由用户编写。程序代码(源)程序代码(目标)Loader目标板CPUBUSFlash串口 下载用户代码时,首先得在CPU内运行装载程序,通过它把从串口(或其它接口)接收的代码写到片外Flash中。概述4.3.3 存储器映射 ARM芯片可以存在片内和片外存储器,这些存储器本身不具有地址信息,它们在芯片中的地址是由芯片厂家或用户分配的,那么给物理存储器分配逻辑地址的过程称为存储器映射。通过这些逻辑地址就可以访问到相应存储器的物理存储单元。4.3.5 存储器重映射及引导块存储器重映射 将已经过映射的存储器再次映射的过程称为存储器重映射,它使同一物理存储单元出现多个不同的逻

8、辑地址。这些存储单元主要包括引导块“Boot Block”和用于保存异常向量表的少量存储单元。Addr1程序所见存储器.Addr2Addr1存储器管理部件0 x12340 x1234实际物理存储器0 x1234 注意:存储器重映射并不是对映射单元的内容进行了复制,而只是将多个地址指向了同一个存储单元,这种效果是通过芯片内部的“存储器管理部件”实现的。 实际物理存储单元通过存储器管理部件进行存储器映射,获得逻辑地址Addr1。1 实际物理存储单元通过存储器管理部件进行存储器重映射,获得逻辑地址Addr2。此时,逻辑地址Addr1和Addr2可以访问同一实际物理存储单元。24.4.2 时钟系统时钟

9、系统结构 LPC2000系列微控制器的时钟系统包括四个部分:晶体振荡器、唤醒定时器、锁相环(PLL)和VPB分频器。外接晶体或外接时钟源产生稳定的时钟信号将Fosc提升到合适的频率PLL晶体振荡器VPB分频器FCCLKFPCLKfOSCFOSCCPU内核芯片外设唤醒定时器ON/OFF1342 为系统提供基本的时钟信号(Fosc) 。1 在复位或处理器从掉电模式被唤醒时,为输入的时钟信号做计数延时,使芯片内部部件有时间进行初始化。 2 把Fosc信号提高到一个符合用户需要的频率(Fcclk) 其中Fcclk用于CPU内核。3 用于把Fcclk信号降低到一个合适的Fpclk值(也可以不降低),该信

10、号用于外设部件 。44.5 存储器加速模块(MAM)概述 LPC2000微控制器扩展了器件内部Flash总线宽度为128位,用于提高处理器的指令执行速度。这个接口通过存储器加速模块(MAM)来控制。Flash组2Flash组1CPU 执行指令取指阶段 等待 指令提供指令1提供指令3.取指阶段提供指令4取指阶段 等待3 等待取指阶段提供指令2取指阶段 等待124关闭MAM指令执行情况 从Flash组1中读取指令,CPU处于等待状态。1 CPU从1组指令缓存区中获取指令并执行。2 从Flash组2中读取指令,CPU处于等待状态。3 CPU从2组指令缓存区中获取指令并执行。4 所有存储器操作请求都会

11、直接对Flash操作,由此产生了CPU停止,等待若干周期的情况。Flash组2Flash组1CPU 执行指令开启MAM指令执行情况.1413提供指令13141516取指阶段1211109取指阶段提供指令91011128765取指阶段提供指令56784321提供指令12345678取指阶段取指阶段 等待 指令. 两组指令缓存区中不存在指令,启动Flash存储器指令读取周期,CPU停止,等待若干周期。1 CPU执行Flash组1指令缓存区中的指令。2 CPU执行Flash组2指令缓存区中的指令,同时从Flash组1中读取指令。3 只要指令存在两个组的指令缓存区中,CPU的指令执行是连续的,由此大大

12、提高了指令执行效率。4.9 向量中断控制器概述 ARM7TDMI内核具有两个中断输入,分别为IRQ中断和FIQ中断。向量中断控制器(VIC)负责管理芯片的中断源,最多可以管理32个中断输入请求。CPU 内核ARM7TDMI-S4.9 向量中断控制器FIQ中断硬件处理流程将当前的程序状态寄存器的内容备份即,SPSR_fiq = CPSR处理器切换到FIQ模式禁止IRQ和FIQ中断,即,I = F = 1保存返回地址LR_fiq = PC设置FIQ异常入口地址PC = 0 x1C发生FIQ异常事件说明:ARM7不支持FIQ中断嵌套4.9 向量中断控制器IRQ中断相应流程将当前的程序状态寄存器的内容

13、备份即,SPSR_irq = CPSR处理器切换到IRQ模式禁止IRQ中断,即,I = 1保存返回地址LR_irq = PC设置IRQ异常入口地址PC = 0 x18发生IRQ异常事件说明:ARM7不支持IRQ中断嵌套4.10 外部中断输入概述LPC2000系列ARM具有4路外部中断,可以设置为2种类型: 边沿触发: 上升沿触发 下降沿触发 电平触发: 高电平触发 低电平触发4.12 SPI接口(Serial Peripheral Interface-串行外设接口) SPI总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。外围设置FLASHRAM、网络控

14、制器、LCD显示驱动器、A/D转换器和MCU等。SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:串行时钟线(SCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SS(有的SPI接口芯片带有中断信号线INT或INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。 SCLSDACPU ACPU BLCD驱动器E2PROMADC4.13 I2C接口概述 I2C总线是Philips推出的串行传输总线,它以2根连线实现了完善的全双工同步数据传送,可以极方便地构成多机系统和外围器件扩展系统。 I2C总线采用了器

15、件地址的硬件设置方法,通过软件寻址完全避免了期间的片选线寻址方法,从而使硬件系统具有最简单而灵活的扩展方法。I2C总线的两根线(串行数据SDA,串行时钟SCL)连接到总线上的任何一个器件,每个器件都应有一个唯一的地址,而且都可以作为一个发送器或接收器。此外,器件在执行数据传输时也可以被看作是主机或者从机。I2C总线规范传输协议主机发送数据到从机 主机从机主机发送起始信号,开始数据传输对从机进行寻址,同时R/W = 0发送应答信号发送1字节数据发送应答信号发送1字节数据发送停止信号,结束数据通信I2C总线规范传输协议主机读取从机数据主机从机发送停止信号,结束数据通信主机发送起始信号,开始数据传输

16、对从机进行寻址,同时R/W = 1发送应答信号发送1字节数据发送应答信号发送1字节数据发送应答信号发送非应答信号复合格式发送停止信号,结束数据通信再次发送起始信号对从机进行寻址,同时R/W = 1发送应答信号发送应答信号发送1字节数据发送应答信号发送非应答信号主机发送起始信号,开始数据传输对从机进行寻址,同时R/W = 0发送1字节数据主机从机发送应答信号发送应答信号发送应答信号发送1字节数据发送1字节数据UART简介UART: Universal Asynchronous Receiver/Transmitter,通用异步接收/发送装置,UART是一个并行输入成为串行输出的芯片,通常集成在主

17、板上,多数是16550AFN芯片。因为计算机内部采用并行数据,不能直接把数据发到Modem,必须经过UART整理才能进行异步传输,其过程为:CPU先把准备写入串行设备的数据放到UART的寄存器(临时内存块)中,再通过FIFO(First Input First Output,先入先出队列)传送到串行设备,若是没有FIFO,信息将变得杂乱无章,不可能传送到Modem。应用示例LPC2000的I/O电压为3.3V,连接时须注意电平的匹配。LPC2000其它通信设备TxD0RxD0TxD0RxD0与PC机相连时,由于PC机串口是RS232电平,所以连接时需要使用RS232转换器。LPC2000PC机

18、串口232电平转换TxD0RxD0TxD0RxD0RxD1RTSCTSDSR1DTR1TxD1LPC2000ModemTxDRxDDCDRI1RTSCTSDSR1DTR1DCD1RI1RS232电平转换当使用Modem接口时,需要一个RS232转换器将信号转换为RS232电平后,才能与Modem连接 。4.16 看门狗看门狗简介 在嵌入式应用中,CPU必须可靠工作,即使因为某种原因进入了一个错误状态,系统也应该可以自动恢复。看门狗的用途就是使微控制器在进入错误状态后的一定时间内复位。 其原理是在系统正常工作时,用户程序每隔一段时间执行喂狗动作(一些寄存器的特定操作),如果系统出错,喂狗间隔超过

19、看门狗溢出时间,那么看门狗将会产生复位信号,使微控制器复位。4.16 看门狗看门狗简介看门狗分硬件看门狗和软件看门狗。硬件看门狗是利用一个定时器电路,其定时输出连接到电路的复位端,程序在一定时间范围内对定时器清零(俗称“喂狗”),因此程序正常工作时,定时器总不能溢出,也就不能产生复位信号。如果程序出现故障,不在定时周期内复位看门狗,就使得看门狗定时器溢出产生复位信号并重启系统。4.17 脉宽调制器PWM简介 LPC2000的PWM基于标准的定时器模块,具有定时器的所有特性,它是定时器匹配功能的扩展。使用PWM功能,可以在指定引脚输出需要的波形。输出波形可分为两类: 单边沿输出; 双边沿输出。5

20、.1 最小系统框图嵌入式控制器时钟系统调试测试接口复位及其配置系统存储器系统供电系统(电源)可选,因为许多面向嵌入式领域的微控制器内部集成了程序和数据存储器可选,但是在样品阶段通常都会设计这部分电路C/OS-II程序设计基础September,2007任务设计| C/OS-II程序设计基础任务的分类任务单次执行类事件触发类 周期执行类按照执行方式分类一般的操作系统都提供时间管理的函数,最基本的就是延时函数,C/OS-II也不例外,C/OS-II所具有的时间管理函数见下表。C/OS-II具有简单的动态内存管理能力。C/OS-II的动态内存管理函数见下表。任务管理函数是操作与任务相关功能的函数,详

21、见下表。系统管理函数是一些与C/OS-II内核或功能相关的一些函数,详见下表。C/OS-II的初始化函数有2个:OSInit()和OSStart(),它们不能在任何任务和中断服务程序中使用,仅在main()函数中按照一定的规范被调用,其中OSInit()函数初始化C/OS-II内部变量,OSStart()函数启动多任务环境。 C/OS-II把信号量等都称为事件,管理它们的就是事件管理函数。具有的事件有普通信号量、互斥信号量、事件标志组、消息邮箱和消息队列,这些都是C/OS-II用于同步与通讯的工具,本章后述的内容将会详细介绍。系统函数概述| C/OS-II程序设计基础系统函数的分类初始化任务管

22、理时间管理内存管理根据功能分类事件管理函数名功能备注OSStatInit()使能任务统计功能复位一次只能调用一次,并且必须在任务中调用,在调用时其它用户任务不能处于就绪状态OSIntEnter()进入中断处理必须由中断服务程序按照规范调用,使用本公司的模版就不需要调用它们OSIntExit()退出中断处理OSSchedLock()锁调度器必须配对使用,一般情况不需要使用。事实上,C/OS-II不推荐使用它们OSSchedUnlock()解锁调度器OS_ENTER_CRITICAL()进入临界区必须配对使用,一般通过禁止中断和允许中断来实现的。对于一些移植代码来说,不能嵌套调用OS_EXIT_CRITICAL()退出临界区函数名功能函数名功能OSTaskChangePrio()改变任务优先级OSTaskSuspend()挂起任务OSTaskCreate()建立任务OSTaskResume()恢复任务OSTaskCreateExt()建立任务,比OSTaskCreate()控制任务属性更多OSTaskStkChk()检查堆栈OSTaskDel()删除任务OSTaskQuery()获得任务信息OSTaskDelReq()请求删除任务,有特殊用途系统管理函数

温馨提示

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

评论

0/150

提交评论