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

        ?

        Kinetis微控制器eDMA和I2S的音頻接口設(shè)計※

        2013-09-21 10:44:06李晶皎榮超群刁麗芳
        關(guān)鍵詞:數(shù)據(jù)格式字節(jié)時鐘

        李晶皎,榮超群,刁麗芳

        (東北大學 信息科學與工程學院,沈陽 110819)

        引 言

        MK60N512是飛思卡爾公司Kinetis系列微控制器集成度最高的芯片[1-2],它基于 ARM Cortex-M4內(nèi)核,具有功耗低、性能高、成本低的特點,旨在為嵌入式音頻、汽車電子和電源管理等提供靈活的解決方案[3]。MAX5556是美信公司一款低功耗、立體聲音頻數(shù)/模轉(zhuǎn)換器(DAC)[4],支持標準I2S總線協(xié)議,采樣精度最高可達24位,采樣率為2~50kHz。采用Σ-Δ調(diào)制技術(shù),能夠?qū)α炕肼曔M行有效整形,減小量化噪聲[5]。

        音頻處理系統(tǒng)中,采用DMA實現(xiàn)音頻數(shù)據(jù)在微控制器內(nèi)的傳輸,能減少內(nèi)核的參與,降低內(nèi)核負擔[6]。系統(tǒng)的數(shù)據(jù)傳輸通道如圖1所示,音頻信號暫存在緩存區(qū)中,由DMA傳輸?shù)絀2S總線模塊的發(fā)送電路。為了保持音頻信號的連續(xù)性,采用“乒乓RAM”設(shè)計緩存。圖中A/B表示乒乓RAM的編號。

        圖1 數(shù)據(jù)傳輸通道

        1 MK60N512I2S總線和eDMA介紹

        1.1 I 2S總線模塊

        MK60N512的I2S總線模塊有3種基本操作模式:普通模式、網(wǎng)絡(luò)模式和門控時鐘模式,針對音頻上的應(yīng)用,I2S總線模塊還支持兩種衍生模式:I2S總線模式和AC97模式。I2S總線模塊的結(jié)構(gòu)如圖2所示,由發(fā)送電路、接收電路、串行時鐘和幀同步時鐘產(chǎn)生電路組成。STCK、SRCK分別為串行發(fā)送、接收時鐘端口,STFS、SRFS為串行發(fā)送、接收幀同步端口,STXD、SRXD為串行發(fā)送和接收數(shù)據(jù)端口。在同步模式下,STCK端口被發(fā)送和接收單元共同使用。

        發(fā)送電路和接收電路均有兩個FIFO,寬度為32位,深度為15。對發(fā)送數(shù)據(jù)寄存器TX0/TX1和接收數(shù)據(jù)寄存器RX0/RX1的寫入與讀取可以訪問這些FIFO。發(fā)送邏輯將TX FIFO中的數(shù)據(jù)轉(zhuǎn)移出來,裝入發(fā)送串行移位器TXSR,然后從STXD端口串行發(fā)送;接收邏輯將數(shù)據(jù)從輸入的數(shù)據(jù)幀中轉(zhuǎn)移出來后,將它們放入接收RX FIFO的入口。當TX FIFO中空缺數(shù)目或RX FIFO數(shù)據(jù)達到設(shè)定的數(shù)目時,會觸發(fā)中斷或者DMA傳輸。

        圖2 MK60N512的I 2S模塊結(jié)構(gòu)

        1.2 eDMA

        MK60N512的eDMA高度可編程,數(shù)據(jù)傳輸高度優(yōu)化而幾乎不需要CPU內(nèi)核干預。與普通的DMA不同,eDMA的傳輸由主循環(huán)(Major Loop)和輔循環(huán)(Minor Loop)組成。主循環(huán)由外設(shè)自動觸發(fā),每次主循環(huán)結(jié)束后源地址、目的地址都會按照TCDn_SOFF、TCDn_DOFF寄存器中的值自動偏移而不需要CPU去修改。除了所有傳輸結(jié)束后產(chǎn)生中斷申請外,eDMA還支持“半中斷”,即主循環(huán)完成總循環(huán)次數(shù)一半時產(chǎn)生中斷申請,這特別適合“乒乓RAM”設(shè)計。

        2 MAX5556介紹

        2.1 引腳定義和內(nèi)部結(jié)構(gòu)

        MAX5556內(nèi)部結(jié)構(gòu)如圖3所示,MCLK為主時鐘,LRCLK為左/右聲道選擇時鐘,SCLK為外部串行時鐘,SDATA為串行音頻輸入,OUTL/OUTR為左/右聲道輸出。串行接口模塊獲取音頻數(shù)據(jù)后,由內(nèi)置數(shù)字插值器、濾波器對其進行濾波,以去除基帶音頻信號攜帶的諧波噪聲;音頻數(shù)據(jù)經(jīng)Σ-Δ調(diào)制器調(diào)制后由DAC轉(zhuǎn)換,輸出的模擬信號經(jīng)由內(nèi)部的模擬低通濾波器進行濾波,衰減高頻量化噪聲;內(nèi)置輸出緩存器能驅(qū)動大于3kΩ的負載電阻和高達100pF的負載電容;最終模擬音頻信號從OUTL/OUTR輸出。

        圖3 MAX5556內(nèi)部結(jié)構(gòu)

        2.2 工作模式

        MAX5556支持外部串行時鐘模式和內(nèi)部串行時鐘模式。在一個LRCLK周期內(nèi),若檢測到有效的SCLK,則進入外部串行時鐘模式,SCLK作為采樣時鐘;如果檢測不到有效的SCLK,則進入內(nèi)部串行時鐘模式,采樣時鐘由內(nèi)部生成。內(nèi)部采樣時鐘的頻率根據(jù)檢測到的MCLK與LRCLK的比值確定,若MCLK與LRCLK的比值為384,則內(nèi)部采樣時鐘頻率為48×fLRCLK;若MCLK與LRCLK的比值為256或512,則內(nèi)部采樣時鐘頻率為

        2.3 數(shù)據(jù)格式

        MAX5556支持左對齊16位或者24位數(shù)據(jù)格式。當其工作在外部串行時鐘模式,或工作在內(nèi)部串行時鐘模式,且同時MCLK與LRCLK的比值為384時,有效數(shù)據(jù)為24位。如果數(shù)據(jù)不足24位,低位補零;超過24位的數(shù)據(jù)會被忽略。當工作在內(nèi)部串行時鐘模式,且MCLK與LRCLK的比值為256或512時,有效數(shù)據(jù)為16位。MAX5556數(shù)據(jù)格式如圖4所示。每次LRCLK沿變化后的第二個SCLK上升沿時,SDATA上數(shù)據(jù)開始有效,出現(xiàn)最高有效位(MSB);24個或者16個時鐘周期后出現(xiàn)最低位有效位(LSB)。LRCLK為0時,數(shù)據(jù)進入左聲道DAC;LRCLK為1時,數(shù)據(jù)進入右聲道DAC。

        3 系統(tǒng)硬件電路設(shè)計

        MK60N512通過I2S總線將音頻數(shù)據(jù)傳輸給MAX5556進行數(shù)模轉(zhuǎn)換,輸出模擬音頻信號由濾波電路進行濾波,同時提高帶負載能力。I2S總線模塊工作在I2S總線主模式下,發(fā)送電路的STCK、STFS和STXD端口對應(yīng)的引腳分別為BCLK、TX_FS和TXD,I2S總線模塊的主時鐘通過MCLK引腳輸出。硬件電路如圖5所示。由于MK60N512工作在3.3V電壓下,而MAX5556工作電壓為5V,為了提高數(shù)據(jù)傳輸?shù)姆€(wěn)定性,接口均采用上拉方式。

        圖4 MAX5556數(shù)據(jù)格式

        圖5 硬件電路

        LM358在5V單電源供電時有效輸出為1.5~3.5V,而MAX5556的輸出可以達到0~5V,因而在輸入端使用R1和R2對原始信號進行衰減,防止輸出信號出現(xiàn)削頂失真。

        4 軟件設(shè)計

        4.1 “乒乓RAM”設(shè)計

        MK60N512的I2S總線模塊在I2S總線模式下支持雙聲道,音頻數(shù)據(jù)在FIFO中交錯存放,因此在緩存中的音頻數(shù)據(jù)也需要交錯存放。數(shù)據(jù)緩存如圖6所示,其中L/R表示音頻左/右聲道。每個音頻數(shù)據(jù)占用4個字節(jié)空間,緩存BUFF_A、BUFF_B在物理地址上是連續(xù)的,它們大小均為512字節(jié),共存儲256個音頻數(shù)據(jù)。當DMA從緩區(qū)BUFF_A中讀取數(shù)據(jù)時,CPU向緩存區(qū)BUFF_B中存儲下一組音頻信號;當DMA將BUFF_A中的數(shù)據(jù)全部傳輸結(jié)束后,將DMA通道源地址切換到BUFF_B,同時CPU向BUFF_A存儲數(shù)據(jù),如此反復。

        4.2 I 2S總線模塊的配置

        圖6 數(shù)據(jù)緩存

        配置I2S總線模塊工作在I2S總線主模式下,默認一幀數(shù)據(jù)長度是32位,而且為左對齊模式;使用幀同步TX_FS作為聲道選擇時鐘,且同步幀長度為一個字。由于MAX5556的SCLK信號由MK60N512提供,MAX5556工作在外部串行時鐘模式,有效數(shù)據(jù)位是24位,因而配置發(fā)送數(shù)據(jù)位為24位。按照MAX5556的數(shù)據(jù)格式,數(shù)據(jù)需要在SCLK下降沿輸出從TXD數(shù)據(jù),且需要發(fā)送早期幀同步,讓數(shù)據(jù)延遲一個采樣時鐘,還需要根據(jù)音頻采樣頻率設(shè)置幀頻率。

        使能TX FIFO和其DMA請求,當FIFO中空缺數(shù)達到8時,啟動一次DMA主循環(huán)。圖7為音頻數(shù)據(jù)在TX FIFO移動過程。圖7(a)中FIFO為滿,隨著發(fā)送移位邏輯從FIFO從取出一個數(shù)據(jù)后,F(xiàn)IFO產(chǎn)生一個空缺,如圖7(b)所示。當發(fā)送8次數(shù)據(jù)后,F(xiàn)IFO空缺數(shù)達到8個,則觸發(fā)DMA主傳輸,如圖7(c)所示。

        I2S總線的初始化代碼略——編者注。

        4.3 eDMA配置

        當TX FIFO空缺數(shù)達到8時,觸發(fā)DMA主循環(huán),故每次主循環(huán)傳輸數(shù)據(jù)數(shù)目是32字節(jié),每次主循環(huán)源地址偏移也是32字節(jié),完成緩存區(qū)1 024字節(jié)數(shù)據(jù)傳輸需要32次主循環(huán)。第16次主循環(huán)結(jié)束,DMA已經(jīng)將BUFF_A中所有數(shù)據(jù)傳輸完畢,DMA源地址指向BUFF_B,并產(chǎn)生“半中斷”請求,CPU開始向BUFF_A中存儲下一組512字節(jié)音頻數(shù)據(jù)。

        圖7 FIFO中的數(shù)據(jù)和空缺

        當BUFF_B中數(shù)據(jù)傳輸結(jié)束后,源地址恢復到BUFF_A起始地址,并產(chǎn)生中斷請求,CPU響應(yīng)中斷并向BUFF_B中存儲下一組512字節(jié)音頻數(shù)據(jù)。可以看出,在傳輸過程中,CPU只需要響應(yīng)兩次中斷請求,然后向緩存區(qū)寫入音頻數(shù)據(jù)。每次主循環(huán)結(jié)束后源地址偏移32字節(jié),完整的傳輸結(jié)束后,源地址恢復到BUFF_A起始地址,這些操作都是通過eDMA模塊自己完成的。

        DMA的初始化代碼略——編者注。

        5 測試結(jié)果

        圖8為TX_FS和TXD的波形圖,通道1為TX_FS,通道2為TXD。左/右聲道發(fā)送的音頻數(shù)據(jù)均是0x555。圖8(a)的發(fā)送幀頻率為48kHz,圖8(b)的為44.1kHz。從圖8中可以看出,數(shù)據(jù)長度為24位,左對齊模式,而且數(shù)據(jù)與幀同步有一個采樣時鐘的延時,符合MAX5556的數(shù)據(jù)格式和時序。

        結(jié) 語

        本文設(shè)計了基于Kinetis MK60N512和MAX5556的立體聲音頻接口,MK60N512將音頻數(shù)據(jù)按照MAX5556的數(shù)據(jù)格式和時序通過I2S總線傳輸給MAX5556,MAX5556內(nèi)部DAC將數(shù)據(jù)轉(zhuǎn)化為模擬信號輸出,并由濾波電路對音頻信號進行濾波,同時提高帶負載能力。使用MK60N512內(nèi)部高性能可配置的eDMA提高系統(tǒng)數(shù)據(jù)傳輸速率,降低CPU的負擔。測試表明,系統(tǒng)能輸出立體聲音頻,輸出頻率可調(diào),可以為Kinetis系列微控制器音頻解決方案提供參考。

        圖8 I 2S總線輸出波形

        編者注:本文為期刊縮略版,全文見本刊網(wǎng)站www.mesnet.com.cn。

        [1] 劉貫營,趙玉榮.Cortex-M4內(nèi)核微處理器DMA方式的高速 A/D采樣[J].單片機與嵌入式系統(tǒng)應(yīng)用,2012(7):71-72.

        [2] Freescale.K60Sub-Family Reference Manual[EB/OL].[2012-09].http://www.freescale.com.

        [3] 丁燕.基于Freescale Kinetis的農(nóng)田灌溉控制板卡的設(shè)計[J].電子技術(shù),2011(2):5-8.

        [4] Maxim.MAX5556:Low-Cost Stereo Audio DAC[EB/OL].[2012-09].http://www .maxim-ic.com.

        [5] 劉素娟,張?zhí)?,陳建?新型雙聲道音頻Σ-ΔDAC小面積插值濾波器的設(shè)計實現(xiàn)[J].電子與信息學報,2011,33(3):749-753.

        [6] 邵富杰,張國利,周勇.基于I2S總線實現(xiàn)嵌入式語音采集與回放[J].微計算機信息,2011,27(6):72-74.

        猜你喜歡
        數(shù)據(jù)格式字節(jié)時鐘
        No.8 字節(jié)跳動將推出獨立出口電商APP
        別樣的“時鐘”
        古代的時鐘
        No.10 “字節(jié)跳動手機”要來了?
        在智能交通系統(tǒng)中PLC數(shù)據(jù)格式轉(zhuǎn)換方法的研究
        電子測試(2018年1期)2018-04-18 11:52:49
        簡談MC7字節(jié)碼
        有趣的時鐘
        時鐘會開“花”
        論子函數(shù)在C語言數(shù)據(jù)格式輸出中的應(yīng)用
        DWG與SHP數(shù)據(jù)格式互轉(zhuǎn)換方法研究——以龍巖規(guī)劃測繪數(shù)據(jù)為例
        国产一区二区三区激情视频| 亚洲阿v天堂2018在线观看| 欧美婷婷六月丁香综合色| 人妻无码中文专区久久五月婷| 国产自产精品露脸刺激91在线| 亚洲国产av自拍精选| 男人的天堂手机版av| 人人爽久久久噜人人看| 中文天堂国产最新| 日本黄页网站免费大全| 午夜国产一区二区三区精品不卡| 亚洲处破女av一区二区| 中文字幕亚洲精品久久| 正在播放强揉爆乳女教师| 亚洲日韩欧洲无码av夜夜摸| 精品亚洲午夜久久久久| 成人午夜视频在线观看高清| 精品国产女主播一区在线观看| 亚洲人不卡另类日韩精品| 三a级做爰片免费观看| 欧美午夜一区二区福利视频| 国产成人精品一区二免费网站| 中文字幕日韩精品中文字幕| 国产一区二区精品亚洲| 欧美亚洲色综久久精品国产| 欧美日韩中文国产一区| 中文字幕亚洲好看有码| 隔壁人妻欲求不满中文字幕| 日韩精品专区在线观看| 国产精品夜间视频香蕉| 久久久久亚洲AV成人网毛片 | 中文字幕亚洲高清精品一区在线| 伊人久久大香线蕉av色婷婷色| 无码吃奶揉捏奶头高潮视频| 人妻去按摩店被黑人按中出| 国产黄色精品高潮播放| 日韩极品视频免费观看| 97在线观看| 一级片久久| 精品奇米国产一区二区三区| 黄色av亚洲在线观看|