适用场景:电子工程实训计划制定、ARM开发环境配置准备
内容看点:嵌入式开发实践指南、ARM芯片应用解析
行文逻辑:安排实习时间→明确实习目的→执行实习内容→介绍芯片特性→分析硬件原理
ARM嵌入式系统综合设计
一、实习时间和地点安排
1、实习时间:xxxx年12月03 日 —— xxxx年12月14日,共两周的时间。
2、每天的实习时间安排:
上午:8:30——11:30
下午:13:30——15:30
3、实习地点:校内。
二、实习目的
1、掌握电子元器件的焊接原理和方法。
2、掌握ARM7 LPC2132控制程序的编写方法。
3、掌握调试软件和硬件的方法。
三、实习内容与要求
1、根据设计要求焊接好电路板并测试焊接无误。
2、绘制流程图并编写程序。
3、编译通过后,将程序下载到LPC2132进行调试。
4、调试成功后编写实习报告。
四、LPC2132芯片介绍
LPC2132最小系统图及其介绍
概述
LPC2132是基于一个支持实时仿真和嵌入式跟踪的32/16 位 ARM7TDMI-STM CPU 的微控制器,并带有 32kB、64kB、512 kB 的嵌入的高速
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 接口(400 kbit/s )、SPITM 和 SSP(具有缓冲功能,数据长度可变)。
10、向量中断控制器。可配置优先级和向量地址。
11、多达 47 个 5V 的通用I/O 口(LQFP64 封装)。
12、 9 个边沿或电平触发的外部中断引脚。
13、 通过片内 PLL 可实现最大为 60MHz 的 CPU 操作频率,PLL 的稳定时间为 100us。
14、片内晶振频率范围:1~30 MHz。
15、2 个低功耗模式:空闲和掉电。
16、可通过个别使能/禁止外部功能和降低外部时钟来优化功耗。
17、通过外部中断将处理器从掉电模式中唤醒。
18、单个电源供电,含有上电复位(POR )和掉电检测(BOD )电路:-CPU
操作电压范围:3.0~3.6 V (3.3 V+/ - 10%) ,I/O 口可承受5V 的最
大电压。
结构概述
LPC2132包含一个支持仿真的 ARM7TDMI-S CPU 、与片内存储器控制器接口
的 ARM7 局部总线、与中断控制器接口的 AMBA 高性能总线 (AHB )和连接片内外设功能的 VLSI 外设总线 (VPB ,ARM AMBA 总线的兼容超集)。
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/2138 SRAM 是一个字节寻址的存储器。对存储器进行字和半字访问时将忽略地址对准,访问被寻址的自然对准值(因此,对存储器进行字访问时将忽略地址位 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 内容的程序都必须注意这一点。通过对一个单元执行两次相同的写操作可保证复位后数据的写入。或者,也可通过在进入空闲或掉电模式前执行虚写(dummy write )操作来保证最后的数据在复位后被真正写入到 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电路是美国Texas Instruments公司和Sprague公司开发的高压大电流达林顿晶体管阵列电路,文中介绍了它的电路构成、特征参数及典型应用。
功率电子电路大多要求具有大电流输出能力,以便于驱动各种类型的负载。功率驱动电路是功率电子设备输出电路的一个重要组成部分。在大型仪器仪表系统中,经常要用到伺服电机、步进电机、各种电磁阀、泵等驱动电压高且功率较大的器件。ULN2000、ULN2800高压大电流达林顿晶体管阵列系列产品就属于这类可控大功率器件,由于这类器件功能强、应用范围语广。因此,许多公司都生产高压大电流达林顿晶体管阵列产品,从而形成了各种系列产品,ULN2000、ULN2800系列就是美国Texas Instruments公司、美国Sprague公司开发的高压大电流达林顿晶体管阵列产品。它们的系列型号分类如表1所列,生产2000、2800高压大电流达林顿晶体管阵列系列产品的公司与型号对照表如表2所列。在上述系列产品中,ULN2000系列能够同时驱动7组高压大电流负载,ULN2800系列则能够同时驱动8组高压大电流负载。美国Texas Instruments公司、美国Sprague公司生产的ULN2003A由7组达林顿晶体管阵列和相应的电阻网络以及钳位二极管网络构成,具有同时驱动7组负载的能力,为单片双极型大功率高速集成电路。以下介绍该电路的构成、性能特征、电参数以及典型应用。2000、2800高压大电流达林顿晶体管阵列系列中的其它产品的性能特性与应用可参考ULN2003A。本设计的驱动电路如图所示:
在本实习
中的应用
适用场景:企业嵌入式项目启动前调研、高校计算机专业实习总结
内容看点:嵌入式开发前景分析、软件项目实战经验分享
行文逻辑:参观学习→技术讲解→开发过程→测试优化
夏天,我们在**进行了我们的计算机实习活动,我们不仅进行了参观和相应的理论学习,而且自己作了开发文档的书写和项目的开发。
嵌入式系统的开发是未来计算机的发展方向之一。近年来,随着软硬件资源的成熟与完善,嵌入式系统的应用得到了迅猛的发展,其应用领域涉及通信、自动化、信息家电、军事等各个方面。据IDC发布的统计表明,未来4~5年间,信息家电市场将增长5~10倍。由此可见嵌入式应用开发的巨大潜力和商机。同时,市场对嵌入式开发人员的需求也日趋上升,与现有的嵌入式开发人数产生了强烈供需矛盾。可以预见,未来几年必有更多的程序人员进入嵌入式应用开发领域。
我们在西安的两个公司参观了嵌入式系统的具体应用实例。第一天,我们去南郊一家公司参观了一个关于地下管道和电缆的探测仪。技术人员还给我们作了详细的技术讲解和实地演示。我们很认真的听取了讲解,而且作了实地的应用。我真正的看到计算机系统应用于土里土气的计算机——一个土气的盒子。计算机应用是无处不在的,我们同样在交通大学参观了一个关于心脏的医疗器械的产品。软件看上去不是很复杂,但是据说是心脏心博处理方面世界最先进的。看来软件的好坏不仅和软件的技术有关,同样和其它学科有关。
参观之后老师还给我们讲解了嵌入式系统在手机上的应用。如今信息产业方兴未艾,手机更是排头兵,手机软件的嵌入式开发更是未来比较有前途的行业。
截至20xx年底,国内手机用户已超过3亿,且以高于20%的速度持续增长。随着3G通信、智能手机等新的移动技术的发展,各类增值服务层出不穷。同时,各种嵌入式移动终端也在交通运输、生产调度、电子政务、实时数据采集等企业/政务级应用领域显示出巨大的前景。无论在消费领域还是企业级应用领域,移动软件开发技术将迎来空前的发展机遇。目前,占据市场主流技术的智能手机系统平台主要有稳居霸主地位的symbian操作系统、与windows无缝连接的windows mobile操作系统,以及具有强大跨平台优势的Kjava(J2ME)平台等。基于这些平台的开发技术具有各自的特点以及不同的优劣势,我们可以根据自己的经验、兴趣与志向进行选择。
软件开发是我们大多计算机系的毕业生将来要从事的工作。
指导教师从需求分析、概要设计、bcb数据库应用开发按照软件开发的过程给我们讲解了软件开发。在讲解过程中老师多次强调:软件开发的模式不是固定的、学好软件最好自己做一个真正的软件项目。但是一切还要从头开始。
计算机软件尤其是数据库软件,成为了当代计算机应用的主流。因此软件开发人员就必须掌握正确的开发手段,了解软件开发的主要过程,这样心中对软件项目才有清醒的认识,才能达到事半功倍的效果。
一、开发前的准备工作
一般软件项目在开发前都有系统任务书,主要规定软件的开发目标、主要任务、功能、性能指标及研制人员和经费、进度等安排,作为系统设计开发和检验的基本依据。 但是系统任务书只是这个软件项目的一个基本要求,针对具体情况,软件开发人员和需求分析人员就要联合对软件项目的细节进行具体分析,必要时还要进行实地调研,然后共同商讨写出系统的需求分析,需求分析的编写目的在于:
a. 说明系统在军事方面、技术方面、经济方面和社会条件方面实现的可行性和必要性;
b. 分析原系统(工作环境)现状,描述待开发系统的详细需求,提供用户和开发人员之间沟通的基础,提供项目设计的基本信息。
二、 软件开发过程
有了系统任务书和需求分析报告,软件设计人员就要对软件项目的实现进行系统分析,系统分析包括系统的总体方案,系统的设计说明,作为软件设计的依据。 在系统开发单位和用户充分交互、理解的基础上,提出系统的技术构架,对系统功能、性能等主要指标作描述,对实现方法和要求作规定,是系统进行详细设计的依据。 根据《系统总体方案》提出的系统构架、功能、性能及数据要求,确定系统的物理结构,说明系统主要技术方面的设计和采用的技术方法以及系统的标准化约束等,是系统实施的基本依据。程序设计中要注意合理的.程序设计结构,可以将所有的公用组件放在一起。例如c++builder语言中可以新建一个单元,将所有编写的函数放在这个单元里,其他单元均可以调用,还可以新建一个数据模块(Datamodule),将所有的公共数据库控件放在这里,可以减少系统资源浪费,优化数据库程序设计。
三、软件开发后的工作
软件项目在开发完成后还要进行系统测试,以测试开发出的软件的功能和性能是否达到预定要求。开发软件项目是一个庞大的系统工程,以上只是介绍了一般性软件主要是数据库软件的开发过程和设计思想,它要求软件开发者对此要有精深的理解,熟悉软件开发的思路。 通常一个人难以完成所有工作,需要一个良好的合作团队来协作完成,其中需求分析员和系统分析员要提供软件项目的具体要求和设计思想,由软件开发组把这些要求创建出便于维护和可持续开发的系统资源。
实习期间和指导教师的几次攀谈之后,使我对计算机行业的未来有了很多的想法。我想了很久,查了大量的资料,关注了一些现今企业的招聘需求。我知道了,什么样的道路才适合我,该向哪方面努力。
总之,经过这次实习我们不仅对计算机的发展方向和软件开发的过程有了一定的了解,更重要的是我们自己参加了简单的软件开发。深刻的认识到软件的开发是多么的不简单,我现在在学校学习到东西是远远不够的,我们还需要更加努力的学习更多的计算机等方面知识。把握未来的发展方向,努力跟上时代的步伐。总的说,这次实习还是让我们受益匪浅的。
72位用户关注