APP下载

应用创新型人才培养为导向的嵌入式课程改革

2023-04-10周月鹏

韶关学院学报 2023年2期
关键词:嵌入式联网驱动

王 娜,彭 剑,周月鹏

(韶关学院 信息工程学院,广东 韶关 512005)

嵌入式技术是智能硬件和物联网的核心技术。是继硬件时代(80年代:IBM)、软件时代(90年代:微软、facebook)、互联网(00年代:谷歌、百度)、移动互联网(10年代:苹果、华为)之后,“万物互联、泛在智能”的物联网时代正在呼之欲出。截至2021年12月,全球联网设备已达280亿,其中160亿与物联网相关,到2025年全球联网设备可能达到500亿,将为全球提供无处不在、无所不包、无所不能的物联网服务及应用。物联网正在快速地渗透到各个领域,越来越多的设备、车辆、终端等纳入到信息网络之中,使人类加速迈向万物互联、泛在感知的时代。智能学科的崛起必定带动新型的嵌入式技术的发展。在物联网热潮下,从事设计开发智能设备终端的嵌入式计算企业面临着全新的机遇,同时有着良好素质的嵌入式从业人员的缺口与日俱增,嵌入式从业人员面临着一个空前的历史机遇。

嵌入式的发展前景是被普遍认可的,但学生对嵌入式行业,并不是特别热衷,究其原因主要有5点:(1)考研,考公人数上升;(2)想从事嵌入式开发的同学能力不足(高校开设嵌入式课程理论居多,实践项目少,学得比较浅显);(3)迷茫的学生不少,不清楚专业的就业方向;(4)各大JAVA相关公司误导学生去学软件;(5)部分学生转行,没有从事本专业的工作。

同时,芯片领域被“卡脖子”让国人重新认识到研发自主芯片的重要性。为摆脱受限于人的局面,国家迅速制定了一系列芯片发展规划,民营企业加大投入引进人才、突破技术。人才培养是国产芯片之路的基石,笔者主要研究以应用型创新型人才培养为导向的嵌入式系统与设计课程改革。嵌入式系统与设计课程是嵌入式方向的核心课程,该课程的培养目标之一是培养学生对于嵌入式开发和嵌入式行业的兴趣、提升理论与工程应用开发结合、理论指导实践的意识;充分、全面激发学生的学习兴趣和潜能,提高学生的社会责任感、创新精神和实践应用能力。

一、存在问题及原因分析

(一)嵌入式课程体系庞大,学习难度大

嵌入式技术是一门应用工程技术,是把用户需求,各种协议/标准配合硬件转化成最后产品的工作,其难度和复杂度都是非常大的。嵌入式系统课程体系既涉及电子电路、ARM处理器体系结构,汇编语言,寄存器、各种接口和总线、模块电路等底层硬件知识,又涉及U-Boot移植、Linux系统移植、文件系统制作、设备驱动等中间层知识,还涉及Linux系统编程、网络编程、QT或者Android图形化界面设计等应用层知识。

(二)嵌入式技术更新快,没有权威教材

嵌入式技术是应用型交叉学科技术,嵌入式课程不像数据库、Java等传统课程那么成熟,教材更是五花八门,有基于ARM9,CortexA8,CortexA9,CortexA7等各种ARM处理器架构和开发平台的教材,教材内容重难点差别大,而目前市场应用广泛的Cortex A53等64位处理器并没有相应教材,导致教师上课被动,备课难度大。学生对课堂教授知识跟不上新技术感到不足,临近毕业纷纷参加校外相关嵌入式培训机构,费用大,学习周期长,使学生的生活及学习都受到影响。

(三)在线学习资料庞杂,自学困难

有学生自己购买开发板,跟着网上的视频课程学习,这类学习资源庞杂,有正点原子、北京迅为、野火等。这些公司推出了自己的开发板和学习视频,不但价格昂贵,而且因为知识体系庞杂,课程内容太多,学生在学习时缺乏指导和学习方法,很可能长时间不得要领,学习效率低下,很难坚持下来,导致学生纷纷吐槽“嵌入式有毒”。

(四)受课时限制,课程教学没法展开和深入

嵌入式系统与设计课程48学时,其中理论课32学时,实验课16学时,较少的课时数,教师无法系统、深入讲解相关的裸机接口技术、系统移植和驱动开发等知识点。按课程讲解的顺序展开的计划授课内容依次是:ARM-CortexA8处理器体系结构和S5PV210芯片的接口技术、汇编指令集,ARM裸机程序开发,U-boot的工作原理和移植方法,Linux内核配置与裁剪,Linux内核模块开发,字符设备驱动程序制作等。这些知识点相辅相成前后关联,但在授课过程中总会因为ARM体系结构和裸机的知识占用课时较多,导致系统移植和驱动的课程不够时间讲解,只能进行简单介绍甚至直接跳过。但是嵌入式的目标是做出产品,利用ARM 和Linux系统开发稳定的嵌入式产品;ARM-CortexA系列处理器用来做裸机开发根本发挥不了ARM处理器的性能,只有运行了操作系统才能够充分发挥ARM 处理器的优势,保证系统运行的安全性和稳定性。课程后半部分系统移植和驱动的知识是产品开发必不可少的技术,而ARM 本身处理器的知识不需深究。但如果不讲清楚,在驱动编写时对驱动接口的理解又不深入只知其然不知其所以然。

相关嵌入式课程的改革一直在进行中,并取得一定的成效,相关的研究成果有面向“双创”教育的嵌入式系统课程改革与实践[1]、基于产教融合的嵌入式应用型课程体系构建研究[2]、CDIO理念下《嵌入式系统》工程教学模式的探索与实践[3]、基于PBL教学理念的嵌入式系统教学改革与研究[4]与OBE 理念下课程教学的研究及实践——嵌入式应用开发为例[5]等,所有研究方法都是旨在提高学生的实践应用能力。笔者认为无论采用何种教学理念教和学模式,最终的落脚点都是如何更好地把知识传授给学生,使学生掌握学习方法,激发学习兴趣,使其能够深入自主学习。

二、解决措施

(一)纵向学习法

嵌入式系统的知识庞杂,且是分层的,其系统软硬件层次架构,见图1。在实际工作中,嵌入式工程师会根据具体工作层次,分为嵌入式软件工程师、嵌入式系统工程师和嵌入式驱动工程师,但初学者需要熟悉整个嵌入式开发流程,能独立构建简单的嵌入式产品[6]。

图1 嵌入式Linux 系统软硬件架构层次图

课程授课不能把每一层的知识面面俱到,可引导学生利用纵向思维,先把整个知识的框架结构理解掌握,再利用每一层的基本知识构建一个简单的产品模型,即先尽快开发出产品的雏形,然后再逐步迭代,层层完善,逐渐清晰,一步步走向成熟,开发出最终产品,此方法即产品开发方法中的快速原型法[7]。对初学者采用“快速原型法”的嵌入式产品开发方法,使其能够快速掌握嵌入式开发模型和开发流程,基于这种开发方法,笔者提出一种可前后兼顾的课程讲授方法——嵌入式基础框架教学法[8]。具体措施,见图2。

图2 课程授课层次图

教学案例:以开发产品为目标,从最简单的嵌入式产品开发入手,实现远程和触摸屏控制LED灯。基于此目标,先学习ARM体系结构和ARM指令集,实现汇编和C语言裸机点亮LED灯,然后学习Linux字符设备驱动,实现LED驱动开发,学习QT界面开发,实现界面按钮控制LED,学习网络编程,实现LED数据上传云平台,最终实现远程控制。从一个简单GPIO接口的纵向深入学习,没有横向展开,开发出第一个简单产品,掌握嵌入式开发的总体框架和流程,先使学生入门。

(二)兼顾最新技术选择合适教材

最新技术虽然没有相应教材,但嵌入式产品追求的一直是高性能和低功耗,新技术性能提高的同时功耗也在增大,市场上一直是多平台并存,教材选用ARM-Cortex A9多核处理器架构,与新技术接近,相对成熟,资料丰富,市场应用广泛,实验设备也相应更新,学生实验课积极性高,兴趣浓厚。

(三)采用“快速原型法”开发技术,边做边学

从LED简单项目入手。项目实施中,学生主动找资料学习,自主筛选出项目所需知识进行学习,以“快速原型法”开发项目为驱动,激发学生对产品进行逐步迭代完善,培养了学生的应用和创新能力。

(四)结合“快速原型法”产品开发技术的框架教学法

结合“快速原型法”产品开发技术的框架教学法解决课时不足问题,靠课堂灌输的知识毕竟有限,激发学生的学习兴趣,培养学生应用能力和创新能力才是嵌入式课程教学的终极目标。

最终课程结束时,要求学生提交在LED项目基础上迭代完成课程大作业,占学生总评成绩的50%,作业要求实现功能主要有几个方面:(1)实时监控RFID信号,即门禁卡的信号;(2)将采集的门禁卡信号与数据库进行核对和验证,验证通过驱动继电器将门打开;(3)将本次操作记录到数据库,具体实现可以通过无线WIFI模块上传给服务器;(4)在开发板LCD屏上通过图形界面进行交互。

分析该案例用到的技术,RFID模块通过Linux系统的SPI驱动进行数据读写,继电器的操作是通过GPIO的驱动实现,顶层对于驱动的操控利用系统文件IO接口调用实现。数据上报服务器需要SOCKET网络编程实现。图形化界面开发选择QT,使用C++作为开发语言[9]。本案例是一个典型的嵌入式产品模型,通过分析让学生明白嵌入式产品的相关技术,所有的嵌入式相关课程的学习围绕实现此案例中相关功能,有目标地学习,并且将来做课程设计和毕业设计时,学生可在此案例基础上设计和增加相应功能,例如增加手势识别,语音模块,GPS模块、GPRS模块、摄像头模块等,在已经做好的基本框架上根据实际应用继续创新,培养学生的创新和应用能力。

嵌入式系统与设计课程授课方法采用理论讲解,代码编写,然后下载到开发板调试运行的沉浸式教学方法,让学生马上看到实际的运行效果,能更直观深刻理解知识,更好地调动学生的学习兴趣。

嵌入式的基础框架就是搞清楚什么是bootloader、kernel和文件系统[10],先进行这 3 部分内容的讲解,能进行u-boot移植,内核裁剪和最小文件系统制作,然后将这几个文件烧写到板子上,之后学习字符设备驱动中简单的GPIO接口驱动,完成基础框架知识学习[11]。讲授完字符设备驱动开发的相关知识并能正确编写IO口驱动控制LED灯,驱动开发即已入门,对所做项目进一步迭代完善,完成最终课程大作业,并将完成情况计入过程考核中,考核学生的创新应用能力。

这种授课顺序保证了产品开发中重点知识的讲授时间,以最简单产品开发为出发点,讲解驱动框架,有利于培养学生通过操作系统这个抽象软件开发产品的能力,这是尤为重要的步骤。前期学生学习的单片机和STM32课程都是裸机开发,裸机最大的特点是对于程序的每行代码每个细节都非常清晰,而直接在操作系统的抽象层开发会感觉很不踏实。而学会这种中间抽象层的开发才符合潮流,是产品发展和个人发展必须转变的思路和观念。最后引导学生课程结束之后继续深入学习驱动中断和内核时间管理,进一步深入学习驱动知识,并应用到案例中,对产品功能进一步完善,不断迭代,随着产品的逐渐成熟,根据新的需求,坚持学习所需知识,最终开发出成熟的产品[12]。

三、实践运用情况及效果评价

以笔者授课班级为例,课程在开展教学改革后获得了学生的一致认可,课程在线评教评分在4.7分以上,项目案例迭代得到很好地推进。物联网学生基于项目案例进行转化成挑战杯、广东省大学生电子设计竞赛等参赛作品。从2018 级物联网工程班开始,嵌入式系统与设计课程实施教学改革,嵌入式课程改革使学生对嵌入式课程体系,自身价值和社会定位有了更清楚的认识,学生更加勇于尝试、勇于探究、不怕失败,申请大创项目和参加学科竞赛更加踊跃,2018 级学生毕业设计题目 65%以上都是嵌入式相关应用题目,其中梁海亮同学的毕业设计“基于嵌入式Linux的老年人居家健康伴侣”被评为优秀毕业论文。毕业实习的岗位基本都是与专业相关的技术岗位,单片机和STM32的学得好的毕业生很多,但懂Linux驱动开发的毕业生很少,待遇又高,在薪资待遇和满意度方面学生反应良好,通过谈话了解到同学们对自己未来,都有很好的规划。各方面数据显示进行嵌入式教学改革,大大提高了学生的学习积极性。

为检验教学效果,笔者对任教的5 个班级(2017物联网1、2班,2018物联网1班和2019物联网1、2班)进行从班级课程平均成绩、毕业设计嵌入式方向人数、嵌入式方向获奖和项目立项人数及职业规划中致力嵌入式和Android方向学生人数等4个维度对比传统教学和框架教学两种教学模式的结果,从2019级学校开始学分制改革,专业选修课只有部分学生选,所以课程合班上课,对比数据,见表1。

表1 物联网工程专业不同教学模式评价结果

对比传统授课模式,学生的课程成绩明显提高,说明学生的上课积极性提高,对于嵌入式方向的毕业设计人数、获奖和立项人数和致力于嵌入式和Android底层开发人数都有明显提高,说明框架教学使学生清楚嵌入式系统框架,掌握了有效学习方法,对嵌入式方向提高了学习兴趣和创新应用能力。

2018级物联网课程结束后对其班级学生进行匿名问卷调查,以此了解学生对教学方法的满意度。其中有50人填写调查问卷,学生满意度比较高,教学质量与效果有很大改善,有力证明了教学改革的有效性,调查结果,见表2。

表2 2018级物联网工程1班教学满意度调查(n=50)

四、结语

采用这种基础框架的讲授方法,并根据“快速原型法”的产品开发流程,边学边做,使学生随着知识和开发经验的积累,不断深入学习基础知识,以及更深层次的框架知识,这样相互迭代,使得整体水平得到进一步升华,直到能够精通嵌入式技术,实现了培养学生应用能力和创新能力的目的,并达到我们的最终目的——开发出目标产品,为企业和国家培养合格的嵌入式开发人才。

猜你喜欢

嵌入式联网驱动
“身联网”等五则
基于模糊PI控制的驱动防滑仿真系统分析
《物联网技术》简介
屈宏斌:未来五年,双轮驱动,砥砺前行
轨旁ATC系统门控柜接收/驱动板改造
抢占物联网
搭建基于Qt的嵌入式开发平台
嵌入式软PLC在电镀生产流程控制系统中的应用
基于S3C6410的Wi-Fi驱动移植实现
Altera加入嵌入式视觉联盟