ARM嵌入式系统综合设计.docx
- 文档编号:17209392
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:13
- 大小:266.26KB
ARM嵌入式系统综合设计.docx
《ARM嵌入式系统综合设计.docx》由会员分享,可在线阅读,更多相关《ARM嵌入式系统综合设计.docx(13页珍藏版)》请在冰点文库上搜索。
ARM嵌入式系统综合设计
ARM嵌入式系统综合设计
1、ARM简介
ARM(AdvancedRISCMachines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。
如果说,“嵌入式”是2008年电子工程师谈论得最多的词之一,2009年谈论得最多的一个词就是“ARM”。
究竟什么是ARM呢,他是英国一家电子公司的名字,全名的意思是AdvancedRISCMachine。
该公司成立于1990年11月,是苹果电脑,Acorn电脑集团和VLSITechnology的合资企业。
Acorn曾推出世界上首个商用单芯片RISC处理器,而苹果电脑当时希望将RISC技术应用于自身系统,ARM微处理器新标准因此应运而生。
80年代末90年代初半导体行业产业链刚刚出现分工,台积电,联电等半导体代工厂正悄悄崛起,美国硅谷中的一些fabless公司也如雨后春笋一样涌现出来,所谓的fabless公司自己设计芯片,但是生产过程则包给台积电等代工厂生产。
而ARM更是为天下先,19年前首创了chipless的生产模式,即该公司既不生产芯片,也不设计芯片,而是设计出高效的IP内核,授权给半导体公司使用,半导体公司在ARM技术的基础上添加自己的设计并推出芯片产品,最后由OEM客户采用这些芯片来构建基于ARM技术的系统产品。
这种方式有点象通信行业的高通和半导体行业的RAMBUS,他们站在了半导体产业链上游的上游。
19年前成立的ARM可能面临着很大风险,因为没有人知道这条路能不能行得通,但是现在的事实已经证明,ARM走了一条没人走过,却是正确的道路。
,作为附加产品,他还让中国的行业人士从这个窗口认识到了英国的电子公司,ARM的成功带动了英国的chipless公司的发展。
因为ARM的产品是IPCore,没有任何物理意义上的硬件或者软件实体,所以只能在中国注册成为“咨询”公司,尽管咨询只是其业务中很小的一块。
ARM的核心业务是销售芯片核心技术IP,目前全球有103家巨型IT公司在采用ARM技术,20家最大的半导体厂商中有19家是ARM的用户,包括德州仪器,意法半导体,Philips,Intel等。
20大巨头中唯一没有购买ARM授权的是Intel的老对头AMD,因为Intel便携式处理器采用的是StrongARM,而AMD则收购了Alchemy公司与之抗衡,采用的是MIPS结构。
1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。
目前,采用ARM技术知识产权(IP)核的微处理器,即我们通常所说的ARM微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面。
ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买其设计的ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。
目前,全世界有几十家大的半导体公司都使用ARM公司的授权,因此既使得ARM技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场被消费者所接受,更具有竞争力。
二、ULN2803芯片介绍
ULN2803路达林顿管,组成最大工作电压,当工作电压达到最大50V时工作电流可达到。
可以单路输入,单路500MAULN2803输出,当负载较大时采用单路方式不足以满足要求时也可以采取多路并行输出驱动,在本实验中用于驱动共阳极数码管显示
三、设计目的
1、熟悉LPC2000系列ARM硬件结构;
2、学会LPC2000系列ARMGPIO,PLL,定时器,外部中断,ADC,PWM,UART的简单应用。
3、利用Keil开发工具对程序进行设计、调试并修改程序;
4、通过收集信息并运用信息解决问题的能力;
5、具备自主学习的能力;
6、具备制定计划和实施计划的能力。
四、芯片特性:
·小型LQFP64封装的16/32位ARM7TDMI-S微控制器。
·8/16/32kB片内静态RAM。
·片内Boot装载软件实现在系统/在应用中编程(ISP/IAP)。
扇区擦除或整片擦除的时间为400ms,1ms可编程256字节。
·EmbeddedICE®RT和嵌入式跟踪接口可实时调试(利用片内RealMonitor软件)和高速跟踪执行代码。
·1个(LPC2132/2132)或2个(LPC2138)8路10位A/D转换器共包含16个模拟输入,每个通道的转换时间低至2.44us。
·1个10位D/A转换器,可提供不同的模拟输出(LPC2132/2138)。
·2个32位定时器/计数器(带4路捕获和4路比较通道)、PWM单元(6路输出)和看门狗。
·实时时钟具有独立的电源和时钟源,在节电模式下极大地降低了功耗。
·多个串行接口,包括2个16C550工业标准UART、2个高速I2C接口(400kbit/s)、SPITM和SSP(具有缓冲功能,数据长度可变)。
·向量中断控制器。
可配置优先级和向量地址。
·多达47个5V的通用I/O口(LQFP64封装)。
·9个边沿或电平触发的外部中断引脚。
·通过片内PLL可实现最大为60MHz的CPU操作频率,PLL的稳定时间为100us。
·片内晶振频率范围:
1~30MHz。
·2个低功耗模式:
空闲和掉电。
·可通过个别使能/禁止外部功能和降低外部时钟来优化功耗。
·通过外部中断将处理器从掉电模式中唤醒。
·单个电源供电,含有上电复位(POR)和掉电检测(BOD)电路:
CPU操作电压范围:
3.0~3.6V(3.3V+/-10%),I/O口可承受5V的最大电压。
采用LED数码管动态扫描显示方法,是指一位一位地轮流点亮每位显示器(称为扫描),即每个数码管的位选被轮流选中,多个数码管公用一组段选,段选数据仅对位选选中的数码管有效。
对于每一位显示器来说,每隔一段时间点亮一次。
显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。
通过调整电流和时间参数,当动态扫描频率加大到一定范围时可以既保证亮度,又保证显示。
动态显示对IO的利用率相对教高。
5、设计内容
1、测试ARM7(LPC2132)最小系统PCB。
要求仔细认真检测,并调试使其能正常工作(可以采用最简易测试程序)。
2、焊接数码管动态扫描显示电路,三个按键的键盘电路,模拟电压取样电路等。
驱动芯片选择ULN2803,其接口自定义,要与最小系统板正确连接,调试后能正常工作。
3、控制软件设计在嵌入式控制系统的设计中,系统控制软件的设计是一项非常重要且艰巨的工作,系统能否正常可靠的工作,成败在此一举。
因此要求我们认真仔细的设计、调试控制软件。
要求软件语句精炼,整体健壮,有一定的抗干扰能力。
六、实验程序:
//=====ARM实现秒表显示======
//============测控092吕鑫=======
typedefunsignedintuint32;
typedefunsignedcharuint8;/*definedforunsigned8-bitsintegervariable无符号8位整型变量*/
typedefsignedcharint8;/*definedforsigned8-bitsintegervariable有符号8位整型变量*/
typedefunsignedshortuint16;
#include"stdio.h"
#include"lpc2294.h"
#definekey1(1<<15)//按键对应P0.15
#definekey2(1<<14)
#definekey3(1<<13)
#defineLED11<<12//数码管1对应到P0.12
#defineLED21<<11
#defineLED31<<10
#defineFpclk11059200*5/4//5倍频在四分频
void__irqTimer0_ISR(void);
unsignedintled[]=
{0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6};
int8min=0,msec=0,secl=0,start,sech=0;
//--------------------------------------------------------------------------
/****延时函数**************/
voiddelayms(uint32delay)
{
uint32i;
for(;delay>0;delay--)
for(i=0;i<1000;i++);
}
//--------------------------------------------------------------------------
//************CPU初始化**************/
voidinti_cpu()
{
PINSEL0=0x00000000;
PINSEL1=0x00000000;
IO0DIR=0xffff1fff;//P0.13-P0.15,为输入状态
}
//*********定时器************/
voidTime0_Init(void)
{
T0TC=0;/*定时器设置为0*/
T0MCR=0x03;/*产生中断,重置TC*/
T0MR0=Fpclk/10;/*匹配寄存器*/
T0TCR=0x01;/*使能定时计数器0*/
VICVectCntl0=0x20|4;/*定时器0为4号中断*/
VICVectAddr0=(uint32)Timer0_ISR;/*中断服务程序地址为Timer0_ISR*/
VICIntEnable=0x00000010;/*开定时器0中断*/
}
//--------------------------------------------------------------------------
/****键盘函数************/
voidkeyscan(void)
{
staticint8key_up=1;//按键按松开标志
if(key_up&&((key1&IO0PIN)==0||(key2&IO0PIN)==0||(key3&IO0PIN)==0))
{
key_up=0;
if((key1&IO0PIN)==0)
{
start=1;
}
elseif((key2&IO0PIN)==0)
{
start=0;
}
elseif((key3&IO0PIN)==0)
{
start=0;
min=0;msec=0;secl=0;sech=0;
}
}
else
{
key_up=1;
}
}
//********秒表显示********/
voidDisplay()
{
IO0PIN=led[secl];
IO0SET=LED1;
IO0SET=LED2;
IO0CLR=LED3;
delayms
(1);
IO0PIN=led[sech];
IO0SET=LED1;
IO0CLR=LED2;
IO0SET=LED3;
delayms
(1);
IO0PIN=led[min];
IO0CLR=LED1;
IO0SET=LED2;
IO0SET=LED3;
delayms
(1);
}
void__irqTimer0_ISR(void)
{
if(start==1)
{
secl++;
if(secl==10)secl=0,sech++;
if(sech==10)sech=0,min++;
if(min==10)min=0;
}
T0IR=1;//清除中断标志
VICVectAddr=0;
}
//*****主函数*******//
intmain(void)
{
inti_cpu();
Time0_Init();
while
(1)
{
keyscan();
Display();
IO0PIN=0x60;
}
}
七、电路板实物图:
实习心得:
两个星期的实训下来,付出了很大的努力,明白了很多东西,在软件制作过程中,因为LPC2132与51单片机的I/O口使用上有着不小的区别,所以在对LPC2132的管脚定义上遇到了很多问题,重新查阅教材后才完全将其理解。
在此,感谢在制作过程中帮过我们的老师和同学,感谢他们的帮助。
经过了这次实训,更加激起了自己对嵌入式系统的兴趣,对嵌入式系统的使用有了一定的了解,让我看到了嵌入式系统强大的功能和在使用上的便利。
而对于应该如何使用LPC2132中的定时功能有了更为全面的认识。
在后期的电路调试和软件调试过程中,我被同学给予的无私帮助深深打动,很多陌生的问题摆在面前,如果没有大家的无私帮助,没有大家的通力合作、资源共享的话,我想一定会有更多的问题阻挡我们前进的步伐。
凭借个人能力也无法在短短两个星期内解决在本次实训中出现的问题。
正是有了大家的帮助和关怀,我才能顺利圆满的完成此次实训任务。
本次实训的难点我觉得是在理解老师提供的核心板的基础上,如何来给其外接附加电路,并通过编程来完成设计任务。
在此之前都没有真正使用过嵌入式系统。
但是在老师和同学们的帮助下,我通过网络查找资料、复习教材上的相关知识点、收集设计方案、绘制原理图、绘制PCB、电路板制作、编写程序等等都在有条不紊的进行
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARM 嵌入式 系统 综合 设计