《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > 基于TMS320VC5402多信道緩沖串口的DMA方式數(shù)據(jù)傳輸

基于TMS320VC5402多信道緩沖串口的DMA方式數(shù)據(jù)傳輸

2009-04-27
作者:劉東華 尹 軍 梁光明

  摘? 要: 介紹TMS320VC5402的多信道緩沖串口(McBSP)的基礎(chǔ)上,分析了其控制寄存器的配置和工作過程,并給出了在直接存儲器訪問(DMA)方式下利用McBSP進行通信的方法及程序代碼。

  關(guān)鍵詞: McBSP 子地址寄存器 DMA

?

  TMS320VC5402是TI公司C54x系列定點DSP芯片中的新產(chǎn)品。它集中了此系列早期產(chǎn)品的優(yōu)點,并提供了許多新的功能,開發(fā)和使用更加方便。C5402具有靈活的指令系統(tǒng)和操作性能,它可選擇助記符指令或算術(shù)指令作為編程指令,同時支持匯編語言和C語言的單獨或混合編程。C5402采用改進的Harvard處理結(jié)構(gòu),指令流水線操作,計算和處理速度很高,系統(tǒng)單指令周期可達到10ns。在片內(nèi)提供16K的RAM用作程序和數(shù)據(jù)存儲,其最大可擴展尋址空間為1M字節(jié)。C5402提供的McBSP串口和DMA數(shù)據(jù)傳送方式極大地方便了它在通信領(lǐng)域的應(yīng)用和開發(fā)。C5402由于其高性能價格比而成為當(dāng)前語音和靜態(tài)圖象處理的主流產(chǎn)品。本文主要介紹C5402的McBSP原理、配置以及DMA方式下如何實現(xiàn)利用McBSP的通信。

1 C5402 McBSP串口的特點

  C5402提供了兩個多信道緩沖串口:McBSP0和McBSP1。McBSP基于54x系列DSP標(biāo)準(zhǔn)串口,它提供了以下功能:

  ·全雙工同步或異步通信功能;

  ·實現(xiàn)連續(xù)的發(fā)送和接收數(shù)據(jù)流的功能;

  ·與工業(yè)標(biāo)準(zhǔn)編解碼器、模擬接口芯片(AICs)以及其他串行連接A/D和D/A器件的直接接口;

  ·外部時鐘輸入或內(nèi)部可編程時鐘兩種時鐘控制方式;

  ·獨立可編程的發(fā)送和接收幀同步

  此外,C5402的McBSP還具有以下功能:

  ·多信道數(shù)據(jù)傳輸,最多可擴展至128個信道;

  ·傳輸數(shù)據(jù)寬度可選為8、12、16、20、24或32位;

  ·μ律和A律壓縮擴展,用于數(shù)據(jù)壓縮;

  ·幀同步和數(shù)據(jù)時鐘優(yōu)先級可編程,實現(xiàn)不同信道數(shù)據(jù)流幀同步和傳輸優(yōu)先級控制。

2 McBSP的工作過程

  C5402的McBSP的接口信號包括:接收數(shù)據(jù)DR、發(fā)送數(shù)據(jù)DX、發(fā)送時鐘CLKX、接收時鐘CLKR、接收幀同步FSR、發(fā)送幀同步FSX和外部輸入時鐘CLKS。其內(nèi)部結(jié)構(gòu)如圖1所示。其中內(nèi)部數(shù)據(jù)發(fā)送和接收控制器負(fù)責(zé)數(shù)據(jù)的發(fā)送和接收移位及緩存;時鐘和幀同步生成與控制模塊實現(xiàn)McBSP數(shù)據(jù)傳輸波特率設(shè)置以及同步傳輸時同步信號的產(chǎn)生和判斷;C5402提供了多信道傳輸模式,通過多信道選擇模塊進行配置;CPU和DMA中斷模塊用于觸發(fā)CPU或DMA控制器的中斷響應(yīng)。

?

  McBSP通過DX和DR實現(xiàn)DSP與外部設(shè)備的通信和數(shù)據(jù)交換。其中DX完成數(shù)據(jù)的發(fā)送,DR用來接收數(shù)據(jù)。同時通過CLKX、CLKR、FSR和FSX實現(xiàn)時鐘和幀同步控制。DSP通過McBSP的16位控制寄存器接入內(nèi)部外設(shè)總線。

  通過McBSP發(fā)送數(shù)據(jù)時,CPU或DMA控制器將被發(fā)送數(shù)據(jù)寫入數(shù)據(jù)發(fā)送寄存器DXR[1,2]。若傳輸轉(zhuǎn)移寄存器XSR[1,2]中沒有數(shù)據(jù),則DXR[1,2]中的值移向XSR[1,2],再由XSR[1,2]將數(shù)據(jù)移到DX上發(fā)送;若XSR[1,2]不為空,則等待將XSR[1,2]中的數(shù)據(jù)全部移到DX腳發(fā)送之后才將DXR[1,2]中的值復(fù)制到XSR[1,2],然后移位到DX。

  McBSP的接收緩沖寄存器包括三個:接收移位寄存器RSR[1,2]、接收緩沖寄存器RBR[1,2]和接收數(shù)據(jù)寄存器DRR[1,2]。到達DR接收腳的數(shù)據(jù)移存到RSR[1,2],一旦接收到一個字(可以是8、12、16、24或32位),檢查RBR[1,2]是否為空,若為空則將RSR[1,2]中的數(shù)據(jù)復(fù)制到RBR[1,2],在CPU或DMA控制器沒有對DRR[1,2]進行操作時可以將RBR[1,2]中的數(shù)據(jù)復(fù)制到DRR[1,2],CPU或DMA控制器通過讀取DRR[1,2]中的數(shù)據(jù)來實現(xiàn)串口數(shù)據(jù)接入。

3 子地址控制寄存器及其配置

  McBSP通過一系列存儲器映射控制寄存器來進行配置和操作。它采用子地址尋址方案。McBSP通過復(fù)接器將一組子地址寄存器復(fù)接到存儲器映射的一個位置上。復(fù)接器由子塊地址寄存器SPSAx控制。子塊數(shù)據(jù)寄存器SPSDx用于指定子地址寄存器中數(shù)據(jù)的讀寫。其內(nèi)部連接方式如圖2所示。這種方法的好處是可以將多個寄存器映射到一個較小的存儲空間。

為訪問某個指定的子地址寄存器,首先要將相應(yīng)的子地址寫入SPSAx,SPSAx驅(qū)動復(fù)接器,使其與SPSDx相聯(lián),接入相應(yīng)子地址寄存器所在的實際物理存儲位置。當(dāng)向SPSDx寫入數(shù)據(jù)時,數(shù)據(jù)送入前面子塊地址寄存器中所指定的內(nèi)嵌數(shù)據(jù)寄存器;當(dāng)從SPSDx讀取數(shù)據(jù)時,也接入前面子塊地址寄存器中所指定的內(nèi)嵌數(shù)據(jù)寄存器。

  以配置McBSP0的控制寄存器(SPCR1_0和SPCR2_0)為例,代碼如下:

  SPSA_0? ? .set????? 38h???;定義子塊地址寄存器映射位置

  SPSD_0? ? .set????? 39h?? ;定義子塊數(shù)據(jù)寄存器映射位置

  SPCR1_0  .set??????00h?? ;定義SPCR1_0的映射子地址

  SPCR2_0  .set??????01h???;定義SPCR2_0的映射子地址

  STM?????? SPGR1_0 ,SPSA_0 ?     ??;將SPCR1_0的地址寫入SPSA_0

??? STM?????? #K_SPGR1_0_CONFIG,SPSD_0   ;將配置值寫入SPSD_0

??? STM?????? SPGR2_0 ,SPSA_0????????????? ;將SPCR2_0的地址寫入SPSA_0

??? STM?    #K_SPGR2_0_CONFIG ,SPSD_0??? ;將配置值寫入SPSD_0

  在將SPCR1_0和SPCR2_0的子地址寫入SPSA_0之后再將數(shù)據(jù)寫入SPSD_0,內(nèi)部復(fù)接器就自動將配置數(shù)K_SPGR1_0_CONFIG和K_SPGR2_0_CONFIG分別寫入子地址寄存器SPGR1_0和SPGR2_0,完成寄存器配置。

4? 實現(xiàn)DMA方式的數(shù)據(jù)傳輸

  C5402內(nèi)部提供了DMA控制器,可以方便地實現(xiàn)McBSP的DMA方式的數(shù)據(jù)傳輸(發(fā)送或接收)。C5402的DMA有6個可編程的DMA信道,可獨立實現(xiàn)讀寫等不同內(nèi)容的操作。其控制寄存器包括信道優(yōu)先級和使能控制寄存器(DMPREC)、子塊地址寄存器(DMSA)和子塊訪問寄存器(DMSDN和DMSDI),每個信道的控制寄存器則采用子地址的形式,包括源地址寄存器(DMSRCx)、目的地址寄存器(DMDSTx)、記數(shù)寄存器(DMCTRx)、同步選擇和幀記數(shù)寄存器(DMSFCx)以及傳輸模式控制寄存器(DMMCRx)。利用DMA方式通過McBSP進行數(shù)據(jù)傳輸時,首先要由McBSP產(chǎn)生一個事件報告DMA控制器,從而觸發(fā)DMA模式進行數(shù)據(jù)傳輸,DMA將設(shè)定的數(shù)據(jù)傳輸完畢后,觸發(fā)DMA中斷,CPU響應(yīng)DMA中斷而進入中斷服務(wù)程序。

  McBSP所能產(chǎn)生的事件包括DMA接收同步事件(REVT)和DMA發(fā)送同步事件(XEVT)。通過DMSFCx寄存器來選擇。以一個DMA方式下的McBSP發(fā)送數(shù)據(jù)為例,其代碼如下:

  ;McBSP初始化

????????? stm? SPCR1_0,SPSA_0???????????? ;SPCR1_0初始化

???? ???? stm ?????? #K_SPCR1_0_RESET,SPSD_0??

????????? stm ?????? SPCR2_0,SPSA_0???????????? ;SPCR2_0初始化

???? ???? stm ?????? #K_SPCR2_0_RESET,SPSD_0??

???? ???? stm ?????? PCR_0,SPSA_0

???? ???? stm? #K_PCR_0_RESET,SPSD_0   ;管腳控制寄存器PCR_0初始化

???? ???? rsbx INTM?????????????????????????;中斷使能

???? ???? stm #K_IMR_RESET,IMR???????   ;中斷屏蔽寄存器IMR初始化

???? ???? stm RCR1_0,SPSA_0????????    ;接收控制寄存器RCR1_0初始化

???? ???? stm #K_RCR1_0_RESET,SPSD_0?

???? ???? stm RCR2_0,SPSA_0????????   ?。唤邮湛刂萍拇嫫鱎CR2_0初始化

???? ???? stm #K_RCR2_0_RESET,SPSD_0

???? ???? stm XCR1_0,SPSA_0???????    ;發(fā)送控制寄存器XCR1_0初始化

???? ???? stm #K_XCR1_0_RESET,SPSD_0

????????? stm XCR2_0,SPSA_0???????   ?。话l(fā)送控制寄存器XCR2_0初始化

????????? stm #K_XCR2_0_RESET,SPSD_0

????????? stm SRGR1_0,SPSA_0???????????? ;抽樣率生成器SRGR1_0初始化

????????? stm #K_SRGR1_0_RESET,SPSD_0

????????? stm SRGR2_0,SPSA_0???????????? ;抽樣率生成器SRGR2_0初始化

????????? stm #K_SRGR2_0_RESET,SPSD_0

????????? nop

????????? nop

 ??;McBSP0使能

????????? stm SPCR1_0,SPSA_0

????????? stm #K_SPCR1_0_ENABLE,SPSD_0?? ;接收使能

????????? stm SPCR2_0,SPSA_0

????????? stm #K_SPCR2_0_ENABLE,SPSD_0?? ;發(fā)送使能

????????? nop

????????? nop

 ??; 利用DMA信道0作為數(shù)據(jù)傳輸通道

???? ???? stm DMSRC0,DMSA????????   ;設(shè)置數(shù)據(jù)源發(fā)送地址

???? ???? stm #K_SOURCE-ADDR,DMSDN

???? ???? stm DMDST0,DMSA????    ??;設(shè)置數(shù)據(jù)目的地址

???? ???? stm #K_DST_ADDR,DMSDN

???? ???? stm DMCTR0,DMSA????????  ??;設(shè)置發(fā)送數(shù)據(jù)塊的緩沖大小

???? ???? stm #K_BUFFER_SIZE,DMSDN

???? ???? stm DMSFC0,DMSA????????  ??;設(shè)置同步事件和幀緩沖寄存器

???? ???? stm #K_SFC_VALUE,DMSDN

???? ???? stm DMMCR0,DMSA???????    ;設(shè)置傳輸模式寄存器

????????? stm #K_MCR_VALUE,DMSDN

????????? stm DMIDX0,DMSA????????  ?。辉O(shè)置計數(shù)器累加值

????????? stm #K_IDX_VALUE,DMSDN

????????? stm #K_PREC_VALUE,DMPREC?? ;設(shè)置信道優(yōu)先級和信道使能

  DMA以后臺形式進行數(shù)據(jù)傳輸,不需要CPU進行控制,可通過控制寄存器的設(shè)置使得在數(shù)據(jù)傳輸完成或發(fā)生錯誤時產(chǎn)生DMA中斷,CPU響應(yīng)進入中斷服務(wù)程序。

?

參考文獻

1 TMS320C54xDSP CPU And Peripherals. TI Reference Set Vol 1, April,1999:9-1~9-64

2 TMS320C54xDSP Applications Guide. TI Reference?Set Vol 4, October,1996:3-1~3-43

3 TMS320C54xDSP Mnemonic Instruction Set. TI Reference Set,Vol 2, June,1998:4~176

4 TMS320C54xDSP Enhanced Peripherals.TI Reference?Set Vol 5, June,1999:2-1~2-99

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美亚洲网站| 亚洲第一在线视频| 久久精品视频va| 国产一区二区黄| 久久午夜羞羞影院免费观看| 欧美中文在线免费| 精品不卡一区| 欧美国产日韩在线观看| 日韩天堂在线观看| 亚洲最新色图| 国产精品看片资源| 久久久不卡网国产精品一区| 91久久精品国产91久久| 亚洲看片免费| 国产精品视频精品| 久久午夜精品| 久久久久国内| 看片网站欧美日韩| 这里只有精品丝袜| 午夜精品久久久久久久| 亚洲国产成人精品女人久久久| 欧美深夜福利| 久久精品国产99国产精品| 亚洲国产专区校园欧美| 日韩午夜在线电影| 国产欧美一区二区在线观看| 蜜臀久久99精品久久久画质超高清| 亚洲精品网址在线观看| 亚洲一区视频在线| 黄色精品网站| 欧美视频不卡| 国产精品超碰97尤物18| 久久夜精品va视频免费观看| 久久久久五月天| 亚洲在线播放| 亚洲级视频在线观看免费1级| 亚洲第一在线视频| 在线亚洲美日韩| 狠狠色丁香婷婷综合久久片| 国语自产偷拍精品视频偷| 在线看片一区| 日韩视频中文| 亚洲一区二区在线播放| 91久久久久久| 国产亚洲欧美日韩精品| 精品成人国产| 亚洲九九爱视频| 亚洲一区二区在线免费观看视频| 性8sex亚洲区入口| 亚洲人被黑人高潮完整版| 一区二区欧美视频| 亚洲第一视频| 最新日韩av| 亚洲综合色视频| 99视频精品在线| 亚洲电影毛片| 日韩午夜电影av| 性欧美激情精品| 在线一区二区视频| 午夜精品久久久久影视| 在线综合亚洲欧美在线视频| 亚洲欧美日韩一区二区在线 | 亚洲免费激情| 欧美在线3区| 亚洲一区二区伦理| 久久精品欧美日韩| 一本色道88久久加勒比精品| 久久激情久久| 欧美日韩人人澡狠狠躁视频| 美女在线一区二区| 国产精品啊啊啊| 在线观看一区二区视频| 狠狠色丁香久久综合频道 | 亚洲精品老司机| 亚洲国产一区二区三区高清| 韩国三级电影一区二区| 亚洲精品久久久久中文字幕欢迎你| 亚洲自拍偷拍一区| 日韩视频一区二区三区在线播放| 欧美影院在线播放| 午夜精品久久| 欧美国产91| 国产亚洲一本大道中文在线| 亚洲美女在线国产| 久久精品国产综合| 亚洲欧美日韩精品综合在线观看| 欧美 日韩 国产在线| 蜜臀久久99精品久久久久久9| 国产精品久久久免费| 亚洲精品乱码久久久久久| 久久精品噜噜噜成人av农村| 亚洲欧美激情一区| 欧美日韩精品是欧美日韩精品| 欧美美女bbbb| 欧美日韩国产综合在线| 国产一区二区三区网站 | 亚洲免费观看在线观看| 久久久综合精品| 欧美香蕉视频| 日韩视频二区| 日韩天堂在线视频| 欧美va天堂| 影音先锋成人资源站| 欧美在线1区| 欧美呦呦网站| 国产精品青草久久| 宅男在线国产精品| 国产精品99久久久久久久久久久久| 免费久久99精品国产自| 狠狠色丁香婷婷综合| 性做久久久久久久免费看| 欧美一区三区三区高中清蜜桃| 欧美在线视频日韩| 国产精品久久久久天堂| 99热在这里有精品免费| av不卡在线看| 欧美日韩1区2区| 亚洲国产一区二区三区高清| 亚洲精品日韩激情在线电影| 亚洲天堂av图片| 欧美专区中文字幕| 国产伦精品一区二区三区视频孕妇 | 国产欧美日韩不卡| 亚洲男女自偷自拍图片另类| 久久狠狠亚洲综合| 久久久久久久成人| 国产一区二区日韩| 久久xxxx精品视频| 久久综合狠狠| 亚洲电影欧美电影有声小说| 亚洲精品美女免费| 欧美国产日韩视频| 亚洲巨乳在线| 亚洲欧美精品一区| 国产美女一区二区| 欧美一区午夜视频在线观看| 久久偷看各类wc女厕嘘嘘偷窃| 国产又爽又黄的激情精品视频| 亚洲人在线视频| 一区二区久久| 国产精品第一区| 亚洲电影免费观看高清完整版| 亚洲激情国产| 欧美电影在线观看| 国产欧美日韩亚州综合| 性视频1819p久久| 久久中文久久字幕| **网站欧美大片在线观看| 亚洲裸体俱乐部裸体舞表演av| 欧美日韩精品免费看| 亚洲一区二区三区涩| 久久爱另类一区二区小说| 激情综合电影网| 99热免费精品| 国产精品日韩欧美综合 | 欧美一区二区在线视频| 麻豆国产精品一区二区三区 | 日韩网站免费观看| 国产精品久久久久久久久借妻 | 国产欧美亚洲精品| 亚洲国产另类久久精品| 免费在线亚洲| 一本久久青青| 久久久久国产一区二区三区四区| 亚洲大胆女人| 亚洲欧美韩国| 一区二区亚洲精品| 在线亚洲欧美视频| 国产一区二区看久久| 日韩一二三区视频| 国产精品天天看| 亚洲精品国产系列| 国产精品乱看| 亚洲精品日韩综合观看成人91| 欧美日韩在线一区| 欧美一区二区在线视频| 欧美人成在线视频| 欧美一区二区三区视频免费播放| 欧美精品18+| 激情综合色综合久久综合| 99热这里只有成人精品国产| 国产日韩欧美在线看| 亚洲综合精品| 免费看的黄色欧美网站| 亚洲午夜在线视频| 欧美高清在线播放| 欧美亚洲视频| 欧美视频在线免费看| 亚洲激情另类| 国产精品综合色区在线观看| 日韩一级黄色大片| 国产在线乱码一区二区三区| 一区二区三区四区五区精品| 狠狠色丁香婷婷综合久久片| 亚洲欧美春色| 亚洲人成网站在线观看播放| 久久久精品日韩欧美| 亚洲一区二区免费在线| 欧美日韩第一区日日骚| 久久精品亚洲一区二区三区浴池|