基于MP3的汽車報(bào)站器
關(guān)鍵詞 報(bào)站器 MP3 FATl6文件系統(tǒng) AT89C51SNDlC 閃存 LED點(diǎn)陣顯示
隨著城市的快速發(fā)展,公交線路不時(shí)地在進(jìn)行調(diào)整,站名也隨之進(jìn)行變化,而且車載廣告也越來越受到商家的重視,因此一款能夠方便地更換語音信息、播放高質(zhì)量語音信息的汽車報(bào)站器顯得越來越重要。傳統(tǒng)的汽車報(bào)站器都是采用專用語音合成芯片制成的。語音合成芯片受信息容量、語音音質(zhì)的限制,且更換信息需專業(yè)設(shè)備及人士,因而使研制一種新型汽車報(bào)站器顯得極為重要。本文設(shè)計(jì)的報(bào)站器可非常方便地更換播放內(nèi)容,并可播放高品質(zhì)的音樂。
1 報(bào)站器功能
該報(bào)站器具有如下功能:
◇可作為優(yōu)盤與電腦連接。用戶可自行下載報(bào)站器的播放內(nèi)容,也可方便地更改播放內(nèi)容。
◇可通過編輯播放列表文件更改所要播放的文件。
◇具有16個(gè)16×16的點(diǎn)陣漢字,語音播放時(shí)可同時(shí)用漢字提示播放內(nèi)容。
◇播放高品質(zhì)的音樂,無報(bào)站播放時(shí)可作為MP3播放器,提高公交車服務(wù)質(zhì)量。
2 系統(tǒng)工作原理
本系統(tǒng)采用AT89C51SNDlC單片機(jī)(內(nèi)部集成MP3解碼器)作為主控CPU及解碼MP3數(shù)據(jù),實(shí)現(xiàn)對(duì)報(bào)站信息播放、點(diǎn)陣字符顯示、文件存儲(chǔ)以及用作優(yōu)盤功能時(shí)USB與PC機(jī)聯(lián)機(jī)的控制。系統(tǒng)利用FATl6在K9F1208上實(shí)現(xiàn)文件系統(tǒng),形成一個(gè)Windows可識(shí)別訪問的64MB尋址區(qū)域。結(jié)合USB控制器,系統(tǒng)可作為優(yōu)盤在Windows下使用,從而實(shí)現(xiàn)在Windows下對(duì)文件的管理以及數(shù)據(jù)存儲(chǔ)功能。系統(tǒng)利用FATl6文件系統(tǒng)在K9F1208上設(shè)置了一個(gè)名為SCHEDULE.LST的列表文件。該列表文件的不同行列取了根目錄下不同的MP3文件名稱,鍵盤的不同按鍵對(duì)應(yīng)了列表文件不同行中的MP3文件名稱;當(dāng)有一按鍵按下時(shí),程序找到列表文件中相應(yīng)行對(duì)應(yīng)的MP3文件進(jìn)行播放。這樣通過程序的設(shè)定,公交車可通過鍵盤實(shí)現(xiàn)MP3格式聲音信號(hào)的報(bào)站以及各種信息的廣播。列表文件在系統(tǒng)對(duì)閃存初始化時(shí)生成,系統(tǒng)在對(duì)閃存進(jìn)行格式化的同時(shí)生成該名為sCHEDULE.LST的列表文件。該列表文件可在Windows下利用記事本打開,編輯所需播放的MP3名稱。播放報(bào)站信息的同時(shí)通過16個(gè)16×16的LED點(diǎn)陣顯示相應(yīng)的播放內(nèi)容。系統(tǒng)框圖如圖1所示。
3 部分電路
AT89C51SNDlC是Atmel公司推出的一款集成MP3硬件解碼器及USB revl.1控制器的單片機(jī)。它基于8位C51 MCU核(最高時(shí)鐘頻率為20 MHz),內(nèi)置2304字節(jié)RAM及64KB Flash程序空間,具有4KB引導(dǎo)閃存,提供超過44個(gè)可用的通用I/O口及多種接口。其中非常方便的設(shè)計(jì)是4位可中斷的鍵盤口和I2S格式音頻接口。4位可中斷鍵盤口可組成4×4的鍵盤矩陣,而I2S接口簡化了系統(tǒng)電路。本設(shè)計(jì)的DAC采用的是UDAl330。UDAl330是Philips公司推出的一款內(nèi)部集成耳機(jī)運(yùn)算放大器、帶有I2S接口的DAC。采用UDAl330可進(jìn)一步簡化系統(tǒng)電路,并且提供L3模式及靜態(tài)控制兩種控制方式,最高可提供20位的高品質(zhì)聲音,是一種較為理想的選擇。
系統(tǒng)原理圖如圖2所示。
3.1 語音處理部分
AT89C51SNDlC芯片內(nèi)部的解碼電路支持MEPG I/II聲音格式第三層格式的硬解碼,可處理48 kHz、44.1kHz、32 kHz、24 kHz、22.05kHz和16 kHz采樣頻率的MP3音頻信號(hào),支持31級(jí)的低、中、高均衡控制及左右聲道獨(dú)立音量控制,音質(zhì)效果方面明顯好于語音合成芯片。
MP3文件存儲(chǔ)于閃存K9F1208中。當(dāng)進(jìn)行報(bào)站信息播放時(shí),MCU按照系統(tǒng)當(dāng)前的狀態(tài)及所按的按鍵,按照程序的設(shè)定從列表文件SCHEDULE.IST中查找應(yīng)播放的MP3文件名。在查找、打開該文件后,檢測該文件MP3數(shù)據(jù)的各幀,并查看幀頭所帶的信息是否與該幀一致。如果發(fā)現(xiàn)整個(gè)錯(cuò)誤在容差范圍內(nèi),則認(rèn)定文件可以播放。MCU對(duì)解碼器的控制是通過9個(gè)與MP3解碼器相關(guān)的特殊功能寄存器來實(shí)現(xiàn)的。只有輸入緩沖區(qū)中已經(jīng)有一完整的幀時(shí),解碼器才能開始播放。解碼器通過MP3解碼狀態(tài)寄存器MP3STA及MP33TAl中的MPREQ、MPFREQ、MPBREQ位來實(shí)現(xiàn)對(duì)MP3輸入緩沖管理的握手信號(hào)。播放時(shí),MCU從MP3文件中取出MP3數(shù)據(jù)幀送入MP3DAT寄存器。當(dāng)解碼器需要數(shù)據(jù)時(shí),通過握手信號(hào),并引發(fā)相應(yīng)中斷,通知MCU向MP3DAT中輸入數(shù)據(jù)。解碼器還支持CRC校驗(yàn)、幀同步錯(cuò)誤校驗(yàn)等功能,這里不再贅述。
與UDAl330的連接上,AT89C51SND1C的I2S接口引腳分別接到UDAl330對(duì)應(yīng)的引腳上。為提高音頻信號(hào)音質(zhì),UDAl330采用L3模式,APPSEL接地。該模式下,APPL0作為測試引腳,APPL1作為L3模式的時(shí)鐘,APPL2作為L3模式控制,APPL3作為L3模式的數(shù)據(jù)輸入,它們分別與AT89C5lSNDlC的P4.7、P4.4、P4.5、P4.O相連。
報(bào)站器不需要錄音功能,因此MIC電路無須接入MP3電路中。MIC電路的音頻信號(hào)作為汽車功放的另一路輸入接入,如圖3所示。
3.2 優(yōu)盤功能部分
該功能涉及在K9F1208上FATl6文件系統(tǒng)的實(shí)現(xiàn)與管理,以及作為USB從機(jī)與主機(jī)間的通信。K9F1208是三星公司推出的一款64 MB的Flash芯片,芯片存儲(chǔ)區(qū)域分為4096個(gè)塊,每個(gè)塊又分32頁,每頁有512 KB+16字節(jié)。Flash的讀/寫有如下特點(diǎn):必須以頁為單位進(jìn)行讀寫,寫之前必須先擦除原內(nèi)容;擦除操作必須對(duì)Block進(jìn)行,即一次至少擦除一個(gè)Block的內(nèi)容。因此FATl6的實(shí)現(xiàn),可將Flash出的一頁定為1個(gè)扇區(qū),將其2個(gè)塊(64個(gè)扇區(qū))定為一個(gè)簇。這樣,簇的容量剛好為512字節(jié)×64=32KB,滿足FATl6對(duì)簇大小的要求。在FATl6分配空間時(shí),其邏輯塊地址(LBA)與Flash實(shí)際物理地址的轉(zhuǎn)換可以按以下公式進(jìn)行:
F1ash的塊地址=邏輯塊地址/0x20
Flash的頁地址=邏輯塊地址%0x20
按照這樣的結(jié)構(gòu)及FATl6的要求,在K9F1208上實(shí)現(xiàn)DBR、FAT、DIR和DATA四個(gè)區(qū),即可實(shí)現(xiàn)優(yōu)盤中的磁盤管理功能。AT89C5lSND1C芯片內(nèi)集成有USB控制器,由于Mass Storage協(xié)議及端點(diǎn)配置、枚舉、通信過程較為復(fù)雜,這里不再贅述,硬件連接請(qǐng)參考圖2。
3.3 顯示電路
如圖4所示,顯示電路由IDT7132、AT89C5l、74LSl54、74HC573以及1個(gè)16×256的LED點(diǎn)陣屏構(gòu)成。IDT7132是一片容量為32 KB的雙口RAM,由于16×256的LED點(diǎn)陣屏顯示緩存共需512字節(jié)的存儲(chǔ)空間,電路使用它與AT89C5lSNDlC接口并存儲(chǔ)漢字顯示信息。16×256的LED點(diǎn)陣屏可顯示16個(gè)16×16的點(diǎn)陣漢字,顯示屏分32頁,每頁又分成16行。本設(shè)計(jì)采用兩片4-16譯碼器74LS154組合成一個(gè)5-32譯碼器,作為頁譯碼器;采用一片74LSl54作為行譯碼器。每一頁對(duì)應(yīng)一個(gè)74HC573,用于鎖存該頁某一行顯示的內(nèi)容;32個(gè)74HC573可鎖存16×256的LED點(diǎn)陣屏一行的內(nèi)容,顯示屏由7407驅(qū)動(dòng)。AT89C5l從雙口RAM規(guī)定區(qū)域取出顯示內(nèi)容,控制頁譯碼器把數(shù)據(jù)分別送入每一頁的當(dāng)前行中,然后控制行譯碼器換行,如此循環(huán)形成動(dòng)態(tài)顯示。顯示電路作為~獨(dú)立模塊使用,報(bào)站器顯示信息時(shí),只需把欲顯示的漢字字模送入雙口RAM對(duì)應(yīng)的存儲(chǔ)區(qū)域。
結(jié)語
隨著MP3播放器硬件成本的降低,MP3報(bào)站器的性能及成本優(yōu)勢越來越明顯,有著廣闊的應(yīng)用前景;且MP3報(bào)靖器可方便地更換廣播信息,具有較高的使用價(jià)值和推廣價(jià)值。