时间:2024-07-28
任志敏
(常州纺织服装职业技术学院机电工程系,江苏 常州 213164)
一种ARM技术及其应用课程项目化教学方法
任志敏
(常州纺织服装职业技术学院机电工程系,江苏 常州 213164)
针对ARM技术及其应用课程的教学存在的问题,提出一种该类课程项目化教学的设计原则,教学方法,并分享了教学内容。本教学方法是对该类课程教学改革提出的一种尝试,旨在培养学生的学习兴趣,提高学生学习的效率,增强学生学习的效果。
ARM;课程;项目化教学
从低端的ARMCortex-M系列,到高端的ARMCortex-A系列,从替代传统单片机,到手机、平板等消费类电子产品,以ARM体系结构设计的处理器已经成为当今嵌入式系统产品的主流控制器。随着互联网+,工业4.0,中国制造2025等概念的不断深入,嵌入式系统的应用领域越来越广泛,包括机器人,无人机,智能装备等。嵌入式系统领域的人才需求也越来越旺盛,要求也越来越高。在这样的背景下,高校计算机类专业,电子信息工程类专业均开设与ARM技术相关的有关课程,因此,如何有效地计划,实施,设计本课程成为高校教师研究的方向之一。
笔者所在的学校是高职校,高职学生学习ARM课程相对而言难度还是比较大。总的来说,ARM课程既需要了解硬件知识,也需要较好的编程能力。具体原因有:1) ARM本身的体系结构知识,比如工作模式,存储结构,指令集等就不是很简单。2) 学习ARM一般会以某个具体厂商生产的CPU为平台,因此还需要阅读大量有关CPU的数据文档,而且这些数据文档大多是英文的。3) ARM应用程序涉及到大量C/C++等编程语言。高职学生的特点是:1) 不喜欢阅读文档,尤其是英文文档。2) 分析解决具体问题的能力不足。3) C/C++编程能力待提升。
2.1 项目化教学背景
项目化教学以问题为导向,体现教、学、做融于一体的教学理念,改变传统上教师单一填鸭式,讲授式,学生被动听讲的教学模式。应该说这是一种效率较高的教学模式,但是在实践中有些老师为了体现项目化这一教学模式,把原来的知识点变成了一个个项目,使得一门课程出现了十几个,甚至是几十个项目,如果仅仅是这样的项目化教学改革,是表面的,不够深入的,学习效果较之传统也不会提高太多[1]。
2.2 项目设计
笔者所教授的ARM技术及其应用课程是以三星公司的S3C2440为学习平台。S3C2440是三星公司一款明星ARM9处理器,广泛应用于消费类电子、工业控制、航空航天、汽车电子、医疗器械等领域。
经过笔者多年的课程教学经验和研究,总结出ARM课程项目设计总体原则:贴应用,大项目,小任务[2]。项目选择首先要注意和实际结合,紧贴实际应用,项目内容要涵盖尽可能多的知识要点。因此,笔者设计了“裸机环境下S3C2440采集一帧图像传输到PC并显示”的项目,首先这一项目符合贴应用的原则,即设计的项目应该是有现实应用需求的,本项目和汽车倒车影像这一实际应用很接近。这个项目涵盖了ARM启动代码,S3C2440通用输入输出口,中断控制,存储控制,串行总线,I2C总线,CAMERA接口等诸多知识要点,这些知识要点可以构成一个个小任务,这几点符合大项目和小任务的原则。
2.3 教学内容
针对高职学生的特点:教学需要直截了当,一目了然。因此笔者设计在S3C2440裸机下完成该项目,裸机的好处有两点:一是降低该项目的复杂度,避免涉及到操作系统的知识;二是与硬件直接打交道,更有利于学生掌握相关基础知识要点。总体教学原则是:自顶向下,逐步求精,模块化。
第一步,自顶向下,笔者首先讲解该项目的总体框图[3],如图1所示。
图1 项目总体框图
总体框图的作用可以让学生更直接、直观认识到本项目的数据流向,通过串口从PC机发出采集一帧数据的命令,S3C2440启动采集OV7725摄像头的图像数据,获得图像数据后再次通过串口回传数据至PC机处理并显示图片。
第二步,设计模块化的任务。从图1总体框图可以看出,本项目包括三部分,每一部分都设计相应的模块。OV7725摄像头部分设计的模块如图2所示。
图2 OV7725摄像头部分模块
OV7725摄像头部分分成3个模块,解决3个问题,分别是:
1) 图像数据的输出格式,主要包括配置各种不同的RGB和YUV输出格式以及图像输出的分辨率。
2) 帧、行、像素控制信号时序,可以说,掌握了这3个信号的输出时序,摄像头的问题基本就解决了。
3) SCCB总线配置,本质上,SCCB总线就是I2C总线,所有有关摄像头的参数配置,比如,输出模式,窗口大小等都需要通过SCCB总线配置相关的寄存器实现。通过以上3个模块,学生可以掌握有关摄像头的所有知识,做到举一反三。
PC机部分也设计3个模块,如图3所示。分别是:
图3 PC机部分模块
1) 串口通信。为了降低模块的复杂度,避免学生设计上位机程序,因此本模块直接选择accessport串口监控工具软件来接收数据,该软件简单易用,只需要设置串口号,波特率,停止位,校验位等参数即可接收数据。
2) 图像数据处理需要处理两类数据,一是Y信号亮度数据,可以直接形成黑白的图片。二是RGB24数据,可以形成彩色图片。
3) 形成BMP图片,这个模块主要是让学生了解BMP的图片的构造规范,根据规范编写两个上位机程序,一是通过串口获得的Y信号数据形成灰度BMP图片,二是形成BMP24位真彩色图片。PC端形成BMP图片程序的流程图如图4所示。
图4 形成BMP图片程序流程图
不管是生成BMP灰度图,还是24位彩色图,程序流程都是一样的,不一样的地方在于一是配置BMP文件头,灰度图需要配置颜色表,彩色图不需要这个颜色表数据[4]。二是读取的图像数据,灰度图的数据量只有彩色图的1/3。
S3C2440控制器部分涉及的模块最多,如图5所示。分别是:
图5 S3C2440控制器部分模块
1) ARM启动代码。ARM指令和汇编语言程序设计对高职学生来说是难点,在本模块中,用到的指令虽然相对较少,但却是麻雀虽小,五脏俱全,本模块编写的程序包括ARM的7种工作模式,模式的切换,CPSR状态寄存器的读取和配置,中断模式的进入和退出等,基本上涵盖了ARM体系结构的重要知识点。
2) 通用输入输出口。输入输出口是学习任何一个嵌入式控制器最基础的模块,虽然S3C2440的IO接口众多,但是输入输出口的配置方法是一样的,通过这一模块,学生很容易做到举一反三。
3) 中断控制。本模块涉及的知识点有S3C2440的中断源,中断寄存器的配置,中断程序的编写等。S3C2440虽然有多达60个中断源,但是掌握其中的一个就可以窥一斑可知全豹,触类旁通。
4) 存储控制。与本项目相关的存储主要是SDRAM的配置。阅读并理解时序图对高职学生来说是难点和盲点,本模块就是为解决这个问题设计的。SDRAM用来保存采集的一帧图像数据,因此需要对SDRAM初始化,SDRAM初始化的过程就是对S3C2440有关内存控制器13个寄存器配置的过程,要配置这些寄存器需要阅读并准确理解SDRAM的时序图,比起单纯讲解时序图的枯燥与晦涩,在具体应用中,带着问题去配置寄存器往往会对时序图有更深刻的理解,取得更好的效果。
5) CAMERA接口。CAMERA接口模块主要包括对CAMERA的配置,图像存储地址的设定,中断初始化,开关中断等。CAMERA接口程序设计是本项目所有模块中最复杂的模块,涵盖了摄像头的帧,行,像素时序,图像数据编码方式,图像分辨率,图像的预览通道和编码通道等。通过本模块的学习,学生结合摄像头OV7725的知识要点,融会贯通,掌握如何通过编程实现S3C2440的CAMERA接口与OV7725之间的控制与被控制。
6) I2C接口。I2C是一种两线的串行通信协议,在摄像头的寄存器配置,EEPROM存储器,相关传感器中应用很广泛。I2C通信本质是按照I2C的规范时序图编写相应的函数,对时序图进行分解,再次降低其复杂度,分成I2C启动、停止、应答、读写单个字符,读写I2C设备等函数。使用这些简单函数写OV7725的器件地址,写OV7725的寄存器号,写入相关值就可以配置OV7725的寄存器了。需要特别指出的是,本模块采用通用输入输出口模拟I2C协议的方法,使得学生可以更深刻掌握I2C的协议。
7) UART接口。UART是一种低速的串行通信接口,一般很少作为图像传输的接口,因为图像传输数据量很大,UART无法满足这种需求。一般用LCD屏实时显示图像,或USB接口,以太网接口等传输到上位机显示图像。本项目设计UART接口传输的初衷是:①LCD屏实时显示可以作为本项目的附加显示接口。②在裸机下,实现无论是USB接口,还是以太网接口驱动程序很复杂,一般都需要操作系统支持。而UART的裸机程序比较简单,因此,本模块只需用简单易学的代码,通过UART传输一帧数据到PC机,虽然很慢,但是学生仍旧可以清晰地学习到上位机图像处理的知识。
在本项目的教学过程中,笔者的体会是,在高职学生分析问题的能力相对较弱,学习兴趣不高的前提下,教师需要做的很大的工作是:1) 教学项目设计,设计能激发学生兴趣的项目,哪怕是增加一点点兴趣。2) 需要把教学内容模块化,简单化,即项目模块化,模块函数化,知识要点都集中到函数中,各个击破。真正符合教学内容贴应用,大项目,小任务的原则。
[1] 丁丽丽.高职教学改革实践“项目化教学”的应用分析[J].中国教育学刊,2015(S1):224-225.
[2] 陈家俊.模块化、项目化、多元化的大学生信息技术基础教学[J].安庆师范学院学报(自然科学版),2016,22(1):138-141.
[3] 杨成禹.基于ARM的图像采集与传输系统设计[J].电子测量技术.2015, 38(12):59-62.
[4] 任志敏.一种基于C51单片机的图像采集处理系统设计[J].电脑开发与应用.2013,26(3):57-59.
A Project Based Teaching and Learning Method Used for ARM Technology and Application
Ren Zhimin
(DepartmentofElectromechanicalEngineering,ChangzhouTextileGarmentInstitute,
ChangzhouJiangsu213164,China)
In order to solve the problem in teaching and learning of ARM technology and application, this paper provides the project-based principle and method used for this kind of course and shares content of it. The method tries to benefit the teaching reform of the course and cultivates the interests of students, improves the learning efficiency of students and enhances the learning results of students.
ARM; course; teaching and learning based project
2016-10-28
任志敏(1981- ),男,江苏常州人,讲师,硕士研究生,研究方向:嵌入式系统。
1674- 4578(2017)01- 0006- 03
TP332;G642
A
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!