《電子技術(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亚洲国产精品_日韩亚洲一区二区
夜夜爽av福利精品导航 | 亚洲大片av| 国产日产欧美一区| 欧美视频网站| 欧美日韩一区二区三区在线看 | 久久国产精品免费一区| 亚洲欧美日韩国产成人精品影院| 99综合在线| 99精品国产热久久91蜜凸| 亚洲人成在线观看网站高清| 亚洲国产欧美国产综合一区| 亚洲国产精品第一区二区三区| 在线观看91精品国产麻豆| 樱桃视频在线观看一区| 激情五月***国产精品| 狠狠久久综合婷婷不卡| 国产一区日韩一区| 国产亚洲视频在线| 韩国精品久久久999| 国产伊人精品| 激情久久久久久久| 好看的日韩视频| 伊人成综合网伊人222| 在线播放国产一区中文字幕剧情欧美 | 欧美日韩国产综合一区二区| 欧美大片免费久久精品三p| 久久亚洲精品一区| 老司机亚洲精品| 欧美激情免费在线| 欧美日韩国产丝袜另类| 欧美午夜免费影院| 国产精品美女xx| 国产欧美一二三区| 国产亚洲欧美激情| 亚洲第一福利视频| 亚洲精品在线电影| 亚洲直播在线一区| 亚洲成人直播| 亚洲毛片在线观看| 亚洲免费在线看| 欧美在线一区二区| 免费观看国产成人| 欧美日韩你懂的| 国产精品美女黄网| 一区二区在线不卡| 亚洲日本乱码在线观看| 亚洲午夜在线观看| 久久国产夜色精品鲁鲁99| 亚洲日本精品国产第一区| 亚洲一区日本| 久久夜色精品一区| 欧美无砖砖区免费| 国产午夜精品理论片a级大结局| 一区在线播放视频| 99精品视频免费| 小黄鸭视频精品导航| 亚洲精品裸体| 亚洲欧美日韩精品一区二区| 久久综合激情| 欧美视频手机在线| 韩国精品一区二区三区| 99热免费精品| 久久激情视频| 亚洲午夜精品视频| 久久亚洲精品欧美| 国产精品久久久久影院色老大| 国内一区二区三区在线视频| 日韩视频在线观看一区二区| 欧美一区午夜精品| 在线视频亚洲| 久久综合九色欧美综合狠狠| 欧美亚州韩日在线看免费版国语版| 韩国av一区| 这里只有视频精品| 91久久久久久久久| 性娇小13――14欧美| 欧美好骚综合网| 国产色婷婷国产综合在线理论片a| 亚洲精品久久久久久下一站| 久久精品成人欧美大片古装| 亚洲一区www| 一区二区三区视频观看| 亚洲精品一区久久久久久| 国产精品99久久久久久宅男| 久久夜色精品国产欧美乱极品| 欧美性猛交xxxx乱大交退制版| 极品日韩久久| 亚洲欧美日韩成人| 一区二区三区久久网| 久久这里只有| 国产日韩亚洲欧美综合| 99热在这里有精品免费| 日韩视频久久| 美女福利精品视频| 国产日韩在线看片| 中文日韩在线| 99国产一区| 欧美xxx成人| 韩日精品视频| 午夜精品一区二区在线观看| 亚洲一区二区三区涩| 欧美激情精品| 在线观看一区二区视频| 欧美一区二区三区喷汁尤物| 午夜性色一区二区三区免费视频 | 亚洲精品孕妇| 亚洲全黄一级网站| 久久综合网hezyo| 国产一区二区观看| 性欧美8khd高清极品| 亚洲欧美日韩在线观看a三区| 美女主播一区| 精品1区2区3区4区| 欧美影院成人| 久久久久久久尹人综合网亚洲| 国产精品亚洲片夜色在线| 国产精品99久久不卡二区| 一区二区三区欧美| 欧美日韩视频一区二区| 亚洲精品日韩欧美| 一本久久综合| 欧美日韩理论| 亚洲美洲欧洲综合国产一区| 99国产精品一区| 欧美日韩国产三区| 一本色道久久综合狠狠躁的推荐| 一道本一区二区| 欧美日韩一区在线播放| 99热在这里有精品免费| 亚洲一区二区成人| 国产精品高清免费在线观看| 亚洲视频欧美视频| 午夜视频在线观看一区| 久久午夜国产精品| 在线观看不卡av| 亚洲精品男同| 欧美日韩国产成人在线91| 99riav1国产精品视频| 亚洲一区二区三区乱码aⅴ| 国产精品激情| 午夜性色一区二区三区免费视频| 欧美一区影院| 国产色产综合产在线视频| 久久gogo国模啪啪人体图| 久久国产精品久久久久久久久久| 亚洲免费人成在线视频观看| 欧美午夜不卡视频| 亚洲一二三区精品| 欧美一区二视频| 国产主播精品在线| 亚洲品质自拍| 欧美日韩综合不卡| 亚洲综合日本| 久久综合影视| 亚洲毛片视频| 久久国产加勒比精品无码| 狠狠久久亚洲欧美专区| 亚洲裸体视频| 国产精品露脸自拍| 欧美一级久久| 欧美激情一区二区三区| 一本到12不卡视频在线dvd| 久久黄色网页| 亚洲人成艺术| 性欧美超级视频| 一区二区三区在线高清| 中日韩在线视频| 国产免费观看久久| 亚洲午夜影视影院在线观看| 蜜臀av一级做a爰片久久| 99re热这里只有精品视频| 久久精品噜噜噜成人av农村| 亚洲国产精品一区制服丝袜| 亚洲综合色自拍一区| 国语精品中文字幕| 亚洲视频电影图片偷拍一区| 国产一区二区日韩精品| aa日韩免费精品视频一| 国产精品永久免费| 亚洲三级观看| 国产日产亚洲精品系列| 在线亚洲成人| 国内自拍亚洲| 亚洲一区二区三区高清| 一区二区亚洲精品| 亚洲欧美另类国产| 亚洲国产欧美一区二区三区同亚洲| 新狼窝色av性久久久久久| 亚洲国产精品热久久| 亚洲免费成人av电影| 国产三级欧美三级日产三级99| 一区二区三区免费观看| 好男人免费精品视频| 亚洲一区欧美| 亚洲欧洲一级| 久久久精品一区| 亚洲伊人久久综合| 欧美精品在欧美一区二区少妇| 欧美在线一区二区三区| 国产精品99一区二区|