ARM实习报告.docx
- 文档编号:25533185
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:15
- 大小:338.51KB
ARM实习报告.docx
《ARM实习报告.docx》由会员分享,可在线阅读,更多相关《ARM实习报告.docx(15页珍藏版)》请在冰豆网上搜索。
ARM实习报告
ARM嵌入式系统综合设计
一、实习时间和地点安排
1、实习时间:
2012年12月03日——2012年12月14日,共两周的时间。
2、每天的实习时间安排:
上午:
8:
30——11:
30
下午:
13:
30——15:
30
3、实习地点:
校内。
二、实习目的
1、掌握电子元器件的焊接原理和方法。
2、掌握ARM7LPC2132控制程序的编写方法。
3、掌握调试软件和硬件的方法。
三、实习内容与要求
1、根据设计要求焊接好电路板并测试焊接无误。
2、绘制流程图并编写程序。
3、编译通过后,将程序下载到LPC2132进行调试。
4、调试成功后编写实习报告。
四、LPC2132芯片介绍
LPC2132最小系统图及其介绍
概述
LPC2132是基于一个支持实时仿真和嵌入式跟踪的32/16位ARM7TDMI-STMCPU的微控制器,并带有32kB、64kB、512kB的嵌入的高速Flash存储器。
128位宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟速率下运行。
对代码规模有严格控制的应用可使用16位Thumb®模式将代码规模降低超过30%,而性能的损失却很小。
较小的封装和极低的功耗使LPC2131/2132/2138可理想地用于小型系统中,如访问控制和POS机。
宽范围的串行通信接口和片内8/16/32kB的SRAM使LPC2131/2132/2138非常适用于通信网关、协议转换器、软modem、声音辨别和低端成像,为它们提供巨大的缓冲区空间和强大的处理功能。
多个32位定时器、1个或2个10位8路ADC、10位DAC、PWM通道和47个GPIO以及多达9个边沿或电平触发的外部中断使它们特别适用于工业控制和医疗系统。
特性
1、小型LQFP64封装的16/32位ARM7TDMI-S微控制器。
2、8/16/32kB片内静态RAM。
3、片内Boot装载软件实现在系统/在应用中编程(ISP/IAP)。
扇区擦除或整片擦除的时间为400ms,1ms可编程256字节。
4、EmbeddedICE®RT和嵌入式跟踪接口可实时调试(利用片内RealMonitor软件)和高速跟踪执行代码。
5、1个(LPC2132/2132)或2个(LPC2138)8路10位A/D转换器共包含16个模拟输入,每个通道的转换时间低至2.44us。
6、1个10位D/A转换器,可提供不同的模拟输出(LPC2132/2138)。
7、2个32位定时器/计数器(带4路捕获和4路比较通道)、PWM单元(6路输出)和看门狗。
8、实时时钟具有独立的电源和时钟源,在节电模式下极大地降低了功耗。
9、多个串行接口,包括2个16C550工业标准UART、2个高速I2C接口(400kbit/s)、SPITM和SSP(具有缓冲功能,数据长度可变)。
10、向量中断控制器。
可配置优先级和向量地址。
11、多达47个5V的通用I/O口(LQFP64封装)。
12、9个边沿或电平触发的外部中断引脚。
13、通过片内PLL可实现最大为60MHz的CPU操作频率,PLL的稳定时间为100us。
14、片内晶振频率范围:
1~30MHz。
15、2个低功耗模式:
空闲和掉电。
16、可通过个别使能/禁止外部功能和降低外部时钟来优化功耗。
17、通过外部中断将处理器从掉电模式中唤醒。
18、单个电源供电,含有上电复位(POR)和掉电检测(BOD)电路:
-CPU操作电压范围:
3.0~3.6V(3.3V+/-10%),I/O口可承受5V的最大电压。
结构概述
LPC2132包含一个支持仿真的ARM7TDMI-SCPU、与片内存储器控制器接口的ARM7局部总线、与中断控制器接口的AMBA高性能总线(AHB)和连接片内外设功能的VLSI外设总线(VPB,ARMAMBA总线的兼容超集)。
LPC2131/2132/2138将ARM7TDMI-S配置为小端(little-endian)字节顺序。
AHB外设分配了2M字节的地址范围,它位于4G字节ARM存储器空间的最顶端。
每个AHB外设都分配了16k字节的地址空间。
LPC2131/2132/2138的外设功能(中断控制器除外)都连接到VPB总线。
AHB到VPB的桥将VPB总线与AHB总线相连。
VPB外设也分配了2M字节的地址范围,从3.5GB地址点开始。
每个VPB外设在VPB地址空间内都分配了16k字节地址空间。
片内外设与器件管脚的连接由管脚连接模块控制。
该模块必须由软件进行控制以符合外设功能与管脚在特定应用中的需求。
ARM7TDMI-S处理器
ARM7TDMI-S是通用的32位微处理器,它具有高性能和低功耗的特性。
ARM结构是基于精简指令集计算机(RISC)原理而设计的。
指令集和相关的译码机制比复杂指令集计算机要简单得多。
这样使用一个小的、廉价的处理器核就可实现很高的指令吞吐量和实时的中断响应。
由于使用了流水线技术,处理和存储系统的所有部分都可连续工作。
通常在执行一条指令的同时对下,一条指令进行译码,并将第三条指令从存储器中取出。
ARM7TDMI-S处理器使用了一个被称为THUMB的独特结构化策略,它非常适用于那些对存储器有限制或者需要较高代码密度的大批量产品的应用。
在THUMB后面一个关键的概念是“超精简指令集”。
基本上,ARM7TDMI-S处理器具有两个指令集:
标准32位ARM指令集、16位THUMB指令集
THUMB指令集的16位指令长度使其可以达到标准ARM代码两倍的密度,却仍然保持ARM的大多数性能上的优势,这些优势是使用16位寄存器的16位处理器所不具备的。
因为THUMB代码和ARM代码一样,在相同的32位寄存器上进行操作。
THUMB代码仅为ARM代码规模的65%,但其性能却相当于连接到16位存储器系统的相同ARM处理器性能的160%。
片内FLASH程序存储器
LPC2131/2132/2138分别含有32kB、64kB和512kB的FLASH存储器系统。
该存储器可用作代码和数据的存储。
对FLASH存储器的编程可通过几种方法来实现:
通过内置的串行JTAG接口,通过在系统编程(ISP)和UART0,或通过在应用编程(IAP)。
使用在应用编程的应用程序也可以在应用程序运行时对FLAH进行擦除和/或编程,这样就为数据存储和现场固件的升级都带来了极大的灵活性。
如果LPC2131/2132/2138使用了片内引导装载程序(bootloader),32/64/512kB的Flash存储器就可用来存放用户代码。
LPC2131/2132/2138的Flash存储器至少可擦除/编程10,000次,保存数据的时间长达10年。
片内静态RAM
片内静态RAM(SRAM)可用作代码和/或数据的存储,支持8位、16位和32位的访问。
LPC2131/2132/2138含有8/16/32kB的静态RAM。
LPC2131/2132/2138SRAM是一个字节寻址的存储器。
对存储器进行字和半字访问时将忽略地址对准,访问被寻址的自然对准值(因此,对存储器进行字访问时将忽略地址位0和1,半字访问时将忽略地址位0)。
因此,有效的读写操作要求半字数据访问的地址线0为0(地址以0、2、4、6、8、A、C和E结尾),字数据访问的地址线0和1都为0(地址以0、4、8和C结尾)。
该原则同样用于片外和片内存储器。
SRAM控制器包含一个回写缓冲区,它用于防止CPU在连续的写操作时停止运行。
回写缓冲区总是保存着软件发送到SRAM的最后一个字节。
该数据只有在软件请求下一次写操作时才写入SRAM(数据只有在软件执行另外一次写操作时被写入SRAM)。
如果发生芯片复位,实际的SRAM内容将不会反映最近一次的写请求(即:
在一次“热”芯片复位后,SRAM不会反映最后一次写入的内容)。
任何在复位后检查SRAM内容的程序都必须注意这一点。
通过对一个单元执行两次相同的写操作可保证复位后数据的写入。
或者,也可通过在进入空闲或掉电模式前执行虚写(dummywrite)操作来保证最后的数据在复位后被真正写入到SRAM。
LPC2132管脚分布
五、硬件原理图
其中K1-K6为六个按键,分别对应清零键、减号键、第二个数字键、等号键、加号键和第一个数字键,接到I/O口的P0.08-P0.13脚。
P0.00-P0.07号脚接段码,分别是G、F、E、D、C、B、A、DP。
三个数码管的位选通端接到P0.28-P0.30三个管脚上,用于选通数码管。
ULN2803应用电路介绍
ULN2000、ULN2800是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动的系统。
ULN2003A电路是美国TexasInstruments公司和Sprague公司开发的高压大电流达林顿晶体管阵列电路,文中介绍了它的电路构成、特征参数及典型应用。
功率电子电路大多要求具有大电流输出能力,以便于驱动各种类型的负载。
功率驱动电路是功率电子设备输出电路的一个重要组成部分。
在大型仪器仪表系统中,经常要用到伺服电机、步进电机、各种电磁阀、泵等驱动电压高且功率较大的器件。
ULN2000、ULN2800高压大电流达林顿晶体管阵列系列产品就属于这类可控大功率器件,由于这类器件功能强、应用范围语广。
因此,许多公司都生产高压大电流达林顿晶体管阵列产品,从而形成了各种系列产品,ULN2000、ULN2800系列就是美国TexasInstruments公司、美国Sprague公司开发的高压大电流达林顿晶体管阵列产品。
它们的系列型号分类如表1所列,生产2000、2800高压大电流达林顿晶体管阵列系列产品的公司与型号对照表如表2所列。
在上述系列产品中,ULN2000系列能够同时驱动7组高压大电流负载,ULN2800系列则能够同时驱动8组高压大电流负载。
美国TexasInstruments公司、美国Sprague公司生产的ULN2003A由7组达林顿晶体管阵列和相应的电阻网络以及钳位二极管网络构成,具有同时驱动7组负载的能力,为单片双极型大功率高速集成电路。
以下介绍该电路的构成、性能特征、电参数以及典型应用。
2000、2800高压大电流达林顿晶体管阵列系列中的其它产品的性能特性与应用可参考ULN2003A。
本设计的驱动电路如图所示:
在本实习
中的应用
六、软件设计
(一)、数码管显示电路设计
硬件连接原理图
三极管放大作用是通过小电流控制大电流晶体三极管是一种电流控制元件。
发射区与基区之间形成的PN结称为发射结,而集电区与基区形成的PN结称为集电结。
晶体三极管按材料分常见的有两种:
锗管和硅管。
而每一种又有NPN和PNP两种结构形式,使用最多的是硅NPN和PNP两种,两者除了电源极性不同外,其工作原理都是相同的,三极管工作在放大区时,三极管发射结处于正偏而集电结处于反偏,集电极电流Ic受基极电流Ib的控制,Ic的变化量与Ib变化量之比称作三极管的交流电流放大倍数β(β=ΔIc/ΔIb,Δ表示变化量。
)在实际使用中常常利用三极管的电流放大作用,通过电阻转变为电压放大作用。
三极管是电流放大器件,有三个极,分别叫做集电极C,基极B,发射极E。
分成NPN和PNP两种。
显示程序和流程图如下:
voiddisplay()
{IO0PIN=led[x%10];//显示个位
IO0SET=LED3;
IO0SET=LED2;
IO0CLR=LED1;
delayms
(1);
IO0PIN=led[x/10%10];//显示十位
IO0SET=LED3;
IO0CLR=LED2;
IO0SET=LED1;
delayms
(1);
if(n==1)//显示负号N
{IO0PIN=led[10];
IO0CLR=LED3;
IO0SET=LED2;Y
IO0SET=LED1;
delayms
(1);
}
}
(二)、键盘识别软件设计
设计思路:
键盘有独立键盘和矩阵式键盘两种:
独立键盘每一个I/O口上只接一个按键,按键的另一端接电源或接地(一般接地),这种接法程序比较简单且系统更加稳定;而矩阵式键盘式接法程序比较复杂,但是占用的I/O少。
根据本设计的需要这里选用了独立式键盘接法。
独立式键盘的实现方法是利用单片机I/O口读取口的电平高低来判断是否有键按下。
将常开按键的一端接地,另一端接一个I/O口,程序开始时将此I/O口置于高电平,平时无键按下时I/O口保护高电平。
当有键按下时,此I/O口与地短路迫使I/O口为低电平。
按键释放后,单片机内部的上拉电阻使I/O口仍然保持高电平。
我们所要做的就是在程序中查寻此I/O口的电平状态就可以了解我们是否有按键动作了。
根据任务的需要设置6个按键以满足使用要求,包括两个数字键,两个符号键,一个等号键和一个清零键。
因此键盘控制软件也是必须的,参考程序及流程图如下
硬件连接图
voidkeyscan()
{
uint8key_up=1;if(key_up&((K1&IO0PIN)==0||(K2&IO0PIN)==0||(K3&IO0PIN)==0||(K4&IO0PIN)==0||(K5&IO0PIN)==0||(K6&IO0PIN)==0))
{
key_up=0;
if((K6&IO0PIN)==0)
{
delayms(100);
if((K6&IO0PIN)==0)
{while((K6&IO0PIN)==0);a++;j=a;x=j;display();}
}
elseif((K3&IO0PIN)==0)
{
delayms(100);
if((K3&IO0PIN)==0)
{while((K3&IO0PIN)==0);b++;k=b;x=k;display();}
}
elseif((K5&IO0PIN)==0)
{
delayms(100);
if((K5&IO0PIN)==0)
{while((K5&IO0PIN)==0);m=1;x=0;display();}
}
elseif((K2&IO0PIN)==0)
{
delayms(100);
if((K2&IO0PIN)==0)
{while((K2&IO0PIN)==0);m=0;x=0;display();}
}
elseif((K4&IO0PIN)==0)
{delayms(100);
if((K4&IO0PIN)==0)
{
while((K4&IO0PIN)==0);
if(m==1){c=j+k;x=c;display();}
else
{c=j-k;if(c<0){c=k-j;n=1;}x=c;display();}
}
}
elseif((K1&IO0PIN)==0)
{delayms(100);
if((K1&IO0PIN)==0)
{
while((K1&IO0PIN)==0);m=0;a=0;b=0;x=0;n=0;display();}
}
}
else
{
key_up=1;
display();
}
}
(三)、计算器控制软件设计流程图
七、心得与总结
本次实验让我感受到了ARM的强大,ARM的结构各寄存器功能,对以后的工作有很大的好处,我不但了解了ARM还熟悉了它的应用。
实习不仅提高了我的动手能力还使我学会了如何去自学知识查找资料,大大的提高了我以后的能力对我的帮助很大
八、运行效果图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARM 实习 报告