[計(jì)算機(jī)軟件及應(yīng)用]簡(jiǎn)易音頻播放處理系統(tǒng)的設(shè)計(jì)理工_第1頁(yè)
[計(jì)算機(jī)軟件及應(yīng)用]簡(jiǎn)易音頻播放處理系統(tǒng)的設(shè)計(jì)理工_第2頁(yè)
[計(jì)算機(jī)軟件及應(yīng)用]簡(jiǎn)易音頻播放處理系統(tǒng)的設(shè)計(jì)理工_第3頁(yè)
[計(jì)算機(jī)軟件及應(yīng)用]簡(jiǎn)易音頻播放處理系統(tǒng)的設(shè)計(jì)理工_第4頁(yè)
[計(jì)算機(jī)軟件及應(yīng)用]簡(jiǎn)易音頻播放處理系統(tǒng)的設(shè)計(jì)理工_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、簡(jiǎn)易音頻播放/處理系統(tǒng)的設(shè)計(jì)實(shí)例第十一章 簡(jiǎn)易音頻播放/處理系統(tǒng)的設(shè)計(jì)實(shí)例本章介紹了基于ti公司的一款高性能、低價(jià)格和低功耗的16位定點(diǎn)dsp tms320vc5501(簡(jiǎn)稱c5501),來描述一個(gè)簡(jiǎn)易音頻播放/處理系統(tǒng)的設(shè)計(jì)實(shí)例。該系統(tǒng)能夠?qū)崿F(xiàn)對(duì)音頻信號(hào)的錄音、播放及效果處理等應(yīng)用。c5501主要負(fù)責(zé)執(zhí)行音頻流的輸入/輸出及音頻算法;系統(tǒng)采用tlv320aic32音頻編解碼器(codec)對(duì)音頻信號(hào)采樣成數(shù)字音頻流(audio stream),以及對(duì)音頻流進(jìn)行回放(playback);系統(tǒng)還用到了silabs公司的高性能混合信號(hào)usb閃存單片機(jī)c8051f340,主要負(fù)責(zé)一些輔助工作,如管理

2、sd/mmc卡文件系統(tǒng)、以及提供點(diǎn)陣lcd用戶圖形界面(gui)等;tms320vc5501與c8051f340之間的通信采用的是dsp的主機(jī)接口(hpi),實(shí)現(xiàn)了主機(jī)c8051f340對(duì)tms320vc5501的控制。11.1系統(tǒng)結(jié)構(gòu)概述11.1.1系統(tǒng)硬件結(jié)構(gòu)概述該系統(tǒng)的硬件結(jié)構(gòu)可分為以下部分:ti公司的tms320vc5501 16位定點(diǎn)數(shù)字信號(hào)處理器 (dsp),最高處理速度為300mips 300mhz,芯片采用lqfp-176封裝;silicon laboratories c8051f340高性能增強(qiáng)型mcs-51系列單片機(jī),與tms320vc5501通過16-bit hpi(ho

3、st port interface)接口連接,作為dsp的主機(jī)(host),芯片采用tqfp-48封裝;點(diǎn)陣液晶顯示模塊(dot-matrix lcd module),其內(nèi)部控制芯片為韓國(guó)samsung公司s6b1713,屏幕分辯率為128x64,由c8051f340單片機(jī)控制,通過16針插座與單片機(jī)連接,傳輸方式為8位并行 (8-bit paralleled);模擬鍵盤,作為輸入設(shè)備,其內(nèi)部由電阻串并聯(lián)網(wǎng)絡(luò)構(gòu)成,通過c8051f340的集成a/d轉(zhuǎn)換器進(jìn)行電平采樣及按鍵識(shí)別,用以完成對(duì)圖形界面的操作,因此它與主機(jī)的連接只有2根線;sd/mmc卡座,可插入sd/mmc卡,作為該系統(tǒng)的海量存儲(chǔ)載

4、體,通過spi四線接口與c8051f340單片機(jī)連接;usb 2.0接口,與pc機(jī)連接,可供上傳下載文件到sd/mmc卡;rs-232接口,與pc機(jī)通過超級(jí)終端通信,可供在線調(diào)試單片機(jī)系統(tǒng)的程序;hynix(韓國(guó)現(xiàn)代公司)hy57v281620同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(sdram),與dsp的 16-bit emif接口連接,作為dsp的外部擴(kuò)展存儲(chǔ)器,其容量為128m-bit (16mbytes);texas instruments tlv320aic32可編程低功耗立體聲音頻編/解碼器(codec coder&decoder),可提供16/20/24/32-bit a/d d/a采樣精度,采樣頻

5、率范圍為8khz96khz,通過mcbsp及i2c接口與dsp連接。該系統(tǒng)的硬件結(jié)構(gòu)框圖如圖11-1所示。圖11-1 硬件系統(tǒng)結(jié)構(gòu)框圖本系統(tǒng)的固件可分兩部分單片機(jī)固件和dsp固件。1. 單片機(jī)固件單片機(jī)固件的開發(fā)環(huán)境為keil vision2,用c語(yǔ)言編寫。該固件基于keil提供的rtx-51 tiny實(shí)時(shí)操作系統(tǒng)(real-time operating system rtos),以及silicon laboratories提供的usb海量存儲(chǔ)設(shè)備參考設(shè)計(jì)(usb mass storage device reference design - usb-msd-rd an282)。該固件要完成的主

6、要任務(wù)有:1) 控制lcd顯示,提供圖形界面支持,如文字、窗口、滾動(dòng)菜單的顯示等;2) 監(jiān)視識(shí)別模擬鍵盤的輸入,由a/d采樣值判斷是哪個(gè)鍵按下,以執(zhí)行相應(yīng)的操作(滾動(dòng)菜單、選擇菜單、退出等);3) 驅(qū)動(dòng)sd/mmc存儲(chǔ)卡的存取操作,并在sd/mmc上提供fat文件系統(tǒng)支持;4) 執(zhí)行usb 2.0協(xié)議中的海量存儲(chǔ)設(shè)備(mass storage device)協(xié)議;5) 驅(qū)動(dòng)rs-232程序調(diào)試接口,通過該接口向pc輸出顯示系統(tǒng)狀態(tài),支持簡(jiǎn)單的命令行操作;6) 作為dsp的主機(jī),該固件還要負(fù)責(zé)復(fù)位dsp、啟動(dòng)dsp通過hpi向dsp的引導(dǎo)區(qū)寫入程序代碼,啟動(dòng)后還要給dsp提供音頻數(shù)據(jù)及一些簡(jiǎn)單的

7、命令。2. dsp固件dsp固件的開發(fā)環(huán)境為ccsv 3.1,固件基于ti公司提供的dsp/bios實(shí)時(shí)操作系統(tǒng)、及芯片支持庫(kù)(chip support library - csl)。該固件要完成的主要任務(wù)有:1) 與tlv320aic32通信來實(shí)現(xiàn)音頻的采樣與播放,其連接是通過兩個(gè)總線來完成:i2c作為控制總線,mcbsp作為數(shù)據(jù)總線;2) 接收來自mcu的音頻數(shù)據(jù)及指令,實(shí)現(xiàn)音頻文件的播放;3) 向mcu反饋信息,如程序運(yùn)行狀態(tài),以及要在lcd上顯示的數(shù)據(jù)等(如想要在lcd上以圖形方式顯示的fft結(jié)果);4) 控制sdram時(shí)序(其實(shí)這主要是是由emif硬件來完成的,但是軟件需要對(duì)emif

8、進(jìn)行初始化工作,設(shè)定sdram的時(shí)序參數(shù),比如cas to ras latency等);5) 對(duì)音頻數(shù)據(jù)按照一定的算法進(jìn)行處理(如fir,fft等)。同時(shí)為了提高開發(fā)效率,還使用了ti公司專門為tlv320aic32設(shè)計(jì)的一個(gè)開發(fā)工具aic32 configuration tool,基于java語(yǔ)言,該工具提供了tlv320aic32的所有內(nèi)部寄存器的圖形化設(shè)置,從而大大簡(jiǎn)化了程序的開發(fā)。11.1.2 sd/mmc存儲(chǔ)卡sd/mmc卡是專門為滿足消費(fèi)類電子產(chǎn)品的數(shù)據(jù)存儲(chǔ)需求而產(chǎn)生的,近年來得到眾多廠商與消費(fèi)者的廣泛支持。它具有高容量、高速度、體積小巧、價(jià)格低和數(shù)據(jù)安全性高等諸多優(yōu)點(diǎn),是便攜式數(shù)

9、字產(chǎn)品的理想數(shù)據(jù)載體,特別適合用于存放大容量音/視頻數(shù)據(jù)(如數(shù)碼相機(jī),手機(jī)等)。由于sd卡與mmc卡在一般應(yīng)用場(chǎng)合下都是兼容的(下文將闡述一些特例),因此為簡(jiǎn)明起見,以下稱sd/mmc卡為sd卡。除非特殊說明,sd卡的特性同樣適用于mmc卡。1.sd卡系統(tǒng)特性整體來說,通常sd卡具有以下特性:最大支持1gb容量(本系統(tǒng)目前不支持更高容量的sd卡);兼容sd卡協(xié)議;支持spi接口傳輸模式;電源電壓范圍:2.73.6v;spi時(shí)鐘頻率范圍:025mhz;具有寫保護(hù)開關(guān)(僅通過機(jī)械開關(guān)支持,系統(tǒng)必須根據(jù)開關(guān)的位置來決定是否對(duì)其進(jìn)行寫保護(hù));卡狀態(tài)檢測(cè)(插入/拔除,僅通過機(jī)械開關(guān)支持);最多可重寫約1

10、0,000次。2.sd卡物理特性sd卡的物理特性主要包括有重量: 2.0 g;長(zhǎng)度:32mm 0.1mm;寬度:24mm 0.1mm;厚度:2.1mm 0.15mm。其詳細(xì)尺寸及各引腳的位置如圖11-2所示。圖11-2 sd卡詳細(xì)尺寸及各引腳的位置3.sd卡總線拓?fù)浣Y(jié)構(gòu)sd卡有兩種總線模式:分別為sd模式和spi模式,本系統(tǒng)采用spi模式。在spi模式下,sd卡的spi接口與市場(chǎng)上的大多數(shù)主機(jī)(單片機(jī))的spi接口兼容,其中包括以下四根線:1) cs:主機(jī)到卡線選信號(hào)(host to card chip select signal);2) clk:主機(jī)到卡時(shí)鐘信號(hào)(host to card c

11、lock signal);3) datain:主機(jī)到卡數(shù)據(jù)信號(hào)(host to card data signal);4) dataout:卡到主機(jī)數(shù)據(jù)信號(hào)(card to host data signal);可見,在spi模式下數(shù)據(jù)是串行傳輸?shù)?,而且是全雙工的(收/發(fā)線獨(dú)立)。而在sd模式下,則有4根數(shù)據(jù)線(dat0.3)構(gòu)成4-bit并行接口,收/發(fā)線復(fù)用。這種傳輸模式理論上可以達(dá)到4倍于spi模式的傳輸率(12mb/s),但是它違背了“串行化”的大方向,是一種頗有爭(zhēng)議的接口。更由于mmc卡不支持sd模式,這種模式如今已很少有人使用,本文將不再敘述。4. spi模式下的sd卡引腳定義sd卡上

12、共有9個(gè)引腳,這與mmc卡的引腳(7個(gè))有所不同,但是在spi模式下,sd卡比mmc卡多的兩個(gè)引腳(pin-8, pin-9)是保留的,沒有定義。因此sd卡與mmc卡只有在spi模式下才互相兼容,這也是為什么大多數(shù)sd卡讀卡器(或其它設(shè)備)都選用spi模式而不用sd模式的原因。spi模式下的sd卡引腳定義如表11-1所示。表11-1 spi模式下的sd卡引腳定義引腳號(hào)名稱電氣類型spi定義1cs輸入片選chip select(低電平有效)2datain輸入主機(jī)到卡命令與數(shù)據(jù)host to card commands and data3vss1電源電源地supply voltage ground

13、4vdd電源電源supply voltage5clk輸入時(shí)鐘clock6vss2電源電源地supply voltage ground7dataout輸出卡到主機(jī)命令與數(shù)據(jù)card to host commands and data8保留輸入保留reserved9保留輸入保留reserved5. sd卡座容易理解sd卡座就是用于承載sd卡的一個(gè)插座,需要將它焊到電路板上。由于各個(gè)廠家生產(chǎn)的卡座都不完全一樣,在制作pcb時(shí)需要將所有的卡座引腳按實(shí)際尺寸準(zhǔn)確地畫出來,從而生成pcb引腳圖(footprint)。還要說明的是sd卡座除了引出sd卡上的9個(gè)引腳之外,還有一個(gè)寫保護(hù)開關(guān)腳(寫保護(hù)關(guān)閉時(shí)接地

14、,否則懸空),卡檢測(cè)腳(卡插入時(shí)接地,否則懸空),這些腳可以接到單片機(jī)的輸入port上,并接上拉電阻,程序在對(duì)卡進(jìn)行操作前需要檢測(cè)這些管腳上的邏輯值。其余4個(gè)腳容易看出是固定腳(其實(shí)嚴(yán)格來說只有3個(gè),有一個(gè)是插拔動(dòng)作檢測(cè)腳,但是一般情況不用)。11.1.3 有關(guān)usb海量存儲(chǔ)設(shè)備(usb-msd-rd)簡(jiǎn)介前面提到了本系統(tǒng)的單片機(jī)固件主要基于silicon laboratories提供的usb海量存儲(chǔ)設(shè)備參考設(shè)計(jì)(usb mass storage device reference design - usb-msd-rd an282,以下簡(jiǎn)稱usb-msd-rd)。顧名思義,這是官方提供的為了簡(jiǎn)

15、化開發(fā)過程的現(xiàn)成程序,供開發(fā)人員參考,程序可用于c8051f340單片機(jī)。在此簡(jiǎn)要地介紹一下usb-msd-rd。在眾多流行操作系統(tǒng)支持的usb設(shè)備中,usb海量存儲(chǔ)設(shè)備(usb mass storage device,以下簡(jiǎn)稱usb-msd)得到了最廣泛的支持,我們常說的u盤就是usb-msd類的一種。這一類的usb設(shè)備可以使用pc操作系統(tǒng)(如windows xp)上自帶的驅(qū)動(dòng)程序,因此在很多操作系統(tǒng)上不用安裝驅(qū)動(dòng)程序就可以使用,更不需要專門開發(fā)驅(qū)動(dòng)程序,非常方便。usb-msd-rd固件可以工作在以下兩種方式下:1) 海量存儲(chǔ)設(shè)備模式 (mass storage device mode),

16、連接到pc機(jī)的usb接口;2) 獨(dú)立的嵌入式系統(tǒng)模式(independent embedded system mode),連接到pc機(jī)的rs-232接口。在海量存儲(chǔ)設(shè)備模式中,系統(tǒng)將會(huì)以u(píng)sb海量存儲(chǔ)設(shè)備(u盤)的形式出現(xiàn)在pc機(jī)上,該模式用到的模塊有:“usb”、“mass storage device”、“scsi”、“ sector server” 和“media access”。在嵌入式系統(tǒng)模式中,系統(tǒng)可以通過uart外殼(shell)接受來自連接到pc機(jī)上的rs-232接口命令,該模式會(huì)用到外部rs232 收發(fā)器(如max232,max3221)、一些片上外設(shè)(如adc,uart)以

17、及模塊:“example application”、“file system ”、“sector server”和“media access”。usb-msd-rd(an282)提供的一些用來訪問sd卡上的文件系統(tǒng)的應(yīng)用程序接口(application program interface - api),是以c語(yǔ)言函數(shù)的形式出現(xiàn)的。編程人員不需要知道這些程序內(nèi)部是具體怎樣實(shí)現(xiàn)的(如sd卡的時(shí)序如何,怎樣設(shè)諸多寄存器等等),只要知道它的接口是怎樣的,也就是怎樣調(diào)用這些api函數(shù),產(chǎn)生怎樣的結(jié)果等等。usb-msd-rd在這里提供的api比較類似與計(jì)算機(jī)c語(yǔ)言中的磁盤i/o頭文件,只是功能上有些簡(jiǎn)化

18、。有關(guān)usb-msd-rd中提供的與sd卡相關(guān)的api函數(shù)(摘usb-msd-rd編程者手冊(cè),見參考文獻(xiàn)1)。有關(guān)程序作者是經(jīng)過修改的,若有需要請(qǐng)與作者聯(lián)系,我們會(huì)提供光盤給讀者。由于本系統(tǒng)是基于usb-msd-rd的,也就是說我們除了要usb-msd-rd的功能之外還要加一些自己的應(yīng)用程序,即以下要講的lcd圖形界面、模擬鍵盤、hpi控制等??梢娙蝿?wù)很多,很難用c語(yǔ)言的循環(huán)體來實(shí)現(xiàn),因此我們用了keil提供的多任務(wù)實(shí)時(shí)操作系統(tǒng)小型版rtx51 tiny關(guān)于rtx51 tiny的詳細(xì)介紹,您可從以下地址獲得:,用以支配多任務(wù)之間的配合。因篇幅所限,這里不作詳述。11.1.4 s6b1713點(diǎn)陣

19、lcd顯示及用戶圖形界面(gui)1. s6b1713液晶模塊與單片機(jī)的接口本設(shè)計(jì)使用大連天馬公司的液晶模塊,內(nèi)部編號(hào)是tm90aq,用到的控制芯片是韓國(guó)三星s6b1713(以下稱本液晶模塊為s6b1713)。s6b1713液晶模塊與c8051f340單片機(jī)通過16針雙排插座連接,其引腳功能定義如表11-2。表 11-2 s6b1713液晶模塊引腳功能定義引腳號(hào)名稱電氣類型spi功能定義1gnd電源電源地2vdd電源電源3nc懸空無4a0(rs)輸入地址線0(寄存器選擇)5res輸入復(fù)位(低電平有效)6wr輸入寫信號(hào)(低電平有效)714db0.7輸入/輸出8位雙向數(shù)據(jù)總線cs為高時(shí)該總線呈高阻

20、15cs輸入片選(低電平有效)16rd輸入讀信號(hào)(低電平有效)單片機(jī)與lcd的連接如圖11-3所示,連接方式如下:1) db0.7 與單片機(jī)的p2口連接,用于單片機(jī)和lcd之間并行數(shù)據(jù)的雙向傳送;2) res與單片機(jī)p3.3口連接,用于復(fù)位lcd,上電時(shí)必須由單片機(jī)給出10ms低電平復(fù)位信號(hào);3) cs與單片機(jī)的p3.0口連接,用于片選lcd;4) a0與單片機(jī)的p3.3口連接,用于區(qū)分控制寄存器(0)與地址寄存器(1);5) rd與單片機(jī)的p3.1口連接,用于從lcd讀出數(shù)據(jù)(低電平有效);6) wr與單片機(jī)的p1.8口連接,用于向lcd寫入數(shù)據(jù)(低電平有效)。s6b1713用總線保持器(b

21、us holder)和內(nèi)部數(shù)據(jù)總線(internal data bus)來進(jìn)行數(shù)據(jù)傳輸。s6b1713用總線保持器(bus holder)和內(nèi)部數(shù)據(jù)總線(internal data bus)來進(jìn)行數(shù)據(jù)傳輸,其讀/寫時(shí)序如圖11-4所示。折騰11.1.5用戶圖形界面(gui)的實(shí)現(xiàn)目前,嵌入式系統(tǒng)中大多數(shù)的用戶圖形化界面(gui)都是在操作系統(tǒng)的支持下,調(diào)用系統(tǒng)的各種api函數(shù)實(shí)現(xiàn)的。這些操作系統(tǒng)為實(shí)現(xiàn)gui提供了大量的庫(kù)函數(shù),也為編程人員提供了界面設(shè)計(jì)的良好平臺(tái)。本系統(tǒng)的lcd圖形界面全部在keil環(huán)境下用c語(yǔ)言編寫,按程序?qū)哟螐牡拖蚋吲帕?,可劃分為lcd時(shí)序驅(qū)動(dòng)層、圖形支持層、字體支持層、用

22、戶圖形界面層和簡(jiǎn)易文件瀏覽器,以下是一些簡(jiǎn)單介紹。1. lcd時(shí)序驅(qū)動(dòng)層(lcd driving layer)單片機(jī)對(duì)lcd的操作是通過一些特定的時(shí)序來完成的,每一個(gè)對(duì)lcd的指令或數(shù)據(jù)都需要通過這種特定的時(shí)序來完成,如換行,清屏,寫數(shù)據(jù)等,然而這些時(shí)序?qū)τ诿總€(gè)不同型號(hào)的lcd來說都是不一樣的。為了使程序具有很強(qiáng)的適應(yīng)性和兼容性,我們需要對(duì)硬件的一些細(xì)節(jié)進(jìn)行隔離,使下一層不必了解對(duì)lcd硬件操作的細(xì)節(jié),只要訪問驅(qū)動(dòng)程序就行了。本層主要負(fù)責(zé)操作lcd接口時(shí)序,如寫一個(gè)字節(jié),讀取狀態(tài)等,以及對(duì)lcd內(nèi)部寄存器進(jìn)行設(shè)置。2. 圖形支持層(graphic suppot layer)本層為圖形顯示層提供

23、一個(gè)顯示緩存(display buffer),由于s6b1713橫向分為8頁(yè),每頁(yè)8行,共64行,縱向分為128列,因此整個(gè)屏幕的像素?cái)?shù)為128*64,這也就需要8*128字節(jié)來存放整個(gè)屏幕的顯示數(shù)據(jù)。在c程序里聲明一個(gè)長(zhǎng)度為8*128=1024字符的二維數(shù)組,并定期(約50ms)將顯示緩存內(nèi)的全部顯示數(shù)據(jù)寫入到lcd的ddram內(nèi),完成顯示刷新。因此本層對(duì)硬件操作進(jìn)行了隔離,使下一層不必了解對(duì)lcd硬件操作的細(xì)節(jié)。利用上一層(lcd時(shí)序驅(qū)動(dòng)層),本層為下一層(高層)提供了一個(gè)128*64點(diǎn)的一個(gè)繪圖平面坐標(biāo)系,從而高層程序可以間接地使lcd屏幕上的每一點(diǎn)亮(寫1)或滅(寫0),這樣一來,任何

24、對(duì)lcd的操作將都可以轉(zhuǎn)化為對(duì)坐標(biāo)系中像素(點(diǎn))的操作(坐標(biāo)的原點(diǎn)在屏幕的左上角)。除此之外,此層還提供了一些畫線,畫方等操作,由于篇幅所限在這里不一一介紹。3.字體支持層(font support layer)利用圖形支持層,本層可以在lcd的任何位置顯示出5種不同大小的字體,其中還含有變寬字體。在坐標(biāo)系上,點(diǎn)(x,y)為左上角,以字體sysfont8顯示字符c, 著色為color,返回寬度。4. 用戶圖形界面層(gui layer)利用圖形支持層和字體支持層,本層為用戶提供了一個(gè)簡(jiǎn)單的圖形界面,如顯示一個(gè)對(duì)話框(dialog box),彈出窗口(pop-up message),滾動(dòng)菜單(s

25、croll menu)等。5. 簡(jiǎn)易文件瀏覽器(simple file explorer)建立在所有層之上,并且用到了usb-msd-rd api函數(shù),本應(yīng)用層對(duì)文件系統(tǒng)進(jìn)行分級(jí)顯示。用于啟動(dòng)文件瀏覽器,用戶通過鍵盤在圖形界面中選擇文件,文件被選定后這個(gè)函數(shù)將返回被選定文件的指針。11.2 tms320vc5501與c8051f340的連接及通信協(xié)議tms320vc5501是為實(shí)現(xiàn)低功耗、高性能而專門設(shè)計(jì)的定點(diǎn)dsp芯片,該芯片的內(nèi)部結(jié)構(gòu)與tms320c54x不同,它是屬于ti公司tms320c5000系列的定點(diǎn)dsp芯片,其應(yīng)用軟件的開發(fā)可在ti公司提供的開發(fā)環(huán)境中進(jìn)行。首先用戶用c/c+語(yǔ)

26、言或匯編語(yǔ)言編寫源文件,經(jīng)c編譯器、匯編器生成coff格式的目標(biāo)文件,再用鏈接器進(jìn)行鏈接,生成在c55x上可執(zhí)行的目標(biāo)代碼,然后利用調(diào)試工具對(duì)可執(zhí)行的目標(biāo)代碼進(jìn)行仿真和調(diào)試。當(dāng)調(diào)試完成后,通過hex代碼轉(zhuǎn)換工具,將調(diào)試后的可執(zhí)行目標(biāo)代碼轉(zhuǎn)換成eprom編程器能接受的代碼,并將該代碼固化到eprom中或加載到用戶的應(yīng)用系統(tǒng)中,以便dsp目標(biāo)系統(tǒng)脫離計(jì)算機(jī)單獨(dú)運(yùn)行。11.2.1 tms320c5501的主要特點(diǎn)及內(nèi)部結(jié)構(gòu)1.tms320c5501的主要特點(diǎn)tms320vc5501芯片是一種特殊結(jié)構(gòu)的微處理器,為了快速地實(shí)現(xiàn)數(shù)字信號(hào)處理運(yùn)算,它采用了流水線指令執(zhí)行結(jié)構(gòu)和相應(yīng)的并行處理結(jié)構(gòu),可在一個(gè)周

27、期內(nèi)對(duì)數(shù)據(jù)進(jìn)行高速算術(shù)運(yùn)算和邏輯運(yùn)算,其具有以下特點(diǎn):1) 高性能、低功耗、定點(diǎn)tms320c55x數(shù)字信號(hào)處理器(dsp);2) 16k*16-bit (32kb)片內(nèi)ram,由4塊4k*16-bit雙訪ram(daram)組成;3) 16k*16-bit (32kb)片內(nèi)單等待周期只讀存儲(chǔ)器(rom);4) 最大8m*16-bit(16mb)可尋址內(nèi)存空間;5) 采用1.26v核心電源,3.3v i/o電源。2. tms320c5501的cpu主要結(jié)構(gòu)1) 優(yōu)化的cpu結(jié)構(gòu)。內(nèi)部有4個(gè)40位的基本邏輯單元(a單元、d單元、p單元和i單元),4個(gè)40位的累加器, 2個(gè)1717的乘法器;2)

28、有6條內(nèi)部總線。1條程序總路線、3條內(nèi)部數(shù)據(jù)/操作數(shù)讀總線、2條內(nèi)部數(shù)據(jù)/操作數(shù)寫總線;3) 3.33ns指令周期,工作于300mhz主頻;4) 16kb指令緩存(i-cache);5) 每指令周期執(zhí)行單/雙指令;6) 雙乘法器,最多每秒鐘可以執(zhí)行600m條乘累加(mmac);7) 兩個(gè)算術(shù)邏輯單元(alu);8) 內(nèi)部集成了維特比加速器,用于提高維特比編譯碼的速度。3. tms320c5501的片上外設(shè)1) 6通道直接內(nèi)存訪問(dma)控制器;2) 2個(gè)多通道續(xù)存串口(mcbsp);3) 可編程模擬鎖相環(huán)(apll);4) 通用i/o(gpio)引腳和一個(gè)專用輸出引腳(xf);5) 8-bi

29、t主機(jī)接口 (hpi);6) 4 個(gè)定時(shí)器,包括2個(gè)64位通用定時(shí)器;7) 64位可編程看門狗;8) 64位dsp/bios計(jì)數(shù)器。4.tms320c5501的芯片封裝該芯片采用lqfp(low-profile quad flatpack)封裝,有176個(gè)引腳,腳間距為0.5 mm,封裝俯視圖如圖11-5所示。圖11-5 tms320vc5501的芯片封裝11.2.2 tms320c5501的主機(jī)接口(hpi)1.tms320c5501主機(jī)接口hpi組成dsp芯片中的hpi(主機(jī)接口)是為了滿足dsp與其它微處理器接口而專門設(shè)計(jì)的。它分為hpi-8和hpi-16,分別針對(duì)具有8位和16位數(shù)據(jù)線

30、的單片機(jī)。每一種又分為標(biāo)準(zhǔn)型和增強(qiáng)型,兩者的區(qū)別在于標(biāo)準(zhǔn)型只可以訪問固定的地址空間,而增強(qiáng)型可以訪問整個(gè)dsp的片內(nèi)存儲(chǔ)器。hpi主機(jī)由以下幾個(gè)部分組成: 9) hpi存儲(chǔ)器(daram)。hpi ram主要用于dsp與主機(jī)之間傳送數(shù)據(jù),也可以用作通用的雙尋址數(shù)據(jù)ram或程序ram。 10) hpi地址寄存器(hpia)。它只能由主機(jī)對(duì)其直接訪問,該寄存器中存放著當(dāng)前尋址的hpi存儲(chǔ)單元的地址。 11) hpi數(shù)據(jù)鎖存器(hpid)。它也只能由主機(jī)對(duì)其直接訪問,如果當(dāng)前進(jìn)行讀操作,則hpid中存放的是要從hpi存儲(chǔ)器中讀出的數(shù)據(jù); 如果當(dāng)前進(jìn)行寫操作,則hpid中存放的是將要寫到hpi存儲(chǔ)器的

31、數(shù)據(jù)。 12) hpi控制寄存器(hpic)。dsp和主機(jī)都能對(duì)它直接訪問。13) hpi控制邏輯。用于處理hpi與主機(jī)之間的接口信號(hào)。hpi有兩種工作方式: 14) 共用尋址方式(sam),這是常用的操作方式。在sam方式下,主機(jī)和dsp都能尋址hpi寄存器,異步工作主機(jī)的尋址可以在hpi內(nèi)部得到同步。如果dsp與主機(jī)的周期發(fā)生沖突,主機(jī)有優(yōu)先權(quán)。 15) 僅主機(jī)尋址方式(hom)。在hom方式下,只能讓主機(jī)尋址hpi存儲(chǔ)器,dsp則處于復(fù)位狀態(tài)或所有內(nèi)部和外部時(shí)鐘都停止的idle2空轉(zhuǎn)狀態(tài)(最小功耗狀態(tài));下面主要介紹tms320vc5501與c8051f340的連接及通信協(xié)議。標(biāo)準(zhǔn)hpi

32、口是一個(gè)8位并行接口,可以用來實(shí)現(xiàn)和主設(shè)備或者處理器接口。雙方通過共享tms320vc5501的片上處理器完成通信。單片機(jī)為主控部分,采用端口方式直接訪問hpi口。hpi口主要由地址寄存器(hpia)、控制寄存器(hpic)、數(shù)據(jù)寄存器(hpid)、hpi存儲(chǔ)器和hpi控制邏輯組成。對(duì)單片機(jī)進(jìn)行讀和寫需要三個(gè)步驟:設(shè)置控制寄存器,寫地址寄存器,讀寫數(shù)據(jù)寄存器。在寄存器讀寫過程中,單片機(jī)通過端口發(fā)送控制信號(hào),檢測(cè)狀態(tài)信號(hào),完成對(duì)hpi口訪問的時(shí)序模擬。tms320vc5501的hpi接口內(nèi)部邏輯電路如圖11-6所示。圖11-6 hpi接口內(nèi)部邏輯電路2. hpi設(shè)計(jì)原理框圖一般采用共用尋址方式(

33、sam)。在sam方式下主機(jī)和dsp都能訪問hpi存儲(chǔ)器,整個(gè)通信過程以各部分狀態(tài)的變化來推進(jìn)。dsp和單片機(jī)通過向?qū)Ψ桨l(fā)送中斷,通知對(duì)方數(shù)據(jù)已經(jīng)準(zhǔn)備好,再通過檢測(cè)對(duì)方設(shè)置的狀態(tài),判斷對(duì)方是否準(zhǔn)備好接收數(shù)據(jù)。圖11-7是單片機(jī)和tms320vc5501 dsp的hpi接口硬件連接電路原理框圖。 圖11-7 單片機(jī)和tms320vc5501的hpi接口硬件連接電路原理框圖3.hpi時(shí)序圖圖11-8是hpi邏輯時(shí)序圖。根據(jù)該邏輯時(shí)序圖可以對(duì)dsp進(jìn)行編程,完成其與主機(jī)的通信。工程包含的信息也將被載入。圖11-8 hpi時(shí)序圖11.3音頻編解碼器tlv320aic32tlv320aic32是該音頻系

34、統(tǒng)的子系統(tǒng),本系統(tǒng)為什么要選用tlv320aic32,簡(jiǎn)單來說有以下幾個(gè)原因:16) ti公司的新產(chǎn)品,可以獲得大量的技術(shù)支持及軟件支持,甚至可以獲得免費(fèi)樣片(如果運(yùn)氣好的話);17) 與tms320c55x系列dsp兼容性好,兼容mcbsp接口,它們是都是ti公司的產(chǎn)品;18) 有完整的c程序庫(kù)函數(shù)和驅(qū)動(dòng)程序可供調(diào)用(雖然還存在一些bug),以及一個(gè)基于java圖形界面的配置工具aic3x configuration tool,ti內(nèi)部編號(hào):sbaa148;但是選用該芯片的最困難之處就是它的qfn封裝,是無引腳封裝,非常小,在后面的章節(jié)會(huì)詳細(xì)說明。11.3.1 tlv320aic32縱覽tl

35、v320aic32是一個(gè)帶立體聲耳機(jī)放大器的低功耗立體聲音頻轉(zhuǎn)換器,它有多個(gè)輸入和輸出,可以用程序設(shè)置為單邊或差分模式。該轉(zhuǎn)換器具備大量的電源管理控制寄存器,在3.3v模擬電源電壓下,它可以僅僅用14mw的功耗提供48khz采樣率的數(shù)?;胤?playback),這使得它特別適用于電池供電的便攜音頻和電話應(yīng)用。tlv320aic32的錄音通路(record path)包括了集成麥克風(fēng)偏置輸出、數(shù)字控制的立體聲麥克風(fēng)前置放大器(pre-amp)和自動(dòng)增益控制器(agc),它們都具有混音/多路選通(mux)功能,可以在多個(gè)輸入端口之間切換和混音。它的回放通路(playback path)也具有混音/

36、多路選通(mux)功能,可以在dac輸出和被選擇的多個(gè)輸入端口之間切換和混音,這些信號(hào)經(jīng)過可編程音量控制器,最后被輸出到多種輸出端口。tlv320aic32還包括了4個(gè)功率輸出驅(qū)動(dòng)器(high-power output driver)和2個(gè)全差分線性輸出。功率輸出驅(qū)動(dòng)器可以驅(qū)動(dòng)若干種不同形式的負(fù)載,這包括4個(gè)聲道的16單邊交流耦合的耳機(jī)或16無電容(capless)耳機(jī)輸出模式。除此之外,一對(duì)功率驅(qū)動(dòng)器可以用來驅(qū)動(dòng)推挽(btl)模式的8揚(yáng)聲器,在此配置下可以達(dá)到每聲道500mw的輸出功率。立體聲音頻dac支持從8khz到96khz的采樣頻率,并且在dac的通路上提供了可編程數(shù)字濾波器,可以用來

37、在32khz、44.1khz和48khz的采樣頻率下提供3d、低音(bass)、高音(treble)、中音(midrage)、均衡器(equalization)和去加重(de-emphasis)等數(shù)字特效。立體聲音頻adc同樣也支持從8khz到96khz的采樣頻率。為了調(diào)節(jié)錄音音量,在adc之前的通路上設(shè)有可編程增益放大器(pga),能提供最大+59.5db的模擬增益,可用于放大麥克風(fēng)的低電平輸入信號(hào)。串行控制總線支持i2c協(xié)議,串行音頻數(shù)據(jù)總線則可以采用i2s、左/右對(duì)齊、dsp(mcbsp)和tdm模式。為了得到準(zhǔn)確的時(shí)鐘,此芯片還集成了一個(gè)可高度編程的鎖相環(huán)(pll),可以從各式各樣的m

38、clk主時(shí)鐘輸入,生成出適合采樣頻率的時(shí)鐘。mclk的輸入頻率范圍可以低至512khz,高至50mhz,尤其重視常用的系統(tǒng)時(shí)鐘頻率如12mhz、13mhz、16mhz、19.2mhz和19.68mhz。tlv320aic32的模擬電源電壓范圍是2.7v3.6v,數(shù)字核心電源電壓的范圍是1.525v1.95v,數(shù)字i/o電源電壓的范圍是1.1v3.6v。以下是該芯片的內(nèi)部結(jié)構(gòu)簡(jiǎn)圖。圖11-9 tlv320aic32內(nèi)部結(jié)構(gòu)簡(jiǎn)圖11.3.2 tlv320aic32芯片封裝及引腳及其定義1. tlv320aic32芯片封裝目前該芯片的唯一封裝為5x5mm,32腳qfn封裝,這屬于晶片尺寸級(jí)封裝(ch

39、ip scale package)。無腳(lead-less)的意思是沒有露在外邊的引腳線(lead),而引腳盤(pad)都在芯片的底部,所以在芯片的正面看上去好像沒有引腳。芯片下方的中心還設(shè)有一個(gè)正方形的熱引腳盤(thermal pad),是一塊正方形的金屬片,與芯片的核心(die)緊緊連接,用于提高芯片的散熱性能。這種封裝芯片的好處是占用pcb面積小,散熱性能良好。但是焊接的難度也大大增加,給設(shè)計(jì)者帶來了很大的麻煩。在整個(gè)系統(tǒng)中,這款芯片是手工最難焊接的。圖11-10(a) qfn-32封裝的引腳圖11-10(b) qfn-32的尺寸(mm)2. tlv320aic32芯片引腳及其定義tl

40、v320aic32的引腳原理圖和定義請(qǐng)參見圖11-11和表11-3。芯片共有32個(gè)引腳(外加一個(gè)中心散熱盤,在原理圖上標(biāo)記為33腳),在功能上大致可以分為:1) 電源:包括數(shù)字核心電源(32)、數(shù)字i/o電源(7)、模擬驅(qū)動(dòng)電源(18,24)、 模擬轉(zhuǎn)換器電源(25)、數(shù)字接地(6)和模擬接地(17,26,21);2) 音頻輸入:包括3對(duì)(6個(gè))單邊輸入聲道,每對(duì)都由左和右組成, (10, 11, 12, 13, 14, 16),外加一個(gè)麥克風(fēng)偏置輸出(15),用于對(duì)駐極體麥克風(fēng)提供約1ma的偏置電流;3) 音頻輸出:包括兩對(duì)差分功率輸出,左+(19),左-(20),右+(23),右-(22)

41、,以及兩對(duì)差分線性輸出,左+(27),左-(28),右+(29),右-(30);4) 控制總線:采用i2c總線,包括串行同步時(shí)鐘scl(8)和串行數(shù)據(jù)sda(9);5) 時(shí)鐘和數(shù)據(jù):包括主時(shí)鐘mclk(1)、位時(shí)鐘bclk(2)、字時(shí)鐘wclk(3)、音頻數(shù)據(jù)輸入(4)和音頻數(shù)據(jù)輸出(5)。圖11-11 tlv320aic32的引腳圖表11-3 tlv320aic32的外部引腳表引腳號(hào)名稱電氣類型引腳定義1mclk輸入主時(shí)鐘輸入master clock input2bclk輸入/輸出音頻串行數(shù)據(jù)總線位時(shí)鐘輸入/輸出audio serial data bus bit clock input/ou

42、tput3wclk輸入/輸出音頻串行數(shù)據(jù)總線字時(shí)鐘輸入/輸出audio serial data bus word clock input/output4din輸入音頻串行數(shù)據(jù)總線數(shù)據(jù)輸入audio serial data bus data input5dout輸出音頻串行數(shù)據(jù)總線數(shù)據(jù)輸出audio serial data bus data output6dvss電源數(shù)字核心 / i/o接地 0 vdigital core / i/o ground supply 0 v7iovddt電源數(shù)字i/o電源 1.13.6vdigital i/o voltage supply 1.13.6v8scl輸入

43、i2c串口時(shí)鐘輸入i2c serial clock input9sda輸入/輸出i2c串口數(shù)據(jù)輸入/輸出i2c serial data input/output10mic1l/line1l輸入左聲道1輸入 left input 111mic1r/line1r輸入右聲道1輸入 right input 112mic2l/line2l輸入左聲道2輸入 left input 213mic2r/line2r輸入右聲道2輸入 right input 214mic3l/line3l輸入左聲道3輸入 left input 315micbias輸出麥克風(fēng)偏置電壓輸出microphone bias voltage

44、 output16mic3r/line3r輸入右聲道3輸入 right input 317avss1電源模擬adc電源接地 0vanalog adc ground supply 0 v18drvdd電源模擬adc驅(qū)動(dòng)輸出級(jí)電源電壓 2.73.6vanalog adc and output driver voltage supply 2.73.6v19hplout輸出功率輸出驅(qū)動(dòng)(左聲道+)high power output driver (left +)20hplcom輸出功率輸出驅(qū)動(dòng)(左聲道- 或多功能)high power output driver (left - or multi-fu

45、nctional)21drvss電源模擬adc驅(qū)動(dòng)輸出級(jí)電源接地0 vanalog output driver ground supply 0 v22hprcom輸出功率輸出驅(qū)動(dòng)(右聲道- 或多功能)high power output driver (right - or multi-functional)表11-3 tlv320aic32的外部引腳表(續(xù))23hprout輸出功率輸出驅(qū)動(dòng)(右聲道+)high power output driver (right +)24drvdd電源模擬adc驅(qū)動(dòng)輸出級(jí)電源電壓 2.73.6vanalog output driver voltage supp

46、ly 2.7v3.6v25avdd電源模擬dac電源電壓 2.73.6v analog dac voltage supply 2.7v3.6v26avss2電源模擬dac電源接地0 vanalog dac ground supply 0 v27left_lop輸出左聲道線性輸出(+) left line output (+)28left_lom輸出左聲道線性輸出(-) left line output (-)29right_lop輸出右聲道線性輸出(+) right lineo output (+)30right_lom輸出右聲道線性輸出(-) right line output (-)31r

47、eset輸入復(fù)位(低電平有效) reset (low active)32dvdd電源數(shù)字核心電源電壓1.525v1.95vdigital core voltage supply 1.525v1.95v簡(jiǎn)易音頻播放/處理系統(tǒng)硬件實(shí)物主板相片如圖11-12所示。圖11-12 硬件實(shí)物主板(正面)附錄a 簡(jiǎn)易音頻播放/處理系統(tǒng)的核心程序清單a.1 dsp&hpi主機(jī)接口程序#ifndef _hpi_h_#define _hpi_h_/*hpi port definition:*/sbitdspreset =p35; /outputsbithpi_hcs = p17; /outputsbithpi_h

48、as = p14; /outputsbithpi_hstrb = p37; /outputsbithpi_hint = p06; /input (interrupt)sbithpi_hrdy = p36; /inputsbithpi_gpio4 = p07; /bidirectional#definehpi_dbp4 /bidirectional#define hpi_dbmod p4mdout/*hpi access type byte definition*/#definehpicread0x80#definehpicwrite0x00#define hpidairead0x84#defi

49、ne hpidaiwrite0x04#define hpiaread0x82#define hpiawrite0x02#define hpidread0x86#define hpidwrite0x06/ byte type definition#ifndef _byte_def_#define _byte_def_typedef unsigned char byte;#endif /* _byte_def_ */*hpi function prototypes:*/void hpi_write (byte accesstype, unsigned int data);unsigned int

50、hpi_read (byte accesstype);void hpi_burstwrite(byte* dataptr, unsigned int size);void hpi_init (void);byte hpi_boot(byte* filename);#endif#include #include c8051f340.h#include hpi.h#include .msdf34x_msd_sect_serv.h#include .msdf34x_msd_file_system.h#include .msdf34x_msd_util.h#include .lcdguiglcd.hv

51、oid hpi_interrupt (void) interrupt interrupt_int0 ie0=0;hpi_write(hpicwrite,hpi_read(hpicread);/acknowledge hint to dspreturn;void hpi_write (byte accesstype, unsigned int data)word idata hpidata;hpidata.i=data;hpi_dbmod=0xff;/hpi_db outputhpi_hcs=0;hpi_db=accesstype;hpi_has=0;/hpi control latchhpi_

52、hstrb=0;hpi_db=hpidata.cmsb;/write msbhpi_has=1;hpi_hstrb=1;/hpi data msb latchwhile(!hpi_hrdy);/wait for hrdyhpi_db=accesstype+1;hpi_has=0;/hpi control latchhpi_hstrb=0;hpi_db=hpidata.clsb;/write lsbhpi_has=1;hpi_hstrb=1;/hpi data lsb latchwhile(!hpi_hrdy);hpi_hcs=1;hpi_dbmod=0x00;/hpi_db inputunsi

53、gned int hpi_read (byte accesstype)word idata hpidata;hpi_dbmod=0xff;/hpi_db outputhpi_hcs=0;hpi_db=accesstype;hpi_has=0;/hpi control latchhpi_dbmod=0x00;/hpi_db intputhpi_db=0xff;hpi_hstrb=0;hpi_has=1;while(!hpi_hrdy);/wait for hrdyhpidata.cmsb=hpi_db;/read msbhpi_hstrb=1;/hpi data msb latchhpi_dbmod=0xff;/hpi_db outputhpi_db=acces

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論