APP下载

基于MOOC 的FPGA 硬件类课程远程实验教学平台设计

2022-03-07夏开堂章复嘉

软件导刊 2022年2期
关键词:外设服务端板卡

夏开堂,林 菲,张 聪,章复嘉,刘 杨

(1.浙江艺术职业学院,浙江 杭州 310053;2.杭州电子科技大学 计算机学院,浙江 杭州 310018)

0 引言

在全球科技竞争日益激烈的态势下,我国急需CPU 制造、工业软件、计算机系统等方面的高端人才。长期以来,国内计算机专业人才培养偏重于应用,忽视了计算机设计和制造,导致底层架构设计和系统软件开发的高端人才极为匮乏。2016 年,国家发改委、工信部、财政部、税务总局联合发布《关于印发国家规划布局内重点软件和集成电路设计领域的通知》,提出要重点发展操作系统、数据库等基础软件和各类芯片。2019 年,教育部出台《教育部关于2019-2021 年基础学科拔尖学生培养基地建设工作的通知》,将计算机科学纳入基础学科的建设范围。2020 年,教育部、工业和信息化部联合发布《特色化示范性软件学院建设指南(试行)》,聚焦关键基础软件、嵌入式软件等五大软件领域。在此时代背景下,全国各大高校积极推进计算机系统能力培养的改革,设计贯通计算机硬件类基础课程知识体系的复杂实验教学方案。

近年来,国内大部分高校均已使用基于现场可编程门阵列(Field Programmable Gate Array,FPGA)的实验板卡或实验箱开展计算机硬件类基础课程的实验教学。然而,这种实验教学只能在实验室内开展,受时间、空间和设备资源等制约,学生无法得到充分实践,严重影响实验教学效果。全国高校普遍缺乏支持复杂系统级实验设计的高端远程硬件实验平台,这已成为高校实施学生计算机系统能力培养的障碍。清华大学、哈尔滨工业大学、北京航空航天大学等高校先后开展了基于FPGA 的硬件类课程远程虚拟实验平台研究。这些平台主要专注于实验功能的实现,提供了小规模的FPGA 远程实验,理论学习与实验实践结合度不高。大规模在线开放课程(Massive Open Online Courses,MOOC)平台主要提供理论学习资源,目前我国MOOC 建设呈现出爆炸式增长趋势,MOOC 课程受到社会学习者和高校学生的广泛关注与青睐,但该课程无法满足需要大量动手实践的工程领域实践课程的教学需求,尤其是需要硬件设备支撑的课程。

杭州电子科技大学国家级计算机实验教学示范中心多年来一直潜心致力于计算机系统能力培养的实验教学改革,在自主研发的FPGA 实验板卡的基础上,探索将MOOC 平台与远程交互式FPGA 实验平台相结合的大规模开放式在线实验(Massive Open Online Labs,MOOL)教学平台建设方案,在高校开展在线理论与实践相融合的一体化教学,为学生提供随时随地学习和实验的环境,为疫情期间硬件实验课程的在线教学实施提供了重要借鉴。

1 实验教学平台可行性分析

计算机硬件类课程传统实验教学模式面临诸多问题,例如传统课程实践培养只是作为理论教学的拓展,得不到足够重视;实验项目的开设、实验设备的操作和实验流程的规划缺乏自主开放性,一定程度上降低了学生的学习主动性;各类课程缺乏整体性和关联性,实验课程教学易受时空限制等。

本文基于MOOC 的FPGA 硬件类课程远程实验教学平台具有以下优势:①实际设备与虚拟外设相结合,支持在线监控和数据交互,使实验效果更直观;②使用便捷,只需浏览器和网络便能随时随地学习和实验;③注重实践,在线理论与在线实践同步;④收集实验数据,对其进行统计、处理和可视化展示,帮助教师进行学情分析;⑤扩展性强,以MOOC 平台为中心,可兼容不同实验平台。

为满足以上需求,平台通过软件界面模拟实验板的交互操作,采用网络通信与真实版卡进行交互,采用摄像头拍照和虚拟外设显示两种方式查看实验效果;通过B∕S 架构模式保证随时随地学习和实验的需求;将实验平台接入MOOC 平台,使理论教学与实践学习真正协同;通过实验数据收集、统计和可视化,帮助教师掌握学生实验情况,分析实验教学效果;利用MOOC 平台对教学资源的整合能力以及低耦合度的设计方式,确保对不同实验平台的可扩展性。

2 实验教学平台设计

2.1 平台总体架构

该平台由MOOC 教学平台和FPGA 远程交互实验平台组成,用户可使用MOOC 平台进行相关实验课程的学习,通过FPGA 实验平台进行远程交互式实验。平台总体架构如图1 所示。

(1)MOOC 平台。主要负责理论知识的在线学习,平台用户角色包括学生、教师和管理员,并提供相应的功能模块。具体见表1。

(2)FPGA 远程交互实验平台。基于FPGA 硬件板卡集群提供远程交互实验服务,主要包括硬件资源管理、文件烧录、命令下传、状态监控以及实验数据统计等功能。

(3)MOOC 平台与远程实验平台的兼容交互设计。平台通过制定的接口标准实现不同实验平台的接入。目前,MOOC 平台已接入FPGA 远程实验平台、远程虚拟机实验平台等。

Fig.1 Overall design of experimental teaching platform图1 实验教学平台总体架构

Table 1 MOOC platform function module表1 MOOC 平台功能模块

2.2 FPGA 远程实验平台设计

FPGA 远程实验平台包括在线交互式远程实验系统和FPGA 远程实验设备两部分。在线交互式远程实验系统主要承担硬件资源管理、文件烧录、命令下传、状态监控、实验数据统计等功能;FPGA 远程实验设备主要由批量FPGA板卡、摄像头等硬件搭建的远程实验设备集群组成。FPGA在线交互式远程实验系统与远程实验设备之间的通信基于TCP∕IP 的自定义协议完成。

FPGA 在线交互式远程实验系统各部分具体功能如下:

(1)硬件资源管理。平台通过维护临界区中的硬件资源队列实现硬件资源的申请、占用与释放。硬件资源队列存储了当前平台可用的FPGA 实验电路板对应的通信管道及其占用状态,每块实验板对应唯一的通信管道,只有通过该管道用户才能与之进行信息交互。当用户进入实验平台时,平台在硬件资源队列中选取未被占用的通信管道分配给需要进行实验的用户。当该通道被占用时,表示对应的硬件资源正在使用中。实验结束时,使用者可主动释放资源,也可由系统强制实现资源释放,系统释放依据为是否超过实验时长,若超过则触发释放逻辑。

(2)文件烧录。学生在实验开始时需要向后端发起请求,以获得硬件资源。当用户进入实验页面时,浏览器向服务端发出请求,收到请求的服务进程在内存中存储的链接队列中进行轮询搜索,以获取未被占用的通信通道并返回给用户浏览器。此时,该通信通道及其对应的硬件设备被该用户独占。若无空闲通道,则通知用户等待。获得相应的硬件资源后,为了初始化实验电路板,需要进行文件烧录,具体流程为:用户首先按实验需求在本地Vivado 等开发环境下使用Verilog 语言编写v 格式的实验程序,并编译成便于存储与传输的二进制文件。然后通过实验页面中的文件选择栏将编译好的配置文件上传至远程服务器。服务器接收到文件后,通过相应TCP 通信管道以字节流的形式将其传输至电路板ARM 端。ARM 接收文件并转码后通过管线传输到FPGA,FPGA 在解析ARM 发送的包含配置文件信息的数据后设置相应参数并执行程序。

(3)命令下传。用户通过操作页面中的虚拟硬件外设,经由网络通信、ARM 与FPGA 组成的控制模块实现命令下传。操作页面主要由虚拟外设、硬件信息等模块构成。虚拟外设对应电路板上的32 位LED 信号灯、32个拨码按钮以及6个点动按钮。图2 展示了真实板卡与实验仿真界面的映射关系。用户通过界面中的虚拟外设编辑命令,经由浏览器编码后发送至服务器并转发至远程板卡。在板卡端ARM 芯片通过网络接口接收命令并进行解析,解析完成后通过FPGA 相应管脚进行配置。此时命令已下传至实验板卡,经运算后通过板卡外设显示执行结果。

(4)状态监控。板卡运行状态通过板卡相关外设(如LED 和数码管)进行展示,平台通过虚拟外设和视频图像两种方式展示板卡运行状态,以便实验者进一步调整实验方案。当用户下传的实验命令执行完毕时,ARM 采集相关信息并以字节流的形式反馈至服务器,由其解码后转发至浏览器,再由页面虚拟外设进行展示。同时,用户点击“获取实拍照片”按钮,命令服务端调用相机拍摄相应板卡照片并返回至浏览器,用户即可通过图像查看数码管等外设的显示情况,从而更真实地查看实验结果。

(5)实验数据统计。实验过程中,平台对实验数据进行存储与统计,实现学情分析的可视化。平台设计了相应流水表记录每次实验情况,字段包括实验用户名、用户IP、用户机构、用户班级、实验课程、实验章节、实验开始时刻、实验时长、上传文件次数等。这些流水数据为各维度统计分析奠定了基础,能方便地从整体到局部进行学情分析。

Fig.2 Mapping relationship between real board and experimental simulation interface图2 真实板卡与实验仿真界面的映射关系

FPGA 实验设备集群主要由FPGA 板卡、交换机、路由器、服务器、摄像头等设备组成。FGPA 板卡通过交换机与路由器连接,在同一IP 地址下经由路由器进行端口映射,实验板卡数量可根据需要动态增减。当新板卡被添加到网络中时,系统会自动创建相应的通信管道并将其加入资源队列,这种硬件组织方式便于后期平台日常维护与扩展。

服务端与硬件板卡之间使用基于TCP∕IP 的自定协议进行通信,协议规定双端交互、长链接、握手与挥手等必要通信规则。平台中每块电路板均与服务端保持长连接,服务端将通信管道存储于临界区的资源队列中,并根据约定报文格式保持通信以刷新连接状态。若通信管道出现异常,则尝试重新连接,若连接失败则将该通道剔除队列。

2.3 平台实验流程

基于MOOC 的远程FPGA 计算机硬件类课程实验流程如图3 所示。

Fig.3 Platform experiment process图3 平台实验流程

用户登录MOOC 学习平台,选择要学习的课程及章节,即可查看涉及理论知识点的视频和文档。用户完成理论知识点学习后,点击“开始实验”进入实验页面。实验过程中,用户可通过点击实验界面的“回看知识点”至MOOC 课程平台以强化理论知识学习。用户完成实验后,点击“结束实验”即可,若规定时间耗尽,系统则会强制结束实验。教师可在数据统计页面查看平台相关数据图表,获得学情信息。

用户在进行远程实验时,平台的具体流程为:①上传并烧录配置文件以初始化FPGA 电路板;②浏览器收集并编码操作数据,通过HTTP 协议发送至服务端;③服务端接收用户操作数据,并遵照约定协议利用TCP 通信流发送至电路板;④ARM 对数据进行解码并通过相应管脚对FPGA芯片进行配置;⑤FPGA 芯片进行相关运算;⑥ARM 将结果返回服务端,由服务端转发至浏览器,实验结果通过浏览器页面虚拟外设进行反馈,用户可点击“获取实拍照片”调用远程相机拍摄对应板卡,根据板卡照片查看数码管等外设显示数据。

3 平台使用情况

以《计算机组成原理及实验》课程的2个教学班为例,图4 为2020 年部分时段的平台使用数据;图5 为平台5 月31 日至6 月29 日期间实验次数与实验时长的变化趋势;图6 为平台5 月31 日至6 月29 日期间实验文件上传量。可以看出,6 月10 号平台使用达到该时段最高峰,当日实验次数达62 次,实验时长达838min,说明这段时间是期末实验作业上交高峰期。

Fig.4 Changing trend of experiment times and experiment duration图4 实验次数与实验时长变化趋势

Fig.5 Upload amount of experimental files图5 实验文件上传量

Fig.6 Period/number of platform experiment图6 平台实验时段/次数

Fig.7 Summarization of data图7 数据汇总

图6 呈现了2020 年6 月19 日至6 月25 日期间平台实验时段∕次数的热点图,其中颜色越深表示当天该时段试验次数越多,灰、白色方格代表当天该时段实验次数为0。由图6 可知,在一周中平台使用最密集的时段为20∶00-24∶00,说明学生课内实验时间明显不足,需要利用课余时间(18∶00-24∶00)通过在线平台进一步完成课程实验,这正符合平台设计初衷——学生能随时随地开展在线实验。图7 展示了平台投入使用1个月的数据汇总:累计实验时长5 874min,平均每人84min,说明平台很好地支撑了线上实验课程的开展。

平台还可针对学生、班级、教师、课程、章节、时间段等维度进行统计分析并可视化展示。例如,通过查看章节的学习和实验上传次数可以分析实验难度和学生掌握情况;通过查看学生的实验完成情况可以了解某学习进展,从而开展针对性辅导。

4 结语

本文将MOOC 平台与远程交互式FPGA 实验平台相结合组成FPGA 远程实验教学平台。该平台可通过软件界面模拟实验板卡的交互操作,通过网络通信与真实版卡进行交互,采用摄像头拍照和虚拟外设显示两种方式查看实验效果,通过B∕S 架构模式保证学生可以随时随地进行学习和实验。该平台的使用为高校开展在线理论与实践相融合的一体化教学,特别是疫情期间硬件实验课程的在线教学提供了重要借鉴。

猜你喜欢

外设服务端板卡
基于PCI9054的多总线通信板卡的研制
基于FPGA的多通道模拟量采集/输出PCI板卡的研制
云存储中基于相似性的客户-服务端双端数据去重方法
新时期《移动Web服务端开发》课程教学改革的研究
在Windows Server 2008上创建应用
一种基于光纤数据传输的多板卡软件程序烧写技术
一种通用模拟量及开关量信号采集板卡的设计
Microchip推出具备双ADC外设的全新器件,扩展其低成本8位PIC®单片机产品线
摸清黑客套路防范木马侵入
外设天地行情