吴 强,杨全胜,王晓蔚
(东南大学 计算机科学与工程学院,江苏 南京 211189)
摘 要: Intel公司的8051系列单片机进入国内市场较早,至今许多学校单片机教学都是采用8051系列。文章通过对比Cortex-M0 ARM和8051系列单片机的性能及使用方法,提出在嵌入式应用中,用先进的Cortex-M0 LPC1100系列ARM代替8051单片机的方法,介绍在具体教学改革中进行的有益探索。
教育期刊网 http://www.jyqkw.com
关键词 :单片机实验;Cortex-M0 ARM;8051单片机;LPC1100系列ARM
1 背 景
Intel公司于1980年推出的8051系列单片机,奠定了嵌入式应用的单片微型计算机的经典体系结构,由于进入国内市场较早,学校单片机教学都是采用8051系列;加之Intel公司实施了8051的技术开放政策,ATMEL公司、PHILIPS公司著名的电子公司,以其在电子应用系统的优势,着力发展8051单片机的控制功能及外围单元,形成了可满足大量嵌入式应用的单片机系列产品。直到现在,仍然有不少学校在单片机教学中采用8051系列。ARM公司自1990年成立以来,不断推出各种ARM内核,前几年推出的都定位在高端市场;对于使用者,芯片、开发工具及开发平台较贵,开发难度也较大;ARM公司在2005年收购8051的最大工具开发商Keil,就为其进入8/16位市场做准备。2009年后,ARM公司推出了Cortex-M0 ARM,它低功耗、高性能、代码密度高,价格比其他8位单片机低,而且开发工具、平台价格低,开发难度大大降低。可以说,用Cortex-M0 ARM代替8051单片机的时机已经成熟,学校单片机教学内容进行改变是实现代替的第一步。我们在使用Cortex-M0 ARM LPC1100教学过程中,把两者性能及使用方法进行了对比,在具体应用上提出自己的看法,并做了有益的探索[1-2]。
2 LPC1100系列ARM功能
ARM Cortex-MO处理器工作频率50MHz,嵌套向量中断控制器,可快速确定中断,唤醒中断控制器,支持优先中断自动唤醒。具体包括3种节能模式:睡眠模式、深度睡眠模式和深度掉电模式。内存:最高128KB闪存,最高16KB SRAM。串行外设:UART支持分频波特率产生、内部FIFO和RS-485;SPI控制器,支持FIFO和多协议功能;I2C总线接口,支持全速I2C总线规范和增强型快速模式,数据速率高达1Mbit/s,支持多地址识别和监控模式。模拟外设:8个通道10位模数转换器,转换速率最高可达每秒250K个采样。最高42个通用I/O(GPIO)管脚,具有可配置的上拉,下拉电阻和可配置的新型开漏工作模式。4个通用计数器、计时器,共4个捕获输入端和13个匹配输出端。可编程看门狗定时器(WDT),带锁死功能;一个系统计时器;各个外设均自带时钟分频器,有利于节能[3-4]。
从上述性能可以看出,8051单片机具有的所有性能,LPC1100系列ARM都具有,而且增加了许多8051单片机没有的功能。
2.1 LPC1100系列ARM与8051的性能对比[5-6]
(1)指令长度对比。指令的长度和微处理器的位数无关,经过比较发现LPC1100的指令长度和8051单片机很相似,指令的密度非常大。
(2)处理器运算能力对比。8051单片机虽然支持8位和16位数据,但是对于16位数据需要多次处理,增加了堆栈和中断延迟;LPC1100处理器对长整形的数据处理只需要极少的周期,并具有极佳的浮点处理能力,对于32位数据的传输也只需要很少的时钟周期。
(3)处理性能对比。比较微处理器性能的一种常用的方法是使用Dhrystone基准,它在微处理器中只占很小的内存。比较的结果显示,Cortex-MO性能远大于8051单片机。
(4)运行模式及指令数量对比。8051单片机有一种运行模式,Cortex-M0也只有一种运行模式,非常简单;8051单片机指令集为50条左右,Cortex-M0的指令集也仅有56条。
(5)代码量对比。根据业界的CoreMark基准,在多数常见微控制器任务中,基于Cortex-M0微控制器的代码需求量降低了40%~50%,代码量已经小于同等功能下8051的代码量。这是因为8051所使用的指令并不全是8位的(8~24位),而Cortex-MO的指令位宽大部分是16位的;8051所要处理的数据也不总是8位的,而所有8位、16位和32位数据传输在Cortex-M0中都是通过单一指令完成的;8051的寻址空间限制在64 KB,虽然可以用分段方法扩展,但这会带来代码的增长,而Cortex-M0寻址空间可达4GB,完全能满足编制代码要求。
(6)内存访问效率对比。Cortex-M0使用32位总线,减少了内存访问所需次数,从而降低了功耗。对于在内存中复制同样数量的数据,8位微处理器需要4倍的内存访问次数和更多的取指,所以8位单片机需要消耗更多的功耗,才能达到同样的目的。
(7)价格对比。随着近年来制造工艺的不断进步,Cortex-M0 ARM的成本也不断降低,已经与8位和16位微处理器处于同等水平。就LPC1100系列ARM而言,价格比许多8位单片机还低。
2.2 使用方式比较[7-8]
用LPC1100系列ARM代替8051单片机,在使用方式上要相对简单。
(1)I/O端口。8051单片机I/O端口大多数没有复用功能,使用相对简单。LPC1100系列ARM绝大部分I/O端口都有复用功能,可以设置为A/D输入、总线等,默认状态为I/O端口。它共有4个通用I/O端口(如LPC1114 LQFP48共有42位I/O端口),通过GPIO配置寄存器设置不同功能;对于信号传输方向,通过寄存器设置,但一旦设置完成,正常使用就不烦琐了。
(2)中断。就中断控制过程而言,8051单片机和LPC1100系列ARM类似,都是当外设符合中断条件时,中断源会向处理器提出中断请求,处理器开始响应一个中断,中断控制器会自动定位一张中断向量表,根据中断号从表中找到中断服务程序(ISR)的入口地址并跳转过去执行。当中断服务程序执行完成后,从堆栈中取出中断前断点的程序指针及数据,在断点处继续执行。LPC1100系列ARM支持的中断源多,且具有4个中断优先级,8051单片机只有2个中断优先级。
(3)定时器/计数器。8051单片机具有2个16位定时器/计数器,LPC1100系列ARM具有2个16位和2个32位定时器/计数器,每个定时器/计数器都有一个相应的输入信号引脚和2~4个相应的输出信号引脚,具有定时、计数、输入捕捉功能,并可以设置为脉冲宽度调制(PWM)模式,用于电机控制。此外,LPC1100系列ARM还有两个非常有用而8051单片机不具备的功能,就是系统节拍定时器,其拥有专门的内部时钟与异常中断向量,可为实时操作系统提供固定的时间间隔中断;还有就是看门狗定时器(WDT)模块用于对微处理器的运行状态进行实时监测。
(4)通信部件。8051单片机的串行接口只有一个UART,而LPC1100系列ARM具有丰富的串行接口,一个UART还支持RS-485的9位模式和输出使能,给一些分布式控制系统应用带来了方便。除此之外,还具备SSP接口、I2C接口,方便应用时选择。
(5)开发软件[9]。KEIL软件是最普及的一种8051单片机编程环境,大多数8051单片机学习、开发人员都是采用KEIL进行编程。在ARM公司收购KEIL公司后,ARM公司结合自己的优势和KEIL的特点推出了新一代的ARM编译平台——RealView MDK。RealView MDK集成了许多先进的技术,包括uVision4集成开发环境与RealView编译器,支持所有的ARM芯片,并且自动配置启动代码、集成flash烧写模块、强大的Simulation设备模拟、性能分析、逻辑分析等,大大降低了初学者的门槛,而且所使用的uVision集成开发环境(IDE)和开发使用ARM非常相似,在开发使用上都有着可以借鉴的地方。
3 教学案例
为了配合课堂教学需要,我们设计了Cortex-M0 LPC1100系列ARM实验平台,主要模块有: ARM核心模块(包括LPC1114,复位控制芯片,SWD调试电路);键盘、显示模块(一个4×4矩阵键盘,LCD1602液晶显示器);通讯接口模块(包括RS232、RS485、I2C和SPI等),8路A/D转换输入,配接8个电位器,实现A/D采集;一路PWM输出,可以通过示波器观察波形;带光耦的4路开关量(输入和输出),4路继电器控制(带指示LED)。除了可以完成所有8051单片机传统的实验外,还增加了A/D转换、PWM控制、I2C、SPI、WDT及功耗控制等实验。
根据Cortex-M0 LPC1100系列ARM的特点,结合教学需要,我们设计了下述分布式智能温室采集控制系统实验方案。在嵌入式应用中,有一种形式比较普遍,就是数据采集(通过A/D转换实现),配以若干开关量输入/输出,并以上、下位机通过RS-485组成的分布式控制系统。这就是我们这个实验方案的原型[10]。
分布式智能温室采集控制系统由5个部分组成,如图1所示。
(1)信号采集输入部分:包括温度、湿度、光照、风速、风向、雨量等环境因子的检测。
(2)输出及控制部分:控制风机湿帘、遮阳网、窗的开关等系统。
(3)LPC1114部分:包括信号转换与处理部分,将采集的信号转换为计算机和操作人员可识别的量,由LPC1114进行处理。灌溉控制,包括定时灌溉,时间由控制室调整制定,并可根据实际情况,在温室内进行手动控制灌溉。
(4)RS-485通讯部分:用于和上位机通讯,完成数据通讯、控制命令下达和远程参数设置。
(5)LCD显示和键盘部分:用于部分数据监视、温度、湿度等上限和下限的参数设置。
我们用实验平台对上述各部分硬件进行对应设置,用5个电位器代替温度、湿度等模拟量,接到LPC1114A/D输入,用3个继电器代替风机湿帘等的控制。
LPC1100系列ARM实验平台编制的程序主要是:定时采集温度、湿度等数据值,通过RS485传到上位机(PC机);通过采集到的各个数据和设定的上限和下限值进行比较,控制对应继电器工作(可以通过配套LED观察结果);编制键盘、LCD程序;编制上位机(PC机)通讯、显示程序。
4 结 语
虽然LPC1100系列ARM使用上比8051系列单片机烦琐一些,这主要是因为LPC1100功能多,需要配置,但一旦配置完成,后面的使用中就不用再改动了;还有就是各个功能部件(中断、定时器/计数器、串行接口等),控制寄存器的数量多于8051单片机,但也是一旦设置完成后,在后面的使用中,就和普通单片机差不多了。另外LPC1100系列ARM的设计考虑了在应用中的基本功能要求,对最常用的功能,如I/O输入输出功能采用了默认的形式,即不配置成其他功能,默认成普通I/O口,这样连开始的配置或设置都不需要了。
我们通过课堂教学和在自己开发的LPC1100系列ARM实验平台进行相关实验,除了基础的I/O接口、定时器/计数器、中断、PWM、A/D及各种通讯接口实验外,还提出若干较为复杂的综合的嵌入式应用实验,如上述的“分布式智能温室采集控制系统”,并且还在不断丰富这些实验。例如作为扩展要求,希望通过上位机直接发送控制命令,实现远程监控;也可以考虑平时是由上位机监控,一旦上位机出现故障或通讯失败,下位机及时接管所有功能,这样就需要用一些技术(如“心跳检测”技术)检测上、下位机之间通讯是否畅通。
总之,通过这些教学和实验,要让学生学会在一些嵌入式实际应用中,如何利用LPC1100系列ARM完成检测、控制等任务。
基金项目:东南大学教改项目(2013-063)。
第一作者简介:吴强,男,高级工程师,从事实验教学及实验室管理,wq@seu.edu.cn。
教育期刊网 http://www.jyqkw.com
参考文献:
[1] 徐俊毅.恩智浦多重半导体市场2009年第一弹: 面向16位应用的具有32位MCU性能的新型MCU LPC1100[J]. 电子与电脑, 2009(5): 42.
[2] NXP公司. 恩智浦发布LPC1100 Cortex-MO系列产品的开发工具链简化端到端的开发设计[J]. 电子技术应用, 2009(3): 10.
[3] 张孟东, 方安平, 李宁. LPC1100微控制器的低功耗特性[J]. 单片机与嵌入式系统应用, 2010(7): 78-81.
[4] 范云龙, 方安平, 李宁. Cortex-M0处理器初探[J]. 单片机与嵌入式系统应用, 2010(6): 78-81.
[5] 李宁. 基于MDK的LPC1100处理器开发应用[M]. 北京: 北京航空航天大学出版社, 2010: 2-7.
[6] 桂电-丰宝联合实验室. LPC1100系列处理器原理及应用[M]. 北京: 电子工业出版社, 2011: 12-52.
[7] 赵俊. ARM Cortex-M0从这里开始[M]. 北京: 北京航空航天大学, 2012: 4-12.
[8] 周立功. 深入浅出Cortex M0-LPC1100系列[M]. 北京: 北京航空航天大学出版社, 2010: 21-25.
[9] 王耀琦. 单片机原理、接口与C51应用程序设计[M]. 西安: 西安电子科技大学出版社, 2013: 12-34.
[10] 季宝杰, 邹彩虹, 王永田. 基于单片机的温室自动控制系统设计[J]. 计算机测量与控制, 2007(1): 73-75.
(编辑:郭田珍)