前言:中文期刊网精心挑选了嵌入式系统的基本原理范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。
嵌入式系统的基本原理范文1
关键词:嵌入式系统;集中授课;教学方式
中图分类号:G642.4 文献标志码:A 文章编号:1674-9324(2015)49-0182-02
一、引言
随着信息化与工业化的融合及工业4.0国家战略的提出,嵌入式系统技术有着越来越广阔的应用空间。目前,嵌入式系统技术已经深入应用到了工业控制、智慧城市、智慧交通、智能家居、智能医疗、智能穿戴、通信设备等人们生活的各个领域。为了适应社会对嵌入式系统开发人才的紧迫需要,如今大多数高校在电子信息工程、自动化等专业开设了嵌入式系统方向[1-3]。在嵌入式系统开发方向课程教学中大多高校仍采用传统的授课方式,即把相关专业课分散到三到四个学期,每门课又分散到一个学期讲授,每周二到三次课。其教学效果并不理想,学生普遍感到该课程难以掌握。为了解决上述问题,本文给出集中授课方式在嵌入式系统方向教学中应用的一些想法和意见。
二、嵌入式系统方向开设背景及课程介绍
(一)嵌入式系统开设背景
所谓嵌入式系统是软硬件紧密结合的综合系统,一般而言,嵌入式系统由嵌入式硬件和嵌入式软件组成,它是面向用户、面向应用、面向产品的专用计算机系统。嵌入式系统拥有软件硬件可裁剪,对可靠性、成本、体积和功耗严格要求的特点。基于嵌入式系统的“专用性”以及“嵌入性”,在各个领域均有嵌入式系统的广泛应用。因此当前嵌入式系统拥有巨大的发展潜力、社会需求大量的嵌入式软硬件工程师。在此背景下,以及遵循培养应用型人才的教学理念下,国内绝大多数高校纷纷开设嵌入式系统开发课程。
目前我校的嵌入式系统方向人才培养目标是:掌握电子技术、嵌入式系统应用与开发、物联网技术开发与应用等工程领域的实践知识和技能,具备嵌入式开发、嵌入式系统测试、物联网应用开发能力,能在通信、电子设备设计制造、物联网应用、IT业等部门从事嵌入式系统软硬件分析与设计、测试、物联网研究与开发、电子信息系统应用与维护、开发、测试、销售及研究等生产和管理第一线需要的高素质应用型人才[4]。
(二)嵌入式系统课程介绍
嵌入式系统课程一般包括:Linux系统、C语言、C++面向对象的程序设计、ARM微处理原理与应用、嵌入式系统GUI开发。其中Linux系统为嵌入式系统课程的核心部分,在今后的嵌入式开发编程过程中大多是在Linux环境下进行;C语言则属于嵌入式系统开发最基础也是最重要的编程语言,目前嵌入式系统硬件开发多是基于C语言;C++语言则是属于面向对象的高级编程,嵌入式系统GUI开发则是在Linux环境下在Qt上使用C++语言进行图形界面的编程设计;最后ARM微处理器的原理与应用是整个嵌入式系统课程的精华也是其难点所在,所有的程序都需要在ARM处理器上运行,所以学习好ARM原理与运用无论以后做硬件工程师还是软件工程师都有着重要意义[5-7]。
三、嵌入式系统方向教学方式现状
目前绝大多数高校仍然采用传统的授课方式来讲授嵌入式系统课程,即把相关专业课分散到三到四个学期,某门课程在一个学期开展,分散在15~18个教学周,每周讲授4~6节课。从近几年毕业生难以适应市场的需求来看,按照传统的教学方式对嵌入式系统课程进行教学显然有着巨大的不足之处。主要不足是:
1.知识点的讲授不连贯,往往在下节课浪费了大量的时间来进行上次课的补习。
2.实践应用少,尤其对于应用开发型的课程,讲完理论之后缺失及时的实验开发。即使加了实验课,某些实验项目不能在两节课完成[8]。
3.时间跨度过大,嵌入式系统课程知识涉及面广,仅仅上述的四门基础课程按传统授课计划一学期一门课来看,需要两年才能完成。
4.高校针对嵌入式系统教学知识落后于当下嵌入式技术发展,同时也缺乏有资深嵌入式工作经验的教师。
四、集中授课方式在嵌入式系统方向教学应用
集中授课方式是指把某门课程集中在一段时间内连续进行学习,直到该门课程进行完毕,再开展下一门课程的学习。整个学习阶段大致是以知识点做基础,实际应用做课程案例,开发项目为驱动,注重提高学生的实际编程能力。这样能够及时有效地进行针对性学习,能够稳固知识点,加强学生实践动手能力,而且学习时间跨度大大降低,根据人类的记忆规律更能使学生加深理解记忆,更好地掌握本阶段的知识[9]。
由于嵌入式课程涉及知识面广,系统的嵌入式系统开发课程我在这里大致分为了四个阶段:
1.嵌入式系统开发基础篇。首先,进行Linux系统的基础学习,其主要内容为:学习Linux系统的理论知识,如Linux系统简介、Linux的文件系统、文件类型及属性、文本编辑器等;之后进行学习Linux系统下的常用命令和shell编程;最后也是以后常使用的知识便是编译与调试,学习GCC编译器和GDB调试器以及make工具,通过makefile文件来描述源程序之间的相互关系并自动维护编译工作。其次,在学习了Linux基础之后便可以在Linux环境下进行开发,也就意味着进入了C语言的高级编程学习中,而在此阶段学习中不能像传统教学一样仅仅教授C语法基础,要更深入学习C语言的灵魂知识――指针的学习,之后进行C的高级编程,例如编译的预处理、链表及操作、树和二叉树等知识的学习。这样就基本上完成了本阶段的理论学习,本阶段最后一步是学生实战提高的一项内容即C项目系统的设计开发,在一个系统项目的开发过程中几乎会用到此前所学的所有知识,学生在开发过程中也会看清自己学习中所欠缺的知识。
本阶段因为是基础性知识学习,在后期学习应用中均占有很大的分量,所以用时也是最长的一个阶段,约在5~6周方可完成阶段性学习。
2.嵌入式开发系统篇。在完成了C语言的学习后,便可以开始进行学习Linux系统程序的设计,本阶段学习目标便是掌握Linux系统编程和网络编程的基本方法,掌握多进程和多线程的编程能力。学习过程中主要学习进程与线程的原理、进程间通信的方式、网络的基本原理、Socket编程等。在此阶段的学习中要多锻炼大型程序和复杂项目框架的设计能力,使得学生能够在未来工作中具备掌控和领导项目的潜力。
在完成本阶段性学习之后,同样需要大量的练习以及系统项目的设计开发训练。本阶段主要是系统的设计学习,则需训练诸如局域网OICQ程序设计、远程终端管理系统之类的开发项目,来提高学生系统设计开发能力。本阶段主要学习系统的基础性开发,大约在四周左右完成。
3.嵌入式开发的软件应用篇。本阶段主要进行C++面向对象的程序设计开发,学习类和对象的区别与应用,面向对象程序设计的三个基本特征:封装、继承和多态。因其在C语言基础上演变而来,故而此阶段属于快速学习阶段,在一到两周即可完成。然后学习系统GUI开发,主要要求掌握Qt开发的基本流程和Qt提供的类库的使用方法。在整个的软件应用阶段会在两周内完成。
虽然学习用时比较短,项目的开发练习依然不可缺少,在未来工作中这类快速学习并加以应用的情景有很多,学生们有必要也必须有快速学习的能力。
4.嵌入式开发的硬件篇。本阶段在整个嵌入式系统开发中属于难点,需在本阶段学习ARM微处理原理和应用,主要掌握ARM的基本架构、指令系统,同时也要了解ADS集成开发环境;嵌入式Linux的系统移植,主要掌握u-boot启动流程、u-boot的移植流程及关键步骤,学会构建根文件夹系统,掌握整个嵌入式Linux系统开发方法;学习Linux驱动开发,掌握嵌入式Linux设备驱动程序的基本原理、架构和设计方法以及驱动开发中常用的机制和内核资源。
该阶段主要以实验为主,加强学生动手能力,熟悉嵌入式的硬件程序开发,该阶段也在四周左右。
五、总结
经过对社会上嵌入式系统培训机构的调研来看,大多数机构都是应用的此类授课方式专项培训嵌入式系统开发人才,而经过培训之后的学员有着扎实的知识功底和良好的实用技能,明显比高校毕业生有更高的动手能力和岗位适应优势。因而在高校嵌入式系统方向课程的教学中尝试使用集中授课方式,对提高应用型人才培养有重要的借鉴意义。
参考文献:
[1]王崴.“嵌入式系统”课程的教学改革与实践[J].常州工学院学报,2013,26(1).
[2]郭锐.嵌入式系统教学中若干教学方法研究与实践[J].科技信息,2012,(16).
[3]彭道刚,李辉,夏飞.基于项目驱动的嵌入式系统教学改革与实践[J].中国电力教育,2013,(28).
[4]张广渊,肖海荣,马昭,梁伟.应用科技大学本科生科研能力培养改革探讨[J].大学教育,2014,(4).
[5]冀常鹏,马飞,徐维.项目驱动的嵌入式系统教学改革.电气电子教学学报,2012,(33).
[6]郑广海,曲英伟.嵌入式系统课程群实践教学优化整合与知识融合的研究[J].2015,18(6).
嵌入式系统的基本原理范文2
关键词:嵌入式Linux内核;可加载
中图分类号:TP316文献标识码:A文章编号:1009-3044(2008)26-1759-02
1 引言
一直以来,Linux操作系统以其开源性、稳定性、安全性和漏洞少等优良性能受到很多专业技术人员和公司的好评。而随着嵌入式技术的发展及广泛应用,Linux也由于其体积小、易于裁减、运行速度高和网络性能良好等优点成为嵌入式系统常用的操作系统之一,其中它的可加载内核模块机制体现出了强大的功能。
2 Linux在嵌入式系统中的应用
嵌入式系统(Embedded Systems)是计算机的一种应用形式,它是指“以具体应用为中心,以计算机和信息技术的发展为基础,将用户所需的特点功能嵌入到产片、装置或大型系统中,软硬件可裁剪,从而能够适应实际应用中对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统”。
正是由于嵌入式系统的应用特点,它对操作系统的要求并不同于一般的计算机系统。首先不同的宿主设备对嵌入式系统的要求都不一样,因此嵌入式操作系统的功能要足够强大,才能应付各种各样不同场合的使用。同时由于系统资源非常有限,嵌入式操作系统又必须满足精简高效、占用资源少、响应速度快的特点。对于设备控制系统,还有很重要的一个要求就是安全性和稳定性要好,不允许在控制过程中经常出现故障。
作为真正的32位操作系统,Linux能够很好地满足嵌入式系统的需要。Linux的可加载内核模块机制,支持设计人员可以根据不同嵌入式系统的需要,在不同的场合动态地选择不同功能的内核模块进行加载,内核可控制在100KB以内,这样既可实现对不同需求的支持,又可以一定程度上保证系统内核的精简,更好地实现操作系统功能专一而高效、高度节约资源、启动速度快、节省开发成本等目标。
3 Linux可加载内核模块机制
内核是Linux操作系统的核心,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
当Linux系统要实现对某种特定功能的支持时,可以把相应部分编译到内核中,也可以把该部分编译成模块。如果编译到内核中,在内核启动时就可以自动支持相应部分的功能,但是会使内核变得庞大起来。如果编译成模块,就会生成对应的.ko文件,在需要使用时进行动态加载,这样就不会使内核过分庞大。所以通常将经常使用的部分直接编译到内核中,偶尔需要使用的部分作为动态可加载内核模块使用。
使用这种可加载内核模块机制,内核模块在需要时才加载到内核空间,不需要的时候可以释放内存资源,这样可以使内核更小更精简,从而避免占据太多的内核空间。而当需要添加内核功能时,只需要添加编译模块代码就可以了,不需要对基本内核进行频繁的改动。
对这种可加载内核模块的访问主要是通过内核中的一个全局变量module_list实现的。每当用户将一个模块加载到内核中时,这个模块就会被添加到由module_list形成的链表中。每当内核要使用到这个模块所提供的函数时,内核就会检索这个链表,找到相应的模块中的函数或变量。内核将资源登记在符号表中,模块可通过符号表使用核心资源。当模块加载入内核时,系统将新加载模块提供的资源和符号加到内核符号表中,通过这种通信机制,模块之间可以实现资源的互相访问。
4 内核模块的实现
4.1 内核模块的编写
一个内核模块至少要包含两个函数:用于加载时的模块初始化函数init_module()和用于卸载的模块结束函数cleanup_module()。实际应用中这两个函数可以用任意函数名代替,但是必须在函数定义后用宏module_init()和module_exit()进行声明,如:
static int __init lcd_init(void){…}
static void __exit lcd_exit(void){…}
module_init(lcd_init );
module_exit(lcd_exit);
4.2 内核模块的编译
编译时需要通过一个Makefile文件来完成,其具体内容可参考下面生成lcd.ko的Makefile文件:
obj -m +=lcd.ko
KDIR :=/usr/arc/linux-2.6
PWD :=$(shell pwd)
Default:
$(MAKE) -C $(KDIR)SUBDIRS=$(PWD) modules
Makefile文件必须跟目标源文件放在同一个目录下,执行Make命令来完成该模块的编译,生成相应的.ko文件。
4.3 内核模块的加载和卸载
当需要使用某个模块的功能时,可以使用insmod命令进行加载。此时模块从用户态进入到内核态,insmod程序找到要求加载的内核模块,首先将其输出符号在内核中的相应地址进行修改,然后为新模块申请足够的内核内存空间,并更新其符号表,然后内核调用模块的初始化函数完成模块的安装。
模块使用完后可以用rmmod命令卸载,此模块占用的内核内存将被回收。但是内核中其他部分还在使用的模块是不能被卸载的。
5 结束语
对于Linux的可加载内核模块机制及应用,涉及到的知识非常广泛,并不是这里简单的几句话就能够深入分析清楚。本文在介绍了Linux内核机制的基本原理的基础上,简单说明了内核模块的编写和编译过程,供广大爱好者为更好地进一步学习Linux打下良好的基础。
参考文献:
[1] 陈莉君.深入分析Linux源码[M].北京:中国电力出版社,2004.
[2] 李善平,刘文峰.Linux与嵌入式系统[M].北京:清华大学出版社,2003.
[3] 周应华.对Linux可加载内核模块应用框架的研究[J].计算机系统应用,2007,(4):69-72,76.
嵌入式系统的基本原理范文3
关键词:机器感知;智能科学;安卓;移动终端;嵌入式系统
0 引言
随着计算机信息化技术在各领域不断地深入应用,在当前的计算机教学中,实验课程是教学环节中一个至关重要的组成部分。其目的是让学生加深对理论知识的理解,培养学生的综合应用能力和创新能力。然而由于教材内容与实验设备更新缓慢,国内高校计算机实验教学并未跟上技术发展的步伐,普遍存在内容与技术发展脱节,实验内容应用机会少,验证性内容多而创新性内容少等诸多缺点,使得学生在理论课程中学习到的知识无法在实验课程中得到有效的复习和掌握,难以进一步进行创新性研究。
针对以上诸多问题,实验课程的改进方向应该是跟随技术发展,使实验课程具有一定的实用性和自主创新性,以此吸引学生对实验的兴趣,为其毕业后具有创新思维打下坚实基础。本文以北京大学信息科学技术学院智能科学系开设的面向智能科学的机器感知实验课程建设为例,阐述如何将实用和自主创新融入实验课程中。
2002年9月,在信息中心和国家重点实验室的基础上,北京大学智能科学系组建完成,并于次年并入北京大学最大的学院――信息科学技术学院,翻开了发展进程中崭新的一页。近几年,北京大学的智能科学系得到了较快的发展,已逐步确定了在培养学生的过程中,不仅要求学生具有坚实的数学、物理、计算机和信息处理的基础知识以及心理生理等认知和生命科学的多学科交叉知识,更要求学生系统地掌握智能科学技术的基础理论知识、基本技能和方法,同时侧重要求科学思维、科学实验和初步科学研究方面的训练,以使得学生在毕业时具备智能信息处理、智能行为交互和智能系统集成方面研究和开发的基本能力。在进行这些基础课程训练的同时,智能科学系以机器感知与机器智能两个方向的专业核心课程为架构,为学生开设不同方向的选修课程,以进一步提高学生对于智能科学的认识和进行科学研究的能力。在这种大方向下,为了使学生学习过的理论知识能够得到实际应用,培养学生的动手实践能力,北京大学智能科学系开设了本科生机器感知实验课(MachiIle PerceptionLaboratory)。该课程为信息类选修课,每年春季开课,共72学时,2学分。本课程一改其他实验课程的传统设计,将听觉和视觉的具体应用实例融入实验中,增强了实验的实用性;采用了当下较为流行的搭载安卓操作系统的移动终端作为实验设备,在要求学生掌握基本原理的同时,也培养了学生前沿开发的编程能力;同时实验课程的自主创新性较大,能够培养学生的自主学习能力和创新思维。
1 课程基本目标
基于最大限度帮助学生理论联系实际的目的,我们要求学生参加实验之前需要有一定的理论储备,要阅读一些有关信号处理、语音编码、图像处理等方面的书籍。然后通过本实验课程训练,使学生进一步掌握视觉、听觉信号处理的基本原理,初步具有基于嵌入式系统及安卓操作系统的信号处理算法设计和编程实现能力。
2 实验课设置
本课程共包括6个单元实验和1个综合实验。
2.1 单元实验
实验1:语音、图像信号采集与分析。通过本实验的学习,学生能掌握搭载安卓操作系统的移动终端实验平台的使用方法,并且了解在本课程实验环境中如何进行声音和图像的采集,为后面的实验打好基础。
实验2:语音压缩。通过本实验的学习,使学生掌握语音压缩编码的基本原理,能够实现基于A律和u律的语音编码算法。
实验3:三维虚拟声音。通过本实验的学习,使学生掌握虚拟声实现的基本原理,并能够基于头相关传递函数实现静止或运动三维虚拟声音的合成。
实验4:语音增强。通过本实验的学习,使学生掌握语音增强的基本原理,并能够基于自适应滤波器和零限波束形成实现一个语音增强系统。
实验5:图像压缩。通过本实验的学习,使学生掌握图像压缩编码的基本原理,实现并比较JPEG及JPEG21000两种压缩方法的效果。
实验6:图像增强处理。通过本实验的学习,使学生掌握图像增强的基本原理,并能够实现基于直方图、平滑滤波器、锐化滤波器、中值滤波器及频域滤波器的图像增强方法。
2.2 综合实验
综合实验主要是学生们根据自身兴趣,自主选择与视觉、听觉相关的智能感知实验进行创新实践,也可从老师提供的题库中选题,分组或独立完成实验。图1和图2分别是学生自主完成的一个关于图像边缘提取的视觉感知实验和一个关于声源定位的听觉感知实验。
在本课程的实验安排中,通过单元实验引导学生熟悉实验基本方法,掌握使用搭载安卓系统的移动终端实验平台的技能,学生能够了解不同实验需要用到的不同方法,发现实验中可能遇到的问题,融会贯通所学知识,逐渐具有独立分析和解决这些问题的能力,与此同时拥有了一定的新平台开发经验。通过单元实验的实例强化训练,学生可以逐步掌握语音和图像处理的基本方法。综合实验能引导学生开拓思路,对于具体问题可以联想所学知识逐步解决,进行创新型的视觉与听觉方面智能感知实验。由此,本实验课程既培养了学生机器感知的科学创新研究能力,又培养了学生在嵌入式系统平台上的编程实现能力。
3 授课情况
通过近6年的基础建设,本课程逐步完善,得到了学生们的认可,每年选修实验课的人数已从最初的5人达到现在的30余人,成绩优秀者可达选课人数的15%。为跟随技术发展脚步,本课程从最初采用MATLAB编程方式,近两年逐步改进采用Android编程。本课程提高了学生专业素养,有助于学生掌握数字信号处理、听觉智能感知和视觉智能感知的基本原理及其算法实现,熟悉Java、c等编程语言程序设计方法,了解最新的技术开发动向,并帮助学生在此基础上设计并实现相关算法,为学生今后进入机器感知及智能学习领域打下了较好的基础。
4 课程特色及参考教材
本实验课程特色有如下几点:①Android编程:本实验课程开展了基于移动终端的面向安卓系统的编程实现,把机器感知与目前的流行技术相结合,使学生接触到前沿开发技术,与时俱进。②嵌入式系统实现:本实验课程基于嵌入式系统实现机器感知实验,可以提高学生们的兴趣,并学以致用。③视觉感知实验:本实验课程包括了图像压缩、图像增强等方面的视觉感知实验。课程选取了一些常见的图像处理实例,激发学生的实验兴趣。④听觉感知实验:本实验课程开展了包括语音压缩、语音增强、三维声音等方面的听觉感知实验。课程选取了一些常见的音频处理实例,使同学们对所学信号处理的理论知识有了更深入、形象的认识,增强实验课程对学生的实用性。⑤综合实验:本课程的综合实验由学生自由选择视觉和听觉相关的实验内容,独立或组队完成实验内容,具有较大的自主性,可以培养学生对已有知识的综合性和创新性。⑥基于教学网建设课程:本实验课程基于北京大学教学网开展教学,充分利用了网上资源,有利于学生和教师的互动以及学生和学生之间的交流、互助。
本实验课程使用的教材有:①自编教材《机器感知实验》。②Sanjit K.Milra著,清华大学出版社出版的《数字信号处理――基于计算机的方法》。③胡广书著,清华大学出版社出版的《数字信号处理》。④王炳锡著,西安电子科技大学出版社出版的《语音编码》。⑤章毓晋著,清华大学出版社出版的《图像工程》。
5 结语
嵌入式系统的基本原理范文4
关键词:计算机硬件;集成电路设计;教学改革
信息系统工程教育论坛我院计算机科学与技术本科专业始建于1987年,历经20年的发展,为油田及相关企事业单位培养了大量的计算机应用人才。“具有良好的科学素养,系统地、较好地掌握计算机科学与技术包括计算机硬件、软件与应用的基本理论、基本知识和基本技能与方法,能在科研部门、教育单位、企业、事业、技术和行政管理部门等单位从事计算机教学、科学研究和应用”是本专业的培养目标。基于这个培养目标,结合目前计算机硬件技术最新发展现状及趋势,提出本硬件系列课改方案。
一、硬件系列课改的目的及意义
当前,计算机在信息社会中充当了重要角色,也是发展最为迅速的一门学科。随着这门学科的不断发展,目前,计算机核心技术愈来愈集中在集成电路芯片设计和软件设计这两项技术中,其中CPU和OS设计技术是最核心的两项技术,特别是高性能计算机技术一直是衡量国家实力的一个重要标志。在硬件系列课程里,培养学生CPU及相关硬件的设计能力,培养学生自主创新并能够设计出拥有自主知识产权的计算机部件的能力,是当前计算机硬件课程重要的改革方向,也是目前社会迫切需要的计算机硬件人才[1]。因此,适应当前计算机硬件技术的发展及社会对计算机硬件人才的需求,及时调整硬件系列课程的培养方向,既有利于学生及时掌握最新的计算机硬件技术,又有利于学生及时把所学知识转化为社会生产力,对扩大我院学生就业,树立我院计算机科学与技术专业学生良好的社会形象意义深远。
二、硬件系列教学的国内外发展现状及趋势
由于我国的制造业比较落后,一直以来,计算机硬件的核心技术未能被国内掌握。相应地,在计算机硬件教学中,像计算机组成和计算机体系结构等重要硬件课程,传统上仅仅以讲授、分析原理为主,且内容不能适应现代计算机技术的发展[2]。国外一些知名大学非常重视计算机硬件的教学,美国的许多高校本科计算机专业中都无一不是安排了CPU设计方面的课程和实验内容。例如麻省理工学院计算机专业的一门相关课程是《计算机系统设计》,学生在实验课中,须自主完成ALU、单指令周期CPU、多指令周期CPU乃至实现流水线32位MIPS CPU和Cache等的设计。Stanford大学计算机系的本科生也有相似的课程和实验。随着计算机硬件技术的不断发展,国内开展硬件设计技术的条件已逐渐成熟,这主要得益于计算机硬件发展中的两个重要技术,一是大规模可编程逻辑器件CPLD/FPGA的成熟,可以在一个芯片中通过编写硬件描述语言设计CPU和全部的相关硬件电路,减轻了硬件芯片间连接的复杂性,同时消除了硬件制造的限制。二是硬件描述语言的成熟,以VHDL和Verilog VHDL语言为代表的硬件描述语言,可以通过编写程序的方式来描述极其复杂的硬件电路逻辑,大大降低了以前采用手工方式设计硬件电路的复杂性。国内的一些知名大学,在最近几年里,也相应地增加了硬件电路设计在教学中的比重,据我们了解,清华大学、电子科技大学、哈工大、哈理工等一些学校,已经修改了计算机组成原理及计算机体系结构等方面的课程教学内容,把利用CPLD/FPGA和硬件描述语言设计CPU及其相关硬件电路作为重要内容加入到课程体系里,取得了良好的教学效果,大大加强了学生对计算机工作原理的理解及计算机硬件的设计能力,逐步实现了与发达国家高校计算机本科教育的接轨。
三、目前我院硬件系列教学现状及不足
计算机科学与技术本科专业硬件系列主要课程设置始于20年前,期间虽经过部分调整,但基本教学内容依然延续20年前的知识体系。按授课先后次序排列,这些课程包括:《数字逻辑与数字电路》、《计算机组成原理》、《数字系统设计自动化》、《计算机体系结构》、《单片机原理及应用》、《嵌入式系统》、《硬件课程设计》等7门。基于当前硬件课程系列教学现状,我们认为存在以下的不足:1.从整体上看,硬件系列教学内容过于强调基本原理和基本方法,缺少能够验证原理、实际实现这些原理及方法的手段,导致学生缺少动手能力,对原理和方法认识模糊,会说不会做的现象比较严重,创新能力较弱。2.《数字逻辑与数字电路》和《数字系统设计自动化》,这两门课之间存在较大的联系,在内容上存在承上启下的关系,前者是讲述数字电路的基本概念、组合及时序电路的传统分析设计方法,后者则介绍组合及时序电路的现代分析设计方法,基于目前的教学实际情况,可以合并成一门课讲述。3.《计算机组成原理》和《计算机体系结构》是计算机科学与技术本科专业非常重要的两门课,通过这两门课的学习,应使学生能够设计简单的CPU及相关的硬件电路,从而加深对基本原理、基本方法的理解,增强实际动手能力。基于现在的教学内容及教学手段还无法达到上述目的。4.《单片机原理及应用》和《嵌入式系统》两门课存在较大的内容交叉。这两门课都是讲述特定计算机在控制及嵌入式产品中的应用,《单片机原理及应用》这门课介绍的是8位机MCS-51的原理,《嵌入式系统》这门课介绍的是32位机ARM的原理,鉴于目前嵌入式领域的发展现状及趋势,建议取消《单片机原理及应用》这门课,以避免课程内容重复。5.《硬件课程设计》作为硬件系列的最后一门硬件设计课,学生已掌握了较丰富的软硬件知识,因此应该具备设计较复杂的硬件电路的能力,目前的设计内容较简单并与《数字逻辑与数字电路》课程实验存在一定交叉,建议选择有一定复杂度并较实用的设计内容。从而培养学生综合运用硬件知识及硬件设计能力。
四、硬件系列教学新课改方案
针对我院计算机科学与技术专业的实际情况,在保证总的硬件教学学时不变的前提下,对硬件系列教学提出如下建议:1.课程合并:《数字系统设计自动化》是计算机组成原理等的先修课,为保证能及时开课,同时该课和《数字逻辑与数字电路》这门课有密切的联系,合并为一门课,仍称为《数字逻辑与数字电路》,并适当增加学时,建议在大二上学期开课,取消《数字系统设计自动化》这门课。2.《计算机组成原理》:这门课改为《计算机组成及设计》,增加CPU及相关硬件电路设计内容,在讲清楚组成原理的基础上,以设计为重点,建议在大二下学期开课。 3.《计算机体系结构》:适当增加设计内容,原学时保持不变,建议在大三上学期开课。4.《单片机原理及应用》:本课程取消,鉴于目前嵌入式系统涉及软硬件知识较多,难以在一门课程中全面系统学习,因此另开设一门《嵌入式软件开发》课程,重点讲述如何设计编写嵌入式软件程序,建议在大三下学期开课。5.《嵌入式系统》:这门课作为《嵌入式软件开发》的先修课,重点讲述嵌入式系统的基本概念及方法、ARM处理器的硬件工作原理、接口、汇编语言等,而相关操作系统及其程序设计等知识暂不涉及,建议在大三上学期开课。6.《硬件课程设计》:在设计题目中,引入嵌入式系统、FPGA及计算机组成等知识,适当增加设计的综合性和复杂性,建议在大四上学期开课。基于新的硬件系列课程体系,能够有效理顺课程之间的先后关系,并把硬件课程均匀分散到大学四年的学习中,同时对重要的课程及相关的知识进行了加强,例如数字电路设计贯穿在整个硬件系列课程中;舍弃了过时的技术,增加了新技术的份量,例如去掉了单片机,加强了嵌入式系统。因此,我们认为:调整后的硬件系列课程是较合理的,它吸收了当前先进的硬件设计技术,保证了知识的实用性,有一定的前瞻性。
五、结束语
高等教育是为学生提供专业技能和生存本领、服务社会的最后一站,教学内容及方法直接关系到学生的未来发展。通过不断教学改革,保持教学的先进性和实用性一直是高教课改的目标之一。通过这次课改,理顺了我院硬件系列课程的教学关系,增强学生未来服务社会的竞争力,因此很有实际意义。
作者:李军 崔旭 李建平 单位:1.东北石油大学 2.大庆市萨东第二小学
参考文献
嵌入式系统的基本原理范文5
关键词:嵌入式系统 模拟信号 数字信号 特殊信号
中图分类号:TN95 文献标识码:A 文章编号:1672-3791(2013)03(b)-0037-02
数据采集系统的历史较为悠久,近年来,随着电子工业的发展,便携式数据采集系统产品层出不穷。根据不同的采集信号,有不同的设计产品。雷达接口信号采集系统由于待采集信号的复杂性和未知性,其设计更为复杂。
1 数据采集产品现状
一般数据采集系统会按照其总线的不同而分类。常用的总线有以下几种:ISA、PCI、USB、PC104、CAN。
其中USB总线的产品凭借其极高的传输速率和便携性,在市场上占有重要的地位。
USB总线便携式数据采集系统产品的设计原理一般比较简单,一种比较典型的设计是,设计者使用Cypress公司的USB2.0控制器CY7C68013来控制Maxim公司的MAX1312采样数模转换芯片。这样把由MAX1312采集的数据直接通过USB控制器向上位机发送。设计框图如图1所示。
该数据采集系统只能实现较简单的数据采集功能,不具备功能扩展性。
2 基于嵌入式系统的数据采集系统现状
近年来,不少人投入到基于嵌入式系统的数据采集系统的研究开发中,开发的成果也相当丰富。
按照是否使用ARM将基于嵌入式开发平台的数据采集系统分为非基于ARM和基于ARM两类。
2.1 非基于ARM嵌入式平台的数据采集系统
非ARM嵌入式平台的数据采集系统一般都采用单片机作为其控制核心。结构一般包括选路控制器、AD转换、单片机等几个部分。
不使用ARM的数据采集系统,其功能受到单片机功能的限制,采样速率有限,存储空间较小,不能满足高速大容量采样的需求,更不可能在仪器上运行分析软件,从而摆脱电脑独立工作。某些基于单片机的数据采集系统也只能完成最简单的数据采集功能,而没有进行特殊应用的扩展,其功能甚至不如某些公司非嵌入式系统的USB采集卡。
2.2 基于ARM的嵌入式平台的数据采集系统
ARM系列微处理器功耗低、性能优于单片机,是便携式设备理想的选择,所以ARM越来越多的被应用到便携式数据采集系统。
由于ARM功能强大,能支持一些高级的应用,所以很多情况下,基于ARM的嵌入式系统的数据采集系统具有一定的针对性。它们往往是针对一种专门的对象,提供相关的应用功能。
目前基于ARM的嵌入式系统在数据采集中已经有比较多的应用。每种应用都有它们自己的针对性,并根据对象的不同要求进行了不同的设计。基于ARM的嵌入式系统,是基本原理相似,实质却是天壤之别。
3 基于ARM嵌入式平台的雷达数据采集系统
该采集系统分为便携式数据采集系统,数据管理及分析系统两大部分。便携式数据采集系统主要完成数据的采集和数据的前期处理,获得数据的特征信息,并能回显数据。数据管理及分析系统部署于上位机,用于对数据的存储管理和对比分析。如图2所示
采集对象分为三种类型:模拟信号、数字信号和特殊信号。由各自独立的采集电路实现。模拟信号通过量程自动控制及AD转换电路转换为数字信号,再由FPGA进行采集处理;数字信号则经过缓冲驱动后直接由FPGA处理;特殊信号经过幅值控制和适当的反向后,交由FPGA处理。
倍程自动控制通过压控继电器来实现,将输入电压按比例衰减到合适的范围,然后和基准电压比较确定输入电压的大小范围,根据这个范围,决定继电器的开合,最终将输入电压降低到-10 V~+10 V的范围,并记录衰减的倍数。
AD转换电路采用频率500 Ksps的AD采集芯片AD7665,实现-10 V~+10 V的模拟信号到数字信号的转换。
若待采集的数字信号为TTL信号,而FPGA的输入信号是CMOS信号,则信号进入FPGA前需要先经过一级缓冲驱动芯片处理。
特殊信号为脉宽仅有0.2 us的信号,使用简单运算放大稳压电路就可以实现稳压和反向的功能。不过为了保证信号不失真,需要采用高速运放。
FPGA则接收上面各种信号,并根据控制指令,将信号存储于外接的大容量SRAM中。为了实现这些功能,需要编写一套FPGA程序,实现一个控制系统的功能。该程序包括:采集电路的数字部分、系统时钟、AD采集控制、特殊信号采集控制、数字信号采集控制、SRAM控制、控制系统核心、嵌入式系统接口等部分。如图3所示
嵌入式系统部分采用比较小巧的ARM9系列的嵌入式平台作为硬件开发平台,从而使工作组要集中在软件开发上。开发系统选用了开源的操作系统Linux,从而增加开发的可控性。图形开发环境使用了嵌入式QT,嵌入式QT作为一款开源的图形开发平台有着广泛的应用。与FPGA的通讯使用了串口,FPGA端的串口的波特率基本不受太大的限制,串口速度的主要限制在嵌入式系统端。而S3C2410可以达到460800的串口波特率。嵌入式系统最终将数据存储于SD卡中,便于转存到PC机。
PC机软件系统属于Windows操作系统,所以采用了MFC作为开发平台。软件系统首先需要将SD卡中的数据转存到PC机的指定目录便于管理。软件系统提供数据显示、比较功能,为后续分析提供基础。
参考文献
[1] 刘满仓,雷卫宁,王春成.基于ARM的高精度数据采集系统设计[J].现代电子技术,2012(8).
[2] 吕实诚,宋晓波,王晶.基于网络的高精度数据采集卡设计[J].哈尔滨理工大学学报,2012(2).
嵌入式系统的基本原理范文6
摘 要:分析目前操作系统和嵌入式系统课程的实验教学过程中的问题与挑战,阐述两个课程各自特点以及知识的综合运用,提出以开源平台为基础同时结合配套设施资源的新型教学模式,说明具体教学改革方法。
关键词:操作系统;嵌入式系统;实验教学;开源平台;Tizen
0 引 言
操作系统课程是计算机学科的核心专业课之一[1]。操作系统中知识的学习兼具理论理解与实践运用,也是进一步学习其他课程的基础,在计算机专业教学中占有举足轻重的地位[2]。由于操作系统的概念抽象,涉及的代码量巨大且难以理解;在教学时间上处于三年级上学期,学生的编程开发经验不足,增加了教学的难度。
嵌入式系统是一门集软硬件技术于一体,涉及集成电路、计算机技术、自动控制等多种知识的综合课程。自21世纪初进入我国高校的教学体系以来,随着产业界的不断发展课程内容日渐丰富,成为计算机相关专业的一门重要课程。由于嵌入式系统的设计强调以“应用”为中心和导向,注重与产业结合以及在工程实践中的应用,这使得教学过程中存在理论性不足的问题,在实践教学中更容易变成按部就班的验证性实验,或是某商业产品的展示与应用。
将两门课程的内容衔接,特别是在实验教学中进行内容的调整融合,能够提高教学过程的系统性和连贯性。嵌入式系统中涉及硬件原理、嵌入式操作系统、嵌入式应用软件等多个组成部分,教学环节中要完成每部分知识的原理分析和系统验证,课时相对紧张。将操作系统实验课程的内容与之融合关联,既为操作系统中的原理找到了实践验证环境,又为嵌入式系统的实验课程补充了原理分析环节。
为了达到良好的教学效果,让学生对各类概念的理解达到融会贯通,在教学过程中往往建立一套系统的课程体系,操作系统作为先导必修课,后续配套 Unix/Linux 操作系统、嵌入式系统原理等专业选修课,并且每门课程都配有相应的实验实践教学。
1 操作系统与嵌入式系统教学中的新挑战
嵌入式系统、移动云计算、物联网等新兴产业的发展和新技术的应用,拓展了操作系统的范围。学生日常生活中使用的智能设备增多,不再局限于普通 PC 机的使用。依据 PC机的使用方式建立的渐进式学习方法需要随之相应扩充。操作系统的形式发生变化的同时,其内涵也随之发生一些变化。现代操作系统中,对进程、调度算法等概念的探讨相对弱化,而增强了对于外设、交互、实时性、能耗管理等方面的设计要求,这些新特性需要给学生形成清晰的认识和直观的感受。计算机操作系统作为计算机相关专业的基础课程,应沿着计算机产业走向,紧密结合最新技术,充实其教学内容[3]。
商业化产品宣传中使用的概念与嵌入式系统教学存在偏差。智能手机、平板电脑等产品更新换代迅速。在商业化宣传中,处理器核心、硬件平台、操作系统、应用界面等概念往往被混淆使用。这些商业产品以及配套软件开发的盛行,也使一部分学生对于嵌入式系统的理解局限于智能手机,而对于嵌入式软件的理解也局限于移动应用软件。嵌入式系统需要设计与产业结合的教学案例,更需要透过现象看本质,从技术和机理层面进行分析,并且与所学的基础课程和理论知识相对应,因而能够加深理解。
人才需求转向对已有系统框架的理解、定制和二次开发。随着产业环境的完善,人才需求不断扩大。对操作系统和嵌入式系统的教学要求不再满足于对原理的认知和简单应用,但也不需要从零开始独立构建一个完整的系统,而是需要在现有项目的基础上进行产品化定制和二次开发,特别是在开源软件项目的基础上进行改进。这需要学生在实际动手能力方面能够了解开源软件的管理方法,掌握资源获取和使用的方法,在实践中学会主流开源系统的原理、开发和部署的基本方法等。
传统的操作系统实践教学偏重局部的理论分析和简单模拟,而嵌入式系统实践教学则侧重应用导向,缺少原理分析。传统的操作系统实验教学为了强化原理性验证,大多通过局部模拟的方式,在虚拟环境中进行操作,缺少与实际使用的结合,使得很多算法和流程虽然经过实践仍然只能停留在概念钐,缺少与实际使用系统的直接联系,导致学生兴趣降低。嵌入式系统的实验教学中,往往又将操作系统作为黑盒处理,进行简单定制或是直接使用。学生可以完成部署和验证,但仍然“不知其所以然”,没有收到应有的教学效果。
2 教学平台选型
在综合考虑学时、课程设置和教具使用等多种因素的基础上,操作系统和嵌入式系统原有实践课程体系保留并适度压缩,并通过扩展实验进行衔接。其中,操作系统的基础知识环节借鉴美国麻省理工大学使用的原型操作系统 jos 的课程实验,并对其进行相应的简化,让学生完成对操作系统基本原理的理解与验证。嵌入式系统的实验使用基于uCLinux 操作系统的嵌入式开发板进行车载控制系统的模拟与开发,这里引入的扩展实验使用目前在部分智能移动产品中使用的Tizen操作系统平台,并在对该平台的移植部署过程中加入对操作系统各环节和运行状态的分析,通过直观感受提升学生的兴趣。
实验中使用Tizen开源系统为目标软件平台。Tizen是由 LiMo Foundation 和 Linux Foundation 两个开源 Linux 联盟联合,由三星电子、英特尔等产业巨头共同开发的一套完全开源的软件环境[4],能够提供对手机、平板电脑、车载电脑、智能家电等多种设备的支持。软件体系中包含引层、操作系统、文件系统、应用程序、开发工具等多种资源,可以获得平台的全部源代码,并配套有相应的开发文档的开发者社区,也有众多大学参与其中,提供了丰富的教学资源。Tizen 中选用的操作系统内核是 Linux,在操作系统的课程讲授中已进行了针对性的原理分析和代码解读;Tizen 的应用程序框架基本使用 C/C++编程语言实现,与学生所掌握的前继编程基础更加契合,这些都降低了学习的难度。
以Odroid-U3为实践教学的目标硬件平台。Odroid-U3是由Hardkernel公司设计的基于Samsung Exynos4412处理器的开发板,具有4个Cortex-A9架构的处理器核心,1.7GHz主 频,2G内存,并通过线缆外接的方式集成了显示屏、触摸屏、WiFi、蓝牙等外设,能够模拟主流的平板电脑、智能电视等设备。通过开发板的拆装使用,使学生了解日常使用的智能设备的模块组成和工作原理,并通过实验课程完成对该设备的启动、定制和后续开发。因为开发板的形式和功能与学生日常使用的智能设备类似,可以提高学生的学习兴趣并形成系统的认知,改善了单纯使用模拟器的抽象教学方法。作为实践操作的目标平台,目前教学小组已成功完成Tizen到 Odroid-U3 开发板移植工作,并准备了完整的移植过程分析资料和教学案例。
3 实践教学设计
实验在整个操作系统教学过程中举足轻重,也是加深学生概念、原理理解,反映学生学习效果的重要环节[2]。实验教学内容的设计,作为课堂教学和作业的补充,主要用于完成理论知识和抽象概念与开发应用实战的对接。在实验设计中,主要体现系统性较强的启动、进程管理、资源管理、文件系统等知识环节,并通过完成Tizen在目标开发板上的移植进行实践。通过对其中关键部分代码的阅读、分析、补全、重构等任务,加深知识理解和综合运用, 同时理解并掌握开源软件的开发管理模式。经过对实验内容的反复调整,与学生沟通反馈, 现在实验内容已基本稳定。
3.1 环境搭建和版本管理工具的使用
熟悉开发环境并完成实验环境中的工具安装部署,掌握其使用方法。本部分课程主要学习对开源软件管理和方法的学习,对版本管理的认识和对版本管理工具的使用。培养学生懂得如何获取开源软件成为参考资源,掌握阅读开源代码的方法,学会代码版本管理的方法和原则,这是软件工程开发中至关重要的规范化思想。Tizen 开源项目有多个子项目,多个版本分支共同管理和流转,并按照特定的结点与错误修正,是非常有代表性的软件工程项目管理的案例,可以加深学生的实践体验。
3.2 引导过程分析
截取引导程序片段,通过汇编语言编程实现对硬件的简易控制;通过对简易引导程序的分析和修改,实现对Tizen内核的引导;分析bootloader代码,学习操作系统的引导过程,并加深对内存空间管理、处理器模式转换、MMU等关键技术的理解。本部分实验内容需要先进行简单的ARM硬件知识和ARM汇编指令的学习,同时简单扩展关于可信计算与Trustzone硬件可信模块技术,开阔学生视野。
3.3 Tizen系统编译、分区管理与内容部署
介绍Tizen系统的整体编译管理框架,了解产品描述配置文件、多设备兼容代码管理、源代码间的依赖关系、脚本处理方法等产品级代码管理方法。通过对Tizen中涉及的各类程序和资源文件的分配,设计并完成对Tizen的系统存储分区和内容部署,学习不同文件系统之间的差异和操作系统中对不同文件系统的初始化和兼容加载方法,学习各类进程对存储的使用方法。由于Tizen平台源代码编译耗时约 4 小时,考虑到课程时间问题,仅对Tizen的平台管理和软件工具进行原理讲解和分析,并将编译结果供学生下载用于完成部署实验。
3.4 系统初始化流程分析
分析操作系统内核加载完成后,第一个进程的创建过程,并实现对配置文件的分析和修改。通过代码补全的方式完成对系统启动和进程运行环境创建过程的原理分析。通过对Tizen的分析,了解对现代智能设备复杂的初始化过程,分析配置脚本之间的依赖关系,系统的灵活性、兼容性设计等,并理解操作系统中的守护进程类服务的启动过程。
3.5 遥控键盘项目开发
通过蓝牙建立实验开发板与学生自己的智能手机之间的数据传输通道,通过在手机上点击相应的按钮在开发板端产生虚拟键盘事件。这一项目的开发,需要综合运用内核驱动、网络传输、系统调用、系统服务管理等多个模块的系统知识。该实验项目同时还扩展了移动应用开发、网络编程、应用协议设计、服务管理、界面优化等多方面内容,耗时约 8 周交由学生课下完成,并向学生提供部分参考代码。
这一系列的实验设计涵盖了操作系统中的引导、初始化、进程、存储、IO、中断等多个复杂知识点,并通过真机实践的方式,以学生日常生活所熟悉的系统完成教学,提高了学生的学习积极性。
4 教学实践效果与改进计划
教学实践改革分两次推行。第一次进行了小范围试点尝试,2015年1―6月,从已完成操作系统课程学习的学生中选出11名志愿者参加,由教师进行小班授课和指导,每位学生独立承担实验。经过一个学期的学习,有9名同学成功完成了所有实验环节,编程能力和解决系统问题的能力有了明显提升。
第二次实践改革尝试在2015 年9―12月进行,面向正在学习操作系统课程的学生。由于实验设备有限并且课程压力较重,改为5人一组承担实验任务,全班共分为9组,在完成jos移植的同时完成Tizen移植任务。学生对此实验表现了极大的热情,投入大量的课余时间,整个开发过程持续到2016年2月寒假结束才完成,有4组学生完成了移植工作。由于学生的时间精力不足且实验平台的版本变迁,实效果受到了一定的影响。
针对发现的问题,教学组进行了针对性修改:重新修正了课程资料中的错误;建立了校内资源镜像;调整实验任务的发放时间点,与操作系统的理论讲授课程相对应,并在课上进行针对性的案例教学;建立针对实验任务的在线问答系统,供学生进行讨论交流,并按照时间节点投放问题的正确答案。以上修改和系统建设已经完成,在 2016年9月开始的实践教学中收到了更好的效果。
5 教学实践问题分析
(1)开源软件版本差异,随时更新引起的变化。活跃的开源软件随时发生变化,不活跃的开源软件能从开源社区中消失,这使得教学过程中容易出现授课内容与代码不对应或者无法获取资源等问题。为了保证教学的连续性,需要建立教学中的开源代码镜像,随时更新维护,并在学生实验过程中明确版本和开发状态,以确保实验顺利进行。
(2)产品特征影响教学案例典型性。在产品化的过程中存在一些技术整合和混杂,随着开发的代码和模型逐渐复杂,使得难以在商业化系统中找到非常贴切的教学用模型。同时编程方法和兼容性的变化也使代码变得复杂,分析讲解时过于复杂。这需要选择合适的版本和资料进行教学,并需要教学人员随时跟进开源软件的进展,如果能够讲解代码更迭的过程,收到的教学效果会更好。
6 结 语
通过在课程体系的实验教学中加入大型开源项目和开源平台的分析,帮助学生加深对操作系统类课程概念的理解,并掌握嵌入式系统的原理和开发方法。通过在学生熟悉的平板电脑开发平台上进行定制开发,帮助学生理解操作系统的作用和在产业环境中的应用,提高了学生的积极性,收到了良好的教学效果。
基金项目:教育部高等学校博士学科点专项科研基金资助课题(20130031120028);天津市应用基础与前沿技术研究计划(14JCQNJC00700, 16JCYBJC15200);计算机体系结构国家重点实验室开放课题(CARCH201504, CARCH201604)。本次教学活动得到了天津三星电子有限公司的资助。
第一作者简介:宫晓利,男,讲师,研究方向为嵌入式系统、移动云计算、物联网,。
⒖嘉南祝
[1]陆亿红, 黄德才. 操作系统教学方法的若干思考[J]. 计算机教育, 2011(5): 80-82.
[2]王宇英, 谷建华, 周兴社, 等. 操作系统教学探索及其在嵌入式教学中的实践[J]. 计算机教育, 2011(11): 98-101.
[3]张伟娜. 以云计算为导向的计算机操作系统教学研究[J]. 软件, 2014(7): 85-88.
[4]Linux Foundation. TizenProject[EB/OL]. [2016-11-09]. https:///blogs/tsg/2013/tizen-2.2.1-platform-release.
[5]冯红伟, 王鹏. 操作系统教学与实验设计研究[J]. 实验室研究与探索, 2007(12): 251-253.