跟着我国经济快速开展、城乡居民收入不断提高和空闲时刻很多添加,旅行消费进入一个快速开展的新阶段。为了处理旅行开展过程中交通的问题,依据固定轨迹的旅行列车应景而生。本文研讨规划了一种景点旅行列车辅佐语音主动导览体系。
现在,景点语音导览首要有以下几种方法:一种是经过全球定位体系(GPS)的用户终端接纳作业卫星的导航信息,然后解算出车辆的经纬度信息,然后计算出实时坐标,将其与景点坐标相比较,当车辆驶入景点必定间隔范围内时,不必人工干预,体系主动播报景点语音信息;另一种是对车轮轴的转角脉冲进行计数,将计数值和预置值比照,即可确认播映时刻,抵达精确播映景点语音信息的意图;第三种计划是运用无线射频辨认技能,在每一个景点范围内设置一个具有专一ID 的射频发射器,选用间歇作业方法发射信号,当旅行列车行将抵达景点时,车载体系接纳到射频发射器信号并解码出景点的ID 号,由体系操控主动播映对应编号的景点语音信息。因为景点天然环境的杂乱性,第一种方法难以满意体系要求;第二种方法简略牢靠,但旅行轨迹车辆运转方向存在不确认性,其相对方位往复改变,体系的主动化程度较低且杂乱度较高。本文选用第三种计划完结景点语音主动导览体系。
本文首要介绍了体系整体结构,然后,给出了体系各首要功用模块的具体规划,并要点研讨了依据ARM3核的STM32F103RBT6芯片与语音芯片ISD4004之间的SPI 通讯操控和完结技能,给出了体系规划完结成果。
最终,给出了有必定工程运用参考价值的定论。
1 体系整体规划
本体系结构原理规划如图1 所示。本规划运用旅行列车轨迹固定的特色,在轨迹沿线景点预先装置固定ID的RFID,归纳考虑到作用间隔、数据通讯方法、牢靠性、运用寿命和保护本钱,选用产品433 MHz有源标签GAO C124061[1].其存储ID 字长32 b.因为在野外天然环境中,呈现磕碰的可能性极低,所以,RFID 阅读器只需要正确牢靠地取得RFID的ID值,与固定景点所对应,用以触发中止,初步播映该景点的语音信息。
图1 中,MCU 选用STM32F103RBT6 芯片[2],该芯片是依据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为语音录放存储芯片[3],依据外部操控和外围电路辅佐,可随机对其进行语音录入和语音播映。体系MCU 经过RFID 阅读器取得旅行列车沿途RFID的固定ID,依据ID号所对应的预设语音数据存储方位的开端地址信息,经过对ISD4004内置的SPI端口进行操控,完结景点语音选段主动播映。
2 首要模块电路规划
2.1 ISD4004操控电路规划
ISD4004系列语音芯片作业电压为+3 V,单片录放时刻8~16 min,音质好。芯片选用CMOS 技能,内含时钟、抗混叠滤波器、滑润滤波器、音频放大器、主动态噪及高密度多电平非易失性存储器阵列。芯片规划是依据一切操作有必要由微操控器操控,操作指令可经过串行通讯接口(SPI)送入。芯片选用多电平直接模拟量存储技能,每个采样值直接存储在片内非易失性存储器中,因此能够十分实在、天然地再现语音、音乐、音谐和作用声,避免了一般固体录音电路因量化和紧缩形成的量化噪声和金属声[4?5].芯片ISD4004 内部结构和首要引脚功用如图2所示。
ISD4004 内部器材操控单元设置十分便于其与STM32序列芯片的SPI进行通讯设置。增设STM32多个I/O 口来作为对应语音芯片的片选端,即可完结多片ISD4004 扩展。STM32 与多片ISD4004 的接口电路如图3所示。
STM32 和ISD4004 经过SPI 模块进行通讯,两者MOSI、MISO脚对应相互衔接,完结STM32和ISD4004之间数据串行传输(MSB 位在前)。通讯总是由主设备STM32 建议。STM32 经过MOSI 脚把数据发送给ISD4004,ISD4004 经过MISO 引脚回传数据给STM32.
全双工通讯的数据输出和数据输入是用同一个时钟信号同步的;时钟信号由主设备STM32经过SCK脚供给[6?7].
扩展为多片语音芯片后,语音信息的存储空间大大添加,便于扩大景点的语音信息量。
2.2 语音录放操控电路规划
语音录放操控电路如图4 所示。经过MCU 的I/O操控端来操控串联调整管Q3 或开关管Q1,完结体系放音或许录音。I/O 端输出高电平时完结录音,输出低电平时完结放音
2.3 RFID读卡器接口电路
RFID 读卡器模块运用了Philips 的高集成ISO14443A 读卡芯片MFRC500[8].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主模块和与之通讯的外设备时钟相位和极性应该共同[7].最终,发送0xff发动传输。
依据ISD4004 不同相位下的SPI 总线传输时序和SPI操作时序联系[3?4],要想完结STM32和ISD4004之间的SPI通讯,须将其操控位CPHA和CPOL都设置为[4]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有如下操作规矩[4]:
(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读卡器的中止请求之后,依据读卡器接口协议[8],MCU经SPI2接口接纳到读卡器传来的数据信息,分分出RFID所含的ID信息内容,并依据ID所对应的景点方位,即原设置的景点语音首地址,将此首地址发送到ISD4004 芯片组,并发送放音指令,即可完结对应景点事前录制好的导览语音主动播映。初步播映语音信息期间,ISD4004 的I-N-T- 端衔接到了STM32 的I/O口上,不断查询它的状况。当这段语音信息放完时,语音芯片ISD4004的I-N-T- 端会置低,由此发送中止播映指令,则完结播音完毕,并等候下一个RFID信息的输入和读卡器中止请求。
4 体系调试测验成果
4.1 录放音模块调试
关于录音模块功用的测验,选用如下的方法:对着麦克风进行放音,用示波器调查语音芯片的输入引脚是否有信号。在语音芯片输入引脚检测到信号,如图7(a)所示。
在成功录入语音后,发送放音指令在语音芯片输出引脚得到如图7(b)所示波形。
4.2 SPI模块调试
在录音电路正确后,发送放音指令,在芯片对应SPI1模块功用的引脚端,能够在示波器上看到正确的时序,如图8所示。
图8(a)是片选和时钟信号输出;图8(b)和(c)别离是不停地发送0×55,在STM32 SPI1的数据发送端MOSI和数据接纳端MISO得到的波形,与实践相符。
5 定论
本文提出的体系结构简略、有用牢靠,特别适用于山区天然景点的有轨旅行列车项目等,因此该体系具有很好的有用价值。可用于杂乱环境下的语音导览体系完结结构,具体介绍了体系首要功用模块的完结技能和调试试验成果。