1、 电控学院 课程设计(论文) 课程名称: ARM 嵌入式系统 题 目: ARM 为核心的频率计 院 (系): 电气与控制工程学院 专业班级: 测控技术与仪器 1002 姓 名: 孟 庆 峰 学 号: 1006070233 指导教师: 李红岩 黄梦涛 2013 年 12 月 27 日 西安科技大学电控学院课程设计 目录 基于 LPC2131 的频率计 . 1 一 概述 . 1 1.1 课题设计的背景 . 1 1.2 课题研究的目的和意义 . 1 1.3 ARM 开发板 (简介 ) . 2 1.4 LPC2131 微控制器 . 3 1.4.1 简介 . 3 1.4.2 主要性能 . 3 二 方案设
2、计 . 4 三 硬件设计 . 4 3.1 硬件设计原理图及其介绍 . 4 3.2 软件仿真图 . 5 3.4 软件设计 . 6 四 附件 程序清单 . 7 结 论 心得体会 . 12 西安科技大学电控学院课程设计 第 1 页 基于 LPC2131 的频率计 一 概述 1.1 课题设计的背景 数字频率计 1(DFM)是电子测量与仪表技术最基础的电子仪表类别之一 , 数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器 ,而且它是数字电压表 (DVM)必不可少的部件。当今数字频率计不仅是作为电压表、计算机、天线电广播通讯设备、工艺过程自动化装置。多种仪表仪器与家庭电器等许多电子产
3、品中的数据信息输出显示器反映到人们眼帘。集成数字频率计由于所 用元件少、投资少 ,体积小 ,功耗低 ,且可靠性高 ,功能强 ,易于设计和研发 ,使得它具有技术上的实用性和应用的广泛性。不论从我们用的彩色电视机、电冰箱, DVD,还有我们现在家庭常用到的数字电压表数字万用表等等都包含有频率计。现在频率计已是向数字智能方向发展,即可以很精确的读数也精巧易于控制。数字频率计已是现在频率计发展的方向 ,它不仅可以很方便的读数 ,而且还可以使频率的测量范围和测量准确度上都比模拟先进 .而且频率计的使用已是很多的方面 ,数字卫星、数字通讯等高科技的领域都有应用,今天数字频率计的发展已经不仅仅是一个小电 子
4、产品的发展也是整个民族乃至整个国家的发展,所以频率计的发展是一个整体的趋势。 而从民族产业上来说,我们在这种产业中还落后于西方发达国家,这将会关系到民族产业的兴衰。所以我们必须很重视当前的情况,学习发达国家的先进技术以发展本国的产业。 1.2 课题研究的目的和意义 数字频率计 1是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器 。随着人们文化生活水平的提高,加上现在中国国力的上升,人民在不断的追求高质量生活的同时大都在密切的关注着我们的民族产业的发展前景。而频率计的发展虽是一个极小部分但也可以反 映出我国民族产业发展的现状。我国在很多的方面都已不在是过去那个很贫穷落后的国家,但是关
5、系着我们国计民生的民族产业的发展却是不尽人意,不能西安科技大学电控学院课程设计 第 2 页 不成为今天令人注目的焦点。 通过本次课程设计,运用已学的课程知识,根据题目要求进行软硬件系统的设计和调试,对 ARM 嵌入式系统基础教程 6课程中涉及的芯片结构、控制原理、硬件和编程方面有一定的感性认识和实践操作能力,从而加深对本课程知识点的理解,使自身应用只是能力、设计能力、调试能力以及报告撰写能力等方面有显著的提高。 此次课程设计是用 ARM 的定时器 /计数器的定时和计数 功能,外部扩展 6 位 LED 数码管,求累计每秒进入 ARM 的外部脉冲个数,用 LED 数码管显示出来。或用上位机显示。
6、1.3 ARM 开发板 (简介 ) ARM 公司是专门从事基于 RISC 技术芯片设计开发的公司,作为知识产权供 应商,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯 片,世界各大半导体生产商从 ARM 公司购买其设计的 ARM 微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的 ARM 微处理器芯片进入市场。目前,全世界有几十家大的半导体公司都使用 ARM 公司的授权,因此既使得 ARM 技术获得更多的 第三方 工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场被消费者所接受,更具有竞争力。 ARM 架构包含了以下精简指令集处理器的特性:
7、 读取储存 架构 不支援地址不对齐内存存取( ARMv6 内核现已支援) 正交指令集(任意存取指令可以任意的 寻址方式 存取数据 Orthogonal instruction set) 大量的 16 32-bit 寄存器阵列( register file) 固定的 32 bits 操作码( opcode)长度,降低编码数量所产生的耗费,减轻解码和流水线化的负担。 大多均为一个 CPU 周期执行。 为了补强这种简单的设计方式,相较于同时期的处理器如 Intel 80286 和 Motorola 68020,还多加了一些特殊设计: 西安科技大学电控学院课程设计 第 3 页 大部分指令可以条件式地执
8、行,降低在分支时产生的负重,弥补分支预测器( branch predictor)的不足。 算数指令只会在要求时更改条件编码( condition code) 32-bit 筒型位移器( barrel shifter)可用来执行大部分的算数指令和寻址计算而不会损失效能 强大的索引 寻址模式 ( addressing mode) 精简但快速的双优先级 中断 子系统,具有可切换的暂存器组 1.4 LPC2131 微控制器 1.4.1 简介 LPC2131 是基于一个支持实时仿真和跟踪的 16/32 位 ARM7TDMI-STM CPU,并带有32kB、 64kB 和 512kB 嵌入的高速 Flas
9、h 存储器。 128 位宽度的存储器接口和独特的加速结构使 32 位代码能够在最大时钟速率下运行。对代码规模有严格控制的应用可使用16 位 Thumb 模式将代码规模降低超过 30%,而性能的损失却很小。较小的 封装和很低的功耗使 LPC2103 特别适用于访问控制和 POS 机等小型应用中;由于内置了宽范围的串行通信接口和 8/16/32kB 的片内 SRAM,它们也非常适合于通信网关、协议转换器、软件 modem、语音识别、低端成像,为这些应用提供大规模的缓冲区和强大的处 理功能。多个 32 位定时器、 1 个或 2 个 10 位 8 路的 ADC、 10 位 DAC、 PWM 通道、 4
10、7 个 GPIO 以及多达 9 个边沿或电平触发的外部中断使它们特别适用于工业控制应用以及医疗系统。 1.4.2 主要性能 a、 8/16/32kB 的片内静 态 RAM 和 32/64/512kB 的片内 Flash 程序存储器。 128 位宽度接口 /加速器可实现高达 60 MHz 工作频率。 b、 1 个( LPC2131)或 2 个( LPC2138) 8 路 10 位的 A/D 转换器,共提供 16 路模拟输入,每个通道的转换时间低至 2.44us。 c、 1 个 10 位的 D/A 转换器,可产生不同的模拟输出。(仅适用于 LPC2132/2138) d、 2 个 32 位定时器
11、/计数器(带 4 路捕获和 4 路比较通道)、 PWM 单元( 6 路输出)和看门狗。 e、多个串行接口,包括 2 个 16C550 工业标准 UART、 2 个高速 I2C 接口( 400 西安科技大学电控学院课程设计 第 4 页 kbit/s)、 SPITM 等。 二 方案设计 方案 1:通过板内的 1 个定时器,完成发射频率与频率计数。板内自带的定时器向另一个定时器发送方波频率,由另一个定时器接受并进行计数。通过串口向计算机发送数据由上位机 EasyARM 显示频率。 方案 2:由外部频率发射器传送出频率后经 LPC2131 定时器对频率进行计数。然后由液晶屏 1602 对频率进行计数显
12、示。最后利用开发板内自带的按键控制频率并对频率进行中断或刷新。 因为方案 1节省资源,并且板内自带的定时器可 以提供更方便快捷的程序更改频率,调试也可只对用程序进行修改。综上所述,我们决定使用方案 1。方案 1 报告可以节省资源外,编译的程序上也带给我们一定有利之处,例如在程序出错的时候我们判断错误的来源也可以从少量的器件中一一排除,方案 2 外接的频率发射机不仅要昂贵的经济消耗以外,所带给我们的程序编译上也没有较好快捷的方法进行修改。 三 硬件设计 3.1 硬件设计原理图及其介绍 LPC2131 待测信号 发生模块 定时器 上位机显示结果 西安科技大学电控学院课程设计 第 5 页 图 3.1
13、 原理框图 由上图知,一个被测信号进入 ARM 开发板,然后经过 1S 的定时捕获得 出频率值,再经由上位机显示出数值。 3.2 软件仿真图 图 3.2 软件仿真图 西安科技大学电控学院课程设计 第 6 页 3.4 软件设计 。 图 3.3 程序流程图 通过波形发生器产生的方波输入,定时器 T0 进行计数,通过上位机显示 T0 计数值。 开 始 初始化定时器 0 初始化串口 0 向串口发数据 定时器 1S 定时 获取脉冲 1S 时间到 关闭定时器 0 显示结果 N Y 西安科技大学电控学院课程设计 第 7 页 四 附件程序清单 程序清单: /*Copyright (c)* * Guangzou
14、 ZLG-MCU Development Co.,LTD. * graduate school * http:/ * *-File Info- * File name: main.c * Last modified Date: 2004-09-16 * Last Version: 1.0 * Descriptions: The main() function example template * *- * Created by: Chenmingji * Created date: 2004-09-16 * Version: 1.0 * Descriptions: The original version * *- * Modified by: * Modified date: * Version: * Descriptions: * */ #include “config.h“