西部大开发为提高西部的教育水平带来了契机。建立一个低成本,易维护,仿真性好,具有灵活性,覆盖面广的系统化的虚拟接口、实验平台来解决西部教育中的实验教学难题,成为目前远程教育实验教学的关键。
基于网络环境的虚拟接口实验平台是一个可以在网络环境下运行的虚拟实验室。为用户提供一个二维的可视化的环境,用户通过汇编指令的调试、执行和分析,最终将指令执行结果反馈给以软件形式展示的硬件系统,驱动虚拟硬件工作,产生正确的时序和波形图。
一个基于网络的虚拟接口实验室必须具备以下功能:①程序的仿真解释执行(程序解释器):模拟执行完整的程序段,利用高级语言的面向对象的技术仿真解释用户 提交的低级语言源程序;②虚拟芯片库平台:提供可视化的模拟图形芯片和一些常见的虚拟门电路,用户选择芯片,门电路连线,接受程序执行的结果数据,触发芯 片的工作,产生试验结果的模拟时序波形图。
2 系统设计与实现
系统实现基于Web浏览器/业务逻辑层/数据存储层(B/A/S)的三层网络架构计算模型,以Java为主要开发语言。浏览器端的展示层以JSP页 面为主,用户登陆试验页面,选择以iava applet应用实现的虚拟芯片进行连线。用户在网页界面的提示处编写试验程序,提交程序到服务器,服务器端的解释器平台调用解释规则库,解释程序结果并 可视化的返回给客户端。用户将结果数据提交给已连接好的虚拟接口电路,服务器端通过类库设计定义各类芯片的工作方式、电气特性、I/0特性和几何特性等, 确定信号时延。对芯片的各个管脚分别建立子类.定义各管脚的电气特性、I/0特性和几何特性等,达到真实地模拟硬件结构,使运算结果与真实硬件相同,实现 对各个接口技术实验环境进行仿真。系统可根据用户端的不同设计进行重新配置执行,使学习者感觉到其所应用的实验平台就是真实接口技术实验室。
3 接口实验流程建模
一个现实的接口实验流程如下:学生接到实验任务,进入实验室:①打开集成实验环境,在计算机上编写汇编、C语言,通过词法、语法检查;②连接集成开发试验箱,连接跳线,烧录程序;③观察实验板上的现象,比对试验结果;④如果与预期结果现象一致,则试验程序正确,此试验结束,课后书写实验报告,否则转向;⑤修改程序,调试程序重复②~④。虚拟接口实验平台的模式如图l所示。
4 汇编程序的仿真解释执行
汇编程序是一个接口实验的基础,由程序的正确执行结果驱动相应的芯片工作产生时序图,模拟真实的接口实验环境,应具备的功能模块如下:
(1)预处理模块 除去注释、伪指令,分析程序语句,分离出指令操作码,第一、二操作数,并存储到指令数据表;
(2)数据表模块建立汇编指令所需的寄存器表、内存表,端口表等,并提供通用的数据读、写接口;
(3)解释执行模块(规则库)核心是建立各类指令的规则库,跟踪模拟程序指针PC的流程,实例化指令码对应的指令类,取出该条指令的操作数传人类对象的成员函数,进行对应的函数操作,返回计算结果,并写入对应的数据表;
(4)通讯模块 建立程序执行与虚拟芯片工作的连接,程序执行结果能透明的传递给虚拟芯片工作接口函数,并接受虚拟芯片工作后的反馈数据,透明的反馈给程序。
仿真解释执行的算法嘲描述:①从用户程序表中取出一条源程序语句,记录此语句对应的程序指针PC;②分离出语句中的操作码、操作数,在指令规则库中查询其 对应的指令类,若跳转指令,转至⑦否则转至③;③查找数据字典中的寻址方式表,实例化出该指令对应的寻址类对象,取出操作数,调用指令类对象的函数成员, 接受寻址类对象实例处理后的操作数,进行函数运算,刷新其对应的寄存器表或内存表等;④取出各寄存器及内存单元对应的数据,以图表的形式展现在界面上,同 时将其与虚拟芯片相关的数据透明的传递给通讯接口;⑤计算该指令的运算时问,以静态变量保存;⑥PC=PC+1取出下一条指令继续执行,转至②;⑦若是无 条件跳转指令,计算该标志对应的PC值,转至对应的指令语句执行,转至②;若为有条件跳转指令,取出状态寄存器中该指令对应的PSW值,判断条件是否成立,如成立按无条件跳转指令执行,否则PC=PC+1,转至②;若是子程序(中断程序),则保存该条语句的PC值,便于程序的返回执行,同时按无条件跳转指令执行;若为RET指令则程序结束。
5 虚拟芯片的设计
5.1 设计思想
接口电路设计所用器材包括CPU、TTL门电路、可编程逻辑芯片、负载等。传输信号主要分控制、地址、数据电源和 地线。为实现实验电路逻辑性正确与否的检测,其设计方法是:针对每个芯片建立类,定义各种工作方式、电气特性、I/O数据结构。对其各管脚的功能定义 (I/0特性、信号类型、电气特性)建立子类,并构造I/0方法,确定信号时延。几何特性描述芯片的外部特征;工作特性描述芯片的数据处理方式(即工作方 式);电气特性描述芯片的工作周期;I/O数据结构负责芯片工作前数据的接受与工作中、后的数据输出。
虚拟接口实验室要涉及的硬件比较多,而每个硬件的外部几何特性都不尽相同,在非固定实验的情况下,用户总是希望可以自由的选择各类硬件,这样就可以动态地 实现各类硬件的实例化操作。设计时采用硬件多态的思想,最大化的实现虚拟芯片类库的复用,即设计抽象于所有硬件的一个主模块,派生出具体的硬件类,可以实 现用户随意选择芯片,也方便硬件链表的统一处理。
5.2 设计实例
5.2.1 设计思想
芯片具体实现包括芯片的几何特性、工作特性、和电气特性。几何特性描述了芯片的外部特征;工作特性描述的是芯片的数据处理方式(即工作方式);电气特性描述的是芯片的工作周期。不失一般性,在此以8253来说明设计思想和类之间的具体关系。
5.2.2 类图关系
为实现硬件多态,设计了硬件模板类、芯片引脚类、8253芯片类3个类,类图及关系如图2所示。
对设计好的虚拟芯片要进行移动、缩放、芯片间连线、连线变形和连线正确性检测等操作。