王 鵬
(1.山西機電職業(yè)技術(shù)學(xué)院,山西 長治 046011;2.中北大學(xué)山西 太原 030051)
公交車為外出的人們提供了方便快捷的服務(wù),而公交汽車的報站直接影響服務(wù)的品質(zhì)。傳統(tǒng)的方式系由乘務(wù)人員人工報站,由于該方式效果太差和工作強度太大,在很多大城市被淘汰。隨著科學(xué)技術(shù)的日益發(fā)展和進步,無人售票公交車逐漸增多,語音報站器也被廣泛使用,這在相當(dāng)大程度上免除了乘務(wù)人員沿途報站的麻煩,給許多不熟悉公交線路的乘客帶來了方便。
公交車語音報站器用ISD25120語音芯片構(gòu)成錄/放音電路,用撥動開關(guān)控制錄/放音,用功能鍵控制站名預(yù)播報,提供語音服務(wù)。系統(tǒng)采用分段錄/放音,錄音用駐極式話筒,放音用MC34119低功率音頻放大器驅(qū)動揚聲器。
ISD25120語音芯片采用模擬量存儲技術(shù),把語音信號以原始模擬形式,直接存儲在片內(nèi)EPROM存儲器中,無需進行A/D轉(zhuǎn)換和壓縮處理,錄放音品質(zhì)好。該芯片可持續(xù)或分段錄放音,持續(xù)錄放時間可達120 s,分段錄放最多可分為600段,最小錄放時間單元為0.2 s。芯片采用+5V單電源供電,錄放次數(shù)可達10萬次以上,斷電后可保存信息100年。
ISD25120語音芯片的引腳圖如圖1所示。
各引腳的功能如下:
(1)A0/M0~A6/M6:地址 /模式選擇;
(2)A7~A9:輸入地址線;
(3)AUX IN:輔助輸入;
(4)VSSD、VSSA:數(shù)字地和模擬地;
(5)SP+、SP-:揚聲器輸出;
(6)VCCD、VCCA:數(shù)字電源和模擬電源;
(7)MIC、MICREF:話筒輸入端和輸入?yún)⒖级耍?/p>
(8)AGC:自動增益控制;
(9)ANA IN、ANA OUT:模擬信號輸入和輸出;
(10)OVF:溢出信號,當(dāng)處于芯片存儲空間末尾時,此端輸出低電平脈沖;
(11)CE:片選信號輸入端,此段為低電平時允許芯片工作;
(12)PD:芯片低功耗狀態(tài)控制,該端為高電平時,芯片停止工作進入節(jié)電狀態(tài);
(13)EOM:錄放音結(jié)束信號,放音遇到EOM時,此端輸出低電平脈沖;
(14)XCLK:外部時鐘輸入端;
(15)P/R:錄放音控制選擇,高電平選擇放音,低電平選擇錄音。
圖1 ISD25120語音芯片引腳圖
公交車語音報站器的單片機采用12 MHz晶振,機器周期為1 μs。報站器以AT89C51單片機為核心(如圖2所示),采用ISD25120語音芯片構(gòu)成錄音和放音報站電路,用撥動開關(guān)控制錄/放音,用功能鍵控制站名預(yù)播報,提供語音服務(wù)。系統(tǒng)采用分段錄/放音,錄音用駐極式話筒,放音用MC34119低功率音頻放大器驅(qū)動揚聲器。
圖2 AT89C51單片機
系統(tǒng)設(shè)有K0~K5共6個功能鍵,各鍵的功能如下:
(1)K0為上下行鍵。按下此鍵,車輛運行方向為下行,否則為上行;
(2)K1為預(yù)報鍵。按下此鍵,播報車輛起步時的服務(wù)用語,預(yù)報下一站的站名;
(3)K2為播報鍵。到站按下此鍵,播報車輛到站時的服務(wù)用語;
(4)K3為重復(fù)鍵。按下此鍵,將重復(fù)前一按鍵的預(yù)/播報內(nèi)容;
(5)K4為加1鍵。每按下此鍵一次,則向前越過一個站名;
(6)K5為減1鍵。每按下此鍵一次,則向后越過一個站名。
系統(tǒng)設(shè)有一個發(fā)光二極管,發(fā)光時代表車輛運行在下行方向,否則為上行方向。
在硬件設(shè)計上,單片機的P1口為人機接口,P0、P2口為單片機與語音芯片ISD25120的通信口。P0口的P0.0~P0.5引腳與語音芯片的地址輸入端A4~A9 相連,P0、P2 口的 P0.6、P0.7、P2.6、P2.7 引腳分別與語音芯片的低功耗狀態(tài)控制端PD、錄放音控制選擇端P/R、錄放音結(jié)束信號輸出端EOM、片選端CE相連。
將ISD25120的地址端A0~A3接地,將其控制引腳P/R、PD與地址引腳A4~A9統(tǒng)一編址進行控制。由于A0~A3接地,故語音錄/放最小時間長度為3.2 s。將語音芯片120 s的錄/放時間分為6個錄/放段,第 1、2、3、4、5 段的錄 /放時間均為 16 s(3.2 s×5=16 s),第 6 段的錄放時間為 22.4 s(3.2 s×7=22.4 s)。實際分段錄音時,應(yīng)在不超過設(shè)定的各段錄音時間內(nèi)停止錄音;分段放音時,由地址端提供起始地址,放音持續(xù)到信息結(jié)尾標志(EOM)。
公交車語音報站器應(yīng)用程序的主要功能是:進行按鍵查詢,根據(jù)查詢結(jié)果執(zhí)行各功能鍵對應(yīng)的程序段,完成相應(yīng)操作。程序流程圖如圖3所示。
圖3 公交車語音報站器程序流程圖
公交車運行時,其下行的起始站是上行的終點站,上行的起始站是下行的終點站。無論上行或下行,在起始站都不需要播報站號服務(wù)用語。設(shè)下行時,扎好由0開始依次增大,上行時,站號按反序依次減小,則下行時預(yù)播報服務(wù)用語從第一站開始,到終點站結(jié)束;上行時預(yù)播報服務(wù)用語,從下行終點站的前一站開始,到下行的起始站結(jié)束。錄音時,對下行的起始站,應(yīng)錄制上行終點站的預(yù)播報服務(wù)用語;對上行的起始站,應(yīng)錄制下行終點站的預(yù)播報服務(wù)用語;對中間同一站點,上行和下行的預(yù)播報服務(wù)用語相同,錄制一組即可。
在程序設(shè)計時,設(shè)置20 H.0為上/下行標志位,20 H.1為重復(fù)放音標志位,30 H和31 H單元分別為下行和上行站號寄存器。在有按鍵按下時,延時20 ms去抖動,若確認有鍵按下,則檢查按鍵操作是否有誤,如有誤則自動糾錯,無誤則執(zhí)行相應(yīng)的功能。
本文是作者在單片機語音報警工作原理的基礎(chǔ)上,設(shè)計實現(xiàn)了公交車語音報站器匯編語言程序。這套程序設(shè)計簡單,使用廣泛,可以應(yīng)用于大部分公交車。即使是非電子計算機專業(yè)人員,通過學(xué)習(xí)一些專業(yè)基礎(chǔ)知識以后,也能依靠自己的技術(shù)力量,來完成的公交車語音報站的程序應(yīng)用。本文的語音控制系統(tǒng),只是單片機廣泛應(yīng)用于各行各業(yè)中的一例,相信讀者會依靠自己的聰明才智,使單片機的應(yīng)用更加廣泛化。另外,對本例可以作一些擴展,單片機的應(yīng)用越來越廣泛,由于單片機的運算功能較差,往往需要借助計算機系統(tǒng),因此單片機和PC機進行遠程通信,更具有實際意義。
[1]張洪源.汽車技術(shù)使用[M].北京:北京人民交通出版社,1993.
[2]南金瑞.汽車單片機及車載總線技術(shù)[M].北京:北京理工大學(xué)出版社,2007.
[3]黃 鵬.汽車單片機應(yīng)用技術(shù)[M].北京:機械工業(yè)出版社,2010.
[4]李 勇.汽車單片機及車載總線技術(shù)[M].北京:電子工業(yè)出版社,2007.
[5]劉俊萍.汽車電腦與總線技術(shù)[M].武漢:武漢理工大學(xué)出版社,2009.
[6]何洪文.混合動力城市公交車系統(tǒng)設(shè)計[M].北京:北京理工大學(xué)出版社,2010.
[7]許智宏.國產(chǎn)汽車防盜及中控系統(tǒng)維修精華[M].北京:機械工業(yè)出版社,2005.
[8]管秀君.汽車單片機與局域網(wǎng)技術(shù)[M].北京:人民交通出版社,2008.