基于stm32单片机声源方向识别器设计与实现毕业设计论文内容摘要:
位的计算方法。 (2)音频放大模块 因为声音信号经麦克风转换为电压信号以后是毫伏级的 , STM32 单片机中的 ADC 端口不能分辨出如此小的电压,故音频前置放大电路是声源定位系统中必不可少的。 由于所选择的麦克风频率范围为20~ 16KHz,为保证放大电路在麦克风的 频率范围内都能正常工作,所选择的运算放大器应有足够宽的带宽。 另外,所选择的模拟运算放大器应该具有较高的信噪比,以满足系统对采集信号的精度要求。 本系统的运算放大器选用的是德州仪器 TL084C,该放大器满足了系统所要求的增益和带宽要求,同时具有较宽的电源电压工作范围,保证了放大电路有着很宽的线性工作区。 模拟运算放大芯片 084C为四输入运算放大器,具有较高的转换率, INn+为同相输入端, INn为反相输入端, OUTn 为输出端, 硬件电路中使用 两个084C,可根据声音信号的大小决定采用一级放大还是两级放大。 将麦克 风接到放大器的输入端,经放大后与单片机相连,作为模拟信号的输入端。 麦克风阵列拾取声源信号采样和 A / D 转换模块音频信号放大模块声源定位算法处理模块第 2 章 声源定位系统的技术基础 9 (3)采样和 A/D 转换模块 声源信号为模拟信号,在 STM32 单片机中实现声源定位的计算,则需要将模拟信号转换为数字信号,从而进行接下来的数字信号处理环节。 该模块的作用就是对模拟信号进行等间隔采样,将模拟信号转换为数字信号,为接下来的定位计算提供可用数据。 (4)声源定位算法处理模块 该模块主要对采集到的数据进行数字信号处理,依据声源定位算法,进而计算出声源的位置信息。 STM32 单片机 简介 STM32F103 系列微处理器是首款 基于 ARMv7 M 体系结构的 32 位标准 RISC (精简指令集 )处理器 , 提供很高的代码效率 , 在通常 8 位和 16 位系统的存储空间上发挥了 ARM 内核的高性能。 该系列微处理器工作频率为72MHz, 内置高达 128K 字节的 Flash存储器和 20K 字节的 SRAM, 具有丰富的通用 I /O 端口。 作为最新一代的嵌入式 ARM 处理器 , 它为实现 MCU 的需要提供了低成本的平台、缩减的引脚数目、降低的系统功耗 ,同时提供了卓越的计算性能和先进的中断响应系统。 丰富的片上资源使得STM32F103 系列微处理器在多种领域如 电机驱动、实时控制、手持设备、PC游戏外设和空调系统等都显示出了强大的发展潜力 [6]M32F103系列微处理器主要资源和特点如下 : (1)多达 51 个快速 I /O 端口 , 所有 I/O 口均可以映像到 16 个外部中断 , 几乎所有端口都允许 5V 信号输入。 每个端口都可以由软件配置成输出 (推挽或开漏 )、输入 (带或不带上拉或下拉 ) 或其它的外设功能口。 (2)2个 12位模数转换器 , 多达 16个外部输入通道 , 转换速率可达 1MHz, 转换范围为 0~。 具有双采样和保持功能。 内部嵌入有温度传感器 ,可方便的测量处理器温度 值。 (3)灵活的 7 路通用 DMA 可以管理存储器到存储器、设备到存储器和存储器到设备的数据传输 ,无须 CPU任何干预。 通过 DMA 可以使数据快速地移动这就节省 CPU的资源来进行其他操作。 DMA 控制器支持环形缓冲区的管理 ,避免了控制器传输到达缓冲区结尾时所产生的中断。 它支持的外设包括 :定时器、 ADC、 SPI、 I2C 和 USART 等。 燕山大学本科生毕业设计(论文) 10 (4)内部包含多达 7 个定时器。 (5)含有丰富的通信接口 :三个 USART 异步串行通信接口、两个 I2C 接口、两个 SPI 接口、一个 CAN 接口和一个 USB 接口 ,为实现数据通信提供了保证 [5]。 STM32 的通用定时器是一个通过可编程预分频器( PSC)驱动的 16 位自动装载计数器( CNT)构成。 STM32 的通用定时器可以被用于:测量输入信号的脉冲长度 (输入捕获 )或者产生输出波形 (输出比较和 PWM)等。 使用定时器预分频器和 RCC 时钟控制器预分频器,脉冲长度和波形周期可以在几个微秒到几个毫秒间调整。 STM32 的每个通用定时器都是完全独立的,没有互相共享的任何资源。 如图 22 为定时器的框图,其功能包括: (1)16 位向上、向下、向上 /向下自动装载计数器( TIMx_CNT)。 (2)16 位可编程 (可以实时修改 )预分频器 (TIMx_PSC),计数器时钟频率 的分频系数为 1~ 65535 之间的任意数值。 (3)4 个独立通道( TIMx_CH1~4),这些通道可以用来作为: 生成 (边缘或中间对齐模式 ) ( TIMx_ETR)控制定时器和定时器互连(可以用 一 个定时器控制另外一个定时器)的同步电路。 (正交)编 码器和霍尔传感器电路 /DMA: ①更新:计数器向上溢出 /向下溢出、计数器初始化 (通过软件或者内部/外部触发 ) ②触发事件 (计数器启动、停止、初始化或由内部 /外部触发计数 )触发输 入作为外部时钟或者按周期的电流管理 ④ 支持针对定位的增量 (正交 )编码器和霍尔传感器电路 ⑤ 输入捕获 ⑥ 输出比较 第 2 章 声源定位系统的技术基础 11 图 22 定时器的框图 ADC(Analog to Digital Converter),模拟 /数字转换器。 在模拟信号需要以数字形式处理、存储或传输 时, ADC 必不可少。 STM32 系列单片机的 ADC 转换位数为 12 位,是一种逐次逼近型模拟数字转换器。 它有多达 18 个通道,可测量 16 个外部和 2 个内部信号源。 各通道的 A/D 转换可以单次、连续、扫描或间断模式执行。 ADC 的结果可以左对齐或右对齐方式存储在 16 位数据寄存器中,其框图如图 23 所示。 STM32 系列在片上集成的 ADC 外设非常强大,其主要特征如下 : (1)12 位分辨率 (2)转换结束、注入转换结束和发生模拟看门狗事件时产生中断 (3)单次和连续转换模式 燕山大学本科生毕业设计(论文) 12 (4)从通道 0 到通道 n 的自动扫描模式 (5)自校准 (6)带内嵌数据一致性的数据对齐 (7)采样间隔可以按通道分别编程 (8)规则转换和注入转换均有外部触发选项 (9)间断模式 (10)双重模式 (带 2 个或以上 ADC 的器件 ) (11)ADC 供电要求: (12)ADC 输入范围: VREF ≤ Vin≤ VREF+ (13)规则通道转换期间有 DMA 请求产生 STM32的 ADC 参考电压输入如 表 21 所示 表 21 STM32 的 ADC 参考电压输入 VDDA 和 VSSA 应该分别连接到 VDD和 VSS 通过设置 ADC_CR2 寄存器的 A/DON 位可给 ADC 上电。 当第一次设置 A/DON 位时,它将 ADC 从断电状态下唤醒。 ADC 上电延迟一段时间后(tSTAB),再次设 置 A/DON 位时开始进行转换。 通过清除 A/DON 位可以停止转换,并将 ADC 置于断电模式。 在这个模式中, ADC 几乎不耗电 (仅几个 μ A)。 ADC 的时钟控制器 ADCCLK 时钟和 PCLK2(APB2 时钟 )同步, ADC 的输入时钟不得超过 14MHz。 STM32 单片机有 16 个多路通道 , 可以把转换组织成两组:规则组和注入组 , 在任意多个通道上以任意顺序进行的一系列转换构成成组转换。 STM32 同样 具有双 ADC 模式和单 ADC 模式,只有一名称 信号类型 注解 VREF+ 输入,模拟参考正极 ADC 使用的高端 /正极参 考电压, ≤ VREF+≤ VDDA VDDA(1) 输入,模拟电源 等效于 VDD 的模拟电源且: ≤ VDDA≤ VDD () VREF 输入,模拟参考负极 ADC 使用的低端 /负极参考电压, VREF= VSSA VSSA(1) 输入,模拟电源地 等效于 VSS的模拟电源地 第 2 章 声源定位系统的技术基础 13 个 ADC 工作时,具有单次转换和连续转换以及扫描模式三种模式;双 ADC模式具有同步规则模式等多 种模式。 图 23 ADC 框图 STM32 单片机的 A/D转换可以由外部事件触发 , ADC1 和 ADC2 用于规则通道的外部触发如 表 22所示 ,本实验中采用的是由通用定时器 3所产生的TRGO 事件来触发 A/D 转换。 燕山大学本科生毕业设计(论文) 14 表 22 ADC 外部触发 信号经过音频放大器进行放大,被 ADC 采集、转换,然而 ADC 转换得到的数据如何转移到内存从而进行下一步的时 延计算呢。 这里我们使用DMA 用来 “ 搬运 ” 这些数据。 DMA,全称为: Direct Memory Access,即直接存储器访问, DMA 传输将数据从一个地址空间复制到另外一个地址空间。 当 CPU 初始化这个传输动作,传输动作本身是由 DMA 控制器 来实行和完成。 典型的例子就是移动一个外部内存的区块到芯片内部更快的内存区。 像是这样的操作并没有让处理器工作拖延,反而可以被重新排程去处理其他的工作。 DMA 传输对于高效能嵌入式系统算法和网络是很重要的。 DMA 传输方式无需 CPU 直接控制传输,也没有中断处理方式那样保留 现场和恢复现场的过程,通过硬件为 RAM 与 I/O 设备开辟一条直接传送数据的通路,能使 CPU的效率大为提高。 图 24 为 DMA 框图, STM32 的 DMA 有以下一些特性: (1)每个通道都直接连接专用的硬件 DMA 请求,每个通道都同样支持软件触发。 这些功能通过软件来配置 (2)在七个请求间的优先权可以通过软件编程设置 (共有四级:很高、高、 中等和低 ),假如在相等优先权时由硬件决定 (3)独立的源和目标数据区的传输宽度 (字节、半字、全字 ),模拟打包和拆包的过程。 源和目标地址必须按数据传输宽度对齐 (4)支持循环的缓冲器管理 (5)每个通道都有 3个事件标志 (DMA 半传输, DMA 传输完成和 DMA 传输 出错 ),这 3 个事件标志逻辑或成为一个单独的中断请求。 TIM1_CC3事件 来自片上定时器的内部信号 010 TIM2_CC2事件 011 TIM3_TRGO事件 100 TIM4_CC4事件 101 第 2 章 声源定位系统的技术基础 15 (6)存储器和存储器间的传输 (7)外设和存储器,存储器和外设的传输 (8)闪存、 SRAM、外设的 SRAM、 APB1 、 APB2 和 AHB 外设均可作为访问的 源和目标 (9)可编程的数据传输数目:最大为 65536 首先在内存中开拓一片空间用来存储 DMA 从 ADC 寄存器转移而来的数据,即在内存中定义一个首地址 ,配置 DMA 的工作模式 ,使 A/D 转换数据不断地从 ADC 数据寄存器转移到 SRAM 中。 转移的数据以两个数组的形式存储下来,供下面的声源定位计算使用。 整个 A/D 转换的程序分为三个部分:包括 DMA 的配置程序、 GPIO 的配置程序以及 ADC 的配置程序。 图 24 DMA框图 燕山大学本科生毕业设计(论文) 16 Keilμ Vision4MDK 简介 对 STM32F103 系列单片机开发前 , 需要准备相应的软硬件。 其中硬件主 要 包括 STM32F103 开发板 (或用户目标板 )。 软件主要包括 KeilμVision4MDK 开发平台。 Keilμ Vision4MDK 是一个基于窗口的 软件开发平台 ,它集成了强大而且现代化的编辑器、程管理器和 make 工具 ,几乎集成了嵌入式系统开发所需的全部工具 : C/C++编译器、汇编器、链接 /定位器、 HEX 文件生成器等。 该软件提供了两种工作模式 :编译和调试模式。 在编译模式中 ,开发者可以创建工程、选择目标器件、新建文件、输入源代码、生成可执行文件。 调试模式中 ,开发者可以利用其强大的集成调试器对应用程序进行调试 ,如设置断点、单步执行等 , 方便了程序错误的查找和修改。 作为 ARM 嵌入式开发的主流工具 ,MDK 也是目前为数不多的完全支持CortexM3 处理器的开 发工具 ,并内含 STM32F10x 系列处理器片上外围接口固件库和完整的数据手册。 MDK 尽管是针对 16 位和 32 位处理器的 ,但仍然使用中国工程。基于stm32单片机声源方向识别器设计与实现毕业设计论文
相关推荐
(6)建立基准平面 DTM1,创建方法是通过 4步中的点且通过 5步骤中的直线。 (7)建立基准平面 DTM2,创建方法是经过 5步骤中的直线且与 6步骤中平面成 度。 (8)选中 3 步中的曲线并且选择上一步骤中的平面进行镜向操作。 (9)利用拉伸的方法获得齿轮毛坯,其中截面为直径为 个长度单位,拉伸深度为 个长度单位。 (10)进行拉伸去除材料操作,草绘第一个齿形,如图 3- 27 所示。
非伺服型 图 带开关反馈的非伺服型 2)伺服控制系统 图 为以典型工业机器人伺服控制系统框图。 其特点是系统中采用检测传感器连续测量关节位置、速度等关节参数,并反馈到驱动单元构成闭环伺服系统。 在伺服系统控制下,各关节的运动速度、停留位置由有关的程序控制,而程序的编制、修改简便灵活。 所以能方便的完成各种复杂的操作。 其系统结构虽比非伺服控制复杂,但还是得到了广泛应用。 目前绝大多数
差的图像 2 分 对观看较有影响 非常差的图像 1 分 非常严重的质量变坏,基本不能观看 主观评价和客观评价之间有一定联系,但不能完全 等同,由于客观评价比较便,很有说服力,故在一般的图像压缩研究中被采用。 主观评价很直观,符合人眼的视效果,比较实际,但是打分尺度很难把握,不可避免有人为因素。 图像压缩 技术 标准 信息技术的突出特点是互操作性和全球联网。
引擎解释执行程序代码的能力。 但 JSP 代码被编译成 Servlet 并由 Java 虚拟机解释执行,这种编译操作仅在对 JSP 页面的第一次请求时发生。 在 PHP、 ASP 、 JSP 环境下, HTML 代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。 普通的 HTML页面只依赖于 Web 服务器,而 PHP、 ASP 、 JSP 页面需要附加的语言引擎分析和执行程序代码。
的实现机制。 Java 语言支持 Inter 应用的开发,在基本的 Java 应用编程接口中有一个网络应用编程接口,它提供了用于网络应用编程的类库,包括 URL、URLConnection、 Socket(实现客户端的套接 字)、 ServerSocket(实现服务器端的套接字)等。 Java 的强制型机制、异常处理、废料的自动收集等都是 Java 程序健壮性的重要保证。 Java
游戏进程中,积木落下来的速度越来越快,这样对玩家的挑战也就越来越大,游戏的难度也逐步增加。 俄罗斯方块游戏的规则 俄罗斯方块游戏的玩法非常简单易学,游戏界面是一个很高的长方形 2D 盒子,方块出现在盒子的上方,这些方块都由四个小方块组成,并按照各种方式排列,其中每一个方块都至少和另一个方块相 连。 然后,这些积木慢慢地落向盒子底部,玩家可以把这些方块左右移动或旋转。 一旦这个方块碰到阻碍