嵌入式微处理器第1章嵌入式计算课件_第1页
嵌入式微处理器第1章嵌入式计算课件_第2页
嵌入式微处理器第1章嵌入式计算课件_第3页
嵌入式微处理器第1章嵌入式计算课件_第4页
嵌入式微处理器第1章嵌入式计算课件_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

1、第 1 章嵌入式计算2021/8/51第 1 章嵌入式计算2021/8/51主要内容什么是嵌入式系统?嵌入式系统设计所面临的挑战设计方法学OOD&UML面向对象的设计和统一建模语言举例: 模型火车控制器2021/8/52主要内容什么是嵌入式系统?2021/8/521、什么是嵌入式系统?嵌入式系统: 任何一个非通用的具有可编程计算机的设备嵌入式系统的应用实例:打印机.手机.汽车: 发动机, 刹车, 仪表盘等.电视(机顶盒).家用电器.PC 键盘 .掌上电脑(PDA).嵌入式计算机与个人PC的区别:专用性和实时性2021/8/531、什么是嵌入式系统?嵌入式系统: 任何一个非通用的具有可编嵌入式计

2、算机CPUmeminputoutputanaloganalog2021/8/54嵌入式计算机CPUmeminputoutputanaloga早期发展历史1940年代: MIT Whirlwind ,第一台实时操作系统的计算机;最初是用于飞机模拟器的控制。第一个微处理器是1970年代的 Intel 4004。 1972年,HP-35 计算器使用数个芯片来实现一个微处理器的功能。1970年代开始在汽车上使用基于微处理器的发动机控制技术。控制油汽的混合,发动机的定时等等。多种工作模式的控制:加热,爬坡等提供低排放,高的燃油效率。2021/8/55早期发展历史1940年代: MIT Whirlwind

3、 ,第微处理器的分类微控制器: 包括I/O设备,存储器。数字信号处理器 (DSP): 专门用于数字信号处理的微处理器。典型嵌入式的字长: 8-bit, 16-bit, 32-bit.2021/8/56微处理器的分类微控制器: 包括I/O设备,存储器。2021/应用广泛简单控制: 微波炉的面板等。Canon EOS 3 有3个微处理器。32-bit RISC CPU 用于自动对焦和光圈控制系统。模拟电视: 信道的选择等。数字电视: 可编程 CPUs +硬连线逻辑 通信系统2021/8/57应用广泛简单控制: 微波炉的面板等。2021/8/57汽车嵌入式系统高级汽车有近百个微处理器4-bit 微控

4、制器检查安全带的使用。微控制器控制仪表盘工作。16/32-bit 微处理器控制发动机。BMW 850i防抱死系统 (ABS): 启动刹车来降低打滑。自动稳定控制 (ASC+T): 控制发动机来改善稳性。ABS 被最早应用- ASC+T 需要与已经存在的 ABS 模块交互。2021/8/58汽车嵌入式系统高级汽车有近百个微处理器2021/8/58BMW 850i 刹车控制系统刹车传感器刹车传感器刹车传感器刹车传感器ABS液压泵2021/8/59BMW 850i 刹车控制系统刹车传感器刹车传感器刹车传感器嵌入式系统的特点复杂的功能性。通常运行复杂的算法,或多个算法。手机,激光打印机。通常提供复杂的

5、用户界面。实时操作。必须在期限内完成操作。硬实时期限: 超过期限会产生错误。软实时期限: 超过期限会降低性能。很多系统是多速率的: 必须在能用不同的速率处理操作。2021/8/510嵌入式系统的特点复杂的功能性。2021/8/510嵌入式系统的特点低制造成本。多数嵌入式系统是大规模生产的具有很低的制造成本。存储容量和处理器能力够用即可。低功耗。在电池供电的设备中功耗是很关键的。由小规模团队在严格的期限内完成。半年的市场期限较多。2021/8/511嵌入式系统的特点低制造成本。2021/8/511为什么要使用微处理器?可选择的数字系统设计: 现场可编程门阵列(FPGAs), 定制逻辑(专用逻辑)

6、.微处理器使用比定制逻辑更多的逻辑来实现一个功能。但是微处理器通常有更高的效率,因为:使用同样的逻辑可以实现不同的功能。高速执行指令。大设计团队来提高CPU的运行速度。高速发展的大规模集成电路技术。微处理器可以简化产品的系列设计。2021/8/512为什么要使用微处理器?可选择的数字系统设计: 现场可编程门阵功耗仍需要考虑对于低功耗的产品来说,定制逻辑是最好的实现方式。现代的微处理器提供降低功耗的功能。软件设计技术也可以降低功耗。2021/8/513功耗仍需要考虑对于低功耗的产品来说,定制逻辑是最好的实现方式2、嵌入式系统设计所面临的挑战需要多少硬件?CPU的性能和存储器的容量?如何满足软件运

7、行时限要求?高速的硬件或者灵活的软件?如何降低功耗?关断不需要的逻辑? 降低运算速度?能否正常工作?规格说明是否正确?是否满足用户需求?如何进行实时的,实际数据的测试?可视性,可控制性?开发环境?2021/8/5142、嵌入式系统设计所面临的挑战需要多少硬件?2021/8/53、设计方法学系统设计的一个过程。理解设计方法可以帮助你不遗漏任何要点。编译器 、CAD工具、软件工程工具等可用来:帮助自动操作方法中的步骤。跟踪方法本身。2021/8/5153、设计方法学系统设计的一个过程。2021/8/515需要考虑的设计目的功能。性能.总的速度,时限。用户界面。生产成本。功耗其它要求(物理尺寸等)。

8、2021/8/516需要考虑的设计目的功能。2021/8/516设计过程中的抽象层次要求规格说明体系结构构件系统集成自顶向下的方法自底向上设计实际的设计中两种方法都有使用2021/8/517设计过程中的抽象层次要求规格说明体系结构构件系统集成自顶向下逐步求精法在设计的每一阶段,都必须:分析设计来决定设计如何满足规格说明的要求。细化设计,增加细节。2021/8/518逐步求精法在设计的每一阶段,都必须:2021/8/5181层:需求用户想要的和期望得到的一个清楚的语言描述。 (要求系统做什么)可用几种方式得到用户的需求:直接与用户交谈;与市场代表交谈;提供原型让用户评价。2021/8/5191层

9、:需求用户想要的和期望得到的一个清楚的语言描述。2021功能性与非功能性的需求功能性的需求:功能需求指系统所必须实现的特定的功能、任务、行为。非功能性的需求:执行一个功能所需要的时间;体积、重量等;功耗;可靠性;其它。2021/8/520功能性与非功能性的需求功能性的需求:2021/8/520需求表格2021/8/521需求表格2021/8/521例: GPS 移动地图的需求移动地图由GPS获得位置数据,由本地数据库得到地图的图形。lat: 40 13 lon: 32 19I-78Scotch Road2021/8/522例: GPS 移动地图的需求移动地图由GPS获得位置数据,由GPS 移动

10、地图的需求功能性:汽车上使用。显示主要的道路和标识。用户界面: 显示屏至少400 x 600像素的分辨率;最多三个按键;弹出式菜单。性能:地图平滑滚动;在接通电源后系统启动时间少于1秒;卫星锁定时间少于15秒。成本: 单个设备销售$500。物理尺寸 /重量: 适合手持。功耗:四节 AA电池可工作八小时。 2021/8/523GPS 移动地图的需求功能性:汽车上使用。显示主要的道路和标GPS 移动地图需求表格2021/8/524GPS 移动地图需求表格2021/8/524 2层:规格说明系统更精确的描述:(系统要去做什么)不应该包含一个特定的体系结构;给这个体系结构设计过程提供输入。包括功能和非

11、功能的成分。规格说明应该很明确。(有着用户与开发者之间 合同的作用)UML (Unified Modeling Language)2021/8/525 2层:规格说明系统更精确的描述:(系统要去做什么)2021GPS 的规格说明应该包括:从GPS接收到的数据格式;地图数据;用户界面;必须执行以满足用户需求的操作;保持系统运行的后台操作。2021/8/526GPS 的规格说明应该包括:2021/8/5263层: 体系结构设计那些主要构件去满足规格说明的要求?硬件构件:CPUs、外设等。软件构件:主要程序及其运行。功能规格与非功能规格都要考虑。2021/8/5273层: 体系结构设计那些主要构件去

12、满足规格说明的要求?202GPS 移动地图框图GPS接收机搜索引擎转换器用户界面数据库显示器2021/8/528GPS 移动地图框图GPS搜索引擎转换器用户界面数据库显示器GPS 移动地图的硬件体系结构GPS接收机CPU I/O面板显示器帧缓冲器存储器2021/8/529GPS 移动地图的硬件体系结构GPSCPU I/O面板显示器GPS 移动地图的软件体系结构位置数据库搜索转换器时钟用户界面像素2021/8/530GPS 移动地图的软件体系结构位置数据库搜索转换器时钟用户界 4层: 硬件和软件构件体系结构告诉我们需要什么样的构件。构件完成体系结构中特定的任务。某些构件中现成的,某些构件要用现成

13、的构件修改而来、其它一些要完全自己设计。2021/8/531 4层: 硬件和软件构件体系结构告诉我们需要什么样的构件。25层:系统集成把所有的构件插在一起。很多问题都在这个阶段产生。一个好的集成计划可以更快的发现问题,尽可能早的去做功能测试。2021/8/5325层:系统集成把所有的构件插在一起。2021/8/532系统建模需要语言来描述系统:在数个抽象层上都是很实用的;在团体内外都能够被理解。框图是一个开始,但不要包括所有的内容。2021/8/533系统建模需要语言来描述系统:2021/8/5334、面向对象的设计OOD面向对象的设计OOD:是面向对象编程的一个通用称谓。对象:现实世界中个体

14、或事物的抽象表示, 是属性和相关操作的封装。= 状态 + 方法.对象的状态对象属性取值的集合。方法(操作):提供给对象一个抽象的交互。 类:说明一系列拥有相同的属性,操作,方法,关 系,行为的对象集.类包含属性表和操作表,它们各自在类内建立了一个命名空间。定义那种类型的所有对象交互的方法。2021/8/5344、面向对象的设计OOD面向对象的设计OOD:是面向对象编程UMLUnified Modeling Language由Grady Booch 开发的(Rational 公司的首席工程师)目的:面向对象的;可视的;在抽象的多个层次都适用。在设计的所有方面都有应用价值。2021/8/535UM

15、LUnified Modeling Language20UML 对象d1: Displaypixels: array of pixelselementsmenu_itemspixels is a2-D array注释对象名称类名属性无需显示操作符,因为对于同一类的对象来说它们都是相同的 2021/8/536UML 对象d1: Displaypixels: arrayUML 类Displaypixelselementsmenu_itemsmouse_click()draw_box操作方法类名操作提供了类的实现与其它类的抽象交互。调用的操作如果有返回值,则为返回值类型列表。如果没有返回值,则此特性

16、为空值。一个操作可以检查或修改对象的状态。可见性属性名:类型多重性次序可见性操作名(参数列表):反回类型特征属性2021/8/537UML 类Displaypixelsmouse_click(类与对象之间的关系关联association : 指对象之间通信,但没有从属关系。聚集aggregation: 较小的对象组成复杂的对象。组合combination : 是一种聚集类型,其中所有者不允许访问构件对象。泛化generalization : 允许我们通过其它的类定义类。一个较广泛化的元素和一个较特殊的元素之间的类元关系。特殊化的元素完整的包含了广泛化的元素,并含有更多信息 2021/8/538

17、类与对象之间的关系关联association : 指对象之间类的派生根据另外一个类来定义类。派生类继承了基类的属性和操作。 派生类 基类UML泛化2021/8/539类的派生根据另外一个类来定义类。 派生类 基类类派生案例Displaypixelselementsmenu_itemspixel()set_pixel()mouse_click()draw_boxBW_displayColor_map_display基类派生类UML泛化2021/8/540类派生案例Displaypixelspixel()BW_di多重继承SpeakerDisplayMultimedia_display基类派生类2

18、021/8/541多重继承SpeakerDisplayMultimedia_dmessagemsg: ADPCM_streamlength : integermessage setcount : integer0.*1contains# contained messages# containing message sets关联关联: 描述类之间的关系。例如:关联名称2021/8/542messagemsg: ADPCM_streammessag链接链接: 描述对象之间的关系。例如:链接定义包含关系。messagemsg = msg1length = 1102messagemsg = msg2l

19、ength = 2114message setcount = 22021/8/543链接链接: 描述对象之间的关系。messagemsg = m行为描述现在考虑描述系统的行为:使用状态机状态机是展示状态与状态转换的图 ab状态状态名称转移2021/8/544行为描述现在考虑描述系统的行为:ab状态状态名称转移2021事件驱动状态机一个状态向另一个状态的改变由事件触发。事件是某一种动作。状态机在收到输入时会改变状态。事件可来自系统外也可来自系统内。信号事件:异步事件。调用事件 :同步的通信。时间事件 :由时间激活的。2021/8/545事件驱动状态机一个状态向另一个状态的改变由事件触发。事件是某

20、mouse_clickleftorright: buttonx, y: position声明abmouse_click(x,y,button)事件描述事例的类型信号事件2021/8/546leftorright: button声cddraw_box(10,5,3,2,blue)事例的类型调用事件:时间事件:eftm(time-value)接收到一个请求,从而激活某个操作。 满足一个时间表达式,进入某状态后经过一定的时间,或者到达某个绝对时间后发生事件。 2021/8/547cddraw_box(10,5,3,2,blue)事例的类型例:状态机找到鼠标点击区域得到菜单项信息调用过的菜单项找到对象

21、加亮显示对象初始状态停止状态mouse_click(x,y,button)/find_region(region)input/outputregion = menu/which_menu(i)call_menu(I)region = drawing/find_object(objid)highlight(objid)2021/8/548例:状态机找到鼠标得到菜单调用过的找到对象加亮显示初始状态停顺序图显示随时间操作的顺序显示多重对象行为之间的关系。m: Moused1: Displayu: Menumouse_click(x,y,button)which_menu(x,y,i)call_men

22、u(i)时间2021/8/549顺序图显示随时间操作的顺序m: Moused1: Displ5、模型火车控制器控制台电源接收机马达ECCaddressheadercommand2021/8/5505、模型火车控制器控制台电源接收机马达ECCaddressh需求控制台在一条轨道上能控制8辆火车。速度至少有63个等级。惯性控制调整响应至少有8个等级。紧急停车按键。信息传输要有检错方案。2021/8/551需求控制台在一条轨道上能控制8辆火车。2021/8/551需求表格2021/8/552需求表格2021/8/552概念性的规格说明在我们生成一个详细的规格说明之前,我们将写一个初始的,简化的规格说

23、明。让我们在UML和规格说明方面有一个实践。概念性的规格说明可使我们更好地理解系统。在投入大量的精力之前通常可以让我们发现潜在的问题。从消息的定义开始,因为消息决定了控制器能做什么。 命令名称 参 数 , set-speed 速度(正或负)set-inertia 惯性值(非负)estop 无2021/8/553概念性的规格说明在我们生成一个详细的规格说明之前,我们将写一消息的类commandset-inertiavalue: unsigned-integerset-speedvalue: integerestop2021/8/554消息的类commandset-inertiavalue: u:

24、console:train_rcvrset-inertiaset-speedset-speedset-speedestop:console:receiver1.n: command子系统的协同图顺序图2021/8/555:console:train_rcvrset-inertia主要子系统的任务控制台从面板上读状态格式化信息传输信息火车接收信息解释信息控制火车2021/8/556主要子系统的任务控制台2021/8/556控制台系统的类图consolepanelformattertransmitterreceiver*sender*11111111112021/8/557控制台系统的类图cons

25、olepanelformattert控制台类的任务面板:描述模拟按键和接口硬件。格式化程序: 将按键设置转换成比特流。发射机: 给火车发数据。2021/8/558控制台类的任务面板:描述模拟按键和接口硬件。2021/8/5火车系统类train settrainreceivercontrollermotorinterfacedetector*pulser*11.t11111111112021/8/559火车系统类train settrainreceivercon火车类的任务接收机: 数字化来自铁轨的信号。控制器: 解释接收到的指令并作出控制决定。脉冲发生器:产生马达所需求的信号。2021/8/5

26、60火车类的任务接收机: 数字化来自铁轨的信号。2021/8/5详细的规格说明现在可以把概念性的规格说明的细节加上:更多的类;操作草拟一个规格说明可以帮助我们理解系统中的基本关系。2021/8/561详细的规格说明现在可以把概念性的规格说明的细节加上:2021火车速度控制火车由脉冲宽度调制来控制:V+-周期2021/8/562火车速度控制火车由脉冲宽度调制来控制:V+-周期2021/8控制台的物理对象类图knobs*train-knob: integerspeed-knob: integerinertia-knob: unsigned-integeremergency-stop: boolea

27、npulser*pulse-width: unsigned-integerdirection: booleansender*send-bit()detector*read-bit() : integer2021/8/563控制台的物理对象类图knobs*train-knob: in面板和马达接口类图面板类定义控制为面板上的每一个控制定义一个操作new-settings() 使用set-knobs操作改变调节器的设置。马达接口类定义马达持续状态的速度。paneltrain-number() : integerspeed() : integerinertia() : integerestop()

28、: booleannew-settings()motor-interfacespeed: integer2021/8/564面板和马达接口类图面板类定义控制paneltrain-numTransmitter 和 receiver 类Transmitter: 为每种要发送的消息提供一个行为。接收机功能提供操作方法:探测接收新的信息,判决类型,读取参数。transmittersend-speed(adrs: integer, speed: integer)send-inertia(adrs: integer, val: integer)set-estop(adrs: integer)receive

29、rcurrent: commandnew: booleanread-cmd()new-cmd() : booleanrcv-type(msg-type: command)rcv-speed(val: integer)rcv-inertia(val:integer)2021/8/565Transmitter 和 receiver 类TransmFormatter 类formattercurrent-train: integercurrent-speedntrains: integercurrent-inertiantrains: unsigned-integercurrent-estopntra

30、ins: booleansend-command()panel-active() : booleanoperate()Formatter 类保存了当前所有火车的控制设置。operate()操作执行基本的格式化任务。2021/8/566Formatter 类formattercurrent-trControl input 类使用软面板来显示每个火车目前的面板设置。改变火车的编号:必须改变软面板的设置来反映目前火车的速度等参数。控制速度/惯性参数/紧急停车:读取面板上的参数,检查变化,执行指令。2021/8/567Control input 类使用软面板来显示每个火车目前的控制输入顺序图:knob

31、s:panel:formatter:transmitter改变速度/惯性/紧急停车改变火车编号change incontrolsettingsread panelpanel settingspanel-activesend-commandsend-speed,send-inertia.send-estopread panelpanel settingsread panelpanel settingschange intrainnumberset-knobsnew-settings2021/8/568控制输入顺序图:knobs:panel:formatter:Formatter operate 操作(状态图)空转update-panel()send-command()panel-active()新火车编号其它2021/8/569Form

温馨提示

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

评论

0/150

提交评论