APP下载

电子通信类专业入门型嵌入式系统课程的教学研究

2022-04-14王新华王建芬

浙江科技学院学报 2022年2期
关键词:数字信号嵌入式电压

王新华,王建芬,张 磊

(浙江科技学院 信息与电子工程学院,杭州 310023)

电子信息技术和通信技术是IT业的基石,随着全球科技竞争的日趋激烈,越来越多的国家认识到信息技术的重要性,纷纷制定长远发展规划,不断增加研究的投入。中国在这些方面已经有了长足的进展,孕育发展出了一批国际领先水平的通信技术公司。然而,我们在基础研究、工业应用和装备制造领域暴露出了很多不足,在部分技术领域缺乏核心竞争力[1],特别是近几年国外科技强国对中国的技术打压和封锁,使我们的电子通信产业发展受到了严重的影响。因此加强和推进核心科技的发展,解决受制于人的技术问题,并能够在未来立足技术制高点,是中国当前面临的急迫问题,需要持续不断地培养大批既具有坚实理论基础,又具备很强实践应用能力的综合性电子通信技术人才[2]。

1 电子通信专业教学中面临的问题

电子通信技术的发展需要具有综合性知识和能力的高素质人才,他们既要具备坚实的理论基础,又要具有很强的应用能力;既要掌握电子和计算机的硬件知识,也要具有足够的软件设计能力,同时还要具备很强的创新能力。而这样的人才培养难度大、周期长,一直是高等学校此类专业教学中的难点。

电子通信技术类专业基础课涉及面广,学习时间长,理论课程多,专业入门不易[3],大部分学生在二三年级的学习过程中都没有能力参与实际项目的设计,也很少接触实际的综合性应用案例,所以学习时普遍反映课程枯燥,缺乏成就感,这挫伤了学习的积极性。相比较而言,计算机软件类专业的学生在二年级时就可以参与一些项目的设计,能直观感受到专业知识的应用并带来很强的成就感,这对专业学习有很大的激励作用。如果电子通信类专业的学生能在专业基础课学习中尽早接触与专业相关的一些应用,对后续相关课程的学习将大有裨益。

2 嵌入式系统教学改革的设计

嵌入式系统涵盖了很多专业课程的综合知识,结合了软硬件知识,具有很强的理论性和实践性[4],可以实现系统级的综合设计,很适合项目式教学[5-6]。另外,它的应用面非常广泛,很多相关专业也都开设该课程,因此这门课程是最佳的教学改革实践对象之一。

我们尝试在大学低年级开设一门入门型的嵌入式系统课程。本课程介绍基本概念,采用当前流行的Arduino嵌入式平台,学习简单的软硬件编程技术;结合最新的阿里云智能物联网平台设计项目实例,使学生尽早接触实际应用系统。

针对低年级学生欠缺基础知识的情况,为使学生易于学习,课程具体实施时首先总结提炼最基础的概念,采用模块化的教学方式讲授软硬件编程,在此基础上逐步引导学生进行具有系统功能的项目案例学习。以下从计算机系统构成、基础概念和实际项目设计等几方面介绍具体的教学设计。

2.1 了解简单的计算机系统构成

大学一年级课程会初步介绍计算机原理和体系结构,但基本上不会接触更底层的物理器件。在入门型嵌入式系统课程教学中,将Arduino系统看作一个具有代表性的小型计算机系统,对系统的核心芯片及外围硬件组成做概括介绍,让学生了解MCU(microcontroller unit,微控制单元)的内部硬件结构和功能、数据存储器和程序存储器的功能、程序在硬件中运行的原理等,使他们对计算机的软硬件及其关系有初步了解,再引申介绍嵌入式计算机系统和常规计算机系统的概念,并比较两者异同,这样可以促进学生对计算机系统的理解。

有了框架性的概念并能“触摸”到实际的器件后,学生对计算机系统的结构和工作原理会有更进一步的认识,同时也能消除陌生感和畏难心理,在后续学习中更有自信心[7]。

2.2 基本概念的提炼和学习

Arduino嵌入式系统课程的编程设计以模块化的函数形式居多,不涉及芯片内部较深奥的硬件原理,起步较容易。但在编程时,还是需要了解最基本的概念,例如传感器知识、数字信号和模拟信号的定义、输入输出控制、AD/DA转换的概念及串行通信的概念等。这些基础知识使学生能有效地在Arduino平台进行硬件的编程学习,并能顺利开展项目实例设计,同时也为学习后续数字电路、模拟电路及单片机等课程奠定基础。下面以3个基本概念为例介绍课程的教学方法。

2.2.1 了解模拟信号和数字信号的定义

模拟信号、数字信号的概念及其相关的处理是众多课程的基础之一,贯穿于整个专业的学习过程。在Arduino嵌入式MCU中,定义了数字信号和模拟信号输入输出引脚,在编程时直接用相关函数完成对应的操作。虽然低年级学生基础知识欠缺,但在实验教学中通过函数的编程设计能使学生循序渐进地掌握概念[8-9]。

2.2.1.1 通过输入输出函数认识数字信号和模拟信号 利用Arduino芯片的数字信号输入输出和模拟信号输入输出引脚,可以使学生初步认识数字信号和模拟信号。在Arduino程序设计中,数字信号输入和模拟信号输入有不同的代码函数,如分别定义引脚A0为数字信号输入和模拟信号输入,读入的数值赋值给整型变量:

Value = digitalRead(A0),Value = analogRead(A0)。

数字信号输出和模拟信号输出也有不同的代码函数,如对引脚3分别输出数字值和模拟值:

digitalWrite(3,HIGH),analogWrite(3,Value)。

教学时针对不同的引脚输入或输出不同的信号值,并用示波器观察测量信号的波形,可以使学生认识到数字信号只定义0和1两种状态,而模拟信号是时间连续的信号。在实验中学生可以非常直观地看到两种不同信号的区别和联系,因此很容易理解数字信号和模拟信号的概念,这是后续知识和课程学习的基础。

图1 数字逻辑电平的定义Fig.1 Definition of digital logic level

2.2.1.2 了解数字信号的电压范围定义 学生从概念上知道数字信号的0、1值与电压的高低状态有关,并不了解对应的电压值,即没有逻辑电平范围的概念。为使学生明确此概念,在代码Value = digitalRead(A0)的测试中,不断调节A0输入脚的电压并读取数字值。因为Arduino芯片是CMOS(complementary metal oxide semiconductor,互补金属氧化物半导体)器件,因此可以测量得到图1中COMS电平的数字电压定义范围[10]:高电平(1)的最低值VH(min)约为电源电压VDD的70%,最高值VH(max)为VDD;低电平(0)的最低值VL(min)为0 V,最高值VL(max)约为电源电压VDD的30%。对TTL(transistor-transistor logic,晶体管—晶体管逻辑电路)电平的定义而言,教师可适当解释高低电平的范围,低电平在0~0.8 V之间,高电平在2.0 V到电源电压VDD之间。

经过实验测试,学生对数字信号和实际逻辑电平的关系有了清晰的了解,这是后续数字电路课程的基础知识。

2.2.2 AD/DA转换概念的引出和展开

电子通信专业中AD转换、DA转换、连续和离散的概念对学生而言非常重要,后续很多课程都会涉及,因此尽早理解这些概念对后续学习帮助很大。基于前述Arduino的模拟信号输入输出函数就可以引出AD/DA转换的概念。

为了让学生容易理解上述概念并便于引申,抛开具体的物理器件原理,我们首先从映射的角度对AD/DA转换的概念做解释,即对于任意的两个域,如果域1的取值范围是F1min~F1max,域2的取值范围是F2min~F2max,域1中的任意值X1等比例映射到域2的X2值,二者可以表示为如下关系:

(1)

这里的两个域可以是数字域和模拟域的任意组合。

图2 不同域的映射关系Fig.2 Mapping relationship between different domains

AD转换即模拟域到数字域的映射,是把一定范围的模拟电压值映射到一定范围的数字值上,不同域的映射关系如图2所示。模拟域1的输入参考电压为Vref1,数字域1的数字值上限为D1max。模拟域1的电压A1等比例映射为数字域1的数值D1,根据两个域的取值范围和式(1),即得到AD转换的一般公式[10]:

(2)

DA转换即数字域2等比例映射到模拟域2,同样根据两个域的取值范围D2max和Vref 2及式(1),得到DA转换的一般公式:

(3)

“域映射”转换关系即两个数字域之间的映射。

学生需要重点了解的是在数字域1中0~D1max的范围内有D1max+1个整数,也对应分割了模拟域1中相同份数的输入电压,而且由于D1必须是整数,因此D1对应的是一定范围内的A1,这就引出了AD转换中取样量化编码及量化误差的概念,适当引申讲解这些概念可与后续课程建立联系;同样需要强调由于数字域2中整数的数量有限,因此得到的模拟域2的电压值也是数量有限,让学生对比分析模拟域1和模拟域2,可以知道模拟域1的输入电压是连续变化的,而模拟域2的输出电压是有限离散的,从而使学生初步了解连续和离散的概念,这些概念与数字信号处理课程相关。

从上面的描述可以知道,让学生从映射的角度来了解AD/DA转换的概念是一种比较好的方法,也易于进一步展开介绍其他知识,与后续课程相联系,课程内容更易理解。

2.2.3 串行通信的学习

串行通信是嵌入式系统中应用非常广泛的功能之一,但如果想真正掌握和理解该通信方式,需要在单片机课程的学习之后才能完成,学生在此之前参加电子类竞赛需要经常性地用到串行通信技术来完成一些功能,往往感觉力不从心。

为使学生在还没有深入理解串口原理时也能应用串口通信功能,Arduino嵌入式系统的编程模块对串口通信做了封装和简化,使用几种函数实现了最基本的功能,如接收引脚和发射引脚定义函数、波特率定义函数、数据发送函数和数据接收函数等。这些函数涵盖串行通信的基本概念和功能,满足一般的应用。我们在教学过程中不必拘泥于串行通信的全部定义和功能介绍,只需让学生了解通信速率的定义,收发引脚的功能和连接方式,上位机通信软件的参数配置等基本概念即可实现通信功能。

学生使用串行通信方式可以连接蓝牙模块、WiFi模块等实现综合系统功能,能够大大提升学习兴趣。在教学实践中我们发现以前没有单片机课程知识基础的学生在参加竞赛时不能独立完成通信AT指令的编写和调试工作,但通过Arduino嵌入式系统课程学习后就具有这样的能力,证明课程的设置和教学内容的设计是富有成效的。

2.3 项目式教学设计

在很多课程教学中我们都发现最吸引学生的教学方式是全过程参与项目案例,自己动手设计完成一个项目会给学生带来很大的成就感,这种成就感反过来会极大地激发学生学习的积极性。同时,学过的知识直观地应用在实践中能使学生感受到切实的收获,对所学知识理解更深,记忆更牢固。因此在课程中我们引导学生综合应用所学知识,用Arduino平台提供的模块化函数、传感器及通信模块,使用阿里云智能物联网平台,设计一个小型综合系统。图3为项目设计实例,这个系统以Arduino MCU为核心,通过WiFi模块与阿里云平台建立通信连接,具有采集光照度和电池电压两路模拟信号和一路电源指示灯数字信号的功能,也可以接收阿里云上层平台的指令控制一个电源电路的开关。学生自己不需要设计上层云平台的代码,但要在云平台上创建项目和配置各种监测控制参数[11],形成云平台监控页面,并生成手机App控制软件,用模拟软件测试配置的正确性,之后设计Arduino的程序并进行通信连接,所有的结果都能够在云平台监控界面和手机App软件上观察并进行控制。

图3 项目设计实例Fig.3 Project design example

这个项目高度综合了课程所学内容,具有监控平台和手机App管理功能,使学生了解如何从底层开始设计一个项目。虽然完成设计需要持续几个星期并花费大量的业余时间,但学生看到自己能够设计一个非常实用的系统,都全身心投入,完成后感觉收获很多。从结果来看,项目设计非常有利于调动学生的学习积极性,是一种非常有效的教学手段[12]。

3 教学改革的特色

3.1 改进传统教学内容,激发学习积极性

在传统的电子通信类专业的教学计划中,应用型课程往往放在专业教学后期作为专业课程的应用总结,这样确实符合专业课学习的科学规律,但学生在前期的学习中获得综合应用性课程学习的机会比较少,在驱动学习兴趣上显得不足。将入门型嵌入式系统课程的内容合理取舍,扩大覆盖面,内容偏向综合性,教学时间安排在低年级,可以使学生尽早接触和了解专业知识的应用,并通过实践激发学生的自信心和专业认同感,也能够增强学生的创新创业能力[13]。当然,本课程不能代替高年级嵌入式技术类课程,要具备更强的设计应用能力,还需要深入学习其他相关课程。

3.2 强化模块化和系统化教学

在低年级开设综合应用性的课程就需要避免深入过多的细节,比如对编程时的各种处理函数、传感器的电路原理、各种通信协议等均采用模块化方式提供接口,学生不需要深入了解内部细节,了解功能后能够在设计时使用即可,不至于陷入过多新知识的学习中,而更多地聚焦于认识系统和应用系统,在很大程度上降低了学习的难度。另外,教学内容要体现最新的技术发展并融合在项目设计中,如学生可以熟悉一些最新的工具和平台,在后续学习和参加各类竞赛时还可以使用。这些综合设计和应用的持续锻炼对学生整个大学期间的学习将会起到积极的促进作用。

3.3 加强与后续课程的关联

这种入门型的课程实际注重的是引导作用,使学生尽早接触专业的应用,并能够提前了解后续相关课程的一些概念,起到承前启后的作用。因此课程内容上要尽可能强调与后续课程关联性强的概念和知识,这对学生了解课程体系,提高专业认知度会有较大帮助。

3.4 课程易推广到其他专业

嵌入式控制系统目前在很多领域都有应用,除了电子通信类专业外,很多其他工科专业都有类似的课程。基于Arduino的嵌入式系统课程开设于低年级,与专业基础知识相关度较小,通用性较强,因此易于在其他专业推广,课程中模块化的软硬件设计和易于快速搭建的平台都为其他专业学生的学习提供了支撑,能够实现多样化嵌入式方向人才的培养[14]。

4 教学改革成效

本课程在浙江科技学院以“阿里云智能物联技术”特色班方式已开设3期,课程中除了讲授基础知识外,还设计了8个软硬件验证性基础实验、1个阿里云平台仿真设计型实验和1个系统综合性设计实验,课程内容涉及了嵌入式系统入门的基础知识并将这些知识应用在项目案例中。课程开设后,包括电子通信专业、计算机技术、软件工程、大数据专业、电气工程类、机械制造工程、能源与环境工程等11个专业的学生选课,每期报名人数都在60人以上,甚至吸引了很多高年级的学生来回头补学这门课,学生学习结束后都取得了很大的收获。另外,在通信工程专业针对留学生开设了本选修课,留学生基础较为薄弱,但他们基本上能够掌握教学内容,在整个学习过程特别是项目设计中表现出了浓厚的学习兴趣。

5 结 语

在低年级学生中面向相关工科专业开设一门入门型嵌入式系统课程是一种新的教学尝试和探索。为了使学生更好地理解、掌握课程内容,并能够与后续的相关课程建立关联,在教学中注重强调基本概念,对比较难懂的软硬件编程模块化后直接使用,使学生易于上手;另外,用项目式教学法使学生能够综合运用所学知识,并接触行业的新技术。这些措施有效提高了学生的学习积极性,在实践中得到了学生的广泛认可。根据教学反馈,后续课程内容和教学方法还需要不断改进,及时跟随行业新技术的发展,激发学生的求知欲,提高其专业知识应用能力。

猜你喜欢

数字信号嵌入式电压
基于IMX6ULL的嵌入式根文件系统构建
可见光通信及其关键技术研究
谈谈电压
蛙泳动作教学中巧用数字信号研究
浅谈传感器的应用及发展
高校图书馆开展嵌入式信息素质教育的思考
我们身边的电压
嵌入式组件技术的研究及应用
挑选超频CPU?先看看VID电压值
AItera推出Nios II系列软核处理器