许京雷
摘 要 把单片机课程合并到嵌入式系统课程,把51作为一种最简单的嵌入式处理器进行学习,同时学习一种较高级的嵌入式处理器STM32。
关键词 嵌入式系统;单片机;计算机系统
中图分类号:G642.3 文献标识码:B
文章编号:1671-489X(2017)08-0085-02
Content Setting of Embedded System Curriculum//XU Jinglei
Abstract The MCU Course is combined with embedded system courses, taking the 51 as one of the most simple embedded processor
to learn, while learning a more advanced embedded processor STM32.
Key words embedded system; single-chip; computer system
1 嵌入式系统的定位
目前对于嵌入式系统的理解各有不同,这种情况直接导致嵌入式课程在内容设置方面的区别。通过分析不同观点,可以得到合适的指导原则。
一种观点认为,嵌入式系统是非PC系统,有计算机功能,但不能称之为计算机设备或设备。它是一种以软件和硬件为中心的专用计算机系统,可应用于功能、可靠性、成本、体积、功耗等方面有严格要求的场合。简单地说,嵌入式系统的硬件和软件联合使用,仿照BIOS的工作方式,具有自动化程度高、软件代码小、响应速度快的特点,特别是具有实时多任务的功能[1]。嵌入式系统主要由嵌入式处理器、相关支持硬件、嵌入式操作系统和应用软件系统组成。
这种观点看似面面俱到,实则主次不分,没有指出嵌入式系统的本质,其中把嵌入式系统称为专用计算机系统更是错误的,因为事实上,嵌入式系统也可以作为通用计算机系统。
另一种观点认为,嵌入式系统就是ARM体系结构、ARM指令系统、S3C2410嵌入式微控制器及嵌入式系统分析和设计等内容[2-3]。要了解嵌入式操作系统的进程、进程调度、进程间通信机制及嵌入式操作系统的其他功能,掌握嵌入式操作系统LINUX的基本命令,LINUX操作系统下应用程序的开发与调试,LINUX操作系统驱动程序的调试。
这种观点混淆了嵌入式系统和嵌入式操作系统的区别,实质是在讲如何使用LINUX嵌入式操作系统,而这只是嵌入式系统的一小部分。
综合以上观点,可以看到对于嵌入式系统的定位比较混乱,正确的定位應该以计算机系统的核心单元处理器为准,以处理器的最小尺寸为依据,把整个计算机系统分为三大类:服务式、桌面式、嵌入式。
1)服务式指的是服务式计算机系统,提供高等的计算性能,采用服务式处理器,如网站服务器、超级计算机;
2)桌面式指的是桌面式计算机系统,提供中等的计算性能,采用桌面式处理器,如台式机、笔记本;
3)嵌入式指的是嵌入式计算机系统,提供低等的计算性能,采用嵌入式处理器,如手机、平板。
这种分类方法只以处理器的最小尺寸为依据,标准客观清晰,尺寸越小性能越低。处理器的最小尺寸指的是同型号前提下的最小封装。事实上,嵌入式的词义本身也意味着尺寸小,以便嵌入到其他设备。
至于每类计算机系统要做成通用还是专用,要根据实际需求而定。如手机这个嵌入式系统,发展初期是专用的,到智能手机时期,已经是通用系统了。
简单说,嵌入式系统是采用嵌入式处理器的计算机系统。嵌入式处理器又称为单片机、微控制器、微处理器。嵌入式处理器包含一切小尺寸的处理器,如51、61、AVR、PIC、ARM、DSP、FPGA等。
2 单片机和嵌入式系统的统一
单片机是一种集成电路芯片,包含大规模集成电路技术的CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能,有的还包含显示驱动电路、脉宽调制电路。单片机是一个小而完善的计算机系统,广泛应用于工业控制领域,从8位单片机发展到目前32位MCU。
单片机,毫无疑问,也是一种小尺寸的嵌入式处理器。采用单片机构成的计算机系统,也是一种嵌入式系统。单片机的词义本身也意味着在单个硅片上集成了尽可能多的部件,以便实现尺寸小的目标,这个特征也是所有嵌入式处理器的特征。因此,单片机和嵌入式可以统一化,或者说,单片机是嵌入式处理器的一个别称。
目前,单片机课程普遍以51为主,这容易造成一种错误认识:单片机就是51。事实上,单片机的内涵要大得多。为了理清关系,可以把单片机课程合并到嵌入式系统课程,把51作为一种最简单的嵌入式处理器进行学习,同时学习一种较高级的嵌入式处理器STM32,相互对照,以便树立正确的嵌入式系统的概念。
3 嵌入式系统的教学方向
嵌入式系统学习的内容很多,需要设定若干教学方向。首先,要明确的是学习嵌入式系统的目的是如何使用,而不是制造。具体说就是不制造嵌入式处理器,不制造嵌入式操作系统,而是利用现有嵌入式处理器设计电路,或利用现有嵌入式操作系统编制程序。其次,要明确有无操作系统,这是设定教学方向的依据。
如果没有操作系统,则需要在程序设计中直接操作各个硬件寄存器,和硬件直接打交道,程序和硬件直接相关,称为嵌入式系统的硬方向。一个嵌入式处理器是否具有操作系统不是随意的,因为操作系统属于额外代码,对嵌入式处理器的性能是有要求的。若嵌入式处理器的性能较低,勉强运行操作系统,也是没有意义的,不如裸机运行快。这方面的嵌入式处理器有51、61、STM32等,学习的重点在于处理器本身。嵌入式系统的硬方向,其课程名仍称为嵌入式系统。
如果有操作系统,则程序设计中无须直接操作各个硬件寄存器,不和硬件直接打交道,直接操作硬件的工作由操作系统(含驱动程序)完成,程序可以做到和硬件无关,只需和操作系统(含驱动程序)软件接口,称为嵌入式系统的软方向。一个嵌入式处理器是否具有操作系统不是随意的,性能较高的嵌入式处理器,如主频400 MHz以上的S3C2410,其内部结构已经复杂到让直接操作硬件变得不现实,必须采用嵌入式操作系统进行开发,如Linux、Android、iOS,学习的重点在于操作系统,而不是处理器本身。嵌入式系统的软方向,其课程名可以称为嵌入式操作系统。
4 嵌入式系统的内容设置
嵌入式系统,作为嵌入式系统的硬方向,课程内容应该是学习不带操作系统的嵌入式处理器,学习的重点在于处理器本身的细节,为进一步学习嵌入式操作系统建立一个扎实的硬件基础。没有这个环节,就难以理解操作系统的一些硬件概念。
嵌入式系统课程主要培养学生了解有关嵌入式系统的基本原理、设计方法以及嵌入式系统的最新发展,初步掌握嵌入式系统开发的过程和常用方法。通过本课程的学习,要求学生掌握嵌入式系统的基础概念、基本原理、开发流程和步骤、嵌入式应用系统工程设计和解决技术问题的基本方法,具备一个合格的高新技术工程研发人员综合运用所学各种知识和技能,从分析嵌入式系统应用项目需求,到确立设计开发方案,到方案实施和解决基本问题的能力。
课程基本内容:了解嵌入式系统的特性、基本原理及其发展趋势;建立嵌入式系统的概念;掌握51体系结构、STM32嵌入式微控制器及嵌入式系统分析和设计等内容。该课程是一门实践与理论结合性很强的课程,以电子技术、微机原理与接口技术、C语言等课程为基础,主要介绍基于51和STM32微处理器的硬件基础和编程。
课程重点与难点:嵌入式系统的概念,嵌入式系统的硬件系统,包括IO、中断、DMA、SPI的工作原理,嵌入式系统的C语言编程方法。
课程章节主要内容总体分为51和STM32两大部分。
第一部分
第2章 AT89s51单片机硬件结构:AT89S51单片机的硬件组成,引脚功能,电源及时钟引脚等。
第3章 C51语言编程基础:Keil C51简介,Keil C51的开发工具,C51语言程序设计基础,C51语言中的数据类型与存储类型等。
第4章 AT89s51片内并行端口的原理及编程:AT89S51
的并行I/0端口的结构及工作原理,并行I/O端口的C51编程举例。
第5章 AT89s51单片机的中断系统:AT89S51中断技术概述,中断允许与中断优先级的控制,响应中断请求的条件,中断函数。
第6章 AT89s51单片机的定时器/计数器:工作方式控制寄存器TMOD,定时器/计数器的4种工作方式,定时器/计数器的编程和应用。
第7章 AT89S51单片机的串行口:串行口的结构,串行口控制寄存器SCON,特殊功能寄存器PCON,串行口的4种工作方式。
第12章 单片机的串行扩展技术。
第二部分
第1章 STM32基本原理:STM32性能和结构,Cortex M3处理器,Cortex M3寄存器,STM32储存地址映射,复位和时钟控制。
第2章 硬件设计:STM32主板设计,MCU及其周围电路设计,USB转串口电路设计,TTL转RS232电路设计,网络端口電路。
第3章 STM32软件开发:STM32软件开发环境,MDKKeil开发环境,获得和理解固件库,操作GPIO和管理中断,嵌套向量中断控制器NVIC库函数,串口通信和DMA编程,SPI与I2C编程,TF卡编程,液晶屏及触摸屏编程。
参考文献
[1]王奕翔.《嵌入式系统原理与应用》课程教学改革与实践[J].教育现代化,2016(25):51-52.
[2]李涵.案例教学法在嵌入式系统安全课程中的应用[J].教育教学论坛,2016(13):186-187.
[3]董谦.嵌入式系统设计课程教学资源建设探索[J].产业与科技论坛,2016(5):197-198.