前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇嵌入式课程设计总结范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。
关键词:独立学院嵌入式课程设置课程改革优化
中图分类号:G423.04
引言
以我校(武汉长江工商学院)为例,电子信息工程专业主要培养能在信息通信、电子技术、智能控制、计算机与网络等领域和行政部门从事各类电子设备和信息系统的科学研究、产品设计、工艺制造、应用开发和技术管理的应用型工程技术人才,因此,我们以培养应用型人才为目标制定了培养方案。
课程设置现状
在我们的培养方案中,除了专业基础课程(C语言程序设计、电路分析、电工基础、数字电路、模拟电路)外,有两条主线:嵌入式方向与信号处理方向。其它方向如微电子、射频、无线电等方向,考虑到我们学生的基础以及培养方案总课时的要求,最终选择了嵌入式与信号处理两个方向,当然,随着社会的不断发展,以后的培养方案可能会考虑微电子等较新的方向。
之所以选择嵌入式硬件方向为我们的一条主线是因为嵌入式系统是当前很热门而且很有发展前景并且对于学生而言也是比较好就业的应用领域之一。嵌入式系统在智能化家居、家电,汽车电子、医疗、交通等各个方面都有应用,我们的生活已经离不开嵌入式系统。嵌入式系统是软硬结合的技术,我们以硬件设计为主设置了我们的课程如下:
表1:嵌入式方向的课程设置
围绕ARM嵌入式技术这门课,还有微机原理、单片机、EDA、DSP等课程及相关实验。
学习了微机原理和单片机这两门课后再学习嵌入式,学生更容易入门,因为嵌入式本身是从单片机发展而来,并且在微机原理与单片机这两门课程中,我们以汇编指令为主,主要是考虑到做嵌入式系统除了了解ARM处理器工作原理和接口技术还要了解ARM的汇编指令系统。
考虑到嵌入式开发的发展方向与相关领域,我们还设置了EDA技术与DSP技术两门课。数字图像压缩技术是嵌入式的应用领域之一,主要是掌握MPEG编解码算法和技术和DSP技术,另外,为追求更高速的信号处理速度,现在一些速度要求较高场合,有不少公司是将一些DSP算法用硬件来实现,这就涉及到HDL数字电路设计技术及其FPGA/IP核实现技术。这也是我们将EDA技术与DSP技术这两门课作为这个方向的专业课程的原因。
课程改革思路
首先是微机原理与单片机这两门课,目前我们开设《微机原理与接口技术》理论课54课时,实验课18课时,《单片机原理及其应用》理论课54课时,实验课18课时,课程设计36课时。微机原理课程主要是帮助学生理解一款微型计算机的工作原理、结构、汇编语言编程及其接口电路,为以后的进一步学习不同的CPU以及计算机应用打下基础。目前我们的教学还是以8086/8088作为微机原理主讲芯片,其难度较大,与实验教学和学生在课外的实际应用(如参加电子设计系列竞赛、制作小作品、毕业论文、课程设计等)脱节,教学效果不理想。
随着半导体技术的进步,处理器从单核时代进步到了多核时代,并且将来处理核的数目将会越来越多。随着多核技术的发展,可能不久的将来大多数的软件开发都将以多核芯片为基础硬件平台,随之而来的是编程语言、数据结构、算法理论、软件工程等都将随着多核的出现而进行修订,对我们专业而言,要考虑的主要是计算机硬件方向的课程设置要进行调整以适应多核时代的到来。经过调研与研讨,我们决定将上述两门课整合优化为《单片机原理与接口技术》54课时及《多核架构与编程技术》54课时。前瞻性的将多核架构及编程技术引入到独立学院电子信息工程本科培养方案中,将培养方案中的专业基础知识进行综合与升华,帮助学生,顺应市场格局变化,接受新技术新理念,建立系统、完整的专业基础理论体系,培养学生综合应用能力与创新型思维,提高动手实践能力,开拓学生的专业学术视野。使我们的学生能顺应时代的变化,在硬件、软件方面能够更好地了解多核思想及编程技术,以适应高新技术的飞速发展的需要。
其次是EDA技术与数字电路的整合。目前我们开设《EDA技术》理论课34课时,实验课18课时,课程设计18课时,《数字电路》理论课54课时,实验课18课时,课程设计36课时。这两门课在实验和课程设计的内容上有一定的重复。我们可以将这两门课整合成一门课《数字电路与VHDL》,理论课72,实验课18,课程设计36课时,改变原有的教学模式和教学内容,建立新的实验体系,让学生感受2种不同的设计方法,摆脱传统的人工设计方法与思维模式,提高学生的创新意识与竞争能力,适应市场的需要。
最后是ARM嵌入式技术,目前我们以ARM7进行理论教学,以LPC2000系列ARM7微控制器及ADS1.2集成开发环境进行实验,理论课36学时,实验课18学时,只能满足低端教学任务。在最初制定教学计划,大部分ARM系统都是基于ARM7处理器,但是随着更多应用在嵌入式系统中的实现,嵌入式系统设计向着更高级、更复杂的方向发展,现在基于ARM9处理器的产品越来越多,我们的教学要与时俱进,教学内容也要进行升级为以ARM9进行教学。从ARM体系结构的教学内容上看,ARM9的指令集完全兼ARM7,教学上没有任何区别。并且学生们面对的编程模型和架构基础也保持一致。
本校电子信息工程专业实行3+1培养模式,所有课程安排在大一到大三完成,大四学生全部参加实习,现有培养方案中,专业基础课排在第三、四学期,专业课基本压缩在第五、六学期,比如上面提到的微机原理安排在第五学期,单片机、EDA技术、ARM嵌入式技术安排在第六学期。通常在第六学期,一部分学生忙于考研,一部分学生忙于找工作,精力没有全部用于学习专业知识上,但是,经过上面的整合后,我们可以将单片机以及ARM嵌入式技术提前一个学期,再将EDA技术提前两学期,让学生们在整个大学的学习过程中,尽早的接触到专业课程,提高学生们的学习兴趣,这不仅可以让一部分想参加电子设计系列竞赛的同学可以尽早的进行系统学习,也可以让准备考研和找工作的同学投入更多精力学习专业知识。
参考文献
关键词 嵌入式系统;教学改革;课程建设
中图分类号:G642.0 文献标识码:B 文章编号:1671-489X(2010)18-0039-02
Teaching Reform and Practice for Embedded System Course in Application-oriented Colleges//Zhang Wenfen, Gao ShouPing, Lu Wukui
Abstract This paper introduces the characteristics of embedded system course and the problems embedded system teaching faced in application-oriented colleges. According to the teaching reform and practice of our school, this paper proposes the corresponding reform measurements from the aspects of teaching contents, textbook construction, practice teaching, interest cultivation and teacher staff construction.
Key words embedded system; teaching reform; course construction
Author’s address Faculty of Computer, Xiangnan University, Chenzhou, Hunan, China 423000
嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统[1]。20世纪90年代以来,嵌入式系统软、硬件技术发展迅速,应用领域逐步扩大,嵌入式技术也成为最热门、最有发展前途的计算机技术之一。
随着嵌入式技术人才需求量的增加,许多高校的计算机、电子、通信、自动化等专业都相继将嵌入式系统课程列入教学计划。嵌入式系统作为一门较新的课程,其教学内容的选择、教学模式的确定、实验教学的组织等问题,依然处于探索阶段。
本文主要针对应用型本科计算机专业的嵌入式系统课程教学,对湘南学院在教学改革过程中取得的成果和经验加以总结,提出一些改革措施和建议。
1 课程目标
目前社会所需的嵌入式人才是掌握电子设计及计算机相关知识的人才,也就是通常所说的硬件工程师和软件工程师,而其中软件设计人才约占80%左右[2]。硬件工程师主要由电子技术类专业的人员担任,软件工程师则主要为计算机类专业人员。
对于应用型本科计算机专业学生,嵌入式系统课程的教学目标是:通过本课程的学习,使学生了解和掌握嵌入式的基本概念、系统结构和嵌入式系统软件开发的基本方法;能够使用开发工具设计开发简单的嵌入式系统设备驱动程序和应用软件;为进一步学习和研究嵌入式系统打下基础。
2 课程的特点
嵌入式系统是一门综合性很高的计算机专业课程,所需基础知识较多,涉及内容广泛,不仅涵盖软、硬件技术的很多方面,而且与通信、自动控制、电子等专业知识相关。要求学生具有较好的计算机软、硬件基础知识,教学的难度较大。嵌入式系统是一门实践性很强的课程,只有通过实验才能真正理解和掌握嵌入式系统开发的方法。
嵌入式系统具有非垄断性的特点,没有哪一个系列的处理器和操作系统能够垄断市场。主流产品的多样性决定了嵌入式教学内容的多选择性,各高校讲授的处理器和操作系统不尽相同,配备的实验平台也不一样。
3 课程改革与实践
3.1 教学中存在的主要问题
基于嵌入式系统课程的上述特点,嵌入式系统教学普遍面临一些困难,存在一些问题,了解这些问题有利于在教学环节有针对性地采取措施进行改进。主要问题有:内容多,课时少;没有统一的经典教材;实践能力培养不够,实验课时不足,过于依赖实验箱;学生对此课程的兴趣小;师资力量较弱;等等。
3.2 相应的课程建设与改革实践
1)教学内容选择。2004年IEEE和ACM对计算机类本科教育的课程体系进行设置时指出,嵌入式系统课程应包括以下内容:嵌入式的发展历程和概述、嵌入式微处理器、嵌入式软件设计、实时操作系统、低功耗计算、系统可靠性设计、设计方法学、嵌入式系统设计工具、嵌入式多处理器系统设计、网络化嵌入式系统、接口和混合信号系统等。讲授全部这些内容是不切实际的。目前,各高校嵌入式系统课程多为32~48课时,湘南学院为50课时,即便只讲授其中的基础和核心内容,课时安排也非常紧张。
根据课程目标的要求,有所侧重地选择教学内容,以软件开发为主,包括应用软件和驱动程序开发,放弃硬件设计内容。并且在多种处理器、操作系统中选择主流、有发展前景的ARM微处理器和嵌入式Linux作为主要授课内容,不贪多贪全。教学内容包括主要的开发过程和技术,用少量简单例子说明各环节的相关知识和开发方法。不追求多和复杂,而重视来龙去脉,既让学生有全局观,便于知识扩展和课后自学,又不会让多、难、复杂的内容吓跑学生。湘南学院嵌入式系统课程的教学内容如表1所示。
2)教材建设。确定了教学内容之后,应该根据教学内容为学生选择一本合适的教材,教材应当包含尽可能多的教学内容,并且在教学内容的基础上有所扩展。目前并没有统一的经典教材可供使用,现有的教材多但不实用。解决方法:选购现有教材+试验箱提供的教材+自己补充内容。湘南学院选用的教材是《基于ARM嵌入式Linux应用开发与实例教程》[1],补充内容主要包括嵌入式系统概述、汇编语言和C语言混合编程、简单的启动程序和Linux常用命令,以及一些例子程序。此外,结合学院实际情况,积极展开自编教材和实验指导书的相关工作。
3)实践教学。针对嵌入式课程实践性强的特点和实验课时普遍偏少的现状,引入“Learning by Doing”的教学思想,适当提高实验课比例。建议将总学时的3/4安排为实验课,把与实验直接相关的理论带到实验课上讲解。理论课占总学时的1/4左右,主要讲授基础知识、基本原理,比如第一章的全部和第二、三章的大部分内容。另外,对学生开放实验室也可以弥补实验课时的不足,提高学生动手能力,特别是对于进行嵌入式课程设计和毕业设计的高年级学生。
在实验教学中还存在过于依赖实验箱的问题,学生只需按照试验箱自带的实验指导书的步骤一步一步操作就可以轻松完成实验。实验箱就像一个“黑盒子”,学生对其中的功能实现不甚了解。针对这种情况,建议任课教师将实验箱现有的例子程序作为参考例题,对题目进行一些修改后再作为学生的实验题。包括实验箱提供的驱动程序,不宜全部作为“黑盒子”直接调用,而是让学生编写最简单的一两种设备(比如LED和串口)的驱动,以了解驱动程序的开发方法。
4)兴趣培养。兴趣是最好的老师,只有学生对这门课程有了兴趣,才会有更高的学习热情和积极性,才能有更多收获。为了提高学生对嵌入式系统课程的兴趣,采取下面的几条措施。
①在理论教学中,选择简单、基础、易于理解的内容及实际应用中最常用到的内容来讲解,难以理解和非常用的内容则尽量不涉及,以减少学生学习时的挫折感。
②在实验环节,教师布置的实验题目要集知识性、趣味性于一体,使学生能够把所学的知识运用到解决一些趣味性的问题上,变被动学习为主动学习[3]。
③提前布置课程设计题目。在课程的前期就把课程设计的选题公布给学生,并且在其后的教学中尽量以课程设计中需要用到的功能作为例题或者实验题,让学生带着问题和需求学习。
④注意发现对嵌入式系统有兴趣的学生,提议他们将嵌入式系统设计作为毕业设计的选题之一。此外,鼓励这部分学生参加大学生电子设计大赛等活动的嵌入式系统设计大赛,这样既可以发掘和进一步培养嵌入式系统的人才,又可以通过这部分学生带动其他学生的积极性。
5)师资队伍建设。嵌入式系统的发展速度快,课程的实践性强。嵌入式系统课程教师不仅应该具备扎实的理论基础,还应具有较为丰富的实践经验。针对教师理论基础扎实但实践经验不足的情况,学院采取“把授课教师送出去”的措施,选送教师到公司或者研发能力强的高校进行短则几天、长则半年到一年的进修学习。到目前为止,大部分授课教师都有外出学习和培训的经历,极大地提高了教师的实践能力。另外,学院也在积极争取“把实际项目请进来”,由教师组成开发团队进行开发,进一步丰富教师的项目经验。只有具备丰富的实践经验,教师才能在教学中理论联系实际,把握重点,激发学生的兴趣,取得更好的教学效果。
4 结束语
上述改革措施已在学院的教学实践中发挥了积极作用,显示出成效,对各院校的嵌入式系统课程教学模式改革和课程建设具有一定的借鉴意义。不同院校可以根据自身及学生的特点,选择教学内容,调整教学方式,培养出更优秀的嵌入式系统的人才。
参考文献
[1]林晓飞,刘彬,张辉.基于ARM嵌入式Linux应用开发与实例教程[M].北京:清华大学出版社,2007
[关键词]RFID射频识别技术物联网教学改革
中图分类号:D68 文献标识码:A 文章编号:1009-914X(2017)04-0267-01
0 引言
射频识别是无线电频率识别(Radio Frequency Identification,RIFD)的简称,即通过无线电波进行识别。[1]RFID射频识别技术是当前热点技术之一,也是物联网的基础之一,它能够在不需要人工干预的情况下,自动完成物品信息的采集、处理和识别等功能,给交通、安全、销售、管理和物流等领域带来了巨大的变革,也为我国信息化建设做出了巨大的贡献。RFID射频识别技术作为物联网专业的核心课程之一,是一门理论性和实践性都很强的课程,RFID射频识别技术不但能够结合之前的嵌入式系统应用技术的相关知识,还能为后续的毕业设计打下良好地基础,对物联网专业学生的实践能力和理论知识体系的培养至关重要。
1“RFID射频识别技术”课程的教学模式
1.1 理论教学模式
“RFID射频识别技术”课程的理论教学方法如下:首先,简单学习RFID射频识别技术中的一些基本概念和基本原理,主要包括RFID射频识别技术的概念、特点、基本工作原理和应用系统构架;其次,重点剖析RFID射频识别技术的基础理论和行业相关标准,主要包括射频前端电路的原理、编码和调制、数据校验、防碰算法、数据传输的安全性以及ISO/IEC标准这几部分;最后,从应用的角度出发,分别从软硬件角度介绍125kHz、13.56MHz、900MHz和2.4GHz@四个频率下的阅读器、应答器以及天线的设计方法。
通过本课程的理论知识的学习,使得学生能够熟悉RFID射频识别技术的概念和工作原理,在理论教学的过程当中通过采用典型案例分析的方法,比如学校食堂饭卡、图书馆管理以及公交车刷卡等生活中经常使用和随处可见的案例,使学生通过案例理解进而掌握RFID射频识别技术在各个领域的应用、设计方法和开发过程等,逐步培养学生掌握RFID射频识别技术的系统集成设计以及相应的分析能力,并通过实践环节设计和搭建实际的射频识别应用系统,为将来的毕业设计、参加工作和增加就业竞争力打下良好的基础。[2]
1.2 实践教学模式
实践教学是“RFID射频识别技术”课程中至关重要的一部分,实践教学不仅是培养学生应用能力的重要组成部分,而且实践教学必须以理论教学为依据,只有两者相结合才能让学生更好地去理解和应用RFID射频识别技术。实践教学是在本校的物联网实验室中进行的,主要包括RFID射频识别技术基础实验和RFID射频识别技术课程设计两大部分,通过这两部分的实践教学来巩固学生的理论知识并提高学生的实践能力。
实验部分的教学一方面由教师向学生演示物联网智能家居中的门禁系统,以及通过原理机基础实验和原理机通信协议实验的学习,原理机基础实验包括通过示波器查看RFID系统载波的产生、RFID系统的编码、RFID系统的信号功率放大、RFID系统副载波解调、RFID系统包络检波、RFID系统数据速率选择和RFID系统天线等基础实验,原理机通信协议实验包括CRC计算实验、读单个Block实验、写单个Block实验、读多个Block实验、写多个Block实验、标签选择命令实验和复位命令实验,让学生能够对RFID射频识别技术的理论知识和实际应用有个直观的认知;另一方面是让学生使用应用型RFID实验箱中的125kHz、13.56MHz、900MHz和2.4GHz这四个频率模块分别进行寻找标签实验、识别单个标签实验、识别多个标签实验、读取标签实验、写入标签实验以及标签的防碰撞实验,并结合嵌入式开发环境搭建、Qt开发环境搭建和嵌入式串口通信这三个嵌入式系统应用技术的相关实验,通过LCD液晶显示器观察不同频率下的实验结果,通过这几个频率模块下的实验让学生更好地理解在不同频率下的应答器和阅读器的工作原理、通讯协议、RFID两个常用标准、选择方法以及相应的应用领域,还能进一步巩固之前嵌入式系统应用技术课程的知识。通过实验部分的学习,一方面巩固了之前的理论课程的学习,另一方面为后续的课程设计也打下扎实的基础。
课程设计部分采用让学生分组进行一个实际应用设计的方法来加强学生的综合能力和合作能力,每组学生可以根据自身的特点选择自己比较擅长的模块,课程设计部分的题目如下:图书馆管理系统、超市会员卡管理系统、ETC充值系统、商品溯源系统和校园一卡通系统,通过课程设计部分让学生掌握RFID射频识别技术的基本设计原理、流程和方法,学生在这部分的学习当中不但能够发挥自己的长处,提高学习兴趣、增强自信心,还能够互相学习和沟通,增加学生之间的感情。实践教学方案如图1所示[3]。
2 “RFID射频识别技术”课程的教学改革与实现
“RFID射频识别技术”课程的教学改革主要从考核方式这方面进行全面改革,由于传统的考核方式都是采用期末考试作为检验学生掌握情况的标准,这种考核方法严重忽略了学生的实践能力,导致学生在实践环节出现不学习、不认真和不动手的情况。针对这种情况,改革后的“RFID射频识别技术”课程的考核主要由学生的平时实践环节和最后的笔试环节两部分构成,实践环节不但包括要检查学生的实验运行结果和相应的软件程序代码,针对不同的实验还包括相应的答辩环节,这个环节主要要求学生回答教师和其他学生针对于设计提出的问题,通过学生的答辩来检查学生的学习效果,并计入到最后的考核成绩当中。
通过这种考核方式能够提高学生学习的积极性和学习兴趣,能够让学生主动参与到教师的教学过程当中,积极与教师和学生进行沟通交流,进而提高学生的实践能力,也能更好地巩固理论基础。当然,教师在整个教学过程中也要多学习,多参加一些相关的培训和研讨会议来提高自身的知识水平和实际应用能力,能够更好地指导学生,而且针对学生在实际的上课过程当中遇到的问题要及时调整教学方法,这样才能更好地帮助和指导学生。
2 总结
“RFID射频识别技术”是物联网专业的核心课程之一,该课程不仅对学生之前所学习的知识进行了延续和巩固,还对学生的后续学习、实践能力、毕业设计和就业前景都具有一定的影响。本文结合我校物联网专业学生的实际学习情况,从理论教学和实践教学两部分对这门课程进行了探索和改革。同时,教师在教学的过程当中也要不断地总结教学经验,积极参与相关培训和研讨,与时俱进,紧跟时代步伐,对学生认真负责,以便学生能够胜任物联网专业的技术和就业需求。
参考文献
[1] 单承赣,单玉峰,姚磊.射频识别(RFID)原理与应用[M].北京:电子工业出版社.2015(7).
关键词:计算机;嵌入式;教学;ARM
嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统[1]。它一般由嵌入式微处理器、硬件设备、嵌入式操作系统以及用户的应用程序等四部分组成,用于实现对其他设备的控制、监视或管理等功能。嵌入式系统因体积小、可靠性高、功能强、灵活方便,其应用已深入到各个领域[2]。每年全球嵌入式系统带来的相关工业产值已超过1万亿美元。嵌入式系统是当前最热门最有发展前途的IT应用领域之一[3]。针对市场对嵌入式人才的巨大需求,许多高校的计算机,通信、电子、自动化等专业都相继开设了嵌入式系统的相关课程。嵌入式系统作为高校新兴的一个专业方向,如何开展“嵌入式系统”教学,以达到学习嵌入式技术知识、掌握嵌入式系统基本开发方法和应用的目的,是很多高校都在思索的问题。
本文首先分析了目前“嵌入式系统”教学普遍存在的一些问题,然后对本科院校计算机专业嵌入式系统方向的教学和课程设置应解决的主要问题进行了探讨,最后,结合教学实践,总结了一些教学经验。
1“嵌入式系统”教学中存在的问题
由于各高校开设“嵌入式系统”课程的时间并不长。目前,各高校在教学中都处于探索阶段,存在如
下一些亟待解决的问题。
1.1缺少高质量的教材
因为嵌入式技术往往和行业背景结合紧密,所以高校在选用课程教材时,应考虑理论和实践应用相结合、面向应用的教材,只有选用这类教材,教学才不会和实践应用脱节,陷入空洞的理论讲解。但通过近几年的教学实践和市场调研发现,由于新技术日新月异,相应教材的更新速度很难赶上技术更新的速度,这也导致了很难找到一套普遍适用的系列教材,给教学带来一定不利影响。
1.2内容深度不够
嵌入式系统是一门很新的技术,目前虽然很多高校开设了这方面的课程,但是师资往往没有同步跟上,很多教师都是从单片机教学转型而来,缺少嵌入式系统相关技术的系统培训,在短期内无法跟上新技术变革,因此出现教学内容广度有限,深度不够的现象。
1.3缺少实践性
嵌入式系统技术是一门实践性很强的技术,实践是教学的重要环节。如指令编程、驱动程序设计、内核的移植设计和应用等知识的学习,需要学生通过大量的实践环节来加深理解和掌握。但是目前很多高校在开设“嵌入式系统”课程时,缺少相应的实验设备,没有与工程实际应用密切结合的课程设计和毕业设计,使得学生实践能力不强,学习没有兴趣,达不到应有的效果,学生发展后劲不足。
2计算机专业“嵌入式系统”教学的一些思考
嵌入式系统的特点是涉及知识面广,综合性、实践性强,学科发展快,因而学习难度大。不同的专业有不同的特点,对于计算机专业开设“嵌入式系统”课程而言,不能简单的照搬其它专业的“嵌入式系统”教学模式,必须根据计算机专业学生和课程特点量身打造适合本专业的教学模式。经过近几年的教学实践发现,对于计算机专业开设“嵌入式系统”课程,若想达到良好的教学效果,需要先解决以下几个方面的问题。
2.1选择ARM芯片还是其它芯片
构成嵌入式系统的核心之一是嵌入式处理器。可以作为嵌入式处理器的主流芯片有ARM、微处理器(MPU)、微控制器(MCU)、数字信号处理器(DSP)等。目前在嵌入式领域中广泛应用的是ARM系列芯片。ARM处理器具有高性能、低功耗、低成本的特征[4]。作为世界第一大IP知识产权厂商,ARM公司本身不直接生产芯片,而是靠转让设计许可,将其设计的芯片知识产权授权给其他公司,由合作公司生产各具特色的芯片。可以说,ARM公司引发了嵌入式领域的一场革命,在低功耗、低成本的嵌入式应用领域确立了市场领导地位,是目前32位市场中使用最广泛的微处理器[5]。目前,ARM已经成为移动通信、手持计算设备、多媒体数字消费等嵌入式应用的RISC(精简指令集计算机)标准。因此,学习以ARM为核心芯片架构的嵌入式技术具有非常广阔的前景。基于ARM芯片的应用广泛性,在教学实践中,应选择ARM作为学习嵌入式系统的重点内容。
2.2选择ARM7还是ARM9
众所周知,ARM7的教学偏重于硬件,ARM9的教学偏重于软件。谈到计算机专业开设“嵌入式系统”课程,大家自然就会选择ARM9。于是,现在各高校计算机专业在引进“嵌入式系统”教学实验箱时,一种流行的趋势是普遍采用ARM9核的实验箱,一方面体现了教师们迫切希望让学生能接触最先进的、实用的、前沿技术的良好用心,另一方面也暴露了一
些认知上不足之处,因为这种追求高端设备的做法并非适合计算机专业。ARM7作为学习ARM9的基础,如果让学生跳过ARM7而直接学习ARM9是比较困难的,也达不到良好的学习效果。因此,计算机专业的“嵌入式系统”教学也离不开ARM7这一教学环节,因为一个从事基于ARM9的嵌入式Linux或Windows CE软件开发的程序员,如果没有扎实的硬件理论,硬件设计和制作基础,是很难胜任的。此外,计算机专业的学生还有部分人将从事基于实时操作系统的软件设计,这也是离不开对ARM7的学习的。有鉴于此,我们完全有理由在教学中着重强调ARM7的重要性。
基于上述原因,我们认为ARM9教学偏重于软件,ARM7教学偏重于硬件,二者是互补的。对计算机专业而言,最好能在课时允许的条件下,两方面的课程都能开设。我们的做法是:教学中侧重于ARM7,而科研中侧重于ARM9。这种做法经教学实践证明是可行和有效的。
2.3选择嵌入式Linux操作系统还是其它操作系统
目前,嵌入式操作系统可选范围很大,成熟的嵌入式操作系统有嵌入式Linux系列、Windows CE系列和众多的实时操作系统。Linux操作系统用于嵌入式系统,产生了几个不同的版本,重要包括µClinux、嵌入式Linux和RTLinux等,其中µClinux适用于处理器内没有MMU(内存管理单元)的ARM处理器,RTLinux则侧重改善Linux的实时性,而嵌入式Linux除了在图形和文件系统上与桌面Linux有所不同外,内核本身并无差别,因此作为内核一部分的网络功能与桌面Linux的一样强大。Linux作为一种开放源代码的操作系统,在嵌入式领域应用越来越广泛。因此,在实际教学中选择嵌入式Linux操作系统是非常合适的,既不存在版权问题,可以免费使用,同时其开源性,有利于创新性人才的培养。在嵌入式操作系统教学中,应以嵌入式Linux操作系统作为讲授和学习的重点。
另外,“嵌入式系统”课程可以说是整个计算机学科的综合,它基本上涉及了计算机学科的方方面面,包括硬件方面、软件方面和网络方面等。这就要求学生在学习嵌入式系统之前,首先学好这些方面的课程,打下了良好的基础,才能把嵌入式系统的相关内容学好。
3教学实践经验
在“嵌入式系统”教学实践中,除了注重课堂教学效果外,还需要采用多样化的辅助教学手段,全面提高课程的教学效果。
关键词:嵌入式Linux;体系结构;课程研究
中图分类号:G642.0 文献标识码:A 文章编号:1007-0079(2014)23-0070-02
近年来嵌入式Linux系统发展较快,在中国,以Linux为基础的嵌入式操作系统也很活跃,其中中软Linux、红旗Linux、东方Linux是业界的代表。嵌入式Linux系统的应用范围很广,尤其随着智能手机及物联网系统的发展,基于嵌入式Linux系统的电子产品已进入人们的生活,如基于Linux的Android系统,基于Linux的智能家居系统、物联网系统,3G行业应用如移动视频监控-车辆应急指挥调度、远程的区域监测、安防领域、移动电子商务等。嵌入式Linux是把Linux内核移植到一个专用嵌入式设备的CPU和主板上。嵌入式Linux和桌面Linux提供的API函数与内核源代码都是相同的,嵌入式Linux开发主要通过在桌面Linux利用源码编辑器如vi编写源代码,通过交叉编译器编译出能在嵌入式开发平台如手机、机顶盒或智能家居等产品上运行的可执行文件。嵌入式Linux开发的工具还包括调试器、CVS等项目管理软件等。
一、嵌入式Linux设计课程概述
嵌入式Linux设计是电子信息专业及相近专业的一门专业课,其目的是使学生了解主流嵌入式系统开发软件嵌入式Linux驱动程序的设计和开发过程。学生熟悉掌握嵌入式系统常用的硬件接口时序、电气特性;掌握针对硬件的Linux驱动程序实现方法,包括I/O口、CAN总线、触摸屏、IIC、异步串口、音频、显示、USB、以太网及Flash的使用及驱动程序的编写。[1]熟悉嵌入式Linux的中断处理、Boot Loader和内核电启动过程。图1为嵌入式Linux系统架构图。
二、嵌入式Linux设计课程研究
1.嵌入式Linux系统体系结构
(1)嵌入式Linux系统硬件组成。核心板:采用高性能嵌入式处理器、Mobile DDR、NAND Flash、NOR Flash;电路:带触摸屏真彩色宽屏LCD、USB HOST、UART,RS232端口、立体声语音输出、耳机、自适应10/100M网卡、板载GSM/GPRS模块、步进电机电路模块,搭载射频模块;扩展模块:主/从蓝牙模块、Zigbee模块、传感器部分。
(2)软件组成。操作系统:Linux2.6.21,Linux2.6.38。引导程序:U-boot.1.1.6。图形界面:QT 4.6。嵌入式Linux系统的开发流程。元器件选型:根据要实现的系统功能及目前市场上可选用的元器件来设计电路。原理图编制:用Protel等相关电子CAD工具将设计好的电路图在电脑中绘制出来。印制板设计:在Protel等工具中画好芯片及电阻、电容等封装,将原理图转换成PCB板图,并完成布线。样板试制:把PCB板图进行制板,并焊接好相应元器件。硬件功能测试:在焊接元器件时要按功能模块顺序焊接,焊接好一个模块后接着测试其功能,发现问题及时解决。如通过USB供电模块对应的USB接口及降压芯片、电阻、电容等焊接完后,将USB接口插到电脑USB接口处,并通过万用表测量USB接口引脚电压,如果显示5V即为正确电压,说明电路设计及焊接都成功。如果以后其他部分出现问题时可以排除这部分芯片的嫌疑。编写引导程序:分汇编语言部分和C语言部分,实现硬件初始化和引导操作系统的功能。操作系统移植:在官网下载最新Linux版本,根据本设备硬件配置裁剪Linux源代码并修改。文件系统:没有文件系统,内核不完整,最后内核启动后要找文件系统,如果没有文件系统会提示失败。通过文件系统管理硬盘,下载应用程序。驱动程序编写:用户程序无法直接操作用户态,要用中间层软件―设备驱动程序。用户程序必须通过系统调用,间接调用驱动程序访问硬件。API设计与开发:API设计是为了让应用程序员在开发时更方便,提供了绘图接口函数、文件接口函数及控件函数等。应用程序设计:根据功能需求设计如手机游戏、PDA基本管理功能、机顶盒信号处理等。[2]系统联调:产品所有功能设计好后,整体加载到硬件设备中,调试其功能稳定性。样机支付:加工外壳,封装好设备,可以投入市场。
该部分要在课程讲解的基础上带领学生通过实践课或课程设计完成一项电子产品的整体设计,让学生真正体会到嵌入式产品是什么,怎么移植嵌入式Linux系统。
2.引导程序
引导程序Bootloader是系统加电后运行的第一段代码,也就是在内核启动前运行的第一段程序。引导程序的功能:初始化硬件设备、建立内存空间的映射图。将操作系统内核映像从Flash内拷贝到RAM中,然后跳转到内核的入口点去运行,即启动操作系统。常见的Bootloader有Vivi、Blob、Redboot和U-Boot。下面介绍U-Boot的启动流程:
(1)第一阶段。依赖于CPU体系结构的代码,用汇编来实现:系统上电后进入svc模式;关闭看门狗禁止所有中断;进行初级硬件初始化后将自身代码拷贝到SDRAM中;设置堆栈、清空bss段,最后跳转到C语言实现的第二阶段中。
(2)第二阶段。设置参数引导内核,并跳转到内核入口处。通常用C语言来实现,可以实现复杂的功能,并具有很好的可读性和可移植性。
该部分的源代码量比较少,涉及到ARM汇编和C语言编程,是整个系统中的第一段代码,很重要,需要带着学生从第一行代码开始逐行剖析。
3.嵌入式Linux内核
分析内核源码:包括初始化Cache、Mum等设置;内核解压函数;非压缩内核启动汇编段。内核移植:修改与具体的硬件构架和开发板类型相关的文件代码,如.config文件。选择相近的demo板,可以最大实现代码重用,在此基础上进行必要的修改。对不同类型的NAND Flash、网卡、YAFFS FLASH进行移植修改。Linux代码量很大,该部分的学习重点是如何移植Linux到嵌入式平台上,如何裁剪代码。
4.设备驱动程序
上层应用程序是通过驱动程序使用底层硬件。应用程序使用标准库调用,用户程序必须通过系统调用,间接调用驱动程序访问硬件。每个硬件接口不一样,由内核提供黑匣子接口屏蔽用户。设备驱动程序分为字符设备驱动程序(包括各种串行接口、并行接口等)、块设备驱动程序(包括磁盘设备等)、网络设备驱动程序(包括网卡等)及杂项设备驱动程序(如SCSI、时钟等)。[3]驱动程序代码也是以移植修改为主,根据新增加接口及设备型号修改厂商支持的原有程序代码。
5.文件系统
Linux中一切皆文件,所有的设备、内存都模拟成文件。Linux的文件系统包括四种:命名空间、API(用来便利和操作对象的一套系统调用)、安全模型(用来保护、隐藏和共享事物的方案)和实现(把逻辑模型同实际硬件联系到一起的软件)。建立在Flash上的文件系统包括EXT2、Jffs2、yaffs、CRAMFS、proc等文件类型。Linux下的文件分成五种文件类型:字符设备、块设备、连接、普通文件和目录。
构建嵌入式文件系统先构建根文件目录,文件系统通过busybox工具集来制作目录和根文件系统,通过mk命令做成crmafs只读根文件系统镜像,最后烧写根文件系统。
6.图形界面
QT是现在流行的跨平台的C++图形用户界面(GUI)工具包。通过QT能设计2D、3D等多种界面图形。在QT程序中,利用信号和插槽机制进行对象间的通信。QT有Windows版本,可以在Windows操作系统中开发后通过交叉编译后移植到嵌入式Linux环境中。[4]在设计嵌入式Linux界面时使用Windows QT4.0在Windows环境下开发,属于可视化界面,不用通过代码创建控件,通过工具可以直接拖拉控件到窗口中,简单方便。
三、嵌入式Linux的发展方向
嵌入式Linux发展的前景非常好,但是人才的缺乏已经成为当前制约嵌入式Linux发展的瓶颈。一方面,因为嵌入式人才领域门槛较高,从事嵌入式软件开发的工作人员不仅要熟练掌握C/C++、汇编语言等基础,而且对Linux内核和底层驱动程序及硬件都要熟悉。另一方面,因为这一领域较新,目前发展太快,很多软硬件技术出现时间不长,如ARM11/A8处理器、嵌入式Linux操作系统、无线通信协议、移动USB3.0高速传输等,目前国内乃至国际上能够掌握这些新技术的人才相当匮乏。所以近几年包括未来几年,市场对嵌入式Linux人才的需求都非常旺盛。
四、总结
嵌入式Linux设计课程涉及嵌入式Linux系统构建、驱动开发、内核移植、根文件构建、应用及图形开发。嵌入式Linux设计还可以增加系统管理部分内容,如服务器管理、数据库管理、网络配置、防火墙配置与管理、日志管理及维护等。随着Linux操作系统的完善和发展,以嵌入式Linux为内核的嵌入f系统也已无处不在。数字化、智能化使传统设备电子化,具有这些功能的嵌入式Linux操作系统的应用前景会越来越广,学好该课程对发展嵌入式系统、物联网技术具有重要意义。
参考文献:
[1]王小妮.基于嵌入式系列课程的教学改革与探索[J].教育理论与教学研究,2013,(5).
[2]冼进.嵌入式Linux应用开发详解[M].北京:电子工业出版社,
2007.