状态机系统在嵌入式软件中的地位

一、有限状态机系统在嵌入式软件中是个什么地位? 
    嵌入式系统软件的分类: 
1、按处理器位数分类(嵌入式系统分为4位、8位、16位、32位和64位) 
2、按产品应用类型分类(信息家电类;移动终端类;网络通信类;汽车电子类,工业控制类等) 

3、按系统实时性来分类(根据实时性的强弱,嵌入式系统分为硬实时、软实时系统:硬实时:系统对系统响应时间有严格的 要求,如果系统响应时间不能满足,会引起系统崩溃或致命的错误;软实时:系统对系统响应时间有要求,但是如果系统响 应时间不能满足,不会导致系统出现致命的错误或崩溃,唉,说实话这里不是很明白,什么是致命的错误呢?) 

软件复杂程度来分类(循环轮询系统;有限状态机系统;前后台系统;单处理器多任务系统;多处理器多任务系统)

4、多任务时处理器数目分类(单处理器多任务系统,多处理器多任务系统)

二、为什么用有限状态机系统编写嵌入式软件。  
有上面可知,软件软件复杂程度来分类(循环轮询系统;有限状态机系统;前后台系统;单处理器多任务系统;多处理器多    任务系统)有这么多,下面就单就没种软件的系统(架构)做说明。  
   循环轮询系统:最简单的软件结构是循环轮询,程序依次检查系统的每一个输入条件,一旦条件成立就进行相应的处理。

   通过上面的循环轮询系统的流程框图知道,循环轮训系统优点:对于简单的系统而言,便于编程和理解;没有中断机制,程序运行良好,不会出现随机问题。缺点:有限的应用领域(由于不可确定性);对于大量的I/O服务的应用,不容易实现;大的程序不便于调试。因此合适于慢速和非常快速的简单系统。

   有限状态机系统(下面还会详细介绍),其实我觉得有限状态机系统和前后台系统通常是同事考虑和综合设计的,就是有限状态机系统也会用到前后台,前后台系统也会用到有限状态机(具体联系参考下面的状态机系统的详细介绍)。  
有限状态机是实时系统设计中一种重要的,容易建立的,应用比较广泛的,以描述控制特性为主的建模方法,它可以应用于从系统分析道设计的所有阶段。  
有限状态机系统优点:简单易用,状态间关系直观看到,便于编程;可以快速执行;只是通过改变输出功能来改变机器的响应。缺点:任何时刻系统只能有一个状态,无法表示并发性,不能描述异步并发系统;在系统部件多时,状态数随之增加,导致复杂性显著增长;对于大的应用系统,难于调试。

    前后台系统: 
后台:一个一直在运行的系统。 前台:是由一些中端处理过程组成。  
当有一前台事件(外部事件)发生时,引起中断,于是将暂停后台的运行而进行前台处理,处理完毕后又回到后台(通常称为主程序)。

注意,前后台系统的重中之重就是对中断的处理,包括:需要考虑中断现场的保护和恢复,中断嵌套,中断处理过程与主程序的协调(共享)问题。前后台系统性能主要由中断  延迟时间(interrupt latency time),响应时间(response time)和恢复时间(recovery time)来刻画。 
单处理器多任务系统;

这个图是单任务系统(轮训,有限状态机或前后台系统)的常见程序执行流程,对于嵌入式系统,入口一般都是事件触发,然后是对事件判断或运算处理解析,及消息的分发过程,最后才会进入该事件对应的执行程序。中间即使有其他事件中断接入,也不会立即去执行后面中断的事件对应的执行程序了。例如当前在AD的执行程序中执行,突然外部中断发生,当然会先去执行外部中断的程序,但中断执行完毕后就会又返回到AD的执行程序中,只要AD的执行程序没有完毕就不会去执行外部中断时间对应的程序(当然外部中断事件解析和外部中断执行程序可以都放在外部中断中一起执行,这样就不用等待AD执行程序了,但是如果外部中断事件解析和外部中断执行程序时间十分短暂可以这样,不会出现什么问题,但是这种把什么都放到中断执行的思路在嵌入式系统设计中是不明智的,一旦执行程序耗时变大,整个系统效率将大打折扣),所以单任务系统没有对各个事件对应的执行程序进行调度处理,难以控制实时性,无法实时控制某些程序准确执行。 
如果采用如下并行的处理方式(已经很类似ucosii中的多任务了),就可以在任务执行层对程序进行通过优先级做任务调度处理了,但这需要每个任务间的通讯和协调,软件的复杂程度会加大,当回让系统根据实时效果。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值