APP下载

数字逻辑半实物远程实验

2021-11-27张洪杰钱彭飞刘峰

中国信息技术教育 2021年22期

张洪杰 钱彭飞 刘峰

摘要:本文结合数字系统实验课程,介绍了用户学习、教学管理、设备共享三方结合的数字系统半实物仿真实验的教学经验,以期能够帮助广大教师改进学生对在线实验的学习体验。

关键词:远程共享;数字系统实验;半实物

中图分类号:G434  文献标识码:A  论文编号:1674-2117(2021)22-0075-04

● 引言

远程实验建设分虚拟仿真和半实物仿真两种。统一供货的虚拟实验项目可以满足部分学科通识实验,但也存在虚拟体验感与本地软件仿真差距较大、实验内容难覆盖层次化实验教学等问题。半实物仿真较多采用真实受控对象并通过有网络接口的实时仿真机来输出控制信号和接受反馈信号,如面向陆空无人机、机器人控制、伺服电机对拖、预警雷达、智能辅助驾驶等,但仿真系统软硬件协同测试复杂度高。

笔者了解到,数字系统MCU或FPGA设备的半实物仿真往往配备本地小实验板硬件和软件技术,如MCU终端远程更新、专用云下挂MCU测试、FPGA内部逻辑分析仪测试等。而远程实验系统基本上能够处理下发激励输入信号操作实物和上传实物输出信号观察现象。文献[1]映射了客户端鼠标与键盘,并将FPGA板VGA输出信号串流推送客户端。在安全有保障时,教师也可以开放远程桌面控制实验用机达到共享硬件实验目的。但实验课程管理一般是基于Moodle开源免费课程框架开发,随着自建课程门数和班级的逐年增多,扩容压力增大、环境安全维护、Moodle分组访问限制等问题不断出现,因为,必须从实验教学信息化实际出发,整合教学系统。

● 数字系统实验设备共享系统

传统数字系统实验设备一般是在本地运行,由FPGA实验板、USB下载线、专用IDE和PC机组成。数字系统实验设备的共享系统结构分为用户学习、教学管理和设备共享三层(如图1)。

(1)设备共享层完成同实物设备的底层交互。主要的实物设备有FPGA实验板和驱动板。在一台可以接入校园网实验用机上挂载实验板和摄像头,摄像头可以借助网络技术将实验板实时显示的画面在校园网内直播,供远程观察实验。同时,另一路带MQTT网关的驱动板经IO口直连接实验板,根据用户远程下发指令,产生实验板操作所需的输入激励信号,同时教师拓展物联云后也可以采集实验板数据并上传,供运维分析。

(2)教学管理层负责运行维护课程慕课平台、MQTT服务器和实验用机。笔者所在学校和超星合作推出的免费开放校级慕课平台能够有效地满足课程教学管理信息化的一平三端要求。课程教学资料,如课程章节页面或活动都能够更新至慕课,而与实验操作更紧密相关的工程文件则可以通过远程桌面文件操作摆上实验用机桌面。在这里,管理教师兼顾管理MQTT服务和视频串流服务。

(3)用户学习层是指用户在教师的引导下自主展开实验并学习。具体操作为:用户在本地安装相同的FPGA软件平台,根据教学进程学习慕课章节。同时,学生要先在本地完成仿真实验和实物验证前的硬件预约;预约成功后,学生在规定时间内通过远程观察和实验操作进行实物验证;如果远程实验过程中出现异常,学生要排除故障并返回上一步;最后完成实物验证,整理数据并完成报告。

● 系统配置与运行

除慕课资源在课程平台管理学生课程信息外,实验设备要共享系统远程所涉及的能“看到”和能“手动”技术配置、实验操作和预约等流程规范。

1.远程观察服务

实验用机上要挂载普通摄像头,并将其配置成内网的网络摄像头。计算机的基本配置为Win7 X64系统、I3处理器和8G内存。

(1)Nginx流媒體服务器

Nginx流媒体服务器启动的基本操作步骤为进入Win命令提示符窗口并依次输入如上页图2所示的命令。执行后注意不要关闭窗口,此时命令行会一直处于执行中。当浏览器输入localhost:9090时,出现Welcome页面则说明配置Nginx启动成功。

(2)OBS导播推流

在安装OBS软件后,配置场景,默认场景1,其来源为添加视频捕获设备,并指定已挂载摄像头。也可以将来源指定为本系统其他程序运行窗口,也可以是多个摄像机位,并拖动为画中画。接着,在右列工具箱中点击进入“设置”框,修改rtmp://内网IP:1935/live,其中串码密钥不用。在配置完成后,在右列工具箱中点击“开始推流”按钮,进而开启内网串码推流服务。

(3)网络播放摄像画面

用户所使用的计算机需认证登录校园网,并在安装VLC播放软件后,打开网络串流。同时,在VLC媒体菜单下拉选择“打开网络串流”框,输入地址rtmp://公布的内网IP:1935/live/,便可远程观察实验板。

2.远程操作服务

实验驱动板接入的MQTT服务器可直接使用免费公用的MQTT服务器,有条件的学校也可以上云服务器部署EMQ X物联网服务。

(1)驱动板环境

笔者所使用的驱动板是S5开发板Air202T模块支持四频段GSM/GPRS,片上存储和外设资源丰富且能通过睡眠省电,支持Lua脚本开发模式[2]和JSON数据格式方便物联网应用。

代码编辑器选用的是VS Code,并安装拓展Lua、LUAT、indent-rainbow、Rainbow Brackets插件来辅助代码检查、LUAT接口代码自动补全、高亮等。

LuatTools通过USB线连接开发板HOST串口,调试软件代码、下载底层固件和Lua脚本下载,也提供上层软件Demo和Lib库。

(2)main.lua启动

lua功能一般采用模块化编程,只需要在main.lua中添加语句require"MqttLuatClient"就可以添加MQTT客户端,其他默认包含log、sys、net、wdt和netLed即可。

需要注意的是,要確认末尾sys.init(0,0)和sys.run()语句无错,才能启动Luat系统框架。

(3)MqttLuatClient.lua主题切换

任务事件要采用订阅与发布模式,并依赖不同的主题名传递消息。不同用户端可以订阅同一主题而不会相互影响,但不同用户操作指令需要发布至不同主题才能避免冲突,解决的关键在于主题切换。

主题还可以划分为固定设置主题(如test0)和用户操作实验板主题(如test/a),通过设置命令如set ABCD向test0主题发布消息修改test/a中的a为四位验证码ABCD,切换到飞行模式20秒后再切换回工作模式,然后用户就可以发test/ABCD操作实验设备。

(4)MqttLuatClient.lua操作信号

文件开头代码包含pm和pins库,可以完成实验板上按键和时钟开关的变量定义,如驱动板GPIO的pins号和方向映射和电压域的电压设定。

sys.taskInit系统启动后可自动执行任务函数,完成socket准备后使用设备IMEI、用户名和密码创建MqttClient客户端,等待TCP连接MQTT服务器地址成功后,订阅相应主题便一直循环等待MqttClient接收或发送消息以执行回调函数。

mqttReceiveMsg(MqttClient)函数判断data.topic主题类别。如果是设置主题,json.decode()解析收到的JSON数据,用set键值对的非空值替换操作主题test/a中的a,执行飞行模式和工作模式切换;如果是操作主题,可以按payload输出相应控制信号。

(5)脚本调试

当底层和脚本下载到驱动板后,在MqttLuatClient.lua代码中,可以将添加的log.info()语句输出到LuatTools窗口中观察,如果加入回调消息就可发布至另一主题,如insertMsg("/test3/",data.topic.." "..data.payload),通过MQTT客户端软件订阅查看消息结果。

3.实验操作

半实物实验用户要在本地FPGA开发环境中先完成数字系统电路和功能仿真验证,才能在远程共享系统上进行实物验证。

(1)MQTT桌面客户端

MQTT客户端的聊天式图形界面简化了操作逻辑,可以快速地创建连接多个客户端,进而方便测试MQTT/TCP和MQTT/TLS连接、发布/订阅功能及其他特性。

Windows桌面则可在应用商店里选用MqttBox,安卓手机可选MQTT Dashboard。客户端配置为Client名字任意、Protocol协议为MQTT/Tcp、Host服务器地址和1883端口、Qos默认0等,用户保存后进行连接。

当连接成功后,可以先在Topic to publish发布窗口进而设定主题,如/test/a,Qos为0,无retain保留消息、数据Payload选择Strings/JSON/XML/Characters。接着在Payload输入发布消息数据,再Publish即可。Topic to subscribe订阅窗口所设定的主题如/test3,用户可以观察回调消息。

(2)三位数码管扫描显示实验操作

实验操作内容为:学习数码管BCD码数据输入和译码显示结果,观察三位数码管动态扫描顺序并描述执行步骤,分析时钟频率对三位数码管显示效果的影响,优化设计译码部分A至F字符显示(在不删除7449的情况下)。

首先,学生开启VLC播放软件远程观察最左边三位数据管显示的初始值(如523)。发布窗口Payload输入数据(如8),并发布;订阅窗口显示回调消息,远程观察实验板最左边那位数码管的显示是否改变为8,四位key灯指示1000。

驱动板支持clkfast、clkmid、clkslow指令,分别对应数码管显示刷新速度的快、中、慢。0至F(大写)表示最左边数码管显示输入为0000至1111。

4.课程管理

虽然学校的超星慕课平台能够解决目前自建教学服务器出口带宽的问题,但还需要接入更为优良的慕课大平台,满足多种学习端的应用需求。教师可以随时分班管理,方便不同班级开始不同课程。

另外,教师也可以通过远程桌面软件,如TeamViewer、UltraVNC Viewer等,远程访问实验用机,并利用桌面共享和文件传输来查看设备运行、FPGA开发环境安装、实验板测量。

在实验过程中,如果学生因为实验内容需要将电路下载至实验板上运行,可以向教师申请,授权后就可以登录校园网,通过远程桌面将本机上的sof文件上传至实验用机,再下载至实验板。

同样,在进行数码管实验时,学生需要测量时钟信号和单个数码管位选信号波形并分析周期关系,这时可以通过远程桌面操作实验主机外挂USB虚拟示波仪器完成实验板上的信号测量。

● 结语

本文采用数字系统实验设备共享系统来实现实验教学资源线上建设和实验板远程共享任务。经过实践笔者发现,半实物远程共享实验能涵盖数字电路测试数据和波形获取、设计优化、仿真平台综合验证,培养了学生使用现代仿真工具和进行系统仿真验证的能力,保障了线上教学和线下实验的双线教学效果。

参考文献:

[1]艾明晶,杨群芳.FPGA在线实验平台设计与在线实验方法研究[J].测控技术,2019,38(01):19-23+28.

[2]openluat wiki[EB/OL].https://wiki.openluat.com/.