• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于ThreadX系統(tǒng)的I2S音頻總線驅(qū)動設(shè)計(jì)方案

      2018-01-15 06:18:14
      關(guān)鍵詞:音頻系統(tǒng)驅(qū)動程序時(shí)鐘

      (重慶郵電大學(xué) 通信與信息工程學(xué)院,重慶 400065)

      引 言

      ThreadX是Express Logic公司專為嵌入式應(yīng)用而設(shè)計(jì)的一款高性能的實(shí)時(shí)操作系統(tǒng),支持大量的處理器和SoC,也因此廣泛應(yīng)用于消費(fèi)電子、汽車電子、工業(yè)自動化、軍事及航空航天等領(lǐng)域。其中隨著信息化、智能化的發(fā)展,數(shù)字音頻技術(shù)音頻系統(tǒng)是嵌入式系統(tǒng)應(yīng)用中的一個重要組成部分。

      I2S總線是工業(yè)和嵌入式領(lǐng)域常采用的一種音頻總線,其驅(qū)動程序的實(shí)現(xiàn)主要依賴于音頻總線接口、相應(yīng)硬件的工作原理以及驅(qū)動的體系結(jié)構(gòu)?;诰唧w的項(xiàng)目需求背景下,本文主要闡述了音頻接口I2S驅(qū)動程序設(shè)計(jì)方法與流程,為I2S總線在ThreadX下的應(yīng)用提供了一定的研究方法和技術(shù)參考。

      1 基本原理

      1.1 ThreadX概述

      ThreadX是Express Logic公司專為嵌入式應(yīng)用而設(shè)計(jì)的一種高性能實(shí)時(shí)內(nèi)核,具有體積小、速度快、高可靠性和實(shí)時(shí)性等特點(diǎn),同時(shí)擁有高穩(wěn)定性和低成本。ThreadX占用空間小,適合先進(jìn)的終端系統(tǒng)級芯片的設(shè)計(jì),且憑借其多任務(wù)的特性,ThreadX可以滿足應(yīng)用系統(tǒng)實(shí)時(shí)性的要求,有助于提高整個系統(tǒng)的穩(wěn)定性和可靠性。

      ThreadX包含了實(shí)時(shí)操作系統(tǒng)應(yīng)該具備的所有服務(wù)和組件,包括線程、消息隊(duì)列、計(jì)數(shù)信號量、互斥量、事件標(biāo)志、內(nèi)存塊池、內(nèi)存字節(jié)池、應(yīng)用定時(shí)器、時(shí)鐘計(jì)數(shù)器和中斷控制。其中,通過圖1介紹了ThreadX的幾個功能模塊:線程管理和調(diào)度、同步與通信、內(nèi)存管理、時(shí)鐘和定時(shí)器以及中斷處理。

      圖1 ThreadX總體架構(gòu)圖

      1.2 ThreadX啟動過程

      當(dāng)系統(tǒng)通電之后,首先是進(jìn)行系統(tǒng)復(fù)位以及開發(fā)工具初始化,當(dāng)初始化完成之后,控制轉(zhuǎn)移到用戶提供的main主函數(shù)上,在主函數(shù)中調(diào)用tx_kernel_enter進(jìn)入ThreadX系統(tǒng)內(nèi)核。入口函數(shù)tx_kernel_enter負(fù)責(zé)調(diào)用處理器指定的低級初始化和C語言的高級初始化,配合ThreadX內(nèi)部不同數(shù)據(jù)結(jié)構(gòu)的初始化。

      圖2 ThreadX啟動流程

      當(dāng)tx_kernel_enter返回時(shí),控制轉(zhuǎn)移到線程調(diào)度循環(huán),同時(shí)也標(biāo)志著初始化的完成。緊接著在入口函數(shù)中調(diào)用程序定義函數(shù)tx_application_define。tx_application_define函數(shù)定義了所有初始的應(yīng)用線程、隊(duì)列、消息、事件標(biāo)志、存儲池和定時(shí)器,同時(shí)可以在正常的應(yīng)用程序執(zhí)行過程中創(chuàng)建或者刪除系統(tǒng)資源,最后會進(jìn)入調(diào)度循環(huán)開始線程調(diào)度。ThreadX的啟動過程如圖2所示。

      1.3 ThreadX下的I2S總線驅(qū)動結(jié)構(gòu)

      基于上文所述,ThreadX啟動并經(jīng)過初始化之后開始進(jìn)入tx_application_define(),并根據(jù)具體的應(yīng)用做一些特定的操作。對于音頻系統(tǒng),在程序定義函數(shù)tx_application_define()中首先為codec線程分配堆棧,并通過動態(tài)地調(diào)用tx_thread_create(&thread_codec,"thread_codec",thread_codec_entry,NULL,pointer,STACK_SIZE*2,6,6,TX_NO_TIME_SLICE, TX_AUTO_START)函數(shù)創(chuàng)建codec線程,然后再通過調(diào)用入口函數(shù)thread_codec_entry()進(jìn)入I2S音頻系統(tǒng)的操作。

      在應(yīng)用I2S音頻系統(tǒng)初時(shí)需先將I2S總線復(fù)位到原始狀態(tài),再調(diào)用arm_i2s()配置I2S音頻系統(tǒng)。

      void thread_codec_entry(ULONG thread_input) {

      i2s_reset();

      arm_i2s(main_mes);

      }

      I2S音頻系統(tǒng)的功能是通過I2S總線接口與音頻編解碼芯片進(jìn)行交互來實(shí)現(xiàn),其中I2S接口負(fù)責(zé)傳輸音頻數(shù)據(jù),音頻編解碼芯片在I2C總線的控制下完成功能配置后負(fù)責(zé)接收音頻數(shù)據(jù)并進(jìn)行編解碼,其具體功能調(diào)用實(shí)現(xiàn)圖如3所示。由于在實(shí)際項(xiàng)目中,ThreadX提供的驅(qū)動源代碼中已經(jīng)包含了I2C接口驅(qū)動模塊與CODEC驅(qū)動模塊,故本次驅(qū)動開發(fā)只需對I2S接口驅(qū)動模塊進(jìn)行配置,測試驗(yàn)證后方可移植到ThreadX系統(tǒng)中。

      圖3 ThreadX下的I2S調(diào)用模塊

      2 I2S總線接口

      I2S(Inter-IC Sound)總線是一種總線標(biāo)準(zhǔn),即飛利浦公司為數(shù)字音頻設(shè)備之間的音頻數(shù)據(jù)傳輸而制定的。且I2S總線與音頻設(shè)備之間進(jìn)行數(shù)據(jù)傳輸,廣泛應(yīng)用于各種多媒體系統(tǒng)。

      I2S有3個主要信號:串行時(shí)鐘SCLK(continuous serial clock)、幀時(shí)鐘 LRCK(word select )、串行數(shù)據(jù) SDATA(serial data)。在I2S音頻系統(tǒng)中,產(chǎn)生SCLK和LRCK信號的一方可稱為主設(shè)備,I2S總線控制器與音頻芯片均可作為發(fā)送端與接收端,且發(fā)送端和接收端需要同步時(shí)鐘信號來控制數(shù)據(jù)的傳輸,傳輸模式之一如圖4所示。如果有多個接收端和發(fā)送端,就需要一個控制端作為主導(dǎo)裝置來產(chǎn)生SCLK和LRCK的信號。

      圖4 I2S數(shù)據(jù)傳輸模式

      2.1 I2S的總線協(xié)議

      (1)幀時(shí)鐘LRCK

      音頻數(shù)據(jù)由左右聲道組成,使用幀時(shí)鐘選擇可以區(qū)分左右聲道,即LRCK為低電平時(shí)表示正在傳輸?shù)氖亲舐暤赖臄?shù)據(jù),為高電平時(shí)表示正在傳輸?shù)氖怯衣暤赖臄?shù)據(jù)。LRCK可以在串行時(shí)鐘的上升沿或者下降沿發(fā)生改變,且總是在最高位傳輸前的一個時(shí)鐘周期發(fā)生改變,這樣可以從設(shè)備得到與被傳輸?shù)拇袛?shù)據(jù)同步的時(shí)間。

      (2)串行時(shí)鐘SCLK

      串行時(shí)鐘,即表示每一個時(shí)鐘信號傳送一位音頻數(shù)據(jù),因此,I2S串行時(shí)鐘的頻率計(jì)算公式如下:

      I2S SCLK的頻率=聲道數(shù)×采樣頻率(fs)×采樣位數(shù)

      其中聲道數(shù)通道數(shù)為2,即左、右聲道。采樣頻率可為系統(tǒng)主時(shí)鐘,并且I2S LRCK的頻率值可等值于采樣頻率。采樣位數(shù)可根據(jù)寄存器配置數(shù)據(jù)寬度決定。

      由于I2S總線只負(fù)責(zé)音頻數(shù)據(jù)的傳輸,而要真正實(shí)現(xiàn)音頻數(shù)據(jù)的錄入和播放,還需要同外接的音頻芯片同步采樣時(shí)鐘與采樣位數(shù)來處理音頻數(shù)據(jù)。在I2S總線中,I2S接口端和音頻芯片(CODEC)端分別可以作為主設(shè)備,其中只要當(dāng)某一端作為產(chǎn)生時(shí)鐘信號LRCK和SCLK的器件,則就能作為主設(shè)備。

      (3)串行數(shù)據(jù)SDATA

      串行數(shù)據(jù),其用二進(jìn)制補(bǔ)碼表示音頻數(shù)據(jù),在串行時(shí)鐘SCLK脈沖下,數(shù)據(jù)一位一位地傳輸在SDATA線上。當(dāng)音頻數(shù)據(jù)被音頻芯片模數(shù)轉(zhuǎn)化器處理成二進(jìn)制數(shù)據(jù)流后,將數(shù)據(jù)分成8位或16位傳輸,且每個字節(jié)的數(shù)據(jù)傳輸從左邊的二進(jìn)制位MSB(MostSignificantBit)開始。當(dāng)發(fā)送方和接收方的數(shù)據(jù)寬度不一樣時(shí),發(fā)送方不考慮接收方的數(shù)據(jù)寬度,如果發(fā)送方的數(shù)據(jù)寬度小于系統(tǒng)字段寬度,可以在低位補(bǔ)0;反之超過LSB(Least Significant Bit)的部分被截?cái)唷?/p>

      2.2 TLV320AIC3106音頻芯片

      基于實(shí)際項(xiàng)目,I2S接口模塊集成在芯片中,其目的是為了適應(yīng)移動音頻設(shè)備越來越高的要求,且內(nèi)置的I2S總線接口也可以方便和其他音頻編解碼芯片配合使用。而實(shí)際項(xiàng)目中采用的音頻編解碼芯片為TLV320AIC3106芯片。

      TLV320AIC3106是TI公司生產(chǎn)的具有立體聲耳機(jī)放大器的低功耗立體聲音頻編解碼器,記錄路徑包含集成的麥克風(fēng)偏置、數(shù)字控制的立體聲麥克風(fēng)前置放大器和自動增益控制(AGC),內(nèi)部A/D轉(zhuǎn)換器和D/A轉(zhuǎn)換器可用于實(shí)現(xiàn)模擬音頻信號的采集和數(shù)字音頻信號的模擬輸出。

      雖僅支持I2S硬件接口和I2S總線數(shù)據(jù)格式,但字節(jié)長度最高可達(dá)到32位,且其還包括高度可編程的PLL,用于靈活的時(shí)鐘生成,并支持來自各種可用MCLK(從512 kHz~50 MHz)的所有標(biāo)準(zhǔn)音頻速率,能有效降低使用功耗,可在多種需要進(jìn)行聲音錄入或輸出的嵌入式媒體設(shè)備中進(jìn)行實(shí)際應(yīng)用。

      2.3 I2S總線驅(qū)動程序的通信原理

      從實(shí)際項(xiàng)目出發(fā),處理器需要通過I2S總線才能完成和音頻芯片之間的數(shù)據(jù)傳輸。圖5為I2S音頻系統(tǒng)邏輯框圖。

      一般而言,處理器與外部芯片進(jìn)行數(shù)據(jù)傳輸?shù)姆绞接袃煞N:傳統(tǒng)的中斷方式和直接存儲器存取DMA方式。音頻數(shù)據(jù)的傳輸可以通過設(shè)置寄存器先入先出FIFO隊(duì)列來完成。若處理器采用中斷的方式往FIFO隊(duì)列錄入數(shù)據(jù),其不僅很難保證音頻播放的連續(xù)性,而且還會因處理器頻繁的響應(yīng)中斷而導(dǎo)致系統(tǒng)執(zhí)行效率和性能的降低。為了避免錄入與播放的斷續(xù),且FIFO空間有限,需要將錄入的音頻數(shù)據(jù)存儲到其他內(nèi)存緩沖區(qū)內(nèi),錄入數(shù)據(jù)與播放數(shù)據(jù)可存放在不同的內(nèi)存緩沖中,但需要快速切換使用的緩存空間,所以根據(jù)實(shí)際項(xiàng)目的需求,在為音頻系統(tǒng)開發(fā)I2S總線接口驅(qū)動過程中,設(shè)計(jì)采用DMA方式進(jìn)行音頻數(shù)據(jù)傳輸。

      音頻系統(tǒng)最終是為了實(shí)現(xiàn)錄音與播音的異時(shí)或同時(shí)處理效果。項(xiàng)目的系統(tǒng)DMA支持8個通道,為了實(shí)現(xiàn)音頻數(shù)據(jù)全雙工傳輸,開發(fā)過程中采用兩個DMA通道,通過設(shè)置使能I2S接口控制器中的寄存器I2S_TX_DMA_DISABLE和I2S_RX_DMA_DISABLE來使I2S接口與處理器之間音頻數(shù)據(jù)傳輸工作在DMA模式下。

      此模式下使用I2S接口的FIFO寄存器組I2S_TX_DMA_FIFO_INPUT_DATA、I2S_TX_DMA_FIFO_STATUS、I2S_RX_DMA_OUTPUT_DATA和I2S_RX_FIFO_STATUS來存放音頻數(shù)據(jù),設(shè)置FIFO的狀態(tài)來觸發(fā)DMA控制器,將數(shù)據(jù)與內(nèi)存區(qū)域之間進(jìn)行傳輸,最終以實(shí)現(xiàn)錄音和播音。

      圖5 I2S音頻系統(tǒng)邏輯框圖

      如圖5所示,在音頻數(shù)據(jù)傳輸過程中使用了兩個DMA通道以實(shí)現(xiàn)全雙工工作方式。當(dāng)錄制聲音時(shí)則先由音頻芯片采集音頻數(shù)據(jù),然后由音頻數(shù)據(jù)傳輸專用總線將數(shù)據(jù)發(fā)送到I2S總線控制器的rx_fifo中,最后由內(nèi)部總線將采集到的音頻數(shù)據(jù)通過DMA使用其中1個DMA通道搬送,寫入到內(nèi)存緩沖區(qū)中。

      當(dāng)播放聲音時(shí),首先將音頻數(shù)據(jù)通過另一個DMA通道經(jīng)由DMA控制器將音頻數(shù)據(jù)寫入I2S總線控制器的tx_fifo中,最后由音頻數(shù)據(jù)傳輸專用總線傳送到音頻芯片中進(jìn)行播放。

      3 ThreadX下I2S音頻總線的驅(qū)動程序開發(fā)

      3.1 I2S音頻接口驅(qū)動程序模塊開發(fā)

      圖6 全雙工模式(TX+RX)

      音頻系統(tǒng)中I2S接口需經(jīng)過正確的配置方可實(shí)現(xiàn)錄音和播音等功能。本文主要是根據(jù)實(shí)際項(xiàng)目的需求來設(shè)計(jì)一組固定的I2S音頻接口驅(qū)動程序,控制音頻數(shù)據(jù)在硬件中流動,以實(shí)現(xiàn)音頻數(shù)據(jù)的正確接收和發(fā)送。設(shè)計(jì)的音頻系統(tǒng)采樣規(guī)格是系統(tǒng)主時(shí)鐘為44.1 kHz,采樣位數(shù)為16位。

      基于實(shí)際項(xiàng)目需求來實(shí)現(xiàn)音頻系統(tǒng)的全雙工模式,主要是對I2S總線的寄存器進(jìn)行設(shè)置。其工作流程如圖6所示。

      而具體開發(fā)I2S音頻接口驅(qū)動程序完成的工作有:

      (1)配置音頻錄入RX_ONLY模式與音頻播放TX_ONLY模式

      音頻數(shù)據(jù)的錄入和播放都必須先配置好I2S_tx與I2S_rx的相關(guān)參數(shù),如音頻數(shù)據(jù)的采樣率與采樣位數(shù)等。若要實(shí)現(xiàn)音頻數(shù)據(jù)的播放,則調(diào)用開發(fā)函數(shù)I2S_tx_master()將I2S總線初始化為發(fā)送模式;若要實(shí)現(xiàn)音頻數(shù)據(jù)的錄入,則調(diào)用開發(fā)函數(shù)I2S_rx_master()將I2S總線初始化為發(fā)送模式。根據(jù)實(shí)際項(xiàng)目需求,將I2S接口的數(shù)據(jù)發(fā)送和接收模式分別通過寄存器I2S_TX_WORK_MODE和I2S_RX_SLAVE_EN設(shè)置為Master模式,并對發(fā)送和接收Master模式下的高低占空比、串行位時(shí)鐘占空比進(jìn)行配置,然后再依次分別對I2S接口與音頻芯片之間的數(shù)據(jù)接收與發(fā)送進(jìn)行配置,如采樣寬度、音頻芯片接口模式以及音量調(diào)節(jié)等參數(shù)。部分代碼如下:

      voidI2S_tx_master(){

      REG32(I2S_TX_WORK_MODE) = 0;//設(shè)置I2S傳輸方式:主設(shè)備

      REG32(I2S_TX_SRC_INFO) = ((0x0<<5) |(0x10<<0));//傳輸數(shù)據(jù)格式與寬度:立體聲,16位

      REG32(I2S_SRC_SR_CYCLE) = 0x177;//外部編解碼器采樣時(shí)鐘占空比: 32KFS

      REG32(I2S_TX_BCLK_DUTY_CYCLE) = 0x5;

      //傳輸串行位時(shí)鐘占空比:32KFS

      REG32(I2S_TX_BAL) = ((1<<4) |(1<<0));

      //平衡音量控制

      REG32(I2S_TX_VLD_DW) = 0x10;

      //傳輸?shù)骄幗獯a器的有效數(shù)據(jù)寬度:16位

      REG32(I2S_TX_TYPE) = ((1<<5)|(0<<4) |(0<<0));//傳輸類型為I2S標(biāo)準(zhǔn)模式

      REG32(I2S_TX_CLK_PHASE) = ((0<<4) |(0<<0));//傳輸LRCK相位設(shè)置和傳輸位串行相位設(shè)置

      REG32(I2S_TX_ANTI_POP_LENTH) = 0x8;

      REG32(I2S_TX_VOL) = 0x1;//主音量控制

      觀察組患者的LVEDD為(56.34±4.78)mm,LVESD為(41.01±6.67)mm,LVEF為(52.43±5.32)%,血清BNP(309.77±104.44)pg/mL,6MWT為(389.32±70.32)m;對照組的LVEDD為(58.54±3.98)mm,LVESD為(46.32±4.01)mm,LVEF為(45.78±4.78)%,血清BNP(695.33±321.34)pg/mL,6MWT為(312.45±72.12)m,組間比較,差異有統(tǒng)計(jì)學(xué)意義(P<0.05)。

      }

      (2)全雙工模式配置模塊

      通過調(diào)用開發(fā)函數(shù)I2S_loop_back_set()來設(shè)置I2S_LOOP_BACK_ENABLE的第0位為0,即以REG32(I2S_LOOP_BACK_ENABLE) &= ~0x1,將I2S總線初始化為全雙工模式。寄存器I2S_LOOP_BACK_ENABLE具體信息如下所示:

      I2S_LOOP_BACK_ENABLEWidthBitDefaultDescription1[0]0TX-->RXLoopdebugcontrol:0:disable1:enable,internallyconnectTXSDTOtoRXSDTI

      (3)DMA配置模塊

      為實(shí)現(xiàn)音頻數(shù)據(jù)在CPU與外部芯片之間的存儲與播放,需進(jìn)行DMA通道DMA_CHn(0≤n≤7)配置,其中DMA_CH0作為將數(shù)據(jù)從內(nèi)存緩沖區(qū)傳送到I2S接口控制器的tx_fifo中的通道,調(diào)用i2s_dma_tx_configure()實(shí)現(xiàn);DMA_CH1作為將音頻設(shè)備傳送過來的音頻數(shù)據(jù)從I2S接口控制器的rx_fifo傳送到內(nèi)存緩沖去中的通道,調(diào)用i2s_dma_rx_configure()實(shí)現(xiàn)。DMA功能的實(shí)現(xiàn)主要是配置各通道的源地址(DMAC_CHn_BASE + DMAC_SAR)與目的地址(DMAC_CH0_BASE + DMAC_DAR),配置完DMA_CH0與DMA_CH1之后再通過配置寄存器DMAC_DMACFGREG和DMAC_CHENREG使能DMA傳輸功能。部分代碼如下:

      //配置DMA_CH0

      REG32(DMAMAC_BASE_ADDR+DMAC_CH0_BASE + DMAC_SAR) =0xc0000000;//設(shè)置源地址 REG32(DMAMAC_BASE_ADDR+DMAC_CH0_BASE+DMAC_DAR)=I2S_TX_DMA_FIFO_INPUT_DATA ;//設(shè)置目的地址

      REG32(DMAMAC_BASE_ADDR + DMAC_CH0_BASE + DMAC_DSTATAR) = I2S_TX_DMA_FIFO_STATUS;

      REG32(DMAMAC_BASE_ADDR + DMAC_CH0_BASE + DMAC_CTL) = 0x00109125;

      REG32(DMAMAC_BASE_ADDR + DMAC_CH0_BASE + DMAC_CTL + 4) = 0x00000380;

      ……

      //使能DMA_CH0

      REG32(DMAMAC_BASE_ADDR + DMAC_DMACFGREG) =0x00000001;

      REG32(DMAMAC_BASE_ADDR + DMAC_CHENREG) = 0x00000101; REG32(DMAMAC_BASE_ADDR + DMAC_MASKTFR) = 0x0101; REG32(DMAMAC_BASE_ADDR + DMAC_MASKBLOCK) = 0x0101;while(REG32(I2S_TX_DMA_FIFO_STATUS) & 0x4);

      3.2 I2S音頻接口驅(qū)動程序的測試

      綜上所述,完成I2S全雙工模式相關(guān)配置后,則需要對驅(qū)動程序進(jìn)行測試。首先將I2S接口驅(qū)動程序置于Makefile工程環(huán)境中進(jìn)行編譯,編譯通過,然后再將其進(jìn)行ASIC仿真測試。全雙工模式下的音頻錄入測試結(jié)果與播放測試結(jié)果分析如下。

      音頻錄入測試:圖7為音頻芯片采樣第一個數(shù)據(jù)的波形圖,根據(jù)ws_in對應(yīng)的波形圖,來讀取sdi對應(yīng)的波形圖可得采樣的第一個數(shù)據(jù),其左聲道數(shù)據(jù)為“b510”,其右聲道數(shù)據(jù)為“bd10”,再觀察圖8中rx_fifo_din對應(yīng)的紫色光標(biāo)處得知rx_fifo中存儲的第一個數(shù)據(jù)為“32’hbd10_b510”,此表明了音頻錄入數(shù)據(jù)無誤。

      圖7 音頻芯片采樣數(shù)據(jù)波形圖

      圖8 I2S總線rx_fifo數(shù)據(jù)圖

      音頻播放測試:同理如上。圖9中tx_fifo_dout對應(yīng)的數(shù)據(jù)是通過DMA從內(nèi)存緩沖區(qū)搬到tx_fifo中的數(shù)據(jù),其值為“bd1f_b51f”。再觀察圖10中ws_out對應(yīng)的波形

      圖來讀取sdo對應(yīng)的波形圖的數(shù)據(jù),其左聲道數(shù)據(jù)為“b51f”,其右聲道數(shù)據(jù)為“bd1f”,繼而表明了音頻播放數(shù)據(jù)無誤。

      圖9 I2S總線tx_fifo數(shù)據(jù)圖

      圖10 音頻芯片采樣數(shù)據(jù)波形圖

      綜上測試結(jié)果分析可得,本文設(shè)計(jì)的I2S接口驅(qū)動程序能實(shí)現(xiàn)CPU與外部芯片之間音頻數(shù)據(jù)的正確錄入與播放,可移植到ThreadX系統(tǒng)中并與外接芯片完成音頻數(shù)據(jù)的格式轉(zhuǎn)換,最終實(shí)現(xiàn)錄音與播音功能。

      結(jié) 語

      [1] 潘應(yīng)進(jìn),朱子元. 基于ThreadX實(shí)時(shí)操作系統(tǒng)的USB設(shè)備驅(qū)動開發(fā)[J]. 工業(yè)控制計(jì)算機(jī),2016,29(2):30-32.

      [2] 宋鑫夢,郭改枝,王秀麗. 基于嵌入式的I2S音頻系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 內(nèi)蒙古師范大學(xué)學(xué)報(bào):自然科學(xué)漢文版,2015,44(2):245-248.

      [3] 霍燃,高麗萍,陳慶奎. 嵌入式Linux系統(tǒng)下基于UDA1341芯片的音頻驅(qū)動程序設(shè)計(jì)[J]. 計(jì)算機(jī)應(yīng)用與軟件,2012,29(4):16-19.

      [4] 李文正. 基于I2S總線的嵌入式音頻系統(tǒng)的設(shè)計(jì)[J]. 軟件,2010,31(12):55-60.

      [5] 趙鵬. 嵌入式Linux音頻驅(qū)動及簡單播放器的設(shè)計(jì)與實(shí)現(xiàn)[D].長春:吉林大學(xué),2009.

      [6] 丁德紅,劉亞波. 嵌入式系統(tǒng)中的I2S音頻接口技術(shù)[J]. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2009(2):25-28.

      [7] 房國志,馬傳龍. Linux中I2S總線聲卡驅(qū)動的研究[J]. 科技創(chuàng)新導(dǎo)報(bào),2009(2):5-7.

      [8] 莊海軍. 基于S3C2410的I2S音頻總線研究及其驅(qū)動實(shí)現(xiàn)[J]. 淮陰工學(xué)院學(xué)報(bào),2008,17(5):72-76.

      劉伍洋(研究生),主要研究內(nèi)容為嵌入式底層軟件開發(fā)。

      猜你喜歡
      音頻系統(tǒng)驅(qū)動程序時(shí)鐘
      別樣的“時(shí)鐘”
      淺談號角與帶式揚(yáng)聲器 在家用或?qū)I(yè)音頻系統(tǒng)中的應(yīng)用
      打造最具性價(jià)比的7.4.1沉浸式音頻系統(tǒng) 昆明藝術(shù)家園
      古代的時(shí)鐘
      Elektrobit提供的EB GUIDE工具鏈加速Pioneer最新顯示音頻系統(tǒng)的開發(fā)
      汽車零部件(2020年9期)2020-09-28 05:45:20
      從房間與音頻系統(tǒng)再談定制安裝的核心要素 暢談家庭影院系統(tǒng)中的隱藏設(shè)計(jì)
      有趣的時(shí)鐘
      時(shí)鐘會開“花”
      驅(qū)動程序更新與推薦
      驅(qū)動程序更新與推薦
      江阴市| 宝清县| 迁西县| 阜城县| 惠来县| 武穴市| 河曲县| 海南省| 海安县| 瑞丽市| 南阳市| 清水河县| 河池市| 博客| 本溪市| 衡阳县| 敦煌市| 驻马店市| 华坪县| 巍山| 朝阳县| 安福县| 阳春市| 施秉县| 临夏市| 贵南县| 呼玛县| 泰宁县| 资兴市| 泸溪县| 泸定县| 彭州市| 乃东县| 广安市| 始兴县| 波密县| 晴隆县| 汤阴县| 宜兴市| 丹阳市| 怀来县|