尤 鋆, 时 斌
(东南大学 电气工程学院, 江苏 南京 210096)
“微机系统与接口”课程是高等院校计算机及电类等专业的重要专业基础课,同时也是“单片机系统应用”,“嵌入式系统设计”等课程的先修课程[1, 2]。该课程旨在使学生掌握微型计算机体系结构、微处理器及其指令系统、汇编语言程序设计、微型计算机接口电路设计及编程方法,培养学生软硬件设计及系统开发的能力。
长期以来,我国的“微机系统与接口”课程大都以Intel8086/88甚至Pentium等芯片作为经典的教学对象,以此在课程的建设方面涌现出不少有影响力的教材以及教学方案和教学方法,笔者当年也是从学习8086/88开始迈进“微机系统与接口”课程的大门。
然而,随着技术的进步和发展,Intel8086/88等当年的主力芯片厂家业已停产,为了授课和实验的需要,被迫利用同架构的芯片来模拟。在此过程中,由于硬件和软件方面的种种原因以及长时间使用对实验平台维护的不足,大部分学生反映在进行系统总线、存储器扩展等实验时会遇到不少困难,部分实验甚至不能开展。而且,考虑到目前大学生电子设计竞赛都以先进单片机或ARM为对象,结合嵌入式系统开展设计和应用。为了加强学生动手实践能力并提高相应的设计水平,笔者提出将“微机系统与接口”课程的应用对象改为TI公司基于Cotrex-M4内核的ARM芯片TM4C1294,以此设计了相应的实验平台,并对课程体系及内容作了一定的调整。此举希望能起到抛砖引玉之效,与同仁们一起探讨,以获得更好的教学效果及培养学生应用能力。
我校的“微机系统与接口(微机原理)”课程是一门校级平台课程,规划为48课时。教学内容主要包括:计算机系统组成、8086系统结构及其指令结构、汇编语言程序设计、系统总线、存储器原理、输入输出接口技术、8259中断控制器、8255并行接口、8250串行通讯接口、常用A/D和D/A等。
在当前该课程教学中,由于课程内容较多,涵盖知识点复杂,且综合性、系统性较强,对学生先修课程特别是数字电路的基础要求较高。
具体授课时,教师既要向学生讲解CPU内部结构、寻址方式、指令系统等,需要学生建立对硬件架构的理解,还要使学生理解在寄存器层面上程序工作的流程。学生面对大量抽象的概念,难免产生畏难的情绪,学习热情受到影响。再则,汇编语言编程目前已经使用不多,故被压缩进有限的学时内,更加重了学生的学习负担。
同时在课堂教学中过于注重概念细节,忽视整体知识结构的问题也会导致实验内容与课堂教学内容相脱节,使得学生在面对实践环节中的工程问题无从下手,难以做到边学边用,学以致用。
为了改变教学现状,部分院校已开始了“微机系统与接口”课程的教改工作[6-8]。借鉴这些兄弟院校的经验,笔者考虑在有限的课时中,需要通过合理组织课程内容,将课程内容分为不同层次以循序渐进方式讲解,并引入课堂实践环节来提升教学效果。为此,笔者根据课程的教学大纲,加入了一些新发展的内容,撰写了一本《ARM嵌入式系统教程:基于Cortex-M4内核和TM4C1294控制器》教材。(将在2017年元月由机械工业出版社发行)。虽然这本教材起名为嵌入式系统,但其内容编排能够满足“微机系统与接口”课程的需要。
教材首先编写了计算机系统的基本组成结构及主要部件的连接和工作方式。其次分别介绍各个外设和通讯接口,并以最简程序作为范例,指导学生使用。考虑到现在的程序开发已极少用到汇编语言编程,为突出重点教材中没有对此作过多介绍,代之以ARM指令系统做了简要介绍。
在教学中,根据学生的专业方向,在有限的学时内,重点介绍主要的外设、通讯和模拟接口,其它接口留给学生利用课余时间自习。所有的编程都以C语言实现,符合现今主流的开发手段。
这样的安排可以激发学生学习的热情,改变大多数学生认为该课程枯燥、过时等想法,同时教学内容既新颖又实用,能够取得较好的教学效果,也有利于与以后课程的衔接。
由于Intel8086/88处理器及其配套82系列芯片已停产多年,当前大部分高校采用的微机系统与接口实验平台均利用PCI总线,或用其来模拟ISA总线,该实验环境对于非计算机专业的学生,在有限的学时内很难掌握。
受我校当前微机系统与接口实验平台的制约,必须用PCI转接板插在台式机的主板上,学生在作课程实验、综合实验及课程设计时,由于实验平台固定且硬件资源难以扩展,同时缺乏相应配套资源,难以利用课外时间进行扩展实践。同样原因,教师也无法在课堂上针对重点和难点问题,结合具体的实验对象进行有针对性的讲解。这样,就把实践教学和理论教学割裂开来,影响了教学效果。学生也不能在实验环节中发挥积极性、创造性,自己设计相应的外围硬件,创造相对复杂的应用系统。
基于上述实践教学中遇到的问题,笔者在此次教学改革中,基于TI公司Cotrex-M4内核的ARM芯片TM4C1294,设计出了相应的实验平台(EAE021-M4)。
该实验平台设计时,主要考虑的是不仅要满足当前“微机系统与接口”课程的要求,同时兼顾了日后扩展及延伸的需要。使得学生可以利用实验平台作为基础,结合扩展的硬件资源,自主选择综合实验,培养学生设计复杂应用系统的能力。
微机系统与接口实验平台(EAE021-M4)的硬件布置框图如图1所示,其上配备有TI公司TM4C1294 launchpad处理器核心板,具有8路PWM信号、8路12位ADC、128×64液晶模块、4×4矩阵键盘。同时还设置了多种形式接口,可配置多种形式的模拟、数字、数模混合模块接口:16位ADC接口,可外接单通道16位ADC器件ADS1602(1MHz采样率);数模混合电路模块接口,包括FPGA、ADC、DAC和SRAM;VGA接口,可以使用液晶显示器、液晶电视机为输出设备;SD卡接口,可对SD卡进行读写操作;PMOD接口可扩展外接多种模拟、数字接口模块;RS-232接口,实现微机系统间通信。
该实验平台具有很好的扩展性,可以承担微机系统与接口、嵌入式系统、FPGA应用系统、电子系统设计等课程实验及课程设计。目前市场上尚无类似的扩展性强、性价比高的产品。该系统曾在全国大学生电子设计竞赛—2016年模拟电子系统设计专题邀请赛中作为竞赛平台使用。
图1 基于TM4C1294的微机系统与接口实验平台布置图
本实验平台采用模块化设计方式,结合FPGA核心板,可以满足设计复杂电路系统的需要,FPGA器件提供丰富的可编程逻辑单元,利用硬件编程语言verilog HDL和VHDL,可在FPGA中配置具有各种功能的IP软核,实现新型微机芯片及其接口芯片功能,具有编程灵活,可靠性高等特点。本设计中的FPGA核心板选用Xilinx公司的ARTIX-7系列XC7A50T芯片。该芯片包含52160个逻辑单元,2700Kb RAM,用户使用I/O数170个,可满足大容量低成本的电子设计的需求。
ARM核心板选用TI公司的Tiva C Series TM4C1294 Connected LaunchPad核心板,该核心板提供丰富的板上外设资源,包括10/100M以太网接口、USB 2.0接口、片上ADC模块、多种串行通信外设等。该核心板同时支持TI针对Tiva C系列处理器所开发的一套软件开发包Tivaware,该程序库将处理器所执行的基础操作指令模块化、函数化,可以免去开发中冗长的代码,降低开发难度,特别适合硬件初学者使用。Tivaware提供的外设驱动库,USB、图形和传感器的应用库,使用户在开发时可以专注于应用程序的构建,免去耗费过多精力于编程连接外设,从而加速开发的进程。并有利于学生掌握微机系统与接口的本质内容,而不至于浪费宝贵的时间在系统连接上。该核心板与实验平台的连接利用了TI公司的80Pin标准LaunchPad管脚,即使以后该ARM芯片停产,仍可利用TI公司后续的核心板以支持实验。
TI公司Tiva C Series TM4C1294 Connected LaunchPad核心板本身即可进行一些简单的实验,配合EAE021-M4实验平台可完成一些复杂的输入输出及显示等操作。该平台与电脑的连接通过USB接口进行,这就极大地方便了任课教师和学生,不必局限于实验室进行演示和实践训练。
通过适当地调整教学内容,将实践环节与课堂教学有机地结合在一起,可以取得事半功倍的效果。主要实施办法有:
(1) 采用以ARM架构系统为基础,讲解微机系统的基本组成以及输入、输出接口和存储器系统;扩充学生的知识面,能够掌握目前主流的微机系统与接口设计方法。
(2) 结合“微机系统与接口”原有的基本知识讲解,使学生牢固建立微机系统的概念,在课堂上解决难点和重点时,可借助实验平台直接演示程序,加深教学效果。
(3) 对原有的“基本原理-汇编语言编程-系统总线-外设接口-通讯接口-模拟接口”教学方式进行适当的整合,采用任务驱动的教学模式,利用教学与实验并行的方式,提出问题并启发学生逐步解决问题,实时加以演示,注重知识讲解与实践操作相结合,培养学生系统学习、理解、解决问题的能力。
(4) 弃除传统陈旧的编程方式,目前的微机系统开发绝大多数以C语言为主,与其浪费有限的学时在陈旧的汇编语言编程上,不如直接更改为以C语言编程教学。(尤鋆等文)
在教材改革的基础上,针对每个模块的编程,都用C语言详细介绍硬件和软件间的关系,以激发学生的学习兴趣,使其能够自主设计并编程解决实际问题。
(5) 在32学时的“微机系统与接口”实验课上,依靠课堂教学,学生已基本掌握了基础以及系统概念,可以让学生在实验平台上直接操作,实现相应模块的功能,如实现系统外设的输入/输出控制、与PC进行串行通信、完成模拟信号/数字信号之间的转换等。这不仅加强了实验的效果,还能有空余课时让学生根据自己的专业,选择1~2个具体的专业模拟案例,达到教学和实际相结合的目的。
(6) 核心板的所有引脚都通过排针引出,既可以使学生能开展基本实验(如LED灯闪烁、系统时钟控制、按键输入与中断控制、串行通信、A/D和D/A转换、PWM输出、SPI接口通信等)。也方便后续开展扩展实验,这类扩展实验可以由学生自行设计,也可由教师选择几个项目实例供学生选择,如电气专业的电机控制、新能源利用、电力电子应用等以及图像显示,数据采集、操作系统移植与优化、USB及以太网通讯等,可大大提高学生的综合素质及全面解决问题的能力。
为了提高“微机系统与接口”课程的教学效果,本文通过对国内相关院校该课程教学工作的调研,总结了各自的优缺点,并结合我院课程教学的特点及当前存在的不足,提出了以课堂授课为核心,紧密结合理论与实践教学,采用任务驱动的教学改革。
我们基于TI公司Cotrex-M4内核的ARM芯片TM4C1294,设计了相应的实验平台(EAE021-M4)。一方面提升了学生的学习兴趣,激发了学习积极性与自主学习意识;另一方面培养了学生对于应用系统软硬件设计的开发能力,既提升了理论知识的教学效果,也培养了学生的实践动手能力及创新意识。
参考文献:
[1]郑伟. “嵌入式系统设计技术”课程模式转变及教改研究[J]. 南京: 电气电子教学学报, 2009(1): 47-49.
[2]凌明,刘昊,时龙兴. 关于嵌入式系统课程教学过程中几个问题的思考[J]. 南京: 电气电子教学学报, 2007(1): 94-96.
[3]陈立刚,徐晓红. “计算机硬件技术基础”教学内容改革[J]. 南京: 电气电子教学学报, 2013(2): 30-32.
[4]朱小梅,盛新富,祁硕,等. 能力导向型“计算机硬件技术基础”课程的设计与实践[J]. 北京: 计算机教育, 2006(10): 33-34.
[5]戴先中,马旭东. “微机系统与接口”课程教学改革思路与实践[J]. 南京: 电气电子教学学报, 2005(3): 6-9.
[6]田辉,徐惠民. “微机原理与接口技术”课程体系与内容探讨[J]. 北京: 中国大学教学, 2010(4): 35-36.
[7]刘民岷. 《微机原理及接口技术》课程教学及实验改革实践[J]. 成都: 实验科学与技术, 2013(1): 64-66.
[8]王鹏,朱小梅. 一种“微机原理与应用”课程教学实验平台[J]. 南京: 电气电子教学学报, 2010(5): 90-92.