1、西安欧亚学院本科毕业论文(设计) 1 1 绪论 1.1 技术背景 从 8位 单片机到 目前的 32位 ARM微 处理器, 微型计算机技术的开发应用 日臻成熟。 RISC 32位 ARM核 的微处理器, 具有高速、低耗、多功能等 独特亮点。 尤其是 微型操作系统的嵌入 ,实现了 ARM嵌入式系统 高实时性、高可靠性、多任务管理等优异特性,成为真正意义上的嵌入式系统。目前,嵌入式系统的应用已遍及网络、通讯、信息家电、工业控制、航空、航天等高端应用领域, 基于 ARM技术的微处理器应用占据了 32位 RISC微处理器 75%以上的市场份额, ARM技术正在逐步渗入到人们生活的各个方面, 越来越多 的
2、开发人员开始了基于 ARM平台的开发。 1.2 选题意义 1.2.1 ADC 的作用 采集是 认知的开始、测量的前提、分析的基础,绝大多数的电子设备、仪器都是以 数据采集 技术 为基础 。随着电子技术和数字技术的飞速发展,信号的传输速度和CPU的处理速度越来越快,因此对数据采集和处理的要求也越来越高。 模数转换器是用来把模拟输入信号(通常是电压)转换成等效数字量的装置。其形式从单片集成电路到高性能的组件都有,模数转换器关键的特性是绝 对和相对精度、线性度、单调性、分辨率、转换速度、稳定性以及价格, 还有一些可供选用的其他技术性能 ,诸如输入范围、数字输出编码以及实际尺寸等。 模拟数据以数字形式
3、收集后可便于存贮、传送、处理和显示,因此,模数转换在音、视频信号处理、电子测量和工业控制等领域得到了广泛的应用。 1.2.2 基于 ARM 的 ADC 模块开发意义 数据采集系统用于电子测量和工业控制系统。 采集到的 信号 通过 A/D转换 (即数据采集),送入微处理器主控单元。高速系统对 ADC模块的要求很高, 低端 MCU及ADC模块难以满足高性能的应用要求,因而, 大多数开发人员将目光瞄向了 ARM芯片 的模数转换器 , 因为其 具有 高速、多路、价廉 等明显优势 。 我选择基于 ARM的 ADC模块开发题目,希望通过对于 ADC模块的开发,能为日后 的 运用打下良好的基础。 1.3 开
4、发设计方案 本课题设计是根据我校老师自主研制的 ARM 实验板进行设计开发的。 用 IAR 软件对各个模块进行程序编写并进行调试,当程序调试无误后,将程序下载到 ARM 实验板上,用电压源提供一个电压,送到 ARM 实验板中,经过模数转换器,将输入的模拟信号(电压)转换成数字信号,再通过 LCD 显示出所采集到的数字信号。 西安欧亚学院本科毕业论文(设计) 2 信 号 源A R ML P C 2 1 4 8L C D显 示J T A GI A RE m b e d d e dw o r k b e n c h图 1-1 整机工作框图 如上图所示,由信号源输出,提供 3V 电压,通过电位器送到
5、LPC2148 的 ADC模块中,经过模数转换,将得到的数字信号储存到寄存器中,并送到 LCD,显示出对应的数据。 2 功能模块说明 2.1 ARM主控芯片( LPC2148) 2.1.1 工作特性 LPC2148 是基于一个支持实时仿真和嵌入式跟踪的 32/16 位 ARM7 TDMI-S CPU的微控制器,并带有 32kB 和 512kB 嵌入的高速 Flash 存储器。 128 位宽度的存储器接口和独特的加速结构,使 32 位代码能够在最大时钟速率下运行。对代码规模有严格控制的应用可使用 16 位 Thumb 模式将代码规模降低超过 30%,而性能的损失却很小。 其特性 为: (1) 1
6、6/32 位 ARM7TDMI-S 微控制器,超小 LQFP64 封装。 (2) 8kB 40kB 的片内静态 RAM 和 32kB 512kB 的片内 Flash 程序存储器。128 位宽度接口 /加速器可实现高达 60 MHz 工作频率。 (3) 通过片内 boot 装载程序实现在系统编程 /在应用编程( ISP/IAP)。单个 Flash 扇区或整片擦除时间为 400ms。 256 字节编程时间为 1ms。 (4) Embedded ICE RT 和嵌入式跟踪接口提供实时调试(通过片内 Real Monitor 软件)和高速跟踪指令执行。 (5) USB 2.0 全速设备控制器具有 2k
7、B 的端点 RAM。此外, LPC2146/8 提供 8kB 的片内 RAM,可被 USB 的 DMA 控制器访问。 (6) 2 个 10 位 ADC 转换器,提供总共 6/14 路模拟输入,每个通道的转换时间低至 2.44us。 (7) 1 个 10 位的 D/A 转换器提供可变的模拟输出 。 (8) 2 个 32 位定时器 /外部事件计数器(带 4 路捕获和 4 路比较通道)、 PWM 单元( 6路输出)和看门狗。 (9) 低功耗实时时钟 (RTC)具有独立的电源和特定的 32kHz 时钟输入。 (10) 多个串行接口,包括 2 个 UART(16C550)、 2 个高速 I2C 总线 (
8、400 kbit/s)、西安欧亚学院本科毕业论文(设计) 3 SPI 和具有缓冲作用和数据长度可变功能的 SSP。 (11) 向量中断控制器 (VIC)。可配置优先级和向量地址。 (12) 多达 45 个可承受 5V 电压的通用 I/O 口( LQFP64 封装)。 (13) 多达 9 个边沿或电平触发的外部中断管脚。 (14) 通过一个可编程的片内 PLL( 100us 的设置时间)可实现最大为 60MHz 的 CPU 操作频率。 (15) 片内集成振荡器可操作频率为 1 30 MHz 的外部晶体或频率高达 50MHz 的外部振荡器。 (16) 低功耗模式:空闲和掉电。 (17) 可通过个别
9、使能 /禁止外围功能和外围时钟分频来优化额外功耗。 (18) 通过外部中断, USB,掉电检测 (BOD)或实时时钟 (RTC)将处理器从掉电模式中唤醒。 (19) 单电源,具有上电复位( POR)和掉电检测( BOD)电路: CPU 操作电压范围: 3.0V 3.6 V (3.3 V 10 )。 2.1.2 结构图 图 2-1 LPC2148结构方框图 由上图可见,其结构包含一个支持仿真的 ARM7TDMI-S CPU,与片内存储器控制器接口的 ARM7局部总线,与中断控制器接口的 AMBA高性能总线( AHB)和连接片内外设功能的 VLSI外设总线( VPB,ARM AMBA总线的兼容超集
10、)。 西安欧亚学院本科毕业论文(设计) 4 AHB外设分配了 2MB的地址范围,它位于 4GB ARM存储器空间的最顶端。每个AHB外设也分配了 16KB的地址空间。 并且其外设功能都连接到 VPB总线,外设包括外部中断、 I2C串行接口、捕获 /比较定 时器 0/1、 SPI串行接口、 ADC、 UART、通用I/O、 PWM、看门狗定时器、实时时钟、系统控制。 AHB到 VPB的桥将 VPB总线与 AHB总线相连。 VPB外设也分配了 2MB的地址范围, 从 3.5GB地址点开始。每个 VPB外设在 VPB地址空间内斗分配了 16KB地址空间。 2.1.3 应用 ARM芯片开发应用的重要环
11、节之一是底层开发,即用汇编语言和 C语言混合编程的启动代码。系统配置及部分启动代码程序: ( 1) 系统配置头文件 config.h #ifndef _CONFIG_H #define _CONFIG_H #ifndef TRUE #define TRUE 1 #endif #ifndef FALSE #define FALSE 0 #endif typedef unsigned char uint8; /* 无符号 8 位整型变量 */ typedef signed char int8; /* 有符号 8 位整型变量 */ typedef unsigned short uint16; /*
12、无符号 16 位整型变量 */ typedef signed short int16; /* 有符号 16 位整型变量 */ typedef unsigned int uint32; /* 无符号 32 位整型变量 */ typedef signed int int32; /* 有符号 32 位整型变量 */ typedef float fp32; /* 单精度浮点数( 32 位长度) */ typedef double fp64; /* 双精度浮点数( 64 位长度) */ #include “nxp/iolpc2148.h“ #include “stdio.h“ #include “int
13、rinsics.h“ / ARM 核特征头函数 /* 系统时钟配置: Fosc、 Fcclk、 Fcco、 Fpclk/ */ #define Fosc 12000000 / 时钟频率: 12MHz(晶振频率范围:10MHz25MHz)。 #define Fcclk (Fosc*5) / 系统时钟: 60MHz(系统频率范围:Fcclk=(132)*Fosc,且 6) /处理转换值 2.2.5 应用 ( 模块初始化 ) ADC模块正常工作的条件是正确配置其工作环境,即初始化 ADC,初 始化程序如下: /* 进行 ADC 模块设置,其中 xn 表示第 n位设置为 x(若 x超过一位,则向高位顺
14、延 ) */ ADCR = (1 0) / SEL = 1 ,选择通道 0 (Fpclk / 1000000 - 1) 8) / CLKDIV = Fpclk / 1000000 - 1 ,即转换时钟为 1MHz (0 16) / BURST = 0 ,软件控制转换操作 (0 17) / CLKS = 0 ,使用 11clock 转换 (1 21) / PDN = 1 , 正常工作模式 (非掉电转换模式 ) (0 22) / TEST1:0 = 00 ,正常工作模式 (非测试模式 ) (1 24) / START = 1 ,直接启动 ADC 转换 (0 27); / EDGE = 0 (CAP
15、/MAT 引脚下降沿触发 ADC 转换 ) DelayNS(10); 西安欧亚学院本科毕业论文(设计) 10 ADC_Data = ADDR; / 读取 ADC 结果,并清除 DONE 标志位 2.3 液晶显示模块 我所采用的目标板采用北京青云科技公司的 LCM12864汉字 /图形点阵显示模块,该模块的驱动芯片采用 ST7920控制器系列,液晶显示模块的特性取决于驱动器芯片特性。 2.3.1 ST7920的 主要特性 ST7920 同时作为控制器和驱动器 其 特性如下: (1) 硬件特性 8 位 /4 位并行接口及串行接口可选 ( 并行接口适配 M6800 时序 )。 自动电源启动复位功能
16、。 内部 自建振荡源 。 有效显示范围: 32个汉字( 4行 8列 ) 自带 8192个 16 16 点阵 的 中文 字库( 2M位 CGROM) 。 自带 126个 16 8点阵的半宽西文字库( 16K位 HCGROM)。 (2)软件特性 文字与图形混合显示功能 画面清除功能 光标归位功能 显示开 /关功能 光标显示 /隐藏功能 显示字体闪烁功能 光标移位功能功能 显示移位功能 垂直画面旋转功能 反白显示功能 休眠模式 液晶屏共分为四行,控制器会根据写入的数据值范围来自动选择字符显示在液晶屏上。 各行端口地址如下: 第一行: 80H 87 H; 第二行: 90H 97 H; 第三行: 88H 8F H; 第四行: 98H 9F H; 2.3.2 LCM12864功能框图