《嵌入式系统设计与实例开发.ppt》由会员分享,可在线阅读,更多相关《嵌入式系统设计与实例开发.ppt(117页珍藏版)》请在金锄头文库上搜索。
1、嵌入式系统设计与实例开发 ARM与C/OS- 基本概念及设计方法,冯诺依曼体系结构和哈佛体系结构 CISC与RISC 影响CPU性能的因素 存储器系统 I/O接口,一、嵌入式系统硬件基础,典型嵌入式系统基本组成硬件,1.1 冯诺依曼体系结构模型,指令寄存器,控制器,数据通道,输入,输出,中央处理器,存储器,程序,指令0,指令1,指令2,指令3,指令4,数据,数据0,数据1,数据2,1.2 哈佛体系结构,指令寄存器,控制器,数据通道,输入,输出,中央处理器,程序存储器,指令0,指令1,指令2,数据存储器,数据0,数据1,数据2,地址,指令,地址,数据,1.3 CISC和RISC,CISC:复杂指
2、令集(Complex Instruction Set Computer) 具有大量的指令和寻址方式 8/2原则:80%的程序只使用20%的指令 大多数程序只使用少量的指令就能够运行。,RISC:精简指令集(Reduced Instruction Set Computer) 在通道中只包含最有用的指令 确保数据通道快速执行每一条指令 使CPU硬件结构设计变得更为简单,1.4 影响CPU性能的因素:流水线、超标量和缓存,流水线技术:几个指令可以并行执行 提高了CPU的运行效率 内部信息流要求通畅流动,译码,取指,执行add,译码,取指,执行sub,译码,取指,执行cmp,时间,Add,Sub,Cm
3、p,超标量执行,超标量执行:超标量CPU采用多条流水线结构,执行1,预取,指令CACHE,译码2,译码1,执行2,执行1,预取,译码2,译码1,执行2,流水线1,流水线2,数据,高速缓存(CACHE),1、为什么采用高速缓存 微处理器的时钟频率比内存速度提高快得多,高速缓存可以提高内存的平均性能。 2、高速缓存的工作原理 高速缓存是一种小型、快速的存储器,它保存部分主存内容的拷贝。,CPU,高速缓存控制器,CACHE,主存,数据,数据,地址,总线和总线桥,1.5 存储器系统,RAM:随机存取存储器, SRAM:静态随机存储器, DRAM:动态随机存储器 1)SRAM比DRAM快 2)SRAM比
4、DRAM耗电多 3)DRAM存储密度比SRAM高得多 4)DRM需要周期性刷新 ROM:只读存储器 FLASH:闪存,SRAM和DRAM,1)SRAM 2)DRAM,CS,R/W,Addr,Data,CS,R/W,CAS,Data,RAS,Addr,输入输出接口,I/O A/D、D/A 键盘 LCD 存储器接口 设备接口,例如USB,USB:Universal Serial Bus,通用串行总线 大家生活中常见的与USB有关的东西有: U盘、移动硬盘、无驱型的MP3(U盘) USB接口的键盘、Mouse、打印机、数码相机 即插即用,热插拨,系统不需重启便可工作,且易于扩展(127个) USB2
5、.0以低成本实现高达480Mb/s的传输率(USB1.1的全速设备可达12Mb/s) 接口标准统一、端口供电,一个典型的USB通讯系统,HOST系统,HUB,DEVICE,D,DEVICE,应用软件+驱动程序Ms.Win+接口芯片,HUB,U盘,其他,数据采集器,驱动代码+嵌入式处理器+HOST芯片,HUB,U盘,其他,数据采集器,通用系统模型,PC机中的情况,嵌入式系统应用,二、嵌入式系统软件基础,操作系统的分类 嵌入式实时操作系统 前台与后台 多任务,任务优先级,调度 非占先式与占先式、可重入型函数,3.1 操作系统的分类,(1)顺序执行系统:系统内只含有一个程序,独占CPU的运行时间,按
6、语句顺序执行该程序,直至执行完毕,另一程序才能启动运行。如DOS操作系统。 (2)分时操作系统:系统内同时可以有多个程序运行,把CPU的时间分按顺序分成若干片,每个时间片内执行不同的程序。如UNIX (3)实时操作系统:系统内有多个程序运行,每个程序有不同的优先级,只有最高优先级的任务才能占有CPU的控制权。,按实时性分类,强实时系统,其系统响应时间在毫秒或微秒级(数控机床); 一般实时系统,其系统响应时间在毫秒几秒的数量级上,其实时性的要求比强实时系统要差一些(电子菜谱的查询)。 弱实时系统,其系统响应时间约为数十秒或更长(工程机械)。,1)循环轮询系统:(Polling Loop) 最简单
7、的软件结构是循环轮询,程序依次检查系统的每一个输入条件,一旦条件成立就进行相应的处理。 Initialize() While(true) if(condition_1) action_1(); if(condition_2) action_2(); if(condition_n) acition_n(); ,按软件结构分类,2)事件驱动系统:(Event-Driven system) 事件驱动系统是能对外部事件直接响应的系统。它包括前后台、实时多任务、多处理器等,是嵌入式实时系统的主要形式。 应用程序是一个无限的循环,循环中调用相应的函数完成相应的操作,这部分可以看成后台行为(backgrou
8、nd)。中断服务程序处理异步事件,这部分可以看成前台行为(foreground)。 后台也可以叫做任务级,前台也叫中断级。 例如,很多基于微处理器的产品采用前后台系统设计,如微波炉、电话机、玩具等。从省电的角度出发,平时微处理器处在停机状态,所有的事都靠中断服务来完成。,前后台系统(后台循环、前台中断),ISR,ISR,后台 前台,ISR,时间,代码的临界区也称为临界区,指处理时不可分割的代码。一旦这部分代码开始执行,则不允许任何中断打入。 在进入临界区之前要关中断,而临界区代码执行完以后要立即开中断(在任务切换时,地址、指令、数据等寄存器堆栈保护)。,代码的临界区,多任务(任务、进程和线程)
9、,一个任务,也称作一个线程,是一个简单的运行程序。每个任务都是整个应用的某一部分,每个任务被赋予一定的优先级, 有它自己的一套CPU寄存器和自己的栈空间。 多任务运行的实现实际上是靠CPU(中央处理单元)在许多任务之间转换、调度。 CPU只有一个,轮番服务于一系列任务中的某一个。多任务运行使CPU的利用率得到最大的发挥,并使应用程序模块化。 在实际应用中,多任务的最大特点是,开发人员可以将很复杂的应用程序层次化综合实验(时钟、位图、USB、KEY)。,任务的状态,系统内核(Kernel)与调度(Scheduler),多任务系统中,内核负责管理各个任务,或者说为每个任务分配CPU时间,并且负责任
10、务之间的通信。 内核提供的基本服务是任务切换。内核本身也增加了应用程序的额外负荷,代码空间增加ROM用量,内核本身的数据结构增加了RAM的用量。内核本身对CPU的占用时间一般在2到5个百分点之间。 调度(Scheduler)是内核的主要职责之一,就是要决定该轮到哪个任务运行了。多数实时内核是基于优先级调度法的。每个任务根据其重要程度的不同被赋予一定的优先级。基于优先级的调度法指,CPU总是让处在就绪态的优先级最高的任务先运行。,任务优先级,静态优先级 应用程序执行过程中诸任务优先级不变,则称之为静态优先级。在静态优先级系统中,诸任务以及它们的时间约束在程序编译时是已知的 动态优先级 应用程序执
11、行过程中,任务的优先级是可变的,则称之为动态优先级。实时内核应当避免出现优先级反转问题。,优先级反转,信号量(Semaphore),信号量是60年代中期Edgser Dijkstra 发明的。信号量实际上是一种约定机制,在多任务内核中普遍使用.信号量用于: 控制共享资源的使用权(满足互斥条件) 标志某事件的发生 使两个任务的行为同步 信号与信号量在英文中都叫做Semaphore,并不加以区分,而说它有两种类型,二进制型(binary)和计数器型(counting),死锁(或抱死) Deadlock,死锁也称作抱死,指两个任务无限期地互相等待对方控制着的资源。设任务T1正独享资源R1,任务T2在
12、独享资源T2,而此时T1又要独享R2,T2也要独享R1,于是哪个任务都没法继续执行了,发生了死锁。最简单的防止发生死锁的方法是让每个任务都: 先得到全部需要的资源再做下一步的工作 用同样的顺序去申请多个资源 释放资源时使用相反的顺序,本节提要,1,3,2,4,嵌入式系统硬件基础,嵌入式BSP的基本概念,嵌入式系统软件基础,嵌入式系统设计方法,5,一个嵌入式设计方法实例,嵌入式系统的软/硬件框架,基于知识平台的开发方法,嵌入式系统设计步骤,系统需求分析:确定设计任务和设计目标,并提炼出设计规格说明书,作为正式设计指导和验收的标准。系统的需求一般分功能性需求和非功能性需求两方面。功能性需求是系统的
13、基本功能,如输入输出信号、操作方式等;非功能需求包括系统性能、成本、功耗、体积、重量等因素。 体系结构设计:描述系统如何实现所述的功能和非功能需求,包括对硬件、软件和执行装置的功能划分以及系统的软件、硬件选型等。一个好的体系结构是设计成功与否的关键。 硬件/软件协同设计:基于体系结构,对系统的软件、硬件进行详细设计。为了缩短产品开发周期,设计往往是并行的。应该说,嵌入式系统设计的工作大部分都集中在软件设计上,采用面向对象技术、软件组件技术、模块化设计是现代软件工程经常采用的方法。 系统集成:把系统的软件、硬件和执行装置集成在一起,进行调试,发现并改进单元设计过程中的错误。 系统测试:对设计好的
14、系统进行测试,看其是否满足规格说明书中给定的功能要求。,嵌入式开发工具与开发环境,嵌入式软件开发流程,开发平台简介,几种常用的开发方法,指令集模拟器 一种利用PC机端的仿真开发软件模拟调试的方法。 驻留监控软件 驻留监控程序运行在目标板上,PC机端调试软件可通过并口、串口、网口与之交互,以完成程序执行、存储器及寄存器读写、断点设置等任务 JTAG仿真器 通过ARM芯片的JTAG边界扫描口与ARM核进行通信,不占用目标板的资源,是目前使用最广泛的调试手段 在线仿真器 使用仿真头代替目标板上的CPU,可以完全仿真ARM芯片的行为。但结构较复杂,价格昂贵,通常用于ARM硬件开发中,需求分析与评估 功
15、能定义与软硬件选型 概要设计与软硬件划分 软硬件协同详细设计 集成调试 维护与升级,设计步骤,谢 谢 各 位,嵌入式系统设计与实例开发 ARM与C/OS- 基于ARM的硬件系统结构设计,本节提要,1,3,2,5,4,6,基于ARM的硬件系统体系结构,存储器接口设计,网络接口设计,I/O接口设计,人机交互接口设计,其它通讯接口设计,基于ARM的硬件设计,主要介绍基于ARM7的嵌入式硬件开发平台的设计方法,包括结构、主要接口、存储器选用方案以及外设、显示等方面的内容。 嵌入式硬件开发平台的体系结构 外围存储器接口设计方法 键盘、LCD等人机交互接口的设计 触摸屏的设计 以太网设计 CAN总线设计,
16、Samsung S3C44B0X,Samsung S3C44B0X微处理器是三星公司专为手持设备和一般应用提供的高性价比和高性能的微控制器解决方案,它使用ARM7TDMI核,工作在66MHZ。为了降低系统总成本和减少外围器件,这款芯片中还集成了下列部件: 8KB Cache、外部存储器控制器、LCD控制器、4个DMA通道、2通道UART、1个多主I2C总线控制器、1个IIS总线控制器,5通道PWM定时器及一个内部定时器、71个通用I/O口、8个外部中断源、实时时钟、8通道10位ADC等。,基于ARM的嵌入式硬件平台体系结构,芯片体系结构,S3C44B0X存储系统的特征,支持数据存储的大/小端选择(通过外部引脚进行选择) 地址空间:具有8个存储体,每个存储