首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

嵌入式开发创新教学平台的设计与实现

2023-06-13 来源:华拓网
人才培养

Vocational Education

DOI:10.16667/j.issn.2095-1302.2018.10.040

嵌入式开发创新教学平台的设计与实现

顾恺琦,韩建峰,徐福敬,叶镓恺

(内蒙古工业大学 信息工程学院,内蒙古 呼和浩特 010051)

摘 要:在分析应用型嵌入式人才培养在当前社会经济体系中重要性的基础上,文中结合嵌入式知识体系的特点,对当前部分高校嵌入式教学模式进行分析,针对应用型本科院校电子通信类专业嵌入式方向课程设置,提出一种基于教学平台的高效教学改革方案。

关键词:嵌入式;教学改革;应用型人才;ARM;Linux;μC/OS-II;

TP368 A 2095-130210-0116-03中图分类号:文献标识码:文章编号:(2018)

0 引 言

嵌入式技术是计算机、电子、通信等多学科的交叉领域,在社会生产与生活领域应用十分广泛。随着市场需求的增长,嵌入式系统已逐渐渗透到日常生活的各个领域。文献[1]中作者根据近30年嵌入式教学和研究经验指出,嵌入式人才的缺乏是阻碍我国嵌入式发展的首要因素。为弥补这一缺陷,很多高等院校的相关专业都开设了嵌入式技术类课程。然而,嵌入式技术涉及面广、程度深、难度大。当前,对于嵌入式技术的教学仍停留在处理器体系结构和操作系统原理等方面,涉及工程应用、实例编程等实践的知识较少[2]。如何建立一套面向应用领域的嵌入式技术教学体系成为当前本科院校教学中一个十分重要的课题。本文从嵌入式技术学习的特点入手,针对当前嵌入式技术教学普遍应用性不强的问题,提出一种嵌入式课程设置与教学方案。

1 嵌入式技术的特点与教学中存在的问题1.1 嵌入式技术特点

嵌入式技术的基础知识涉及面广(1)综合性强:,横跨众多领域,需要技术人员同时具备软硬件知识,既包括各种编程语言,如C语言、汇编语言等,又涉及各种硬件知识,如微机原理与接口技术、单片机原理等,需要了解微处理器、存储器,外围设备和接口,能够自行设计电子电路[3]。

嵌入式技术在通信、智能终端、汽车电(2)实践性强:

子、航天航空等诸多领域的应用越来越广泛,因此嵌入式技术教学的基本特征应以实践为主。

嵌入式技术的发展离不开社会(3)社会市场应用性强:

市场,高校嵌入式技术课程的兴起与市场需求有着密不可分的关系,倘若课程的应用性不强,很难培养市场需要的专业人才,这将会严重制约高校对嵌入式技术人员的培养[4]。

————————————————

收稿日期:修回日期:2018-05-02 2018-06-01116物联网技术 2018年/第10期

1.2 嵌入式技术教学存在的问题

嵌入式技术这门课程的特色(1)嵌入式技术课程定位:

和学生的兴趣点在于嵌入式操作系统和嵌入式技术的工程应用开发,根据电子信息工程和通信工程本科教学计划,《微机原理与接口技术》《单片机原理与应用》作为专业必修课程,而《嵌入式操作系统》却做为专业限选课程,总学时偏少,导致学生积极性不高[5]。

嵌入式技术是时下新开的课程,优(2)实验课时较少:

秀的嵌入式课程教材较为匮乏。教材过于理论化,没有相应的实验和案例与之匹配,导致教学实践性差、学习内容较浅薄。

课程实验(3)课程实验太过注重验证性,缺乏设计性:往往过于注重基础实验,缺乏设计和创新,影响了学生的积极性和主动性。且嵌入式是一门对实践性需求很强的技术,没有与实际工程应用相结合的课程设计,培养出的学生将难以适应当前社会的嵌入式工作发展需求[6-7]。1.3 提出方案

针对嵌入式技术学习的特点,本文提出了一种适合嵌入式技术实验教学的嵌入式系统设计及应用课程教学方案,包括硬件平台的选取、操作系统的选择、专业课程的培养与实验、综合创新性项目的开发。本教学从基础课程到专业课程,再从基础实验到最后完成综合创新性项目,教学内容从理论到实验,直至完成项目开发,循序渐进,层次清晰,使学生明确学习任务,培养学生的编程能力与嵌入式技术开发能力。2 基于ARM架构的嵌入式系统设计及应用课程教学体系2.1 硬件平台的选择

实践教学的开展是一个系统工程,需要选择合适的实验设备来开展实践教学活动,单靠课堂上的仿真软件和编程软件难以达到预期效果,选择合适的硬件平台是嵌入式教学的关键。目前,ARM(Advanced RISC Machines,ARM)系列微处理器在嵌入式领域中被广泛应用,基于 ARM 技术的微

Copyright©博看网 www.bookan.com.cn. All Rights Reserved.人才培养

Vocational Education

处理器应用约占32位RISC微处理器市场份额的75%。ARM系列微处理器提供多种型号来满足不同应用领域的需求[8]。Cortex-M系列内核相对简单,市场运用广泛,且可移植小型操作系统,如µC/OS-II。而ARM9系列性能优越,适合作为高端产品的开发平台,符合本嵌入式教学方案硬件平台需求。因此本教学方案实验部分采用搭载Cortex-M3内核的STM32单片机及搭载ARM9内核的32位S3C2440芯片的开发板做为课程实践部分的硬件平台[9-11]。2.2 操作系统的选择

嵌入式操作系统是一种用途广泛的系统软件,通常包括与硬件相关的底层驱动软件、系统内核、通信协议等。嵌入式操作系统负责嵌入式系统的全部软硬件资源的分配、任务调度,控制、协调并发活动。目前在嵌入式领域广泛使用的操作系统包括嵌入式实时操作系统µC/OS-II、嵌入式Linux、VxWorks等,本嵌入式开发教学根据嵌入式教学特点以及当前社会嵌入式现状选择下述两种操作系统进行教学。

μC/OS-II(Micro-Controller Operating System Two)是一个可基于ROM运行、可裁剪、抢占式、实时多任务的内核,具有高度的可移植性与广泛的扩展性。文献[12]指出了嵌入式系统教学中开展μC/OS-II教学的必然性,本教学方案引入μC/OS-II的目的是使学生初步了解操作系统,认知操作系统及其原理。

Linux是一套基于POSIX和UNIX的多用户、多任务、支持多线程的操作系统。目前正在开发的嵌入式系统中,约50%的项目选择Linux作为嵌入式操作系统。本教学方案引入新兴热点Linux,使学生们在嵌入式技术的学习方面走在时代前沿、贴近时代热点[13-14]。2.3 专业课程培养及实验

嵌入式技术专业培养目标偏向嵌入式软件设计开发。其课程体系的设置应该体现“注重工程能力培养的嵌入式系统人才知识体系”。根据学生的接受能力,嵌入式知识的学习应

体现层次性、由易到难的渐进性、注重实践性[15]。其知识结构由基础知识、专业基础知识、专业知识这样一个层次结构组成,本课程与实验结构框图如图1 所示。

图1 课程与实验结构框图

基础课程阶段主要学习(1)基础知识及专业基础知识:

理工科的基础课程,程序设计语言(C语言)、模拟电子技术、数字电子技术。专业基础课包括微机原理与接口技术、单片机原理。

专业课开设方案包括操作系统μC/OS-II(2)专业知识:

原理、Linux基础知识、ARM开发基础,该课程体系的目标是培养嵌入式系统软件设计师。嵌入式基础实验有固定的课时安排,主要采取先讲解再实验,现场辅导的方法,目的是让学生了解操作系统原理以及ARM的体系结构,掌握 ARM 指令编程、I/O 端口的调用及编写等,为后续实验打基础。

该部分主要由 6 个实验组成,实验过程(3)实验部分:

中向学生提供详细的实验指导书。指导书内容包括实验内容、实验目的、实验原理、实验步骤和实验源代码,要求学生根据实验指导书内容进行实验调试,并读懂实验源程序。详细的实验内容见表1所列。为培养学生嵌入式开发应用的能力,提高学生在嵌入式领域的创造性思维,实验内容分为三部分,即μC/OS-II实验、Linux实验及S3C2440基础实验。2.4 综合性、设计性及创新性项目

该部分提倡学生按实验题目自主选择、自主设计完成方案。详细综合性拓展项目见表2所列。整个开发过程中,要求综合所学到的基础知识和基础实验所给的经验、明确功能、

表1 实验部分内容

实验类型

实验设计方案

μC/OS-Ⅱ嵌入式操作系统移植实验

μC/OS-Ⅱ实验

基于μC/OS-Ⅱ的多任务定时闹钟实验

Linux下C语言编程实验

Linux实验

Linux下的CPU利用率监控的shell脚本编写

熟悉Linux系统基本原理,熟悉vim编辑器、gcc编译器、makefile的使用,熟练

C语言学习shell脚本程序的编写,学会使用shell变量、流程控制语句while,for语(if,

句)shell函数,熟悉echo,vmstat等命令的使用、熟悉基于ARM汇编的GPIO接口编程,学习使用S3C2440的GPIO寄存器配置,

学会在汇编语言中调用C语言

熟悉基于ARM的通信协议编写,学习I2C基本原理、数据传输时序

2018年/ 第10期 物联网技术

目 的

学会多任务优先级调度,熟悉邮箱、消息队列的基本原理及使用方法,任务挂

起、恢复的使用

S3C2440基础实验

基于S3C2440的GPIO输出控制实验基于S3C2440的I2C总线驱动程序设计实验

117

Copyright©博看网 www.bookan.com.cn. All Rights Reserved.人才培养

Vocational Education

程序处理流程、任务的定义及实现、熟练调试与排错、撰写实验结果与心得。该部分可有效调动学生学习的积极性、主动性和创造性,提高学生独立思考的能力。本教学拓展实验为学生进行嵌入式开发积攒了丰富的项目经验,能够使学生尽快融入将来的嵌入式开发工作。

表2 综合性拓展项目

项目类型

项目名称

基于S3C2440的视频传输监控设计项目

综合性拓展项目

基于S3C2440的多传感器环境信息采集传输项目

基于S3C2440的移动机器人的设计项目远程监控移动机器人的设计项目

(1)用户可通过上位机远程实时观看机器人现场采集的图像;

(2)用户可通过电脑发送控制指令,调控机器人运动;机器人配备多种传感器,可检验环境气体如一氧化碳、(3)

甲烷等浓度,数据通过网络传输。

项目已初步具备多种面向灾区救援的相关功能,若加以改良,对项目进行策划包装,可投入到相应社会领域。

3 课程实践结果与项目结果展示

通过基于嵌入式项目的综合性、设计性及创新性实验,培养学生通过本教学方案前期掌握相关基础课程,并自主完成实验任务的能力,同时还能依靠稳固的基础知识大胆创新,根据实验过程中遇到的问题提出具体实施办法。在与教师的探讨中提炼出设计题目与所需的流程和方法,达到拥有能自主开发嵌入式项目的能力。

“基于μC/OS-II的多任务定时闹钟实验”的重点在于精确计时、多任务并行和任务间消息传递。由于初步学习了μC/OS-II基本原理,学生们很快定制了以SysTick定时器计数为核心、采用“消息”进行多任务间信息传递的项目方案。在SysTick定时器初始化代码编写的实验过程中,学生们依靠本教学方案基础知识和专业基础知识部分所掌握的基础知识课程,以72 MHz系统时钟频率确定其中断时间间隔,并配置相关寄存器,轻松解决了闹钟实验的核心难点问题。

在本教学方案最后的综合性拓展实验中,学生们在实验中的表现与项目成果极佳。本教学改革方案的实践中选取的部分完成开发的项目成果如图2和图3所示。

其中,部分学生选择了远程监控移动机器人的设计项目,该项目以S3C2440处理器为控制核心,涉及的知识包括ARM体系结构、程序流程、调试等。学生依靠前期所掌握的嵌入式课程基础知识,明确了嵌入式项目开发的核心本质。有了前期所积累的基础知识,在项目开发过程中,学生们思路清晰,目标明确,分析了现有操作系统的优劣,选择了植入μC/OS-II作为机器人下位机驱动部分的操作系统。大胆创新,结合当前社会环境所需,将项目方向定义为灾区搜救机器人,为此添加多种气体检测传感器,通过Linux操作系统下的SER2NET软件将串口数据转化成网络传输传感器检测的数据。经过后期改进、调试,最终设计出一款基于μC/OS-II操作系统与 Linux系统相结合的灾区搜救机器人,图3所示为学生们由远程监控移动机器人项目拓展完成开发的灾区搜救机器人项目,该机器人所具备的主要功能如下:

118物联网技术 2018年/第10期

图2 基于S3C2440的移动机器人的设计项目

图3 监控移动机器人的设计项目

4 结 语

通过上述一系列课程教学改革,包括嵌入式系统设计及应用课程教学体系,解决了嵌入式实验中偏重基础验证性且实验课程较少的问题,有效调动了学生学习的积极性、主动性和创造性,提高了学生分析解决问题和独立思考的能力,取得了良好的教学效果。本教学改革方案中的实践活动加深了学生对专业基础知识的理解与掌握,提升了学生嵌入式系统方向的工程素质,培养了学生嵌入式系统软硬件开发的工程实践能力、工程设计能力和工程创新能力。实践教学为学生从事嵌入式开发领域打开了视角、创造了平台、积累了经验,为学生未来从事嵌入式相关工作打下一定的基础。

参考文献

[1]马忠梅. 浅谈嵌入式人才培养[J].单片机与嵌入式系统应用,2015 (7):4-5.

[2]李岩,王小玉,孙永春. 嵌入式系统教学研究[J].电气电子教学学报,2006,28(3):45-47.

[3]冀常鹏,马飞,徐维.项目驱动的嵌入式系统教学改革[J].电气电子教学学报,2011,33(6):26-27. [4]孙伟, 李严, 崔晓晗,等. 面向应用的嵌入式系统教学改革与探索[J].工业和信息化教育,2016(1):32-36.[5]龚东明《.微机原理与接口技术》课程教学改革浅探[J].职业,2011(14):41.

(下转第120页)

Copyright©博看网 www.bookan.com.cn. All Rights Reserved.人才培养

Vocational Education

的结果应该位于数组元素的第几位。这样的任务设置符合学生的认知规律,可加深学生理解并掌握。

此实验案例的目的在于除了熟练掌握查找、排序常见算法之外,还可灵活利用数组克服计算机数据类型存储数据范围有限的缺陷。对于超大数间的运算,可利用数组存储数据的特点加以解决。让学生体会如何利用程序设计的思想来完成编程。

图1 两数相减示意图

2.2 超大整数乘法运算

对于两个超大整数乘法运算[5],数据的存放及输入输出与数据加法和减法相同,两大数乘法运算的关键在于首先确定相乘结果为几位数(n位数和n位数相乘结果不大于2n位数)。其次,第i位和第j位相乘结果存放在第i+j位,如图2所示。最后处理进位关系(通过与整数10进行模和除法运算,对第i+j位的累加求和后的两位数进行分离)。

乘法运算案例的设计是对加减法运算的循序递进,学生由乘法运算易想到除法运算,除法运算要考虑的问题更复杂,因此在实践教学过程中不做要求,但对于学习程度较好的学生,可引导他们进行下一步学习。

3 结 语

计算机程序设计基础中,数组是最为基础的数据结构,稍复杂的问题中都会遇到这类数据结构,因此学习和熟练掌握数组的应用非常必要。上机实践的教学过程中需精心进行案例的设计,让学生既不会畏难,又附有一定的挑战,使学生在熟练掌握基础知识的同时进行一定的知识拓展,这对于培养他们的思考和思维能力非常有益。通过往届学生的授课实践结果证明,该部分所采用的案例设计非常成功。计算机程序设计基础课程是一门实践性非常强的课程,对于各章节实践案例都需要精心设计,使学生在解决生动有趣的实际问题中,完成计算思维能力的培养。

参考文献

[1]姜明涛.案例教学在大学计算机基础实验教学中的应用研究[J].科

教导刊,2016(10):82-83.

[2]车敏.基于计算思维培养在程序设计课程中的实施问题[J].西北大学学报(自然科学版),2014(44):53-55.

[3]曾志华.案例教学法在计算机教学中的实践与应用[J].当代教育实践与教学研究,2016(4):156.[4]谭浩强.C程序设计语言(第4版)[M].北京:清华大学出版社,2013.11.

[5]佚名.大数的四则运算[EB/OL][.2016-04-02].https://www.cnblogs.com/wuqianling/p/5387099.html.

[6]马瑾,袁宝华. 实例教学法在C语言教学中的应用[J]. 科技信息, 2010(33):602.

[7]卫军超,薛鹏鹏. C语言程序设计教学改革浅析[J].信息与电脑(理论版),2016(4):255-256.[8]孙晶,方英兰,刘高军《.C语言程序设计》课程改革与实践[J]. 电脑知识与技术,2014(34):8225.

图2 两数相乘示意图

从两个超大数的加法、减法到乘法案例设计循序渐进,使学生在上机实践的过程中既能很好地理解超大数以字符串形式存放在数组,又能较好地使用数组数据结构的特点来完成指定的逻辑运算。乘法运算的难点在于数组元素对应位相乘

作者简介:车 敏女,硕士。研究方向为信号与信息处理、数据分析。(1973—),

(上接第118页)

[6]文全刚, 陈守孔. 嵌入式方向课程设置与教学:基于ARM体系结

构[J].计算机教育,2007(9):25-27.[7]王宇英, 谷建华, 周兴社. 操作系统教学探索及其在嵌入式教学中的实践[J].计算机教育,2011(21):102-105.

[8]许斌. 浅谈基于ARM的嵌入式系统设计[J].科技资讯,2017,15(28):65-66.

[9]任志敏. 一种ARM技术及其应用课程项目化教学方法[J].山西电子技术,2017(1):6-8.

[10]朱乐乐. 基于ARM Cortex-M4内核的多功能教育机器人开发研

究[D].苏州:苏州大学,2013.

作者简介:顾恺琦, 内蒙古工业大学学生。研究方向为嵌入式开发。

韩建峰,本文通讯作者,副教授。研究方向为信号与信息处理。120物联网技术 2018年/第10期

[11]卜权, 王成华, 王心一. 基于ARM9的嵌入式教学平台开发[J].电

气电子教学学报,2010,32(5):100-102.

[12]张会林. Cortex-M3+μC/OS-II嵌入式系统开发与应用课程本科教

学探讨[J].电子世界,2014(21):178-178.

[13]李文胜. 基于树莓派的嵌入式Linux开发教学探索[J].电子技术

与软件工程,2014(9):219-220.[14]赵艳红, 刘斌, 庄锁法. 应用型本科嵌入式Linux课程教学体系

构建[J].宜宾学院学报,2013,13(6):117-119.

[15]郑会娟. 行业需求视角下嵌入式人才培养模式探索[J].中国成人

教育,2014(23):60-61.

Copyright©博看网 www.bookan.com.cn. All Rights Reserved.

因篇幅问题不能全部显示,请点此查看更多更全内容