首页> 中国专利> 一种计算机硬件系列课程的远程实验系统

一种计算机硬件系列课程的远程实验系统

摘要

一种计算机硬件系列课程的远程实验系统,属计算机教学实验仪器技术领域,其特征在于,含有:实验设备,服务器和客户端计算机,实验设备通过USB接口与服务器相连,客户端和服务器通过网络接口连接的以太网口。本发明克服了在服务器作模拟实验存在的和实际硬件运行结果不一致的缺点,不仅适用于驻地实验,还适用于远程式、开放式、创新式实验。

著录项

  • 公开/公告号CN101814248A

    专利类型发明专利

  • 公开/公告日2010-08-25

    原文格式PDF

  • 申请/专利权人 清华大学;

    申请/专利号CN201010143124.7

  • 发明设计人 李山山;全成斌;李耀锵;赵有健;

    申请日2010-04-07

  • 分类号G09B19/00(20060101);

  • 代理机构11246 北京众合诚成知识产权代理有限公司;

  • 代理人朱琨

  • 地址 100084 北京市100084-82信箱

  • 入库时间 2023-12-18 00:31:18

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-03-18

    未缴年费专利权终止 IPC(主分类):G09B19/00 专利号:ZL2010101431247 申请日:20100407 授权公告日:20111109

    专利权的终止

  • 2011-11-09

    授权

    授权

  • 2010-10-13

    实质审查的生效 IPC(主分类):G09B19/00 申请日:20100407

    实质审查的生效

  • 2010-08-25

    公开

    公开

说明书

技术领域

本发明涉及一种计算机硬件系列课程的远程实验系统,属计算机教学实验仪器技术领域。

技术背景

目前国内的计算机硬件课程实验都是在本地完成实验内容,需要实验者在实验设备前操作实验设备,得到实验结果,以达到实验的目的,但是由于实验场地开放时间和实验设备数量的限制,造成实验设备只有在场地开放的时候才能被用来完成实验,而有很多时候都是空闲的。如果使用网络来进行远程实验就能够解决这个问题,让实验者在远程在任何地点任何时候进行实验,大大增加了实验地点和实验时间的灵活度,提高了实验设备的利用率,降低对实验室空间的要求,从而节约了实验经费。

目前存在的远程实验系统,都不是基于实际硬件设备的,而是在服务器上做模拟,客户端上得到的实验结果也是模拟结果,并不是实际硬件运行的结果,这样就有可能出现模拟结果和实际硬件运行结果不一致的情况,大大降低了实验结果的可信度和可验证性。

发明内容

本发明的目的是设计一种计算机硬件系列课程的远程实验系统,在该实验系统上可以远程进行计算机系列硬件课程的实验。

本发明提出的计算机硬件系列课程的实验装置包括开展实验的实验设备,管理实验设备的服务器和软件,进行实验的客户端计算机和软件。实验设备通过USB接口连接到服务器上,多个设备需要经过USB集线器再通过USB接口连接到服务器上,集线器之间也可以级联;客户端和服务器通过网络接口连接到以太网上,二者通过以太网进行通讯。

实验设备包括实验芯片、控制芯片、下载芯片、存储器、USB通信接口、FLASH存储器以及各类实验用接口。

(1)实验芯片,由实验者写入代码、进行实验;

(2)控制芯片,用于控制板上电路、提供对于实验芯片的实验支持和监测、以及对外发出监测内容。主要分为三个部分:

a)内存总线部分:发出内存总线的所有控制信号。

b)寄存器部分:监听实验芯片的寄存器信息等实验内容。

c)通信部分:对外发送消息;

(3)下载芯片,用于下载程序到实验芯片和控制芯片,同时负责时钟分频以及控制芯片对USB接口的通信中转;

(4)存储器,用于存储相关实验测试程序以及数据;

(5)USB通信接口,用于同控制程序通信;

(6)FLASH存储器,存储供下载芯片存储需录入内容;

(7)各类实验用接口,用于辅助进行各种硬件实验;

上述控制芯片通过数据总线、地址线、内存读写线、寄存器传输线、数据三态控制和实验芯片相连,通过数据总线、地址线以及数据三态控制线和存储器相连;上述实验芯片通过数据总线以及地址线和存储器相连,直接与各类实验接口相连;上述下载芯片通过JTAG线与实验芯片和控制芯片相连,和FLASH存储器直接相连,和控制芯片的通信部分直接相连,和USB通信接口直接相连。

管理实验设备的服务器和软件包括计算机服务器,USBInterface软件,RLab软件及数据库软件。

(1)计算机服务器,运行windows系统,具有USB接口和以太网接口;

(2)USBInterface软件,负责扫描连接到服务器USB接口上的实验设备;下载固件程序,使硬件可以和USBInterface正常通信,与硬件通信,完成操作(包括写flash芯片,写FPGA芯片,设地址总线,读寄存器,等等);

(3)RLab软件,负责管理用户、实验设备和实验进程,同时负责维护数据库,对数据库进行读写,提供WCF服务给客户端软件;

(4)数据库软件,记录用户信息、实验内容、实验过程、日志等;

上述软件都运行在服务器上,RLab软件从USBInterface软件中得到实验设备信息,读写数据库,提供实验内容,并为客户端软件提供WCF服务。

进行实验的客户端计算机和软件包括客户端计算机,VLabClient软件。

(1)客户端计算机,运行windows系统,具有以太网接口;

(2)VLabClient软件,负责用户实验界面,连接服务器,访问服务器的WCF服务,传输数据及命令完成实验及查看实验结果等。

本发明提出的计算机硬件系列课程的远程实验系统,既可以在本地完成实验,也可以在远程完成实验,二者实验效果相同,没有本质的区别;它不仅适用于驻性实验,还适用于开放式、创新式的实验,实现了对于计算机硬件系列课程的实验的支持。

附图说明

图1是本发明提出的计算机硬件系列课程的远程实验系统的结构框图

图2是本发明中实验者登录服务器和操作设备的示意图

图3是本发明中实验的具体操作流程

图4是本发明中实验设备的结构图

图5是本发明中USBInterface软件的结构图和流程图

图6是本发明中RLab软件结构图

具体实施方式

本发明提出的计算机硬件系列课程的远程实验系统的结构框图如图1所示,包括实验设备,服务器和客户端三个部分。其中

(1)实验设备,用来完成硬件实验,上面有实验芯片和控制芯片用来进行实验和控制,还有通讯接口用来完成传送数据和实验结果;

(2)服务器,用来管理实验设备,并提供远程实验服务;

(3)客户端,有实验界面,用来在远程进行实验操作,并查看实验结果。

设计使用了如下的实验流程:

实验者需要通过客户端远程登录服务器,然后服务器会根据实验者的请求分配给实验者一台或多个实验设备,接着实验者就能够通过客户端的软件来操作实验设备进行实验,并在客户端上查看实验结果。

实验者登录登录服务器的示意图如图2(1)所示,实验者在客户端使用登录界面发送向登录认证发送登录信息,登录认证再请求服务器,服务器通过查询数据库来确认是否为合法用户,如果是合法用户,则给客户端发送应答信息,客户端进入实验界面,实验者在上面可以看到连接情况、设备使用情况、用户在线信息和操作信息等。

实验者操作设备的示意图如图2(2)所示,服务器在得到实验者连接请求时,首先判断此其是否已连接上设备,如果没有,则分配端口和设备,之后初始化设备,并将分配到的设备信息返回给实验者,此后实验者就可以通过这些信息对分配到的设备进行操作。在用户操作设备的过程中,服务器端主要工作有:

(1)数据库操作:动态记录设备列表和连接表,在实验者操作时记录操作数以及操作时间,当实验者离开时将历史记录中的总操作数和总在线时间(累加最后一次操作时间减去本次上线时间)更新。

(2)日志信息:主要通过配置文件中的路径信息保存日志。日志分两种,一种是txt格式,记录重要信息,如操作、上传等,另一种是wcflog形式,记录所有与网络传输相关的连接信息。

(3)操作硬件:调用硬件服务类、硬件管理类和数据库操作类,客户端和服务器通过WCF通信维护实验者和设备的对应,将实验者给设备的操作信息发送给对应设备,并将设备返回值返回到客户端。在多个实验者并发时,服务器端通过在服务器上生成多个实例进行多线程操作。

(4)硬件分配:对于扫描到的设备,分配给固定的端口号,当设备被挂起时,不容许原有实验者继续操作。在新连接设备申请到达时,首先扫描是否有被挂起的设备,如果有则分配给新实验者,否则到剩余设备列表中寻找第一台可用设备。

(5)操作验证:在接到一个新的操作时,服务器通过查询保留在内存的实验者和设备的对应表找到实验者对应的设备,之后依次检查硬件是否正常工作和是否处于可用状态。当满足操作验证的要求后,对设备的操作会发送给设备。

在实验过程中具体的操作流程如图3所示,客户端发出操作请求,经过WCF认证后到服务器端,服务器端查找到对应设备并将操作通过TCP/IP协议发送给服务器的底层程序(USBInteface),底层程序通过USB接口发送实验设备,实验设备运行后将结果通过USB接口发送回底层程序,然后再回到服务器端,服务器端分析结果并记录操作,最后将结果通过WCF返回到客户端,整个操作过程完成,如果出现错误的话,则返回操作未成功。

实验设备的结构框图如图4所示,包括实验设备实验芯片K1、控制芯片K2、下载芯片K4、存储器K3、USB通信接口K6、FLASH存储器K5以及各类实验用接口K7。其中

(1)实验芯片K1,由实验者写入代码、进行实验;

(2)控制芯片K2,用于控制板上电路、提供对于实验芯片K1的实验支持和监测、以及对外发出监测内容。

(3)下载芯片K4,用于下载程序到实验芯片K1和控制芯片K2,同时负责时钟分频以及控制芯片对USB接口K6的通信中转;

(4)存储器K3,用于存储相关实验测试程序以及数据;

(5)USB通信接口K6,用于同服务器通信;

(6)FLASH存储器K5,存储供下载芯片存储需录入内容;

(7)各类实验用接口K7,用于辅助进行各种硬件实验;

上述控制芯片K2通过数据总线、地址线、控制线、数据控制线和实验芯片K1相连,通过数据总线、地址线以及数据控制线和存储器K3相连;上述实验芯片K1通过数据总线以及数据控制线和存储器K3相连,直接与各类实验接口K7相连;上述下载芯片K4通过JTAG线与实验芯片K1和控制芯片K2相连,和FLASH存储器K5直接相连,和控制芯片K2直接相连,和USB通信接口K6直接相连。

在实验设备上进行实验的流程如下:针对具体的实验,服务器通过USB通信接口K6将实验需要的硬件代码发送给下载芯片K4,下载芯片K4将代码下载到实验芯片K1中,同时,K4将预存在Flash里的控制芯片的代码下载到控制芯片K2里。接下来,通过控制芯片K2设置数据总线状态,控制并辅助实验芯片K1进行实验。实验过程中,实验芯片内运行了实验中实验者编写的代码,该代码按指定接口实现了一个暂存区域A1(通用寄存器),A1中暂存了实验者所关心的实验芯片内部信号。控制芯片K2内部同样维护了一段格式相同的暂存区域A2,通过寄存器传输线路保持A1的实时镜像,该镜像继续向上发送至上位机。。用户要把从客户端把测试代码和数据写入存储器或者从存储器里读取测试代码和数据的时候,K2暂时抢占数据总线和地址总线的控制权,直到把测试代码和数据写入到存储器或者测试代码和数据都从存储器里读出之后,才把数据总线和地址总结的控制权交还实验芯片;测试代码和数据的读写也由控制芯片完成。用户还可以从客户端向实验芯片发送时钟,复位信号,读取数据总线、地址总线等。

下面结合附图,详细介绍本发明的一个实施例。

在图1中客户端和服务器都是通用计算机,运行的系统都是windows,均须有以太网接口,服务器还需要具有USB接口,如果实验设备过多,还需要USB集线器做级联。

客户端上运行了VLabClient软件,负责用户实验界面,连接服务器,访问服务器的WCF服务,传输数据及命令完成实验及查看实验结果等。

服务器端运行了底层硬件程序USBInterface(也称作硬件接口程序)、实验管理软件RLab和数据库软件MySQL。

硬件接口程序是运行在连接了硬件的PC机上的一段程序,使用MFC开发,通过usb驱动程序和硬件进行通信。USBInterface接收来自服务器的指令后,将其翻译为相应的操作并发送到硬件;操作完毕后读取结果并发送回服务器,再由服务器转发给客户端,在客户端显示相应的结果。

UsbInterface程序结构如图5(1)所示,在头文件UsbInterface.h中定义了USB类。USB类包含以“Do_”开头的一组操作函数,通过调用usb驱动程序CyAPI,实现与硬件通信和具体操作。在头文件中同时定义了与服务器端相同的一组操作指令符。服务器传来的指令被翻译为对这组函数的调用,以完成用户指定的操作。翻译指令工作由FIFOServer函数完成。

USBInterface的工作流程如图5(2)所示,USBInterface主进程启动以后,开始了三个线程:Info_Auto_Sender,USBThread和CyRam_Auto_Downloader。

(1)Info_Auto_Sender的作用是扫描目前连接在电脑上的硬件设备,将可用设备的地址列表发送给服务器。

(2)USBThread新建一个USB类的实例,以调用USB类的成员函数FIFOServer()。FIFOServer()函数的作用是将从服务器发来的指令翻译为具体的函数调用。并将操作结果返回服务器。

(3)Cyram_Auto_Downloader的作用是向usb下载固件程序。

实验管理软件RLab主要负责组织好用户和设备的对接,传输数据,维护数据库和日。RLab启动后,就根据USBInterface向上发送的设备情况建立自己的设备表和数据表,启动图形界面。之后程序首先由MainForm中的StartAllConfiguredServices()函数根据app.config文件设定的WCF相关信息(地址,绑定,服务)生成IDeviceService.cs和IClientService.cs这两个服务。这两个服务的具体实现在DeviceService.cs和ClientService.cs中。DeviceService连接用户和底层,通过验证用户发来的请求判断应该对哪一个设备进行操作,并将返回值返回给用户。ClientService主要提供用户的登录,退出,修改用户信息,获得服务器IP地址和设备列表等操作。

服务器端的工程结构如图6所示。在MainForm.cs和app.config两个文件中部署了WCF服务的发布。ClientService.cs和DeviceService.cs为具体的WCF服务。DataControll.cs为所有与数据库相关的操作。DeviceControll.cs用于硬件管理,ProgramUsb.cs用于和硬件通信。其中devicesForm.cs、experimentForm.cs、pluginForm.cs、userinfoForm.cs、user_experimentForm.cs、userrecordForm为数据表的界面显示。

数据库软件使用MySQL,主要由以下六个表组成,其中在程序运行过程中会被动态改动的表有:设备表devices、连接表plugin、用户实验信息记录表userrecord;不会在程序运行时被改变的有:学生信息表userinfo、试验信息experiment、学生成绩录入user_experiment。具体字段信息具体介绍如下;

表一:devices的主键为由心跳函数读取到的设备号;其中type用于实验设备的扩展,addr用于标示不同设备,可以通过心跳函数得到此值,用于在设备故障时给出设备具体位置。Used表示当前是否被使用,state表示当前是否正常工作,port为设备在初始化时被分配到的端口号。User为使用者学号。

表二:userinfo的主键为自增的整数,其他字段为用户的信息。其中主要用于区别用户的为学号(studentnumber)和密码(password)。

表三:userrecord表的主键为用户的学号(表中用username表示),其中logout_time为最后一次操作时间,login_time为本次登录时间,online为是否在线,onlinetime为累积在线时间。

表四:experiment表主键为实验名,attribute为实验属性,info_e为具体信息,device_num为应该使用的设备数

表五:user_experiment表的主键是学号和实验名。user_names为学生姓名;done_time为实验提交时间;time_spend为此实验用时;device_num为完成实验所用设备号;operatetimes为此实验所作操作数;record和remark为教师打分所用的分数和评语。

表六:plugin表的主键为用户学号+设备号,这样是为了容许同一个学生使用多个设备,其中device_type用于实验设备的扩展,只需同步UserRequest数据契约中的相应数据即可;device_names用于标示不同设备,可以通过心跳函数得到此值,用于在设备故障时给出设备具体位置。

实验中重要日志根据配置文件记录在某目录下的rlablog.txt中,WCF相关日志(消息和事件)记录在同一目录下的.svclog文件中,这种日志需要.net Framework提供的SvcConfigEditor.exe和SvcTraceViewer.exe工具打开。

实验设备主要由实验芯片、控制芯片、下载芯片、存储器、USB通信接口、FLASH存储器以及各类实验用接口组成,如图4所示,具体实现如下。

K1是实验芯片,采用FPGA实现,型号为EP2C20Q240。这里写入实验中进行实验的相关内容。实验芯片K1从控制芯片K2处得到运行的时钟后,将运行过程的需监测信息,通过控制芯片K2和实验芯片K1的通路,也就是控制线将需要监测的信息发回到控制芯片K2,继而最终传输到客户端由实验者看到。所有的实验中,实验芯片的实验部分时钟和复位信号都是由控制芯片提供的,而监测线路,则采用独立于实验部分的单独的时钟和复位信号。

K2是控制芯片,同样由一块FPGA芯片实现,型号为EP2C20Q240。控制芯片内的代码是针对实验事先实现完成的,下载后运行,将会围绕实验芯片K1将特定实验所需要的总线状态和监测逻辑配置完毕。在接下来的实验过程中,发送实验芯片K1运行所需的时钟和控制信号,需要数据总线控制的实验中,协同控制总线上的所有器件,发出所有器件的数据控制信号,同时在整个实验过程中将实验芯片K1中需要观察的信号获取得到,以内存影射的方式与下载芯片交互信息。

K3是存储器,由4片RAM5128TSOP构成。在需要存储代码和一些文件的实验中,我们将代码通过数据总线和地址线写入存储器中。对于K3的读写信号完全是由控制芯片K2来发出的。当需要写存储器K3的时候,控制芯片K2发送给存储器相关的写信号和地址,同时,控制实验芯片K2,保证自身K2与实验芯片K1中,只有一个在数据总线上有效,发出数据。当读取存储器K3的时候,控制芯片K2发送给存储器相关的读信号和地址,同时控制自身K2和实验芯片K1在数据总线上取得所需的数据。

K4是下载芯片,由一片EPM3256A构成,主要负责在实验内容的初始化阶段,将实验所需的板上代码下载到FLASH存储器K5中,下载完毕再分别装入控制芯片K2和实验芯片K1中。当需要切换实验或者强行重启动实验的时候,协助发出复位信号。同时,下载芯片还利用它的可编程逻辑,实现分频器的作用。下载芯片向上与USB芯片相连,与上位机一起构成USB芯片的FIFO两端的读/写者。。存储器读写,寄存器读取,时钟信号,复位信号,数据总线三态控制等命令都以内存影射的方式与控制芯片交互。

K6是一个Flash存储器,是一片MT28F640J3,用来存储下载芯片K4临时装入的控制芯片K2的代码和实验箱编号。

K6是USB通信接口,由CY7C68013A-128芯片构成,它是一款单片机,但本设备只用到它的Slave模式的FIFO。通过此接口,与服务器通信发送来的数据发送到下载芯片K4或者通过K4传输到通信总线上。

K7是各类实验用接口,包括PS2、VGA、音频、单色LCD以及串口和SD卡接口。各类实验接口都与实验芯片K1直接连接,需要使用时,应在实验芯片K1中实现相应的驱动程序。

数据总线部分,实验芯片与控制芯片共享32根数据信号线。地址总线方面,我们采用了“实验芯片K1访问存储器的地址总线以及读写控制信号完全接入控制芯片,由控制芯片根据状态参考这些信号和自身情况生成对应的总线访问信号”的方式。复位信号方面,由控制芯片接受并解析来自复位按键或上位机的复位信号,向实验芯片转发复位信号。时钟信号的生成与复位信号一样。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号