武永华,左瑞娟(.福建江夏学院,福州 35008 .福建师范大学,福州 350007)
应用型本科院校电子信息工程专业《嵌入式系统》课程架构设计
武永华1,左瑞娟2
(1.福建江夏学院,福州350108 2.福建师范大学,福州350007)
摘要:
关键词:
《嵌入式系统》课程是一门实践性很强的课程,该课程主要培养学生的实践动手能力。是对学生综合能力与创新能力的考查。本文以电子信息工程专业学生为背景,以培养应用型人才为目标,对《嵌入式系统》课程教学架构进行了深层次的三层剖析。
《嵌入式系统》课程涉及软件、硬件、嵌入式操作系统、应用程序开发[1]。课程的设计必须要和模电、数电、单片机、、微机原理、C语言、数据结构等关联课程知识相结合。学习该课程是目的是培养知识的综合运用的能力。课堂的讲授和实验是远远不够的,本文将从以培养应用型人才为目标,在结合电子信息工程专业知识体系软硬结合的特点,对本课程的技能和能力培养相关课程内容、实践教学方式和项目带动课程内容的吸收等环节进行了整理,对嵌入式《系统课程》架构模型进行了研究,并以此构建适应培养创新型人才的嵌入式系统课程架构设计。
根据电子专业的课程特点,将整个课程分为三个教学层次,如下图1所示,一是课程基础内容介绍,二是基于S3C2410硬件资源裸机教学内容[2],三是基于S3C2410 Linux[3]操作系统内容,采用分层次分内容的课程架构设计。
图1 课程的三个教学层次
1.1课程基础内容设计
该课程基础内容的讲解主要包括两个大方向,一是嵌入式系统开发过程,二是S3C2410 ARM体系结构。
嵌入式系统的开发过程要让学生了解嵌入式电子产品的开发流程,要理解源代码的编写、编译和链接、下载镜像文件到开发板以及最重要的交叉调试的过程。一般通过在源代码中加入串口的Print语句在串口端来分析程序运行的状况,来完成调试程序的过程,这是目前电子行业调试程序通用的最简单的调试方法。该部分内容需要1-2个学时。
S3C2410 ARM体系结构[4]首先要让学生深刻理解ARM公司是IP的供应商,本身并没有生产IC,其次要了解ARM的9种寻址方式和寄存器组织图以及流水线步骤,第三要掌握程序数据的访问均要通过加载(Load)/存储(Store)指令进行以及对应的ARM的指令系统。该部分设计汇编指令较多,建议只是讲解一下基础的几个指令即可。该部分内容需要4-6个学时。
1.2S3C2410硬件资源裸机教学内容设计
本部分主要针对S3C2410的硬件资源进行一系列的教学设计。S3C2410硬件资源的学习采用实验箱原理图、寄存器和IC的规格书、C程序的三层架构。这样可以让学生更深刻理解电子产品的开发工作,不仅仅只是写代码,原理图和寄存器也要深刻了解,这样才能写出稳定性强的代码。特别是让学生看懂寄存器和怎么利用寄存器调试碰到的问题。该部分主要包括以下8个小节,需要32个学时。是本课程的重点部分。
(1)基于ARM汇编语言和C语言程序设计
本小节让学生了解ARM汇编语言的基本框架和C语言的基本架构,学会使用ARM的简单的汇编语言编程和C语言编程。同时了解在Windows环境下ARM编译环境的搭建。
(2)基于ARM的硬件Boot启动程序设计
本小节主要让学生理解裸机程序Boot的启动过程。复杂的片上系统中多数硬件模块都是可配置的,需要由软件来预先设置其需要的工作状态,因此在用户的应用程序之前,需要由专门的一段代码来完成对系统基本的初始化工作。由于此类代码直接面对处理器内核和硬件控制器进行编程,故一般均用汇编语言实现。学生要深刻理解中断向量表。
(3)ARM的I/O接口
本小节首先让学生看懂实验箱原理图,明确要知道两个LED灯和S3C2410的那两个GPIO管脚相连的走线,由于S3C2410芯片采用FBGA封装,所以管脚在芯片底部,这个要让学生看S3C2410的底部封装尺寸图。其次看懂对应GPIO管脚的控制寄存器包括GPXCON、GPXDAT、GPXUP,最后要从代码部分知道关于寄存器宏定义语句的方式和关于GPIO管脚某位BIT采用相与和相或的方式来置位和清零,这是在程序中最基本的操作方式,只操作自己需要的BIT而不能改变其他BIT。
(4)ARM的中断
掌握ARM9的中断原理,能够对S3C2410的中断资源及其相关中断寄存器的进行合理配置。学习响应外部中断请求的配置方法,并通过响应定时器中断,执行中断服务子程序使CPU板上的LED指示灯LED1、LED2闪烁。
定时器的初始化程序是重点,要产生一秒的定时间中断,必须设定TCFG0、TCFG1、TCNTB1、TCON。通过S3C2410的16 Bit PWM定时器方框图来了解这几个寄存器的之间的关系,在此基础上请学生编写0.5秒和2秒的定时程序。
(5)ARM的DMA传送方式
本小节让学生深刻理解DMA数据传送方式,这种方式是存储器与外设在DMA控制器的控制下,直接传送数据而不通过CPU,这样CPU可以去处理其他任务。ARM的DMA通道有4个,要理解DMA通道的初始源寄存器、初始源控制寄存器、初始目标寄存器、初始目标控制寄存器。本小节初始源为存储器、初始目标为串口。同时要重点强调学生理解S3C2410的结构框图。理解挂载在APB,AHB总线上的DMA控制器和串口。
(6)ARM的A/D接口
S3C2410的A/D转换器包含一个8路模拟输入混合器。通过实验箱原理图,让学生清楚知道是采用哪一路A/D。A/D接口涉及的寄存器主要是两个ADCCON 和ADCDAT0。A/D采集程序设计的一般步骤是启动AD、选择通道、等待转换结束、获取转换结果四个步骤,这个部分的内容是学生必须深刻理解的一个知识点。
(7)基于HD7279A的七段数码管和键盘的控制[5]
键盘和数码管接口控制芯片HD7279的应用对于电子专业的学生是一个经典电路应用,此款芯片最多可以同时接8个数码管和64个按键。学生要通过实验箱原理图看懂S3C2410和HD7279的连接方式(4线:CS、CLK、DATA、KEY)。通过HD7279的Datasheet,掌握HD7279的典型应用电路。程序设计首先通过GPIO仿真出HD7279的控制时序图,然后才能操作HD7279的寄存器,可以让学生写部分测试程序,包括闪烁、左移等操作。
(8)基本输入输出接口
本小节内容主要是让学生掌握S3C2410和外围芯片74LS244&74LS243输入输出控制。通过74LS244接收按键状态,然后输出至74LS243的LED来显示。通过原理图要知道这些芯片的片选地址,同时让学生要体会到这些芯片都是挂载在总线上的。
这些教学内容是脱离操作系统的Hardware,通过这部分知识的学习可以掌握ARM硬件的架构和软件的启动过程、运行过程,真正理解ARM芯片级的应用。
2.3S3C2410 LINUX系统教学内容设计
在熟悉ARM的硬件资源后,本部分内容主要是基于ARM的Linux系统,学生要熟悉Linux基本命令操作。这部分内容是难点,学生要掌握交叉编译环境的建立、BootLoader&Kernel&FS这三部分源码的编译、镜像文件的形成和镜像文件的下载、驱动程序的设计、应用程序的设计,该部分内容大概需要26课时左右。
(1)Linux基本命令的操作,熟悉VMware的安装,并导入Linux虚拟机,在Linux终端下面让学生练习一些基本的Shell命令,包括CP、RM、Tar、Chmod、Mount等命令。让学生初步了解Linux的环境和命令操作。
(2)Bootloader-vivi的编译、下载镜像文件、vivi模式下命令的输入。这部分的内容首先要在虚拟机上安装S3C2410的交叉编译工具链,然后在官网下载vivi的源码,通过编译器完成编译,并通过串口调试工具或者JLINK烧录镜像文件到ARM开发板上面。
(3)内核和文件系统的编译、下载。这部分内容首先要下载官网的源码,然后经过裁剪、移植后变成可以在开放板上运行的Linux。由于移植内核所涉及的内容较多,且也较复杂,一般也不必太过关心,网络上有专门的非官方组织在完善该事情。学生所做的移植也偏重于应用。内核的编译通过make dep、make clean、make zImage生成镜像文件。在宿主机架设NFS服务器,然后在ARM开发板通过mount命令把内核镜像和文件系统加载到开发板上面,通过网络烧写软件imagewrite更新内核和root文件系统到ARM开发板。
(4)设备驱动程序是Linux内核和硬件之间的接口。通过填充file_operations的各个域,并编写子函数来完成设备驱动程序的设计。
(5)应用程序开发首先设计完成简单的hello.c编辑、makefile的生成、编译、动态加载运行或者加入文件系统运行。其次结合裸机的按键驱动模块,完成按键输出到串口的应用程序设计。
《嵌入式系统》课程是一门实践性较强的课程,通过建立不同层次的孤立知识点的联系,提高理论内容和实践项目的贴合度,让学生充分体会到做嵌入式项目的乐趣。本文构建的《嵌入式系统》课程架构在实际教学中富有成效,取得了良好的教学效果,使很多学生能够掌握嵌入式项目基本开发,大大提高学生嵌入式系统设计的开发能力。
参考文献:
[1]白华,张诚,高华. CDIO模式在《嵌入式系统》教学中的应用探讨[J].教育教学论坛,2013(50):67-68.
[2]徐英慧,马忠梅,王磊,王琳. ARM9嵌入式系统设计-基于S3C2410与Linux(第3版)[M].北京:北京航空航天大学出版社,2015.5.
[3]王琳等.嵌入式系统专业中Linux操作系统教学研究与设计[J].计算机教育,2014(24):77-81.
[4]杜春雷. ARM体系结构与编程(第2版)[M].北京:清华大学出版社,2015,8.
[5]叶克江.键盘显示专业器件HD7279的接口设计[J].电子设计工程,2009,17(3):122-125.
Architecture Design of Embedded System Course of Electronic Information Engineering Specialty for Application-Oriented Colleges and Universities
WU Yong-hua1,ZUO Rui-juan2
(1. Fujian Jiangxia University,Fuzhou 350007;2.Fujian Normal University,Fuzhou 350007)
Abstract:
Keywords:
《嵌入式系统》课程是一门软硬结合的课程。结合应用型本科电子专业特点,提出该课程的分层次分内容的三层课程架构设计,充分考虑该专业学生软硬件能力,结合每次实验的原理图、寄存器、代码三个内容,使学生能扎实理解并掌握嵌入式课程的基础设计并进行二次项目开发。
嵌入式;原理图;寄存器;软硬结合;应用型
基金项目:
福建省教育厅A类(No.JA15105)
文章编号:1007-1423(2016)13-0029-04
DOI:10.3969/j.issn.1007-1423.2016.13.008
作者简介:
武永华,男,讲师,工程师,硕士研究生研究方向为嵌入式系统开发
左瑞娟,女,讲师,硕士研究生,研究方向为模式识别、人工智能、嵌入式系统
收稿日期:2016-02-02修稿日期:2016-04-06
Embedded System course is one course of hardware-software. Combines with characteristics of electronic information engineering specialty,and proposes three layers structure design of level-division and content-division for this course. Also considers student capability of software and hardware for this specialty,combines with three contents of schematic diagram,register,code for every experiment,and this method lets student master base design of Embedded System course and also easily makes secondary project development.
Embedded;Schematic Diagram;Register;Hardware-Software;Application-Oriented