一种基于FPGA与ARM的远程实验系统及设计方法与流程

文档序号:18644988发布日期:2019-09-12 08:50阅读:195来源:国知局
一种基于FPGA与ARM的远程实验系统及设计方法与流程

本发明涉及实验教学仪器的技术领域,具体而言,是一种支持远程实验的FPGA实验系统。



背景技术:

实验是日常教学中非常重要的组成部分,也是科研过程中进行验证的主要手段。传统教学实验方式是在指定的时间,到实验室完成实验,其缺陷是实验时间地点受限制、实验设备利用率低、实验室及设备管理代价大。在提倡“在线学习”的今天,理论学习早已具备形式多样的远程与在线学习资源,然而,受实验时间、空间及实验设备的限制,实验教学的在线学习手段却远远落后。

近年来,国内外也兴起了一些实验手段变革,譬如“虚拟仿真实验室”的建设,将实验设备用纯软件来模拟实现,使用者只需运行虚拟仿真软件,就可以进行虚拟实验。然而,虚拟设备说到底是软件,它和实际的实验设备还是有很大的差别,尤其涉及硬件设备的时序部分,虚拟设备很难模拟真实设备的全部性能。

另一种变革是“远程实验系统”的提出,它和“虚拟仿真实验室”不同的是:“远程实验系统”是基于真实的实验室设备的远程实验,它借助网络,有些还借助视频监控设备,将实验室设备的状态反馈给远端的用户。但是,它们最大的缺陷是缺乏有效的交互,即用户在远端无法具体操控实验设备。究其原因,与实验设备本身的复杂特性有较大关系。

FPGA由于其可编程性、高速性及容量大等特性,近年来成为计算机硬件课程实验的首选实验设备。FPGA是基于数字电路的逻辑结构,实验中的输入输出信号均为数字信号,可以由ARM输出控制或者直接获取;同时,ARM的网络接口与FPGA的被动配置模式使得远程配置成为可能,这些为FPGA远程实验系统的设计提供了有利的基础。



技术实现要素:

本发明针对现有远程实验技术存在的问题,提供了一种基于FPGA与ARM的远程实验系统及设计方法,它借助Internet及其网络服务器,为远端的PC客户端用户提供基于FPGA与ARM的远程实验系统的远程硬件实验。该方法通过服务器与远程实验板卡上的ARM网络接口,利用FPGA的被动配置模式,实现远端用户对FPGA的远程配置;同时使用ARM实现对FPGA仿真设备引脚的信息采集与驱动控制,并与服务器和PC客户端进行双向交互,从而真正实现远程硬件实验。

本发明所设计的基于FPGA与ARM的远程实验系统,其特征在于:系统基于Internet网和C/S架构,由服务器、多个PC客户端和多个ARM客户端组成,连接的网络拓扑结构是星形连接,使用基于TCP/IP协议的自定义应用层协议;其ARM客户端的硬件基础为FPGA远程实验板卡,由ARM及其外围(含网口)电路、FPGA及其实验外设构成,其特征在于:FPGA的被动配置接口与ARM连接,用以实现FPGA程序的远程配置;FPGA的IO引脚一部分连接实验外设实物,一部分连接到ARM,定义为仿真外设;PC客户端和FPGA远程实验板卡之间的连接通道是:所述的实验外设为开关、LED灯。

本发明提出了一种基于FPGA与ARM的远程实验系统的设计方法,其方法包含以下步骤:

步骤一、实验预约:PC客户端是用户与服务器、ARM客户端的交互接口,用户通过客户端程序登陆并预约远程实验;服务器根据PC客户端发来的预约请求,提供实验预约服务,并将预约信息存入数据库;

步骤二、远程登陆与配对:在规定的远程实验时间,用户通过PC客户端登陆后,由服务器在PC客户端和ARM客户端之间进行动态配对,记录在数据库中,并建立点对点的连接;

步骤三、远程配置:远程实验时,用户需要将FPGA的实验程序,下载到远程的FPGA实验板卡,方法是:

步骤1、PC客户端将配置程序传送给服务器,由服务器转发给配对的ARM客户端,ARM客户端程序将其存储于ARM的NAND Flash中;

步骤2、ARM客户端程序打开该配置文件,读取一个字节;

步骤3、ARM客户端程序按照FPGA的从串模式(对于Xilinx FPGA芯片)或者PS模式(对于Altera FPGA芯片)的时序将字节逐位写入FPGA;

步骤4、如果配置文件没有读取完,则读取下一个字节,转③;否则,配置结束;

步骤四、远程交互:远程实验实现的是双向交互,方法是:

(1)从FPGA远程实验板卡到PC客户端,传送的是实验数据,步骤是:

步骤1、在PC客户端和ARM客户端建立连接后,ARM客户端定时(譬如每隔500ms)采集FPGA的仿真输出外设对应的输出引脚状态(0、1),按照自定义的应用层协议,打包传递给PC客户端;

步骤2、PC客户端将这些FPGA输出引脚的状态定义为仿真输出外设(譬如LED灯、数码管等),以可视化图形的形式,将仿真输出外设的状态(亮、灭),展现在PC客户端用户画面上;

(2)从PC客户端到FPGA远程实验板卡,传送的是实验操作指令,步骤是:

步骤1、用户在PC客户端用户画面上,改变图形化的仿真输入设备(譬如开关、按键)的状态(开、关),按照自定义的应用层协议,打包传递给ARM客户端;

步骤2、ARM客户端程序将仿真输入设备的状态(开、关),变成0或1,控制ARM输出到FPGA的对应输入引脚。

本发明的有益效果

本发明在普通的FPGA实验板卡上,加设了ARM芯片及其网口电路,辅以C/S架构的服务器与客户端软件,使得FPGA实验板卡具备了远程实验的能力;利用FPGA的被动配置模式,使用ARM的网络功能及其对FPGA的驱动程序,实现了FPGA的远程配置;除了FPGA实验板卡上原有的实物实验外设之外,又设计了一组专用的仿真设备与ARM连接,供远程实验使用,该设计有两个优点:一是真正实现了硬件实验的双向交互,达到了远程硬件实验的目的;二是使得FPGA远程实验板卡既具有远程实验的功能,也具有本地实验的功能。

附图说明

图1是本发明基于FPGA与ARM的远程实验系统的整体架构;

图2是系统信息交互图;

图3是基于FPGA与ARM的远程实验板卡的结构;

图4(A)是PC客户端和FPGA远程实验板卡之间的连接通道;

图4(B)是PC客户端和FPGA远程实验板卡之间的优化连接通道;

图5是ARM客户端程序结构;

图6是实现FPGA远程配置的ARM程序流程图;

具体实施方式

本发明针对现有远程实验技术存在的问题,提供了一种基于FPGA与ARM的远程实验系统及设计方法,它借助Internet及其网络服务器,为远端的PC客户端用户提供基于FPGA与ARM的远程实验系统的远程硬件实验。该方法通过服务器与远程实验板卡上的ARM网络接口,利用FPGA的被动配置模式,实现远端用户对FPGA的远程配置;同时使用ARM实现对FPGA仿真设备引脚的信息采集与驱动控制,并与服务器和PC客户端进行双向交互,从而真正实现远程硬件实验。

以下举例说明本发明整个过程的具体实施方式:

1、基于FPGA与ARM的远程实验系统的架构,如图1所示。系统基于Internet网和C/S架构,由服务器、多个PC客户端和多个ARM客户端组成,连接的网络拓扑结构是星形连接,使用基于TCP/IP协议的自定义应用层协议。

自定义的应用层协议的帧结构如表1所示。

表1 自定义协议字段格式表

1)编号:传输时本地的计数字段,对发送帧计数;

2)类型码:指示传输数据段的数据类型,0x01代表操作命令(具体操作命令由操作码规定),0x02代表实验数据,0x04代表传输文件,0x08代表应答数据。

3)操作码:0x00代表无效,0x01-0x0C代表各种操作指令,具体为ARM启动请求、实验人员登陆请求、实验预约请求、预约记录查询请求、实验初始化请求、FPGA配置请求、实验操作请求、实验结束请求、初始化准备指令、FPGA配置指令、实验操作指令和实验结束指令12种指令。系统中各个模块间的信息交互如图2所示。

4)FPGA编号:FPGA远程实验板卡编号;在不需要时,用0x00表示。

5)传输数据长度:占2个字节,限制最大可传输32KB的数据。

6)校验和:占2个字节。

2、FPGA远程实验板卡的设计:ARM客户端的硬件基础为,它由ARM及其外围(含网口)电路、FPGA及其实验外设构成,其特征在于:FPGA的被动配置接口与ARM连接,用以实现FPGA程序的远程配置;FPGA的IO引脚一部分连接实验外设实物,一部分连接到ARM,定义为仿真外设;结构图如图3所示。

FPGA远程实验板卡上有实物的实验外设和仿真外设,分别占用FPGA的不同IO引脚;实物实验外设(譬如开关、按键、显示灯、数码管等等)可供本地实验使用;仿真外设则供远程实验使用。

仿真外设在FPGA实验板卡一侧,实际等效与FPGA的IO引脚,仿真输入外设等效于FPGA输入引脚,仿真输出外设等效于FPGA的输出引脚;仿真外设在PC客户端一侧,则可以以可视化的形式显现出其仿真图形,譬如开关、按键、显示灯、数码管等等。仿真外设与纯粹的软设备不同,它是基于FPGA硬件抽象出来的图形化设备。

将实物实验外设和仿真实验外设分别连接到不同的FPGA引脚,既能够实现本地实验和远程实验的双重需求,又能巧妙地解决双向交互的技术瓶颈。

3、PC客户端和FPGA远程实验板卡之间的连接通道是:传输方向与传输信息如图4(A)所示;

多台FPGA远程实验板卡可以置于实验室内,组成一个局域网,通过服务器连接到外网;也可以全部单独连接到外网,这种情况下,可以采用优化措施:在配对的PC客户端和ARM客户端之间建立单独、直接的连接,由状态采集线程专门负责传输实验数据,以提高实时性、减轻服务器的负荷,如图4(B)所示。

4、PC客户端设计:PC客户端是用户与服务器、ARM客户端的交互接口,PC客户端使用Qt应用程序开发框架实现,主要功能是:

1)根据用户操作,负责向服务器发送服务请求,含:注册与登录请求、预约实验请求、远程配置请求、远程实验请求、远程实验交互请求。

2)用户交互设计:呈现实验结果,显示仿真输出设备的状态、控制仿真输入设备的状态改变。

5、服务器设计:服务器主要负责处理由PC客户端和ARM客户端发来的TCP服务请求,并管理数据库。主要有ARM启动请求、实验人员登陆请求、实验预约请求、预约记录查询请求、实验初始化请求、FPGA配置请求、实验操作请求、实验结束请求,后四种请求转发给ARM客户端。服务器采用IOCP模型,由工作线程负责处理各种服务请求,数据库使用MySQL实现。

6、ARM客户端设计:ARM客户端是FPGA远程实验平台与服务器和PC客户端进行数据交互的唯一接口,程序基于Linux操作系统实现,分为远程交互、FPGA信息交互、指令解析执行三个模块,如图5所示。

其中远程交互模块完成ARM与服务器还有PC客户端的远程连接,负责数据传输;FPGA信息交互模块负责对FPGA实验平台引脚的信息以及对开关、按键的控制操作;指令解析执行模块是ARM客户端的总控模块,它通过远程交互模块接收服务器转发的PC客户端请求,解析操作指令后再调用FPGA信息交互模块和远程交互模块完成指令操作并进行回复。解析的操作指令有初始化准备指令、FPGA配置指令、实验操作指令、实验结束指令。

实现FPGA远程配置的关键技术是利用FPGA的被动配置模式,这种模式由外部控制器(在此为ARM)主导同步时钟输入,将配置数据逐位加载到FPGA。对于Xilinx FPGA芯片,称为从串模式,对于Altera FPGA芯片,称为PS模式;两种模式的对应的配置引脚略有不同,但是配置时序大同小异。

FPGA远程配置过程就是由ARM客户端解析并执行FPGA配置指令的过程,ARM客户端程序实现步骤如下:

步骤一、ARM客户端收到配置指令后,向服务器发送确认信息准备接收FPGA的配置文件;

步骤二、接收配置文件,并存储于ARM的Flash存储器;

步骤三、调用FPGA信息交互模块的配置功能,把配置文件加载到FPGA中;图6以Altera公司的Cyclone II系列FPGA芯片为例,说明了ARM客户端程序驱动FPGA的PS被动配置接口,完成远程配置的流程图。

步骤四、向服务器发送配置完成确认信息。

7、上述所设计的一种基于FPGA的远程实验系统及设计方法,用户进行远程实验的过程如下:

步骤一、用户打开PC客户端软件,注册并登陆;

步骤二、用户进行实验预约;

步骤三、在预约时间前15分钟,用户再次登录PC客户端软件,如果有空闲板卡,则可以进入实验界面;

步骤四、用户自定义FPGA远程实验板卡的仿真外设管脚的功用和输入/输出方向;

步骤五、用户使用Quartus软件(对于Altera的FPGA芯片)或者ISE/Vivado(对于Xilinx的FPGA芯片)软件编写FPGA程序,并编译为*.rbf(对于Altera FPGA芯片)或者*.bin(对于Xilinx FPGA芯片)配置文件;

步骤六、在PC客户端软件上,选择下载配置文件功能,选择要下载的文件,执行远程配置;

步骤七、在PC客户端软件上,用户可以实时观察到远程仿真输出设备的状态,并通过鼠标改变远程仿真输入设备的状态;

步骤八、如果观察到实验结果有误时,可以修改FPGA程序,重新执行步骤六的远程配置操作和步骤七的远程实验步骤;

步骤九、远程实验结束,退出登陆状态。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1