當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]增強型直接內(nèi)存存取由DMA控制器發(fā)展而來。與DMA相比,eDMA增加了傳輸控制描述符TCD單元,功能上表現(xiàn)為能傳輸更多的通道數(shù)據(jù)。本文分析了eDMA的傳輸機制,并通過ColdFire系列處理器MCF5329與音頻芯片TLV320DAC23組成的音頻系統(tǒng)中音頻數(shù)據(jù)的傳輸來闡述eDMA的典型應(yīng)用通過控制eDMA不但能夠提高數(shù)據(jù)的傳輸率,而且能夠充分發(fā)揮MCU的高速性能。

eDMA是enhanced Direct Memory Access的簡稱,即增強型直接內(nèi)存存取。它是用于快速數(shù)據(jù)交換的重要技術(shù),具有獨立于CPU的后臺批量數(shù)據(jù)傳輸能力,能夠滿足實時處理中高速數(shù)據(jù)傳輸?shù)囊?。在ColdFire系列MCU中的MCF5329EVB平臺上實現(xiàn)的音頻系統(tǒng),為了滿足系統(tǒng)的實時性要求,采用eDMA來完成音頻數(shù)據(jù)的傳輸。MCF5329EVB提供了一個eDMA控制器,可以滿足大量數(shù)據(jù)的實時傳送需求。

1 eDMA介紹
1.1 eDMA的結(jié)構(gòu)

    eDMA模塊框圖如圖1所示。

    從eDMA的模塊結(jié)構(gòu)圖可以看出,eDMA模塊包括兩個主要模塊:eDMA引擎和傳輸控制描述符TCD單元。其中,eDMA引擎的功能主要包括源地址和目的地址的計算和實際的數(shù)據(jù)搬移操作;TCD單元的功能是為每個通道定義傳輸?shù)脑吹刂泛湍康牡刂?、次循環(huán)的大小、單次傳輸?shù)淖止?jié)量及傳輸方式等信息。
    eDMA引擎由如下4個子模塊組成:
    ①地址路徑模塊。執(zhí)行傳輸控制描述符的2個通道(通道X和通道Y)的注冊,并處理所有的總線地址計算。被注冊的通道用于裝載從傳輸控制描述符區(qū)域讀取的傳輸控制描述符內(nèi)容。
    ②數(shù)據(jù)路徑模塊。執(zhí)行數(shù)據(jù)的讀寫,包括16字節(jié)的寄存器存儲區(qū)域,并支持多種數(shù)據(jù)排列方式。
    ③編程模型/通道仲裁模塊。執(zhí)行eDMA編程模型和通道仲裁。eDMA外部請求輸入和中斷輸出都連接到該模塊。
    ④控制模塊。提供所有針對eDMA引擎的控制功能,包括對數(shù)據(jù)讀和寫的匹配。如需要讀取的源數(shù)據(jù)大小為16位,而目標(biāo)數(shù)據(jù)大小為32位,則每2次讀取只需要1次寫入。
    傳輸控制描述符區(qū)域由如下兩部分組成:
    ①內(nèi)存控制器。該邏輯執(zhí)行必需的雙向端口控制,處理eDMA引擎和內(nèi)部外圍總線的通道。
    ②內(nèi)存陣列。TCD存儲區(qū)是一個單端口同步的RAM陣列。每個通道都有1個TCD單元,每個TCD有32字節(jié),由11個寄存器組成。
1.2 eDMA的操作
    MCF5329的eDMA有16個數(shù)據(jù)傳輸通道,每一個通道由一個傳輸控制描述符TCD進(jìn)行描述。TCD不僅記錄了數(shù)據(jù)傳輸?shù)脑春湍康牡刂?,還記錄了當(dāng)前傳輸?shù)刂废鄬τ谄鹗嫉刂返钠?。該偏移由一個主循環(huán)(maior loop)和一個次循環(huán)(minor loop)來表示。當(dāng)一個通道在傳輸時,次循環(huán)中的數(shù)據(jù)傳輸完成之后,eDMA引擎中的當(dāng)前源地址、目的地址和外循環(huán)的大小會被寫回TCD存儲區(qū)域,并執(zhí)行通道連接的其他通道傳輸。每一個次循環(huán)執(zhí)行完,當(dāng)前外循環(huán)計數(shù)器就會減1;當(dāng)外循環(huán)計數(shù)器減為O時,eDMA會向處理器發(fā)起一次中斷請求,請求下一次eDMA傳輸?shù)脑春湍康牡刂贰R淮沃餮h(huán)所能傳送的最大字節(jié)數(shù)由用戶所分配的eDMA緩沖區(qū)大小決定。
1.3 eDMA基本數(shù)據(jù)流
    eDMA基本數(shù)據(jù)流可被劃分為三段。
    第一段是通道激活。以外圍硬件請求激活通道為例,eDMA請求輸入信號首先經(jīng)由控制子模塊進(jìn)入編程模型和通道仲裁模塊,確定采用固定優(yōu)先級還是聯(lián)合通道仲裁(固定優(yōu)先級仲裁是先給具有最高優(yōu)先級的通道服務(wù),聯(lián)合通道優(yōu)先級是先給通道編號最大的通道服務(wù));確定通道后,被確定的通道號通過地址路徑模塊發(fā)送并轉(zhuǎn)換成需要的地址,用于在當(dāng)?shù)卮鎯^(qū)域中存取傳輸控制描述符TCD;相應(yīng)的描述符讀取出來后被裝載到地址路徑模塊中的通道X或通道Y寄存器中。
    第二段是真正的數(shù)據(jù)傳輸。源數(shù)據(jù)被讀取出來臨時,存儲在數(shù)據(jù)路徑塊中,然后在時鐘的驅(qū)動下將數(shù)據(jù)寫入到目標(biāo)地址。整個讀寫過程持續(xù)到次循環(huán)數(shù)據(jù)結(jié)束。
    第三段是TCD的更新和中斷請求的發(fā)生。一旦一個次循環(huán)數(shù)據(jù)傳輸完畢,數(shù)據(jù)流就進(jìn)入第三段。在該段中,地址路徑邏輯會更新相應(yīng)TCD中的特定區(qū)域,如源地址、目標(biāo)地址和外循環(huán)計數(shù)。如果外循環(huán)計數(shù)減為O,則要進(jìn)行額外的設(shè)置,包括最終地址調(diào)節(jié)。如果在此時有中斷請求發(fā)生,需要重新讀取一個新的TCD。

2 TLV320DAC23介紹
    TLV320DAC23是TI公司推出的一顆高性能立體聲音頻編解碼(CODEC)芯片,采樣率可以從8 kHz到96kHz,傳輸字長可自由選擇為16位、20位、24位或32位;最大輸出信噪比可達(dá)到100 db;控制端口可兼容SPI、2一wire等協(xié)議;回放模式下功率為18 mw,省電模式下小于15μW。該芯片適用于便攜式設(shè)備的數(shù)字音頻處理。
    (1)控制接口
    控制接口用于對器件TLV320DAC23的寄存器編程,以及設(shè)置音頻芯片的工作參數(shù)。它兼容兩種模式:SPI三線模式、2一wire模式。
    MODE:模式選擇。MODE為0時采用2一wire模式,為1時采用SPI模式。
    SCLK:控制端口串行數(shù)據(jù)時鐘。
    SDIN:控制端口串行數(shù)據(jù)輸入。
    CS:控制端口輸入鎖存/地址選擇。SPI模式下,CS用于數(shù)據(jù)鎖存控制,2一wire模式下,CS定義器件地址域的第7位。SPI模式下,1個控制字為1 6位:高7位為控制地址,低9位為控制字。16位的控制字由MSB位開始傳輸,每位在SCLK的上升沿被鎖存,整個16位的控制字在最低位被CS鎖存進(jìn)TLV320DAC23。
    (2)數(shù)字音頻接口
    數(shù)字音頻接口用于輸入TLV320DAC23的D/A數(shù)據(jù)。
    BCLK:I2S串行比特時鐘。主模式時BCLK為輸出,從模式時BCLK為輸入。
    DIN:I2S串行數(shù)據(jù)輸入。
    DOUT:I2S串行數(shù)據(jù)輸出。
    LRCIN/LRCOUT:字時鐘輸入/輸出信號,兩個信號共有的幀信號。在主模式中由DAC23產(chǎn)生該信號,在從模式中由主設(shè)備(如DSP或MCU)產(chǎn)生該信號。
    TLV320DAC23支持4種音頻接口模式:右對齊模式、左對齊模式、I2S模式、DSP模式。這4種模式都是最高有效位MSB在前,字長16~32位(右對齊除外,它不支持32位)。
    (3)時鐘接口
    MCLK:芯片主時鐘信號。當(dāng)TLV320DAC23作為主設(shè)備時,該信號由芯片自身產(chǎn)生;當(dāng)TLV320DAC23作為從設(shè)備時,該信號由外部產(chǎn)生。
    CLKOUT:時鐘輸出信號??梢詾镸CLK或MCLK/2。


3 音頻驅(qū)動設(shè)計
    TLV320DAC23與MCF5329之間的音頻數(shù)據(jù)傳輸采用I2S音頻格式,由MCF5329的同步串行接口SSI實現(xiàn)與TLV320DAC23的數(shù)據(jù)傳輸。MCF5329處理器內(nèi)核與同步串行接口SSI發(fā)送/接收寄存器之間的音頻數(shù)據(jù)傳輸采用eDMA機制傳輸,由MCF5329中的eDMA模塊實現(xiàn)。
3.1 硬件連接
    TLV320DAC23與MCF5329的接口有兩個:一個是控制接口,用于設(shè)置TLV320DAC23的寄存器,從而設(shè)置它的工作參數(shù);一個是數(shù)字音頻接口,用于傳輸TLV320DAC23的音頻數(shù)據(jù)并控制數(shù)據(jù)的時序。本設(shè)計采用由MCF5329提供的時鐘信號,所以將MCF5329設(shè)為主設(shè)備,TLV320DAC23作為從設(shè)備。音頻數(shù)據(jù)采用I2S音頻格式傳輸,控制字通過SPI接口傳輸。具體連接如圖2所示。

3.2 軟件設(shè)計
    (1)設(shè)備的初始化
    同步串行接口SSI的初始化包括對控制寄存器、傳輸配置寄存器和接收配置寄存器、時鐘配置寄存器、發(fā)送時隙掩碼寄存器和接收時隙掩碼寄存器以及中斷允許寄存器的配置。最后設(shè)置中斷源和中斷級別。
    eDMA的初始化包括eDMA與同步串行接口SSI發(fā)送/接收寄存器連接的配置,以及確定eDMA的通道仲裁方式。
    具體代碼如下:

   
    TLV320DAC23的初始化主要是通過SPI接口設(shè)置編解碼芯片控制接口相關(guān)的寄存器。初始化設(shè)置為I2S從模式,輸入字長32位,高位先,設(shè)置采樣率8 kHz。設(shè)置完后激活數(shù)字接口。
    (2)數(shù)據(jù)的傳輸
    完成設(shè)備的初始化后,就要設(shè)置傳輸控制描述符TCD的相關(guān)寄存器以控制eDMA的傳輸。以音頻驅(qū)動中的放音過程為例,該過程的音頻數(shù)據(jù)由處理器內(nèi)核傳送到SSI發(fā)送寄存器。音頻數(shù)據(jù)分為左右2個聲道,所以啟動2個eDMA通道——通道11和通道12——負(fù)責(zé)傳送數(shù)據(jù)。設(shè)置次循環(huán)的大小為4字節(jié),由于是2個通道傳輸,所以1次次循環(huán)共8字節(jié)。若一次主循環(huán)需要傳完的數(shù)據(jù)為count字節(jié),那么設(shè)置主循環(huán)中包含的次循環(huán)數(shù)為count/8。最后允許通道12的主循環(huán)中斷,并開啟2個通道,開始傳輸。下面以通道ll為例來說明eDMA的設(shè)置流程(TCD代表通道11):


    通道12的設(shè)置基本與通道11相同,只有一點不同,就是在開啟通道12傳輸?shù)耐瑫r允許通道12的大循環(huán)中斷。音頻驅(qū)動中的錄音過程與放音過程eDMA設(shè)置相似,只是音頻數(shù)據(jù)的傳送方向是由SSI接收寄存器傳輸?shù)教幚砥鲀?nèi)核。
    設(shè)計完成后的音頻驅(qū)動經(jīng)測試,在系統(tǒng)任務(wù)繁重的情況下(例如MP3文件解碼并實時播放),仍然可以完成正常語音播放,效果良好。


結(jié) 語
    本文分析了一種增強型直接內(nèi)存存取eDMA的訪問機制,并通過實例闡述了eDMA的典型應(yīng)用。eDMA模塊加快了數(shù)據(jù)傳輸?shù)乃俣?,減少了CPU的干預(yù)。并且它在TCD中設(shè)置了主循環(huán)和次循環(huán)傳輸,從而增強了單次單通道的傳輸數(shù)據(jù)量,也增強了傳輸?shù)撵`活性。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉