0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于STM32的语音导览系统的设计方案

电子设计 来源:网络整理 作者:工程师1 2018-05-25 08:01 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

景点语音导览主要有以下几种方式:一种是通过全球定位系统(GPS)的用户终端接收工作卫星的导航信息,从而解算出车辆的经纬度信息,进而计算出实时坐标,将其与景点坐标相比较,当车辆驶入景点一定距离范围内时,不用人工干预,系统自动播报景点语音信息;另一种是对车轮轴的转角脉冲进行计数,将计数值和预置值对比,即可确定播放时刻,达到准确播放景点语音信息的目的;第三种方案是利用无线射频识别技术,在每一个景点范围内设置一个具有唯一ID的射频发射器,采用间歇工作方式发射信号,当旅游列车即将到达景点时,车载系统接收到射频发射器信号并解码出景点的ID号,由系统控制自动播放对应编号的景点语音信息。由于景点自然环境的复杂性,第一种方式难以满足系统要求;第二种方式简单可靠,但旅游轨道车辆运行方向存在不确定性,其相对位置往返变化,系统的自动化程度较低且复杂度较高。

本文首先介绍了系统总体结构,然后,给出了系统各主要功能模块的具体设计,并重点研究了基于ARM3核的STM32F103RBT6芯片与语音芯片ISD4004之间的SPI通信控制和实现技术,给出了系统设计实现结果。

最后,给出了有一定工程应用参考价值的结论。

1系统总体设计

本系统结构原理设计如图1所示。本设计利用旅游列车轨道固定的特点,在轨道沿线景点预先安装固定ID的RFID,综合考虑到作用距离、数据通信方式、可靠性、使用寿命和维护成本,选用产品433 MHz有源标签GAO C124061.其存储ID字长32 b.由于在野外自然环境中,出现碰撞的可能性极低,所以,RFID阅读器只需要正确可靠地获得RFID的ID值,与固定景点所对应,用以触发中断,开始播放该景点的语音信息。

图1中,MCU采用STM32F103RBT6芯片,该芯片是基于ARM Cortex-M3内核高性能、低成本、低功耗的嵌入式应用MCU.本设计选择这款的原因是看重其性价比:128 KB FLASH、20 KB SRAM、2个SPI、3个串口、1个USB、1个CAN、2个12位的ADC、RTC、51个可用I/O脚等一系列性能特征,能完全满足本系统性能要求。总结下来,STM32具有价格低、功能强、使用简单、开发方便等几个很有利的优势。ISD4004为语音录放存储芯片,根据外部控制和外围电路辅助,可随机对其进行语音录入和语音播放。系统MCU通过RFID阅读器获得旅游列车沿途RFID的固定ID,根据ID号所对应的预设语音数据存储位置的起始地址信息,通过对ISD4004内置的SPI端口进行控制,实现景点语音选段自动播放。

图1系统结构原理框图

2主要模块电路设计

2.1 ISD4004控制电路设计

ISD4004系列语音芯片工作电压为+3 V,单片录放时间8~16 min,音质好。芯片采用CMOS技术,内含时钟、抗混叠滤波器、平滑滤波器、音频放大器、自动静噪及高密度多电平非易失性存储器阵列。芯片设计是基于所有操作必须由微控制器控制,操作命令可通过串行通信接口(SPI)送入。芯片采用多电平直接模拟量存储技术,每个采样值直接存储在片内非易失性存储器中,因此能够非常真实、自然地再现语音、音乐、音调和效果声,避免了一般固体录音电路因量化和压缩造成的量化噪声和金属声。芯片ISD4004内部结构和主要引脚功能如图2所示。

图2 ISD4004内部结构

ISD4004内部器件控制单元设置非常便于其与STM32序列芯片的SPI进行通信设置。增设STM32多个I/O口来作为对应语音芯片的片选端,即可实现多片ISD4004扩展。STM32与多片ISD4004的接口电路如图3所示。

图3多片ISD4004与STM32的连接

STM32和ISD4004通过SPI模块进行通信,两者MOSI、MISO脚对应相互连接,实现STM32和ISD4004之间数据串行传输(MSB位在前)。通信总是由主设备STM32发起。STM32通过MOSI脚把数据发送给ISD4004,ISD4004通过MISO引脚回传数据给STM32.

全双工通信的数据输出和数据输入是用同一个时钟信号同步的;时钟信号由主设备STM32通过SCK脚提供。

扩展为多片语音芯片后,语音信息的存储空间大大增加,便于扩充景点的语音信息量。

2.2语音录放控制电路设计

语音录放控制电路如图4所示。通过MCU的I/O控制端来控制串联调整管Q3或开关管Q1,实现系统放音或者录音。I/O端输出高电平时实现录音,输出低电平时实现放音。

图4语音录放控制电路

2.3 RFID读卡器接口电路

RFID读卡器模块使用了Philips的高集成ISO14443A读卡芯片MFRC500.RFID读卡器是一个相对独立的功能模块,其输出可通过中断状态信息和串口与外部连接。因此,系统利用STM32F103RBT6的SPI2接口实现与RFID读卡器接口之间的数据通信,从而自动获得景点位置信息,以控制选择对应景点导览语音的播放。读卡器中断状态直接与STM32F103的PD口I/O引脚连接;SPI2接口电路形式同图3类似。

3主要功能软件设计

3.1软件初始化

3.1.1外设时钟的使能

本设计中涉及的外设时钟可以通过APB2外设时钟使能寄存器来使能。当外设时钟没有启用时,软件无法读出外设寄存器的值,返回的数值始终为0.设计中用到的PA口、PB口、PD口的时钟分别通过APB2ENR寄存器的第2、3、5位来设置,SPI1的时钟通过APB2ENR的第12位来设置。

3.1.2 I/O口的初始化

本设计涉及的I/O口包括:用于控制片选扩展的PA.3、PB.0口,需设置成开端输出模式;用于实现按键控制的PA.15(录音键)、PA.0(强制停止键)等需设置为上拉输入模式;用于实现SPI通信的PA.5、PA.6、PA.7口,它们分别对应SPI1的SCK、MISO、MOSI口,应由软件设置这三个口为复用I/O口即第二功能;用于检测放音结束时语音芯片INT端低电平输出的PA.8和PD.2设置为上拉输入模式。

3.1.3外部中断的初始化

外部中断初始化中主要完成的工作是设置I/O口与中断线的对应关系、开启与该I/O口对应的线上中断/事件以及设置中断的触发条件、配置中断分组并使能中断。本设计中,将强制停止键连接到的PA.0口对应的中断触发条件设置为上升沿触发,对应的中断优先级最高;其余按键连接的I/O口对应的中断触发条件都设置为下降沿触发。把所有的中断都分配到第二组,把所有按键的次优先级设置成一样,而抢占优先级不同。其中,几个放音键连接的I/O口对应的中断共用一个中断服务程序,也就是多个中断线上的中断共用一个中断服务函数,在该中断服务程序里先对进入中断的信号进行区分(通过中断输入I/O口上的电平判断),再分别处理。

3.1.4 SPI模块的初始化

本设计中,通过对CR1寄存器的设置,将SPI1模块设置成全双工模式、软件NSS管理、主机模式、8 b MSB数据格式,并且把SPI1的波特率设置成了最低(281.25 kHz,为系统时钟的256分频),其中最重要的是SPI模块输出串行同步时钟极性和相位的配置,SPI主模块和与之通信的外设备时钟相位和极性应该一致。最后,发送0xff启动传输。

根据ISD4004不同相位下的SPI总线传输时序和SPI操作时序关系,要想实现STM32和ISD4004之间的SPI通信,须将其控制位CPHA和CPOL都设置为1.

3.2 SPI控制功能软件实现

3.2.1 SPI1读写字节函数

在读数据时,接收到的数据被存放在一个内部的接收缓冲器中;在写数据时,在被发送之前,数据将首先被存放在一个内部的发送缓冲器中。对SPI_DR寄存器的读操作,将返回接收缓冲器的内容;写入SPI_DR寄存器的数据将被写入发送缓冲器中。

SPI_SR是16位状态寄存器,它的最低位为RXNE,该位为0则接收缓冲为空,为1则接收缓冲非空;SPI_SR的次低位为TXE,该位为0说明发送缓冲非空,为1则发送缓冲为空。不断地查询发送/接收缓冲区是否为空,进而实现数据的有序发送和接收。

3.2.2发送指令函数

首先,语音芯片ISD4004有如下操作规则:

(1)串行外设接口,SPI协议设定微控制器的SPI移位寄存器在SCLK下降沿动作,在时钟上升沿锁存MOSI引脚数据,在下降沿将数据送至MISO引脚。

(2)上电顺序,器件延时TPUD(8 kHz采样时,约为25 ms)后才能开始操作。因此,用户发完上电指令后,必须等待TPUD,才能发出下一条操作指令。

例如,

从00处放音,应遵循如下时序:

①发POWER UP命令;

②等待TPUD(上电延时);

③发地址值为00的SET PLAY命令;

④发PLAY命令。

器件会从00地址开始放音,当出现EOM时,立即中断,停止放音。

如果从00处录音,则按以下时序:

①发POWER UP指令;

②等待TPUD(上电延时);

③发POWER UP命令;

④等待2倍TPUD;

⑤发地址值为00的SET REC命令;

⑥发REC命令。

器件便从00地址开始录音,一直到出现OVF(存储器末尾)时,录音停止。

3.3中断服务程序

录音中断服务程序流程如图5所示。它实现的功能是在一次长按录音键时,将一个景点的语音信息录入ISD4004中以预先设定的起始地址存储空间中,松开录音键后,本景点语音内容录音停止。每个景点的导览语音存储的位置,以其起始地址为标示。起始地址的安排根据每段语音的长度决定。每个景点语音录音时需保持录音按键锁下不松开,直至本段景点语音录音结束。

景点语音播放中断服务程序流程如图6所示。系统在获得RFID读卡器的中断申请之后,根据读卡器接口协议,MCU经SPI2接口接收到读卡器传来的数据信息,分析出RFID所含的ID信息内容,并根据ID所对应的景点位置,即原设置的景点语音首地址,将此首地址发送到ISD4004芯片组,并发送放音命令,即可实现对应景点事先录制好的导览语音自动播放。开始播放语音信息期间,ISD4004的I-N-T-端连接到了STM32的I/O口上,不断查询它的状态。当这段语音信息放完时,语音芯片ISD4004的I-N-T-端会置低,由此发送停止播放指令,则实现播音结束,并等待下一个RFID信息的输入和读卡器中断申请。

图5录音流程

图6放音流程图

4系统调试测试结果

4.1录放音模块调试

对于录音模块功能的测试,采用如下的办法:对着麦克风进行放音,用示波器观察语音芯片的输入引脚是否有信号。在语音芯片输入引脚检测到信号,如图7(a)所示。

在成功录入语音后,发送放音指令在语音芯片输出引脚得到如图7(b)所示波形。

图7录放音调试试验波形

4.2 SPI模块调试

在录音电路正确后,发送放音指令,在芯片对应SPI1模块功能的引脚端,可以在示波器上看到正确的时序,如图8所示。

图8(a)是片选和时钟信号输出;图8(b)和(c)分别是不停地发送0×55,在STM32 SPI1的数据发送端MOSI和数据接收端MISO得到的波形,与实际相符。

图8 SPI1接口调试试验时序波形

5结论

本文提出的系统结构简单、实用可靠,特别适用于山区自然景点的有轨旅游列车项目等,因而该系统具有很好的实用价值。可用于复杂环境下的语音导览系统实现结构,详细介绍了系统主要功能模块的实现技术和调试实验结果。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    147

    文章

    18604

    浏览量

    386657
  • STM32
    +关注

    关注

    2305

    文章

    11120

    浏览量

    371080
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1866

    浏览量

    99756
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    电磁频谱监测平台系统设计方案

    电磁频谱监测平台系统设计方案
    的头像 发表于 10-23 16:03 316次阅读
    电磁频谱监测平台<b class='flag-5'>系统</b><b class='flag-5'>设计方案</b>

    电磁频谱管理系统设计方案

    电磁频谱管理系统设计方案
    的头像 发表于 10-20 14:02 256次阅读
    电磁频谱管理<b class='flag-5'>系统</b><b class='flag-5'>设计方案</b>

    电磁频谱监测系统软件设计方案

    电磁频谱监测系统平台设计方案
    的头像 发表于 09-28 16:03 136次阅读
    电磁频谱监测<b class='flag-5'>系统软件设计方案</b>

    电磁频谱监测系统设计方案

    电磁频谱监测系统平台设计方案
    的头像 发表于 09-28 15:58 475次阅读
    电磁频谱监测<b class='flag-5'>系统</b><b class='flag-5'>设计方案</b>

    旋智科技家用分体空调电控设计方案

    在家用空调技术不断迭代的今天,旋智凭借强大的芯片研发与系统集成能力,推出了一套完整的家用分体空调电控设计方案。这套方案从硬件到软件,从基础功能到智能升级,全方位提升空调的性能与用户体验,让每一次调温都成为舒适享受。
    的头像 发表于 08-18 14:02 4914次阅读
    旋智科技家用分体空调电控<b class='flag-5'>设计方案</b>

    STM32项目分享:智能语音台灯(机智云)

    01—项目简介1.功能详解STM32智能语音台灯(机智云)功能如下:STM32F103C8T6单片机作为主控单元按键切换模式,支持自
    的头像 发表于 07-24 18:03 1036次阅读
    <b class='flag-5'>STM32</b>项目分享:智能<b class='flag-5'>语音</b>台灯(机智云)

    部队内部招待所管理系统设计方案

    管理系统
    北京华盛恒辉科技
    发布于 :2025年05月08日 22:36:10

    智能语音交互方案在客服领域的应用

    在当今数字化浪潮中,客服领域正经历着前所未有的变革,智能语音交互方案凭借其高效、便捷的特性,成为推动这一变革的核心力量。其中,语音识别模型优化私部署方案
    的头像 发表于 04-11 14:35 572次阅读

    蓝牙AoA高精度定位技术打造智慧博物馆定位方案

    服务的需求日益增长。蓝牙AoA(Angle of Arrival,信号到达角)高精度定位技术的出现,为博物馆提供了‌亚米级实时定位‌能力,结合AR、数据化运营等功能,正成为智慧博物馆建设的核心解决方案。 技术核心:蓝牙AoA
    的头像 发表于 03-18 13:46 670次阅读

    STM32项目分享:STM32智能语音分类垃圾桶

    01—项目简介1.功能详解STM32智能语音分类垃圾桶功能如下:1.STM32F103C8T6单片机系统板作为主控单元2.舵机驱动垃
    的头像 发表于 03-15 10:02 2389次阅读
    <b class='flag-5'>STM32</b>项目分享:<b class='flag-5'>STM32</b>智能<b class='flag-5'>语音</b>分类垃圾桶

    STM32项目分享:STM32智能语音台灯

    —项目简介1.功能详解STM32智能语音台灯功能如下:1.STM32F103C8T6单片机系统板作为主控单元2.按键切换模式,支
    的头像 发表于 03-15 10:02 2332次阅读
    <b class='flag-5'>STM32</b>项目分享:<b class='flag-5'>STM32</b>智能<b class='flag-5'>语音</b>台灯

    基于WT3000A-M6语音识别模组的智慧厨房语音交互系统设计方案

    %唤醒率多模态交互:支持语音+手势复合指令(需扩展传感器)安全防护:燃气泄漏/干烧等风险场景100ms级应急响应生态兼容:无缝接入HomeKit/Alexa/华为HiLink等主流平台二、系统架构设计2
    的头像 发表于 03-12 09:18 856次阅读
    基于WT3000A-M6<b class='flag-5'>语音</b>识别模组的智慧厨房<b class='flag-5'>语音</b>交互<b class='flag-5'>系统</b><b class='flag-5'>设计方案</b>

    基于WTV380-8S语音芯片的智能电子锁语音交互系统设计方案介绍

    ​一、方案背景与需求智能电子锁作为现代家居安防的核心设备,用户对交互友好性、功能多样性和系统稳定性的需求日益提升。WTV380-8S语音芯片凭借多模式控制、高集成度、低功耗设计及丰富的外设接口,为
    的头像 发表于 03-06 08:56 753次阅读
    基于WTV380-8S<b class='flag-5'>语音</b>芯片的智能电子锁<b class='flag-5'>语音</b>交互<b class='flag-5'>系统</b><b class='flag-5'>设计方案</b>介绍

    基于WTVxxx语音芯片的智能清洁机器人语音交互系统设计方案介绍

    集成度、低功耗、多控制模式及传感器扩展能力,为智能清洁机器人提供了高效的语音交互解决方案。核心需求分析:1、实时状态反馈:工作模式切换、电量提醒、故障报警等语音提示
    的头像 发表于 03-06 08:27 659次阅读
    基于WTVxxx<b class='flag-5'>语音</b>芯片的智能清洁机器人<b class='flag-5'>语音</b>交互<b class='flag-5'>系统</b><b class='flag-5'>设计方案</b>介绍

    电磁环境模拟系统设计方案

    智慧华盛恒辉电磁环境模拟系统设计方案是一个综合性的工程任务,涉及多个方面的考虑和技术实现。以下是一个基于当前技术和应用需求的电磁环境模拟系统设计方案概述: 智慧华盛恒辉电磁环境模拟
    的头像 发表于 02-14 16:47 659次阅读
    电磁环境模拟<b class='flag-5'>系统</b><b class='flag-5'>设计方案</b>