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