當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]景點(diǎn)語(yǔ)音導(dǎo)覽主要有以下幾種方式:一種是通過(guò)全球定位系統(tǒng)(GPS)的用戶終端接收工作衛(wèi)星的導(dǎo)航信息,從而解算出車輛的經(jīng)緯度信息,進(jìn)而計(jì)算出實(shí)時(shí)坐標(biāo),將其與景點(diǎn)坐標(biāo)相比較

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

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

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

1 系統(tǒng)總體設(shè)計(jì)

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

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

 


2 主要模塊電路設(shè)計(jì)

2.1 ISD4004控制電路設(shè)計(jì)

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

 

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

 


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

全雙工通信的數(shù)據(jù)輸出和數(shù)據(jù)輸入是用同一個(gè)時(shí)鐘信號(hào)同步的;時(shí)鐘信號(hào)由主設(shè)備STM32通過(guò)SCK腳提供。

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

2.2 語(yǔ)音錄放控制電路設(shè)計(jì)

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

 


2.3 RFID讀卡器接口電路

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

3 主要功能軟件設(shè)計(jì)

3.1 軟件初始化

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

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

3.1.2 I/O口的初始化

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

3.1.3 外部中斷的初始化

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

3.1.4 SPI模塊的初始化

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

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

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

3.2.1 SPI1讀寫(xiě)字節(jié)函數(shù)

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

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

3.2.2 發(fā)送指令函數(shù)

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

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

(2)上電順序,器件延時(shí)TPUD(8 kHz采樣時(shí),約為25 ms)后才能開(kāi)始操作。因此,用戶發(fā)完上電指令后,必須等待TPUD,才能發(fā)出下一條操作指令。

例如,從00處放音,應(yīng)遵循如下時(shí)序:

① 發(fā)POWER UP命令;

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

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

④ 發(fā)PLAY命令。

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

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

① 發(fā)POWER UP指令;

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

③ 發(fā)POWER UP命令;

④ 等待2倍TPUD;

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

⑥ 發(fā)REC命令。

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

3.3 中斷服務(wù)程序

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

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

 


 


4 系統(tǒng)調(diào)試測(cè)試結(jié)果

4.1 錄放音模塊調(diào)試

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

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

 


4.2 SPI模塊調(diào)試

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

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

 


 


5 結(jié)論

本文提出的系統(tǒng)結(jié)構(gòu)簡(jiǎn)單、實(shí)用可靠,特別適用于山區(qū)自然景點(diǎn)的有軌旅游列車項(xiàng)目等,因而該系統(tǒng)具有很好的實(shí)用價(jià)值??捎糜趶?fù)雜環(huán)境下的語(yǔ)音導(dǎo)覽系統(tǒng)實(shí)現(xiàn)結(jié)構(gòu),詳細(xì)介紹了系統(tǒng)主要功能模塊的實(shí)現(xiàn)技術(shù)和調(diào)試實(shí)驗(yàn)結(jié)果。[!--empirenews.page--]

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉