孟利民,许恩泽,柯旭清,宋秀兰,彭宏
(浙江工业大学 信息工程学院,浙江 杭州)
随着信息技术的快速发展和传统产业改造升级的不断深入,企业对人才的技术技能和创新能力提出了更高要求。高校向社会输出的工程人才,应不仅仅具备较高的理论水平,同时也要掌握相当的工程能力[1]。嵌入式系统以应用为中心,以计算机技术为基础,对软件和硬件能力都有较高的要求[2]。要想培育出优秀的嵌入式行业技术人才,与之相关的专业课程教学应该不仅仅具有理论系统性,更要具有工程实践性[3]。
实验教学是嵌入式教学的重要环节,是培养学生工程能力的关键[4]。然而传统的嵌入式实验教学规定了学生做实验的时间段和地点,这使得其在时间与空间上都存在局限性,造成一定程度的资源浪费[5-6]。除此之外,传统的教学方式无法满足突发性情况下的教学需求。
基于传统教学方式的不足,本文提出一种嵌入式远程实境实验教学系统。用户可以通过电脑上的开发平台来下达指令,这些指令通过互联网发送给实验室中的实体设备,设备将根据指令进行一系列的实验操作,然后将结果通过互联网重新反馈给用户。实验全过程中设备的运行情况也将通过摄像头回馈给用户,以满足部分存在视觉需求的实验。整个过程就像是用户亲身在实验室里做实验一样。采用远程实境实验的方式,可以完全解放学生实验地点的限制,而用户采用预约的方式进行实验,也可以很大程度的错开彼此做实验的时间,避免某个时间段大批量人群进行实验而另一时间段无人操作的情况,更有效地利用了实验设备资源。
近年来虚拟仿真技术发展迅速,在实验教学领域大受欢迎,国内高校的化工[7]、土木[8]、机械[9]等专业都开设了基于虚拟仿真的相关教学实验课程。
虚拟仿真技术是用一个虚拟的系统模仿另一个真实系统的技术,其建立在相似原理这一基础上。利用软件模拟塑造一个与研究对象几何要素及物理要素都相似的模型,通过研究此模型就可以间接地研究原型[10]。虚拟仿真实验可以模拟全套实验所需的设备,让学生通过一台电脑就能实现教学实验的全过程,了解实验原理和实验过程,具有交互性良好、节省资金、操作简单等优点。
然而虚拟实验的结果偏于理想化,在硬件种类繁多、硬件状态复杂多变的嵌入式实验中,虚拟仿真并不能够完全的模拟实际设备的运行状态,虚拟实验与实际操作实验设备得到的实验结果差别较大,这使得虚拟实验不具备实际实验的真实性[11]。相对于虚拟仿真实验,远程实境实验具有与实物实验完全一致的效果,更真实,也更贴近工程实践。
远程实境实验教学系统由模拟操作界面、云端服务器,加上实体实验设备组成。用户可以通过电脑上的操作界面来下达指令,指令上传到云端服务器,由其作为中转,再把指令传输到实验设备上,实验设备根据这些指令从而进行一系列的实验动作,最终通过传感器将实验数据传回给用户。作为新型的实验形式,远程实验不是传统实验的简单网络化,其在实验过程中强调在线探究式学习策略以及对学习者实验行为的记录与反馈,在基于数据整合与分析的基础上对其进行在线评价[12]。
本系统的硬件设施已经在传统实验方式下进行了多年,其教学性与安全性都得到了一定的验证,因此,嵌入式远程实境实验教学系统的实现关键即是嵌入式设备与服务器之间的通讯。
本系统采用B/S 架构,由Web 前端、Web 服务器、SIP 信令服务器、MySQL 数据库和嵌入式设备五部分组成。本系统的软件设计框图如图1 所示。
其中Web 前端提供了用户登录界面和交互界面,将用户选择的前端标签和输入的指令转为HTTP请求发送给Web 服务器。Web 服务器基于linux 操作系统平台,采用PHP 语言搭建,配合Nginx 服务模块、MySQL 数据存储模块,其承担的职责有:提供个人PC 机上传与下载文件的接口,提供嵌入式设备下载文件的接口,管理数据库信息,将Web 前端发送过来对嵌入式设备进行操作的命令消息从HTTP协议转为SIP 协议并转发给SIP 服务器。SIP 信令服务器负责接收嵌入式设备和Web 服务器发送来的SIP 消息,通过对SIP 消息的解析确定其消息类型然后进行相应的转发。本系统中主要用到两种类型的SIP 消息,分别是“REGISTER”和“NOTIFY”类型。其中“REGISTER”消息类型用于嵌入式实验设备的绑定注册和心跳保活,“NOTIFY”消息类型则是对嵌入式设备进行操作的命令消息的载体。嵌入式设备会在开机的时候向SIP 信令服务器发送一个“REGISTER”类型的SIP 消息,使本设备注册上线,并且开机过程中每隔15 秒发送一次“REGISTER”消息以维持本设备与服务器的连接。同时,嵌入式设备接收、解析SIP 服务器转发的“NOTIFY”类型的SIP 消息,获得用户发出的指令并执行该条指令,最终将执行结果通过http 请求反馈给Web 服务器。MySQL 数据库中存储前端用户信息、嵌入式设备信息、用户绑定信息、嵌入式设备在线状态、设备操作结果等数据,数据会根据Web 服务器和SIP 信令服务器接收到的消息实时变动。
本系统内嵌入式设备与服务器进行视频、音频、数据等信息传输、交换、控制时遵循的通信协议结构如图2 所示。
图2 通信协议结构图
在进行指令交互以及数据传输过程中会建立两个传输通道:会话通道和流媒体通道。会话通道基于SIP 协议创建,用于在设备与服务器之间创建、修改和释放会话,本系统依靠会话通道建立起用户与设备的“一对一”绑定,并维持此效果直至实验结束。数据传输通道依赖RTP 流媒体协议,将实验设备产生的音视频流传输给服务器。信息交互过程中,SIP 信令数据封装成XML 格式,视频数据压缩为H.264 码流,音频数据采取G.711 方式编码。
本系统具有以下几点功能特点:
(1)浏览器访问
本系统不需要下载额外的APP 客户端,只需访问相应的服务器地址,注册登录系统后即可进行远程实验。
(2)预约管理
学生用户可以在选课中心浏览可选的实验,根据自己需求选择相应实验内容和指导老师,同时可以对实验时间进行预约。
(3)资料下载
学生用户可以在自己的实验课程界面直接下载本实验相关的学习资料,不需要通过其他渠道获取。
(4)远程实验
学生用户进行实验后,首先需要绑定一台嵌入式设备,实验界面会实时显示实验设备在线情况与使用情况,不在线的设备与使用中的设备将无法使用。学生绑定空闲状态的设备,阅读远程实验规范手册后即可开始实验。实验全过程中学生用户直接通过实验界面的交互窗口与设备进行消息交互,交互窗口同时也提供远程传输文件给实验室设备、完成实验、重做实验、退出实验的功能。学生用户完成实验或者退出实验后,设备将恢复为空闲状态。
(5)教师系统
本系统除学生用户外还设立了教师用户,提供给实验课程的指导老师登录,方便教师进行管理、监督与指导。教师管理界面如图3 所示。
图3 教师管理界面图
教师用户可以通过学生管理页面查看自己班级学生的实验情况与在线情况,根据实验监控和实验进度查询来监管学生实验,并且可以利用本系统中的自动成绩判定功能来对学生实验进行打分,极大地降低了老师的工作强度。在实验管理页面,教师可以对自己所负责的实验进行管理,可以添加、删除某些实验,并上传各个实验的相关资料供学生下载。同时提供答疑列表页面显示学生做实验过程中提出的问题,增加学生和老师之间的交流互动。
本系统实验中产生的实验数据均是由实验设备产生的真实数据,并不是经过模拟仿真出来的虚拟数据,与学生本人前往实验室进行实验无本质区别。本系统的缺点是一套实验设备同一时间只能供一名用户进行实验,同时候做实验有着人数上限,无法做到如虚拟仿真实验一般仅仅只要服务器性能充足便可以支持许多用户同时实验。但是远程实境实验系统支持随时随地的进行访问,通过预约实验的方式可以有效缓解这一问题。
本教学系统的实验内容设计包括远程基本嵌入式命令实验、嵌入式驱动实验、传感器实验等一系列嵌入式实验。基本嵌入式命令实验主要是为了让学生了解嵌入式系统中的一些基本命令,例如查看当期目录下文件的ls 命令,进行目录间跳转的cd 命令,创建目录的mkdir 命令,改变文件权限的chmod命令等等,通过该系列实验学生们对linux 操作系统将会有个初步的了解。
嵌入式驱动实验主要涉及字符设备驱动,包含GPIO 驱动实验、I2C 驱动实验和RTC 驱动实验,三个实验由易到难。其中GPIO 驱动是嵌入式系统最基本也是最关键的驱动,通过该实验,学生们会了解到芯片是如何驱动各个GPIO 引脚的。I2C 是很常用的一个串行通信接口,用于连接各种外设、传感器等器件,学习I2C 驱动,能够很好的理解主从机之间的通信方式。RTC 也就是实时时钟,用于记录当前系统时间,是个很常用的外设,并且RTC 驱动框架基于I2C 驱动框架,对进一步理解I2C 驱动有很大帮助。
传感器实验包含了一系列常用传感器的驱动与基本使用,例如温湿度传感器、超声波测距传感器、摄像头传感器,该系列旨在学生们初步接触驱动后,利用GPIO 等驱动对一些外设进行控制,一方面加深对驱动的理解,另一方面,通过自己编写应用程序让一些基本传感器开展相关工作,真正入门嵌入式。
本系统提供较好的交互界面,采取一问一答的方式,便于用户区分自己指令与系统回复,如图4为命令ls 的交互界面。
图4 ls 指令交互界面图
用户通过远程文件传输的方式将驱动文件传到嵌入式设备相应目录下,之后采取动态加载的方式加载驱动,图5 为加载温湿度传感器驱动的案例,对比前后驱动加载列表可以发现温湿度传感器驱动dht11.ko 已加载成功。
图5 温湿度传感器驱动加载图
通过编写C 语言测试文件然后进行交叉编译,将编译完成的程序远程传输给嵌入式设备,即可在嵌入式设备上运行程序,图6 是运行测距传感器的结果,测距传感器成功测出障碍物距离为65cm 远。
图6 测距传感器运行反馈图
经测试,本系统在三类实验中都可以很好地将用户指令传输给嵌入式设备运行,同时及时回馈设备的响应消息,圆满实现远程实境实验目标的同时也带给了用户们较好的体验。
嵌入式远程实境实验教学系统是在新冠肺炎疫情形势严峻的状态下提出的,在此之前,实体设备实验已经进行了很多年,教学性和安全性都有很大的保障。采用远程实境实验的方式,让学生们做实验的地点没有了硬性要求,即使在家中也能进行嵌入式系统相关的实验,实验名额依赖预约获取的方式也能将学生们做实验的时间段分割开来,成功解决了传统实验模式下空间与时间上的局限性,同时也有效缓解当前实验设备资源紧缺的情况,节省硬件成本。