电子类本科专业嵌入式系统实验教学改革探讨

2015-12-29 00:00:00吴银琴陈锟
计算机教育 2015年9期

摘要:分析当前高校电子类本科专业嵌入式系统实验教学中普遍存在的问题,结合应用领域对嵌入式微处理器的需求和学生自身特点,阐述如何改进基于ARM Cortex-M核的嵌入式系统实验教学平台设计方案,提出相应的实验教学方法,为学生提供一种更有效和更系统地掌握嵌入式系统原理和设计方法的途径。

关键词:嵌入式系统;实验教学;实验平台;Cortex-M

0 引 言

电子类本科专业嵌入式系统实验教学的重点是培养学生掌握以嵌入式微处理器为控制核心的电子系统整机开发能力。学生不仅要掌握嵌入式处理器的工作原理和编程方法,更重要的是能够全面地掌握模数混合、软硬结合的嵌入式系统整体开发思路、开发方法和开发流程。这就要求嵌入式系统配套的实验内容丰富、形式多样,具有大量的基础实验和相应的工程实例,能够将嵌入式开发技术的各种技巧和方法融人实验过程中。通过实验,学生不仅掌握了嵌入式系统开发的基本方法、技巧和手段,更着重培养了自主学习、独立研究的习惯,从而具备创新性地开发嵌入式系统的能力。

1 现有实验环节中存在的问题

随着ARM处理器应用的迅速发展,高校针对ARM体系结构已经积累了大量成熟的教学资源,包括硬件设计资料、教材、开源外设驱动软件库、通讯协议栈、开源实时操作系统和开发环境等。以ARM Cortex-M为代表的嵌入式系统实验教学平台已成为电子信息工程专业嵌入式系统教学的主流,逐步取代了传统的51系列实验平台,但ARM Cortex-M芯片结构比51系列复杂,软件开发中涉及的内容也较多,学生在有限的时间内很难掌握其精髓。在完成实验环节后,教师通过对学生的调查发现,大量学生在实验过程中只是验证了实验手册上的原理和代码,没有深入理解处理器内部模块、外围硬件电路和软件编程之间的关联性,没有真正掌握嵌入式系统设计的方法,课程结束后无法进行模数混合和软硬结合的嵌入式系统整体开发。这种情况在硬件相关课程中普遍存在。文献[2]中提到与过去学生不同的是,当代学生普遍缺乏钻研精神和耐心,过于依赖软件。缺乏钻研精神在嵌入式系统实验教学过程中体现在学生往往依赖实验手册,不愿意深入思考实验现象背后所蕴藏的基本原理和相互之间的关联性,无法做到举一反三;缺乏耐心体现在学生总是希望通过简单的步骤就能看到结果,而嵌入式系统实验需要理解繁琐的配置流程并阅读枯燥的数据手册,学生往往会半途而废;过度依赖软件导致出现“软件比硬件更加重要”的错误认识,学生越来越不愿意“干粗活”,在实验过程中依赖集成开发界面和软件仿真,忽略了示波器、万用表、焊台等在嵌入式系统设计中的重要作用。

2 实验平台没计和改进

目前基于ARM Cortex-M系列处理器的嵌入式系统实验教学平台大部分都放弃了传统实验箱模式,而使用集仿真器与目标板于一体的开发板。开发板提供了ARM Cortex-M所有硬件资源、详细的程序代码和编程手册,对于教师教学和学生学习都非常方便;但开发板完善的设计也是造成上述问题原因之一,学生使用开发板在实验过程中几乎不会遇到问题,也就不会想办法解决各种问题,而这与真正嵌入式系统设计过程正好相反。

针对上述问题,在以ARM Cortex-M3为核心的嵌入式系统实验平台设计中,我们既保留开发板的学习和验证功能让学生能够顺利上手,又特意为学生制造了一些“障碍”,在部分实验中只有学生解决这些“障碍”才能达到实验目的。

实验平台将实验内容分为验证部分和设计部分:验证部分的设计与普通开发板相同,电路功能完整,实验手册中提供完整的实验流程和详细代码;设计部分引出了处理器的IO端口,各个外设模块只提供了IO端口、VDD和GND信号,且IO端口与外设模块之间的地址线、数据线和控制信号线并没有连接,实验手册中只提供该外设模块实验的设计思路和程序流程,学生需要根据实验要求自己动手连接电路,并根据连接的电路编写程序。显然,学生要完成设计型实验必须对处理器内部功能、外围硬件电路和程序流程有充分的理解,如果学生选择的硬件连接方式不同,其编写的程序也就各不相同,但都能够达到相同的实验目的。实验平台的硬件结构如图1所示。

3 实验环节组织

文献[5]中讨论了嵌入式系统课程教学过程中教学内容的安排,将一些容易掌握并能够引发学生注意力、容易看到实验现象的章节安排在前面,以一种先易后难、先外后内的方式编排教学内容。我们在此基础上将验证型实验和设计型实验进行穿插安排,验证型实验侧重于加强学生对处理器功能模块的理解和简单应用,实验手册给出了具体程序代码并配有较详细的注释,学生在理解并完成验证型实验的基础上进行设计型实验。实验项目安排如表1所示。

在实验项目安排中,所有的设计型实验都和前一个验证型实验有所关联,但又加入了新的内容。

(1)在实验3“ARM汇编语言实验”中,要求学生使用ARM汇编语言实现LED流水灯功能,而学生在实验2中已经验证过使用C语言编写的LED流水灯功能代码,因此会缓解学生对编写ARM汇编语言程序的畏难情绪。一部分学生会调出实验2中的C语言代码观察反汇编的结果,提取其中汇编语言部分,再补充汇编伪指令;也有一部分学生会依据C语言中的程序流程,根据自己的理解来编写汇编代码。

(2)在实验5“I2C实验”中,学生已经通过实验4了解了串行通讯协议的思想。这个实验中处理器的IO引脚没有和E2PROM芯片相连,学生在实验中可以选择使用处理器的I2C引脚来连接,也可以选择使用其他空闲GPIO端口来连接,然后模拟I2C协议。在实验过程中,学生需要使用示波器来观察I2C引脚上的波形是否符合芯片通信所要求的I2C协议。该实验过程并不复杂,但有效地锻炼了学生软、硬件相结合的能力,即在示波器的指导下调试程序。由于各个学生选择的信号线连接方式不同,学生最后提交的程序设计思路和代码也不同,有效地避免了实验过程中相互抄袭的现象。

(3)课程设计内容有较强的综合性,要求学生以Cortex-M处理器为核心设计一个简单的音频采集系统:将从麦克风采集的音频通过扬声器回放。该实验要求学生使用面包板搭建两个运算放大电路,一个电路是麦克风采集的声音调整到Cortcx-M处理器ADC输入所要求的范围,另一个电路是将Cortex-M处理器DAC所输出的信号调整到足以驱动扬声器发出声音。学生在该实验中需要用到前面8个实验中已经学过的内容,如编程驱动Cortex-M处理器的定时器、DMA通道、ADC、DAC、串口通信等模块,又需要匹配模拟电路和数字电路。学生在程序调试过程中需要使用信号发生器、示波器、万用表、焊接工具等作为辅助,有效地提升了学生对模数混合的嵌入式系统设汁的掌握,加深了学生对嵌入式系统整体开发思路、开发方法和开发流程的理解。部分能力较强学生能够结合实时操作系统实现数据采集进程和音频流输出进程之间的数据共享和同步,具有较强的实用价值。

学生的实验成绩考核由老师现场检查和实验报告两部分组成。学生在实验前必须先预习实验手册上的内容并撰写实验报告中硬件原理和程序流程分析。完成实验后老师现场检查并提问,根据学生实验效果和问题的吲答情况打分,分值占实验成绩的60%。实验结束后学生再根据实验情况进行分析和总结,实验报告成绩占40%实验报告的设计以考察学生对实验原理的理解及对问题的思考为原则,尽量减少书写工作,实验报告的结构如图2所示。

4 结语

嵌入式系统实验教学的最终目的是培养学生能够根据应用需求独立完成嵌入式系统的软、硬件设计和开发。中南民族大学的“嵌入式系统”实验教学按照以上体系运作了两年,取得了较好的效果,学生普遍反映在实验过程中学了“真本领”,为学生学习其他后续课程、参与创新活动和学科竞赛奠定了良好的基础。两年来学生参与的以Cortex-M系列为处理器平台的学科竞赛取得了较好的成绩:3人次获湖北省大学生电子设计大赛湖北省一等奖;3人次获得全国电子设计大赛一等奖。在嵌入式系统飞速发展的大环境下,社会对学生的知识结构和动手能力的要求越来越高,我们在今后的实验教学中仍然要不断总结经验,优化实验平台设计和实验内容,提升实验教学质量,进一步提高学生在专业领域内的就业竞争力。

参考文献:

[2]Tsividis Y.Turning students on to the circuits[J].Circuits and System Magazine,2009,9(1):58-63.

[5]邓春健,李文生,杨亮,等.“ARM嵌入式系统”课程教学方法研究[J].计算机教育,2010(3):94-96