用Cortex―MO ARM代替8051系列单片机的嵌入式教学

时间:2022-10-08 08:48:39

用Cortex―MO ARM代替8051系列单片机的嵌入式教学

摘要:Intel公司的8051系列单片机进入国内市场较早,至今许多学校单片机教学都是采用8051系列。文章通过对比Cortex-MO ARM和8051系列单片机的性能及使用方法,提出在嵌入式应用中,用先进的Cortex-M0 LPCIl00系列ARM代替8051单片机的方法,介绍在具体教学改革中进行的有益探索。

关键词:单片机实验;Cortex-MOARM;8051单片机;LPCI100系列ARM

1 背景

Intel公司于1980年推出的8051系列单片机,奠定了嵌入式应用的单片微型计算机的经典体系结构,由于进入国内市场较早,学校单片机教学都是采用8051系列;加之Intel公司实施了805l的技术开放政策,ATMEL公司、PHILIPS公司著名的电子公司,以其在电子应用系统的优势,着力发展8051单片机的控制功能及单元,形成了可满足大量嵌入式应用的单片机系列产品。直到现在,仍然有不少学校在单片机教学中采用8051系列。ARM公司自1990年成立以来,不断推出各种ARM内核,前几年推出的都定位在高端市场;对于使用者,芯片、开发工具及开发平台较贵,开发难度也较大;ARM公司在2005年收购805l的最大工具开发商Keil,就为其进入8/16位市场做准备。2009年后,ARM公司推出了Cortex-MO ARM,它低功耗、高性能、代码密度高,价格比其他8位单片机低,而且开发工具、平台价格低,开发难度大大降低。可以说,用Cortex-MO ARM代替8051单片机的时机已经成熟,学校单片机教学内容进行改变是实现代替的第一步。我们在使用Cortex-MO ARMLPCI 100教学过程中,把两者性能及使用方法进行了对比,在具体应用上提出自己的看法,并做了有益的探索。

2 LPCI100系列ARM功能

ARM Cortex-MO处理器工作频率50MHz,嵌套向量中断控制器,可快速确定中断,唤醒中断控制器,支持优先中断自动唤醒。具体包括3种节能模式:睡眠模式、深度睡眠模式和深度掉电模式。内存:最高128KB闪存,最高16KBSRAM。串行外设:UART支持分频波特率产生、内部FIFO和RS-485;SPI控制器,支持FIFO和多协议功能;12C总线接口,支持全速12C总线规范和增强型快速模式,数据速率高达1Mbit/s,支持多地址识别和监控模式。模拟外设:8个通道10位模数转换器,转换速率最高可达每秒250K个采样。最高42个通用I/O(GPIO)管脚,具有可配置的上拉,下拉电阻和可配置的新型开漏工作模式。4个通用计数器、计时器,共4个捕获输入端和13个匹配输出端。可编程看门狗定时器(WDT),带锁死功能;一个系统计时器;各个外设均自带时钟分频器,有利于节能。

从上述性能可以看出,8051单片机具有的所有性能,LPCI100系列ARM都具有,而且增加了许多8051单片机没有的功能。

2.1 LPCI100系列ARM与8051的性能对比

(1)指令长度对比。指令的长度和微处理器的位数无关,经过比较发现LPCI100的指令长度和8051单片机很相似,指令的密度非常大。

(2)处理器运算能力对比。8051单片机虽然支持8位和16位数据,但是对于16位数据需要多次处理,增加了堆栈和中断延迟;LPCI100处理器对长整形的数据处理只需要极少的周期,并具有极佳的浮点处理能力,对于32位数据的传输也只需要很少的时钟周期。

(3)处理性能对比。比较微处理器性能的一种常用的方法是使用Dhrystone基准,它在微处理器中只占很小的内存。比较的结果显示,Cortex-MO性能远大于8051单片机。

(4)运行模式及指令数量对比。8051单片机有一种运行模式,Cortex-MO ARM也只有一种运行模式,非常简单;8051单片机指令集为50条左右,Cortex-M0的指令集也仅有56条。

(5)代码量对比。根据业界的CoreMark基准,在多数常见微控制器任务中,基于Cortex-MO ARM微控制器的代码需求量降低了40%-50%,代码量已经小于同等功能下8051的代码量。这是因为8051所使用的指令并不全是8位的(8-24位),而Cortex-MO的指令位宽大部分是16位的;8051所要处理的数据也不总是8位的,而所有8位、16位和32位数据传输在Cortex-MO ARM中都是通过单一指令完成的;8051的寻址空间限制在64KB,虽然可以用分段方法扩展,但这会带来代码的增长,而Cortex-MO ARM寻址空间可达4GB,完全能满足编制代码要求。

(6)内存访问效率对比。Cortex-MO ARM使用32位总线,减少了内存访问所需次数,从而降低了功耗。对于在内存中复制同样数量的数据,8位微处理器需要4倍的内存访问次数和更多的取指,所以8位单片机需要消耗更多的功耗,才能达到同样的目的。

(7)价格对比。随着近年来制造工艺的不断进步,Cortex-MO ARM的成本也不断降低,已经与8位和16位微处理器处于同等水平。就LPCI100系列ARM而言,价格比许多8位单片机还低。

2.2 使用方式比较

用LPCI100系列ARM代替8051单片机,在使用方式上要相对简单。

(1)I/O端口。8051单片机I/O端口大多数没有复用功能,使用相对简单。LPCI100系列ARM绝大部分I/O端口都有复用功能,可以设置为A/D输入、总线等,默认状态为I/O端口。它共有4个通用I/O端口(如LPCI114 LQFP48共有42位I/O端口),通过GPIO配置寄存器设置不同功能;对于信号传输方向,通过寄存器设置,但一旦设置完成,正常使用就不烦琐了。

(2)中断。就中断控制过程而言,805l单片机和LPCI100系列ARM类似,都是当外设符合中断条件时,中断源会向处理器提出中断请求,处理器开始响应一个中断,中断控制器会自动定位一张中断向量表,根据中断号从表中找到中断服务程序(ISR)的入口地址并跳转过去执行。当中断服务程序执行完成后,从堆栈中取出中断前断点的程序指针及数据,在断点处继续执行。LPCI100系列ARM支持的中断源多,且具有4个中断优先级,8051单片机只有2个中断优先级。

(3)定时器/计数器。8051单片机具有2个16位定时器/计数器,LPCI100系列ARM具有2个16位和2个32位定时器/计数器,每个定时器/计数器都有一个相应的输入信号引脚和2-4个相应的输出信号引脚,具有定时、计数、输入捕捉功能,并可以设置为脉冲宽度调制(PWM)模式,用于电机控制。此外,LPCI100系列ARM还有两个非常有用而8051单片机不具备的功能,就是系统节拍定时器,其拥有专门的内部时钟与异常中断向量,可为实时操作系统提供固定的时间间隔中断;还有就是看门狗定时器(WDT)模块用于对微处理器的运行状态进行实时监测。

(4)通信部件。8051单片机的串行接口只有一个UART,而LPCI100系列ARM具有丰富的串行接口,一个UART还支持RS-485的9位模式和输出使能,给一些分布式控制系统应用带来了方便。除此之外,还具备SSP接口、12C接口,方便应用时选择。

(5)开发软件。KEIL软件是最普及的一种8051单片机编程环境,大多数8051单片机学习、开发人员都是采用KEIL进行编程。在ARM公司收购KEIL公司后,ARM公司结合自己的优势和KEIL的特点推出了新一代的ARM编译平台――RealView MDK。RealView MDK集成了许多先进的技术,包括uVision4集成开发环境与RealView编译器,支持所有的ARM芯片,并且自动配置启动代码、集成Flash烧写模块、强大的Simulation设备模拟、性能分析、逻辑分析等,大大降低了初学者的门槛,而且所使用的uVision集成开发环境(IDE)和开发使用ARM非常相似,在开发使用上都有着可以借鉴的地方。

3 教学案例

为了配合课堂教学需要,我们设计了Cortex-MO LPCIl00系列ARM实验平台,主要模块有:ARM核心模块(包括LPCIll4,复位控制芯片,SWD调试电路);键盘、显示模块(一个4×4矩阵键盘,LCDl602液晶显示器);通讯接口模块(包括RS232、RS485、12C和SPI等),8路A/D转换输入,配接8个电位器,实现A/D采集;一路PWM输出,可以通过示波器观察波形;带光耦的4路开关量(输入和输出),4路继电器控制(带指示LED)。除了可以完成所有8051单片机传统的实验外,还增加了A/D转换、PWM控制、12C、SPI、WDT及功耗控制等实验。

根据Cortex-M0 LPCI100系列ARM的特点,结合教学需要,我们设计了下述分布式智能温室采集控制系统实验方案。在嵌入式应用中,有一种形式比较普遍,就是数据采集(通过A/D转换实现),配以若干开关量输入/输出,并以上、下位机通过RS-485组成的分布式控制系统。这就是我们这个实验方案的原型。

分布式智能温室采集控制系统由5个部分组成,如图1所示。

(1)信号采集输入部分:包括温度、湿度、光照、风速、风向、雨量等环境因子的检测。

(2)输出及控制部分:控制风机湿帘、遮阳网、窗的开关等系统。

(3)LPCI114部分:包括信号转换与处理部分,将采集的信号转换为计算机和操作人员可识别的量,由LPCI114进行处理。灌溉控制,包括定时灌溉,时间由控制室调整制定,并可根据实际情况,在温室内进行手动控制灌溉。

(4)RS-485通讯部分:用于和上位机通讯,完成数据通讯、控制命令下达和远程参数设置。

(5)LCD显示和键盘部分:用于部分数据监视、温度、湿度等上限和下限的参数设置。

我们用实验平台对上述各部分硬件进行对应设置,用5个电位器代替温度、湿度等模拟量,接到LPCI114A/D输入,用3个继电器代替风机湿帘等的控制。

LPCI100系列ARM实验平台编制的程序主要是:定时采集温度、湿度等数据值,通过RS485传到上位机(PC机);通过采集到的各个数据和设定的上限和下限值进行比较,控制对应继电器工作(可以通过配套LED观察结果);编制键盘、LCD程序;编制上位机(PC机)通讯、显示程序。

4 结语

虽然LPCIl00系列ARM使用上比8051系列单片机烦琐一些,这主要是因为LPCIl00功能多,需要配置,但一旦配置完成,后面的使用中就不用再改动了;还有就是各个功能部件(中断、定时器/计数器、串行接口等),控制寄存器的数量多于8051单片机,但也是一旦设置完成后,在后面的使用中,就和普通单片机差不多了。另外LPCIl00系列ARM的设计考虑了在应用中的基本功能要求,对最常用的功能,如FO输入输出功能采用了默认的形式,即不配置成其他功能,默认成普通I/O口,这样连开始的配置或设置都不需要了。

我们通过课堂教学和在自己开发的LPCIl00系列ARM实验平台进行相关实验,除了基础的I/O接口、定时器/计数器、中断、PWM、A/D及各种通讯接口实验外,还提出若干较为复杂的综合的嵌入式应用实验,如上述的“分布式智能温室采集控制系统”,并且还在不断丰富这些实验。例如作为扩展要求,希望通过上位机直接发送控制命令,实现远程监控;也可以考虑平时是由上位机监控,一旦上位机出现故障或通讯失败,下位机及时接管所有功能,这样就需要用一些技术(如“心跳检测”技术)检测上、下位机之间通讯是否畅通。

总之,通过这些教学和实验,要让学生学会在一些嵌入式实际应用中,如何利用LPCI100系列ARM完成检测、控制等任务。

上一篇:E―R图的精细设计 下一篇:浅析建筑工程给排水施工常见问题与应对策略