37028519901020xxxx 528000
摘要:现如今,随着嵌入式软件行业的发展,本文主要围绕有限状态机在嵌入式软件设计中的应用展开分析,以供相关人士的参考。
关键词:有限状态机;嵌入式软件设计;应用
1、有限状态机
有限状态机的主要功能是实现数字电路设计中的控制部分,这一点与CPU的功能十分类似。但有限状态机比CPU具有一些更优的功能:①CPU在实现控制功能的过程中,需要很多的操作指令和硬件操作单元,而在有限状态机中,控制状态存储在多个触发器中,表示状态转移控制功能的代码存储在门级网络中;②有限状态机逻辑通常十分适用于可编程逻辑器件。
在用有限状态机实现数字电路中的控制单元时,通常它们的对应关系是:有限状态机中的每一个状态对应于控制单元的一个控制步;有限状态机的次态和输出对应于控制单元与每一个控制步有关的转移条件。只要遵守这两条对应关系,就不难用有限状态机来描述数字电路中的控制单元了。实际应用中,有限状态机主要有两种类型:①Moore型有限状态机:该有限状态机的输出信号仅与当前状态有关,即可以把Moore型有限状态机的输出看成是当前状态的函数;②Mealy型有限状态机:该有限状态机的输出信号不仅与当前状态有关,还与所有的输入信号有关,即可以把Mealy型有限状态机的输出看成是当前状态和所有输入信号的函数。两种类型状态机的结构图如图1所示。
图1
由图可见,两者结构上的差别在于:Moore型有限状态机与输入信号无关,而Mealy型有限状态机却与输入信号有关。为了构造一个Mealy型有限状态机,仅需将输出信号根据设计要求表示为现态和所有输入信号的函数即可。有限状态机可具有多种不同的描述方式,但为了综合工具可以将一个完整的硬件描述语言源代码识别为有限状态机,必须要遵循并包括以下描述规则:①至少包含一个状态信号,它们用来指定有限状态机的状态;②状态转移指定和输出指定,它们对应于控制单元中与每个控制步有关的转移条件;③时钟信号,它是用于进行同步的;④同步或异步复位信号。
2、保持任务间行为同步的方法
在每一次同步的过程中,一个任务或者中断程序为控制方,它使用操作系统提供的某种通信手段发出控制信息;另一个任务为被控制方,它通过通信手段得到控制信息后即进入就绪状态,根据优先级高低,或者立即进入运行状态,或者随后某个时刻进入运行状态。被控制方的运行状态受到控制方发出的信息控制,即被控制方的运行状态由控制方发出的信息来同步。
为实现任务间的行为同步,实时操作系统提供了多种灵活的通信手段来适应不同的应用场合。最常见的几种方式包括:二值信号量、计数信号量、事件标志组、消息邮箱、消息队列等。当同步过程不需要传输具体内容时,可选择信号量类手段,如二值信号量、计数信号量和事件标志组;当同步过程需要传输具体内容时,可选择消息类手段,如消息邮箱和消息队列。
3、应用举例
在开发一个以太网接口产品——Ether Net/IP适配器时,根据协议规定需控制网络状态指示灯的闪烁频率和状态。一个Ether Net/IP产品可带有一个网络状态指示灯和一个模块状态指示灯。网络状态指示灯的状态和行为如图2所示。
图3
每个状态都会等待接收消息队列的消息,若收到消息后跳转至相应的状态,否则保持在原来状态。结合前面提到的进行有限状态机描述需要遵循的4个规则,进行编码比较简单,下面仅列出在“闪绿”状态下的处理流程(见图3右边)。
结束语
本文通过简单分析有限状态机和嵌入式软件同步设计方法,结合两者的优势,把数字电路设计常用的设计思想应用到嵌入式软件设计中来,提供了一个很好的设计思路。使用该方法实现的嵌入式软件模块代码简洁高效;当需要增加新的状态时,代码维护方便、复用性好。
参考文献
[1]姜立冬.VHDL语言程序设计及应用[M].北京:北京邮电大学出版社,2011.
[2]周航慈.基于嵌入式实时操作系统的程序设计技术[M].北京:北京航空航天大学出版社,2016.
论文作者:孙照鹏
论文发表刊物:《建筑学研究前沿》2018年第8期
论文发表时间:2018/8/6
标签:状态论文; 状态机论文; 信号论文; 信号量论文; 嵌入式论文; 消息论文; 单元论文; 《建筑学研究前沿》2018年第8期论文;