《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于TMS320C55x DSP的UART通信設(shè)計(jì)
基于TMS320C55x DSP的UART通信設(shè)計(jì)
摘要: 全雙工異步串行通信在TMS320C55xDSP上的通常實(shí)現(xiàn)方式是利用DSP的McBSP接口加外接芯片實(shí)現(xiàn),這種設(shè)計(jì)方法增加了實(shí)現(xiàn)UART的硬件成本和電路設(shè)計(jì)復(fù)雜度。提出了一種直接利用DSP的MCBSP接口和DMA通道實(shí)現(xiàn)UART的方法,給出了使用C語(yǔ)言和CSL的編程方法。與傳統(tǒng)實(shí)現(xiàn)方法相比,具有實(shí)現(xiàn)成本低,硬件電路簡(jiǎn)單,移植性強(qiáng)等特點(diǎn),稍加修改可應(yīng)用于C5000和C6000各系列芯片中。
關(guān)鍵詞: DSP UART TMS320C55x DMA 過(guò)采樣
Abstract:
Key words :

摘要:全雙工異步串行通信在TMS320C55xDSP上的通常實(shí)現(xiàn)方式是利用DSP的McBSP接口加外接芯片實(shí)現(xiàn),這種設(shè)計(jì)方法增加了實(shí)現(xiàn)UART的硬件成本和電路設(shè)計(jì)復(fù)雜度。提出了一種直接利用DSP的MCBSP接口和DMA通道實(shí)現(xiàn)UART的方法,給出了使用C語(yǔ)言和CSL的編程方法。與傳統(tǒng)實(shí)現(xiàn)方法相比,具有實(shí)現(xiàn)成本低,硬件電路簡(jiǎn)單,移植性強(qiáng)等特點(diǎn),稍加修改可應(yīng)用于C5000和C6000各系列芯片中。
關(guān)鍵詞:DSP;全雙工異步串行通信;多通道緩沖串口;DMA ;過(guò)采樣

1 引言:
MS320C55x數(shù)字信號(hào)處理器通過(guò)多通道緩沖串口(McBSP)提供了與外設(shè)的多種同步串行通信方式。然而,由于DSP中串行通信由數(shù)據(jù)信號(hào)、幀同步信號(hào)和時(shí)鐘3種信號(hào)配合實(shí)現(xiàn),其中幀同步信號(hào)和數(shù)據(jù)信號(hào)由不同的數(shù)據(jù)線傳輸。而異步串行通信則在一根傳輸線上實(shí)現(xiàn)數(shù)據(jù)發(fā)送或接收,且不需要專門的時(shí)鐘信號(hào)線。因此DSP與異步設(shè)備的接口,如UART通信實(shí)現(xiàn)相對(duì)復(fù)雜,需要對(duì)McBSP的相關(guān)寄存器進(jìn)行正確初始化。DSP中實(shí)現(xiàn)全雙工異步通信的通常做法是使用專用的串行接口芯片,如TL16C550,這種設(shè)計(jì)方法編程相對(duì)簡(jiǎn)單,但增加了設(shè)計(jì)成本和電路復(fù)雜度。本文介紹了一種TMS320C55x DSP芯片利用McBSP和DMA直接實(shí)現(xiàn)UART的方法,基于該方法實(shí)現(xiàn)的DSP異步串行通信模塊已成功應(yīng)用于控制偏振圖像采集處理的DSP硬件設(shè)備中。 www.51kaifa.com/
2 UART在DSP上的實(shí)現(xiàn)
異步串行通信要求DSP能夠模擬和檢測(cè)到UART的幀信號(hào)。由于DSP串口是同步串口,而且DSP時(shí)鐘為高速時(shí)鐘,經(jīng)分頻或倍頻后無(wú)法保證與UART的異步串行時(shí)鐘精確同步。DSP的幀同步信號(hào)無(wú)法與UART的幀信號(hào)同步,造成串行通信信號(hào)中信號(hào)位的偏移。最好的解決方法是減小偏移和對(duì)接收的數(shù)據(jù)流進(jìn)行過(guò)采樣,本文采用了對(duì)UART信號(hào)的16倍過(guò)采樣。www.51kaifa.com/
2.1 McBSP設(shè)置
    DSP的McBSP通過(guò)3種信號(hào)實(shí)現(xiàn)同步通信:數(shù)據(jù)、幀同步和時(shí)鐘。異步通信發(fā)送和接收各在一條線上進(jìn)行,具有自己的幀時(shí)序。
    UART的通信時(shí)鐘由使用的通信波特率(每秒傳輸?shù)臄?shù)據(jù)位個(gè)數(shù))決定,通常為2400,9600,19200等。DSP與UART異步通信時(shí),由于DSP的內(nèi)部時(shí)鐘頻率通常都不是UART時(shí)鐘頻率的整數(shù)位,因而會(huì)造成雙方通信時(shí)數(shù)據(jù)位的偏移,為了盡量減小這種偏移,McBSP的串口時(shí)鐘需要正確的設(shè)置時(shí)鐘頻率以達(dá)到與UART波特率相匹配。
數(shù)據(jù)包(PKTBITS)由起始位、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位組成,起始位為1位,停止位通常為1,1.5,2位,數(shù)據(jù)數(shù)通常為8位,如何使用校驗(yàn),那么數(shù)據(jù)包還包括1位校驗(yàn)位。以上數(shù)據(jù)位中,每1位都被DSP以16倍波特率的時(shí)鐘頻率過(guò)采樣。
發(fā)送時(shí),為保證UART能收到半個(gè)停止位,需要將DSP的McBSP發(fā)送端口設(shè)置為2相的數(shù)據(jù)幀。第1相為16位的數(shù)據(jù)字,第2相為8位的數(shù)據(jù)字。那么第1相數(shù)據(jù)長(zhǎng)度為(起始位+數(shù)據(jù)位+校驗(yàn)位)個(gè)字,第2相長(zhǎng)度為停止位的字長(zhǎng)。發(fā)送時(shí)的總幀長(zhǎng)(TxPKTBITS)為這兩相的總字長(zhǎng)。接收數(shù)據(jù)包格式與發(fā)送相似,其結(jié)構(gòu)如圖2所示。DSP的串口發(fā)送引腳與外部串口設(shè)備的接收引腳相連,不使用FSX引腳和CLKX引腳。
接收時(shí),McBSP通過(guò)接收幀同步信號(hào)引腳(FSR)檢測(cè)數(shù)據(jù)的到來(lái),根據(jù)幀同步信號(hào)的不同,幀同步信號(hào)可配置成上升沿觸發(fā)或下降沿觸發(fā),由于UART的起始位為低電平,因此使用下降沿觸發(fā)。將UART發(fā)送數(shù)據(jù)信號(hào)與McBSP的數(shù)據(jù)接收引腳DR和FSR相連,實(shí)現(xiàn)用UART的發(fā)送信號(hào)觸發(fā)McBSP的接收幀同步信號(hào)。在McBSP接收一幀數(shù)據(jù)期間,為了防止下降沿再次觸發(fā)一幀數(shù)據(jù)接收,McBSP應(yīng)該設(shè)置為接收數(shù)據(jù)包期間忽略幀同步信號(hào)。


圖1 UART接收數(shù)據(jù)包的幀格式


接收完一幀數(shù)據(jù)后,需要對(duì)數(shù)據(jù)解碼,收于DSP發(fā)送和接收時(shí)鐘是UART串口時(shí)鐘頻率的16位,因此每個(gè)UART數(shù)據(jù)位對(duì)應(yīng)于DSP中1個(gè)16位字(停止位對(duì)應(yīng)8位字)。在McBSP接收寄存器中將接收幀設(shè)置為2相,第1相16位字,字長(zhǎng)為RxPKTBITS(起始位+數(shù)據(jù)位+校驗(yàn)位),第2相為8位字,對(duì)應(yīng)于停止位字?jǐn)?shù)。此外,接收幀延時(shí)值應(yīng)該設(shè)置為1位。
3.2 McBSP時(shí)鐘采樣率設(shè)置
McBSP與UART通信時(shí),McBSP接收到一幀的幀同步信號(hào)后,該幀期間之后出現(xiàn)的幀同步信號(hào)將被忽略。為了獲得最大數(shù)據(jù)流量,一幀數(shù)據(jù)發(fā)送結(jié)束時(shí),其停止位后緊接著為起始位,幀同步信號(hào)的檢測(cè)依賴于停止位到起始位的下降沿。為了正確檢測(cè)到幀同步信號(hào),高電平應(yīng)該至少保持一個(gè)時(shí)鐘周期以上時(shí)間。
理想情況下,串口時(shí)鐘信號(hào)邊沿與數(shù)據(jù)位邊沿精確對(duì)應(yīng),此時(shí),每個(gè)數(shù)據(jù)位對(duì)應(yīng)16倍時(shí)鐘周期。起始位和串口時(shí)鐘的下降沿偏最小,如圖3所示。


圖2  McBSP串口時(shí)鐘與UART時(shí)鐘精確同步時(shí)的時(shí)序


    正常通信時(shí),McBSP的幀同步信號(hào)與UART串口的時(shí)鐘之間會(huì)有一定的偏差,如圖所示。


圖3 McbSP串口時(shí)鐘與UART時(shí)鐘存在偏差時(shí)的時(shí)序


存在偏差時(shí),為保證McBSP能檢測(cè)到接收到信號(hào)的下降沿,McBSP的串口采樣時(shí)鐘頻率必須準(zhǔn)確設(shè)置。其設(shè)置方法如公式1、2所示。其中,DIV是McBSP寄存中串口采樣時(shí)鐘分頻值,DSPCLK是DSP的CPU時(shí)鐘頻率,baudrate為通信波特率。 
         (1) 
         (2)
通信波特率為19200,DSP時(shí)鐘頻率為75MHz,接收數(shù)據(jù)包為10位(1位起始位,8位數(shù)據(jù)位,無(wú)校驗(yàn),1位停止位:PKTBITS=10,RxPKTBITS=9.5),根據(jù)公式1計(jì)算得DIV ,由于分頻值DIV為整數(shù),因此取DIV 。根據(jù)公式2計(jì)算得DIV ,取整后得DIV 。取DIV最佳值為244。TMS320VC55x DSP以常用波特率通信時(shí)的分頻值如表1所示。
表1 常用波特率下TMS320VC55x的McBSP串口DIV值 

 

75-MHz DSP Clock

100-MHz DSP Clock

 

Baud Rate

Divisor

Minimum

Exact

Divisor

Divisor

Maximum

Divisor

Minimum

Exact

Divisor

Divisor

Maximum

19200

240

244.14

248

320

325.52

331

38400

120

122.07

124

160

162.76

165

57600

80

81.68

82

107

108.51

110

115200

40

40.69

41

54

54.25

55


3.2 DMA設(shè)置
UART通信時(shí),DSP發(fā)送和接收到的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)存儲(chǔ)器中,為了實(shí)現(xiàn)DSP的高速處理,減少DSP響應(yīng)McBSP數(shù)據(jù)寄存器中斷的次數(shù)。發(fā)送和接收數(shù)據(jù)與McBSP發(fā)送和接收寄存器DXR和DRR之間的數(shù)據(jù)傳輸通過(guò)DMA通道完成。這里以使用DMA通道4和通道5為例,其中,DMA通道4作為數(shù)據(jù)接收通道,DMA通道5做為數(shù)據(jù)發(fā)送通道。將通道4和通道5的同步事件分別設(shè)置為McBSP串口接收事件和串口發(fā)送事件,DMA通道4的源地址為McBSP的接收寄存器DRR地址,目的地址為數(shù)據(jù)存儲(chǔ)器中存放接收數(shù)據(jù)的變量地址;DMA通道5的源地址為數(shù)據(jù)存儲(chǔ)器中待發(fā)的數(shù)據(jù),目的地址為McBSP的DXR寄存器地址。每當(dāng)McBSP接收到數(shù)據(jù)時(shí),會(huì)觸發(fā)DMA通道4將接收到的數(shù)據(jù)拷貝到DSP數(shù)據(jù)存儲(chǔ)器的相應(yīng)置,同時(shí)目的地址指針自動(dòng)加1;發(fā)送數(shù)據(jù)時(shí),DMA通道5將待發(fā)送數(shù)據(jù)拷貝到DXR,將數(shù)據(jù)依次發(fā)出。
發(fā)送數(shù)據(jù)時(shí),待發(fā)字符被打包成適于UART接收的數(shù)據(jù)格式,以發(fā)送16進(jìn)制無(wú)符號(hào)數(shù)0xAA為例,首先發(fā)送起始位,然后是數(shù)據(jù)位最低位,最后發(fā)送停止位。該數(shù)值在數(shù)據(jù)存儲(chǔ)器中按地址由低到高的存放格式為:0x0000,0x0000,0xFFFF,0x0000,0xFFFF,0x0000,0xFFFF,0x0000,0xFFFF,0xFFFF。
接收到數(shù)據(jù)后,取過(guò)采樣到的每個(gè)16位二進(jìn)制數(shù)據(jù)字的中間四位,若中間四位中1的個(gè)數(shù)不小于3,則表示收到當(dāng)前的UART數(shù)據(jù)位值為1;若中間四位中0的個(gè)數(shù)不小于3,則表示收到當(dāng)前的UART數(shù)據(jù)位值為0。否則認(rèn)為數(shù)據(jù)傳輸出錯(cuò)。
4 程序設(shè)計(jì)
    在McBSP和DMA寄存器設(shè)置正確的基礎(chǔ)上,利用TI公司提供的Code Composer Studio集成開(kāi)發(fā)環(huán)境編寫(xiě)了UART串口通信軟件,軟件開(kāi)發(fā)中使用了CSL(片上支持庫(kù)),使整個(gè)開(kāi)發(fā)過(guò)程快速、直觀、具有很強(qiáng)的可讀性。程序流程如圖所示:     





圖4 TMS320VC55x UART程序流程圖
5 實(shí)驗(yàn)分析
硬件和軟件設(shè)計(jì)完成后,進(jìn)行了測(cè)試實(shí)驗(yàn),實(shí)驗(yàn)上位機(jī)為PC機(jī),DSP處理器為TI公司的TMS320VC5509A,通信波特率為19200,DSP外部晶振頻率為20MHz,CPU時(shí)鐘頻率為100MHz,UART數(shù)據(jù)格式為1位起始位,8位數(shù)據(jù)位,1位停止位,無(wú)校驗(yàn)。多次實(shí)驗(yàn)結(jié)果表明數(shù)據(jù)發(fā)收準(zhǔn)確,無(wú)誤碼現(xiàn)象發(fā)生。
6 結(jié)論
    DSP系統(tǒng)直接與外部全雙工異步串行設(shè)備的通信時(shí),通過(guò)正確的使用DSP上的McBSP和DMA通道,利用16倍過(guò)采樣原理準(zhǔn)確的計(jì)算McBSP通信接口的采樣值和配置相關(guān)寄存器,能夠?qū)崿F(xiàn)DSP與外部異步設(shè)備的可靠通信。與傳統(tǒng)的采用串并轉(zhuǎn)換芯片的實(shí)現(xiàn)方法相比,具有更低的成本更簡(jiǎn)單的外部電路。本文中的程序針對(duì)TI公司的TMS320VC5509x DSP芯片編寫(xiě),通過(guò)對(duì)少數(shù)寄存器的修改,該程序可直接應(yīng)用于TI公司的C5000和C6000系列DSP芯片上。
   本文作者創(chuàng)新點(diǎn):提出了一種直接利用DSP的McBSP接口和DMA通道實(shí)現(xiàn)UART的方法,具有實(shí)現(xiàn)成本低,硬件電路簡(jiǎn)單,移植性強(qiáng)等特點(diǎn)。

參考文獻(xiàn):
1 TMS320VC5509A Fixed-Point Digital Signal Processor Data Manual. Texas Instruments
2 TMS320VC5501/5502/5503/5507/5509/5510 DSP Multichannel Buffered Serial Port (McBSP) Reference Guide. Texas Instruments
3 Implementing a Software UART on the TMS320C54x with the McBSP and DMA. Texas Instruments
4 TMS320VC5503/5507/5509/5510 DSP Direct Memory Access (DMA) Controller Reference Guide
5 TMS320C55x Chip Support Library API Reference Guide. Texas Instruments
6 TMS320C6000 McBSP: UART. Texas Instruments
7 安穎,劉麗娜.基于DSP的高速信號(hào)采集與處理系統(tǒng)的設(shè)計(jì)【J】.微計(jì)算機(jī)信息,2005,1:57-58。 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久国产精品久久w女人spa| 亚洲精品中文在线| 伊人婷婷久久| 国产日产欧产精品推荐色| 欧美日韩免费精品| 欧美高清视频一区二区三区在线观看| 久久精品国产视频| 久久精品国产69国产精品亚洲| 午夜久久一区| 午夜精品久久久久久久久久久久| 在线天堂一区av电影| 日韩亚洲欧美一区二区三区| 91久久国产自产拍夜夜嗨| 久久精品免费看| 亚洲高清毛片| 最新热久久免费视频| 亚洲欧洲日韩综合二区| 亚洲人成在线影院| 99国产精品久久| 99视频在线精品国自产拍免费观看 | 国产精品中文字幕在线观看| 国产精品美女久久久久av超清| 国产精品va在线播放| 国产精品免费视频xxxx| 国产精品青草综合久久久久99 | 国产精品激情偷乱一区二区∴| 欧美日韩直播| 国产精品久久久久久超碰| 国产一区二区三区在线播放免费观看| 国产欧美在线看| 欧美日韩亚洲一区二区三区四区| 亚洲精品国产精品国自产观看 | 国产精品萝li| 国产女人精品视频| 国产视频观看一区| 好男人免费精品视频| 在线免费高清一区二区三区| 亚洲国产综合视频在线观看| 亚洲伦理一区| 亚洲欧美成人综合| 亚洲高清av在线| 一区二区三区|亚洲午夜| 亚洲欧美激情在线视频| 久久国产天堂福利天堂| 免费黄网站欧美| 欧美日韩一区国产| 国产欧美在线| 亚洲国产91| 亚洲天堂偷拍| 亚洲高清精品中出| 亚洲手机视频| 久久久久久婷| 欧美日产在线观看| 国产欧美日韩综合精品二区| 一色屋精品视频在线观看网站| 亚洲人成欧美中文字幕| 亚洲一区二区三区在线观看视频| 久久国产精品毛片| 99国产成+人+综合+亚洲欧美| 午夜精品久久久久影视| 免费成人在线观看视频| 欧美性淫爽ww久久久久无| 国内精品美女在线观看| 日韩一级网站| 久久激情综合| 中文av字幕一区| 久久免费视频网站| 欧美三级韩国三级日本三斤| 国产亚洲精久久久久久| 91久久久久久国产精品| 欧美在线观看一区二区| 亚洲无毛电影| 美日韩精品免费观看视频| 欧美视频中文在线看 | 亚洲精选视频免费看| 欧美在线视频观看| 欧美日韩精品三区| 国内精品伊人久久久久av影院 | 一区二区三区产品免费精品久久75| 欧美在线免费观看| 亚洲视频一区在线| 午夜精品一区二区三区在线| 美女脱光内衣内裤视频久久影院| 国产精品乱码一区二三区小蝌蚪| 亚洲国产成人不卡| 欧美亚洲免费| 亚洲一区二区高清| 欧美激情亚洲视频| 韩国精品久久久999| 国产精品99久久久久久久久久久久| 亚洲国产视频一区| 午夜激情综合网| 欧美日韩精品免费观看视一区二区| 国内自拍一区| 亚洲欧美在线x视频| 亚洲一区二区三区高清| 欧美www视频在线观看| 狠狠干综合网| 欧美亚洲视频一区二区| 亚洲欧美日韩精品一区二区| 欧美母乳在线| 亚洲国产精品成人综合色在线婷婷| 久久成人一区| 久久精品99国产精品| 国产精品入口日韩视频大尺度| 亚洲另类在线视频| 亚洲精品免费在线观看| 久久青草欧美一区二区三区| 国产伦精品一区二区三区| 亚洲一区二区三区高清不卡| 亚洲午夜av电影| 欧美日韩亚洲高清| 亚洲毛片在线看| 日韩亚洲欧美综合| 欧美精品精品一区| 91久久亚洲| 99国产一区二区三精品乱码| 欧美大片一区二区三区| 亚洲国产成人porn| 亚洲精品自在久久| 欧美高清在线观看| 最新亚洲激情| 99精品久久免费看蜜臀剧情介绍| 免费不卡在线观看| 亚洲风情亚aⅴ在线发布| 亚洲黄一区二区三区| 免费观看亚洲视频大全| 亚洲电影免费观看高清完整版在线 | 亚洲精品综合久久中文字幕| 国产精品色婷婷| 欧美日韩一区二区三区在线观看免 | 久久黄色影院| 亚洲色图自拍| 欧美女主播在线| 亚洲区中文字幕| 一本一本久久a久久精品牛牛影视| 欧美国产高清| 亚洲精品一级| 亚洲一区二区三区中文字幕| 欧美天天在线| 亚洲午夜视频在线| 久久av二区| 激情综合在线| 99re在线精品| 国产精品久久久久久久久久妞妞| 亚洲免费视频观看| 久久久久久自在自线| 亚洲高清免费| 99视频精品| 国产精品色一区二区三区| 午夜免费日韩视频| 久久婷婷久久| 亚洲欧洲精品天堂一级| 一区二区三区欧美日韩| 国产精品亚洲视频| 久久国内精品视频| 欧美福利在线| 亚洲午夜久久久久久久久电影院| 香蕉久久夜色精品| 国产亚洲精品bt天堂精选| 亚洲国产岛国毛片在线| 欧美日韩国产小视频| 亚洲免费中文| 美国成人直播| 99精品欧美一区二区蜜桃免费| 欧美一级理论片| 伊人久久综合97精品| 一本久道久久久| 国产精品一区二区男女羞羞无遮挡 | 欧美精品在线一区二区| 亚洲社区在线观看| 久久久久国产精品厨房| 亚洲国产91| 午夜精品亚洲一区二区三区嫩草| 国内自拍视频一区二区三区| 亚洲精品一区二区三区蜜桃久| 国产精品久久久久av| 久久精品亚洲一区二区| 欧美三区在线视频| 久久国产主播精品| 欧美系列亚洲系列| 久久国产欧美日韩精品| 亚洲综合色激情五月| 在线日韩av永久免费观看| 亚洲天堂男人| 狠狠色狠狠色综合日日小说| 亚洲天堂成人在线视频| 狠狠色噜噜狠狠狠狠色吗综合| 亚洲精品中文字幕女同| 国产精品影音先锋| 99国产精品久久| 国产一级一区二区| 亚洲最黄网站| 国外成人在线视频网站| 亚洲特色特黄| 伊人春色精品| 欧美一区二区三区精品| 亚洲国内高清视频| 久久精品国产久精国产爱| 亚洲精品午夜精品|