嵌入式系统概论_第七章
- 格式:pdf
- 大小:433.32 KB
- 文档页数:85
嵌入式系统概论嵌入式系统是一种特殊的计算机系统,它被嵌入到其他设备中,以完成特定的功能或任务。
嵌入式系统广泛应用于各个领域,如家电、汽车、医疗设备、通信设备等。
本文将介绍嵌入式系统的基本概念、特点、应用领域以及发展趋势。
一、嵌入式系统的基本概念嵌入式系统是由硬件和软件组成的一种特殊计算机系统。
与通用计算机系统相比,嵌入式系统具有以下几个特点:1. 特定功能:嵌入式系统被设计用于执行特定的功能或任务,例如控制家电设备、驾驶汽车、监测环境等。
2. 实时性:嵌入式系统通常需要实时响应外部事件,确保系统能够及时做出反应。
3. 资源受限:由于嵌入式系统通常运行在资源受限的环境中,如处理能力、存储容量、能耗等都有限制。
4. 可靠性:嵌入式系统对系统的可靠性要求很高,一旦出现故障可能会对用户的生命财产安全造成影响。
二、嵌入式系统的应用领域嵌入式系统广泛应用于各个领域,以下列举几个典型的应用领域:1. 汽车领域:现代汽车中的嵌入式系统包括发动机控制单元(ECU)、车载娱乐系统、安全系统等,它们协同工作以提供稳定、安全的驾驶体验。
2. 家电领域:智能家居中的嵌入式系统能够实现家电设备的远程控制、能耗监测以及与其他设备的联动等功能。
3. 医疗设备领域:医疗设备中的嵌入式系统用于监测病人的生命体征、控制手术设备等,对病人的诊断和治疗起到重要作用。
4. 工业控制领域:嵌入式系统在工业自动化领域中广泛应用,用于控制生产线、监测设备状态、优化生产过程等。
三、嵌入式系统的发展趋势随着科技的不断进步,嵌入式系统也在不断发展。
以下是几个嵌入式系统的发展趋势:1. 物联网:随着物联网的兴起,越来越多的设备将与互联网连接,嵌入式系统将扮演连接设备与互联网的桥梁,实现设备之间的通信与协同工作。
2. 人工智能:人工智能技术的发展将为嵌入式系统带来更多的智能化能力,使其能够识别、理解和响应更复杂的指令或环境变化。
3. 虚拟化技术:虚拟化技术可以将多个嵌入式系统虚拟化为一个物理平台,提高系统的资源利用率和灵活性。
嵌⼊式期末复习资料(9)第⼀章嵌⼊式系统概论本章主要内容:1.什么是嵌⼊式系统(嵌⼊式系统是计算机软件与计算机硬件集成在⼀起,并嵌⼊到应⽤对象内部的计算机系统)嵌⼊式系统是以应⽤为中⼼,以计算机技术为基础,并且软硬件可裁剪,适⽤于应⽤系统对功能、可靠性、成本、体积、功耗有严格要求的专⽤计算机系统。
它⼀般由嵌⼊式微处理器、外围硬件设备、嵌⼊式操作系统以及⽤户的应⽤程序等四个部分组成,⽤于实现对其他设备的控制、监视或管理等功能。
2.嵌⼊式系统分类(按技术复杂度分类:⽆操作系统控制的嵌⼊式系统NOSES;⼩型操作系统控制的嵌⼊式系统SOSES;⼤型操作系统控制的嵌⼊式系统LOSES。
按⽤途分类:军⽤,⼯业⽤,民⽤。
)系统级,板级,⽚级芯⽚级嵌⼊含程序或算法的处理器模块级嵌⼊系统中的某个核⼼模块板系统级嵌⼊主计算机系统3.嵌⼊式操作系统分类(按照源代码分类:商⽤型和开源型;按照实施性能分类:强实时性型和普通实时型;按内核结构分类:单内核型和为内核型。
)按⽤途分类:军⽤/民⽤按载体分类:宇航/车载? ? ?按通信性质分类:⽆线/有线按⽹络性质分类:联⽹/单机按环境分类:普通/恶劣按功耗分类:低功耗/普通功耗主要分类⽅法按硬件软件性质根据控制技术的复杂度可以把嵌⼊式系统分为三类:⽆操作系统控制的嵌⼊式系统NOSES,Non-OS control Embedded System;⼩型操作系统控制的嵌⼊式系统SOSES,Small OS control Embedded System;⼤型操作系统控制的嵌⼊式系统LOSES,Large OS control Embedded System。
4.嵌⼊式处理器特点,常见缩写特点:1.对实施多任务有较强的⽀持能⼒,能完成多任务处理,并且中断响应速度快2.处理器结构可扩展3.内部集成了测试电路4.低功耗常见缩写:通⽤型嵌⼊式微处理器(简称:EMPU,或者MPU)微控制器(MCU)数字信号处理器(DSP)(嵌⼊式DSP处理器:EDSP)混合处理器和⽚上系统(SOC)嵌⼊式双核处理器,双核(dual core);多核处理器,多核DSP。
嵌入式系统基础复习题第1章嵌入式系统概论1、什么是嵌入式系统?嵌入到对象体系中的专用计算机应用系统。
2、嵌入式系统的3个基本特点?嵌入性、专用性、计算机3、什么是嵌入式处理器,嵌入式处理器可以分为几大类?嵌入式处理器是为了完成特殊的应用而设计的特殊目的的处理器。
分为嵌入式微处理器、嵌入式微控制器、嵌入式DSP处理器、嵌入式片上系统(SOC)。
4、什么是嵌入式操作系统和?有何特点?列出常见的几种嵌入式操作系统及特点。
5、试比较说明JA TG工具和ISP工具的异同点?6、从硬件系统来看,嵌入式系统由哪几部分组成?画出简图。
第2章ARM7体系结构1、什么是RISC指令系统?什么是CISC指令系统?RISC是精简指令集计算机的缩写。
CISC是复杂指令集计算机的缩写。
2、ARM与ARM公司有什么区别?举出2个以上的ARM公司当前应用比较多的ARM处理器核?ARM7系列、ARM9系列、ARM10系列、ARM11系列、intel的Xscale系列和MPCore系列。
3、ARM7TDMI中的T、D、S、I分别表示什么含义?T:支持高密度16位的Thumb指令集D:支持片上调试S:ARM7TDMI 的可综合(synthesizable)版本(软核)I:支持EmbededICE观察硬件M:支持64位乘法4、ARM7TDMI处理器采用什么样的体系结构,其可寻址地址空间多大?ARM处理器使用冯.诺依曼结构使用单个平面的232个8位字节地址空间。
地址空间可以看作是包含230个32位字,或231个16位半字。
5、ARM7TDMI与ARM9处理器采用几级流水线处理,使用何种存储器编址方式?ARM7TDMI处理器采用三级流水线。
ARM处理器将存储器看做是一个从0开始的线性递增的字节集合。
6、ARM处理器有几种模式和ARM处理器状态有什么区别?各种工作模式下分别有什么特点?R M处理器模式指用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式。
第一章嵌入式系统概论参考习题1、嵌入式系统本质上是什么系统?答:从本质上讲,嵌入式系统中的计算机总是处于一种实时计算模式,也可以认为嵌入式计算机应具有某种实时性。
也就是说,从嵌入式系统的广义概念考虑,嵌入式系统都可以看成是实时系统。
2、嵌入式系统开发与PC机软件开发的区别是什么?答:嵌入式开发就是设计特定功能的计算机系统,形象的说就是开发一种嵌入在一个机器上实现特定功能的一个系统。
PC的开发往往是上层应用程序,会更多的和业务流程,数据库,UI打交道。
嵌入式的开发主要是和底层打交道,例如内存,NAND, 各种控制器,中断调度等等。
当然现在也有很多需要在嵌入式设备上开发上层应用程序的需求了。
3、嵌入式系统基本概念?答:嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可配置,对功能、可靠性、成本、体积、功耗有严格约束的专用系统。
这类系统一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统(可选择)以及应用程序等四个部分组成的。
4、嵌入式系统分类?答:(1)按微处理器位数划分按所采用的处理器位数,可以分为4位、8位、16位、32位和64位系统。
(2)按应用类别划分可以简单地划分为信息家电、通信、汽车电子、航空航天、移动设备、军用电子、工业控制、环境监控等各种类型。
(3)按系统的实时性划分硬实时系统、软实时系统和自适应实时。
(4)按工业界应用的复杂程度划分简单单处理器系统可扩展单处理器系统复杂嵌入式系统制造或过程控制中使用的计算机系统第二章ARM嵌入式微处理器技术基础参考习题1、ARM32位指令、16位指令的特点。
答:ARM微处理器支持32位的ARM指令集和16位Thumb指令集,每种指令集各有自己的优点和缺点:ARM指令集效率高,但代码密度低;Thumb指令集具有较高的代码密度,却仍保持ARM的大多数性能上的优势,可看做ARM指令集的子集。
2、简单说明RISC处理器与CISC处理器的主要区别有哪些?3、简要说明看门狗电路的作用和原理。
第一章嵌入式系统概论1.嵌入式系统的定义是什么?答:以应用为中心,以计算机技术为基础,硬件、软件可裁剪,功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
2.简述嵌入式系统的主要特点。
答:(1)功耗低、体积小、具有专用性(2)实时性强、系统内核小(3)创新性和高可靠性(4)高效率的设计(5)需要开发环境和调试工具3. 嵌入式系统一般可以应用到那些领域?答:嵌入式系统可以应用在工业控制、交通管理、信息家电、家庭智能管理系统、网络及电子商务、环境监测和机器人等方面。
4. 简述嵌入式系统的发展趋势答:(1)嵌入式应用的开发需要强大的开发工具和操作系统的支持(2)连网成为必然趋势(3)精简系统内核、算法,设备实现小尺寸、微功耗和低成本(4)提供精巧的多媒体人机界面(5)嵌入式软件开发走向标准化5.嵌入式系统基本架构主要包括那几部分?答:嵌入式系统的组织架构是由嵌入式处理器、存储器等硬件、嵌入式系统软件和嵌入式应用软件组成。
嵌入式系统一般由硬件系统和软件系统两大部分组成,其中,硬件系统包括嵌入式处理器、存储器、I/O系统和配置必要的外围接口部件;软件系统包括操作系统和应用软件。
6.嵌入式操作系统按实时性分为几种类型,各自特点是什么?答:(1)具有强实时特点的嵌入式操作系统。
(2)具有弱实时特点的嵌入式操作系统。
(3)没有实时特点的嵌入式操作系统。
第二章嵌入式系统的基础知识1.嵌入式系统体系结构有哪两种基本形式?各自特点是什么?答:冯诺依曼体系和哈佛体系。
冯诺依曼体系结构的特点之一是系统内部的数据与指令都存储在同一存储器中,其二是典型指令的执行周期包含取指令TF,指令译码TD,执行指令TE,存储TS四部分,目前应用的低端嵌入式处理器。
哈佛体系结构的特点是程序存储器与数据存储器分开,提供了较大的数据存储器带宽,适用于数据信号处理及高速数据处理的计算机。
2.在嵌入式系统中采用了哪些先进技术?答:(1)流水线技术(2)超标量执行(3)总线和总线桥3.简述基于ARM架构的总线形式答:ARM架构总线具有支持32位数据传输和32位寻址的能力,通过先进微控制器总线架构AMBA支持将CPU、存储器和外围都制作在同一个系统板中。
实用标准文案在宿主机的/us"用户目录(用户目录可以用学号或姓名拼音简写)下编写一个C语言的“ hello world ! ”等简单的程序,实现将宿主机的用户目录文件挂载到实验板上,并查看编写的程序内容。
实验参考步骤:1.minicom 及端口的配置;2.gcc编译器的使用步骤:1.在宿主机的usr H录卜使用mkdii•命令创建1115115754的文件目录。
2.在该目录下编写一个C语言的“ hello word ! 〃等简单的程序。
在文件系统中找到etc目录卜的exports,打开exports 编辑 / usr/1115115754 目标机的IP 地址(rw, nysc)3.使用minicom命令,进入嵌入式丿I•发板,分别在yaffs卜和root卜使用ifconfig命令找到冃标机和宿主机的IP地址,再使用ping命令对宿主机和冃标机。
使用service命令启动NFS。
4.使用mountnfs 宿主机的IP 地址:/usr/1115115754 /mnt/nfs5.使用cd命令跳转到nfs目录下,使用Is命令查看是否挂在成功。
疑难:在exports屮编辑的IP地址是冃标机的IP地址不是宿主机的IP地址。
在(rw, nysc)不是的标点是逗号而不是点o 是nysc 而不是synco 挂载是在开发板屮进行。
过程:[root@localhost mkdir /usr/1115115754[root@localhost cd /usr/1115115754[root@localhost 1115115754]# vi 1.c#in clude<stdio. h>int mai n(){printf( hello, world\n ” ;return 0;}[root@localhost 、]# min icomWelcome to mi nicom 2・ 2OPTIONS: 118 nCompiled on Sep 25 2007, 06:13:56.Port /dev/ttySOPress CTRL-A Z for help on special keys[root@UP_6410 yaffs]# ifconfigethO Link en cap:Ethernet HWaddr 00:22:12:34:56:90inet addr: 192. 168. 1. 199 Beast: 192. 168. 1. 255 Mask:255. 255. 255. 0UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:0 errors:0 dropped:0 overr un s:0 frame:0TX packets:0 errors:0 dropped:0 overr un s:0 carrier:0 collisi on s:0 txqueuele n:1000RX bytes :0 (0.0 B) TX bytes :0 (0.0 B)In terrupt:78 Base address:0x6000loLink en cap:Local Loopback实用标准文案inet addr: 127. 0. 0. 1 Mask:255. 0. 0. 0UP LOOPBACK RUNNING MTU:16436 Metric:1RX packets:0 errors:0 dropped:0 overr un s:0 frame:0TX packets:0 errors:0 dropped:0 overr un s:0 carrier:0 collisi on s:0 txqueuele n:0PV・n (a n TV・n ((\ n 口、[root@localhost ']# vim /etc/exports/usr/1115115754 192.168. 1. 199 (rw, n ysc)[root@UP_6410 yaffsl# ping 192.168.1.199PING 192. 168. 1. 199 (192. 168. 1. 199) :56 data bytes64 bytes from 192.168. 1. 199: seq二0 ttl=64 time=0. 617 ms64 bytes from 192.168. 1. 199: seq=l t tl二64 time=0. 291 ms64 bytes from 192. 168. 1. 199: seq=2 t tl二64 time=0. 271 ms--- 192・ 168・ 1.199 ping stat istics 一一3 packets tran smitted, 3 packets received, 0% packet loss roun d-trip min/avg/max 二0. 271/0・393/0.617 ms [root@localhost ']# ifconfigeth2 Link en cap:Ethernet HWaddr 00:11:09:6D:86:CDinet addr: 192. 168. 1. 123 Beast: 192. 168. 1. 255 Mask:255. 255. 255. 0inet6 addr: fe80::211:9ff:fe6d:86cd/64 Scope:Li nkUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:!RX packets:0 errors:0 dropped:0 overr un s:0 frame:0TX packets:14 errors:0 dropped:0 overrun s:0 carrier:0collisi on s:0 txqueuele n:1000RX bytes:0 (0. 0 b) TX bytes:1786 (1.7 KiB)In terrupt:21 Base address:OxeOOOloLink en cap:Local Loopbackinet addr: 127. 0. 0. 1 Mask:255. 0. 0. 0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING MTU:16436 Metric:1RX packets:3108 errors:0 dropped:0 overrun s:0 frame:0TX packets:3108 errors:0 dropped:0 overrun s:0 carrier:0 collisi on s:0 txqueuele n:0RX bytes:3618576 (3.4 MiB) TX bytes:3618576 (3.4 MiB)Link en cap:Ethernet HWaddr 00:00:00:00:00:00virbrO inet addr: 192. 168. 122. 1 Beast: 192. 168. 122. 255 Mask:255. 255. 255. 0 inet6 addr: fe80::200:ff:fe00:0/64 Scope:Li nkUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:0 errors:0 dropped:0 overr un s:0 frame:0TX packets:34 errors:0 dropped:0 overrun s:0 carrier:0collisi on s:0 txqueuele n:0实用标准文案RX bytes:0 (0.0 b) TX bytes:5243 (5. 1 KiB)[root@localhost ']# ping 192. 168. 1. 123PING 192. 168. 1. 123 (192. 168. 1. 123) 56 (84) bytes of data.64 bytes from 192. 168. 1. 123: icmp^seq^l ttl=64 time二0.081 ms64 bytes from 192. 168. 1. 123: icmp_seq二2 ttl=64 time二0.072ms64 bytes from 192. 168. 1. 123: icmp_seq二3 ttl二64 time二0.074 m s64 bytes from 192. 168. 1. 123: icmp—Seq^ ttl=64 time二0.076ms--- 192・ 168・ 1. 123 ping statistics 一一4 packets tran smitted, 4 received, 0% packet loss, time 2999ms rtt mi n/avg/max/mdev 二0.072/0. 075/0. 081/0. 011 ms Lroot@localhost ']# service nfs start[root@UP_6410 yaffsi# mountnfs 192. 168. 1. 123:/usr /m nt/nfs[root@UP_6410 yaffs]# cd /mn t/nfs[root@UP_6410 n fs]# Is1115115754 games lib sbin wsbbin heng libexec share zha ngetc in elude local sre zyxexports kerberos ni tmp[root@UP 6410 n fs]#cat /n fs/1115115754/l.c#in clude<stdio. h>int mai n(){printf( hello, world\n ” ;return 0;}实验结果:在nfs目录下存在/usr卜的文件夹,查看/nfs/1115115754/1. c存在hello, world "的程序。
四系统行为描述(计算)模型计算模型(Computation Model)概述时序程序模型有限状态机(FSM)并发进程模型数据流模型流程图小结计算模型-概述(1)计算模型(computation Model)描述系统的处理行为(过程)的方法 模型作用帮助设计者理解和描述系统行为减少系统缺陷(bug)Most system bugs come from mistakes made describing the desired behavior rather than from mistakes in implementing that behavior.计算模型-概述(2)描述嵌入式系统的模型时序程序模型(sequential program model) 提供一组语句、语句排列的规则说明语句如何以一次一条的方式执行表现为程序伪码状态机模型(State machine model)提供系统状态及状态之间转换的条件和方式常用于以控制为主的系统主要行为包括监视控制输入、设置控制输出来相应计算模型-概述(3)描述嵌入式系统的模型(续)并发进程模型(parallel process model)描述多个进程执行的时序,以及进程之间的通讯过程。
适用于多进程系统数据流(dataflow model)描述过程中数据流动的路径常用于以数据为主的系统主要行为将输入数据流转换为输出数据流面向对象模型(Object-oriented model)将复杂的软件分为简单而确定的片断计算模型-概述(4)模型与语言名词模型描述行为,是概念语言是概念的表达,是模型的实现手段计算模型-概述(5)模型与语言(续)例生活计算模型-概述(6)模型与语言(续)例系统设计计算模型-概述(7)文字语言与图形语言文字语言详细准确图形语言形象直观关系文字语言可以用等效的图形语言表示图形语言可以用等效的文字语言表示计算模型-概述(8)文字语言与图形语言(续) 例比较图形菜谱和文字菜谱计算模型-概述(8)实例系统-简单的电梯控制系统计算模型-概述(9)实例系统-简单的电梯控制系统文字描述"Move the elevator either up or down to reach thetarget floor.Once at the target floor, open the door for at least10 seconds, and keep it open until the target floorchanges.Ensure the door is never open while moving.Don’t change directions unless there are no higherrequests when moving up or no lower requestswhen moving down."计算模型(Computation Model)概述时序程序模型有限状态机(FSM)并发进程模型数据流模型流程图小结时序程序(1)电梯I/OInputs: int floor; bit b1..bN; up1..upN-1;dn2..dnN;Outputs: bit up, down, open;Global variables: int req;时序程序(2)Unit Controlvoid UnitControl(){up = down = 0; open = 1;while (1){while (req== floor);open = 0;if (req> floor) { up = 1;}else {down = 1;}while (req!= floor);open = 1;delay(10);}}时序程序(3)Request Resolvervoid RequestResolver(){while (1)...req= ......}//void main(){Call concurrently:UnitControl() andRequestResolver()}计算模型(Computation Model)概述时序程序模型有限状态机(FSM)并发进程模型数据流模型小结FSM(1)状态图与程序语句Assignment statementFSM(2)状态图与程序语句loop statementFSM(3)状态图与程序语句 branch statementHow about “Switch…case”?FSM(4)有限状态机计算模型FSM定义FSM is a 6-tuple, <S, I, O, F, H, s0>, where:S is a set of states {s0, s1, …, s l},I is a set of inputs {i0, i1, …, i m},O is a set of outputs {o0, o1, …, o n},F is a next-state function (i.e., transitions), mappingstates and inputs to states (S X I ->S),H is an output function, mapping current states tooutputs (S->O), ands0is an initial state.FSM(5)FSM-UnitControlSIdle, GoingUp, GoingDown, OpenDoorIReq, floor, timer_vOUp (u) , down (d), open (o), timer_c(t)FSM(6)FSM-UnitControl(cont.)FIdle->Idle : req=floorGoingUp: req>floorGoingDown: req<floorGoingUp->GoingUp: req>floorOpenDoor: !(req>floor)GoingDown->GoingDown: req<floorOpenDoor: !(req<floor)OpenDoor->OpenDoor: timer<10sIdle: !(timer<10s)FSM(7)FSM-UnitControl(cont.)HIdle: u=0, d=0, t=0, o=1;Goingup: u=1, d=0, t=0, o=0;Goingdown: u=0, d=1, t=0, o=0;OpenDoor:u=0, d=0, t=1, o=1;S0IdleFSM(8)FSM-UnitControl(cont.) chartProgram language?FSM(9)FSM-UnitControl(cont.)C language#define IDLE 0#define GOINGUP 1#define GOINGDN 2#define DOOROPEN 3void UnitControl(){int state = IDLE;while (1) {……}}FSM(10)FSM-UnitControl(cont.)C language (cont.)switch (state) {IDLE: up=0; down=0; open=1; timer_start=0;if (req==floor) {state = IDLE;}if (req> floor) {state = GOINGUP;}I if (req< floor) {state = GOINGDN;}break;GOINGUP: up=1; down=0; open=0; timer_start=0;if (req> floor) {state = GOINGUP;}if (!(req>floor)) {state = DOOROPEN;}break;GOINGDN: up=1; down=0; open=0; timer_start=0;if (req> floor) {state = GOINGDN;}if (!(req>floor)) {state = DOOROPEN;}break;DOOROPEN: up=0; down=0; open=1; timer_start=1;if (timer < 10) {state = DOOROPEN;}if (!(timer<10)){state = IDLE;}break;}FSM(11)FSM-Sequential Programming languagetemplate#define S0 0...#define SN Nvoid StateMachine(){int state = S0; // or whatever is the initial state.while (1) {switch (state) {S0: // Insert S0’s actions here; Insert transitions Ti leaving S0:if (T0’s condition is true ) {state = T0’s next state; // insert T0’s actions here.}if (T1’s condition is true ) {state = T1’s next state; // insert T1’s actions here.}...if (Tm’s condition is true ) {state = Tm’s next state; // insert Tm’s actions here.}break;...SN://Insert SN’s actions here; Insert transitions Ti leaving SN:break;}}FSM(12)How to describe the RequestResolver with FSM?FSM(13)Moore & MealyMoore FSMS -> O: 输出只与但前状态有关例:UnitControlMealyS X I -> O: 输出不仅与当前状态有关还与输入有关例:自动售货机FSM(14)Finite-state machines with datapaths(FSMD)FSMD ,<S, I, O, V, F, H, s0>, where:S is a set of states {s0, s1, …, s l},I is a set of inputs {i0, i1, …, i m},O is a set of outputs {o0, o1, …, o n},V is a set of variables {v0, v1, …, v n},F is a next-state function, mapping states andinputs and variables to states (S X I X V -> S),H is an action function, mapping current states tooutputs and variables (S -> O+V),s0 is an initial state.Moore or Mealy?FSM(15)Hiererarchical/Concurrent state machines (HCFSM) Three stateFSM(16)Hiererarchical/Concurrent state machines (HCFSM)(cont.)hierarchyFSM(17)Hiererarchical/Concurrent state machines (HCFSM)(cont.)ConcurrentFSM(18)Hiererarchical/Concurrent state machines (HCFSM)(cont.) Example-UnitControl with Fire ModeFire -> go down to floor 1 -> open doorWhich states should be added?FSM(19)Hiererarchical/Concurrent state machines (HCFSM)(cont.)UnitControl with Fire Mode -without hierarchyFSM(19)Hiererarchical/Concurrent state machines (HCFSM)(cont.) UnitControl with Fire Mode -hierarchyFSM(20)Hiererarchical/Concurrent state machines (HCFSM)(cont.) Elevator controller -concurrentFSM(20)Program-state machines (PSM)Use of sequential program code to define astate’s actionsIncluding the hierarchy and concurrencyA merger of the HCFSM and sequentialprogram modelsA PSM having only one state is the same asa sequential program..FSM(21)Program-state machines (PSM) Example -UnitControllFSM(22)Hiererarchical/Concurrent state machines (HCFSM)(cont.) Two types of transitions.Transitionimmediately(TI)Transition is taken immediately if its conditionbecomes true, regardless of the status of thesource program-stateTransition-on-completion (TOC)Transition is taken only if the condition is trueAND the source program-state is complete.FSM(23)状态机的使用WhenControl systemRespond to InputFSM(24)状态机的使用HowList all possible states, giving each a descriptive name.Declare all variables ( I, O, V).For each state, list the possible transitions, withassociated conditions, to other states.For each state and/or transition, list the associatedactions.For each state, ensure that exiting transition conditionsare exclusive (no two conditions could be truesimultaneously) and complete (one of the conditions istrue at any time).FSM(23)状态机的使用例分析自动售货机的工作过程,并画出其状态图。