嵌入式系统设计原理1_第1页
嵌入式系统设计原理1_第2页
嵌入式系统设计原理1_第3页
嵌入式系统设计原理1_第4页
嵌入式系统设计原理1_第5页
已阅读5页,还剩117页未读 继续免费阅读

下载本文档

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

文档简介

嵌入式计算系统设计原理第1章嵌入式计算2012.09嵌入式计算复杂系统与微处理器嵌入式系统的设计过程系统设计的形式化方法3什么是嵌入式系统?嵌入式系统:

任何一个非通用的具有可编程计算机的设备嵌入式系统的应用实例:打印机.手机.汽车:发动机,刹车,仪表盘等.电视(机顶盒).家用电器.掌上电脑(PDA).嵌入式计算机与个人PC的区别:专用性和实时性嵌入式系统嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。嵌入式系统英国电机工程师学会定义嵌入式系统为控制、监视或辅助设备、机器或甚至工厂操作的装置,这些装置具有如下特征:(1)通常执行特定功能;(2)以微电脑和外围构成核心;(3)有严格的时序和稳定性要求;(4)全自动操作循环。嵌入式系统国际电机工程师协会(IEEE)从应用角度上定义嵌入式系统是:控制、监视或者辅助装置、机器和设备运行的装置。从该定义中可以看出嵌入式系统是软件和硬件的结合体,还可以包含机械等附属装置。1复杂系统与微处理器嵌入式计算系统:任何包括一个可编程计算机的设备,但本身并未设计为一台通用计算机。9嵌入式计算机CPUmeminputoutputanaloganalog10早期发展历史1940年代:MITWhirlwind,第一台实时操作系统的计算机;最初是用于飞机模拟器的控制。第一个微处理器是1970年代的

Intel4004。

1972年,HP-35计算器使用数个芯片来实现一个微处理器的功能。1970年代开始在汽车上使用基于微处理器的发动机控制技术。控制油汽的混合,发动机的定时等等。多种工作模式的控制:加热,爬坡等提供低排放,高的燃油效率。嵌入式计算机微处理器:通常来说,具有中央处理器功能的大规模集成电路器件,可以被统称为“微处理器”。Intel4004是第一块微处理器嵌入式计算机根据intel的TICK-TOCK策略,2012是intel的工艺年,因此IvyBridge处理器将采用22nm新工艺制造,intel最新发布的3D晶体管技术也将和22nm工艺完美结合Haswell架构是英特尔最新的CPU架构青出于蓝Haswell与IvyBridge性能大比拼嵌入式处理器根据微处理器的字长宽度:微处理器可分为4位、8位、16位、32位、64位。一般把16位及以下的称为嵌入式微控制器,32位以上的称为嵌入式微处理器。嵌入式处理器嵌入式处理器大体可分为以下几类:

1嵌入式微处理器

嵌入式微处理器可谓是通用计算机中CPU的微缩版。相对于通用CPU,嵌入式微处理器具有体积小、功耗少、成本低的优点,当然在速度上也慢一些嵌入式微处理器在软件配置上常常可以运行嵌入式操作系统,应用于比较高档的领域。典型的如32位的ARM、64位的MIPS。

1嵌入式微处理器由通用计算机中的CPU发展而来,主要特点是具有32位以上的处理器,具有比较高的性能,价格也较高。与计算机CPU不同的是,在实际嵌入式应用中,只保留和嵌入式应用紧密相关的功能硬件,去除其它的冗余功能部分,因此其体积小、重量轻、功耗低、成本低及可靠性高。通常嵌入式微处理器把CPU、ROM、RAM及I/O等元件做到同一个芯片上,也称为单板计算机。目前,主要的嵌入式微处理器有ARM、MIPS、POWERPC和基于X86的386EX等嵌入式微处理器制造商:摩托罗拉、英特尔、IBM、日立、NEC、东芝、AMD、国家半导体、Zilog、IDT、富士通、Atmel、SUN、微系统、夏普、Oki、飞利浦等。主要的嵌入式微处理器包括:IBMPowerPC、IntelPentium、Motorola68000、strongARM、MIPS、AMD、X86系列等等。嵌入式微处理器又可分为CISC和RISC两类。大家熟悉的大多数台式PC都是使用CISC微处理器,如Intel的x86。RISC结构体系有两大主流:SiliconGraphics公司(硅谷图形公司)的MIPS技术;ARM公司的Advanced

RISCMachines技术。此外,Hitachi(日立公司)也有自己的一套RISC技术SuperH。1嵌入式微处理器英特尔PXA27X嵌入式处理器在导航设备中的应用嵌入式处理器2嵌入式微控制器

嵌入式微控制器的最大特点是单片化,常称为单片机。顾名思义,单片机就是将众多的外围设备(简称外设,如A/D,IO等)集成到一块芯片中,从而大幅度降低了成本。单片机非常适合控制领域,典型的如大名鼎鼎的51系列。

2嵌入式微控制器嵌入式微控制器又称为单片机,它将CPU、存储器(少量的RAM、ROM或两者都有)和其它外设接口封装在同一片集成电路里。嵌入式微控制器制造商:摩托罗拉、英特尔、英飞凌科技、Atmel、日立、NEC、三菱、东芝、松下、Microchip、富士、飞利浦、德州仪器、三星、三洋、索尼、Oki、凌阳科技等。主要的嵌入式微控制器包括:MCS-51、MCS-251、MCS-96/196/296、P51XA、C166/167、68K、Z8、C540、PIC、AVR等系列。3专用微处理器相对于上述比较通用的类型,专用微处理器是专门针对某一特定领域的微处理器。如昂贵的视频游戏机微处理器等。DSP本质上也属于专用微处理器。嵌入式DSP专门用来对离散时间信号进行极快的处理计算,提高编译效率和执行速度。在数字滤波、FFT、谱分析、图像处理等领域应用广泛。3专用微处理器DSP内部采用程序和数据分开存储和传输的哈佛结构,具有专门硬件乘法器,广泛采用流水线操作,提供特殊的DSP指令,可用来快速的实现各种数字信号处理算法,加之集成电路的优化设计,速度甚至比最快的CPU还快数倍。DSP正在大量进入嵌入式市场,目前广泛应用的是德州仪器的产品TMS320C2000/C8000系列,另外Intel和Siemens也有相应的产品。

T1公司的DSP简介

TMS320C1000系列

TMS320C2000系列

TMS320C3000系列

TMS320C4000系列

TMS320C5000系列

TMS320C6000系列

TMS320C8000系列CCS6000开发环境

4嵌入式片上系统(SystemOnChip)随着EDI的推广和VLSI设计的普及化,及半导体工艺的迅速发展,在一个硅片上实现一个更为复杂的系统的时代已来临,这就是SystemOnChip(SOC)。各种通用处理器内核将作为SOC设计公司的标准库,和许多其它嵌入式系统外设一样,成为VLSI设计中一种标准的器件,用标准的VHDL等语言描述,存储在器件库中。用户只需定义出其整个应用系统,仿真通过后就可以将设计图交给半导体工厂制作样品。这样除个别无法集成的器件以外,整个嵌入式系统大部分均可集成到一块或几块芯片中去,应用系统电路板将变得很简洁,对于减小体积和功耗、提高可靠性非常有利。SiS55LV嵌入式片上系统芯片规格图ARM和DSP/article/08-08/49453s.htmlARMDSP微控制器微控制器TMS470R1A288(NRND)16/32位RISC闪存微控制器片上系统赛普拉斯半导体的PSoC可编程片上系统增长迅速,出货量即将突破10亿片上系统Intel_SoCAVR单片机ATmega16L-8AUATmega32-16AUARM控制器的渗炭炉温度控制系统应用示例1BMW850ibrakeandstabilitycontrolsystemBMW,全称为巴伐利亚机械制造厂股份公司(德文:BayerischeMotorenWerkeAG),是德国一家世界知名的高档汽车和摩托车制造商,总部位于慕尼黑。BMW在中国大陆、香港与早年的台湾又常称为“宝马”。慕尼黑宝马总部44汽车嵌入式系统高级汽车有近百个微处理器4-bit微控制器检查安全带的使用。微控制器控制仪表盘工作。16/32-bit微处理器控制发动机。BMW850i防抱死系统

(ABS):

启动刹车来降低打滑。自动稳定控制

(ASC+T):

控制发动机来改善稳性。ABS被最早应用-->ASC+T需要与已经存在的

ABS模块交互。45BMW850i刹车控制系统刹车传感器刹车传感器刹车传感器刹车传感器ABS液压泵嵌入式计算应用的特点复杂算法:算法复杂用户接口:多种接口实时性:定时完成多速率:多速率制造成本:时间成本功率与能量:散热播放器芯片

Rockchip27XX系列芯片具有独立的视频DSP核心和ARM双核心,大大提高了主芯片的处理速度,实现了对RMVB视频格式的较好支持,无需转换即可支持RM、RMVB视频格式的播放,操作更简洁、方便。除了完美便捷的视频播放功能,还支持TV—OUT视频输出,方便视觉享受更可与他人分享。481.1.3为什么要使用微处理器?可选择的数字系统设计:现场可编程门阵列(FPGAs),定制逻辑(专用逻辑).微处理器使用比定制逻辑更多的逻辑来实现一个功能。但是微处理器通常有更高的效率,因为:使用同样的逻辑可以实现不同的功能。高速执行指令。大设计团队来提高CPU的运行速度。高速发展的大规模集成电路技术。微处理器可以简化产品的系列设计。移动数字电视神行者T20

神行者T10

移动数字电视神行者A10传统的双内核DSP/RISC处理架构1.1.3为什么要使用微处理器微处理器是一种实现数字系统的十分有效的方法微处理器使设计在不同价位上提供不同特性的产品系列变得更容易,并且能够扩充新特性以满足飞速变化的市场需求。PC不能作为嵌入式计算系统平台实时性能的需求驱使我们需要不同的体系结构,多处理器常常能获得最好的实时性能低功率和低成本同样驱使我们远离PC结构而转向多处理器手机作为下一代计算平台54功耗仍需要考虑对于低功耗的产品来说,定制逻辑是最好的实现方式。现代的微处理器提供降低功耗的功能。软件设计技术也可以降低功耗。1.1.4软件物理(physicsofsoftware)提高性能:软件的性能降低功耗:软件的能耗561.1.5嵌入式系统设计所面临的战需要多少硬件?CPU的性能和存储器的容量?如何满足软件运行时限要求?高速的硬件或者灵活的软件?如何降低功耗?关断不需要的逻辑?降低运算速度?能否正常工作?规格说明是否正确?是否满足用户需求?如何进行实时的,实际数据的测试?可视性,可控制性?开发环境?1.1.6嵌入式计算的性能Inreal-timesystems,performancemeansmeetingdeadlines.Weneedtoanalyzethesystematseverallevelsofabstractiontounderstandperformance:CPU.Platform.Program.Task.Multiprocessor1.2嵌入式系统地设计过程设计方法学系统设计的一个过程。理解设计方法可以帮助你不遗漏任何要点。编译器、CAD工具、软件工程工具等可用来:帮助自动操作方法中的步骤。跟踪方法本身。61设计过程中的抽象层次要求规格说明体系结构构件系统集成自顶向下的方法自底向上设计实际的设计中两种方法都有使用62需要考虑的设计目的功能。性能.总的速度,时限。用户界面。生产成本。功耗其它要求(物理尺寸等)。63逐步求精法在设计的每一阶段,都必须:分析设计来决定设计如何满足规格说明的要求。细化设计,增加细节。641.2.1需求用户想要的和期望得到的一个清楚的语言描述。

(要求系统做什么)可用几种方式得到用户的需求:直接与用户交谈;与市场代表交谈;提供原型让用户评价。65功能性与非功能性的需求功能性的需求:功能需求指系统所必须实现的特定的功能、任务、行为。非功能性的需求:执行一个功能所需要的时间;体积、重量等;功耗;可靠性;其它。66需求表格67例:GPS移动地图的需求移动地图由GPS获得位置数据,由本地数据库得到地图的图形。lat:4013lon:3219I-78ScotchRoad68GPS移动地图的需求功能性:汽车上使用。显示主要的道路和标识。用户界面:

显示屏至少400x600像素的分辨率;最多三个按键;弹出式菜单。性能:地图平滑滚动;在接通电源后系统启动时间少于1秒;卫星锁定时间少于15秒。成本:单个设备销售$500。物理尺寸/重量:适合手持。功耗:四节

AA电池可工作八小时。

69GPS移动地图需求表格701.2.2规格说明系统更精确的描述:(系统要去做什么)不应该包含一个特定的体系结构;给这个体系结构设计过程提供输入。包括功能和非功能的成分。规格说明应该很明确。(有着用户与开发者之间合同的作用)UML(UnifiedModelingLanguage)71GPS的规格说明应该包括:从GPS接收到的数据格式;地图数据;用户界面;必须执行以满足用户需求的操作;保持系统运行的后台操作。721.2.3体系结构设计那些主要构件去满足规格说明的要求?硬件构件:CPUs、外设等。软件构件:主要程序及其运行。功能规格与非功能规格都要考虑。73GPS移动地图框图GPS接收机搜索引擎转换器用户界面数据库显示器74GPS移动地图的硬件体系结构GPS接收机CPU

I/O面板显示器帧缓冲器存储器75GPS移动地图的软件体系结构位置数据库搜索转换器时钟用户界面像素761.2.4硬件和软件构件体系结构告诉我们需要什么样的构件。构件完成体系结构中特定的任务。某些构件中现成的,某些构件要用现成的构件修改而来、其它一些要完全自己设计。771.2.5系统集成把所有的构件插在一起。很多问题都在这个阶段产生。一个好的集成计划可以更快的发现问题,尽可能早的去做功能测试。78系统建模需要语言来描述系统:在数个抽象层上都是很实用的;在团体内外都能够被理解。框图是一个开始,但不要包括所有的内容。791.3系统建模需要语言来描述系统:在数个抽象层上都是很实用的;在团体内外都能够被理解。框图是一个开始,但不要包括所有的内容。80UMLUnifiedModelingLanguage由GradyBooch开发的(Rational公司的首席工程师)目的:面向对象的;可视的;在抽象的多个层次都适用。在设计的所有方面都有应用价值。81面向对象的设计OOD面向对象的设计OOD:是面向对象编程的一个通用称谓。对象:现实世界中个体或事物的抽象表示,

是属性和相关操作的封装。=状态

+方法.对象的状态=对象属性取值的集合。方法(操作):提供给对象一个抽象的交互。类:说明一系列拥有相同的属性,操作,方法,关系,行为的对象集.类包含属性表和操作表,它们各自在类内建立了一个命名空间。定义那种类型的所有对象交互的方法。82UML对象d1:Displaypixels:array[]ofpixelselementsmenu_itemspixelsisa2-Darray注释对象名称类名属性无需显示操作符,因为对于同一类的对象来说它们都是相同的83UML类Displaypixelselementsmenu_itemsmouse_click()draw_box操作方法类名操作提供了类的实现与其它类的抽象交互。调用的操作如果有返回值,则为返回值类型列表。如果没有返回值,则此特性为空值。一个操作可以检查或修改对象的状态。[可见性]属性名[:类型][‘[’多重性[次序]‘]’][可见性]操作名[(参数列表)][:反回类型]{特征}属性84类与对象之间的关系关联association:指对象之间通信,但没有从属关系。聚集aggregation:较小的对象组成复杂的对象。组合combination:是一种聚集类型,其中所有者不允许访问构件对象。泛化generalization:允许我们通过其它的类定义类。一个较广泛化的元素和一个较特殊的元素之间的类元关系。特殊化的元素完整的包含了广泛化的元素,并含有更多信息85类的派生根据另外一个类来定义类。派生类继承了基类的属性和操作。派生类基类UML泛化86类派生案例Displaypixelselementsmenu_itemspixel()set_pixel()mouse_click()draw_boxBW_displayColor_map_display基类派生类UML泛化87多重继承SpeakerDisplayMultimedia_display基类派生类88messagemsg:ADPCM_streamlength:integermessagesetcount:integer0..*1contains#containedmessages#containingmessagesets关联关联:描述类之间的关系。例如:关联名称89链接链接:描述对象之间的关系。例如:链接定义包含关系。messagemsg=msg1length=1102messagemsg=msg2length=2114messagesetcount=290行为描述现在考虑描述系统的行为:使用状态机状态机是展示状态与状态转换的图ab状态状态名称转移91事件驱动状态机一个状态向另一个状态的改变由事件触发。事件是某一种动作。状态机在收到输入时会改变状态。事件可来自系统外也可来自系统内。信号事件:异步事件。调用事件:同步的通信。时间事件:由时间激活的。92<<signal>>mouse_clickleftorright:buttonx,y:position声明abmouse_click(x,y,button)事件描述事例的类型信号事件93cddraw_box(10,5,3,2,blue)事例的类型调用事件:时间事件:eftm(time-value)接收到一个请求,从而激活某个操作。满足一个时间表达式,进入某状态后经过一定的时间,或者到达某个绝对时间后发生事件。94例:状态机找到鼠标点击区域得到菜单项信息调用过的菜单项找到对象加亮显示对象初始状态停止状态mouse_click(x,y,button)/find_region(region)input/outputregion=menu/which_menu(i)call_menu(I)region=drawing/find_object(objid)highlight(objid)95顺序图显示随时间操作的顺序显示多重对象行为之间的关系。m:Moused1:Displayu:Menumouse_click(x,y,button)which_menu(x,y,i)call_menu(i)时间961.4模型火车控制器控制台电源接收机马达ECCaddressheadercommand97需求控制台在一条轨道上能控制8辆火车。速度至少有63个等级。惯性控制调整响应至少有8个等级。紧急停车按键。信息传输要有检错方案。98需求表格99概念性的规格说明在我们生成一个详细的规格说明之前,我们将写一个初始的,简化的规格说明。让我们在UML和规格说明方面有一个实践。概念性的规格说明可使我们更好地理解系统。在投入大量的精力之前通常可以让我们发现潜在的问题。从消息的定义开始,因为消息决定了控制器能做什么。

命令名称参数,

set-speed

速度(正或负)

set-inertia

惯性值(非负)

estop

无100消息的类commandset-inertiavalue:unsigned- integerset-speedvalue:integerestop101:console:train_rcvrset-inertiaset-speedset-speedset-speedestop:console:receiver1..n:command子系统的协同图顺序图102主要子系统的任务控制台从面板上读状态格式化信息传输信息火车接收信息解释信息控制火车103控制台系统的类图consolepanelformattertransmitterreceiver*sender*1111111111104控制台类的任务面板:描述模拟按键和接口硬件。格式化程序:

将按键设置转换成比特流。发射机:

给火车发数据。105火车系统类trainsettrainreceivercontrollermotorinterfacedetector*pulser*11..t1111111111106火车类的任务接收机:

数字化来自铁轨的信号。控制器:

解释接收到的指令并作出控制决定。脉冲发生器:产生马达所需求的信号。107详细的规格说明现在可以把概念性的规格说明的细节加上:更多的类;操作草拟一个规格说明可以帮助我们理解系统中的基本关系。108火车速度控制火车由脉冲宽度调制来控制:V+-周期109控制台的物理对象类图knobs*train-knob:integerspeed-knob:integerinertia-knob:unsigned- integeremergency-stop:booleanpulser*pulse-width:unsigned- integerdirection:booleansender*send-bit()detector*read-bit():integer110面板和马达接口类图面板类定义控制为面板上的每一个控制定义一个操作new-settings()使用set-knobs操作改变调节器的设置。马达接口类定义马达持续状态的速度。paneltrain-number():integerspeed():integerinertia():integerestop():booleannew-settings()motor-interfacespeed:integer111Transmitter和receiver类Transmitter:为每种要发送的消息提供一个行为。接收机功能提供操作方法:探测接收新的信息,判决类型,读取参数。transmittersend-speed(adrs:integer,speed:integer)send-inertia(adrs:integer,val:integer)set-estop(adrs:integer)receivercurrent:commandnew:booleanread-cmd()new-cmd():booleanrcv-type(msg-type: command)rcv-speed(val:integer)rcv-inertia(val:integer)112Formatter类formattercurrent-train:integercurrent-speed[ntrains]:integercurrent-inertia[ntrains]:unsigned-integercurrent-estop[ntrains]:booleansend-command()panel-active():booleanoperate()Formatter类保存了当前所有火车的控制设置。operate()操作执行基本的格式化任务。113Controlinput类使用软面板来显示每个火车目前的面板设置。改变火车的编号:必须改变软面板的设置来反映目前火车的速度等参数。控制速度/惯性参数/紧急停车:读取面板上的参数,检查变化,执行指令。114控制输入顺序图:knobs:pane

温馨提示

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

评论

0/150

提交评论