基于离散事件系统仿真教学实验的研究
2017-06-05夏炜夏端峰
夏炜 夏端峰
摘要:虚拟仿真技术应用于高校教学实验系统是一种新兴的教学思路。离散事件系统是虚拟仿真技术的常用方法。该文以微机接口教学与实验系统为例,就基于离散事件系统进行建模和仿真教学实验系统作了一些研究。
关键词:离散事件系统;教学实验仿真系统;建模
中图分类号:TP391
文献标识码:A
文章编号:1009-3044(2017)10-0133-03
在现实中,事件系统分为离散事件系统和连续事件系统。连续事件系统的主要特点是系统状态随时间的变化而连续变化,呈现一种连续性;而离散事件系统的主要特点是系统状态的变化在时间上和空间上都是离散的。
一般而言,离散事件系统具有以下三个最主要的特征:
1)引起系统状态发生跃变的唯一因素是离散事件。
2)系统的演化过程决定离散事件的发生时刻,具有异步的和非约定性的性质。
3)通过对离散事件系统分析和归结,可以确定离散事件相互影响所导致的系统状态的演化过程;通对离散事件系统进行控制和优化归结,可以禁止不期望事件的发生和使得事件按照期望的时序发生。
高校教学实验仿真系统主要特征跟离散事件系统特征十分吻合。因此,基于离散事件系统进行建模和仿真教学实验系统是可行的。
1.离散事件系统仿真技术1.1离散事件系统介绍--
离散事件系统是一类由离散事件按照一定的运行规则相互作用而导致状态演化的动态系统.它可以形式化定义如下:
一个离散事件系统是指有限自动机G=(X,∑,a,Xo,Xm,其中:x指有限状态集,∑是有限事件集,a是状态转移函数:x×∑-->2x,Xo∈X是初始状态,XmE x是终结状态集。如果对任意XoF-X和XmEx,都有Ia(x,Xo)1≤1,则称G为确定型有限自动机(detemini-stic finite automaton,DFA);否則,称G为非确定型有限自动机fnondeteministicnnite automaton,NFA)。
离散事件系统包含实体、属性、间隔、时刻、活动、事件、状态、进程和仿真时钟基本要素。
1.2事件调度算法
事件调度算法是离散事件系统中最常用的调度算法。事件就是引起系统状态发生变化的行为,它是离散事件系统仿真的核心,是驱动离散事件系统运行的直接动力。事件表是用来有效管理事件的,表中记录了所有正在发生或者将要发生的事件类型和发生时间,以及和该事件相关联实体的信息等一。
在该算法中,每当事件发生后,事件会按照时间顺序存放在事件表中。有限自动机会从事件表中按先后顺序提出第一个事件进行处理,从时间控制部件中读取事件发生的时钟,将仿真时钟指修改为事件发生的时钟。每个事件都需要根据需求设计事件处理程序。事件处理程序包括系统状态的变化,仿真时钟的改变,新事件的产生和安排。事件处理程序执行完后,有限自动机继续从事件表中读取下一个事件处理,一直循环下去直到仿真结束。执行过程如图1所示。
2.仿真教学实验系统的总体设计
2.1仿真教学实验系统的结构组成
以微机接口仿真教学与实验系统为例。系统除了构建仿真实验环境,还需要用户通过仿真教学实验系统完成一系列操作,比如,选择器件、器件间线路连接、文字标注、信号输入仿真运行和仿真结果输出等等。教学实验器件包括逻辑门、组合逻辑芯片、时序逻辑芯片、可编程接口芯片、示波器、打印机及外围电路等。最后,系统还需要具体仿真实验的保存和打开;实验过程查询和提示功能,错误提示信息、在线帮助等等,
通过对微机接口教学与实验系统深入分析,系统主要由输入输出接口(I\O)、教学器件仿真库、时序控制系统、器件信号传输模块、与应用程序通信模块和辅助功能组成。
1)输入输出接口(I\O)。也称为人机交互接口,用户通过输入接口可以在微机接口仿真教学实验系统上搭建教学需要的运行环境。仿真结束后,用户通过输出接口得到仿真结果。
2)教学器件仿真库。在教学实验过程中,每次的运行环境都不一样,需要不用的器件,器件间线路的连接,用户程序的执行等等。正是因为教学需求的多样性,所以需要一个教学器件仿真库,器件仿真库里面包含所有教学实验需要的仿真器件。如:8259中断管理接口芯片、8253定时器/计数器接口芯片、8237DMA控制芯片、8255并行I/O接口芯片等等。
3)时序控制系统。使用离散事件系统控制教学仿真实验有序的运行。
4)器件信号传输模块。完成教学实验器件之间信号的传输。
5)通信模块。实现教学实验应用程序与仿真教学实验系统直接的数据通信。
6)辅助功能。如:错误提示信息、在线帮助等等。
一个完整的微机接口仿真实验流程如下:
1)开始运行仿真系统。
2)在计算机上编写微机接口教学实验程序,通过编译与链接生成可执行程序。
3)搭建仿真教学实验平台。在教学器件仿真库,选择实验需要的器件,布置在仿真平台上,通过仿真线路按实验要求进行连接。
4)运行生成的可执行程序。
5)在仿真平台上操作,输入信号。如:通过开关输入高低电压。
6)通过输出接口观察实验结果。如果实验如果与预期一致,则仿真结束;如果不一致,需要修改实验程序和实验平台。直到得到想要的仿真结果。
7)结束仿真系统。
8)保存,关机。
2.2时序控制系统设计
时序控制系统的主要功能是仿真开始后,确保教学实验有序的,正确的,稳定的运行。
微机接口仿真教学实验系统是在离散事件系统建模下由时序控制系统处理一个个离散事件来驱动的。因此,首先要确定仿真教学实验系统中所有的离散事件。经过进入分析,主要有以下离散事件:
1)用户操作产生的事件。在教学实验中,用户通过输入接口对实验过程的操作和控制。比如:信号的输入,示波器的显示,开关的控制等等。
2)应用程序产生的事件。在教学实验中,用户通过编写可执行程序来读/写芯片接口。当芯片接口值发生后,芯片就会产生离散事件。
3)定时器产生的事件。在教学实验中,用户可以在应用程序中设置定时器。定时器时间到后,系统会执行定时器处理程序。
4)中断产生的事件。在教学实验中,用户可以在应用程序中设置中断程序。触发中断条件后,系统会执行中断处理程序。
5)实验器件引脚数值发送变化。在教学实验中,实验器件接收到输入信号后,实验器件会执行实验器件处理程序,执行结束后,实验器件会通过输出引脚输出信号。例如:LED(发光二极管)接收到高电压后,应该发光;接收到低电压后,应该熄灭。示波器在接收到输入信号后,应该显示相应的波形。
当离散事件产生后,离散事件统一存放在事件表中。因为事件表中的事件具有先进先出的特点,所以事件表使用队列作为数据结构。时序控制系统会时时监听事件表,一旦发现事件表非空,就会取出当前事件,根据事件的数据结构对事件进行处理。
事件的数据结构结构为:
EVENT=(Sender ID,ReceiverID,Event Tvpe,Event Para,Time.Callback)
SenderID表示事件的产生者,ReceiverID表示事件的接收者,EventType表示事件的类型,EventPara表示事件的属性,Time表示时间发生的时间,Callback表示处理事件的回调函数。
通俗来说,事件的数据结构记录着事件的发生者,事件的接收者,事件类型,属性,时间及处理方法。
3.仿真教学实验系统的实现
在深入分析仿真教学实验系统需求和整体设计后。运行多线程技术来实现实验仿真和用户操作的并行。运行离散事件系统事件调度算法来控制仿真平台有序,正确的运行。
3.1实验仿真和用户操作的并行
教学实验仿真开始后,时序控制系统会控制整个系统有序,正确的运行。但在这个过程,用户也可以在教学实验仿真平台上通过输入输出接口进行操作。因此需要实现时序控制系统和其他模块的并行运行。多线程技术可以很好地实现这一需求。系统中包含两个线程,线程1处理输入输出接口,器件仿真库,器件信号传输模块,通信模块和辅助功能;线程2让离散事件有序,正确的运行。双线程运行如图2。
3.2时序控制模块的实现
微机接口教学实验仿分为仿真开始,仿真进行,仿真结束。
仿真开始。用户根据实验要求在仿真实验环境中搭建硬件环境,编写实验需求的应用程序。系统将根据用户搭建的硬件环境和应用程序做初始化操作。
仿真过程。当用户开始仿真后,系统就进行仿真状态。时序模块运用事件调度算法确保系统运行时的正確性、稳定性和高效性。在这个过程中,用户可以通过输入接口对仿真环境进行操作;同时输出接口会将仿真结果展现给用户。仿真过程如出现错误,系统会提示。
仿真结束。仿真结束后,系统具有保存功能,将当前的硬件环境和应用程序保存起来以备下次使用。
仿真过程的具体实现步骤如下:
1)用户搭建硬件环境,编写微机接口应用程序。
2)打开仿真开关,仿真开始。
3)系统做初始化操作,器件初始化,清空时间表。
4)输入接口接受用户操作。
5)将产生的事件按时间顺序存放在事件表中。
6)循环判断事件表是否为空。如果不为空,从事件表中取出第一个事件。根据事件的属性调用事件处理回调函数进行处理,将取到的事件从事件表中删除。处理过程中又产生新的事件,将新的事件存放在事件表中。
7)仿真结束。
4.结束语
文章以微机接口教学实验仿真系统为例,使用离散事件系统进行建模和仿真。在充分了解需求后,构造了整个仿真系统的整体架构,功能需求和工作流程。使用多线程技术解决仿真系统并行问题,使用事件调度算法来控制系统有序正确的运行,最终实现了该系统。由于微机接口教学实验仿真系统跟其他教学实验仿真系统有一个的共性,可以供其他教学实验仿真系统借鉴。