基于加速度传感器和单片机的设计毕业设计.doc

上传人:文库蛋蛋多 文档编号:3939665 上传时间:2023-03-28 格式:DOC 页数:70 大小:1.31MB
返回 下载 相关 举报
基于加速度传感器和单片机的设计毕业设计.doc_第1页
第1页 / 共70页
基于加速度传感器和单片机的设计毕业设计.doc_第2页
第2页 / 共70页
基于加速度传感器和单片机的设计毕业设计.doc_第3页
第3页 / 共70页
基于加速度传感器和单片机的设计毕业设计.doc_第4页
第4页 / 共70页
基于加速度传感器和单片机的设计毕业设计.doc_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《基于加速度传感器和单片机的设计毕业设计.doc》由会员分享,可在线阅读,更多相关《基于加速度传感器和单片机的设计毕业设计.doc(70页珍藏版)》请在三一办公上搜索。

1、目录摘要IAbstractII第1章 绪论11.1 课题背景11.2 课题目的与意义21.3 课题研究现状31.4 本文主要内容及结构安排5第2章 硬件设计62.1 硬件器件的选择62.1.1 SPCE061A单片机62.1.2 MMA7260QT三轴加速度传感器102.2 系统电路的连接112.3单片机控制单元的硬件设计132.3.1 输入/输出控制单元设计132.3.2 模拟数字转换设计162.3.3 DAC方式音频输出设计232.4 传感器控制单元设计242.5 本章小结26第3章 软件设计273.1 软件系统的开发设计273.2 音频设计293.2.1 音频处理方案293.2.2 语音

2、自动播放函数设计303.2.3 语音文件压缩设计333.3 I/O接口及A/D转换设计343.3.1 I/O接口设计343.3.2 A/D转换设计343.4 主程序设计363.5 本章小结40结论41参考文献43致谢45附录一:46附录二:63摘要现代快节奏的生活和工作中,人们往往承受着巨大的压力。本设计拟采用SPCE061A开发板控制加速度传感器实现一个“出气宝宝”系统,在人们发泄情绪打击“出气宝宝”的时候,根据打击力度发出对应的“哭声”。这样,人们以娱乐的方式合理表达了攻击性实现了心理调节。整个系统主要由SPCE061A开发板与加速度传感器两大模块来实现。外部的“击打”会使传感器输出模拟电

3、压信号。61板通过I/O接口读入信号,经过A/D转换和程序处理,提取出能表征外部运动程度的量,并以此控制音频函数中的音量指数,改变扬声器的“哭声”大小。系统设计的内容大致可分为硬件设计与软件设计两部分。硬件设计主要包括外围电路的设计与连接,对I/O接口、A/D转换、音频输出的数据单元控制。软件设计主要包括自动声音播放函数、声音文件的压缩与连接、I/O接口与A/D转换的设置、主程序函数的编写等。经过整个系统连接调试,摇动传感器,扬声器发出“哭声”,且音量大小与运动剧烈程度正相关,系统的基本功能实现。关键词:SPCE061A;加速度传感器;I/O接口;A/D转换;音频AbstractWith th

4、e fast pace of modern life and work, people are often under huge pressure.This design uses SPCE061A development board to control acceleration sensor to realize a venting baby system. When the emotional outburst people strike venting baby, the system could give out corresponding cries according to th

5、e degree of blow. So, people express their aggressiveness in reasonable way to realize psychological adjustment.The system mainly consists of SPCE061A development board module and acceleration sensor module. External strike will make sensor output analog signal. 61 board reads signals through the I/

6、O interface, and extracts a value which can characterize the amount of movement level outside after A/D conversion and process. Then the value could control the volume index of audio function to change the sound size of the cries.The design of the System can roughly content of hardware design and so

7、ftware design. The hardware design includes outer circuit design and connection.We shoud also understand the performance of I/O port, A/D conversion and audio output. Software design includes automatic sound function, sound files compressed and connection, I/O interface and A/D conversion, main prog

8、ram function, etc.Through the entire system commissioning, shaking sensors, speaker gives out cries, and the volumeare positively related to the intensity of movement. Then we realize the basic function of the system.Keywords: SPCE061A;acceleration sensor;I/O interface;A/D conversion;audio第1章 绪论1.1

9、课题背景随着时代的进步,人们自我认知水平的不断提高,心理问题逐渐引起了人们的广泛关注。多年前,不健康的成长环境、先天的生理缺陷等情况就一直是心理问题的主要成因。而近年来,由于生活、工作、学习的节奏加快,人们往往承受着巨大的压力。心理问题也就被摆到一个更为普遍的层次,任何人都或多或少的承受着心理方面的负担。心理问题往往引起一些不正常的反应。人们会难以集中注意力、容易分神、记忆力减退、选择性思维失调、期待性焦虑、郁郁寡欢、冷漠偏执、自卑多疑、消沉空虚、无端烦恼、遇事暴躁尤其令人担忧的是,具有心理问题的人还会容易狂热和冲动,对外界产生敌对情绪,且常常带有攻击性。近年来社会上由于心理问题造成的悲剧,引

10、起了人们的普遍重视。合理的调节心理、控制情绪,对实现人的全面发展、对改善人际交往关系、对我国构建和谐社会都有着积极的作用。生活中矛盾和事件所引起的心理反应,主要是情绪反应,所以心理调节和控制的最基本点,可以说是调节和控制情绪。其中,情绪的舒缓与疏导显得尤为重要。当人们承受着巨大的精神压力时,可以用合理的方式把这种压力表达释放出来。情绪的释放有多种方式,比如说找人谈话、培养乐观生活态度等。而通过玩具等辅助手段来释放情绪的方法也越来越引起人们的关注。这种方式不仅简单方便、易于操作,还具有很多趣味性。在当今的市场中,情绪调节类的玩具多种多样。但是,其中大多数的设计原理都比较简单。比如说,有的是基于一

11、些常见的物理学现象,有的则纯粹以外观设计取胜。通观整个情绪调节类玩具的市场,其中依靠芯片控制的智能玩具的开发尚属少数。因此,设计情绪调节类的玩具,也便在智能化方向上出现了创新的空间,昭示了很广阔的市场前景。智能化情绪调节类玩具的优点是很突出的。通过微控制器控制的智能玩具可以进行内部数据处理,控制产生不同的效果。若再辅以各类外部传感器模块的特殊功能,智能玩具还可以与用户进行多种方式的互动1。这样一来,智能玩具在改善用户情绪方面,无疑会带来显著的作用。1.2 课题目的与意义本设计拟采用SPCE061A开发板控制加速度传感器实现一个“出气宝宝”系统,在人们发泄情绪打击出气宝宝的时候,根据打击力度发出

12、对应的“哭声”。通过这样的方式,人们以娱乐的方式合理表达了攻击性,发泄了内心的种种压抑情绪,进而实现了心理调节。为了达到使用户发泄情绪的目的,本系统需要检测、读取外部的打击力,并根据该打击力的大小发出对应音量的“哭声”。外力信息的采集与转化需要通过设计加速度传感器模块来实现。我们把SPCE061A开发板作为本次设计的核心部分。SPCE061A开发板的输入输出接口、模数转换以及音频发声等功能都作为系统设计中的重点。通过SPCE061A开发板对传感器输出的电压数据进行读取、转化、分析,便可以控制播放压缩好的“哭声”。本设计最终的目的是一方面使用户合理表达了攻击性,释放了情绪;另一方面通过“哭声”的

13、回应,得到慰藉或娱乐的效果。所谓的“哭声”,通常理解为事先准备好的哭声音频,可以是婴儿哭声、男声、女声。而广义的“哭声”又可以理解为一段音乐或者幽默的语句。这样的设计,无疑更增加了产品的趣味性与娱乐效果,从而更好的实现了调节情绪的目的。基于SPCE061A的“出气宝宝”系统设计,可以看作是一款智能玩具的开发。该系统具有调节心理、缓解情绪的作用,适应了当代心理问题比较突出的社会现实。这样的开发设计无疑拥有开阔的市场和广大的受用人群,会对调节人们的心理健康、改善人们的工作学习氛围、增进生活氛围的和睦、乃至促进社会和谐都有着重要的意义。1.3 课题研究现状基于SPCE061A的智能玩具设计,尤其是调

14、节情绪类玩具的设计,目前在国内外市场上都比较罕见。鉴于本设计的思路比较新颖,同类产品的应用设计较少,我们对课题研究状况的介绍将主要围绕设计的关键部分,即凌阳SPCE061A单片机与加速度传感器的发展应用来展开。随着单片机功能集成化的发展,其应用领域也逐渐由传统的控制扩展为控制处理、数据处理以及数字信号处理(DSP,Digital Signal Processing)等领域。凌阳的16位单片机就是为适应这种发展而设计的。它的CPU内核采用最新推出的Microcontroller and Signal Processor16位微处理器(以下简称nSP)通用核结构。nSP的指令系统提供具有较高运算速

15、度的16位16位乘法运算指令和内积运算指令,为其应用增添了DSP功能,使得nSP系列运用在复杂的数字信号处理方面很便利,内嵌32K字的闪存(FLASH),能够非常容易地、快速地处理复杂的数字信号。其汇编指令近似C语言,具有较高的C语言编程效率。而且它还有I/0口功能丰富、集成度高、体积小、可靠性好、功耗低且性能价格比高等特点。因此,以nSP为核心的SPCE061A微控制器是适用于录音、放音、数字语音识别应用领域产品的一种最经济的选择。目前已经投入国内外市场的产品,包括语音播报温度计、智能交通灯、嵌入式汽车运营图片信息采集系统、数码语音录音及播放系统、空调智能控制系统等。可以说基于SPCE061

16、A的“出气宝宝”的设计与上述产品的技术手段、基本原理相类似。然而就应用角度来说,“出气宝宝”思路新颖,具有一定的创新性和时代特色,昭示了广阔的市场前景2。加速度传感器是一种能够测量加速力的电子设备。加速力就是当物体在加速过程中作用在物体上的力。加速力可以是个常量,比如g,也可以是变量。概括起来,加速度传感器可应用在控制,手柄振动和摇晃,仪器仪表,汽车制动启动检测,地震检测,报警系统,玩具,结构物、环境监视,工程测振、地质勘探、铁路、桥梁、大坝的振动测试与分析;鼠标,高层建筑结构动态特性和安全保卫振动侦察上。多数加速度传感器是根据压电效应的原理来工作的。所谓的压电效应就是:对于不存在对称中心的异

17、极晶体加在晶体上的外力,除了使晶体发生形变以外,还将改变晶体的极化状态,在晶体内部建立电场,这种由于机械力作用使介质发生极化的现象称为正压电效应。当然,还有很多其它方法来制作加速度传感器,比如压阻技术,电容效应,热气泡效应,光效应,但是其最基本的原理都是由于加速度产生某个介质产生变形,通过测量其变形量并用相关电路转化成电压输出3。 本系统设计所采用的MMA7260QT三轴加速度传感器就是利用了压电效应的原理。由于加速度造成的晶体变形会产生电压,只要计算出产生电压和所施加的加速度之间的关系,就可以将加速度转化成电压输出。又由惯性定理可知:A(加速度)=F(惯性力)/M(质量)。这样,在质量M为已

18、知常量的前提下,加速度与外力成正比例关系。输出电压对应着加速度的线性变化,也同样对应着外力的线性变化。机械力也就转化成可以控制单片机的电信号,达到了系统设计的要求4。1.4 本文主要内容及结构安排本文着重于对基于SPCE061A“出气宝宝”系统设计的阐明,详细介绍了设计的思路、方法与具体的流程。本文的主要内容也是以实际设计为骨架,辅以对必要知识的介绍,构成了一个重点突出、条理鲜明、内容丰实的整体。通观全篇,整个系统的设计可大致分为硬件设计与软件设计两部分。硬件设计包括外部电路的设计与连接、单片机的I/O口设计、AD转换设计、音频设计、传感器电路等。软件设计包括I/O输入的初始化、AD转换的初始

19、化、传感器输入数据的处理、声音播放函数的编写、音频的压缩与调用等。本文的结构主要安排为三章,具体内容分布如下:第一章:绪论,阐述课题的开发背景,提出该课题的研究依据和意义;介绍了SPCE061A与单片机的发展现状;内容概述对整篇论文起提纲挈领。第二章:硬件设计,主要包括硬件元器件的选取、系统整体外围电路的连接、单片机中各控制单元的实现以及传感器的电路等。第三章:软件设计,主要分为软件系统的开发、音频的设计、I/O口与A/D转换的定义、主程序设计四方面的内容。第2章 硬件设计2.1 硬件器件的选择本次设计的整个系统主要由SPCE061A开发板和加速度传感器模块两部分构成。因此,硬件器件我们选择了

20、61板和MMA7260QT三轴加速度传感器。61板是SPCE061A EMU BOARD的简称,是以凌阳16位单片机SPCE061A为核心的精简开发仿真实验板,除了具备单片机最小系统电路外,还包括有电源电路、音频电路(含MIC输入部分和DAC音频输出部分)、复位电路等,采用电池供电。MMA7260QT三轴小量程加速传感器是检测物件运动和方向的传感器,它根据物件运动和方向改变输出信号的电压值。对于本设计来说,能够较为精确地出反映“出气宝宝”受击打力后的运动情况。下面,我们将对所选的这两部分硬件结构分别予以介绍。2.1.1 SPCE061A单片机SPCE061A是一款16位结构的微控制器,主要包括

21、输入/输出端口、定时器/计数器、数/模转换、模/数转换、串行设备输入输出、通用异步串行接口、低电压监测和复位等部分,并且内置在线仿真电路ICE接口,较高的处理速度使其能够快速的处理复杂的数字信号5。图2-1 61板框图我们在设计中选择的硬件是以凌阳16位单片机SPCE061A为核心的精简开发仿真实验板,简称61板,其硬件框图如图2-1所示。它是“凌阳科技大学计划”专为大学生、电子爱好者等进行电子实习、课程设计、毕业设计、电子制作及电子竞赛所设计的,也可作为单片机项目初期研发使用。关于61板的硬件框图说明如表2-1所示。表2-1 61板框图简要说明POWER5v&3.3v供电电路PLL锁相环外部

22、电路*PowerPower-电源指示灯*SleepSleep-睡眠指示灯K4复位按键RESET复位电路S5EZ_PEOBE和PROBE切换的3pin单排针PROBE在线调试器串行5pinEZ_PROBE下载线的5pin接口J32pin喇叭插针MIC麦克风输入电路DAC一路音频输出电路VRTA/D转换外部参考电压输入接口OSC32768晶振电路K1-K3扩展的按键:接IOA0-IOA2R/C其它外围电阻电容SPCE061A61板核心:16位微处理器PORTA/B32个I/O口61板的核心是凌阳16位单片机SPCE061A,封装形式为PLCC84,具有丰富的功能引脚。图2-2中显示了61板上的各个

23、接口分布。其中输入/输出(I/O)接口、音频输入/输出接口等在实验设计中经常用到。下面我们将就本次设计中重点应用到的接口作简要的说明。输入/输出(I/O)接口。61板将SPCE061A的32个I/O口全部引出:IOA0IOA15,IOB0IOB15。在引脚分布图(可参考61板说明书,这里不重点说明)中,对应的SPCE061A引脚为:A口,4148、53、5460;B口,51、8176、6864。而且该I/O口是可编程的,即可以设置为输入或输出:设置为输入时,分为悬浮输入或非悬浮输入,非悬浮输入又可以设置为上拉输入或是下拉输入;在5V情况下,上拉电阻为150K,下拉电阻为110K;设置为输出时,

24、可以选择同相输出或者反相输出。图2-2 SPCE061A的接口音频输入/输出接口。正如我们在前面介绍的61板具有强大的语音处理功能,如图2-2所示,X1是语音的MIC输入端,自带自动增益(AGC)控制,J3是语音输出接口,一个2pin的插针外接喇叭,由DAC输出引脚21或2经语音集成放大器SPY0030A放大,然后输出,SPY0030A是凌阳的一款芯片,功能相当于LM386, 但是比LM386音质好,它可以工作在2.46.0V范围内,最大输出功率可达700mW。线调试器PROBE和EZ_PROBE接口。在图2-2中J4为PROBE的接口,该接口有5pin,我们就是通过它将PROBE与PC机连接

25、起来进行调试、仿真和下载程序的。这样,就不需要再用仿真器和编程器了。图2-2中的J11是EZ_PROBE的接口,我们提供一根下载线用作程序的下载,一端连接PC机的25pin并口,另外一端接61板的5pin EZ_PROBE接口。电源接口。图2-2中J10是电源接口,61板的内核SPCE061A电压要求为3.3V, 而I/O端口的电压可以选择3.3V也可以选择5V。所以,在板子上具有两种工作电压:5V和3.3V。对应的引脚中15、36和7必须为3.3V,对于I/O端口的电压51、52、75可以为3.3V也可以是5V,这两种电平的选择通过跳线J5来选择。61板的供电电源系统采用用户多种选择方式:即

26、5V供电和3.3V供电两种供电方式。5V供电时,用户可以用3节电池来供电,5V直流电压直接通过SPY0029稳压到3.3V,为整个61板提供了5V和3.3V两种电平的电压。另外也可以直接外接5V的直流稳压源供电,5V电压再通过SPY0029稳压到3.3V。3.3V供电时用户可以提供直流3.3V电压为实验板进行供电,此时整个板子只有3.3V电压,I/O端口电压此时只有一种选择。需要注意的是由于SPY0029A最大输出电流为50mA,所以如果需要外接一些模组时要先考虑负载能力。外部复位。复位是对61板内部的硬件初始化,61板本身具有上电复位功能,即通电就自动复位,另外,还具有外部复位电路,即在引脚

27、6上外加一个低电平就可令其复位。如图2-2中的RESET按键。2.1.2 MMA7260QT三轴加速度传感器MMA7260QT3轴小量程加速传感器是检测物件运动和方向的传感器,它根据物件运动和方向改变输出信号的电压值。各轴的信号在不运动或不被重力作用的状态下(0g),其输出为1.65V。如果沿着某一个方向活动,或者受到重力作用,输出电压就会根据其运动方向以及设定的传感器灵敏度而改变其输出电压。用单片机的A/D转换器读取此输出信号,就可以检测其运动和方向。本次设计中加速度传感器模块的各接口分布如图2-3所示。图2-3 MMA7260QT传感器的接线端可见,传感器模块引脚丰富。各个接口的定义如下:

28、引脚Z表示z轴方向电压输出;引脚Y表示y轴方向电压输出;引脚X表示x轴方向电压输出;S1、S2表示传感器灵敏度选择信号;3.3V引脚表示输入电压,同时可以接到单片机AD参考电压端;5V引脚表示电源输入;GND引脚表示接地;SL引脚表示传感器休眠与否选择,如果不接,默认为工作状态6。MMA7260QT三轴加速度传感器可以在四种不同灵敏度之间进行选择。根据在引脚S1和引脚S2上的逻辑输入,装置的内部增益将会发生变化,使得该装置在1.5g,2g,4g或6g四种不同的灵敏度下进行工作。(如表2-2所示)。一些产品在应用过程中为了达到最佳工作性能,需要不同的灵敏度。加速度选择特性对于这些产品是相当理想的

29、。在产品工作的过程中,可以在任意时候改变加速度的灵敏度。对于那些只需要1.5g灵敏度的应用来说,S1和S2两个引脚可以被空置,因为装置内部有一个下拉电路使其保持在1.5g的灵敏度(800mV/g)。表2-2 加速度选择引脚说明S1S2加速度选择范围灵敏度001.5g800 mV/g012g600 mV/g104g300 mV/g116g200 mV/g2.2 系统电路的连接图2-4 系统结构图选择好了设计中所用原器件,了解了其大致性能,下面我们将讨论整个系统外部电路的连接。整个系统基本上主要由传感器模块、61板两部分组成。必要的时候可添加外扩存储器模块。加速度传感器模块三路数据传入61板,控制

30、扬声器发声。整个系统中数据传送的路径结构如图2-4所示。硬件设计时,首先应对单片机进行自检测试。确保输入输出端口以及AD转换等功能正常后,即可进行系统电路连接。61板的输入输出接口部分,是61板与外部电路进行信息交换的出入通道,我们应把插线的一段连接在输入输出口上。而对于加速度传感器模块来说,本设计基本功能的实现只需要X轴、Y轴、Z轴、电源、接地五个引脚。其他的引脚,如加速度选择、睡眠模式等可作为本系统的优化方向进行考虑,我们在现阶段的电路图连接与分析中不做显示。把插线的另一端与加速度传感器的上述五个引脚相连接。由于加速度图2-5 系统外部电路连接原理图传感器模块的电压输出满足61板的输入要求

31、,这里不需要功率放大器。整个系统的外部电路连接如图2-5表示。2.3单片机控制单元的硬件设计SPCE061A单片机是本次设计的核心部件。对其硬件的了解与设置直接关系到系统性能的实现。以下将对本次设计中应用到的输入/输出接口、模拟数字转换器ADC、凌阳音频等部分做重点的知识介绍与设计说明。2.3.1 输入/输出控制单元设计输入/输出接口(也可简称为I/O端口)是单片机与外设交换信息的通道。输入端口负责从外界接收检测信号、键盘信号等各种开关量信号。本次设计中传感器的信号正是由输入端口传入内部电路。输出端口负责向外界传送由内部电路产生的处理结果、显示信息、控制命令、驱动信号等。SPCE061A的输入

32、/输出接口包含了多种控制单元,其结构如图2-6所示。图2-6 I/O结构示意图SPCE061A有两个16位的通用并行I/O口:A口和B口。这两个端口的每一位都可通过编程单独定义成输入或输出口。其中,A口的IOA0IOA7作为输入端口时,具有唤醒功能,即当输入电平发生变化时,会触发CPU中断。本次设计中选用A口作为输入口7。SPCE061A提供了位控制结构的I/O端口,每个独立的位用于数据输入还是输出,可通过以下3种控制向量来作设定:数据向量Data、属性向量Attribution、方向控制向量Direction。每3个对应的控制向量组合在一起,形成一个控制字,用来定义相对应I/O端口位的输入输

33、出状态和方式。与其它的单片机相比,SPCE061A除了每个I/O口可以单独定义其状态外,每个对应状态下的I/O端口性质电路都是内置的,在实际的电路中不需要再外接。这为系统的硬件设计带来了很大的方便。A口和B口的Data、Attribution和Direction的设定值均在不同的寄存器里,用户在进行I/O端口设置时要特别注意这一点。I/O端口的组合控制设置如表2-3所示:表2-3 I/O端口的控制向量组合DirectionAttributionData功能是否唤醒功能描述000下拉是带下拉电阻的输入引脚001上拉是带上拉电阻的输入引脚010悬浮是悬浮式输入引脚011悬浮否悬浮式输入引脚100高

34、电平输出(带数据反相器)否带数据反相器的高电平输出101低电平输出(带数据反相器)否带数据反相器的低电平输出110低电平输出否带数据寄存器的低电平输出111高电平输出否带数据寄存器的高电平输出其中,当Direction、Attribution和Data的设定值为011时,悬浮输入作为ADC IOA06的输入。下面就各个控制单元的功能实现作简要说明。P_IOA_Data(读/写)(7000H)。A端口的数据单元,用于向A口写入或从A端口读出数据。当A口处于输入状态时,读出是读A口引脚电平状态;写入是将数据写入A端口的数据寄存器。当A口处于输出状态时,写入输出数据到A端口的数据寄存器。P_IOA_

35、Buffer(读/写)(7001H)。A端口的数据向量单元,用于向数据向量寄存器写入或从该寄存器读出数据。当A口处于输入状态时,写入是将A端口的数据向量写入A端口的数据寄存器;读出则是从A端口数据寄存器内读其数值。当A口处于输出状态时,写入输出数据到A端口的数据寄存器。对输出而言,P_IOA_Data与P_IOA_Buffer是一样的。但对输入而言,P_IOA_Data读的是IO的值,P_IOA_Buffer读的是buffer内的值。假设IOA0作为输出,并去接LED阳极(LED阴极接地)。若P_IOA_Data的IOA0为1。 在某些需要较大驱动能力的LED而言,LED会亮,但IOA0会被拉

36、到一个很低的值。此时从P_IOA_Data读回为0,但P_IOA_Buffer则为1。读回的意义是是方便做其它的IO运算。P_IOA_Dir(读/写)(7002H)。A端口的方向向量单元,用于用来设置A口是输入还是输出,该方向控制向量寄存器可以写入或从该寄存器内读出方向控制向量。Dir位决定了端口位的输入/输出方向:即0为输入,1为输出。P_IOA_Attrib(读/写)(7003H)。A端口的属性向量单元,用于A端口属性向量的设置。方向向量_Dir、属性向量_Attrib和数据向量_Data分别代表三个控制口。这三个端口中每个对应的字节合在一起,形成一个控制字,来定义相对应I/O端口位的输入

37、/输出状态和方式。表3-1具体表示了如何通过对I/O口的_Dir、_Attrib以及_Data进行编程,来设定端口位的输入/输出状态和方式。由表3-1可以得出以下一些结论:_Dir位决定了端口位的输入/输出方向:即0为输入,1为输出。_Attrib位决定了在端口位的输入状态下是为悬浮式输入还是非悬浮式输入:即0为带上拉或下拉电阻式输入,而1则为悬浮式输入。在端口位的输出状态下则决定其输出是反相的还是同相的;0为反相输出,1则为同相输出。_Data位在端口位的输入状态下被写入时,与_Attrib字节合在一起形成输入方式的控制字00、01、10、11,以决定输入端口是带唤醒功能的上拉电阻式、下拉电

38、阻式或悬浮式以及不带唤醒功能的悬浮式输入。_Data位在端口位的输出状态下被写入的是输出数据,不过,数据是经过反相器输出还是经过同相寄存器输出要由_Attrib位来决定。本次设计中,以A口中06的任意3个引脚作为输入引脚,以传入外部加速度传感器中X、Y、Z三个方向上的数据。传入的数据需要进行AD转换,因此输入引脚的功能应该定为“不带唤醒功能的悬浮式输入”。方向向量_Dir、属性向量_Attrib和数据向量_Data的设定值为011。2.3.2 模拟数字转换设计SPCE061A有8个10位ADC通道,其中一个通道(MIC_In)用于语音输入,模拟信号经过自动增益控制器和放大器放大后进行A/D转换

39、。其余7个通道(Line_In)和IOA06引脚共享,可以将输入的模拟信号(如电压信号)转换为数字信号。SPCE061A的A/D转换范围是整个输入范围。无效的A/D模拟信号(超过VDD+0.3V或是低于VSS-0.3V)将影响转换电路的工作范围,从而降低ADC的性能。由于Line_In通道和IOA06共享引脚,建议用户选择其它的IO引脚(非IOA06),以避免由于无效的IO信号造成电压不稳(超过VDDIO+0.7V或低于VSSIO-0.7V)而降低ADC的性能。ADC的最大输入电压由P_ADC_Ctrl(写)(7015H)的第7和第8位的值决定。第7位VEXTREF决定了ADC的参考电压为AV

40、dd或是外部参考电压。第8位V2VREFB决定了2V电压源是否起作用。如果起作用,用户可向VEXTREF引脚输入2V电压。此反馈回路把ADC的最高参考电压设置为2V。如果用户指定的参考电压源的值不超过AVdd,它还可以被当作ADC的最高参考电压。在ADC内,由DAC0和逐次逼近寄存器SAR组成逐次逼近式模拟数字转换器(SAR ADC)。向P_ADC_Ctrl(写)(7015H)单元第0位(ADE)写入1,可以启用ADC。系统的默认值为ADE=0(关闭ADC)。当ADE=1时,应对P_ADC_Ctrl和P_ADC_MUX_Ctrl的其它控制位进行合理的设置。通过设置P_ADC_MUX_Ctrl(

41、写)(702BH)的第02位,可以为A/D转换选择输入通道。通道包括MIC_In和Line_In两种。工作时,如果MIC_In通道和Line_In通道都处于直接工作模式,程序会检查P_ADC_Ctrl的第15位。只有当目前的AD转换完成后,才能切换通道。当MIC_In通道处于定时器锁存状态时,它可以优先存取ADC。用户就可以从P_ADC_MUX_Ctrl的FailB位得知,Line_In ADC是否被MIC_In ADC打断。用户可通过读取P_ADC(读)(7014H)单元,取得从MIC_In通道输入的模拟信号转换结果。用户可通过读取P_ADC_LINEIN_Data(读)(702CH)单元,

42、取得从指定的Line_In通道输入的模拟信号转换结果。选择MIC_In通道后,可通过设置P_DAC_Ctrl(写)(702AH)的第3和4位,选择A/D转换的触发事件。当P_ADC(读)(7014H)单元的数据被读取/TimerA/TimerB事件发生后,可执行A/D转换。然而,在选择Line_In通道后,只有在读取P_ADC_LINE IN_Data(读)(702CH)单元的内容后,才执行A/D转换,且不能使用定时器锁存数据。进入睡眠状态后,ADC被关闭(包括AGC和VMIC)。注意,供电复位后不论ADC是否被启用,VMIC信号都预设为ON。VMIC用于向外部的MIC提供电源,VMIC=AV

43、DD。即,VMIC的状态和ADC的状态无关。所以,不使用VMIC时,用户须把P_ADC_Ctrl单元的第1位MIC_ENB设为1,以关闭VMIC。硬件ADC的最高速率限定为(Fosc/32/16)Hz,如果速率超过此值,当从P_ADC(读)(7014H)/P_ADC_LINEIN_Data(读)(702CH)单元读出数据时会发生错误。P_ADC_Ctrl(写)(7015H)单元的第5位DAC_OUT,可用来选择两通道音频DAC的最大输出。最大输出电流可为2mA或是默认的值3mA。DAC_OUT的设置可改变DAC输出的功率。在ADC自动方式被启用后,会产生出一个启动信号,即RDY=0。此时,DA

44、C0的输出电压与外部输入电压进行比较,以尽快找出外部电压的数字值。逐次逼近式控制首先将SAR中数据的最高有效位设为1,而其它位全设为0,即1000000000B。这时DAC0输出电压VDAC0为1/2最大值,用来与输入电压Vin进行比较。如果VinVDAC0,则保持原先设置为1的位(最高有效位)仍为1;否则,该位会被清为0。接着,逐次逼近式控制又将下一位试设为1,其余低位依旧设为0,即1100000000B,VDAC0与Vin进行比较的结果若VinVDAC0,则仍保持原先设置位的值,否则该位便清为0。这个逐次逼近的过程一直会延续到10位中的所有位都被测试之后,A/D转换的结果便会保存在SAR内

45、。当10位A/D转换完成时,RDY会被设1。此时,用户通过读取P_ADC (7014H)或P_ADC_MUX_Data(702CH)单元可以获得10位的A/D转换数据。而从该单元读取数据后,又会使RDY自动清为0来重新开始进行A/D转换。若未读取P_ADC(7014H)或P_ADC_MUX_Data(702CH)单元中的数据,RDY仍会保持为1,并且不会启动下一次的A/D转换。外部信号是由LIN_IN17即IOA06或通道MIC_IN输入。从LIN_IN17输入的模拟信号直接被送入缓冲器P_ADC_MUX_Data(702CH);从MIC_IN输入的模拟信号则要经过缓冲器和放大器。放大器的增益

46、值可由外部线路来调整,因此AGC可以控制MIC_In输入信号的值在一定的范围内8。P_ADC(读/写)(7014H)。P_ADC单元(如表3-2所示)储存MIC输入的A/D转换数据。逐次逼近式的ADC由一个10位DAC(DAC0)、一个10位寄存器DAR0、一个逐次逼近寄存器SAR和一个比较器COMP组成。表2-4 P_ADC单元b15 - b6b5 b0DAR0(读/写)-P_ADC(读):读本单元实际为A/D转换输出的10位数。若P_DAC_Ctrl单元第3、4位被设为00,那么在转换过程里读出本单元(7014H)亦会触发A/D转换重新开始。P_ADC_Ctrl(读/写)(7015H)。P

47、_ADC_Ctrl单元(如表2-5和表2-6所示)为ADC的控制口。其中,b15为RDY(读),b8为V2VREFB(写),b7为VEXTREF(写),b6为DAC_OUT(写),b2为AGCE(写),b1为MIC_ENB(写),b0为ADE(写)。表2-5为电压控制部分,2-6为数模转换部分表2-5 P_ADC_Ctrl单元(电压控制部分)b8b7b6b2控制功能描述0-打开2V电压输出,其可作外部AD参考电压输入1-关闭2V电压输出(预设)-0-不使用外部参考电压,AD参考电压为Vdd(预设)-1-启用外部参考电压引脚,从VEXTREF脚输入外部参考电压0-DAC电流=3mA VDD=3V(预设)1-DAC电流=2mA VDD=3V-0取消AGC自动增益控制(预设)-1启用AGC自动增益控制表2-6 P_ADC_Ctrl单元(数模转换部分)b15b1b0控制功能描述0-10 位模拟数字转换未完成

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号