arm课设报告.docx
《arm课设报告.docx》由会员分享,可在线阅读,更多相关《arm课设报告.docx(32页珍藏版)》请在冰豆网上搜索。
arm课设报告
ARM双通道数据采集系统设计
姓名:
李久艳0906050303
李晶璞0906050305
石雪玉0906050308
范亚锋0906050318
摘要:
近年来,随着计算机技术、电力电子等技术的发展,如何对数据进行采集和处理显得越发重要,数据采集的速度和精度是数据系统发展的两个主要方向。
基于ARM7LPC2131设计了一种数据采集系统,利用LPC2131丰富的功能接口和较高的工作效率,实现对信号的采集和数据处理功能。
介绍数据采集系统的国内外研究现状和发展趋势,对系统的主要芯片进行选型。
根据模块化的思想,将系统划分成各个功能进行分析,在ADS1.2编译环境下进行C语言和汇编语言程序编写。
关键词:
数据采集LPC2131数据处理
Abstract:
Inrecentyears,withcomputertechnology,electronictechnologydevelopment,howtocollectandprocessthedatabecomesmoreimportant.Thespeedandaccuracyofdatacollectionarethetwomaindirectionofdataacquisitionsystem.BasedontheARM7PLC2131thispaperdesignsadataacquisition.UsingrichfunctioninterfaceandhigheroperatingfrequencyofLPC2131achievessignalacquisitionanddataprocessingfunction.Thisdescribestheresearchstatusanddevelopmenttrendofthedataacquisitionsystem,selectsthemainchipsofthesystem.Accordingtothemodularidea,thesystemisdividedseveralfunctionalunitsandanalyzeseachfunctionalmodule.Describesthesoftwaredesignofeachmodule,CandassemblylanguagesarecompiledinADS1.2environment.
Keywords:
DataAcquisitionLPC2131DataProcessing
摘要……………………………………………………………1
设计要求………………………………………………………2
设计原理………………………………………………………3
ARM7处理器简介………………………………………………4
PLC2131概述…………………………………………………5
PLC2131管脚功能……………………………………………6
ADS1.2环境简介……………………………………………11
系统框图……………………………………………………11
外部原理图…………………………………………………12
程序流程图…………………………………………………14
心得体会……………………………………………………15
参考文献……………………………………………………19
1.设计要求:
1)用protel画出最小系统及外围扩展电路
2)以ARM为控制器,驱动部分需自己动手制作,要求有拍数、角度、速度显示。
3)显示部分可用12864或者数码管最好用上位机(VB界面)
4)要求小组成员分工明确,答辩到位
2.设计原理:
析国内数据采集系统的基础上,并考虑数据的采集速度,精度和系统的可扩展性,选用ARM7微控制器LPC2131设计出一套通用性强的数据采集系统,用来实现高速和高精度的信号采集,显示及无线传输等功能。
2.1数据采集基本原理:
电压,温度,压力等这些信号都是模拟量,他们是随时间变化而连续变化的。
而微处理器系统内部运算时使用的是数字量,这就需要必须将模拟量转换为数字量。
因此需要在电路前端加上模拟/数字量转换器,即ADC
在AD转换过程中,因为输入的模拟量在时间上是连续的,而输出的数字量在时间上是离散的,因此需要在一些选定的时间点上对模拟信号进行采样,把这些采样值转换为数字量。
一般的AD转换过程是通过采样保持,量化和编码三个步骤完成的。
在时间上连续变化的模拟量转换为一些列等距的脉冲,脉冲的幅度取决于出入的模拟量,并按一定的编码格式输出转换结果。
2.1.1采样定理
为了保证能从采样信号恢复成原信号,必须满足:
其中
为采样频率,
为输入模拟信号中的最高频率。
因此,采样定理规定了采样频率的下限,通常取
2.1.2量化
在AD转化过程中,用数字量表示连续变化的模拟量时,必须将采样电压值表示为某个最小单位的整数倍,这个过程最小单位成为量化单位,过程中存在的误差称为量化误差。
2.1.3编码
把量化得到的结果用二进制编码表示出来,称为编码。
2.2ARM7处理器
ARM处理器是现在世界上应用最为广泛的32位处理器之一,它体积小,成本低,功耗低,可靠性高,资源丰富,是嵌入式设备的核心。
2.2.1ARM处理器具有以下特点:
1)采用流水线技术,提高了处理器核的效率和吞吐率。
2)多重AHB总线,使AHB系统可以同步进行不会产生竞争。
3)具有系统编程和应用编程功能。
4)大容量的片内Flash程序存储器和SRAM可以进行高性能的CPU访问
5)内置PWM,AD,和DA功能单元,可以不用外接转换电路直接对模拟信号进行处理控制。
6)具有强大的数据通信功能。
为了系统的可扩展性和今后学习研究的需要,搭建的硬件的平台具有较多的资源,考虑到处理数据的速率和实时性,需要较多的I/O管脚,考虑到编写程序,处理数据的方便性和为了未来一直操作系统的需要,需要较大的Flash存储器和SRAM。
因此选用高端的ARM7芯片LPC2131.
2.3ARM7PLC2131介绍
2.3.1PLC2131概述
LPC2131微控制器是基于一个支持实时仿真和嵌入式跟踪的16/32位的存储器接口和独特的加速结构使32位代码能够在最大时钟速率下运行。
对代码规模有严格控制的应用可使用16位Thumb模式将代码规模降低超过30%,较小的封装和很低的功耗使LPC2131用于访问控制和POS机等小型应用中.
图1
2.3.2主要特性
1)16/32位ARM7TDMI-S核,超小LQFP64封装。
2)8/16/32kB的片内静态RAM和32/64/128/256/512kB的片内Flash程序存储器。
128位宽度接口/
加速器可实现高达60MHz工作频率。
3)通过片内boot装载程序实现在系统编程/在应用编程(ISP/IAP)。
单个Flash扇区或整片擦除时间
为400ms。
256字节行编程时间为1ms。
4)EmbeddedICERT和嵌入式跟踪接口通过片内RealMonitor软件对代码进行实时调试和高速跟踪。
5)1个(LPC2131/32)或2个(LPC2134/36/38)8路10位的A/D转换器,共提供16路模拟输入,
每个通道的转换时间低至2.44us。
6)1个10位的D/A转换器,可产生不同的模拟输出。
(LPC2132/34/36/38)
7)2个32位定时器/外部事件计数器(带4路捕获和4路比较通道)、PWM单元(6路输出)和看
门狗。
8)低功耗实时时钟具有独立的电源和特定的32kHz时钟输入。
9)多个串行接口,包括2个16C550工业标准UART、2个高速I2C总线(400kbit/s)、SPI和具有
缓冲作用和数据长度可变功能的SSP。
10)向量中断控制器。
可配置优先级和向量地址。
11)小型的LQFP64封装上包含多达47个通用I/O口(可承受5V电压)。
12)多达9个边沿或电平触发的外部中断管脚。
13)通过片内PLL(100us的设置时间)可实现最大为60MHz的CPU操作频率。
14)片内集成振荡器与外部晶体的操作频率范围为1~30MHz,与外部振荡器的操作频率范围高达
50MHz。
15)低功耗模式:
空闲和掉电。
16)可通过个别使能/禁止外部功能和外围时钟分频来优化功耗。
17)通过外部中断或BOD将处理器从掉电模式中唤醒。
18)单电源,具有上电复位(POR)和掉电检测(BOD)电路:
19)CPU操作电压范围:
3.0V~3.6V(3.3V±10﹪),I/O口可承受5V的电压。
2.3.3中断控制器
向量中断控制器(VIC)接收所有的中断请求输入,并将它们编程分配为3类:
FIQ、向量IRQ和非向量IRQ。
可编程分配机制意味着不同外设的中断优先级可以动态分配和调整。
2.3.4管脚功能寄存器
1)管脚功能选择寄存器0:
由管脚P0.0
P0.5
2)管脚功能选择寄存器1:
由管脚P0.6
P0.13
3)管脚功能选择寄存器2:
。
IODIR寄存器中的方向控制位只有在GPIO功能应用到管脚时才有效。
2.3.5转换器
(1)10位A/D转换器
LPC2131/32包含1个模-数转换器。
它是由简单的带8路输入的10
位逐次逼近模数转换器。
特性
1)测量范围:
0~3.3V
2)每秒可执行400,000次10位采样
3)单路或多路输入的突发转换模式
4)根据输入脚的跳变或定时器匹配信号执行转换
5)2个转换器全部启动命令
(2)10位D/A转换器
此外围功能只用于LPC2132/2134/2136/2138。
D/A转换器使能LPC2132/2134/2136/2138来产生不同的模拟输出。
特性
1)10位数模转换器
2)缓冲输出
3)可用于掉电模式
4)可调整转换速度与消耗功率的比
2.3.6通用定时器/计数器
定时器/计数器对外设时钟周期(PCLK)或外部时钟进行计数,可选择产生中断或基于4个匹配寄存器,在到达指定的定时值时执行其它动作。
它还包括4个捕获输入,用于在输入信号发生跳变时捕获定时器值,并可选择产生中断。
多个管脚通过‘或’、‘与’,可以实现捕获、匹配或‘广播’功能。
特性
1)带可编程32位预分频器的32位定时器/计数器
2)外部事件计数器或定时器操作
3)当输入信号跳变时,4个32位捕获通道可捕获定时器的瞬时值。
捕获事件可选择产生中断。
4)4个32位匹配寄存器:
匹配时停止定时器,可选择产生中断
匹配时复位定时器,可选择产生中断
5)每个定时器有4个对应于匹配寄存器的外部输出,具有下列特性:
匹配时置低电平
匹配时置高电平
匹配时翻转
匹配时不变
连续操作,可选择在匹配时产生中断
2.3.7看门狗
看门狗定时器的用途是使微控制器在进入错误状态经过一段时间后复位。
当看门狗使能时,如果没有在预先确定的时间内“喂”(重装)看门狗,它将会产生一次系统复位。
特性
1)如果没有周期性重装,则产生片内复位
2)调试模式
3)由软件使能,但要求禁止硬件复位或看门狗复位/中断
4)错误/不完整的喂狗时序会导致复位/中断(如果使能)
5)指示看门狗复位的标志
6)带内部预分频器的可编程32位定时器
7)可选择时间周期:
从(tpclk×256×4)到(tpclk×232×4),可选值为tpclk×4的倍数
2.3.8实时时钟
当选择正常或空闲模式时,实时时钟(RTC)提供一套用于测量时间的计数器。
RTC消耗的功率非常低,
这使其适合于由电池供电的,CPU不连续工作(空闲模式)的系统。
特性
1)对时间段进行测量以实现一个日历或时钟
2)超低功耗设计,支持电池供电系统
3)提供秒、分、小时、日、月、年和星期
4)可使用RTC专用的32kHz振荡器或XTAL1连接的外部晶体/振荡器输入的时钟。
可编程基准时钟分频器允许调节RTC以适应不同的晶振频率
5)专用电源管脚连接到电池或3.3V的电压。
2.3.4结构概述
ARM7TDMI-S是一个通用的32位微处理器,它可提供高性能和低功耗。
ARM结构是基于精简指令集
计算机(RISC)原理而设计的。
指令集和相关的译码机制比复杂指令集计算机要简单得多。
这样使用一个小
的、廉价的处理器核就可实现很高的指令吞吐量和实时的中断响应。
由于使用了流水线技术,处理和存储系统的所有部分都可连续工作。
通常在执行一条指令的同时对下
一条指令进行译码,并将第三条指令从存储器中取出。
ARM7TDMI-S处理器使用了一个被称为THUMB的独特的结构化策略,它非常适用于那些对存储器有
限制或者需要较高代码密度的大批量产品的应用。
在THUMB后面一个关键的概念是“超精简指令集”。
ARM7TDMI-S处理器基本上具有两个指令集:
1)标准32位ARM指令集
2)16位THUMB指令集
THUMB指令集的16位指令长度使其可以达到标准ARM代码两倍的密度,却仍然保持ARM的大多数性能上的优势,这些优势是使用16位寄存器的16位处理器所不具有的。
这是因为THUMB代码和ARM
代码一样,在相同的32位寄存器上进行操作。
THUMB代码仅为ARM代码规模的65%,但其性能却相当于连接到16位存储器系统的相同ARM处
理器性能的160%。
图1
(1)仅为LPC2134/2136/2138。
(2)仅为LPC2132/2134/2136/2138。
(3)管脚与GPIO共用。
2.4ADS1.2集成开发环境简介
ADS1.2是一个使用方便的集成开发环境,它是由ARM公司提供的专门用于ARM相关应用开发和调试的综合性软件。
在功能和易用性上都非常容易,是一款功能强大又易于使用的开发工具。
ADS1.2囊括了一系列的应用,并有相关的文档和实例的支持。
使用者可以用它来编写和调试各种基于ARM家族的RISC处理器的应用可以用ADS来开发,编译看,调试采用包括C,C++和ARM汇编语言编写的程序。
其主要由以下部件构成:
1)命令开发工具
2)图形界面开发工具
3)各种辅助工具
4)支持软件
3.设计内容
3.1系统框图
由于本系统是一个面向工业应用的高速采集分析平台,为满足系统对速度、精度和可靠性等方面的综合需求,基于ARM7TDMI-S内核的32位嵌入式处理器LPC2131作为系统的中央处理器,该器件具有非常丰富的外围模块,强大的处理和控制功能,非常易于构建嵌入式系统。
本系统设计了一个跟随电网周波信号的锁相环电路,用于自动跟随电网周波信号,并产生与此同步的32等分的方波信号;LPC2131依据采样调度算法,利用此32等分方波信号,驱动A/D转换器同步采样现场的交流信号。
此外,若失去电网周波信号,周波跟随器将自动产生50Hz的方波信号,继续驱动模板完成采样工作。
本系统的硬件系统组成如图1所示。
图1
3.2外部原理图
1)低压差模拟电源
整个系统在3.3V上消耗的电流与外部条件有很大关系,这里假设电流不超过200mA,这样系统3.3V能够提供600mA电流即可。
因为系统对这两组电压要求比较高,而且其功耗不是很大,所以不适合用开关电源,应当用低压差模拟电源(LDO),Sipex半导体SPX1117是一个较好的选择,它的性价比较好。
图1模拟电源
2)实时时钟
片内集成振荡器支持的晶振范围为1MHz~30MHz,外部振荡器频率高达50MHz。
晶振输出频率称为fOSC,而ARM处理器时钟频率称为cclk。
除非连接并运行PLL,否则在该文档中FOSC和cclk的值是相同的。
图2时钟电路
3)报警电路
分别设定每一路的上限值,若采集的平均值超过该界限值,则对应通
道的指示灯闪烁10次后一直亮,指示灯闪烁时喇叭发声,以示警告。
图2超过界限时指示灯闪烁报警电路
4)输入电路
通过两个电位器实现模拟电压0-5V的输入,在经过A/D转换变为数字信号。
图3电位器模拟输入
5)程序流程图:
图4程序流程图
4心得体会:
在这次两周的嵌入式课程设计中,经过我们我组成员的共同努力,并在老师的细心指导下,我们成功实现以ARM为控制器,采用中断方式,对2路0-5V的模拟电压进行循环采集,采集的数据送LED显示,并存入内存。
超过界限时指示灯闪烁的“ARM双通道数据采集系统设计”,将这些外设构成一个简单的ARM应用系统,画出接口的连接电路图。
在这过程中,我们都收获颇丰,从这学期学习《ARM嵌入式系统》这门课程开始,到这学期进行嵌入式课程设计结束,我们将以往书本上的知识成功应用到实践中去了,并且我们也对keil、proteus、ADS等软件进一步熟悉,掌握得更加牢固,对LPC2000系列ARM7的芯片有所了解,并可以初步的去运用它做一些小的程序编写;同时也发现个人能力还不足,还需更加努力地学习,特别是在编程方面还需要提高和进步,希望自己能再接再厉,不断提高个人能力。
在本次课设中,我也和很多同学一样遇到了重重困难,但是困难面前我们要学会理智。
仔细的想想是哪儿出了问题,并把问题一一解决,而且要有团结协作的精神,可以请教同学还有老师。
这是个教学相长的过程。
两周的课程设计虽然很是短暂,但是我们从中学习到的东西确实在过去的学习生活中未曾接触到的知识,所以,这次课设增强了我们对理论课程学习的兴趣。
我明白了,想要有熟练的操作,必须先有过硬的理论知识。
我也在这段时间发现了自己在学习方面的很多欠缺之处,我会继续努力学习,尽快的弥补上自己的不足。
在结束之际,我要谢谢老师在此过程中对我的帮助。
也希望学校以及学院多开设此类有益于学习的课程设计。
——李久艳
本学期为期两周的嵌入式课程设计在不知不觉中结束了,虽说这次课程设计时间不是很长,但是感觉自己收获颇丰,不仅学习到了一些新知识,回顾了以前的一些快要遗忘的知识点,而且使自己的学习目标更加明确,学习方法更加完善,也体会到软件开发的趣味,更加清楚地认识到了自己在软件开发及学习上的一些不足之处。
此次课程设计题目是ARM双通道数据采集系统设计。
课设的实施方式是团队分组合作,共同完成,让我们体验了一下团体开发项目的氛围。
虽说一些技术我们在课堂上也曾学习过,但是大多停留在理论学习上,实践机会很少,而这次课程设计给了我们一个很好的边学习边实践的机会,对我们深入学习这些知识有很大帮助,深刻体会到了这些技术的实用性。
每当自己成功调试一段代码或者通过自己的努力克服一个技术困难,都颇有收获感。
这次实训让我们体验了软件开发的全过程,发现自己的不足。
我很感谢学校特别是学院老师有实训这样的安排,把我们这一学期学的东西系统的集中的进行训练,经过这次的实训,我真真确确的感受到了计算机在我们生活中工作中的运用,这些软件、程序能让我们提高工作的效率,更直观更便捷的切入主题。
当然,在学习的过程中并不是一帆风顺的,在这之中,因为要操作的东西很多,有时错一步,后面的结果就无法显示,而自己的计算机水平还有待提高,根本检查不出来是哪里出了错!
这时候,老师都会耐心的过来帮助我!
在平时我们就需要好好的查阅书籍或者上网搜集相关资料去解决问题。
此次实训最大的收获不是我学习到了多少知识而是这几天实训给我的感悟:
首先是心态。
一定要有一个积极的心态,独立解决问题的意识,培养扎实基础的认识。
不要什么东西都感觉跟简单(很多东西可能是看似简单)就不去做了或者不屑一做,以至于性网上搜搜就可以了,这样很不好。
其次是兴趣,感觉学习工作中兴趣很关键,只是一个引发人积极性的问题,有了兴趣就自觉了,效率自然就高了。
再次要敢于尝试和挑战。
不要安于现成的程序,而且不要害怕失败,在程序调试的过程中这点尤为重要。
最后要不懈追求。
短短两周的课程设计很快结束了,我发现我对对嵌入式技术、对Linux都有了新的认识。
通过这次的实训,我了解到,要真真正正的掌握计算机程序还不是一件简单容易的事儿,但真正掌握后,它带给我们的将是无穷的便捷与科技,我会努力加油的!
感谢老师给我的帮助,让我的思想、技能又上了一个台阶。
——李晶璞
转眼为期两周的ARM7嵌入式系统课程设计已经结束,真正用于课程设计的时间是相当有限的。
虽然这过程还是有些辛苦,不过毕竟最后能看到自己的辛苦复出有了回报,因此还是觉得很值得。
这次的ARM7LPC2131嵌入式系统课程设计需要我们综合运用“ARM7LPC2131嵌入式系统”课程的知识,通过研究、查阅资料、方案论证与选定;设计思路的确定,程序的编写,调试程序;在设计中遇到很多问题,有很多知识都不了解。
一些命令的使用仍然不够熟练,总是有问题,有些错误不论怎么弄都不行,反而引来了更多错误。
通过这次课程设计进一步了解模拟linux环境嵌入式系统,ARM7LPC2131嵌入式系统开发流程有了大对体的认识,能够熟练使用一些操作平台中的常用命令,这对我以后进一步学习linux嵌入式系统开发打下了很好的基础。
本次课设虽然时间不长,却学到了许多知识,在老师的帮助下这次课设也做得十分成功。
经过这次课程设计感觉收获良多。
它让我深刻的感觉到学好嵌入式系统是不容易的,同时也在一定程度上加强了同学之间的合作。
课程设计是需要我把所学的知识灵活运用的,它也需要我们能够把知识结合起来,不然是无法设计出一个符合要求的系统来的。
但一个人的力量毕竟有限,同学之间的合作自然也是不可缺少的。
经过这两周的课程设计,感觉有些累的。
虽然这已不是我第一次参加课程设计了,但随着次数的增多我愈觉得课程设计是一项体力与脑力相结合的活动。
它需要我们花费大量脑力去学习设计,随后的整理与总结也是相当复杂的,是脑力与体力的双重考验。
总得来说,这次课程设计总的感觉还是很圆满的。
——石雪玉
课程设计是培养学生综合运用所学知识、发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着网络在人们生活中的运用越来越广泛和嵌入式技术在日常生活中的地位日益凸显。
这对我们这些学习有关网络以及计算机来说既是一种挑战,又是一个难得的机会。
通过这次嵌入式的课程设计让我们初步了解ARM7LPC2131的工作原理,掌握了一些编程能力。
对我们的网络编程有了很大的提高,与此同时,我们还学到了一些专业知识之外的东西。
在课程设计过程中,我们了解到课程设计不光光是埋头做设计,也是同学之间互相学习和互相交流经验和知识的机会。
也是我们大家向老师提出疑问和学以致用的机会,这让我们不会成为只知道理论而不会将理论化为实践中去的书呆子。
我觉得课程设计就是一个复习课堂上学到知识的机会,也是一个加强学生动手能力设计的机会。
更是一个让学习得到升华的过程。
在该次课程设计的初期,我们将任务分配好,每个人各就其职,各尽所能。
当然,在一开始我们就遇到了一些问题,解决问题的方法是跑到图书馆查看有关书籍,或上网查阅有关信息,或请教老师。
终于在大家的相