總體設計
語音測距系統要求實現以下功能:運動靶車入庫時,超聲波模塊(集成溫度補償)即實時測量靶車與庫區極限位置之間的距離,操作者按下遙控器,語音播報模塊激活,開始播報測量數據。
溫度測量采用1-Wire 器件DS18B20實現,語音播報的核心器件是華邦公司出品的ISD1730,單片機選用51系列AT89S51。除此之外,還有LCD顯示、矩陣鍵盤、紅外遙控等單元,其中語音芯片ISD1700是整個系統的關鍵器件,本文著重介紹ISD1730的性能特點、電路設計及編程要點。圖1是系統結構框圖。
圖1 總體結構框圖
ISD1730是一種高集成度、高性能、高音質的語音錄放芯片,內部含有自動增益控制、麥克風前置放大器、揚聲器驅動等電路;可處理多達255段語音信息,可以多段錄音并由片內專門的存儲系統來管理;采樣率可在4KHz至12KHz間調節,支持獨立按鍵和SPI兩種操作模式;帶負載能力強,可直接驅動小型揚聲器;具有4 種預設音效,錄音數據存儲在FLASH 內,不經任何壓縮,因此有較好的音質。
為便于單片機控制,本文將ISD1730置于SPI工作模式,根據芯片手冊,ISD1730可直接驅動8Ω阻抗揚聲器或普通耳機,但為增強帶負載能力,保證語音傳輸距離,在ISD1730的后置環節設計了功率放大電路—LM386,見圖2所示,功率放大電路能提供50倍以上的增益,可以驅動阻抗16Ω的揚聲器。
圖2 ISD1730語音錄放系統
超聲波測距單元
結合庫區的實際,本文采用分立元件,自行設計超聲波測距電路,如圖3所示。超聲波探頭中心頻率為40kHz,方向角60度,工作溫度-20—70℃,能滿足庫區工作的需要。圖4是設計的超聲波測距模塊實物。
圖3 超聲波測距單元原理圖
其他單元
其余單元功能如下,LCD單元用來顯示實驗數據,便于系統調試。矩陣鍵盤單元用來實現按鍵輸入;紅外遙控單元負責整個系統的觸發,一體化紅外接收頭與單片機Int0連接,當用戶按下遙控器按鍵時,Int0產生中斷,單片機發出語音播報指令。
軟件編程
ISD1730軟件設計
SPI相關命令
SPI模式下,ISD1730相關命令如表1所示。注意芯片管腳2連接一只藍色LED,用以指示語音芯片工作狀態,為使能此LED,所有的指令碼bit4必須置1。
表1 ISD1730相關命令
ISD1730編程要點
ISD1730采用flash作為存儲器,內存地址0x00~0xff,其中0x00~0x0f為音效存儲單元。實現語音播報,需預先錄制距離數據,下列數組可以作為數據緩存:
unsigned char code voic_mem[]={ //定義語音儲存單元
0x10,0x13,0x14,0x17, //語音“0”、“1”起始地址和結束地址
0x18,0x1b,0x1c,0x1f, //語音“2”、“3”起始地址和結束地址
0x20,0x23,0x24,0x27, //語音“4”、“5”起始地址和結束地址
0x28,0x2b,0x2c,0x2f, //語音“6”、“7”起始地址和結束地址
0x30,0x33,0x34,0x37, //語音“8”、“9”起始地址和結束地址
0x40,0x43,0x44,0x47, //語音“百”、“十”起始和結束地址
0x48,0x4b,0x4c,0x4f, //語音“點”、“米”起始和結束地址
};
ISD1730的語音錄制有5種采樣頻率可選,采樣頻率越高,語音品質越好,但可錄制的時間越短,采樣頻率取決于芯片ROSC管腳的外接電阻,錄音時長、采樣頻率與振蕩電阻的對應關系見表2。
表2 錄音時長、采樣頻率與振蕩電阻阻值的對應關系
圖2的接法設定采樣頻率為8kHz,根據ISD1730技術手冊,采樣頻率為8kHz時,每一內存單元可錄制125ms語音,實驗時需要錄制16段語音,程序規劃每一語音片斷占用4個內存單元,即每一語音片斷占用0.5s時長。
超聲波測距編程要點
距離測量與換算在 INT1 中斷服務子函數中完成,該子函數啟動計數器計算收到回波的時長,再根據超聲波傳播速度計算得到測量距離,在此注意增加延時函數,確保測量完成。
超聲波傳播速度易受溫度影響,因此需增加溫度測量以修正超聲波傳播速度,從而實現對測量距離的補償。讀取溫度時應注意數據轉換,將溫度低8位和高8位轉換為1個16位的數,其高5位是相同的,代表符號,低11位,是溫度的二進制數,其中高7位是溫度整數,低4位是溫度小數;如果是負溫度,則從溫度寄存器讀出的是補碼,應將補碼取反加1得到原碼。
DS18B20的小數位可以這樣理解:單片機發出讀取溫度寄存器命令后,DS18B20會返回9組數據,其中第一組數據的低4位代表溫度小數部分,換言之,即是把1度分解為16個4位二進制數來表示,則溫度小數部分的精度為1/16=0.0625。
應用與測試
將本系統安裝在運動靶車上,靶車入庫時,按下遙控器,揚聲器持續播報靶車與極限位置之間的距離,當距離達到要求時,即控制靶車停止運行。經實際測試,操作者用本系統在庫區外即可完成距離測量,測量距離最遠可達4米,效果令人滿意。
評論
查看更多