时间:2023-10-09 16:14:55
开篇:写作不仅是一种记录,更是一种创造,它让我们能够捕捉那些稍纵即逝的灵感,将它们永久地定格在纸上。下面是小编精心整理的12篇嵌入式课程设计,希望这些内容能成为您创作过程中的良师益友,陪伴您不断探索和进步。
题目
基于单片机的智能晾衣系统设计
学院
电子信息工程学院
专业
通信工程专业
组员姓名与学号
指导教师
张红伟、赵博
2019 年 7月
基于单片机的的智能晾衣系统设计
摘 要
随着社会经济水平的发展,现在人们的生活追求个性化、自动化,追求快节奏,追求充满乐趣的生活方式,家装要求的档次越来越高,生活家居人性化、智能化的要求使智能控制技术在智能家居电子产品中得到了广泛应用,伴随着智能家居的快速发展,晾衣工具的智能化发展明显落后与其他家用器具智能化发展之后,现在己经引起社会的很大关注。本论文为了把握市场动态,顺应时代主题,设计并实现了智能晾衣架系统。 采用单片机进行采集光照、DHT11温湿度传感器采集外部空气湿度两,并通过单片机控制旋转衣架,旋转衣架通过步进电机进行调节,当外部天晴,且无雨时,将衣架转出,晾晒衣物;当下雨或者没有阳光时,转回室内,防止被雨打湿,或者天已黑。其中光照传感器采用光敏电阻,湿度采用DHT11,控制硬件采用步进电机,按键电路设定手动自动模式,L602液晶显示感测量和设定值,及工作状态。通过设计和实验调试完成了基于单片机的智能晾衣系统。
目 录
一 .引言...........................................4
1.1 课题研究背景与意义 ........................4
1.2 本设计的发展现状 ..........................4
1.3研究方法..................................5
1.4研究内容.................................5
二.智能晾衣系统的硬件设计........................... 5
2.1设计要求.......................................5
2.2 整体设计框图 ...................................6
2.3系统组成概述 .................................6
2.4系统设计要求 ..................................7
2.5光强采集模块...................................7
2.6液晶显示模块.................................8
2.7驱动模块.......................................9
2.8显示模块.......................................10
三.基于单片机的的智能晾衣系统的软件设计..............11
3.1 系统分析 .......................................11
3.2 STC89C52RC单片机介绍...........................12
3.3 程序设计 .......................................14
3.4 软件算法 ....................................14
四.实验调试...................................... 16
五.结论与展望.....................................18
六.心得...........................................18
参考文献...........................................20
一、引言
1.1研究背景与意义
基于现在晾衣架发展现状,本设计开发了一种能帮助人们摆脱原始操作的智能晾衣架。本新型晾衣架主要特点在于:可以伸缩,操作简单,占地面积小,美观实尸构优点。同类产品虽有可收缩式的,但属组装而成,操作比较麻烦,而本晾才架只需按下打开按键,衣架杆即可自动伸展开来。同时晾衣架能识别晴雨天气一自动完成收衣服功能的目的。晴雨智能晾衣架能有效地避免在下雨时,衣服无人收起而被雨淋湿;或在天色变晚时,衣架能自动收回,避免衣服在外面过夜
1.2智能晾衣架的发展现状
在中国各大中城市以及农村普遍是将衣物晾晒于阳台内部或外部,而传统的晾晒衣物方式是阳台内天花板下设置有钢筋挂钩,钩卜通常是挂有竹杆或其它杆体。人们通常习惯于用一支撑杆将衣物支撑到晾衣杆晾晒,这样晾晒衣物费时费力,而且布置钢筋及竹杆与当今现代化建筑结构的阳台也不搭配、有失雅观。另外,家庭通常大都是老人晾衣物,因此,传统的支撑晒衣、收衣不仅是费神费力,而目.容易扭伤筋胃·或支撑不顺扎伤人体。正因传统晾晒衣方式有众多的不便,后出现手摇晾衣架,手摇晾衣架改变了支撑晾衣架的传统习惯,同时也给众多家庭带来了更多的方便。但手摇晾衣架需设置多个机械装置和支撑点,同时需多根网线布置来带动其晾衣杆上下升降。由几支撑点及多根网线的布置,手摇式晾衣架给原本漂亮的阳台增添了不美的因素。其次,手摇晾衣架的升降每次都要人工转换接头,目.需要人力摇动慢慢将杆升降,若晾杆承载的衣物重量过大,摇上去既费力又容易伤手。因此,手摇晾衣架虽然改变传统支撑晾衣的不便,但没有彻底改变费神费力的根本状态。人们期望着一种更方便更美观的新型晾衣架的出现。
1.3 研究方法
(1)文献法。由于本研究将会触及到很多单片机方面的绘图以及变成等方面的知识和技术,为了能够更好的完成研究,所以需要对大量的期刊杂志等书籍进行浏览、整理和分析。这样做能够快速而且有效的获得大量对本研究由有利的信息和材料,因此成为研究方法不可缺少的部分。
(2)观察法。合理的观察对研究有很大的帮助,这种研究方法具有很强的目的性和计划性,在实验中往往能达到意想不到的效果,从而开辟人们的思路,招致新的发现,因此也成为研究方法不可缺少的部分。
1.4 研究内容
基于单片机的的智能晾衣系统设计,需要采用单片机作为控制中心,实现自动晾衣的功能,并根据具体情况进行相应的调整,具体性能和指标如下:
(1)智能晾衣杆全自动工作,可实现无人操控
(2)晾衣杆只有两个位置,伸出去,缩回来
(3)具有手动模式,可以直接强制伸缩晾衣架
(4)光敏传感器:天黑时候将衣服收回来,天亮时候或者阳光猛烈的时候伸出去晾晒
(5)湿度检查:通过DHT11温湿度传感器采集当前空气温湿度,如果湿度较大,将衣服收回来
(6)液晶显示:可以直接显示当前信息和状态
(7)供电:5V电源供给单片机、电机
(8)红外遥控器可以直接进行控制晾衣架进行工作
二、智能晾衣系统的硬件设计
采用单片机进行采集光照、雨滴两个外部天气信号,并通过单片机控制旋转衣架,旋转衣架通过步进电机进行调节,当外部天晴,且无雨时,将衣架转出,晾晒衣物;当下雨或者没有阳光时,转回室内,防止被雨打湿,或者天已黑。
2.1 设计要求
(1)构建一个型号为STC89C52的单片机系统(内含串口通信电路,单片机最小系统),作为系统的主控模块,负责数据的采集、处理与分析、执行部件的控制等;
(2)检测功能:实时检测是否下雨;实时检测环境的光强值;
(3)显示功能:通过液晶屏1602对系统的参数及系统状态进行指示;
(4)执行部件:过298驱动电机,为电机转动时提供停转信号;;
(5)程序编写:使用KEIL C软件编译环境,使用C语言进行系统程序的编写,并在程序中对采集到的数据进行分析、处理和显示。
2.1 整体设计框图
控制总体款图如下图2.1所示,通过光照传感器和雨滴(水位)传感器感知外部天气的光照和雨滴情况,按键设定光照和雨滴的阈值,衣架位置传感器采集衣架所在位置,最后单片机驱动步进电机,将衣架来回于室内室外。
开启开关电源后,温湿度传感器开始工作,采集过程首先是STC89C51单片机发起开始信号,通过I/O引脚发送给DHT11温湿传感器,之后DHT1温湿度传感器1反向单片机发送响应,并将采集到的数据按照40位数据帧格式输出,
温湿度传感器开始工作,把空气中的温度通过一定检测装置,测量到温度后,按一定的规律变换成电信号或其他所需形式的信息输出,用以满足设计需求。市场上的温湿度传感器一般是测量温湿度量。常见的温湿度测量方法有:动态法(双压法、双温法、分流法),静态法(饱和盐法、硫酸法),露点法,和形形的电子式传感器法。DHT11温湿度传感器将检测到的温湿度值以数字量的形式输出给单片机,单片机内部计算后得出此时的温度,之后显示在LCD1602液晶显示器上。温湿度检测流程图如图4.3所示:
五.结论展望
本报告设计并实现了基于单片机的智能晾衣系统,通过实验调试,当外部天晴,且无雨时,衣架转出,晾晒衣物;当下雨或者没有阳光时,转回室内。完成要求中智能晾衣杆全自动工作,实现无人操控;晾衣杆有两个位置,伸出去,缩回来;可以进行位置检测:晾衣杆伸出去时,到达指定位置能够停下来;有软件容错处理:晾衣杆伸缩过程中遇到各种障碍,能够通过软件容错处理来停止;使用光敏传感器:天黑时候将衣服收回来,天亮时候或者阳光猛烈的时候伸出去晾晒;使用雨滴传感器:下雨的时候将衣服收回来;参数灵敏度可以调节(动态设置):按键+液晶显示;采用5V供电:5V电源供给单片机、电机。 本报告实现了智能晾衣系统,还需要结合市场,对衣架的结构和工作方式。比如旋转还是上下伸缩,前后伸缩等,进一步完善系统,使之满足市场需求,更好的为客户服务。
六、心得
1.通过这次单片机课设,我们学到了很多平时难得的东西,首先是团队协作,在这次设计当中,难免和同学产生观点和意见的分歧,以及分工明细、时间安排等不合理
2.通过这次设计,我们体会到了团结合作的重要性及力量之强大,还有让我们处理事情更加有条理,思路更加清晰明了了,发现、提出、分析、解决问题和实践能力的提高都将受益于我在以后的学习、工作和生活中。
3.此次的设计,其实也是我们所学知识的一次综合运用,让我深深的认识到了学习单片机要有一定的基础,要有电子技术方面的数字电路和模拟电路等方面的理论基础,特别是数字电路;也要有编程语言的汇编语言或C语言。要想成为单片机高手,我们首先要学好汇编语言,然后转入C语言学习,所以我们不能学到后面就忘了前面的知识,更应该将所学的知识紧紧的结合在一起,综合运用,所谓设计,就是要求创新,只有将知识综合运用起来才能真正的设计好。
七、展望
本次毕业设计从题目的选定到方案的论证再到毕业设计的完成历时将近三个月,在这三个月的时间内我用自己最饱满的热情和最认真的态度来对待。很多问题看似简单,但是真正在实践过程中却举步维艰、问题百出,尤其是在程序调试的阶段要有极大的耐心,但是这个过程也很大程度上的提高了我分析问题和解决问题的能力。在毕设的实践中也提高了我的动手能力,强化了自己的专业理论知识。与此同时,我也发现了很多身上不足的地方,例如专业软件使用得不够熟练、编程能力不够、动手实践能力较弱等,我会在今后的学习实践中不断加以提高。
。
参考文献
[1]潘清明,丁左武,蒋伟,郑孙伟.防雨、防暴晒、夜晚能自动收缩的智能晾衣架设计[J].机电产品开发与创新,2007,06:79-81.
[2]吕广红,黄崇林,陈晓铭.基于AT89C52的智能晾衣架的设计[J].自动化与仪器仪表,2013,02:71-73.
[3]刘秋呈,顾凯燕,刘辉.感光智能晾衣架的设计[J].科学咨询(科技·管理),2013,05:67.
[4] 赵金利,肖兴达.单片机原理及应用教程[M].机械工业出版社,2007.
[5]三恒星科技.MCS-STM32单片机原理与应用实例.北京:电子工业出版设,2008.1
[6] 康华光主编.电子技术基础模拟部分. 第四版. 北京: 高等教育出版社,1999
[7] 阎石.数字电子技术基础[M]. 北京:高等教育出版社,1998.
[8] 林伸茂.80STM32单片机彻底研究——实习篇.北京:中国电力出版社,2006
嵌入式系统的研究内容较为宽泛,其中主要包括嵌入式硬件设计和软件设计。嵌入式软、硬件设计的教学内容的选取原则应是适合本科生学习、与课程学时匹配、并具有较好的课堂展示效果。因此嵌入式课程教学内容的合理选取对课程授课效率和学生的学习效果起着至关重要的作用。
(一)嵌入式系统课程硬件设计教学内容的选取
嵌入式系统硬件是嵌入式系统的重要组成部分,是嵌入式系统与实际环境交互的载体,其性能的优劣直接影响嵌入式系统的可靠性和实时性,决定嵌入式系统设计的成败,因此硬件设计在嵌入式系统设计中处于十分重要位置。在嵌入式硬件教学中,嵌入式课程的首先需要向学生介绍嵌入式系统的硬件在系统中的作用,并以日常生活中常见的嵌入式系统设备为例(例如手机、MP3播放器等等)直观的讲解嵌入式系统硬件结构,帮助学生建立嵌入式硬件系统的基本概念。在此基础上,嵌入式系统课程应着重讲授嵌入式系统硬件体系结构,从硬件体系结构的三个层次给学生讲解嵌入式系统硬件设计。
1.嵌入式处理器,它是嵌入式系统的核心部件,负责整个嵌入式系统的运行。嵌入式处理器选型原则是硬件设计的重要教学内容之一,嵌入式系统课程应能引导学生了解处理器选型时应考虑的因素,如处理器性能、价格以及可获得的技术支持等等,培养学生根据种嵌入式处理器的特点和实际工程需要对处理器选型能力[3],为其后续嵌入式硬件设计的学习奠定基础。
2.嵌入式系统的电路,主要包括嵌入式系统存储器、时钟电路、数据端口、复位电路和系统电源电路等等,其中,时钟电路、复位电路和系统电源电路为嵌入式系统最基本单元,具有这三个基本单元和处理器单元的系统即可正常工作,也称其为嵌入式最小系统。嵌入式课程应能帮助学生了解嵌入式系统电路种类、功能及其设计方法,建立嵌入式最小系统的概念。
3.嵌入式系统外部设备,主要是指嵌入式系统与真实环境交互的各种设备,包括外存储设备(如FlashCard)、IO设备(如键盘、鼠标等)、打印设备(如打印机)。在学生了解嵌入式系统硬件的三个层次的基础上,嵌入式课程应选择一款适合课堂教学的处理器,并具体的讲解嵌入式硬件的各个电路的设计内容、设计方法和设计目标。嵌入式课程硬件教学在选择处理器作为授课和研究对象时,应该考虑应用广泛且学习难度较低的嵌入式微控制器。在众多的嵌入式微处理器中,ST公司于2011年推出的基于Cortex-M4内核的STM32F104微处理器具有广阔的市场应用前景,广泛应用于工业控制、多媒体、精密仪器、家电等各个领域,STM32F104微处理器对于初学者来说具有开发简单、直观并且可获取丰富的网络支持的特点,因此本文以基于STM32F104微处理器的嵌入式系统为课程硬件教学内容,介绍STM32F104微处理器的主要特性,如处理的主频、字长等,并以框图形式介绍STM32F104微处理器的内部结构和片上的各个功能模块,如片上内存、片上AD和DA转换器、各种通信接口等。同时,任课教师应指导学生如何阅读芯片的英文数据手册,掌握英文数据手册的章节安排和阅读方法,提高学生英文文献的阅读水平,并能从中快速获取芯片的主要性能指标。在嵌入式系统电路设计教学中,嵌入式课程必须着重强调系统的电源电路设计、复位电路设计以及时钟电路设计。
嵌入式电源电路设计教学主要向学生介绍电源电路的两种类型,即线性电源和开关电源,以及两种电源电路的拓扑结构、工作原理和各自特点以及应用场合,并在此基础上向学生介绍2~3种常用的电源控制芯片,如线性电源常采用LM7805、AMS1117-3.3等线性稳压芯片,开关电源则常采用LM2596、MP2359等开关电源芯片,简单介绍各个电源芯片的主要参数,如输入电压范围、输出电流等参数等。嵌入式系统时钟电路设计的课程教学主要向学生介绍两种类型的时钟电路,即无源晶体和有源晶振电路,讲解这两种类型时钟的特点和应用场合以及时钟电路设计的注意的事项,并用多媒体给出两种类型电路结构,向学生分析电路中各个元件的作用。嵌入式系统复位电路教学需向学生介绍两种类型的嵌入式复位电路,即阻容式复位和专用复位芯片复位,介绍两种电路的特点,同时介绍几款常用的专用复位芯片(如MAX811),让学生掌握嵌入式系统复位电路的设计方法。如果说嵌入式处理器是嵌入式系统的大脑,那么嵌入式系统的IO设备是嵌入式系统的四肢,是和现实世界交互的设备,嵌入式系统IO设备的教学需引导学生建立嵌入式系统中IO设备的概念,并举例说明嵌入式系统常用的一些IO设备,如嵌入式显示屏、键盘、打印机等。在IO设备的教学中,课程应首先介绍IO设备与嵌入式处理器的接口技术,分别介绍并行接口和串行接口,指导学生学习接口类型,并根据实际工程需要选择不同接口类型的IO设备,同时引导学生掌握各种接口的时序,并能够熟悉几种常用的接口类型,如I2C、Intel式并行口、SPI等接口以及各种接口的数据传输速率和物理接线数目等。
(二)嵌入式课程软件设计教学内容的选取
嵌入式软件是嵌入式系统的灵魂,与嵌入式硬件一起作为嵌入式设计的核心内容,因此,嵌入式系统软件设计是嵌入式课程授课的重要内容之一。嵌入式软件教学应注重培养学生的嵌入式软件开发能力,向学生讲解嵌入式系统的软件体系结构,即嵌入式软件可分为应用程序、应用程序接口、嵌入式操作系统、硬件设备驱动程序,加强学生对各个软件层次的把握。嵌入式软件设计授课需要向学生讲授各软件层的功能与特点、嵌入式软件开发所需要具备的先行课程知识,明确嵌入式实时操作系统是嵌入式软件的核心,引导学生根据嵌入式系统的软件体系结构学会软件设计的分工。嵌入式课程应能够向学生介绍几种目前较为流行的嵌入式操作系统,让学生对目前常用的嵌入式操作系统的发展状况及其主要特点有所了解。目前,嵌入式实时操作系统可分为两种类型,即商用型和免费型,商用型操作系统有Vxworks、Wince、PalmOS等,商用型操作系统功能稳定、可靠,有完善的技术支持和售后服务,但是价格昂贵;免费型操作系统在价格方面具有较大的优势,主要以Linux为代表,嵌入式系统课程应要求学生能够熟悉并掌握一种嵌入式操作系统的基本原理和使用方法。
μC/OS-II嵌入式操作系统是一种规模较小和源码开放的嵌入式操作系统,比较适合初学者学习和课堂教学,特别是学生在具备μC/OS-II操作系统基础和学习经验之后,再学习某些大型的操作系统(如嵌入式Linux)则可大大提高学习效率并获得较好的学习效果,因此本文选取μC/OS-II操作系统作为嵌入式操作系统的授课内容和研究对象,并以μC/OS-II操作系统为例讲授基于嵌入式系统的应用程序开发、驱动程序开发以及图形用户接口的使用方法。同时,嵌入式软件教学需向学生介绍嵌入式软件开发工具和开发平台,其中主要介绍交叉开发系统调试结构和使用方法。嵌入式交叉开发系统由宿主机系统、通信系统和目标机系统构成[4],嵌入式课程教学需要帮助学生直观的了解嵌入式软件开发的工作形式、嵌入式软件开发需要具备哪些条件和做哪些准备工作。同时,嵌入式课程需要向学生讲解1~2种嵌入式微处理器的上位机开发软件,目前STM32F104微处理器的软件开发普遍采用KeilμVision开发软件以及JLINK仿真器,则嵌入式课程需要向学生介绍KeilμVision开发环境设置方法、工程项目的建立方法、JLINK仿真器硬件连接方式以及驱动程序安装方法,使得学生能够自主构建基于STM32F104微处理器的嵌入式系统软、硬件开发平台,并能在此开发平台上新建工程项目、下载程序、仿真运行、断点跟踪调试等。
二、嵌入式系统教学方式的优化
在嵌入式系统教学过程中,任课教师必须研究和制定一套有效的教学方式,合理安排课程授课内容顺序,注重知识的承前启后,对嵌入式系统的一些先行课的相关章节知识点需要进行必要的复习,比如在硬件设计中,需复习模拟电路、数字电路、微机原理及接口技术等课程的相关知识点,在嵌入式软件设计教学中,需复习C语言程序设计、操作系统、数据结构等课程,为嵌入式系统课程作必要的准备。
(一)嵌入式课程硬件设计教学方式改革
嵌入式硬件设计教学中,任课教师可在课堂上准备一些实验设备[5],将软、硬件实验直接融合到理论课程的教学中,在课堂上首先向学生展示一块嵌入式系统硬件电路板,如STM32F104应用开发电路板,让学生近距离观察电路结构和板上的各种元器件,并作简要介绍,使得学生能够直观的认识嵌入式系统硬件电路,然后以提问的方式引导学生对电路图如何设计和生成产生兴趣,授课教师此时可介绍嵌入式硬件设计步骤以及电路设计的相关软件,让学生了解嵌入式硬件原理图和印制电路板图(PCB图)设计过程和设计方法。在此基础上,授课教师在课堂上以一个简单的嵌入式电路系统为例,现场安装Protel电路图绘制软件,讲解并演示电路原理图和PCB图的绘制步骤和方法。在电路图设计的演示之后,授课教师应给学生讲解硬件电路的调试过程和调试方法,让学生掌握嵌入式电源电路、时钟电路、接口电路的调试方法,并在课堂上现场演示硬件调试,最后以处理器的一个IO接口控制的LED灯闪烁为例,编写LED灯闪烁的例程,让学生直观的把握嵌入式系统调试方法。
(二)嵌入式课程软件设计教学方式优化
嵌入式软件教学的主要内容是嵌入式操作系统的移植方法、使用方法和应用程序编写。授课教师在讲解嵌入式操作系统的使用方法时,可在课堂上利用多媒体教学手段基于μC/OS-II的操作系统编写应用程序,在操作系统的每个任务的主循环中添加断点,让学生直观的感受操作系统多任务切换机制,并以一个简单的软件例程,要求学生现场进行构思,开展广泛的交流,然后将学生构思的各种方案在多媒体上进行现场编程实现、输出结果,让学生对自己方案的正确性、合理性有直观的认识和理解,并促使其对方案进行修正,以使学生迅速掌握μC/OS-II的操作系统的使用方法和应用程序设计方法。
三、嵌入式系统实验和实践教学的优化
实验教学和实践教学是教学过程中重要环节,可提高学生对理论知识的理解和把握,培养学生工程实践能力、独立思考解决问题的能力。学生可以通过实验来验证理论课程知识,对于课堂上的例程,学生可以通过自己的学习和理解对其进行修改,然后进行实验,验证其修改正确与否,这是一种极其有效的学习方法。嵌入式系统课程设计是嵌入式系统课程的工程实践环节,旨在训练学生的动手实践能力和培养学生的方案论证能力、工程项目设计和开发能力,适应学生就业和社会需求。
(一)嵌入式课程实验教学
嵌入式实验教学需要向学生详细介绍实验系统的拓扑结构、电原理图和系统的软件开发环境,并以一个简单的例程引导学生熟悉和如何使用实验系统的硬件电路和软件开发环境以及实验操作步骤。实验课程的章节内容安排应遵循由简入繁的原则,明确实验方法、实验步骤和实验目的,引导学生从一个简单的IO端口控制LED灯闪烁的例程开始学习,完成从新建工程、编写程序、下载程序调试、观看实验结果的实验过程,再以2~3个难度逐步增加的实验,明确实验目标(即实验成功后应看到的实验现象),激发学生的学习和动手实验的兴趣。学生在实验期间遇到问题,指导教师应积极引导学生检查问题并解决问题,而并非直接告诉学生答案,培养学生独立思考和解决问题的能力。在学生正确完成实验后,指导教师应积极鼓励学生采用多种不同的软件算法完成同一个实验,提高学生的编程能力和拓宽学生的视野。在完成实验的基础上,指导教师应鼓励学生在现有实验系统的基础上开发一些简单的电子设备,如数字电子钟、数字温度计、计算器等,让学生切身的感受到嵌入式技术的广泛用途。
(二)嵌入式课程设计教学
嵌入式系统作为一门应用性很强的课程,进行项目化教学是课程设计教学改革的必由之路[6]。本文采用项目开发为驱动的课程设计形式,引导学生自主学习嵌入式硬件设计、操作系统移植、驱动设计、应用程序设计,以一个完整的项目开发作为课程设计任务,让学生全面掌握嵌入式系统设计的全部过程,巩固所学的理论知识。在课程设计选题方面,指导教师可提供一定数量设计课题,设计课题需具备较高的综合性和可行性,难度适中,要能够达到训练学生嵌入式方案论证能力和软、硬件设计能力的目的。学生也可根据自身的知识特点拟定课题,经指导教师审核修改后进行课程设计,同样,自拟课题也要达到综合训练的目的。课程设计的选题和实施应能培养学生的嵌入式方案论证和制定项目具体实施计划的能力,规范学生的嵌入式项目开发方法和开发步骤。在嵌入式系统课程设计结束后,学校应提倡以学院为单位组织嵌入式系统设计大赛,进一步锻炼学生嵌入式工程实践能力,达到学以致用的目的。
四、结论
摘要:本文针对“嵌入式系统设计”的教学实践,将“嵌入式系统设计”系列课程实践教学分为三个层面,对课程内容、实践教学方案和实践教学环节等进行探索,确保学生在掌握专业知识的同时,提高自主学习与自主创新的工程实践能力,真正做到学以致用。
关键词:嵌入式系统设计;实践教学;创新
中图分类号:G6420.0 文献标识码:A
嵌入式系统是相对于通用计算机系统提出的“嵌入式计算机系统”,它是将先进的计算机技术、半导体技术、电子技术与各个行业的具体应用相结合后的产物,是一个技术密集、高度分散、不断创新的知识集成系统,被广泛应用于通信设备、信息家电、工业控制和交通等方面。作为“嵌入式系统设计”的教学应是以应用为中心,结合实践与应用的一系列课程教学,它是本科生在四年学习中进行创新性实践的有力保证。“嵌入式系统设计”需要设计者具有较强的综合理论知识和动手能力,是对设计者综合能力与创新能力的考查。因此,在以“应用型”人才培养为目标的理工科院校的实践教学中应特别重视学生嵌入式系统设计能力的培养,加强实践教学环节,提高学生实践能力、职业技能与就业能力。在此结合地方高校通信工程专业的特点对学生“嵌入式系统设计”能力培养的相关课程内容、实践教学方案和实践教学环节等进行探索,探讨地方高校理工科学生创新型人才培养体系,培养出理论与实践相结合的创新性人才。
1嵌入式系统设计实践教学层面
嵌入式系统设计是复合型的新兴技术[1][2]。基于嵌入式系统设计的课程既与计算机、电子、通信、自动控制技术相关的专业课程有关,又与具体的应用背景有关。理工科各专业需结合专业特点和嵌入式系统在专业中的应用进行嵌入式系统设计的研究与教学,根据专业特色开设先进的、具有深入内容的嵌入式系统设计课程,使学生具备创新能力和解决实际问题的能力,所以在进行嵌入式系统设计人才培养时必须重点把握实践和创新这两个方面,注意科学对技术所起的基础支持作用,要从嵌入式系统设计动态发展出发,开设具有嵌入式系统设计体系的课程,开设有关含有信息论、系统理论及控制理论等基本内容交叉融合的课程,拓宽学生在专业学习中视野与思维的深度和广度,这样才能培养出学生的创新能力。根据嵌入式系统设计的实践可以按照图1所示三个层面进行相关课程的配置。
层面一是培养学生具备能够针对某个具体嵌入式系统软、硬件平台进行二次开发的能力。要求学生掌握应用系统的设计和开发技能,属于嵌入式系统教学的最低层。集中在微处理器(如MCS51系列、TMS320系列、ARM系列)的体系结构及其语言、接口的工作原理;嵌入式应用系统开发工具、开发语言、交叉编译环境和调试工具的使用。在此
方面以单片机芯片及其开发应用、DSP芯片及其开发应用和ARM微处理器及其开发应用展开教学,并在实践环节对学生动手制作自已所期望的单片机、DSP和ARM的应用系统进行作品展示,并将作品作为成绩考核的依据。
层面二是培养学生具备能够进行嵌入式系统平台设计与开发的能力。不仅要求学生掌握硬件系统的设计与开发技能,还应该掌握软件系统的设计与开发技能。促使学生掌握嵌入式系统体系结构后,掌握嵌入式操作系统的原理及其在特定硬件平台上的移植。使学生具备特定硬件平台下的嵌入式系统裁剪、移植,板载资源的初始化与驱动及外设驱动程序的设计和嵌入式数据库系统开发技能,注重嵌入式系统图形界面和网络通信的设计与开发。在层面一的基础上进行嵌入式操作系统及应用软件开发的教学,并在实践环节对学生动手制作自已所期望的具有图形界面操作、外设驱动和数据信息管理等功能的单片机、DSP和ARM应用系统进行作品展示,并将作品作为成绩考核的依据。
层面三是培养学生具备能够进行基于SOPC嵌入式系统IP内核设计和开发的能力。要求学生在掌握前两层面的基础上,让学生能够进行基于FPGA的SOC系统的设计与开发训练,并结合嵌入式系统的发展进行有关计算机体系结构等理论研究。促使学生结合EDA设计、嵌入式系统优化、计算机体系结构理论、微电子等学科知识,将微处理器等以IP内核的方式植入FPGA中,利用FPGA的可编程逻辑资源,按照系统功能需求来添加接口功能模块,既能实现目标系统功能,又能降低系统的成本和功耗。这样就使得FPGA灵活的硬件设计与处理器的强大软件功能有机地结合在一起,高效地实现SOPC嵌入式系统。实践环节以学生参加嵌入式系统设计竞赛、科研创新、发明制作等实践进行作品展示,并将作品作为创新学分修读的依据。
2嵌入式系统设计实践教学方案
(1) 学生实践能力设计
“嵌入式系统设计”系列课程的教学内容应包括嵌入式系统硬件与软件的设计,在以电路与系统集成、计算机信息系统集成及计算机辅助设计与仿真为工程设计基础教学的同时,加强学生在工程设计能力方面的培养,提高学生的电路设计和软件开发能力。因而,通信工程本科专业的实践教学可在基于现代电子技术进行信息的采集、传输、处理、检测、控制和现代通信网工程应用的同时,以信息与通信工程技术为主线,融电子科学与技术、计算机科学与技术、控制科学与工程技术于一体,构建通信与信息系统和信号与信息处理学科方向,使学生实践能力结构如图2所示。
(2) 实践教学方案
在教学中注重理论与实践课程相结合,加强实践与设计课程,设置完善的实践课程体系,强化学生的技能训练,开展工程设计。低年级课程要特别强调基础理论的学习,基本技能的训练;高年级逐步加强技术性,实用性课程,关注信息工业发展的需要。可结合本校学术研究、参与企事业科研及就业市场的方向,分设若干个课程组及专题设计,有利于学生专业化水平的提高,并缩小大学教育与企业要求之间的期望差距。其实践教学具体实施可参考图3进行。
第一学期培养学生认识、发现、探索实践的主动创新思维模式。如通过军事理论的学习,注重介绍通信技术在现代军事中的应用;通过工程制图的学习,以电子CAD为导引学习AutoCAD、Protel等绘图软件的应用;通过认识实习,下企业进行现代通信方式及通信器械的认识学习。
第二学期培养学生工程创新中结构设计及可视化界面编写能力。如在以国家级计算机等级考核展开教学的同时,注重学生计算机语言编程基础能力的培养,注重VB、VC、VF、Delphi、Java等编程的导向学习。
第三学期培养学生可视化界面及数据库管理信息系统的开发设计能力,进行有线与无线通信中电子测量仪器设备的使用。
第四学期培养学生基于单片机与EDA的嵌入式系统设计开发能力。在加强电子工艺实践的同时,以数字系统与逻辑设计教学为基础,加强硬件描述语言与电子技术系统级的融合,基本实现计算机软件到硬件的实践创新技能。
第五学期培养学生基于DSP的嵌入式系统设计开发能力,加强生产实践实习。在各专业课程学习的过程中,以计算机硬件与计算机软件设计来体现信息与通信工程学科下通信与信息系统和信号与信息处理学科方向共性的实践操作创新设计。
第六学期培养学生基于ARM的嵌入式系统设计开发能力。以通信与信息系统和信号与信息处理学科方向构建专业综合课程设计。
第七学期培养学生基于SOPC的嵌入式系统设计开发能力。在通信与信息系统学科方向以现代通信网络系统为导向,构建有线通信与无线通信的通信系统课程设计。在信号与信息处理学科方向以语音、图像等多媒体信号与信息为导向,构建语音与图像信号与信息工程应用的通信系统课程设计。
第八学期培养学生综合的嵌入式系统设计开发能力。通过专题进行企事业单位上岗实践,加强毕业设计的理论与实践相结合,为毕业后就能上岗打下基础。
在以上各环节中除了完成课程实践教学外,还要求学生在课外必须参与科技实践及各项竞赛活动或提供自已的创意作品以取得一定的创新学分。因此在“嵌入式系统设计”实践教学与创新型人才培养体系建设中,要综合考虑实验、实习、课程设计、毕业设计及课外科技实践活动等实践环节,统筹实践教学体系,使学生能从课内到课外,充分发挥课外科技活动提高自身工程素质。
3嵌入式系统设计实践教学支持
以嵌入式系统设计为指引,将理论与实践进行有效合理的整合,应用现代教育技术,结合工程实践进行分解,变成可供实际推广操作的学习任务,辅以必要的教育技术支持手段(开发教材、课件、培训计划、教学设计、实验设计、必要的评估手段)强调学生自主学习,在实际工程环境中掌握和内化工程的理念。
(1) 开放实验室
在以“学生是主体,教师是主导” 的基础上,为了使学生在高等教育中获取更多的实用知识和创新技能,开辟与课程配套的网上资源系统,鼓励学生遇到问题后上网查找资料,采用基于Web的开放实践教学管理系统[3]。对实验室教学信息进行综合分析,建立开放式实践教学平台和开放式实践教学管理体系,通过Web页完成学生开放实验的各个环节管理,提高教学质量和办学效益。使学生由实验申请到实验结束完全网络化管理,有利于实验设备的充分利用,也有利于学生思维能力、设计能力、知识综合运用能力和创新能力的培养。
实验室开放的对象为所有在校学生,主要以设计性、综合性及研究创新性的实验项目开放为主,培养学生综合运用所学基础理论和专业知识解决复杂问题的能力。在实验室内部的各实验分室可根据自身特点和教学实际需要,采取定时开放与网上预约开放两种不同的模式向学生开放。
所谓定时开放是根据教学安排,在指定时间内向学生全面开放。理论课教师和实践课教师根据实验室仪器设备情况,结合课程内容,确定教学计划以外的自选实践项目。学生可以根据自己的兴趣爱好对实践项目进行创新设计组合成综合型、设计型实践课题,在课外独立完成自己的课题方案设计并经指导教师审核通过,在实践过程中学生必须独立完成实践并撰写上传实验报告。
所谓网上预约开放是学生提前申请拟做实践项目和所需仪器设备及元器件,由实验室根据学生人数、实践内容和网上预约时间安排实践设备、器材和指导教师。学生根据实验室的仪器设备的条件自行拟定科技活动课题并提供方案,在网上预约相应的实验室与指导教师,开展创新发明、科技制作、论文撰写等实践活动。在实践过程中学生都必须进行独立的思考,查阅相关文献资料,综合多方面的知识和技能,在实践设备和操作环节上不受任何限制的情况下自行分析、设计和调试实践系统,最终得出实践结果并撰写上传实践报告或论文。
(2) 实践教学组织
联系专业提供工程设计课题,结合前面所讲的教学层面与科研、科技竞赛工作开展学生设计性实践项目,激发学生的创新热情,如将行走机器人的制作分解为语音识别、图像识别、高精密电机进给控制等实践项目。强化实践过程,选派具有实践经验的教师参与指导,有助于培养学生的创新能力,如通过提供的对比示例来启发学生,增强学生的自信心。在实验方法与实验措施上实现多元化,使学生在不断改进、反复锻炼中提高分析问题、解决问题的能力,在实践过程中真正做到举一反三。
学生须进行嵌入式系统的软硬件设计,为了使实践内容和教学内容联系得更紧密,可结合前面所讲的教学层面要求学生设计实践核心板与扩展板。核心板提供相对应微处理器的最小系统,包括了处理器、RAM、ROM、寄存器接口等;扩展板提供电源、LCD显示、串口、USB、以太网口等模块。
改革课程考核方式,加强学生动手能力的培养,单片机技术、DSP技术、EDA技术、嵌入式系统、可视化程序设计等技术课程的考核成绩全部采用实践环节,实验占总成绩的40%,课程设计(要求有硬件和软件制作)占总成绩的40%,创意制作占总成绩的20%。学生在完成实验基础上,完成选定题目的课程设计,实验与课程设计题目每年不断更新,学生可以根据自身掌握的程度选择不同难度的题目,分值依据题目难易程度而定。
这样将“嵌入式系统设计”系列课程实践教学融合到地方理工科院校的人才培养体系中。通过加强开放实验与科技制作及科技竞赛等创新学分的管理,改革相关课程考核方式,综合考虑知识、能力和素质三者的关系,统筹实践教学体系,提供丰富的工程设计课题,加强学生对“嵌入式系统设计”的工程训练,促进大学教育的创新性人才培养。
参 考 文 献
[1] 沈连丰,宋铁成,叶芝慧等. 嵌入式系统及其开发应用[M]. 北京:电子工业出版社,2005.
【关键词】嵌入式技术课程 教学改革 目标驱动法
【中图分类号】G 【文献标识码】A
【文章编号】0450-9889(2016)11C-0070-03
随着信息技术的发展,各高校的电子信息工程、通信工程、电子科学技术等专业都开设了嵌入式技术课程,目的是为了使学生掌握嵌入式系统的硬件和软件设计技术,具备一定的实践经验,为毕业后从事嵌入式技术相关工作打下基础。嵌入式技术课程传统的教学方法大多侧重于基础知识、基本原理学习,经典的教材都是从基本原理到处理器内部结构,再到指令系统,再到内部接口及功能电路,按照这一模式进行学习,学生把大量的时间花在原理的学习上,实践的内容比较少,导致学完课程后可能连最简单的程序都不会调试,无法学于致用。
近年来,我国越来越重视本科生实践能力的培养,提出培养工程型本科人才目标,嵌入式技术课程作为电子信息类专业一门实践性较强的课程,若还采用传统的理论教学为主的教学方式,培养出来的学生很难适应社会的需求,因此课程的教学改革势在必行。我们采用目标驱动的教学方法,缩减理论教学学时,增加实践教学学时,教学过程制定一些具有一定难度的小设计题目,作为目标让学生选择,促使学生在完成小课题的过程中遇到问题、分析问题和解决问题,在实践过程中学习和掌握嵌入式技术相关的知识。
一、嵌入式技术课程传统教学存在的问题
嵌入式技术课程以往的教学中,理论课时36学时,实验课时时,以老师在课堂授课为主、学生实验为辅。理论课教师教授时,学生还没有机会接触实物,学生听课往往无法把理论和实际应用联系起来,听课积极性、学习的主动性都不高,随后虽然安排有实验,但9个学时的实验内容是统一安排在实验室并限定时间内完成的,通常以验证性实验为主,这种模式学生参照讲义内容,虽然能完成实验,但没有机会和时间对实验内容和软件设计方法等进行更深入的研究和思考,学习效果不好,收效不大,与实际应用脱节。
二、基于目标驱动法的嵌入式技术课程教学改革实践
所谓目标驱动,就是在学生对课程内容有一定了解的前提下,由老师拟定一些小设计题目供学生选择,学生可2-3人为一组,根据自己的兴趣选择一个题目来完成。为实现这一教学改革目标,我们从嵌入式芯片选型、教材选择、实验板选择、小设计题目拟定、学生分组形式、时间安排、中期考核、期终考核验收等多个环节进行了改革。
(一)嵌入式处理器的选型及教材的选择。嵌入式处理器有ARM、PowerPC、MIPS、ColdFire和386EX等多种不同系列的产品,其中以ARM系列的占的市场份额最大,因此嵌入式技术的学习通常是以ARM为基础的。而ARM系列又可分为ARM7、ARM9、ARM11、Cortex等众多不同的子系列,作为初学者面对众多的、不同的类型嵌入式处理器,一般只能选择其中一个系列来进行学习和研究,在掌握某一系列的相关技术后,如果实际工作需要,再去研究或使用其他系列的嵌入式系统也是比较容易上手的。
传统的嵌入式技术课程一般基于ARM7系列嵌入式处理来开展教学,典型的教材有周立功编写的《ARM嵌入式系统基础教程》,以LPC2100系列的微控制器为核心,介绍嵌入式系统的基本概念、ARM7的体系结构、指令系统、LPC2100内部结构和接口等,虽然内容翔实,但教材侧重于基础知识和基本功能模块的学习,没有太多应用实例,与目前社会上主流的技术也有所脱节。也有部分高校基于ARM9系列嵌入式处理来开展教学,典型的教材有袁志勇编写的《嵌入式系统原理与应用技术》,以S3C2410嵌入式处理器为核心,介绍嵌入式系统硬件工作原理与接口应用技术、嵌入式程序设计及嵌入式Linux基础应用,学习门槛比较高,涉及比较复杂硬件内部结构和Linux操作系统,作为电子信息工程专业而言,不太合适。
针对传统教材及嵌入式处理器选择存在的不足,结合电子信息工作专业特点,我们对嵌入式技术课程的教材进行了调整,选用目前流行的Cortex-M3系列ARM处理器进行介绍,教材则选择张洋、刘军等编写的《原子教你玩STM32(库函数版)》。其中Cortex-M3系列为微控制类嵌入式芯片,内部集成了CPU、IO接口和众多功能模块,也可称之为高性能的单片机,体积小、功耗低、成本低,且具有较高性能和可靠性的特点。我们所选的教材,其内容分为硬件篇、软件篇和实战篇等共三大部分,特别是实战篇部分,设置了近40个实例(实验)内容,由简单到复杂,循序渐进,引导学生从实践出发,慢慢掌握STM32为核心的嵌入式系统开发方法,同时配套光盘包含所有实例的完整源码,方便学生自主学习时进行实验验证及研究。
(二)实验板的选择。嵌入式技术课程是一门实践性很强的课程,与实际应用结合较为紧密,单纯的理论学习不利于学生对知识的理解和掌握,学生必须在实验、课程设计等过程中学会分析问题、解决问题的方法,在编程实践中掌握嵌入式技术的实际应用技能,才能在毕业后较快地适应嵌入式技术研究与开发工作。在课程时间安排上,学生动手实验的课时可以占总课时的2/3,可见实践环节的重要性。
实验板是实验或课程设计题目工作开展的硬件基础,选择一块合适的实验板,有助于学生理解和掌握嵌入式系统基本开发流程,并能在该硬件平台上完成更多的应用开发。
在进行教学改革之前,我们一直使用周立功公司ARM7系列的LPC2104实验板,该实验板ARM芯片的片内资源较少,引出的IO接口也比较少,实验板上扩展的外部电路也比较少,能设计的实验内容也相对较少。针对原有实验板存在的种种不足,我们选择了教材配套的“STM32战舰开发实验板”作为实验平台。该实验板以STM32F103ZET处理器为核心,具有超过100个可编程的GPIO供用户使用,板上还配置有外部Flash、外部RAM、TFT型LCD接口、触摸屏接口、摄像头接口、红外接口、键盘、LED等待数量众多的外部接口及电路,与教材内容完全配套,可对教材中近40个例程进行下载和验证,非常方便学生进行实验或设计。
(三)设计题目的拟定。如何制定设计题目是目标驱动法中很重要的一个环节,考虑到各个学生实际学习能力和水平会的差异,任课教师对所选的题目的难度要仔细斟酌、拿捏好尺度。如果拟定的题目难度过高,对于学习能力较差的学生而言,可能会不知道从何处下手,找不到思路,很难完成;如果拟定的题目难度过低,则对于学习能力较强的学生,可能不需要太多的努力,很轻松就完成了,学生的潜力没有得到充分的发挥,不利于他们学习能力的培养和实践水平提高,也不利于今后参加实际的项目研究与开发。为适应不同层次学生学习的需要,我们拟定的设计选题分为三个难度级别,每个级别1-2个题目,且不同难度级别的设计题目最高得分不相同,比如一级难度最高得分低于75分,二级难度最高得分低于85分,三级难度最高得分可达到95分,如果实际完成得很好的,可以超过95分。另外,对于第三级难度的题目,参考全国大学电子设计竞赛出题的形式,把题目要求分为基本部分和发挥部分,如果只选择完成基本部分时,相当二级难度,按二级难度来考核和评定成绩,如果同时完成了基本部分和发挥部分,则按三级难度来考核和评定成绩。这样学生就可以根据自己个人的实际情况,选择合适的难度级别的设计题目来完成,从而避免出现力不从心或者轻而易举的极端现象,每个学生都能在这门课上掌握一定的嵌入式技术知识,学习能力和实践水平获得一定的提高。
(四)学生分组形式。在开始进行题目设计工作之前,一般要将选课学生按2-3人一组进行分组,以便开展后续的设计工作。学生分组形式也会影响学生对于课程的学习效果,好的分组方式,同组同学之间可以相互促进,形成良好的氛围;不好的分组形式,可能不能很好地合作,不利于任务的完成。我们采用学生自由组合的方式来进行分组,所有选课同学以2-3人为一组进行组合,每组同学配发一块ARM开发板,开发板由各组的组长负责签领及保管。学生自由组合的分组形式的优点是:通常每个学生都会选择自己较为要好的、爱好兴趣相投的,或者认为学习能力比自己好一点的同学来进行组合,这样可以确保小组成员之间能够团结协作,相互促进,顺利完成老师下达的课程设计任务。
(五)时间安排。选课的学生中,除了个别学生提前接触或自学了ARM相关知识,大部分的学生都是刚开始接触ARM,对课程内容和学习方法不甚了解,所以课程学习分为三个阶段,分别是教师授课、实验验证、完成设计选题任务。第一阶段为教师授课,教师利用课程教学计划安排的理论课时,给学生讲解嵌入式技术的基础知识、ARM处理器的体系结构、嵌入式系统基本开发方法,并以较为简单的GPIO接口编程作为例子,介绍ARM的编程方法及开发工作软件的使用方法。通过第一阶段的学习,学生能够对嵌入式技术及实际设计有基本的认识。第二阶段为实验验证阶段,我们所选择的正点原子STM32教材的第三篇提供了数量众多的例程,且教材配套的光盘具有全部例程的完整源码,这些例程为学生实习和实践提供了很好的学习和参考,学生通过研究教材中实践部分内容中的例程,就可以了解ARM软件的框架结构和初步的软件设计方法。教材提供的实验例程多达40个,我们不可能要求学生全部都理解和掌握,在第二阶段,只要求学生选择其中的2个例程来研究,理解和掌握这个2个例程,并进行实验验证。第三阶段是完成小组选定题目的设计工作。
(六)中期考核。中期考核就是在学生完成了第一阶段和第二阶段的学习后,进行阶段性考核,中期考核的成绩占总评成绩的30%。以下是我们实际教学过程中,有关中期考核的要求和安排。
1.考核内容:每一组同学选择教材实践篇中的两个实验来进行验证(光盘中已经有参考例程),然后根据自己的理解,制作一个PPT,该PPT的内容包括实验名称、实验的内容、实现原理、关键代码、实验结果等。
2.考核方法:现场操作,完成实验验证;利用PPT讲解实验原理及方法。
3.考核时间:开课后第5-6周。
通过中期考核,学生建立了教材上的理论知识与实际应用的相互关系,基本掌握了基于STM32的嵌入式系统开发流程和方法。
(七)期终考核验收。考核环节必须严格把关,确保考核出学生实际的水平,才能倒逼学生平时用心去研究并完成所选题目的设计工作。中期考核和期终考核环节至关重要,是否能严格把关,直接关系到课程教学改革的成效。
学生根据第三阶段选定的目标,即设计题目,每个小组同学制订自己的工作计划,从分析设计题目开始,通过自觉、老师定时指导答疑等环节,学生掌握相关准备知识,然后制订设计方案。以正点原子的STM32实验为基础,外加适当的外部电路,从硬件设计、软件设计到基本功能模块调试,系统联调实现,最终综合合作完成设计题目。并在课程结束周,安排时间,集中进行考核验收。验收时要求提交课程设计作品1份和课程设计报告1份;每个同学独立演示(展示)设计作品,回答老师或同学的现场提问,教师根据完成情况进行评分,期终考核成绩占总评成绩的70%。
三、成效
2015年广西大学计算机与电子信息学院与广西广播电视技术中心开展嵌入式技术课程共建,邀请企业导师参加课程教学过程。在教学过程中,安排3个学时时间让企业工程技术人员给学生授课,介绍应用嵌入式技术的实际应用,以及广电中心基于嵌入式技术的研发课题。并请企业导师参与设计题目的拟订,结合企业需求,提供若干设计题目供学生选题。下一步计划将企业课题的开展带入毕业设计,拓展合作范围。企业的参与,更为有效地避免了理论与实践脱节,提高了学生的工程实践意识和学习热情与兴趣。
采用目标驱动教学方法后,每个小组拥有一块实验板,以完成设计题目为目标,加上具有丰富的例程,学生不需要等到实验课才有机会接触实物,而是随时都可以利用实验板进行设计题目的研究工作,学生参与的积极性高。同时,通过优秀同学的带动,绝大部分同学都能掌握嵌入式系统设计和应用的相关知识和基本技能,初步掌握基于STM32的嵌入式系统的硬件设计和软件开发方法,在参加全国大学生电子设计大赛、广西大学生电子设计大赛过程中,很多学生都能自觉地使用STM32来实现自己的赛题设计任务。
【参考文献】
[1]朱天元.浅谈嵌入式实验教学改革[J].教育科学,2009(24)
[2]胡威,郭宏,蒋F,等.面向嵌入式系统的本科/研究生连续式课程建设研究[J].现代企教育,2014(22)
[3]黄福莹,黎相成,何华光.嵌入式技术课程的教学探讨[J].广西大学学报(哲学社会科学版,2007(S1)
[4]贺德强,刘旗扬,王勇.“微机原理与接口技术”课程教学改革方法研究[J].广西大学学报(哲学社会科学版),2009(S1)
[5]黄勇.计算机专业嵌入式技术方向课程体系的探索[J].农业网络信息,2010(11)
【教改项目】广西高等教育本科教学改革工程项目(2015JGA126);广西高等教育本科教学改革工程项目(2015JGB123)
中图分类号:G642
0 引 言
大规模在线开放课程(massive open online course, MOOC)是基于课程与教学以及网络和移动智能技术发展起来的新兴在线课程形式。MOOC是一种全新的、更公平的教育模式,它借助互联网,通过MOOC平台的课程讲座视频、嵌入式课程进行测试与评估以及师生在线互动,教与学随时随地都可以发生[1]。然而,MOOC在迅速发展的同时,由于其自身存在的一些不可避免的问题,使得MOOC饱受争议。没有规模限制、没有先修条件、MOOC注册率高而完成率低以及师生不能深入交流等问题日渐凸显,且难以得到有效解决[2]。因此,MOOC被不断改进,许多新的教学模式应用到MOOC中,弥补之前MOOC的不足,超越了原有的MOOC模式,MOOC已经进入后MOOC时代。
在后 MOOC时代涌现的一些新样式中,SPOC最为典型。SPOC(small private online courses,小规模限制性在线课程)表示小型的、私有的、在线课程,它是针对MOOC来说的,这一概念最早是由美国加州大学伯克利分校的阿曼多?福克斯教授提出的[3]。与 MOOC相比,SPOC吸收和传承 MOOC的先进思想,将 MOOC的潜能更好地发挥出来,变革传统的教学结构,实现对现行课堂的有效翻转,最终提高教学质量。SPOC把学习的人数进行了限制,通常限定在几十人到几百人之间,不同于MOOC同一课程拥有注册人数几十万甚至几百万,另外,SPOC在MOOC的基础上增加了教师和学生面对面的交流。相比之下, SPOC的学习活动更加灵活高效,能满足学习者个性化学习的需求[4]。
嵌入式课程是信息技术行业的核心课程,在国外信息类人才培养中尤其得到重视。目前,嵌入式软件市场的规模剧增,已形成一个充满商机的巨大产业,并且成为整个软件业的发展支柱[5]。在家电、手机、各种数码产品等都向智能化方向发展的今天,嵌入式技术越来越成为当前最热门、最具发展前景的IT应用领域,吸引越来越多的工程师投入到这一行业[6]。本文研究嵌入式课程教学模式,通过SPOC充分利用MOOC平台上的教学视频资源,并与翻转课堂有机结合应用到课堂教学中。SPOC与翻转课堂相结合的方式可以提高学生的学习主动性、增强学生的动手能力、培养学生的创新意识和创新能力,使学生能够独立地进行项目开发和编程。
1 传统教学模式存在的问题
嵌入式课程是计算机课程的重要组成部分,嵌入式课程包含Linux系统应用、嵌入式系统设计和嵌入式系统案例分析等实践性较强的多门课程,这些课程采用传统的教学模式存在以下问题:
(1)在传统的教学模式下,老师的授课时间有限,只能单方面把课程的内容传授给学生,没有与学生交流的机会。
(2)部分学生存在惰性,老师讲多少就听多少,并不实际动手练习,导致仅理解理论内容,却不会实际应用。
(3)大部分学生在实践活动中虎头蛇尾,一遇到困难就轻易放弃,没有解决难题的决心,从而也无法真正的掌握和理解所学知识。
(4)传统的教学模式只重视成绩和分数,泯灭了学生动手实践的欲望,导致学生缺乏创新能力。
SPOC和翻转课堂相结合的教学模式提供一个新的思路:如果学生能够在课前完成相关知识的学习,就会减少教师课堂讲授时间,从而留给学生更多的时间进行实践、参与交流讨论和获得教师的指导,解决学生只停留在对理论内容的理解、动手机会少、不会将所学内容应用到实际的项目开发中去的问题。
2 基于SPOC和翻转课堂的嵌入式课程教学方法
基于SPOC和翻转课堂的嵌入式课程教学方法可以分为四个阶段:前端分析、课程设计、课堂教学和评价,具体模式如图1所示。
2.1 前端分析
任何课程开始前都必须进行前端分析,这样设计出的教学资源才具有针对性、个性化,因此,前端分析对一门课程设计的成功与否起到非常关键的作用。本文中,前端分析涉及3个要素,分别为学习对象、教学内容和学习环境。
学习对象主要包括学生年级、学生已经学过的相关课程以及对学过课程的掌握情况。嵌入式课程分为硬件课程和软件课程,因此课程的设置应该分为3个阶段:第1阶段为嵌入式硬件开发,作为嵌入式软件开发的平台基础;第2阶段为嵌入式软件开发;第3阶段为嵌入式综合开发实践。单片机原理等基础理论课程是学好嵌入式硬件开发的基础,嵌入式软件课程包括嵌入式操作系统和Linux系统应用等课程,只有将以上课程学好才能进行嵌入式综合开发实践。
教学内容研究应该从理论和实际开发能力两方面入手。理论方面,对于C语言、数据库、数据结构、单片机原理、计算机网络等前导课程,教师要在保证理论授课学时的前提下,适当增加或强调嵌入式开发中必需的知识基础,以保证后续嵌入式开发课程的顺利进行。在实际开发能力方面,教师要强化和规范嵌入式硬件课程、嵌入式软件课程、嵌入式综合开发实践课程中的实践环节,为学生配备齐全的软、硬件开发环境,让学生通过动手实践掌握所学的内容。
学习环境主要包括传统的课堂教学环境和基于MOOC的在线学习环境,将课堂教学和在线学习结合起来,提高教学质量。
2.2 课程设计
课程设计主要包括教学视频、教学大纲、拓展资源、测试作业几个部分。根据教学需要,教师可以充分利用MOOC平台上优质丰富的教学资源,对其进行编辑和整合,设计成富有逻辑结构的视频资源上传到网络教学平台。教师还可以将电影录像、电子书、其他资料等作为拓展资源提供给学生。测试作业包含测试题和大作业,测试题至关重要,学生可以带着问题去观看教?W视频,也可以看完教学视频后做测试题,这样有助于学生对重点、难点的理解与掌握,进而提高学生的学习效率和学习质量;大作业用来综合性的测试学生的学习情况,需要由一组学生来共同完成,大家一起讨论,相互激发灵感,这种方式可以提高学生们的创新意识和团队意识。
2.3 课堂教学
课堂教学阶段在整个教学模式中的地位十分重要。在课程开始前,根据学生原有的知识基础、学习个性和风格等信息将学生进行异质分组,并选出每个学习小组的组长。
课堂教学的实施过程借鉴翻转课堂模式,翻转课堂是推动师生互动、激发学生学习兴趣的有力手段,真正体现“以学生为中心”的教育理念。本文将翻转课堂分为两种形式:一种侧重于分析本次课的重点和难点;另一种侧重于对实际项目进行分析和讲解。
第一种形式要求学生在课前通过MOOC平台上提供的教学视频,学习嵌入式课程的基础知识,然后,通过完成测试题验证对知识点的掌握情况。在课堂教学过程中,学生针对教师在课前提出的问题进行讨论,并采用轮流的方式对本次课的重点和难点进行讲解。在该门课程的课堂教学中,每名学生至少有一次机会讲解知识点。最后,教师对课程内容的重点、难点进行说明,并对知识内容进行系统化的总结和梳理。
第二?N形式通过大作业的方式,以小组为单位,共同完成一个项目。大作业是对学生学习本门课程的综合性考察,嵌入式软件开发的作业可以是多进程程序编写、管道通信、Linux环境下“生产者与消费者”的实现等。嵌入式实践开发的作业可以是智能家居、智能停车场等。在课堂教学过程中,小组组内成员之间、各小组成员之间针对大作业的内容相互讨论,并每组选出一个代表对自己组的作业完成情况进行汇报展示,学生之间共同鉴赏、互相评价。教师可以在每名学生展示作品或学习成果后进行逐一评价,也可在所有学生成果展示完毕后做最后的总结,教师最终对学生的学习成果进行总结和评价。
课后主要是学生对学习进行复习和巩固,检验自己掌握知识的情况,分享课中学习的感悟与收获。教师则针对大家课上提出的问题进行反思和总结,对课程知识进行系统化的梳理和总结,并根据学生课上的表现、反应以及学生在学习过程中的意见对课前、课中阶段进行及时调整。
2.4 评 价
评价环节既要体现评价主体的多元化又要注重评价样式的多样化,关注学生的效果,采用形成性评价和总结性评价两种评价相结合的方式。
形成性评价包括多个因素:登录网络教学平台的次数、下载教学视频的次数、课堂出勤情况、课堂讨论的积极程度以及小组成员间互评等多个方面。小组成员间互评主要从学生与对小组其他成员讨论问题的情况、参与小组活动情况以及对小组的贡献等方面出发,对自己和小组成员作出评价。这种评价方式有利于学生更好地参与到小组学习活动中,能够提高组内成员间合作学习的积极性,同时,教师对学生的评价也同等重要,教师应该根据以上因素对学生进行评价,给出学生的平时成绩。
总结性评价则主要包括学生的平时测验、作业完成质量和期末考试成绩。最后,教师根据形成性评价和总结性评价的一定比例给学生最终量化分数。
关键词:应用型嵌入式人才;能力晋级阶梯;课程体系
1研究背景
嵌入式系统是以微控制器为核心,嵌入到产品或设备中,以实现功能的数字化和智能化的系统。它既是相关产品设备的智能核心,也是这些产品设备实现创新和增值的关键。嵌入式系统的应用十分广泛,覆盖了消费类电子、智能家电、工业控制、通讯网络、仪器仪表、汽车电子等多个领域。与此同时,社会对嵌入式人才的需求越来越旺盛,对嵌入式专业人才的知识、能力和素质提出了更高的要求[1-4]。
为了适应市场需求,不少高校近年在IT类专业中开设了嵌入式系统相关课程或设置了嵌入式专业方向,但大多只是在传统的IT类课程基础上增设一些嵌入式课程,并没有形成比较完整的课程体系。如果从嵌入式应用开发人才培养角度来看,可以说开设了很多与现实脱节、与嵌入式应用开发能力培养无关的课程,培养的学生在专业技能、实践能力、创新意识等方面都不能满足用人单位的要求[2-4]。因此,如何适应形势的变化和发展,提高嵌入式专业人才的培养水平,培养社会需要的高素质应用型嵌入式人才,是一个亟待研究的课题。
为了拓宽计算机专业学生的就业面,提升学生的就业能力和就业质量,从2002年开始,电子科技大学中山学院建设了嵌入式系统实验室,并以选修课形式开设了嵌入式系统概论课程。从2006年开始,为了适应中山市及珠三角电子信息产业的特点,我们将计算机科学与技术专业定位为嵌入式系统及其应用方向,确定本专业方向的培养目标是培养具备计算机工程技术领域的基本理论、基本知识和基本技能,扎实掌握嵌入式系统基础理论、开发方法和工具环境,接受嵌入式系统应用开发严格训练的高素质应用型人才。通过几年的探索和实践,我们逐步明晰应用型嵌入式人才的知识、能力和素质要求,梳理嵌入式专业学生应当掌握的专业知识单元、基本技能、核心能力,并在此基础上构建了比较符合应用型嵌入式人才培养规律的课程体系和实践教学体系。
2应用型嵌入式人才内涵和培养目标
嵌入式系统有两个很显著的特点,一是面向应用,嵌入式系统是通过嵌入到具体的产品中提升产品性能,降低产品成本的;二是软硬件结合,可以说任何嵌入式系统都是软硬件协同设计的结果[5]。这就在知识、能力、素质等方面对应用型嵌入式人才提出了特别的内涵要求。
在知识结构方面,除了通识教育所涉及的公共基础知识、人文社科和经济管理知识外,应用型嵌入式人才还必须具备比较扎实的计算机软硬件基础知识和比较系统的嵌入式系统专业知识,具备一定的行业领域知识。
对于应用型嵌入式人才,能力结构涉及核心能力和专业能力两个方面。核心能力包括获取知识的能力,即具有较强的自学能力及获取嵌入式相关专业知识的能力;应用知识的能力,即具有运用所学知识分析和解决嵌入式应用领域实际问题的能力;工程实践能力,即具有较强的软硬件设计、调试能力及嵌入式系统运行维护能力;团队协作能力,即具有较强的沟通能力和合作意识;技术创新能力,即具有一定的创新意识和产品开发能力。专业能力包括专业基本技能,即学生应具备较强的程序设计能力、硬件制作和调试能力以及软硬件工具平台应用能力;应用开发能力,即学生应初步具备嵌入式项目开发能力和解决关键技术问题的能力。
素质结构涉及品德、人文、身心、专业四个方面。首先企业用人品德为先,因此学校培养的学生必须具有良好的思想品德和职业道德;其次应具有较好的语言、文字表达能力;第三应当身心健康,具有一定抗挫折能力;最后,学生须具有扎实的专业基础知识和工程意识、分析问题和解决问题的能力。
基于对应用型嵌入式人才知识、能力、素质内涵的分析,我们确定嵌入式人才专业方向的培养目标是以市场需求为导向,以应用开发能力培养为中心,以“知识―能力―素质”为主线,培养具有扎实的计算机专业基础,具有嵌入式专业核心能力和专业能力,“上手快,能实战,后劲足”的高素质应用型嵌入式人才。
3课程体系设计的基本原则
课程体系设计是否合理,直接关系到专业培养目标能否真正实现。课程体系设计不只是简单考虑开设哪些课程,还应该重点关注课程的授课内容和教学模式,处理好课程板块之间、共性要求与个性发展之间的关系,实现课程与课程之间、课程板块与和课程板块之间、理论与实践之间的有机衔接,为学生的能力进阶提供一个合理的学习路径[1,6]。我们在设计课程体系时遵循了如下几个原则:
1) 适当保持计算机专业特色,从“系统”出发,在强调嵌入式软硬件协同设计的同时,适当侧重于嵌入式软件开发。
国内许多高校在计算机科学与技术、电子工程、自动化等专业开设了嵌入式相关的专业方向,由于各专业培养目标、教学体系侧重点不同,他们的课程体系和教学内容也不尽相同。电子工程专业主要侧重嵌入式硬件设计,自动化专业侧重自动控制、智能仪器仪表的设计,计算机专业则应从“系统”的角度出发,更侧重软/硬件的协同工作,将计算机核心课程和嵌入式专业方向课程有机地整合起来,形成一条清晰的逻辑主线。
电子科技大学中山学院在计算机科学与技术专业中设置了嵌入式专业方向。所以,我们是在保留计算机专业核心课程的基础上,针对嵌入式特点,通过对相关课程进行内容整合和更新,适当强化相关硬件课程,引入嵌入式相关课程来构建嵌入式专业方向的课程体系。
2) 以“知识―能力―素质”为主线,构建符合嵌入式系统应用开发能力晋级阶梯的课程体系。
课程体系是专业培养方案的核心,我们将以学科体系为导向的课程设置转变为以能力培养为主线的课程设置,即认真分析企业对应用型嵌入式人才的知识、能力和素质要求,分析嵌入式专业学生应当掌握的专业知识单元、专业基本技能、专业核心应用能力。在此基础上,以能力培养为主线,构建符合嵌入式系统应用开发能力晋级阶梯的课程体系和学习路径。大一阶段注重科学基础训练(主要包括通识教育、专业认识和编程训练),大二阶段注重专业基础训练(主要包括计算机软硬件基础理论教育和技能培养);大三阶段注重专业课程学习(包括嵌入式专业技能和应用开发能力培养),大四阶段注重提高工程实践能力(包括实践能力与工程素养培养)[6]。
符合能力晋级阶梯原则课程体系的构建,使得嵌入式课程体系的所有课程都是以能力培养为基本出发点,前后衔接紧密,层层递进,逐步提高学生的嵌入式应用开发能力。
3) 围绕嵌入式应用开发能力的培养,构建以“一体化、多层次、分阶段”为特征的实践教学体系。
在层次上,我们将嵌入式实践教学体系分成三个层次:基础层、综合设计层和应用创新层。基础层主要包括相关课程(如程序设计、模拟电路、数字逻辑设计、单片机及其应用开发、嵌入式系统基础等)的课内实验,主要目的在于课程知识的巩固。综合设计层主要包括两个方面,一是相关课程综合性、设计性实验,主要目的在于提高学生相关课程的知识和综合运用能力;二是里程碑式的综合实践课程,即在能力培养主线上设置一些里程牌,并通过综合性实践课程培养学生阶段性综合应用能力。应用创新层主要培养学生的综合分析、设计、创新能力和工程素养,主要通过创新实验和课程设计、项目实训、学科竞赛、学生科研和毕业设计完成。
从阶段上来看,我们将嵌入式实践教学体系分成三个阶段。第一个阶段着重培养学生的编程功底和基本的硬件制作和调试能力,第二个阶段着重培养学生的嵌入式软硬件设计和开发能力,第三个阶段着重培养学生的嵌入式系统综合应用开发能力、软硬件协同设计思想和工程素养[6]。
4) 关注课程教学内容和实践教学环节的改革,
使课程教学内容、实践教学环节与应用型嵌入式人才培养目标保持一致,同时保持课程之间的有机衔接,理论教学和实践教学的有机结合。
首先,将应用型嵌入式人才培养目标分解细化到相关课程和实践环节,使课程内容与培养目标保持一致,实践环节与应用开发能力培养保持一致,前后课程之间保持有机衔接。其次,通过理论教学环节和实践环节的有机结合,在培养学生比较扎实的理论基础的同时,培养学生的核心能力和专业能力。
4课程体系的具体设计
4.1总体设计
嵌入式方向课程体系总体结构如图1所示。整个课程体系分成三个部分,理论教学体系、实践教学体系和素质教学体系。整个课程体系是围绕着学生的能力培养而设计的。
4.2学科基础课程
电子科技大学中山学院在计算机科学与技术专业中设置了嵌入式专业方向。所以,我们在课程体系的学科基础课程中基本保留了计算机专业的核心课程,如程序设计基础、离散数学、数据结构、计算机网络基础、计算机组成原理、计算机操作系统、数据库原理与应用、多媒体技术基础、软件工程等。考虑到嵌入式系统软硬件并重的特点,我们适当强化了电路与模拟电子技术、数字逻辑设计及应用这两门电路课程。
针对嵌入式特点和后续专业课程的教学要求,我们对这些学科基础课程的内容进行了整合和更新。
程序设计基础既是很多后续专业课的学习基础,也关系到学生的专业自信。我们对这门课程的处理方法是淡化语法细节,强调学生程序设计逻辑和分析问题解决问题能力的培养。同时,针对嵌入式软件开发特点,对教学内容和重点进行适当调整,引入嵌入式C相关的教学内容。
在数据结构中,教师将在嵌入式软件开发中经常用到的内容(如内存动态分配和释放、栈、队列、串、查找算法等)作为重点内容进行讲述,而对于在嵌入式应用开发中较少用到的内容(树、图等),只作简单介绍。
模拟电路与电子技术基础、数字逻辑设计及应用这两门电路课程的教学任务由具有比较丰富的嵌入式硬件开发经验的教师担任。教学不受老教材的束缚,教师大胆地对教学内容进行取舍,有用的内容讲通讲透,过时无用的内容坚决舍弃,并在相关章节讲授中联系后续专业课程内容,做好铺垫性教学。同时,我们站在一个嵌入式应用开发工程师角度讲授相关电路知识,着重它们的工程应用,而适当简化数学公式和理论推导,降低学生的学习门槛,提高学生的学习兴趣和自信。
很多高校的嵌入式专业方向都开设了微机原理及接口技术课程。但是,我们通过实践发现,这门课程的知识与实际应用脱节,学生学习起来没有兴趣。同时,由于在后续的课程设计、课外科技竞赛、毕业设计甚至今后的工作中都很难用到它们,这些内容即使学了也很容易忘记。基于这些原因,我们取消了微机原理及接口技术这门课程。
4.3专业方向课程
专业方向课程的主要目的是培养学生基本的嵌入式应用开发能力,设置的课程包括Linux软件开发基础、单片机及其应用开发、嵌入式系统基础、嵌入式操作系统及其程序设计、嵌入式Linux应用开发。
设置单片机及其应用开发课程,除了用它替代微机原理与接口技术以外,我们还期望从单片机这一相对简单的嵌入式微控制器入手,让学生能够比较深入地理解嵌入式系统的工作原理和应用,为嵌入式系统的学习打下基础,同时也让学生对前面学习的两门电路课程加深认识,为部分对硬件感兴趣学生的后续发展做好铺垫。我校的单片机实验教学平台采用自主设计AVR单片机实验开发平台,而没有采用传统的51单片机,主要是考虑教学与学生今后的应用相衔接,同时便于开发一些设计性、综合性实验项目。
嵌入式系统基础可以看成是嵌入式专业方向登堂入室的课程,是正式跨入专业课程学习的桥梁。该门课程主要讲述嵌入式系统的基本概念、ARM7体系结构及指令系统、ARM硬件结构和接口、接口电路与硬件设计、嵌入式系统工程设计等。在这门课程中,我们选择ARM7作为嵌入式处理的主要介绍对象,因为相对ARM9来说,ARM7的体系结构、接口相对简单,学生容易把握,也易于与实践教学环节中的嵌入式最小系统设计相衔接。我们将这门课程的教学重心放在嵌入式处理接口的理解和应用上,让学生容易入手并能够动手应用,而不是一开始就让学生接触过于抽象的概念和比较复杂的内核东西,学起来困难,又动不了手。同时采取一种先易后难、先外后内的方式编排教学内容,更加符合学生的学习规律。
嵌入式操作系统及其程序设计课程的教学目的是让学生在学习操作系统和嵌入式系统基础的基础上,掌握嵌入式操作系统的基本概念、基本原理思想,掌握基于嵌入式操作系统的应用程序设计方法和技术。该门课程既关注嵌入式实时操作系统的内核实现思想,同时也更加关注嵌入式操作系统的应用,即基于嵌入式操作系统的程序设计方法。该门课程的教学内容以 C/OS-Ⅱ为主,原因是 C/OS-II麻雀虽小,却五脏基本全(微内核);通过其开放源码,学生可以理解嵌入式操作系统实现的基本思想,把前面学到的操作系统抽象概念具体化;可以学习实时系统的一些编程技巧; C/OS-II已经移植到嵌入式实验平台上,课程实验和课程设计可以与原来的嵌入式系统基础课程很好衔接;在一些中低端嵌入式软件开发中,它具有很强的实用性。同时,教师在该课程中引入文件系统和GUI,强化学生基于嵌入式操作系统的嵌入式软件设计能力。
嵌入式Linux应用开发课程进一步凸显该专业方向的计算机特色,让学生掌握基于嵌入式Linux软件的开发方法和技巧,真正培养学生的嵌入式软件开发能力。
4.4专业选修课程
在选修课程中,我们有意识地设计了一些课程模块,便于学生根据兴趣和就业取向选修,如信息终端软件开发课程模块、硬件设计和驱动开发课程模块等。信息终端软件开发课程模块包括.Net程序设计、J2ME架构软件开发、WinCE嵌入式软件开发、移动设备应用软件开发;硬件设计和驱动开发课程模块包括电子线路硬件设计、嵌入式驱动应用开发、EDA技术及其应用、嵌入式网络协议及应用等。另外,我们会根据嵌入式技术的发展和社会需求适时调整选修课程。
4.5实践教学环节
实践教学环节对于应用型人才培养十分重要。我们在加大实验实践学时,强化实验实践环节的同时,注意有机整合实验内容,减少验证性实验,增加设计性、综合性实验项目,按照“一体化、多层次、分阶段”的思想,设计比较合理的嵌入式专业方向的实践教学体系,如表1所示。
整个实践教学环节具有以下几个特点:
1) 将电路和模拟电子技术、数字逻辑设计及其应用课程的实验独立出来,并加大实验课时比重,培养学生的硬件实践动手能力。
2) 对于一些重要的专业基础课程和专业课程,除了有课内实验加深学生对所学知识的理解外,还设置一些专门的专业实践环节,进一步提升学生的实践动手能力和综合创新能力。例如,在学生学习数字逻辑设计及其应用之后开设数字系统设计,利用我们自主开发的基于FPGA的数字逻辑设计教学与开发平台,通过可编程逻辑器件等数字设计的主流器件和EDA数字系统设计重要工具,引入数字逻辑的最新内容和设计理念,开展一些创新性课程设计,一来引起学生的兴趣,二则为学生的后续学习打下基础。对于嵌入式系统基础,我们除了在课程内完成GPIO、串口、定时器等相关基础实验外,还设置了嵌入式系统进阶实验这一单列的实践教学环节,提供GPRS、CanBus、SD卡读写、以太网、USB等一些嵌入式系统进阶实验,开拓学生的眼界,提高学生的实际应用开发能力。
3) 在能力培养主线上设置一些里程牌,并引入一些综合型实践课程(以实践为主、讲授为辅),提高学生综合运用所学知识解决实际问题的能力。例如,在学习完程序设计、数据结构等课程之后设置程序设计综合实训,进一步强化学生的编程功底;在学习完模拟电路、数字电路、电子线路设计工具等课程之后设置嵌入式工程实践,培养学生基本的硬件制作和调试能力;在学习完单片机及其应用开发、嵌入式系统基础等课程之后设置嵌入式最小系统设计,让学生深入理解嵌入式系统的结构和工作原理,培养学生的嵌入式系统设计和开发能力;在学习完嵌入式系统基础、嵌入式操作系统及其程序设计、嵌入式Linux应用开发、WinCE嵌入式软件开发等课程之后设置嵌入式系统综合实训和毕业设计,着重培养学生嵌入式系统综合应用开发能力、软硬件协同设计思想和工程素养。
同时,我们还通过加大实验室开放力度,鼓励和引导学生通过课程设计、参与嵌入式学科竞赛、参与教师科研课题,进一步提升实践能力和创新能力。利用新实验室,学生可以开展自主学习、合作学习、任务驱动式学习、研究性学习,实现从自主实验嵌入式工程实践小型科研课题研究开发参加各种学科竞赛的创新教育全过程,提高知识应用能力、信息获取和选择能力、实践动手能力,并在实践中逐步提高创新能力。
5结语
作为一个新兴的专业方向,嵌入式暂时还没有一个公认的比较成熟完善的课程体系可供借鉴。本文在深入分析应用型嵌入式人才知识、能力结构的基础上,以“知识―能力―素质”为主线,构建了符合嵌入式系统应用开发人才能力晋级阶梯的课程体系和“一体化、多层次、分阶段”的实践教学体系。经过电子科技大学中山学院几年的教学实践,取得了较好的效果,证明该课程体系具备合理性和可行性。本专业方向培养的学生不少成为企业的技术骨干,甚至就职于产品技术开发管理岗位。同时,他们在一些学科竞赛中也取得了很好的成绩,先后获得“博创杯”大学生嵌入式设计大赛一等奖两项、二等奖两项、三等奖一项,全国大学生信息安全竞赛一等奖一项,“ZLG杯”ARM嵌入式系统电子设计大赛二等奖两项、优胜奖三项等。
当然,嵌入式系统会随着技术发展和应用需求而变得越来越复杂。为了适应这种需要,嵌入式人才的培养方案和课程体系也必须做出相应调整。同时,随着我们和企业嵌入式开发人员、高校嵌入式教学人员交流的深入,我们对嵌入式人才内涵的认识也将越来越深,相应地,嵌入式课程体系也将更加完善。
参考文献:
[1] 马义德,汤书森,张北斗,等. 嵌入式系统课程群建设与创新型人才培养[J].高等理科教育,2004(8):23-25.
[2] JIANG Linying, LI Dancheng, ZHU Zhijiang. Research and Practice of the Training Model of Industrialization in Embedded[J]. 计算机教育,2010(9):2-5.
[3] HUANG Ming, LIU Zhen, LIANG Xu, et al. Exploration and Practice of Complex Embedded Software Training Model[J].计算机教育,2010(9):6-9.
[4] 俸皓. 嵌入式系统教学体系改革的探讨[J]. 科技信息:科学教研,2007,12(30):29-31.
[5] 周立功,王祖麟,陈明计,等. ARM嵌入式系统基础教程[M]. 北京:北京航空航天大学出版社,2005:163-190.
[6] 罗嗣海,周立功,王祖麟. 新型校企合作培养零适应期应用型人才探讨(以江西理工大学嵌入式系统人才培养为例)[J]. 江西理工大学学报,2009,30(2):57-60.
Design of Embedded Curriculum for Application-oriented Talents Cultivation
LI Wensheng, MA Zheng, FU Yu, DENG Chunjian
(Zhongshan Institute, University of Electronic Science and Technology of China, Zhongshan 528402, China)
在高职计算机应用技术专业教学中,嵌入式技术是一个重要分支,广泛应用到工业控制、仪器仪表、电子产品、汽车、办公自动化和通信等领域,具有良好的市场前景。嵌入式操作系统是学习嵌入式程序设计的前导课程,是准备从事嵌入式开发人员必须学习的职业课程。目前,在嵌入式操作系统教学过程中,教学效果还不够理想,学生的职业能力不能很好的适应岗位要求。因此,嵌入式操作系统课程教学改革势在必行。
1 嵌入式操作系统课程教学过程中存在的问题
高职院校嵌入式操作系统是一门知识点多、概念性强、较为抽象的课程,课程知识涉及程序设计、计算机组成原理、嵌入式系统基础等,课程教学难度较大。传统的嵌入式操作系统教学,学生难以掌握知识、学习枯燥无味,普遍感到难学。尤其是职业院校的学生,很多还没有接触过计算机结构,难以理解嵌入式操作系统的内部结构。此外,在嵌入式操作系统教学中,重理论轻应用、理论教学与实践教学脱节的问题普遍存在。在课堂教学中学生处于被动接受方式,无法主动参与整个教学活动,没能达到以学生为中心,以培养学生操作技能为目的的职业技术教育宗旨。尽管安排有实训,但实训环节与课堂教学环节没能做到相互连贯、相互映证,习题与课堂内容没能紧密相扣,考试形式和内容多以理论为主,没能体现考查学生实际应用知识的实践能力。
总之,传统的嵌入式操作系统教材和教学过于重视知识体系的演绎和推理,加之课程本身所固有的抽象性、强实践性,使大多数学生对嵌入式操作系统课程产生了畏惧心理,以至于影响了他们学习的积极性,使之变成了难讲的课程,不仅对学生后续专业课的学习形成了一定困难,对开展教学质量工程也产生了消极影响。
2 基于职业需求的嵌入式操作系统课程教学改革措施
根据高职教育的特点,结合企业职业需求,突破原有课程结构和教学模式,更新教学内容,改革教学方法。
2.1 重组课程内容体系
①课程设计理念
依据国家行业职业标准和岗位能力需求,对嵌入式程序开发工作岗位进行调研,分析职业需求,制定嵌入式操作系统课程标准。以“立足基础、重在应用、强化能力,服务专业、适应社会”的思想,重组课程内容体系,体现基于工作过程系统化的课程设计理念。
②课程设计思路
通过企业专业人才需求分析、工作岗位分析、典型工作任务分析、学习领域生成、学习情境设计、教学设计、教学资源开发等环节,进行课程开发。课程以职业能力为本位、以工作过程为导向,建立基于嵌入式程序开发工作岗位所需的课程教学体系。
③课程教学内容设计
嵌入式操作系统课程以学习情境为载体组织教学内容,通过设计认识Linux、Linux基本应用、Linux编程应用、Linux网络管理、Linux系统管理5个学习情境来完成对知识的系统化学习。让学生在完成具体工作任务、工作过程中构建相关知识,融基础知识和基本技能于一体。在教学过程中,创建真实工作环境,以完成任务为中心,整合任务需要的专业知识和专业技能,与工作岗位紧密对接,培养学生的岗位技能和职业能力,切实体现工学结合的职业教育特色。
2.2 构建任务驱动教学模式
采用“任务驱动”教学模式进行教学,教师的教和学生的学都是围绕如何完成一个具体的任务进行的。在教学过程中,教师应该充分重视并精心设计教学情境和任务,用精心设计的任务,来激发学生的探索、思考的兴趣,让学生真正从内心产生强烈的“探索知识”的欲望,以积极探索问题、要求解决问题的心态来驱动学生的学习欲望并维持浓厚的兴趣,让学生通过完成一个个任务来实现总体的教学目标,从而形成一个系统的知识体系。
①设计并提出任务。在教学过程中,结合嵌入式操作系统课程特点,建立与当前学习主题相关的、尽可能真实的学习情景,引导学生带着真实的任务进入学习情境,使学生的学习形象化和具有直观性,任务的设计要注意知识点的系统性、连贯性、功能的递进性。充分利用多媒体信息设计出具有情境的学习任务,使学生在情境中进行探索实践,在课堂实施之前先对学生提出任务要求,然后让他们讨论、分析任务中用到的知识点、方法。
②引导学生完成任务。高职教育注重技能的培养,教师要在充分调动学生学习积极性的基础上,积极提高学生动手操作的能力。在课堂上要采用学生自主学习的方式,以学生为主体,教师为引导。在学生接受学习任务后,给学生足够思考空间及完成任务的时间,让学生进行探究学习、解决问题。作为引导者的教师,只需为学生提供一些相关的线索和方法,少提示内容,这样更有利于培养学生自主合作、探索创新的精神。
③展示、交流任务作品。教师或学生通过多种方式向全班学生展示各学生的任务作品,让学生对任务作品进行自评,这样可以让学生通过对学习任务的认真分析,建立属于自己的思维方式。然后由其他学生进行点评,发表自己的观点和见解,这样有利于学生在交流与点评中锻炼自己的能力。
④教师点评任务作品
教师首先充分肯定学生的成绩,并对本次任务作品进行点评,对某些问题提出个人意见,对没有被发现的优点和问题进行补充,从提高学生能力的角度进行正确引导、提出期望,鼓励他们继续发扬这种探索的精神。
2.3 改革教学方法、重视教师队伍建设
任何一种教学方法能否被成功地运用,是否促进学生的智能发展,这取决于教师的知识水平和教学才能。因此,要进行教学方法改革,首先必须提高教师的素质水平。嵌入式操作系统是一门实践性很强的课程,应该创造条件让教师定期到企业进行学习和培训,了解职业的需求,鼓励教师取得“技师”或“高级技师”职业资格证书,鼓励企业技术人员担任高职院校兼职教师。
在教学过程中,以教师为主导,学生为主体,实施“教、学、做、用”为一体的动态教学模式,真正转变以课堂、教材为中心的传统教学模式,突出学生的主体性,倡导学生主动参与、乐于探究,培养学生自主学习的能力、创新能力、分析问题和解决问题的职业能力,让学生主动去构建知识结构、能力结构和品格结构,使学生把所学的理论、技能及时转化为现实的职业操作能力,达到企业所需的技能要求。同时,应发挥“以赛促学,以赛促教”的作用,鼓励学生积极参加嵌入式系统设计竞赛、挑战杯等各类创新实践活动。在创业大赛中,对优秀团队学生实行导师制,使学生有机会在教师的指导下完成相应的项目和作品,重点培养学生综合分析、设计、自主研究及创新能力。
2.4 改革考核方案
嵌入式操作系统是一门综合性和实践性比较强的课程,用通常的机考、笔试进行考核存在一定的难度,因此考核方式应该多样化。在考核过程中,应加大过程考核力度,把考核贯穿学习的始终,主要包括学生在课堂的表现、任务完成情况、职业能力掌握程度、试卷考核情况等,以提高能力为目标,以完成实际的任务为重点,以考促学,实施“知识、技能、素质”三位一体的考核方案。
【关键词】嵌入式系统 S3C2410 实践教学
【中图分类号】G424.31 【文献标识码】A 【文章编号】1009-9646(2008)08-0227-02
1 引言
在我国,嵌入式系统的最新成果不断被应用在航空航天、工业控制、仪器仪表、消费电子等领域, 直接导致了我国嵌入式系统的市场需求快速增长,嵌入式领域中的人才需求日益旺盛,人才缺口在逐渐扩大,而大部分高校的嵌入式系统课程教学存在诸多该改进的地方,最突出的是学生没有使用工程方法来构建符合需求的系统的能力,导致了用人企业不得不对学生进行再培训。由于嵌入式系统课程涉及的知识面宽、实践性强,对实验教学的要求较高,包括实验教师、硬件配置、实验项目的设置等。因此,应大力加强嵌入式系统实验教学建设,这对嵌入式系统的学习、研究与开发可以起到事半功倍的效果,更好的促进创新型人才的培养。
2 S3C2410微处理器
针对我校的实际情况,我们自行开发了基于S3C2410微处理器的实践教学平台,S3C2410微处理器是一款由Samsung半导体公司为手持设备等相关应用设计的低功耗、高集成度的微处理器,采用272脚FBGA封装,包含一个ARM920T内核。其内部包含以下功能模块:1.8V/2.0V内部供电,3.3V存储器,3.3V外部I/O供电。具有16KB一体化的Cache/MMU;具有外部存储器控制器(SDRAM控制和片选逻辑);LCD 控制器(支持高达4K色的STN屏和256K色的TFT型液晶屏,具有1路LCD专用DMA);4路DMA,具备外部请求脚;3路UART(支持IrDA1.0,16字节的发送FIFO,16字节的接收FIFO)/2通道SPI;1路多主模式的IIC总线,1路IIS总线控制器;兼容V1.0的SD主接口协议和V2.11的MMC卡协议;2路全速 USB主设备,其中1路可以作为USB从设备(V1.1协议)。4路PWM定时器和一路内部定时器;具有看门狗定时器;共提供117个通用I/O,24路外部中断;电源控制:正常模式,SLOW模式,空闲模式和掉电模式。8路10位ADC,其中2路可以作为触摸屏接口;具有日历功能的RTC时钟;片内倍频锁相环PLL。
3 实验系统的组成
我们研制的嵌入式系统教学实验平台采用了核心主板加扩展板的设计方式,提供基于微处理器的核心主板,将微处理器所有的I/O口全部引出,在核心主板上面只提供S3C2410,FLASH,SDRAM和LED 等最基本部分,而对于一些特殊用途的USB接口、以太网接口、TFT型液晶屏接口、触摸屏接口、音频接口、SD卡接口、GPRS 接口和GPS 接口等是以底板形式提供的。这样,学生需要的话,可以在实验平台上进行主流技术硬件电路设计实验,切实掌握部分硬件工作原理。系统功能模块框图如图1 所示。
4 可开设的实验
实践性教学环节,对于培养具有创新性精神的高素质人才起着非常重要的作用。在这一方面,我们将实验、课程设计、毕业设计及课外科技实践活动相结合,从整体出发,构建了相应的嵌入式系统课程实践教学体系,即基础知识和实验环境、基本技能训练和综合应用3个层次,三个层次的实验项目分布在不同的实践教学环节当中,所起到的作用和性质各有不同。
在第一层次的课程实验中,要求熟悉软硬件开发环境、完成硬件实验程序的编写、掌握基本外设接口程序的编写方法、操作系统等基础实验,开设的主要实验有:ADS1.2集成开发环境实验;汇编语言与C语言编程实验;GPIO输入、输出实验;外部中断实验;定时器实验;串口通讯实验;中断实验;步进电机实验;键盘、LED、LCD及触摸屏实验;BootLoader实验;Linux内核移植及裁减实验;构建Windows CE 5.0实验。在这些实验中,要求在对基本原理验证的基础上,进一步扩展完成简单的设计性实验。
在第二层次的课程设计(时间为2周) 环节中,以设计性实验项目为主,让学生掌握基本技能和方法。该环节由教师布置题目、设计内容及要求,学生自行完成。可开设的题目有:
4.1 UART实验
考虑到串口在嵌入式系统中的应用非常广泛,设置了本实验。通过理论学习和上机操作,实验者可以学习串行接口和串行通信原理,掌握S3C2410芯片的内部UART的使用方法,了解Linux和Windows CE 5.0下的串口驱动程序,学会Linux和Windows CE 5.0下的串口编程方法。本实验要求实验者能利用开发板编程实现串口与主机之间的通信和文件传输。
4.2 LCD实验
实验者可以了解LCD的基本原理,理解LCD的控制和驱动原理以及常用LCD控制芯片的基本使用方法,掌握S3C2410内置的LCD控制器方式驱动LCD的基本原理和方法掌握Linux和Windows CE 5.0下编写LCD控制器的驱动程序和LCD应用程序的方法。要求实验者调用Linux和Windows CE 5.0提供的LCD API函数实现简单的图文显示和动画效果。
4.3 LED和键盘控制实验
实验者可以了解LED 显示和控制原理,掌握矩阵键盘软件扫描原理和抖动、重键问题的解决方法,了解S3C2410的片选功能,理解使用CPLD扩展系统总线控制LED和键盘的方法。要求实验者编写列扫描键盘处理程序,与CPLD配合将用户所按的键转换成从1到16的数字显示在2个LED上,并能实现用键盘输入控制LCD显示动画。
4.4 触摸屏实验
实验者可以了解电阻式触摸屏的原理和触摸屏与LCD的配合使用方法,理解嵌入式系统中同步IO接口的工作原理,重点掌握如何在Linux和Windows CE 5.0下编写触摸屏程序。要求实验者通过分析手写板程序,编写一个简单的触摸屏计算器程序来掌握触摸屏应用程序的工作原理。
4.5 A/ D 转换实验
实验者可以了解A/D转换的原理,掌握S3C2410芯片中AD转换器的使用方法。要求实验者编程实现在8路输入中任意指定一路进行A/D转换,并根据转换结果在LCD上实时描绘输入信号。该实验用到了LCD 实验中的基本知识,在理解本实验内容的同时加深了对LCD 实验的理解。
4.6 进程间通信实验
实验者可以了解操作系统中进程的概念,理解和掌握Linux和Windows CE 5.0下中进程间通信的方法,包括管道及有名管道、信号、消息队列、共享内存、信号量等。要求实验者用信号、有名管道和消息队列编程实现进程间的通信,在进行编程前需要对Linux和Windows CE 5.0操作系统内核作相应的配置。
4.7 中断和驱动程序实验
实验者可以理解S3C2410的中断系统原理和中断寄存器设置,理解应用程序和驱动程序交互的方法,掌握在Linux和Windows CE 5.0系统中编写设备驱动程序的方法以及如何在驱动程序中挂接中断。要求实验者编写阻塞和非阻塞方式中断处理例程。
4.8 GUI实验
实验者可以了解图形用户界面的基本概念,嵌入式系统下常用的图形用户界面以及它们各自的特点,掌握Mirowindows 的体系结构和图形引擎的特点及实现,掌握Mirowindows 配置文件的结构和各个功能选项。要求实验者会利用Linux 内核、应用程序配置工具对Mirowindows 进行定制,重点掌握Mirowindows 提供的应用程序编程接口Nano-XAPI,会利用Nano-XAPI编写简单的图形用户界面,实现时钟效果。
4.9 TCP/ UDP实验
实验者可以了解TCP/ IP 协议的基本内容,重点掌握IP 协议、TCP 协议以及UDP 协议,理解套接字的基本概念和编程原理,包括网间进程通信、客户/ 服务器作用模式、套接字基本类型和系统调用等,掌握套接字编程的基本方法。要求实验者使用Linux和Windows CE 5.0提供的一系列套接字相关的系统调用,通过开发板的网口实现与主机通信以及文件传输。
4.10 CGI实验
实验者可以了解Web 服务器的基本概念,特别是嵌入式Web 服务器Boa 的配置和使用,了解静态页面和动态页面、CGI、JavaScript 等基本概念,能够使用C语言进行CGI 编程。要求实验者用CGI编写URL解码程序对用户表格输入进行处理,使用JavaScript制作一个智能化的页面。此外,对能力较强的实验者,还要求创建一个简单的嵌入式Web服务器,页面用中英文两种语言显示,该服务器允许授权用户查看服务器配置文件,查看并修改服务器上的用户文件和个人信息、密码。
第三层次中包含了针对课外科技实践活动及毕业设计,加强学生创新能力和综合能力的培养。我们把这一环节也纳入到实践教学环节中,以充分调动学生开发嵌入式应用系统的积极性。由于毕业设计的时间相对较长,所以可以进行较大规模的创新性综合项目的开发。在课外科技实践活动中,可以设计嵌入式视频监控系统,可以通过网络进行远距离图像监控等;在毕业设计中,开发的项目可有手持式电子图书阅读器、Linux 下的媒体播放器、嵌入式指纹采集装置、基于WinCE的嵌入式系统注册表的研究及基于ARM和WINCE的嵌入式热流计的设计等。目前本系统已经在大学生电子科技大赛中得到应用,收到很好的效果。
关键词:智慧农业 嵌入式系统 体系建设
中图分类号:G643 文献标识码:A 文章编号:1673-9795(2014)01(a)-0141-02
随着计算机信息技术的发展,我国传统农业正在加快向现代农业转型,而智慧农业将成为现代农业未来发展的趋势。智慧农业将农业看成一个有机联系的系统,依托嵌入式技术、感知技术、互联互通技术、智能化技术等综合、全面、系统地应用到农业系统的各个环节,使得农业系统的运转智能化、多功能,大力推进农业科技创新。
智慧农业所涉及的关键技术包括嵌入式技术、检测技术、通信技术等。嵌入式是当前发展最快、应用最广、最有发展前景的信息技术应用领域之一。目前,许多高等院校的计算机、电子、软件等专业针对市场需求,开设了嵌入式系统相关课程,也在逐步完善适应社会需求的嵌入式系统的教学体系。本文基于智慧农业背景,结合都市型现代农业开设嵌入式课程的经验,对农林院校嵌入式课程教学改革进行了探讨。
1 智慧农业物联网嵌入式系统
智慧农业是最近兴起的一个概念,出现的时间很短,目前还没有一个公认的定义。中国农业大学李道亮教授认为: 智慧农业是以最高效率地利用各种农业资源,最大限度地降低农业成本和能耗、减少农业生态环境破坏以及实现农业系统的整体最优为目标,以农业全产业、全过程智能化的泛在化为特征,以全面感知、可靠传输和智能处理等物联网技术为支撑和手段,以自动化生产、最优化控制、智能化管理、系统化物流和电子化交易为主要生产方式的高产、高效、低耗、优质、生态和安全的一种现代农业发展模式与形态。
要建设智慧农业,就要依托物联网等先进的科学技术。物联网(The Internet of Things,简称IOT)的概念是在1999年提出的,2005年国际电信联盟(ITU)的ITU互联网报告,对物联网做了如下定义:通过二维码识读设备、射频识别(RFID)装置、红外感应器、全球定位系统和激光扫描器等信息传感设备,按约定的协议,把任何物品与互联网相连接,进行信息交换和通信,以实现智能化识别、定位、跟踪、监控和管理的一种网络。
智慧农业物联网唯一的物联源头是嵌入式系统。随着嵌入式系统的各个领域应用需求的多样化,嵌入式技术已成为当今电子技术发展的主流。
本文基于嵌入式技术,针对农林院校计算机专业嵌入式系统方向课程体系的特点, 通过一系列教学尝试,对计算机专业嵌入式系统方向的课程体系建设进行了一些探索,使学生在保证专业原有课程的基础上,根据专业方向的不同,侧重点有所差别,将智慧农业贯彻课程体系始终,使学生在软件和硬件设计方面都得到很好的锻炼,最终为都市型现代农业培养全方位的信息技术人才。
2 嵌入式课程体系建设
(1)我校计算机专业嵌入式系统方向培养和教学目标。
我校计算机专业嵌入式系统方向培养目标培养侧重嵌入式软件设计开发的嵌入式系统开发人员。根据学生的接受能力,嵌入式系统的学习体现层次性、渐进性、注重实践性,尤其侧重培养在农业领域中的嵌入式系统应用能力。(图1)
嵌入式系统课程体系的设置体现“注重工程能力培养的嵌入式系统人才知识体系”,学习侧重嵌入式软件设计部分。嵌入式系统教学体系教学目标是掌握四个“1”,即“一种主流嵌入式微处理器、一门开发语言、一种嵌入式操作系统、一套开发工具”,嵌入式开发语言主要有汇编语言、C和C++语言、Java语言等;嵌入式操作系统主要有Windows CE、Linux等;集成开发工具主要有Windows CE开发工具、ADS等。
(2)嵌入式系统课程体系。
北京农学院计算机与信息工程学院自2011年设置了计算机专业嵌入式系统方向,根据自由选择的原则在大学三年级实施特定方向培养,同期购买了30套嵌入式开发实验平台设备,可实现每人一台的教学环境。
嵌入式系统课程体系大致可分为:基础课程、专业基础课以及专业课。
基础课程在大学一、二年级开设,主要学习理工科的一些基础课程,如高等数学等。
专业基础以及专业课的开设时间以及内容如表1所示。需要特别说明的是根据我校“3+1”本科人才培养模式,大学前六个学期完成的是课内学习,旨在掌握较宽厚的基础知识和扎实的专业知识,最后一学年有计划地到校内外实调基地进行为期一年的实践和实训,所以第七学期和第八学期是专业实习和毕业设计实习环节。
嵌入式导论课程:介绍嵌入式的主要应用领域、嵌入式软件开发的基本概念、嵌入式软件开发的基本流程和基本方法、嵌入式系统的特点。
嵌入式操作系统课程:介绍嵌入式系统基本知识,嵌入式操作系统与通用操作系统的差别。结合典型的嵌入式操作系统对操作系统的基本构成、工作机制、系统移植剪裁和实时任务调度等内容进行介绍。我校根据具体情况选择、Linux、WinCE等嵌入式操作系统进行教学。
嵌入式程序设计基础:介绍嵌入式系统体系结构、嵌入式系统设计的基本方法、软件编程及设备接口和驱动等。通过该课程的学习,学生了解和掌握必要的嵌入式系统设计方法学的概念、方法和工具嵌入式程序设计基础,掌握嵌入式系统的基本原理与设计开发思想,学生能完成简单的嵌入式系统的软硬件设计。
JAVA开发语言:介绍Java语言的体系结构、Java语言的基本概念和程序设计的基础知识、面向对象的程序设计的思路和方法。培养学生的编程能力,使学生能够运用Java语言作为完成应用程序设计。
嵌入式接口技术:介绍键盘接口、LED显示器接口、触摸屏、通信接口、中断接口、A/D和D/A转换、ARM的JTAG接口。
嵌入式高级编程:介绍Android嵌入式开发环境搭建的方法,项目结构;Android的体系结构,嵌入式软件开发流程;嵌入式特性开发,多媒体开发,数据存储开发,联网开发等开发方法,学生通过实践能达到独立完成开发单机、网络嵌入式软件的能力。
3 嵌入式课程实践教学
(1)层次化实验实践教学。
实验室选用UP-Magic6410嵌入式实验开发平台,着重培养学生在该平台下进行嵌入式Linux程序开发的相关环境搭建与软件设计方法的能力。针对各模块以及嵌入式系统的应用背景,按照由浅入深,不同课程层次对应不同实验项目等原则,组织设计了三个层次的实验,循序渐进,逐步提高,以满足不同阶段的实验和实践需求,分别为涉及嵌入式导论的基础性实验、涉及嵌入式程序设计基础的实操性实验、设计嵌入式高级编程的提高性实验。基础性实验多以理论验证为主,在于学习方法;综合性实验和提高性实验则多以应用为主,在于提高能力。三个层次的实验教学内容,为学生提高了动手能力,进一步的实践开发和毕业设计打下了良好的基础。
(2)通过项目案例,强化实践教学。
首先,依托教师实际的科研或工程项目,教师在实验课程实施时,可以按照模块化将案例的分解到各个部分,鼓励学生对实例所采用的技术和方案进行不同角度的评价,变被动知识灌输为主动探索思考,使教学理论知识与科研实践有机地结合在一起。
其次,在设计综合课程设计等综合性实验时,结合教师实际的科研或工程项目,在强调基础性知识掌握的同时,鼓励学生创新的综合设计。使得学生既掌握了一些具体的通用的嵌入式系统的开发方法,也能发挥主观能动性,独立设计并实现较完整的嵌入式系统,激发学习、创造热情。在课程设计综合实验中,考虑到学生水平差异,按照“自由组合、自主选题”的原则,要求学生课外查找资料进一步地学习,引导学生进行主动性学习,对某些问题进行深入的分析研究,进而提出自己的设计思想,此环节中设计思想的原创性也将作为课程考核的重要内容。
(3)鼓励学生参与科研项目,注重培养创新能力。
通过项目实践来锻炼和提高学生动手能力是非常重要的。我校实行导师制指导学生,在参与教师科研项目的过程中,本科生导师负责学生在整个科研期间从理论到具体操作的各个环节的指导工作,加强了指导力度。
学生在家禽食品安全追溯系统的嵌入式系统应用项目中,教师组织学有余力的同学成立兴趣小组,直接参与到前沿的课题和项目中去,将食品安全追溯系统按照生产链的六个环节分解成若干子题目,交由各兴趣小组,模拟项目的形式实践开发,真正做到“在学中做,在做中学”,以务实的项目培养学生的实践科研能力。
(4)鼓励学生积极参与课外科技活动。
近年来,高等院校加大了学生的课外科技活动开展的力度,笔者指导的学生参与了北京市大学生科研计划,利用嵌入式平台,对温室环境等参数检测,进而对温室大棚实现智能化控制,学生在该课题中,运用所学理论知识,系统的完成了整个项目,获得了北京市大学生科研计划成果二等奖,尤其值得一提的是,毕业的学生在担任京郊村官期间,将课题成果应用于所服务的村镇,取得了良好的效果。实践证明,鼓励学生参与课外科技活动,将会拓展学生的知识体系,并学以致用,对进一步提高学习兴趣以及培养合作精神发挥了至关重要的作用。
(5)做好毕业设计及毕业实习
我校实行的是采取“3+1”人才培养模式。以往学生在第八学期进行毕业论文和实习,部分学生在校内机房根据教师给出的题目完成毕业实习和设计论文,学生如果不走出去。就无法完成理论与实践的有机结合,部分同学虽然通过实习单位的学习完成毕业论文,但是毕业设计和论文的时间和质量也难以保证。因此,我们将毕业论文提前到第七学期安排任务,进行设计、论文的前期准备及调试工作,既可以保证充分的毕业设计时间又可以提高学生专业课的学习兴趣和主动性,做到有的放矢.提高设计.论文和专业课的学习质量。
针对在校学生缺少行业背景知识这一缺点,在教学中大力开展了与企业的合作,直接把学生派到相关企业进行实习和毕业设计,使得培养的嵌入式人才能够适应企业的需要,目前我院已经建立了中软、中国农业科学院信息所等校外实习基地,并签订了相关的实习协议。一方面学生在实践工程项目中完成毕业设计和论文,综合能力得到极大的提升,另一方面用人单位在与学校合作办学的过程中也为自己培养了急需的技术人才,实行了定单式培养,最终构筑高校.学生和企业获利的共赢平台,从而实现人才培养和社会需求的无缝对接。从以往经验来看,选择嵌入式系统开发课题并能按时保质保量完成课题的的学生知识面更广,就业面更宽,既可以从事软件开发,也可以适应硬件的开发工作。
4 结语
嵌入式系统作为应用性极强的课程,其教学体系建设是一项复杂而艰巨的任务,包括完整的课程设置体系结构、不断的丰富实践教学内容,获取更多的实践项目等内容。随着嵌入式在现代农业应用的迅猛发展,如何真正立足于农业院校发展特色,培养高素质嵌入式系统农业信息化人才,将是我们今后教学的方向和努力目标。
参考文献
[1] 李道亮.物联网与智慧农业[J].农业工程,2012(1):1-7.
[2] 朱仲英.传感网与物联网的进展与趋势[J].微型电脑应用,2010(1):1-3.
[3] 柳翔.嵌入式软件工程人才培养的探索与实践[J].计算机教育,2005,11:55-57.
[4] 马忠梅.嵌入式系统教学模式探讨[J].单片机与嵌入式系统应用,2008(11):5-8.
[5] 李岩,孙玉,孙丞春.嵌入式系统教学研究[J].电气电子教学学报,2006,(3):45.
关键词:硬件课程;教学体系;项目驱动;系统性
随着计算机硬件技术的迅速发展,各类硬件产品越来越多地应用到人们的生活中。因此,业界对硬件类技术人员需求急剧上升。然而,嵌入式之类的硬件系统开发需要的是软硬件紧密结合的复合型人才;通常企业不愿花费太多的人力物力去培养。而一般本科院校的计算机类专业由于实验设备和传统偏软的教学体系,造成毕业生对硬件知识的欠缺或掌握不够系统,不具备业界需求的硬件系统开发能力[1]。技术发展和硬件类产品的大量应用带来了对硬件开发工程师的巨大需求,这给计算类专业学生带来了新的机遇,但同时也对学校的教学体系和学生能力培养提出更高的要求。
一般本科院校在开展硬件类知识和技术方面的教学中通常有如下一些问题:
1) 院校投入了大量的硬件实验设备,但是学生硬件开发能力的提高并不明显;
2) 学校开设的硬件类课程衔接不够紧密,使学生对课程之间的联系掌握不够;
3) 理论教学时间多,实践教学时间少,实验设备利用率低;
4) 学生面对具体的硬件项目开发时,无从着手或知识能力欠缺。
而在学生方面,通常也存在一些问题:
1) 很多学生对硬件知识学习有一种畏惧心理,从而造成学习信心不足;
2) 硬件学习需要花大量的时间,而且效果并不像学习软件一样直观,很多人都失去深入学习的耐心;
3) 软件实践需要的器材很容易满足,一般就是PC+软件,而有些硬件(扩展)实验门槛较高,实验环境难以搭建;
4) 由于硬件的集成度高,学生只能从理论上掌握硬件底层细节,容易形成硬件盲区,学习积极性容易被打击。
随着对硬件开发人员需求的不断增大,近年来在计算机类专业硬件教学方面也提出了一些有效的方法,如文献[2]对硬件教学的系统性进行了一定的探讨;文献[3]对陈旧的硬件教学内容进行了改进;文献[4]对硬件实践教学提出了一些看法。而本文则结合当前流行的嵌入式硬件开发,在多个硬件系统项目开发的基础上,总结了提高硬件开发能力所需要的知识和涉及到的相关课程,并对课程之间前修后续关联进行了合理的安排,建立了一套行之有效的硬件课程教学体系。
1硬件类课程体系设置
学生硬件开发能力的培养涉及到多个学科的课程,包括计算机和电子等专业的课程,还与具体应用背景的一些专业知识有关。具体的课程包括模拟电路、数字电路、嵌入式微处理器、操作系统、程序设计语言、软件开发技术、接口技术与设计、嵌入式操作系统及底层驱动等技术,是软件、硬件的有机结合。在制定硬件人才培养计划时,既要拓宽深度和广度体现硬件系统具有软硬结合、面向具体应用的特点,又要注意与原有的计算机专业课程体系相兼容。
因此,需要在原有的计算机专业课程基础上进行调整,有针对性地增加一些硬件类课程和实践教学环节,增加学生对硬件方面的知识,有效地提高学生的综合性动手能力和具体应用产品和项目的开发能力,并激发学生的学习积极性。
课程调整将与硬件系统开发的相关专业、相关课程合理地散列在低年级的各个学期,留给学生足够的时间去钻研、消化和深入,培养学生扎实的知识背景和基础能力。同时,为几门相关性比较大的课程或者重要性相对突出的课程,设置一些综合性课程设计,让每个学生感觉到一定的成就感,给予一定的动力。另外,设置一些独立性实验,几个人一组,让学生自己查资料,自己设置实验方案等,独立完成。通过上述的这些锻炼后,能很大程度上提高学生团队协作能力和自学能力,提高学生综合素质。具体的课程体系设置图1所示。
从图1可以看出,课程之间都是有很强的关联性,先修课程与后继课程之间需要进行重要知识点的衔接,才能逐步培养学生具有硬件系统开发能力。在学生每修完一门课程,就开设一门能覆盖重要知识的综合课程设计。通过完整的工程项目案例教学,系统地提高学生的综合能力,培养学生具备到企业去做实际项目的实践能力和开发经验。充分满足业界对硬件开发人员的能力要求。
2硬件课程的教学方法和实践
培养学生硬件开发能力,一些基础课学习必不可少,如数字电路、模拟电路、C语言、数据结构、计算机组成原理、操作系统等。如果这些基础知识掌握不牢固,学生在后续专业课程的学习中会感到力不从心。另外,由于硬件知识的学习十分抽象,脱离实践去学习可能会举步维艰。因此,在教学方面要解决“重理论轻实践”问题,贯彻“理论教学与实践教学相互印证和支撑”,将多种实验课程贯穿于课程教学体系中,以提高学生学习效率和知识掌握的熟练程度。下面分几个方面对教学环节中的一些方法进行讨论。
1) 理论课堂教学。
在理论课上,教师通过对具体理论知识点的实例演示,同时穿插对理论知识点讲解,让学生们理解的更具体,从而激发学生的学习兴趣,也间接提升学习信心。学生在课后让依照课堂的演示实验自行进行实例的重复和知识点的验证。如在“嵌入式系统原理与接口技术”课程中讲解串口的传输和实现,教师在课堂上围绕验证S3C2410芯片的功能进行讲解,并在课下开放实验室让学生自行学习,以提高学生独立思考和分析解决问题的能力。
2) 实验课教学。
在实验课上,教师结合理论课上所演示的实验,讲述具体的实验内容,但并不需要完全透彻地讲解,而是把更多的时间留给学生自己思考。如“嵌入式操作系统及应用”课程的实验,教师在课上演示如何建立SAMBA服务器实现开发环境,简要地阐述一遍实验的原理及其过程,把更多时间留给学生,让学生自己建立SAMBA并建立通讯,鼓励同学间的相互讨论和提出问题。
3) 单门的课程设计。
课程设计以设计性和综合性实验为主,在一学期的理论学习和实验的基础上,进一步提高学生对整门课程知识的理解以及对相应基础课程知识的复习,并培养学生一定的动手能力。如操作系统课程设计“银行家算法实现进程同步”结合了C语言、数据结构等知识,不仅可以复习巩固一系列相关课程知识,我们还对这些课程知识进行汇总,设计出综合性课程设计,提升学生知识体系的系统性。课程设计指导书按照知识要点,循序渐进,对这些基础知识进行了进一步的综合,从而使学生将离散的知识点逐步综合起来,增强了其实践能力。
4) 综合性实践。
在学习完各门基础课程之后,教师采用适当的工程案例开展一站式综合案例教学:
(1) 讲解具体项目的知识点,并将它们联系起来;
(2) 将同学们按项目分成小组,引导各组进行项目的讨论并完成具体设计,这样不仅可以提高学生的动手能力,还能培养学生的工程素养和综合能力。
3课程体系验证
通过该课程体系的培训,学生能够具备一定的硬件系统开发能力。下面就通过一个学生实践创新项目――机房温度湿度检测硬件系统的开发来验证课程体系的有效性。
该项目的系统原理图如图2所示。系统采用ARM7系列LPC2114芯片作为控制单元,设备包括温度、湿度传感器、降温通气设备控制接口、键盘和液晶显示屏。其中键盘和液晶显示屏作为系统与人机控制的界面,这些设备采用RS-485通信接口方式和计算机实现远程控制,如及时给用户发送信息,用户对设备进行操作、处理等。
通过图2可以清晰地看到计算机与电子专业的结合:
1) 学生在选择相关的设备时需要用到一定的数字电路和模拟电路等技术知识,并了解相应的参数;
2) 选好了各种款式的电子设备后,需要设计可靠的电路,这更需要学生在电子技术实验中获取的经验;
3) 选好了硬件外设和控制芯片之后,将这些设备与CPU进行连接,就需要用到计算机组成原理和嵌入式接口技术相关的知识;
4) 接着,需要编写相应的驱动,这将涉及嵌入式操作系统和程序设计方面的知识。
当上述步骤完成后,系统可以通过传感器获取需要的外部信息。但还需要对所采集的信号进行处理,然后将处理后的信息反映到显示器上,用户还可以通过相应的设置,进行一些简单的设置,在这里就会用到如A/D转换、通信原理、数据结构和算法设计等相关知识。
系统设计完成之后,学生通过Protel绘制电路图,制作电路板将所有的外设和芯片集成起来,安装操作系统和编写好的控制软件,这样就形成了可以实际应用的一个硬件产品。
4结语
通过这种以完成项目为每门课程最终目的的方式,强调“授之以渔”的教学宗旨,使得学生每学完一门课程就能解决一些相应的实际问题,很好地提高学生的动手能力和对学科的积极性,从而有效地培养了学生的实践能力。
参考文献:
[1] 刘全利,黄贤英,杨武. 计算机应用型人才培养新思路[J]. 重庆工学院学报,2005,19(6):144-145.
[2] 易法令,谢云. 计算机硬件教学的系统性与实践性探讨[J]. 理工高教研究,2005,24(1):83-84.
关键词:实验教学;嵌入式系统;Linux系统
嵌入式Linux系统由于具有开源、网络功能强大、内核稳定高效等特性,在产品开发周期、产品的功能可扩展性、开发时的人力投入等方面都具有显著的优势,因此广泛应用于中低端智能电子设备中。随着物联网的趋热,作为物联网的底层技术之一的嵌入式智能技术将具有巨大的市场前景[1-2]。
而在高校教学中,对于嵌入式技术这类强调实践性的学科,实验对于培养学生的实际操作能力和解决问题的能力是至关重要的。本文针对当前高等院校嵌入式实验课程,特别是嵌入式实时软件开发这门课程的教学投入不足、学生学习效果不佳的问题,提出了具体的实验教学设计方案。并且详细地剖析了一些重点实验,给出了这些实验在教学设计中实现的具体方案。
1嵌入式Linux系统开发实验课程分析
嵌入式Linux课程设计具有很强的渗透性,与其他专业课程相比,嵌入式Linux课程设计具有独特的特点[3]:该课程对学生的专业知识有较高的要求,课程具有交叉性,并且对学生的动手能力和系统思考解决问题的能力要求较高。
通过实验,学生能够掌握嵌入式Linux系统程序设计方面的基本概念和技能,嵌入式软件设计的一般方法和流程,以及基本的实时控制方法、嵌入式网络编程、嵌入式文件系统操作、I/O控制等知识;通过综合实验的学习和模拟,使学生能够达到实际开发能力的目的。然而嵌入式系统的一大特色表现在发展速度上[4]。嵌入式系统的应用无处不在,其知识的新陈代谢的非常快,新技术层出不穷,这就需要教师不断地将新的应用技术补充到嵌入式系统教学体系之中,推陈出新,设计出新的实验项目。在实际的教学实验中,针对嵌入式系统实验,教师应注重培养学生自己动手设计开发综合项目的能力,使学生能够设计出实用的嵌入式软件系统,适应于社会的需要。
本文的实验运行在ARM-Linux操作系统下,结合ARM2410/PXA270/OMAP5910平台的嵌入式Linux程序设计与系统开发技术,秉承理论与实践相结合的思想,帮助学生快速跨入嵌入式系统开发的门槛。
2嵌入式Linux系统开发实验教学设计
嵌入式系统开发课程涉及操作系统分析和应用软件编程等知识,学生需要能够理解嵌入式实时操作系统的工作原理、掌握基本的开发流程和开发工具的使用方法。在实验的设计上既有简单的基础实验也有复杂的综合实验,每部分的实验环节充分体现了“分层次、分阶段”的教学思想。本文将实验分为三部分:
2.1基础性实验
目的是让学生了解嵌入式软件和硬件的一般开发环境与流程;熟悉实验开发工具,掌握实验开发工具的操作方法及使用,熟悉软件编程环境,为更进一步实验做准备。
2.1.1嵌入式应用程序交叉开发环境的建立
本实验介绍了一般的嵌入式开发流程,以及开发环境中的软件和硬件的安装与调试。目的是让学生了解嵌入式交叉编译的相关知识,以及能够搭建嵌入式Linux系统的开发环境。
2.1.2开发基本的嵌入式应用程序实例
通过嵌入式应用程序Makefile与Hello World实验,使学生熟悉Linux开发环境,了解基本的嵌入式开发的基本过程,以及Makefile的基本内容,掌握基本的程序设计方法与流程,建立起任务的概念,为后续的应用程序的设计打基础。
2.1.3Linux 多线程使用实例――生产者-消费者协议
通过本实验,学生可以了解操作系统提出的多个机制对线程的执行顺序进行限制,包括互斥锁和条件变量等机制。在这里引入生产者―消费者模型对多线程的管理机制进行描述。目的是让学生了解多线程程序设计的基本原理,并且使学生学习pthread库函数的使用。
2.1.4进程相关的应用程序设计――进程创建及通信
通过本实验,学生可以了解对于操作系统进程的一些基本操作,包括进程函数、信号函数和管道函数的相关使用机制等。目的是让学生了解在Linux下进程通信的相关原理,以及掌握使用进程进行相关应用程序设计的能力。
2.2基本技能性实验
通过构建嵌入式Linux系统以及内核定制、系统引导、文件系统、接口设计、驱动程序开发、图形界面设计、以及通信应用等实验,学生可以更清楚深刻地理解嵌入式Linux系统的相关术语,体会嵌入式Linux系统的组成要素,提高操作的人性化水平、完成功能完善的应用系统。目的是让学生掌握嵌入式系统特有的编程机制和提供的各种编程接口,使之具备基本的嵌入式程序开发技能。
2.2.1嵌入式Linux内核、引导系统和文件系统实验
通过构建嵌入式Linux系统以及内核定制等实验,学生可以更清楚深刻地理解嵌入式Linux系统的相关术语、体会嵌入式Linux系统的组成要素。目的是让学生了解Linux内核的结构、具有编译Linux内核的能力,以及了解一个操作系统的构造。
1)Linux内核裁剪与编译实验。
以源程序的形式提供给学生一个分析研究的例子,展示内核的配置、内核镜像的编译过程以及内核的测试。让学生了解Linux内核的结构,以及操作系统的构造,使学生具有编译Linux内核的能力。
2) 引导系统和文件系统实验。
此处利用一个阶段性的综合性实验―软盘Linux操作系统的实现,使学生了解一个操作系统的构造,以及如何制作软件Linux操作系统。在该实验中,要求学生使用软盘进行GRUB配置,让学生观察如何实现的引导系统;之后使用make menuconfig进行内核配置,再使用BusyBox编译生成一个新的根文件系统,使学生了解文件系统是如何实现的;最后将内核镜像和根文件系统整合到软盘中完成实验。学生在读懂源程序流程的基础上可以对例程进行修改,验证是否完成所设想的功能。
2.2.2嵌入式Linux接口设计与驱动程序实验
驱动开发是嵌入式Linux系统开发中一个重要的组成部分,此部分实验对学生的前述基本功要求较高,要求学生不仅要熟悉Linux的内核机制、驱动程序与用户级应用程序的接口关系,还要考虑设备的并发操作等因素,而且要了解所开发硬件的工作原理。
1) 虚拟驱动模块实验。
使用静态结点方式进行驱动程序的开发和测试。需要学生首先创建一个新目录,并在其中编写驱动程序nodevfs.c和Makefile文件,然后编译生成驱动程序模块。基于该驱动程序模块编写测试程序。然后将程序模块装入到目标开发板上,建立设备结点并连接,运行及测试程序。通过本实验学生可以学习在Linux下进行驱动设计的原理,掌握使用静态结点方式进行开发调试的过程以及如何使用动态devfs方式进行开发调试的过程。
2)A/D接口驱动实验。
要求学生使用C语言编程Makefile文件和线程库,完成A/D驱动程序以及测试程序。例如要求学生编程实现采集A/D前三路通道信息,并在终端上显示0~9的范围。通过本实验,学生能够掌握程序编写的基本过程,以及了解S3C2410芯片的8通道10位A/D的操作与控制。
2.2.3嵌入式Linux图形界面实验
1)Qt图形界面相关实验。
要求学生使用C语言进行编程,以及Makefile文件来完成Qt图形界面相关实验。通过本实验使学生熟悉如何在Linux环境下安装Qt和Qt/Embedded环境,如何在Qt/Embedded环境下使用qvfb显示程序结果,以及如何完成Qt/Embedded的交叉编译环境并且运行程序。
2)Qtopia的移植以及编程实验。
本实验的目的在于使学生熟悉如何在Linux环境下安装Qtopia环境,如何使用qvfb显示Qtopia环境,以及如何在开发板上运行Qtopia环境。在了解了安装Qtopia的基本步骤后,需要将Qtopia移植到ARM平台上运行。
2.2.4嵌入式Linux下的通信实验
随着嵌入式系统技术的发展,纯单机工作已经远远不能满足用户的需求,因此各个系统之间的信息交互由于具有广泛的应用价值面成为嵌入式技术更深层次的应用。因此需要学生掌握嵌入式Linux系统下的各种通信应用,包括串口通信、网络通信、蓝牙通信以及CAN总线通信。学生可以尝试把通信编程和之前的各种案例结合起来,完成功能更加完善的应用系统。
1) 串口通信实验。
串口作为计算机一种常用的接口,具有连接线少、通信简单的优点,因此得到广泛应用。特别是在嵌入式系统的开发和应用中,经常需要使用宿主机实现目标机的调试及现场数据的采集和控制。从而通过串口线连接宿主机和目标机达到通信的目的。
要求学生编写发送端程序和接收端程序,发送端程序经交叉编译后在目标机上运行,接收端程序在宿主机上运行,发送端程序通过串口发送字符给接收端。本实验的目的在于使学生了解使用Telnet登陆目标机的方法以及掌握串口通信的编程方法。
2) 网络通信实验。
随着网络的发展,需要解决网络间不同主机进程间的相互通信问题。为了解决网络上的不同主机,可以用相同的进程号来表示没有任何关系的两个进程的问题,从及操作系统支持的网络协议众多,不同协议的工作方式不同,地址格式不同等问题,实验需要学生首先熟悉TCP/IP协议中引入的地址和端口的概念,并要求学生使用C语言编写skt_cli.c程序,stk_ser.c程序以及相应的Makefile文件,编译成功后生成执行文件后,在嵌入式开发平台和宿主机上运行测试。本部分实验目的在于使学生了解在Linux系统下的Socket通信的基本原理,以及使学生掌握Socket编程的相关知识。
3) 蓝牙相关实验。
蓝牙计划主要是面向网络中各类数据及语音设备,使用无线微波的方式将它们连成一个微网,多个微网之间也可以互连,从而方便快速地实现各类设备之间的通信。本实验要求学生编译内核,使内核包含蓝牙模块的相关驱动,重新烧写内核,最终使开发板上的蓝牙适配器能够和Windows主机中的蓝牙适配器建立连接。其目的使学生掌握蓝牙设备通信原理,以及Linux嵌入式开发平台上蓝牙设备的使用。
4)CAN总线实验。
要求学生使用C语言进行编程,完成Makefile文件,CAN驱动程序,以及测试程序的编写。目的在于使学生掌握CAN总线通信原理,以及学习CAN总线控制器MCP2510驱动的开发,使学生能够更改CAN应用程序的内容,实现两台开发板之间CAN数据信息的收发。
2.3综合应用性实验
此阶段实验目的在于运用基础技能部分所学,进行综合应用,独立完成项目开发。由于是综合实验,因此在第二阶段即给出题目,要求学生在整个实验阶段进行构思与准备,最后连接代码。以基于蓝牙技术的嵌入式点菜系统为例,对项目进行整体规划设计以及具体实现的步骤进行介绍。
大多数无线点菜系统都是一套基于掌上电脑和802.11b无线局域网技术的实用型系统。从功能上来说,嵌入式开发板端即客户端,包括开台点菜模块和蓝牙数据传输模块;PC机端即服务器端,包括菜单管理模块、消费结账模块和蓝牙数据传输模块。客户端和服务器端的蓝牙传输模块都是通过后台线程实现的,而其他模块都是通过与Qt图形界面的交互实现的。
整个点菜系统的通信结构为一个微微网,服务器端位于该微微网的中心节点,利用BT_PROTO_ RFCOMM协议与其他的点菜端进行通信。
1) 服务器端设定了接收数据和发送数据的缓冲区,分别保存接收到的点菜信息和要发送的结账房间号,利用多线程技术实现数据的发送、接收和界面事件处理的“并行”执行。服务器端程序一运行,在建立图形界面的同时,创建用于蓝牙通信的线程并进行连接监听;当客户端建立蓝牙连接后,通信线程不断地从与点菜终端的连接中读取数据,若读到数据,则保存到接收数据缓冲区中,表示有点菜信息,便进行信息提取并保存到数据库的消费信息表中。同时,不断地检查发送数据缓冲区,若缓冲区内容不为空,表示有了结账的房间,则向点菜终端发送该数据。同样,客户端也设定了接收数据和发送数据的缓冲区,分别保存接收到的结账房间号和要发送点菜信息,利用多线程技术实现数据的发送、接收和界面事件处理的“并行”执行。
2) 蓝牙程序的开发主要是利用Bluez协议栈中的相关库函数,主要数据结构是sockaddr_rc,该结构的用法与Socket中的sockaddr_rc类似。蓝牙通信和Socket通信类似。另外蓝牙地址BD_ADDR和相应字符串之间的转换函数:bas2str(&rem_addr.rc_bdaddr, buf); str2ba(dest,&addr.rc_bdaddr)。
3结语
嵌入式Linux系统是一门实践性很强的学科,本文列出多个实验及综合设计环节,构成了一个完整的实验教学体系,目的是让学生由浅入深,循序渐进地去学习、了解和掌握嵌入式Linux系统开发流程,对学生的嵌入式Linux系统设计和研发能力培养起到了积极作用。
参考文献:
[1] 李岩,王小玉,孙永春. 嵌入式系统教学研究[J].电气电子教学学报,2006,28(3):45-47.
[2] 凌明,王学香,钟锐. 电子类专业嵌入式系统课程体系建设探索[J].电气电子教学学报, 2007,29(5):4-6.
[3] 王先春,郭杰荣,胡惟文,等. 基于ARM_Linux的嵌入式Web服务器的设计与实现[J].微计算机信息,2007(14):163-165.
[4] L.T.Clark,E.J.Hoffillan,J.Miller,et al. An embedded 32- bit microproeessor core or low-power and high-performance applications[J]. In:Proeeeding of IEEE Journal of Solid-State Circuits. San Francisco.2001.US:IEEE Press,2001: 1599-1608.
Design on the Experimental Teaching of Embedded Linux System Development
SHENG Linyang, LI Liping
(Computer Science and Information Engineering College, Harbin Normal University, Harbin 150025, China)
关键词:应用型本科;嵌入式软件;课程体系
中图分类号:G 文献标识码:B
文章编号:1672-5913 (2007) 07-0035-03
嵌入式系统已被广泛地应用于工业控制系统、信息家电、通信设备、医疗仪器、智能仪器等众多领域,“嵌入式无处不在”已成为现实。而社会对掌握嵌入式技术人才的大量需求,使嵌入式软硬件工程师成为未来几年最为热门的职业之一。2004年6月,美国电气及电子工程师学会计算机协会(IEEE-CS)和美国计算机学会(ACM)公布了“计算教程2004”(Computing Curriculum 2004,简称CC2004)。CC2004对原“计算教程CC2001”四个专业方向进行了修改和扩充,并给出了新的评述,其中在计算机工程专业课程中将嵌入式系统作为一门核心课程,分两个学期进行学习。可见,国内外将嵌入式技术人才的培养已经作为一个重点方向。本文根据江苏技术师范学院以培养应用型本科人才的教学体系,对在计算机科学与技术专业中增设嵌入式软件专业方向进行探讨。
1 增设嵌入式软件专业方向的可行性
20世纪70年代,随着微处理器的出现,计算机的发展出现了历史性的变化。以微处理器为核心的微型计算机以其小型、价廉、高可靠性特点,迅速应用在智能化控制领域中,这使计算机失去了原来的形态与通用计算机功能。为了区别于原有的通用计算机系统,把嵌入到对象体系中,实现对象体系智能化控制的计算机,称为嵌入式计算机系统,简称嵌入式系统。
嵌入式系统所涉及到的知识有电子工程、通信工程和计算机技术等多种学科。在嵌入式系统应用领域中,人才可分为两类,一类主要是搞硬件设计,他们大多数在本科阶段学习电子类或通信类专业;另一类主要从事嵌入式操作系统和应用软件的开发,他们大多数在本科阶段学习计算机专业。嵌入式产品硬件设计完成后,后期工作主要靠软件技术人员进行开发与设计,不同的软件体现不同的功能,在嵌入式系统设计中软件开发与设计占总工作量的80%左右,所以在嵌入式系统设计和开发中需要更多的嵌入式软件开发人才。
目前,我校从事嵌入式应用方向研究的教师有16人,其中副高以上5人,讲师5人,助教6人,获得硕士以上学位的教师有8人,在读研究生4人。与嵌入式相关的实验室有计算机组成、接口实验室,以51序列为主的嵌入式实验室,以ARM7为主的嵌入式实验室,正在筹备的以ARM9为核心的嵌入式实验室。
从社会需求、师资力量、实验室建设等多方面可得出,在我校计算机科学与技术专业中增设嵌入式软件专业方向是可行的。
2 嵌入式软件人才培养目标与规格
2.1 培养目标
嵌入式软件专业方向是以应用为主的专业,其培养目标是:德、智、体、美全面发展,掌握计算机基础理论和软件开发的过程,掌握必需的嵌入式软件理论、主流嵌入式系统硬件架构,和嵌入式软件编程的技术、方法和工具,基本具备本领域分析问题解决问题的能力,具备一定的工程实践能力,并具备良好外语运用能力,从事嵌入式软件设计与开发的应用型人才。
2.2 培养规格
计算机科学与技术专业(嵌入式软件方向)的学制一般为4年,授予工学学士学位。学生在专业知识的学习、实践能力以及职业素质的培养过程中,逐步提高自身的获取知识的能力、应用知识能力、创新能力以及团队合作的能力。
(1)职业素质
现代企业需要的人才是职业化的专业人才,企业选拔、考核人才主要从德、能、勤、绩四个方面考核,德排在首位,因此,职业素质是培养嵌入式软件人才的基础。在计算教程CC2004报告中,各专业方向的知识领域中都包含社会和职业生涯方面的知识,涉及与计算相关的哲学、历史、社会、职业和道德责任、知识产权、隐私和公民自由、计算机犯罪等内容。通过这些知识体培养学生的思想品德、职业道德和社会责任。一个合格的人才首先要具备良好的职业素质。
(2)专业能力
嵌入式系统专业方向知识结构比较庞大,为了在本科阶段培养出合格的嵌入式软件专业人才,需要将计算机知识、嵌入式系统知识、相关交叉学科(电子、通信)基础知识结合起来,形成嵌入式软件专业方向领域知识。
(3)实践能力
培养嵌入式软件人才,工程实践能力非常重要,因为嵌入式系统是以应用为中心,要求学生能借助于硬件开发平台进行实际的研究与开发,并且要求学生具有独立设计产品的能力,同时也要求学生具有团队合作的能力,这就需要在实践技能训练过程中,加强学生的动手能力、团队合作能力的培养。
3 课程体系结构
从企业实际用人需求出发,分析现阶段嵌入式相关产业领域、行业人才需求特点及发展趋势,合理地安排课程,是培养优秀人才的关键。根据培养嵌入式人才的能力构成将所学课程归纳为如下五个模块:
人文社科模块(A模块):在于强化学生的思想道德素质、文化素质和职业素质,让学生对社会环境有所认识和了解。可安排政治思想、形势与政策、法律等人文社科方面的课程,大学语文、英语、体育、心理学、经营管理等方面的课程,以及培养学生团队合作精神和沟通能力相关的课程也放在该模块中。
基础学科模块(B模块):在于为学生打下扎实的基础知识,主要安排高等数学、大学物理、计算机基础等方面的基础课程。
专业知识模块(C模块):是体现本专业业务能力和素质的核心、涉及专业基础课程、专业核心课程。
专业基础课程主要有离散数学、电路与电子学、逻辑设计、计算机组成原理、汇编语言程序设计、高级语言程序设计、数据结构、嵌入式系统概论和学科前沿讲座。
专业核心课程主要有操作系统、数据库系统原理、嵌入式微处理器原理与接口技术、计算机网络、算法设计与分析、软件工程方法学、Java 语言程序设计。
实践教学模块(D模块):培养学生实际工作能力和操作技能,主要安排为实验、实习、课程设计、实训、毕业设计、职前培训或案例分析等环节。
专业扩展模块(E模块):是培养学生专业知识和职业适应能力,该模块课程设置为选修课程,可分为专业必修课程和专业任选课程。必修课程主要有嵌入式实时操作系统、嵌入式网络技术、嵌入式系统设计方法、嵌入式系统体系结构、DSP软件开发技术、单片机原理与应用。专业任选课程可安排多种不同要求的选修课,任选课有 Windows 环境与编程、面向对象技术、无线局域网、计算机控制系统、计算机安全技术、J2ME、移动通信、家庭网关技术、计算机系统结构、WinCE 操作系统、嵌入式Linux操作系统、传感器概论等。
4 实验室建设
为了让学生能够深入地理解和掌握嵌入式软件开发与设计技术,必须建立嵌入式软件实验室,在建立嵌入式软件实验实之前,首先要对嵌入式实验课程内容、实验体系、实验室师资队伍等诸多方面进行详细设计和规划,以保证嵌入式软件实验室能够满足学生掌握嵌入式软件开发与设计的要求。根据培养目标,实验室要配备相应的硬件开发环境和软件。硬件包括开发板、仿真器等必须的硬件设备,最好采用以ARM9为核心的实验开发平台,软件包括常用的Linux、μC/OS、VxWorks、WinCE等常用操作系统,以及相应的软件开发工具。实验室要有经验丰富的、具有项目开发经验的教师进行实验指导。
5 结束语
在计算机科学与技术专业中设置嵌入式软件专业方向是可行的,它符合社会发展的需要。由于嵌入式系统将多种学科交织在一起,所以在制订教学计划,专业知识结构和课程体系时要充分考虑各学科的知识点,形成嵌入式软件专业方向人才培养的独特体系。
参考文献:
[1] 魏洪兴,王田苗. 软件专业嵌入式系统课程体系研究[C].第三届全国高等院校嵌入式系统教学研讨会论文集,北京:清华大学出版社,2005.
[2] IEEE Computer Society/ACM Task Force on Computing Curriculum. Computing Curricula-Computer Enginnering “Iron-Man Draft”. June 8,2004 (/ece/CCCE/).
[3] 康一梅. 嵌入式软件工程人才系统化教育探索[C].第三届全国高等院校嵌入式系统教学研讨会论文集.北京:清华大学出版社,2005.
[4] 2006年第三届全国高等院校嵌入式系统教学研讨会第一届全国嵌入式系统学术交流会论文集.北京:北京航空航天大学出版社,2006.