<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 電源與新能源 > 設計應用 > 一款語(yǔ)音導覽系統的應用設計

一款語(yǔ)音導覽系統的應用設計

作者: 時(shí)間:2016-12-05 來(lái)源:網(wǎng)絡(luò ) 收藏
隨著(zhù)我國經(jīng)濟快速發(fā)展、城鄉居民收入不斷提高和閑暇時(shí)間大量增加,旅游消費進(jìn)入一個(gè)快速發(fā)展的新階段。為了解決旅游發(fā)展過(guò)程中交通的問(wèn)題,基于固定軌道的旅游列車(chē)應景而生。本文研究設計了一種景點(diǎn)旅游列車(chē)輔助語(yǔ)音自動(dòng)導覽系統。

目前,景點(diǎn)語(yǔ)音導覽主要有以下幾種方式:一種是通過(guò)全球定位系統(GPS)的用戶(hù)終端接收工作衛星的導航信息,從而解算出車(chē)輛的經(jīng)緯度信息,進(jìn)而計算出實(shí)時(shí)坐標,將其與景點(diǎn)坐標相比較,當車(chē)輛駛入景點(diǎn)一定距離范圍內時(shí),不用人工干預,系統自動(dòng)播報景點(diǎn)語(yǔ)音信息;另一種是對車(chē)輪軸的轉角脈沖進(jìn)行計數,將計數值和預置值對比,即可確定播放時(shí)刻,達到準確播放景點(diǎn)語(yǔ)音信息的目的;第三種方案是利用無(wú)線(xiàn)射頻識別技術(shù),在每一個(gè)景點(diǎn)范圍內設置一個(gè)具有惟一ID 的射頻發(fā)射器,采用間歇工作方式發(fā)射信號,當旅游列車(chē)即將到達景點(diǎn)時(shí),車(chē)載系統接收到射頻發(fā)射器信號并解碼出景點(diǎn)的ID 號,由系統控制自動(dòng)播放對應編號的景點(diǎn)語(yǔ)音信息。由于景點(diǎn)自然環(huán)境的復雜性,第一種方式難以滿(mǎn)足系統要求;第二種方式簡(jiǎn)單可靠,但旅游軌道車(chē)輛運行方向存在不確定性,其相對位置往返變化,系統的自動(dòng)化程度較低且復雜度較高。本文采用第三種方案實(shí)現景點(diǎn)語(yǔ)音自動(dòng)導覽系統。

本文引用地址:http://dyxdggzs.com/article/201612/326395.htm

本文首先介紹了系統總體結構,然后,給出了系統各主要功能模塊的具體設計,并重點(diǎn)研究了基于A(yíng)RM3核的STM32F103RBT6芯片與語(yǔ)音芯片ISD4004之間的SPI 通信控制和實(shí)現技術(shù),給出了系統設計實(shí)現結果。

最后,給出了有一定工程應用參考價(jià)值的結論。

1 系統總體設計

本系統結構原理設計如圖1 所示。本設計利用旅游列車(chē)軌道固定的特點(diǎn),在軌道沿線(xiàn)景點(diǎn)預先安裝固定ID的RFID,綜合考慮到作用距離、數據通信方式、可靠性、使用壽命和維護成本,選用產(chǎn)品433 MHz有源標簽GAO C124061[1].其存儲ID 字長(cháng)32 b.由于在野外自然環(huán)境中,出現碰撞的可能性極低,所以,RFID 閱讀器只需要正確可靠地獲得RFID的ID值,與固定景點(diǎn)所對應,用以觸發(fā)中斷,開(kāi)始播放該景點(diǎn)的語(yǔ)音信息。

圖1 中,MCU 采用STM32F103RBT6 芯片[2],該芯片是基于A(yíng)RM Cortex?M3內核高性能、低成本、低功耗嵌入式應用MCU.本設計選擇這款的原因是看重其性?xún)r(jià)比:128 KB FLASH、20 KB SRAM、2個(gè)SPI、3個(gè)串口、1個(gè)USB、1個(gè)CAN、2個(gè)12位的ADC、RTC、51個(gè)可用I/O腳等一系列性能特征,能完全滿(mǎn)足本系統性能要求??偨Y下來(lái),STM32具有價(jià)格低、功能強、使用簡(jiǎn)單、開(kāi)發(fā)方便等幾個(gè)很有利的優(yōu)勢。ISD4004為語(yǔ)音錄放存儲芯片[3],根據外部控制和外圍電路輔助,可隨機對其進(jìn)行語(yǔ)音錄入和語(yǔ)音播放。系統MCU 通過(guò)RFID 閱讀器獲得旅游列車(chē)沿途RFID的固定ID,根據ID號所對應的預設語(yǔ)音數據存儲位置的起始地址信息,通過(guò)對ISD4004內置的SPI端口進(jìn)行控制,實(shí)現景點(diǎn)語(yǔ)音選段自動(dòng)播放。

2 主要模塊電路設計

2.1 ISD4004控制電路設計

ISD4004系列語(yǔ)音芯片工作電壓為+3 V,單片錄放時(shí)間8~16 min,音質(zhì)好。芯片采用CMOS 技術(shù),內含時(shí)鐘、抗混疊濾波器、平滑濾波器、音頻放大器、自動(dòng)靜噪及高密度多電平非易失性存儲器陣列。芯片設計是基于所有操作必須由微控制器控制,操作命令可通過(guò)串行通信接口(SPI)送入。芯片采用多電平直接模擬量存儲技術(shù),每個(gè)采樣值直接存儲在片內非易失性存儲器中,因此能夠非常真實(shí)、自然地再現語(yǔ)音、音樂(lè )、音調和效果聲,避免了一般固體錄音電路因量化和壓縮造成的量化噪聲和金屬聲[4?5].芯片ISD4004 內部結構和主要引腳功能如圖2所示。

ISD4004 內部器件控制單元設置非常便于其與STM32序列芯片的SPI進(jìn)行通信設置。增設STM32多個(gè)I/O 口來(lái)作為對應語(yǔ)音芯片的片選端,即可實(shí)現多片ISD4004 擴展。STM32 與多片ISD4004 的接口電路如圖3所示。

STM32 和ISD4004 通過(guò)SPI 模塊進(jìn)行通信,兩者M(jìn)OSI、MISO腳對應相互連接,實(shí)現STM32和ISD4004之間數據串行傳輸(MSB 位在前)。通信總是由主設備STM32 發(fā)起。STM32 通過(guò)MOSI 腳把數據發(fā)送給ISD4004,ISD4004 通過(guò)MISO 引腳回傳數據給STM32.

全雙工通信的數據輸出和數據輸入是用同一個(gè)時(shí)鐘信號同步的;時(shí)鐘信號由主設備STM32通過(guò)SCK腳提供[6?7].

擴展為多片語(yǔ)音芯片后,語(yǔ)音信息的存儲空間大大增加,便于擴充景點(diǎn)的語(yǔ)音信息量。

2.2 語(yǔ)音錄放控制電路設計

語(yǔ)音錄放控制電路如圖4 所示。通過(guò)MCU 的I/O控制端來(lái)控制串聯(lián)調整管Q3 或開(kāi)關(guān)管Q1,實(shí)現系統放音或者錄音。I/O 端輸出高電平時(shí)實(shí)現錄音,輸出低電平時(shí)實(shí)現放音

2.3 RFID讀卡器接口電路

RFID 讀卡器模塊使用了Philips 的高集成ISO14443A 讀卡芯片MFRC500[8].RFID 讀卡器是一個(gè)相對獨立的功能模塊,其輸出可通過(guò)中斷狀態(tài)信息和串口與外部連接。因此,系統利用STM32F103RBT6 的SPI2接口實(shí)現與RFID讀卡器接口之間的數據通信,從而自動(dòng)獲得景點(diǎn)位置信息,以控制選擇對應景點(diǎn)導覽語(yǔ)音的播放。讀卡器中斷狀態(tài)直接與STM32F103 的PD口I/O引腳連接;SPI2接口電路形式同圖3類(lèi)似。

3 主要功能軟件設計

3.1 軟件初始化

3.1.1 外設時(shí)鐘的使能

本設計中涉及的外設時(shí)鐘可以通過(guò)APB2 外設時(shí)鐘使能寄存器來(lái)使能。當外設時(shí)鐘沒(méi)有啟用時(shí),軟件無(wú)法讀出外設寄存器的值,返回的數值始終為0.設計中用到的PA 口、PB 口、PD 口的時(shí)鐘分別通過(guò)APB2ENR寄存器的第2、3、5 位來(lái)設置,SPI1 的時(shí)鐘通過(guò)APB2ENR的第12位來(lái)設置。

3.1.2 I/O口的初始化

本設計涉及的I/O 口包括:用于控制片選擴展的PA.3、PB.0口,需設置成開(kāi)端輸出模式;用于實(shí)現按鍵控制的PA.15(錄音鍵)、PA.0(強制停止鍵)等需設置為上拉輸入模式;用于實(shí)現SPI通信的PA.5、PA.6、PA.7 口,它們分別對應SPI1的SCK、MISO、MOSI口,應由軟件設置這三個(gè)口為復用I/O口即第二功能;用于檢測放音結束時(shí)語(yǔ)音芯片INT端低電平輸出的PA.8和PD.2設置為上拉輸入模式。

3.1.3 外部中斷的初始化

外部中斷初始化中主要完成的工作是設置I/O口與中斷線(xiàn)的對應關(guān)系、開(kāi)啟與該I/O口對應的線(xiàn)上中斷/事件以及設置中斷的觸發(fā)條件、配置中斷分組并使能中斷。本設計中,將強制停止鍵連接到的PA.0 口對應的中斷觸發(fā)條件設置為上升沿觸發(fā),對應的中斷優(yōu)先級最高;其余按鍵連接的I/O口對應的中斷觸發(fā)條件都設置為下降沿觸發(fā)。把所有的中斷都分配到第二組,把所有按鍵的次優(yōu)先級設置成一樣,而搶占優(yōu)先級不同。其中,幾個(gè)放音鍵連接的I/O口對應的中斷共用一個(gè)中斷服務(wù)程序,也就是多個(gè)中斷線(xiàn)上的中斷共用一個(gè)中斷服務(wù)函數,在該中斷服務(wù)程序里先對進(jìn)入中斷的信號進(jìn)行區分(通過(guò)中斷輸入I/O口上的電平判斷),再分別處理。

3.1.4 SPI模塊的初始化

本設計中,通過(guò)對CR1寄存器的設置,將SPI1模塊設置成全雙工模式、軟件NSS管理、主機模式、8 b MSB數據格式,并且把SPI1的波特率設置成了最低(281.25 kHz,為系統時(shí)鐘的256分頻),其中最重要的是SPI模塊輸出串行同步時(shí)鐘極性和相位的配置,SPI主模塊和與之通信的外設備時(shí)鐘相位和極性應該一致[7].最后,發(fā)送0xff啟動(dòng)傳輸。

根據ISD4004 不同相位下的SPI 總線(xiàn)傳輸時(shí)序和SPI操作時(shí)序關(guān)系[3?4],要想實(shí)現STM32和ISD4004之間的SPI通信,須將其控制位CPHA和CPOL都設置為[4]1.

3.2 SPI控制功能軟件實(shí)現

3.2.1 SPI1讀寫(xiě)字節函數

在讀數據時(shí),接收到的數據被存放在一個(gè)內部的接收緩沖器中;在寫(xiě)數據時(shí),在被發(fā)送之前,數據將首先被存放在一個(gè)內部的發(fā)送緩沖器中。對SPI_DR寄存器的讀操作,將返回接收緩沖器的內容;寫(xiě)入SPI_DR寄存器的數據將被寫(xiě)入發(fā)送緩沖器中。

SPI_SR是16位狀態(tài)寄存器,它的最低位為RXNE,該位為0則接收緩沖為空,為1則接收緩沖非空;SPI_SR的次低位為T(mén)XE,該位為0說(shuō)明發(fā)送緩沖非空,為1則發(fā)送緩沖為空。不斷地查詢(xún)發(fā)送/接收緩沖區是否為空,進(jìn)而實(shí)現數據的有序發(fā)送和接收。

3.2.2 發(fā)送指令函數

首先,語(yǔ)音芯片ISD4004有如下操作規則[4]:

(1)串行外設接口,SPI協(xié)議設定微控制器的SPI移位寄存器在SCLK下降沿動(dòng)作,在時(shí)鐘上升沿鎖存MOSI引腳數據,在下降沿將數據送至MISO引腳。

(2)上電順序,器件延時(shí)TPUD(8 kHz采樣時(shí),約為25 ms)后才能開(kāi)始操作。因此,用戶(hù)發(fā)完上電指令后,必須等待TPUD,才能發(fā)出下一條操作指令。例如,從00處放音,應遵循如下時(shí)序:

① 發(fā)POWER UP命令;

② 等待TPUD(上電延時(shí));

③ 發(fā)地址值為00的SET PLAY命令;

④ 發(fā)PLAY命令。

器件會(huì )從00地址開(kāi)始放音,當出現EOM時(shí),立即中斷,停止放音。

如果從00處錄音,則按以下時(shí)序:

① 發(fā)POWER UP指令;

② 等待TPUD(上電延時(shí));

③ 發(fā)POWER UP命令;

④ 等待2倍TPUD;

⑤ 發(fā)地址值為00的SET REC命令;

⑥ 發(fā)REC命令。

器件便從00地址開(kāi)始錄音,一直到出現OVF(存儲器末尾)時(shí),錄音停止。

3.3 中斷服務(wù)程序

錄音中斷服務(wù)程序流程如圖5 所示。它實(shí)現的功能是在一次長(cháng)按錄音鍵時(shí),將一個(gè)景點(diǎn)的語(yǔ)音信息錄入ISD4004中以預先設定的起始地址存儲空間中,松開(kāi)錄音鍵后,本景點(diǎn)語(yǔ)音內容錄音停止。每個(gè)景點(diǎn)的導覽語(yǔ)音存儲的位置,以其起始地址為標示。起始地址的安排根據每段語(yǔ)音的長(cháng)度決定。每個(gè)景點(diǎn)語(yǔ)音錄音時(shí)需保持錄音按鍵鎖下不松開(kāi),直至本段景點(diǎn)語(yǔ)音錄音結束。

景點(diǎn)語(yǔ)音播放中斷服務(wù)程序流程如圖6 所示。系統在獲得RFID讀卡器的中斷申請之后,根據讀卡器接口協(xié)議[8],MCU經(jīng)SPI2接口接收到讀卡器傳來(lái)的數據信息,分析出RFID所含的ID信息內容,并根據ID所對應的景點(diǎn)位置,即原設置的景點(diǎn)語(yǔ)音首地址,將此首地址發(fā)送到ISD4004 芯片組,并發(fā)送放音命令,即可實(shí)現對應景點(diǎn)事先錄制好的導覽語(yǔ)音自動(dòng)播放。開(kāi)始播放語(yǔ)音信息期間,ISD4004 的I-N-T- 端連接到了STM32 的I/O口上,不斷查詢(xún)它的狀態(tài)。當這段語(yǔ)音信息放完時(shí),語(yǔ)音芯片ISD4004的I-N-T- 端會(huì )置低,由此發(fā)送停止播放指令,則實(shí)現播音結束,并等待下一個(gè)RFID信息的輸入和讀卡器中斷申請。

4 系統調試測試結果

4.1 錄放音模塊調試

對于錄音模塊功能的測試,采用如下的辦法:對著(zhù)麥克風(fēng)進(jìn)行放音,用示波器觀(guān)察語(yǔ)音芯片的輸入引腳是否有信號。在語(yǔ)音芯片輸入引腳檢測到信號,如圖7(a)所示。

在成功錄入語(yǔ)音后,發(fā)送放音指令在語(yǔ)音芯片輸出引腳得到如圖7(b)所示波形。

4.2 SPI模塊調試

在錄音電路正確后,發(fā)送放音指令,在芯片對應SPI1模塊功能的引腳端,可以在示波器上看到正確的時(shí)序,如圖8所示。

圖8(a)是片選和時(shí)鐘信號輸出;圖8(b)和(c)分別是不停地發(fā)送0×55,在STM32 SPI1的數據發(fā)送端MOSI和數據接收端MISO得到的波形,與實(shí)際相符。

5 結論

本文提出的系統結構簡(jiǎn)單、實(shí)用可靠,特別適用于山區自然景點(diǎn)的有軌旅游列車(chē)項目等,因而該系統具有很好的實(shí)用價(jià)值??捎糜趶碗s環(huán)境下的語(yǔ)音導覽系統實(shí)現結構,詳細介紹了系統主要功能模塊的實(shí)現技術(shù)和調試實(shí)驗結果。



評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>