亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于S3C2442B和WinCE的嵌入式導(dǎo)航音頻系統(tǒng)的優(yōu)化設(shè)計(jì)與實(shí)現(xiàn)*

        2011-08-29 05:46:40牟衛(wèi)華王飛雪
        全球定位系統(tǒng) 2011年4期
        關(guān)鍵詞:音頻系統(tǒng)驅(qū)動(dòng)程序寄存器

        王 興,牟衛(wèi)華,王飛雪

        (國(guó)防科技大學(xué)電子科學(xué)與工程學(xué)院 衛(wèi)星導(dǎo)航定位研發(fā)中心,湖南 長(zhǎng)沙410073)

        0 引 言

        隨著電子技術(shù)的迅猛發(fā)展,嵌入式音頻系統(tǒng)在眾多領(lǐng)域得到了廣泛應(yīng)用。特別是在手持及車(chē)載式衛(wèi)星導(dǎo)航用戶終端設(shè)備中,對(duì)利用嵌入式音頻系統(tǒng)實(shí)現(xiàn)位置、時(shí)間等信息的播報(bào)、提供語(yǔ)音導(dǎo)航等人機(jī)交互功能提出了新的要求。

        針對(duì)Samsung公司SC2442B型ARM 9處理器良好的實(shí)時(shí)性能,結(jié)合音頻解碼芯片 WM8983的接口特點(diǎn),給出了有效、實(shí)用的嵌入式音頻系統(tǒng)的硬件電路設(shè)計(jì)方案以及基于Windows CE操作系統(tǒng)的驅(qū)動(dòng)實(shí)現(xiàn)。

        1 音頻播放原理

        數(shù)字音頻系統(tǒng)中,通過(guò)將已存儲(chǔ)的一串二進(jìn)制音頻數(shù)據(jù)文件再現(xiàn)原始聲音,采樣頻率越高,所能描述的聲波頻率就越高,取樣頻率和量化精度共同決定聲音還原的質(zhì)量[1]。由于人耳的聽(tīng)覺(jué)范圍是20Hz~20kHz,因此,為了保證音頻的不失真,音頻數(shù)據(jù)的取樣頻率應(yīng)該高于40kHz.

        本音頻系統(tǒng)播放.wav格式的音頻文件,WAV格式的文件采用脈沖編碼調(diào)制脈沖(PCM)編碼格式,取樣頻率為44.1kHz,量化值采用16位編碼。

        目前,音頻系統(tǒng)通常采用IIS總線通信協(xié)議傳輸音頻數(shù)據(jù),采用串行外設(shè)接口(SPI)、I2C、L3等多種總線方式實(shí)現(xiàn)音頻CODEC芯片的控制。

        IIS(Inter-IC Sound)總線是 Philips公司提出的串行數(shù)字音頻總線協(xié)議。它是一種面向多媒體的音頻總線,專(zhuān)用于音頻設(shè)備之間的數(shù)據(jù)傳輸,對(duì)于其他信號(hào)(如控制信號(hào)等)需單獨(dú)傳輸?;跍p少引腳數(shù)目的目的,IIS總線一般只有3根串行線組成,即分時(shí)復(fù)用的數(shù)據(jù)通道線(Serial Data)、字選擇線(Word Select)、和時(shí)鐘線 (Serial Clock)[2-4]。

        2 系統(tǒng)硬件設(shè)計(jì)

        如圖1所示,嵌入式音頻系統(tǒng)由S3C2442B及WM8983芯片構(gòu)成。ARM處理器完成音頻文件的讀取,音頻芯片控制信號(hào)的生成,并完成人機(jī)交互等功能。音頻芯片完成音頻的編解碼、模數(shù)轉(zhuǎn)換、信號(hào)調(diào)理等功能,通過(guò)IIS總線傳輸音頻數(shù)據(jù),通過(guò)I2C總線實(shí)現(xiàn)對(duì)音頻CODEC芯片的控制。

        S3C2442B是Samsung公司推出的一款16/32位嵌入式微處理器,該處理器內(nèi)部集成了ARM公司的ARM920T處理器內(nèi)核,內(nèi)置IIS音頻總線接口,有4路動(dòng)態(tài)內(nèi)存分配(DMA)通 道[5]。S3C2442B同時(shí)支持LCD控制,在高性能和低功耗等特性方面具有極大的優(yōu)勢(shì),便于可視化嵌入式移動(dòng)設(shè)備的開(kāi)發(fā),實(shí)現(xiàn)人機(jī)交互等功能。

        圖1 系統(tǒng)框圖

        WM8983是Wolfson公司的一款高性能立體聲音頻編解碼CODEC芯片。該芯片體積小、功耗低;支持IIS總線數(shù)據(jù)格式,采用位元流單元轉(zhuǎn)換技術(shù)進(jìn)行信號(hào)處理,完成聲音信號(hào)的模數(shù)轉(zhuǎn)換;具有可編程增益放大器和數(shù)字自動(dòng)增益控制器;同時(shí)支持兩線(IIC)和三線音頻控制接口模式,控制接口實(shí)現(xiàn)簡(jiǎn)單[6]。

        設(shè)計(jì)的音頻系統(tǒng)的硬件電路如圖2所示,將ARM處理器的IIS信號(hào)接口與WM8983的IIS信號(hào)直接相連,實(shí)現(xiàn)音頻數(shù)據(jù)的傳輸。將S3C2442B的3根通用輸入輸出(GPIO)信號(hào)連接到音頻CODEC的控制接口,可以通過(guò)模擬I2C總線及3線控制的時(shí)序和協(xié)議,實(shí)現(xiàn)音頻控制,同時(shí)利用S3C2442B的GPIO管腳選擇音頻芯片的控制模式。

        圖2 WM8983硬件電路設(shè)計(jì)

        在音頻CODEC硬件電路設(shè)計(jì)時(shí),要充分考慮到音頻電路模擬電路與數(shù)字電路混合設(shè)計(jì)的特點(diǎn),將模擬電源與數(shù)字電源隔離,以降低數(shù)字電路對(duì)于音頻電路的影響,提高音頻播放質(zhì)量。同時(shí)本音頻設(shè)計(jì)基于移動(dòng)導(dǎo)航嵌入式用戶終端開(kāi)發(fā),在設(shè)計(jì)實(shí)現(xiàn)布局中,還需要著重考慮音頻信號(hào)對(duì)于導(dǎo)航信號(hào)接收性能的影響,對(duì)音頻模塊與導(dǎo)航信號(hào)射頻接收前端進(jìn)行必要的屏蔽與隔離。

        3 驅(qū)動(dòng)軟件設(shè)計(jì)與應(yīng)用實(shí)現(xiàn)

        軟件驅(qū)動(dòng)程序的主要任務(wù)是將操作系統(tǒng)和外圍的硬件設(shè)備有機(jī)的結(jié)合在一起,為音頻應(yīng)用提供標(biāo)準(zhǔn)的接口。

        所采用的 Windows CE(WinCE)系統(tǒng)是微軟公司的一種搶先式、多任務(wù)、實(shí)時(shí)32位的嵌入式實(shí)時(shí)操作系統(tǒng),內(nèi)置了媒體功能,支持多種嵌入式硬件體系結(jié)構(gòu),具有模塊功能的可裁剪性和可移植性,且運(yùn)行高效、穩(wěn)定,廣泛應(yīng)用于嵌入式產(chǎn)品開(kāi)發(fā)之中[7]

        在音頻驅(qū)動(dòng)設(shè)計(jì)實(shí)現(xiàn)中采用通用的流接口形式實(shí)現(xiàn),應(yīng)用程序通過(guò)文件系統(tǒng)的方式訪問(wèn)驅(qū)動(dòng)程序,流接口的驅(qū)動(dòng)架構(gòu)如圖3所示。

        圖3 WinCE流接口驅(qū)動(dòng)架構(gòu)[7]

        在音頻驅(qū)動(dòng)設(shè)計(jì)實(shí)現(xiàn)中采用統(tǒng)一音頻驅(qū)動(dòng)模型(Unified Audio),可以很好的解決單體驅(qū)動(dòng)程序系統(tǒng)效率低的制約,打破傳統(tǒng)基于設(shè)備模型驅(qū)動(dòng)(Model Device Drive,MDD)和平臺(tái)相關(guān)驅(qū)動(dòng)(Platform Dependent Driver,PDD)[8]分層約束,提供了一種更為靈活的方式來(lái)實(shí)現(xiàn)處理器與音頻文件之間的交互。

        3.1 音頻設(shè)備的初始化

        音頻設(shè)備的初始化是整個(gè)音頻驅(qū)動(dòng)程序的開(kāi)始部分,包括對(duì)ARM處理器IIS數(shù)據(jù)格式、位時(shí)鐘、取樣時(shí)鐘的設(shè)置以及WM8983音頻芯片相關(guān)寄存器的初始化等。

        IIS接口初始化通過(guò)函數(shù)IIS_INIT()實(shí)現(xiàn),將GPE[0:5]設(shè)置成為IIS接口,同時(shí)配置IIS的寄存器。通過(guò)設(shè)置ARM寄存器rIISCON=0x3F,進(jìn)行IIS接口、DMA使能、IIS內(nèi)部及外部時(shí)鐘預(yù)分頻因子寄存器等使能;設(shè)置rIISMOD=0x74,進(jìn)行主從模式、主器件時(shí)鐘、數(shù)據(jù)格式等的設(shè)定;設(shè)置IISPSR=0x55內(nèi)部及外部時(shí)鐘分頻因子;設(shè)置rIISFCON=0xF000,進(jìn)行接收和發(fā)送先入先出隊(duì)列(FIFO)工作模式選擇及使能。

        WM8983的初始化通過(guò)函數(shù) WM8983_INIT()函數(shù)實(shí)現(xiàn),首先設(shè)置音頻控制模式,選擇IIC控制模式,通過(guò)IIC設(shè)置WM8983中的寄存器,實(shí)現(xiàn)對(duì)芯片的初始化設(shè)置。

        3.2 DMA控制的優(yōu)化實(shí)現(xiàn)

        Samsung公司的ARM芯片中,為了實(shí)現(xiàn)雙工模式,使用了兩條串行數(shù)據(jù)線,分別作為輸入和輸出。此外還提供三種數(shù)據(jù)傳輸模式[5]:

        1)正常工作模式:該模式基于FIFO寄存器,處理器(CPU)通過(guò)輪詢(xún)的方式訪問(wèn)FIFO寄存器,以IISCON寄存器的第七位作為特征位標(biāo)記接受和發(fā)送FIFO寄存器的狀態(tài),進(jìn)而控制CPU讀寫(xiě)FIFO。

        2)DMA模式:該模式下通過(guò)設(shè)置IISFCON寄存器可以使IIS接口竊取總線控制權(quán),從而與系統(tǒng)隨機(jī)存儲(chǔ)器(RAM)進(jìn)行數(shù)據(jù)交換,提高了系統(tǒng)的吞吐能力。

        3)傳輸/接收模式:該模式下,IIS總線接口通過(guò)雙通道DMA同時(shí)接收和發(fā)送音頻數(shù)據(jù)。

        音頻系統(tǒng)通常播放WAV 格式的音頻文件,數(shù)據(jù)量較大,因此,采用傳輸/接收模式的作為IIS數(shù)據(jù)傳輸模式,使用兩路DMA通道,通道1作為數(shù)據(jù)接收數(shù)據(jù)通道,通道2作為發(fā)送數(shù)據(jù)通道。但是,由于S3C2442B處理器中沒(méi)有內(nèi)置的DMA緩存區(qū),在驅(qū)動(dòng)程序設(shè)計(jì)時(shí),必須在S3C2442B的同步動(dòng)態(tài)隨機(jī)處理器(SDRAM)中為音頻文件分配DMA緩存區(qū)[9-10]。

        采用雙緩存區(qū)設(shè)置,對(duì)音頻系統(tǒng)的輸入與輸出同時(shí)分配相應(yīng)的緩存區(qū),這樣驅(qū)動(dòng)程序可以在音頻工作的同時(shí)處理傳輸進(jìn)來(lái)的音頻數(shù)據(jù),很好的提高了系統(tǒng)并行處理的能力。同時(shí),在驅(qū)動(dòng)程序中使用了環(huán)形、多段緩存的優(yōu)化設(shè)計(jì)機(jī)制[9],在這種機(jī)制下,將緩存區(qū)分割成若干個(gè)大小相同的塊,通過(guò)驅(qū)動(dòng)程序循環(huán)調(diào)用,從而解決在音頻數(shù)據(jù)量較大時(shí)產(chǎn)生聲音延時(shí)以及聲音失真的問(wèn)題,保證了聲音的流暢播放。

        3.3 控制接口驅(qū)動(dòng)的實(shí)現(xiàn)

        WM8983支持兩種控制模式:兩線模式和三線模式,并通過(guò)模式選擇(MODE)(PIN18)選擇音頻控制模式,當(dāng)MODE管腳輸入為高時(shí),選擇三線控制模式;MODE設(shè)置為低選擇兩線模式[6]。

        三線模式采用連續(xù)控制接口實(shí)現(xiàn),利用CSB管腳產(chǎn)生鎖存(LATCH)信號(hào)標(biāo)志寄存器的讀寫(xiě)。其邏輯圖如圖4所示。

        圖4 三線控制模式接口時(shí)序圖

        WM8983支持的兩線控制模式即為I2C總線協(xié)議,有確定的7bit器件地址:0011010。處理器通過(guò)串行同步時(shí)鐘(SCLK)和串行數(shù)據(jù)(SDIN)控制芯片中寄存器的讀寫(xiě)。在SCLK信號(hào)為高時(shí),SDIN從高電平轉(zhuǎn)換到低電平,產(chǎn)生起始位(START)標(biāo)志,啟動(dòng)地址傳輸。然后處理器伴隨著SCLK傳輸8bit數(shù)據(jù)信號(hào)(7bit地址信號(hào)和1bit讀寫(xiě)控制信號(hào)),WM8983在確認(rèn)接收的7bit寄存器地址有效后,在下一個(gè)SCLK時(shí)給出低電平的應(yīng)答信號(hào)(ACK),處理器在收到WM8983的應(yīng)答信號(hào)后,發(fā)送高位8bit控制數(shù)據(jù)信號(hào)(B15-B8),WM8983收到8bit數(shù)據(jù)信號(hào)后會(huì)再次給出低電平應(yīng)答信號(hào),處理器應(yīng)答信號(hào)后,發(fā)送低8bit控制數(shù)據(jù)(B7-B0),WM8983在收到所有數(shù)據(jù)信號(hào),并進(jìn)行相應(yīng)的操作,給出應(yīng)答信號(hào)。傳輸結(jié)束后,SCLK信號(hào)為高,SDIN從低電平轉(zhuǎn)換到高電平,產(chǎn)生結(jié)束位(STOP)標(biāo)志。如圖5所示:

        圖5 兩線控制模式接口時(shí)序圖

        I2C總線控制模式通常又分為寄存器方式和I/O模擬方式兩種。其中I/O模擬方式方便系統(tǒng)驅(qū)動(dòng)的移植,應(yīng)用也更為廣泛。采用I/O模擬方式的I2C總線模式實(shí)現(xiàn)對(duì)音頻系統(tǒng)的控制。通過(guò)函數(shù)static void SetWMRegister(U32addr,U32data)實(shí)現(xiàn),采用I/O模擬I2C總線時(shí),需要在每一個(gè)操作后增加一個(gè)系統(tǒng)延時(shí),以滿足總線時(shí)序要求。

        3.4 應(yīng)用程序設(shè)計(jì)

        音頻系統(tǒng)應(yīng)用在基于WinCE5.0嵌入式操作系統(tǒng)的導(dǎo)航軟件應(yīng)用程序之中。在開(kāi)發(fā)過(guò)程中,將音頻驅(qū)動(dòng)作為動(dòng)態(tài)鏈接庫(kù),生成.dll庫(kù)文件。導(dǎo)航軟件通過(guò)調(diào)用音頻驅(qū)動(dòng)程序播放已經(jīng)存儲(chǔ)在嵌入式設(shè)備上的WAV格式文件。

        導(dǎo)航軟件與驅(qū)動(dòng)程序之間的音頻狀態(tài)設(shè)置及讀取通過(guò)下面兩個(gè)函數(shù)實(shí)現(xiàn):

        short SoundStateSet(IN short sSoundState,IN bool bSwitch,IN const char*strBootSound-Path);

        short Sound StateGet (OUT short&sSoundState, OUT bool &bSwitch, OUT const char* &strBoot Sound Path);

        圖6 導(dǎo)航軟件聲音設(shè)置界面

        嵌入式應(yīng)用程序開(kāi)發(fā)采用Embedded Visual C++4.0。導(dǎo)航軟件通過(guò)中斷請(qǐng)求調(diào)用音頻驅(qū)動(dòng)程序,完成語(yǔ)音功能的實(shí)現(xiàn),同時(shí)提供人機(jī)交互界面,用戶可通過(guò)顯示屏及按鍵控制音頻系統(tǒng)聲音大小,如圖6所示。

        4 結(jié) 論

        結(jié)合嵌入式導(dǎo)航移動(dòng)用戶終端設(shè)備研制,設(shè)計(jì)實(shí)現(xiàn)了基于S3C2442B和WM8983的嵌入式音頻系統(tǒng),開(kāi)發(fā)了基于 WinCE驅(qū)動(dòng)程序,并提供了與導(dǎo)航軟件的接口。該音頻系統(tǒng)已成功應(yīng)用于衛(wèi)星導(dǎo)航用戶終端嵌入式設(shè)備之中,可以很好的滿足手持式導(dǎo)航設(shè)備要求的語(yǔ)音導(dǎo)航及位置信息播報(bào)等語(yǔ)音交互功能。

        [1]胡力剛,許偉明.基于S3C2410和UDA1314TS的嵌入式音頻系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2009,17(12):2510-2512,2515.

        [2]魏趙平.基于ARM的嵌入式系統(tǒng)研究及音頻驅(qū)動(dòng)實(shí)現(xiàn) [D].陜西:西安電子科技大學(xué),2007

        [3]詹群峰,李靈杰,葉利福,等.基于嵌入式Linux的音頻系統(tǒng)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2009(10):204-207.

        [4]高建華,王 殊.基于S3C2410型微處理器和UDA1341型立體聲音頻編碼器的嵌入式音頻系統(tǒng)設(shè)計(jì)[J].國(guó)外電子元器件,2006(6):35-39.

        [5]Sumsung Electronics.SC32442BUser′s Manual Revision 1.2[S].South Korea,2002.

        [6]Wolfson microelectronics.WM8983Datasheet,Rev4.1[S].United Kingdom,2008.

        [7]羅家兵,騰少華,張 巍,等.Wince.net下流接口驅(qū)動(dòng)研究與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2007,23(17):229-230,292.

        [8]顧崢浩,王自強(qiáng),聶文華.WinCE流驅(qū)動(dòng)程序設(shè)計(jì)概述[J].微處理機(jī),2007(3):81-83.

        [9]彭 莉.嵌入式SoC中DMA的設(shè)計(jì)與應(yīng)用 [D].上海:上海交通大學(xué),2005.

        [10]徐 睿,李 婓,王申康.基于IIS總線的嵌入式音頻系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2004.30(4):7-9.

        猜你喜歡
        音頻系統(tǒng)驅(qū)動(dòng)程序寄存器
        淺談號(hào)角與帶式揚(yáng)聲器 在家用或?qū)I(yè)音頻系統(tǒng)中的應(yīng)用
        打造最具性?xún)r(jià)比的7.4.1沉浸式音頻系統(tǒng) 昆明藝術(shù)家園
        Elektrobit提供的EB GUIDE工具鏈加速Pioneer最新顯示音頻系統(tǒng)的開(kāi)發(fā)
        Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
        從房間與音頻系統(tǒng)再談定制安裝的核心要素 暢談家庭影院系統(tǒng)中的隱藏設(shè)計(jì)
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
        一種可重構(gòu)線性反饋移位寄存器設(shè)計(jì)
        驅(qū)動(dòng)程序更新與推薦
        驅(qū)動(dòng)程序更新與推薦
        亚洲自偷自拍熟女另类| 一区二区三区四区中文字幕av| 四虎成人精品在永久免费| 污污内射在线观看一区二区少妇 | 草逼短视频免费看m3u8| 曰欧一片内射vα在线影院| 久久网视频中文字幕综合| 免费在线观看亚洲视频| 麻神在线观看免费观看| 国产精品v片在线观看不卡| 伊人久久综合影院首页| 丝袜美腿爆炒国产在线观看| 日本在线观看不卡一区二区| 久久久久亚洲av成人无码| 香蕉视频在线观看国产| 热热久久超碰精品中文字幕| 久久精品av在线观看| 九一九色国产| 国产人成亚洲第一网站在线播放 | 欧美中日韩免费观看网站| 人妻丰满熟妇av无码区hd| 熟妇人妻丰满少妇一区| 国产免费又色又爽粗视频| 真人直播 免费视频| yy111111少妇影院| 中文字幕一区二区三区四区| 啦啦啦www在线观看免费视频| 久久国产A√无码专区亚洲| 精品国产乱码一区二区三区| av一区二区三区在线| av潮喷大喷水系列无码| 日本色偷偷| 日本a级黄片免费观看| 亚洲另类欧美综合久久图片区| 亚洲精品国产一二三无码AV| 亚洲精品综合久久中文字幕| 大地资源在线影视播放| 推油少妇久久99久久99久久| 网红极品女神精品视频在线| 日韩一区av二区三区| 亚洲国产美女精品久久久 |