長春工程學(xué)院 王秀艷
國家電網(wǎng)長春供電公司 王洪凱
雅礱江公司二灘水力發(fā)電廠 王秀梅
長春工程學(xué)院 晉漢林
基于Arduino Mega2560平臺的無線語音錄放系統(tǒng)的設(shè)計
長春工程學(xué)院 王秀艷
國家電網(wǎng)長春供電公司 王洪凱
雅礱江公司二灘水力發(fā)電廠 王秀梅
長春工程學(xué)院 晉漢林
本文論述了一種無線語音錄放系統(tǒng)的設(shè)計過程,包括硬件電路構(gòu)成及軟件編譯。本系統(tǒng)依托Arduino技術(shù)平臺,以其Mega2560型號電路板作為中央處理單元,采用ISD1760芯片作為語音錄放單元,通過NRF24L01模塊電路進行無線對接,可在SPI協(xié)議下實現(xiàn)語音無線錄放功能。該系統(tǒng)信息存儲量大,接口豐富,靈活方便,快捷高效,音質(zhì)好,具備良好擴展性,適用范圍廣。
語音錄放;Arduino;ISD1760芯片;串行通信協(xié)議
Key_words: Audio Record- play;Arduino;ISD 1760 chip;Series communication
語音錄放電路在電子產(chǎn)品中用途廣泛,生活工作中隨處可見,可應(yīng)用于報警、鈴聲、復(fù)讀、人機語音應(yīng)答對話等各個方面,但傳統(tǒng)語音電路的設(shè)計十分復(fù)雜,開發(fā)工具較為昂貴。近年來,隨著模擬存儲語音技術(shù)的ISD芯片的出現(xiàn)和發(fā)展,語音錄制、播放設(shè)計難度及軟件編譯的工作量降低了,同時語音音質(zhì)有所提高。下面以Arduino平臺為核心設(shè)計一種方便快捷高效的語音錄放系統(tǒng),主要由硬件電路搭建和軟件編譯兩部分構(gòu)成。
系統(tǒng)主要由中央控制器、語音模塊、通信模塊等構(gòu)成,系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)框圖
1.1系統(tǒng)中央處理單元
Arduino于2005年由一個歐洲團隊開發(fā),它包含多種型號的電路板和Arduino IDE編譯軟件,是一款開源電子原型平臺。本設(shè)計采用Arduino Mega2560型號電路板作為該語音錄放系統(tǒng)中央處理單元,其核心器件是Atmega2560芯片。它具有256KB存儲容量,多達54路數(shù)字輸入輸出端口,包括 PWM輸出、UART、ICSP header、USB、電源等接口,以及16MHz晶體振蕩器,并具備過流保護功能。豐富的接口和強大的功能特別適合需要大量IO接口的設(shè)計,采用該電路板利于本語音錄放系統(tǒng)外擴應(yīng)用于其它電路中,實現(xiàn)更多功能,如報警電路等。
1.2語音錄放單元部分
采用ISD1760芯片作為語音錄放芯片。ISD1760是Winbond推出的單片優(yōu)質(zhì)語音錄放電路,音質(zhì)好,電壓范圍寬,應(yīng)用靈活,可錄、放音十萬次,存儲內(nèi)容可以斷電保留一百年。芯片內(nèi)部包含有麥克風(fēng)前置擴大器、揚聲器驅(qū)動線路、自動增益控制、振蕩器與內(nèi)存等的多方位整合系統(tǒng)功能及內(nèi)置多信息管理系統(tǒng),并可以根據(jù)需求定制信息操作指示音效。ISD1760芯片具備獨立及嵌入式雙運作模式,多種采樣頻率對應(yīng)多種錄放時間,可處理多達255 段以上信息,功能強大。
1.3無線傳輸單元
采用NRF24L01芯片作為傳輸模塊,建立主控制器和語音模塊之間無線通信。NRF24L01是一款工作在2.4GHz-2.5GHz的ISM 頻段的單片無線收發(fā)器芯片。無線收發(fā)器包括:晶體振蕩器、調(diào)制器和解調(diào)器、頻率發(fā)生器、SchockBurst增強型模式控制器及功率放大器。NRF24L01可以連接到大多數(shù)型號單片機芯片上,并完成無線數(shù)據(jù)傳送工作,通過其SPI 接口進行輸出功率頻道選擇和通信協(xié)議的設(shè)置,電流消耗極低。
Arduino是開源的,它的燒錄程序可從官網(wǎng)或其他參考資料中獲得幫助,但就本系統(tǒng)而言,依據(jù)具體硬件電路結(jié)構(gòu)及端口配置下要實現(xiàn)語無線音錄放功能,仍需制定通訊協(xié)議并自行編譯軟件。ATmega2560芯片內(nèi)已經(jīng)預(yù)置了bootloader程序,本系統(tǒng)通過ICSP header接口將軟件編譯程序直接下載到Arduino Mega2560電路板中。
2.1通信協(xié)議
SPI(Serial Peripheral Interface) 是由美國摩托羅拉公司推出的一種同步串行傳輸規(guī)范。SPI 可以用全雙工通信方式同時發(fā)送和接收 8/16位數(shù)據(jù),在芯片的管腳上只占用四根線,節(jié)約了資源,同時為PCB的布局上節(jié)省空間。該語音錄放系統(tǒng)核心主要部件都集成了這種協(xié)議或具備相應(yīng)接口, 這為采用SPI串行通信傳輸協(xié)議了提供便利條件,簡單易行。
圖2 程序流程圖
2.2程序編譯
程序的編譯主要包括無線通信和語音錄放部分。用兩塊NRF24L01無線通信模塊分別作為信號的發(fā)送和接收端,連接在主機中央管理單元和從機語音錄放電路中。確定好各部件之間連接及端口對應(yīng)關(guān)系后,NRF24L01芯片分別設(shè)置為發(fā)送模式和接收模式。語音錄放部分是將Arduino Mega2560的指令發(fā)送到ISD1760芯片,控制其工作狀態(tài),并將語音電路信息反饋回控制單元盡行處理,這部分主要通過鍵盤掃描的處理和當(dāng)前狀態(tài)的判斷來實現(xiàn)。系統(tǒng)通過鍵盤掃描按鍵操作過程,檢測按下去的什么鍵值來判斷當(dāng)前狀態(tài), 并就錄音、放音、停止、刪除等狀態(tài)進行實時判斷和控制,其程序流程圖如圖2所示。
系統(tǒng)設(shè)計和實施流程為:制定總體方案-用Altium Designer軟件設(shè)計PCB圖-印制電路板制作-焊接-軟件編譯-系統(tǒng)統(tǒng)調(diào)。Arduino Mega2560通過SPI串行總線與ISD1760通信,傳輸SPI指令,配置其內(nèi)部寄存器,實現(xiàn)語音錄放。ISD1760作為SPI從機,幾乎所有的按鍵操作都可以通過這些SPI指令來實現(xiàn)。但在設(shè)計、調(diào)試中仍有可能會遇到問題需要注意。
(1)語音地址長度推算
以ISD1760語音芯片采樣率為8K時為例,一共可播放60S的語音。
算法一:開始地址為:S0-S10,結(jié)束地址為:E0-E10,這樣算下來地址就是:0X7FF=2047,從0-2047為2048個字節(jié),采樣頻率為8K,即每個字節(jié)就是125mS,125mS*2048=256S,但實際的錄音時長為60S,所以這是錯誤的。
算法二:最大地址為0X1EF,錄音實際地址為0X10-0X1EF,則最大地址為:0X1EF-0X10=0X1DF=479。479+1=480個字節(jié),480*125mS=60S,即采樣率為8K時,每1個地址的最小語音長度為125mS。故此知道單個語音的長度,可自行推斷出每個語音所占的地址長度,此為正確算法。
(2)硬件電路部分
首先Arduino Mega2560電路板絲印層上并沒有注明SPI接口,其引腳接口對應(yīng)關(guān)系為:50引腳-MISO,51引腳-MOSI,52引腳-SCK,53引腳-SS。其次板載ICSP接口也是串行通信接口,它是兼容SPI的,也可用此接口,但要注意線序。再次,Arduino Mega2560提供了自動復(fù)位設(shè)計,可以通過主機復(fù)位,不需要復(fù)位按鈕的話,可在Altium Designer設(shè)計PCB圖時,將印制板上絲印“RESET EN”處可使能或禁止該功能。此外,ISD1760的參考資料手冊中,設(shè)計上復(fù)位腳直接了個0.1uF到地,沒有上拉電阻構(gòu)成阻容復(fù)位,同時容易受到干擾意外復(fù)位。為了防止單片機IO口狀態(tài)不穩(wěn)定,可在主控單元與ISD芯片間加一個反向器74HC04,這樣可起到隔離作用。
(3)音源輸入方式
語音音源可以通過麥克錄入,也可以是事先錄制好的一段語音或者歌曲等數(shù)字信號。ISD1760芯片錄入的是模擬信號時,用按鍵方式或SPI指令啟動錄音后,通過MIC管腳和LIN管腳輸入語音。如果不用麥錄,而是MP3等格式數(shù)字信號文件做音源,通過電腦或其他方式播放出來,輸出端不要接喇叭,而是要通過一個104電容,再連接到第9腳-LIN管腳上。
(4)SPI模式下播放問題
如果語音電路在獨立模式下可以播放,但在SPI模式下不能正常播放,一般來說芯片應(yīng)該沒什么問題,此時檢查下?lián)P聲器連接的是SP+/-還是AUD/AUX+功放輸出。ISD1760芯片內(nèi)部的APC寄存器的默認值是0X0440,即表示PWM和AUD輸出是使能的。如果功放電路只有在AUX輸出時才是正常的,則必須把APC的設(shè)置為0X04C0以打開AUX輸出,避免主控單元的單片機正常,而ISD1760的復(fù)位鍵關(guān)閉了AUX。
[1]谷樹忠,耿曉中,王秀艷編著.Altium Designer實用教程—原理圖、PCB設(shè)計與信號完整性分析[M].電子工業(yè)出版社,2015,10.
[2]林海波,王秀艷主編.電子工藝實訓(xùn)基礎(chǔ)[M].中國電力出版社,2009,7.
[3]艾學(xué)忠主編.單片機原理及接口技術(shù)[M].機械工業(yè)出版社,2012,8.
[4]陳呂洲編著.Arduino程序設(shè)計基礎(chǔ)[M].北京航空航天大學(xué)出版社,2015.
The design process of a wireless Audio record-pay system is introduced in this paper. This system includes hardware circuit and software compiling. Arduino is its techniqneplatform,Mega2560 is its CPU.ISD1760 is its record-pay unit. It can implement sound’s wireless record-play function with SPI proscal through NRF240L01.IT is detected that this system have such advatages an much information storage, multi-interface, fexibility, effciency and good quality.
吉林省教育廳“十二五”科學(xué)技術(shù)研究項目,項目編號:吉教科合字(2014)第539號國家級“大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃”項目,項目編號:201611437040。
王秀艷(1972—),女,碩士,實驗師,出版教材3部。