基于ARM的功能模块开发_第1页
基于ARM的功能模块开发_第2页
基于ARM的功能模块开发_第3页
基于ARM的功能模块开发_第4页
基于ARM的功能模块开发_第5页
已阅读5页,还剩20页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西安欧亚学院本科毕业论文(设计)11绪论11技术背景从8位单片机到目前的32位ARM微处理器,微型计算机技术的开发应用日臻成熟。RISC32位ARM核的微处理器,具有高速、低耗、多功能等独特亮点。尤其是微型操作系统的嵌入,实现了ARM嵌入式系统高实时性、高可靠性、多任务管理等优异特性,成为真正意义上的嵌入式系统。目前,嵌入式系统的应用已遍及网络、通讯、信息家电、工业控制、航空、航天等高端应用领域,基于ARM技术的微处理器应用占据了32位RISC微处理器75以上的市场份额,ARM技术正在逐步渗入到人们生活的各个方面,越来越多的开发人员开始了基于ARM平台的开发。12选题意义121ADC的作用采集是认知的开始、测量的前提、分析的基础,绝大多数的电子设备、仪器都是以数据采集技术为基础。随着电子技术和数字技术的飞速发展,信号的传输速度和CPU的处理速度越来越快,因此对数据采集和处理的要求也越来越高。模数转换器是用来把模拟输入信号(通常是电压)转换成等效数字量的装置。其形式从单片集成电路到高性能的组件都有,模数转换器关键的特性是绝对和相对精度、线性度、单调性、分辨率、转换速度、稳定性以及价格,还有一些可供选用的其他技术性能,诸如输入范围、数字输出编码以及实际尺寸等。模拟数据以数字形式收集后可便于存贮、传送、处理和显示,因此,模数转换在音、视频信号处理、电子测量和工业控制等领域得到了广泛的应用。122基于ARM的ADC模块开发意义数据采集系统用于电子测量和工业控制系统。采集到的信号通过A/D转换(即数据采集),送入微处理器主控单元。高速系统对ADC模块的要求很高,低端MCU及ADC模块难以满足高性能的应用要求,因而,大多数开发人员将目光瞄向了ARM芯片的模数转换器,因为其具有高速、多路、价廉等明显优势。我选择基于ARM的ADC模块开发题目,希望通过对于ADC模块的开发,能为日后的运用打下良好的基础。13开发设计方案本课题设计是根据我校老师自主研制的ARM实验板进行设计开发的。用IAR软件对各个模块进行程序编写并进行调试,当程序调试无误后,将程序下载到ARM实验板上,用电压源提供一个电压,送到ARM实验板中,经过模数转换器,将输入的模拟信号(电压)转换成数字信号,再通过LCD显示出所采集到的数字信号。西安欧亚学院本科毕业论文(设计)2信号源ARMLPC2148LCD显示JTAGIAREMBEDDEDWORKBENCH图11整机工作框图如上图所示,由信号源输出,提供3V电压,通过电位器送到LPC2148的ADC模块中,经过模数转换,将得到的数字信号储存到寄存器中,并送到LCD,显示出对应的数据。2功能模块说明21ARM主控芯片(LPC2148)211工作特性LPC2148是基于一个支持实时仿真和嵌入式跟踪的32/16位ARM7TDMISCPU的微控制器,并带有32KB和512KB嵌入的高速FLASH存储器。128位宽度的存储器接口和独特的加速结构,使32位代码能够在最大时钟速率下运行。对代码规模有严格控制的应用可使用16位THUMB模式将代码规模降低超过30,而性能的损失却很小。其特性为116/32位ARM7TDMIS微控制器,超小LQFP64封装。28KB40KB的片内静态RAM和32KB512KB的片内FLASH程序存储器。128位宽度接口/加速器可实现高达60MHZ工作频率。3通过片内BOOT装载程序实现在系统编程/在应用编程(ISP/IAP)。单个FLASH扇区或整片擦除时间为400MS。256字节编程时间为1MS。4EMBEDDEDICERT和嵌入式跟踪接口提供实时调试(通过片内REALMONITOR软件)和高速跟踪指令执行。5USB20全速设备控制器具有2KB的端点RAM。此外,LPC2146/8提供8KB的片内RAM,可被USB的DMA控制器访问。62个10位ADC转换器,提供总共6/14路模拟输入,每个通道的转换时间低至244US。71个10位的D/A转换器提供可变的模拟输出。82个32位定时器/外部事件计数器(带4路捕获和4路比较通道)、PWM单元(6路输出)和看门狗。9低功耗实时时钟RTC具有独立的电源和特定的32KHZ时钟输入。10多个串行接口,包括2个UART16C550、2个高速I2C总线400KBIT/S、西安欧亚学院本科毕业论文(设计)3SPI和具有缓冲作用和数据长度可变功能的SSP。11向量中断控制器VIC。可配置优先级和向量地址。12多达45个可承受5V电压的通用I/O口(LQFP64封装)。13多达9个边沿或电平触发的外部中断管脚。14通过一个可编程的片内PLL(100US的设置时间)可实现最大为60MHZ的CPU操作频率。15片内集成振荡器可操作频率为130MHZ的外部晶体或频率高达50MHZ的外部振荡器。16低功耗模式空闲和掉电。17可通过个别使能/禁止外围功能和外围时钟分频来优化额外功耗。18通过外部中断,USB,掉电检测BOD或实时时钟RTC将处理器从掉电模式中唤醒。19单电源,具有上电复位(POR)和掉电检测(BOD)电路CPU操作电压范围30V36V33V10。212结构图图21LPC2148结构方框图由上图可见,其结构包含一个支持仿真的ARM7TDMISCPU,与片内存储器控制器接口的ARM7局部总线,与中断控制器接口的AMBA高性能总线(AHB)和连接片内外设功能的VLSI外设总线(VPB,ARMAMBA总线的兼容超集)。西安欧亚学院本科毕业论文(设计)4AHB外设分配了2MB的地址范围,它位于4GBARM存储器空间的最顶端。每个AHB外设也分配了16KB的地址空间。并且其外设功能都连接到VPB总线,外设包括外部中断、I2C串行接口、捕获/比较定时器0/1、SPI串行接口、ADC、UART、通用I/O、PWM、看门狗定时器、实时时钟、系统控制。AHB到VPB的桥将VPB总线与AHB总线相连。VPB外设也分配了2MB的地址范围,从35GB地址点开始。每个VPB外设在VPB地址空间内斗分配了16KB地址空间。213应用ARM芯片开发应用的重要环节之一是底层开发,即用汇编语言和C语言混合编程的启动代码。系统配置及部分启动代码程序(1)系统配置头文件CONFIGHIFNDEF_CONFIG_HDEFINE_CONFIG_HIFNDEFTRUEDEFINETRUE1ENDIFIFNDEFFALSEDEFINEFALSE0ENDIFTYPEDEFUNSIGNEDCHARUINT8/无符号8位整型变量/TYPEDEFSIGNEDCHARINT8/有符号8位整型变量/TYPEDEFUNSIGNEDSHORTUINT16/无符号16位整型变量/TYPEDEFSIGNEDSHORTINT16/有符号16位整型变量/TYPEDEFUNSIGNEDINTUINT32/无符号32位整型变量/TYPEDEFSIGNEDINTINT32/有符号32位整型变量/TYPEDEFFLOATFP32/单精度浮点数(32位长度)/TYPEDEFDOUBLEFP64/双精度浮点数(64位长度)/INCLUDE“NXP/IOLPC2148H“INCLUDE“STDIOH“INCLUDE“INTRINSICSH“/ARM核特征头函数/系统时钟配置FOSC、FCCLK、FCCO、FPCLK/DEFINEFOSC12000000/时钟频率12MHZ(晶振频率范围10MHZ25MHZ)。DEFINEFCCLKFOSC5/系统时钟60MHZ(系统频率范围FCCLK132FOSC,且6/处理转换值225应用(模块初始化)ADC模块正常工作的条件是正确配置其工作环境,即初始化ADC,初始化程序如下/进行ADC模块设置,其中X40MS功能设定控制字30HDELAY100US功能设定控制字30HDELAY37US显示开/关控制字0C0HDELAY100US清除屏幕控制字01HDELAY10MS进入设定点控制字06H初始化完成图25液晶初始化流程图3、开发工具31JTAG西安欧亚学院本科毕业论文(设计)15JTAG是一种技术先进高效的基于边缘扫描技术的硬件仿真/调试/编程器。实物图如下图31JTAG实物图311性能介绍JTAG(JOINTTESTACTIONGROUP,联合测试行动小组)是一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试。JTAG技术是一种嵌入式调试技术,它在芯片内部封装了专门的测试电路TAP(TESTACCESSPORT,测试访问口),通过专用的JTAG测试工具对内部节点进行测试。目前大多数比较复杂的器件都支持JTAG协议,如ARM、DSP、FPGA器件等。标准的JTAG接口是4线TMS、TCK、TDI、TDO,分别为测试模式选择、测试时钟、测试数据输入和测试数据输出。JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试。JTAG接口还常用于实现ISP(INSYSTEMPROGRAMMABLE在线系统编程)功能,如对FLASH器件进行编程等。通过JTAG接口,可以对芯片部的所有部件进行访问,因而是开发调试嵌入式系统的一种简洁高效的用段。JTAG的主要功能有两种,或者说JTAG主要有两大类一类用于测试芯片的电气特性,检测芯片是否有问题;另一类用于DEBUG,对各类芯片以及其外围设备进行调试。一个含有JTAGDEBUG接口模块的CPU,只要时钟正常,就可以通过JTAG接口访问CPU的内部寄存器、挂在CPU总线上的设备以及内置模块的寄存器。简单地说,JTAG的工作原理可以归结为在器件内部定义一个TAP,通过专用的JTAG测试工具对内部节点进行测试和调试。312结构框图西安欧亚学院本科毕业论文(设计)16图32JTAG的内部结构方框图JTAG内部结构如上图所示。在硬件结构上,JTAG接口包括2部分JTAG端口和控制器。与JTAG接口兼容的器件可以是微处理器(MPU)、微控制器(MCU)、PLD、CPL、FPGA、ASIC或者是其他符合IEEE11491规范的芯片。IEEE11491标准中规定对应于数字集成电路芯片的每个引脚都设有一个移位寄存单元,称为边界扫描单元BSC(BOUNDARYSCANCELL)它将JTAG电路与内核逻辑电路联系起来,同进隔离内核逻辑电路和芯片引脚,由集成电路的所有边界扫描单元构成边界扫描寄存器BSR(BOUNDARYSCANREGISTER)。边界扫描寄存器仅在进行JTAG测试时有效,在集成电路正常工作时无效,不影响集成电路的功能。各引脚功能如下。(1)TCK时钟信号,为TAP的操作提供了一个独立的、基本的时钟信号。(2)TMS模式选择信号,用于控制TAP状态机的转换。(3)TDI数据输入信号。(4)TDO数据输出信号。(5)TRST复位信号,可以用来对TAPCONTROLLER进行复位初始化。这个信号接口在IEEE11491标准里并不是强制要求的,因为通过TMS也可以对TAPCONTROLLER进行复位。(6)STCK时钟返回信号,在IEEE11491标准里非强制要求。(7)DBGRQ目标板上工作状态的控制信号。在IEEE11491标准里没有要西安欧亚学院本科毕业论文(设计)17求,只是在个别目标板例如STR710中会有。简单地说,PC机对目标板的调试就是通过TAP接口完成对相关数据寄存器DR和指令寄存器IR的访问。32IAR开发环境321功能简介IAREMBEDEDWORKBENCH(以下简称IAREW)是仿真调试编程的集成开发环境。是一种非常高效的嵌入式系统开发工具,它使用户能够充分有效地开发管理嵌入式应用项目,其界面类似于MSVISUALC,可以在WINDOWS95/98/2000/XP平台上运行,功能十分完善。IAREW中包含了源程序文件编辑器、项目管理器(PROJECT)源程序调试器(DEBUG)待,并且为C/C编译器、汇编器、链接定位器等提供了单一而灵活的开发环境。IAREW的源级浏览器(SOURCEBROWSER)功能利用符号数据库使用户可以快速浏览源文件,还可通过详细的符号信息来优化变量存储器;文件查找功能可在指定的若干种文件中进行全局文件搜索;IAREW还提供了对第三方工具软件的接口,允许启动用户指定的应用程序。IAREW适用于开发基于8位、16位以及32位微处理器的嵌入式系统,其集成开发环境具有统一界面,为用户提供了一个易学和具有最大代码继承能力的开发平台,以及对各种特殊目标的支持。IAR公司提出了所谓“不同架构,惟一解决方案”的理念用户可以针多种不同的目标处理器,在相同的集成开发环境中进行基于不同CPU嵌入式系统应用程序的开发,有效提高工作效率,节省工作时间。IATEW还是一种可扩展的模块化环境,允许用户采用自己喜欢的编辑器和源代码控制系统,链接定位器(XLINK)可以输出多种格式的目标文件,使用户可以采用第三方软件进行仿真调试。编译器、汇编器和链接器也可在命令行上运行,用户可以在一个已建好的项目中把它们作为外部工具使用。322主要功能模块1高度优化的IARARMC/C编译器(COMPILE)。2IARARM汇编器(ASSEMBLER)。3通用的IARXLINK链接器(LINKER)。4IARXAR和XLIB建库程序和IARDLIBC/C运行库5功能强大的编辑器。6项目管理器。7命令行实用程序。8IARCSPY调试器(先进的高级语言调试器)。323软件特点IAREWAM软件的特点1完善的ARM内核支持。2客户化地芯片级支持。3编译器速度优化及浮点运算库功能扩展。4支持多种嵌入式操作系统。5功能强大的DEBUG功能。324芯片级支持特性1各厂商完整的ARM处理器C/C和汇编语言外设寄存器定义文件(H)。西安欧亚学院本科毕业论文(设计)182大量适于嵌入式代码的编程语言扩展特性,包括存储器关键字、本征函数、中断函数、存储器映射I/O等。3多种评估板例程,包含IAR、ANALOGDEVICES、AIJISYSTEM、ARM、ATMEL、CIRRUSLOGIC、FREESCALE、KEIL、OKI、OLIMEX、PASAT、PHILIPS、PHYTEC、ST和TI等。4支持ARM或THUMB模式下大至4G字节的应用程序。5每个函数都能选择在ARM或THUMB模式下编译。6可生成VFP向量浮点协处理器代码。7支持ANALOGDEVICES、ATMEL、FREESCALE、OKI、PHILIPS、ST和TI等厂商的ARM处理器的FLASHLOADER程序。8支持ARMANGELDEBUGMONITOR。325集成开发环境的界面特色1分层次的工程组织。2同一工作空间中允许存放多个工程。3可停靠的窗口和多视图。4源代码浏览。5创建和维护库的工具。6可以和源代码控制系统相集成。7文本编辑器。图33调试窗口图33就是IAREMBEDEDWORKBENCH的工作界面。其中1窗口为工作窗口,2是程序源代码窗口,3是反汇编窗口,4是寄存器窗口,5是存储器窗口,其实还可23514西安欧亚学院本科毕业论文(设计)19以打开更多的窗口,例如变量窗口等。由此可见IAR为编程人员在调试过程中提供了很大的方便。4编程及调试41整机初始化411流程图START功能选择时钟配置LCM初始化ADC初始化中断初始化开中断图41整机初始化流程图412初始化源程序功能系统时钟、加速模块、中断初始化西安欧亚学院本科毕业论文(设计)20VOIDSYSTEM_INIT/VPB分频系数配置/PLLCON1/PLL使能(开启)IFFCCLK/4/FPCLK1/VPB时钟为处理器时钟的1/4时VPBDIV0/VPB分频系数设置模式0ENDIFIFFCCLK/4/FPCLK2/VPB总线时钟为处理器时钟的1/2时VPBDIV2/VPB分频系数设置模式2ENDIFIFFCCLK/4/FPCLK4/VPB总线时钟与处理器时钟相同时VPBDIV1/VPB分频系数设置模式1ENDIF/PLL倍频/分频值自动配置/IFFCCO/FCCLK2/流控振荡频率是系统频率的2倍时PLLCFGFCCLK/FOSC1|06西安欧亚学院本科毕业论文(设计)22ADC_DATAADC_DATA3300ADC_DATAADC_DATA/1024SPRINTFSTR,“4DMVATVIN1“,ADC_DATAISENDSTR60,23,0X30,STRDELAYNS1043液晶模块程序设计431流程图1行输入字符是否结束2行3行4行将相应的端口地址写入LCD将字符写入LCD指向下一字符YN图43字符串显示流程图根据用户的设置,判断要写入第几行,然后将对应的端口地址写入液晶屏。再将字符逐个写入液晶屏,此时液晶屏上会出现要显示的字符。显示数字模块的设计与字符显示模块类似,其主要思想是将数字逐位转化为字符串,然后写入液晶屏。数字转化为字符的方法是,先取数字的各位,转化为ASCII码,存入字符串数组中的第一个单元。以此类推,将数字的每一位取出,转换为ASCII码,依次存入字符串数组。再将字符串显示在液晶屏。其流程图如下西安欧亚学院本科毕业论文(设计)23将字符串写入LCD是否转换完取出个位转换为ASCII码存入字符串去掉个位字符串指针加1YN图44字符转换流程图432源程序LCD写命令数据函数/函数功能写命令/数据说明DATA写入的值CD0指令写入,CD1数据写入,/EXTERNVOIDWRITEOPERATEUNSIGNEDCHARVALUE,UNSIGNEDCHARCDBUSYLOOP/IFCDLCDRS_DH/RS1ELSELCDRS_CL/RS0LCDRW_WL/RW0LCDE_EH/E1LCDOUTVALUELCDOUT_1DELAY20LCDE_EL/E0/写无参数指令入口参数命令/EXTERNVOIDWRITECOMMANDUNSIGNEDCHARCOMM西安欧亚学院本科毕业论文(设计)24WRITEOPERATECOMM,0/写带双参数指令入口参数数据。数据。命令/VOIDWRITE2UNSIGNEDCHARCOMMAND,UNSIGNEDCHARDATA_H,UNSIGNEDCHARDATA_L/WRITEOPERATECOMMAND,0/WRITEOPERATEDATA_H,1/WRITEOPERATEDATA_L,1/44调试中出现的问题(1)在整个程序调试中真是困难重重,首先对于国外这款强大的调试软件不熟悉,以及自身因为英语程度有限,导致使用起来非常不方便,但是经过

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论