APP下载

Cortex-M3嵌入式系统课程的实践教学方法探讨

2021-04-09上海理工大学机械工程学院张会林

电子世界 2021年21期
关键词:加速度计内核寄存器

上海理工大学机械工程学院 张会林

本文分析了嵌入式系统课程教学内容的内涵,阐述了在Cortex-M3嵌入式系统课程教学中开展理论与实验结合的必然性。从Cortex-M3的处理器结构、片内外设接口与编程、C/OS-II的移植到自平衡小车实例开发角度,分析了Cortex-M3嵌入式系统教学的难点。对电气类本科专业,开展嵌入式系统课程理论与实验教学,在实验过程中进行多种实践方法探讨。从教学效果来看,本文方法对嵌入式系统课程的理论教学、实验开发的实践方法及实验任务安排都有很好的指导意义。

ARM芯片是英国ARM公司开发的RISC结构微处理器,它有高性能、高代码密度、小硅片面积等优点,在嵌入式系统领域得到了广泛的应用。Cortex系列是ARM公司在ARM架构之后推出的新型ARM处理器,有A、R、M三个系列。Cortex-M3内核是ARM公司于2004年推出的的Cortex-M系列微控制器,是ARM V7体系结构,可用于低成本微处理器、汽车电子、消费电子和无线技术等领域。Cortex-M3内核的处理器本身资源不复杂,特别适合高等院校本科生对ARM的体系结构学习,同时可移植小型开源操作系统C/OS-II,能加深学生对嵌入式操作系统认识。

1 Cortex-M3嵌入式系统课程的教学内容与培养要求

Cortex-M3嵌入式系统课程是电气工程及其自动化专业的重要基础课,该课程的主要任务是:通过本课程的学习,使学生对嵌入式系统原理与技术有系统的、全面的了解;掌握Cortex-M3的概念、组成和体系结构特点;通过对C/OS-II详细剖析,掌握RTOS实时操作的原理,对其内核结构、任务调度等有深入的了解,培养嵌入式系统的设计和开发应用能力。

通过学习本课程后,应达到下列基本要求:(1)熟悉Cortex-M3微处理器的体系结构及应用特点;(2)熟悉UART、Timer、I2C、A/D等常用片内外设所对应寄存器的配置,为实际应用开发打下基础;(3)熟悉C/OS-II内核及如何进行C/OS-II的应用编程等技术点。

2 Cortex-M3嵌入式系统课程的教学难点

学习Cortex-M3嵌入式系统课程的重点和难点关键在片内外设的寄存器配置及C/OS-II应用开发,如果没有掌握片内外设,笔者认为很难把握一个嵌入式系统。虽然在Cortex-M3嵌入式的开发过程中,应用层编程几乎可以不熟悉片内外设也可以开发,但那是浮于表面,很难深入和提高自己的层次。选择C/OS-II这样的操作系统开发,对本科教学最为合适。

本课程教学的难点在于以下几点:

(1)Cortex-M3指令集

ARM7、ARM9内核都支持有ARM指令集和Thumb指令集,而Cortex-M3内核是Thumb-2指令集。了解Thumb-2指令集,可以更深层次的理解Cortex-M3的启动过程。

(2)片内外设的寄存器配置与接口技术

Cortex-M3系列微处理器有众多的片内外设,不同的需求要有不同的配置,它的寄存器配置是学习中的重点与难点。

(3)μC/OS-II操作系统的原理及应用

μC/OS-II是一个有64个优先级的抢占式微内核实时操作系统,它的代码固定,便于移植,编译后只有几kB,系统代码可裁剪,已在超过40种不同架构的8位到64位的微处理器上运行,在控制领域有着广泛应用。μC/OS-II的主要特点有:它有一个占先式的内核,也就是已就绪的高优先级任务可以剥夺正在运行的低优先级任务的CPU使用权;56个用户任务的优先级可以动态调整;操作系统运行时,可以通过信号量、邮箱和消息队列实现在不同任务间同步以及交换数据;操作系统大小可裁剪,便于选择适合系统的ROM和RAM的容量。

(4)两轮自平衡小车系统原理及软硬件设计

两轮自平衡小车是利用自身动力使小车保持相对平衡,是一个动态平衡的过程。维持小车平衡的动力来自车轮的运动,它由两个步进电机共同驱动。对小车的控制可以分解为三个任务:控制小车车轮正反转,使小车保持直立平衡;控制小车的倾角,实现小车前后运动和速度的控制,实质是通过控制电机的转速实现;控制小车两个电机之间的转速差,实现转向控制。两轮自平衡小车的控制分解为三个任务后,系统的软件编程更加结构化。

小车的硬件分为三个模块,分别是主控模块、小车姿态获取模块以及电机驱动模块。主控模块采用Cortex-M3的最小系统,开发非常方便。通过加速度计和陀螺仪获取小车姿态,理论上只需要一个两轴加速度计和一个单轴陀螺仪。两轴加速度计可以测量出小车的倾角,但是加速度计的瞬时误差较大;陀螺仪通过角度积分可以获得小车角度,经过积分会产生累计误差,并且会越来越大。所以,采用卡尔滋曼滤波算法对系统的陀螺仪和加速度计获得的角度进行数据融合,计算出小车实际的倾斜角。芯片MPU6050集成了三轴加速度计和三轴陀螺仪,能得到小车的角度和角速度。小车姿态获取模块中,使用芯片MPU6050来获取数据,以I2C通信的方式向Cortex-M3传递数据。两个电机的PWM用Cortex-M3的定时器的8个通道输出,两组H桥驱动电路分别控制2个直流电机。小车的软件开发,在MDK5.4开发环境上编程以及Jlink在线调试完成。

3 Cortex-M3嵌入式系统课程的实践教学方法探讨

首先,必须合理安排嵌入式系统课程的教学任务。因为当前的本科专业需要学习的课程门类已大为增加,每门专业课的学时都不多,突出要点才可以更加有效。建议这门课可安排48学时理论课,另加16学时实验课。这就要求理论教学应与基础实验结合来讲解,例如嵌入式系统课程的理论教学就不能像汇编语言那样每条指令语句讲解,而是应结合具体基础实验讲解寄存器配置与片内外设接口技术。

其次,注重理论教学的实践性。本课程中有很多的实践环节,针对性实验应是理论教学的重要补充。先熟悉开发环境,可以给后续开发带来便利。因为意法半导体公司对Cortex-M3的支持,开发工具中有很多库函数,开发者熟悉后,上手快。特别适合如全国大学生电子设计竞赛(时间短,编程量大),避免复杂程序结构让参赛者陷入困境,选择Cortex-M3的系统可以加快开发。因此,嵌入式系统课程的实验,让学生先完成基础性项目,然后在拓展实验中完成一些传统8位单片机不能实现的功能,突出Cortex-M3系统设计的优势。例如TFT LCD显示+触摸屏,重点在人机界面;UART、无线或有线通信模块接口,关注通信协议与寄存器配置;μC/OS-II应用突出了实时操作系统的多任务操作实现等。通过这些实践,让学生明白诸如ISP下载方式、ARM指令与寄存器配置等只是提高动手能力,而高质量完成实验开发项目、提高设计能动性与创造性最为重要,从而能够有效提高自身工程实践能力的教学效果。

再次,安排多种实验项目进行多层次的实践教学。理论教学活动中,在课本内容之外,安排基础实验教学,便于学生熟悉实验系统。设置的实验项目需要给出实验目的、实验原理、思考题和实验报告的具体要求,同时还应包含以下3类实验项目:(1)与接口相关的基础实验项目,对于该类实验,学生只须将DEMO板提供的程序导入到工程,按要求编译通过,并在实验系统上能观察到现象即可;(2)功能性实验项目,在基础实验上进一步发挥;(3)系统开发实验项目,属于自主设计或创新的实验项目。这样安排使学生可以循序渐进,提高综合实践能力。

最后,课程实践与电气工程专业特点结合。一般认为嵌入式系统技术难点在于片内外设的寄存器配置。对此,根据电气类专业的特点,教师需改进现行的嵌入式系统教学模式,以Cortex-M3体系结构为基点,在基础实验讲解中引出片内外设的寄存器配置,用少数几个典型的实例将寄存器配置中最关键的内容解释清楚,使学生短时间内就能有效把握片上外设寄存器的配置与接口技术之间关系,而不必用花大量的时间去学习ARM指令与接口技术。要求教师合理分配实验时间,提高学生的实践能力,促进他们的学习积极性。

结束语:在嵌入式系统课程教学中进行实践教学方法探索,有利于培养电气工程专业“宽口径、复合型”人才。保持嵌入式系统教学内容的系统性和完整性,使学生通过大量寄存器配置及工程实践,掌握嵌入式系统理论与实验开发结合的方法,该模式取得了良好的效果,主要表现为:(1)理论课重点分析Cortex-M3处理器内部结构、Cortex-M3的最小系统、I/O及中断编程、定时器原理及应用、μC/OS-II内核和移植、自平衡小车系统原理及软硬件设计的6个主题内容,让学生明确学习任务。(2)通过接口实验,初步掌握Cortex-M3系统最重要的应用基础。(3)通过8个典型示例的设计练习,使学生能迅速学会使用Cortex-M3库文件的编程方法和利用μC/OS-II完成多任务应用程序开发,达到创新型人才能力培养目标。

猜你喜欢

加速度计内核寄存器
STM32和51单片机寄存器映射原理异同分析
基于加速度计的起重机制动下滑量测量
强化『高新』内核 打造农业『硅谷』
Lite寄存器模型的设计与实现
基于嵌入式Linux内核的自恢复设计
Linux内核mmap保护机制研究
基于遗传算法的加速度计免转台标定方法
常温下硅微谐振加速度计零偏稳定性的提高
微生物内核 生态型农资
四加速度计组合的测试方法研究