《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > TMS320C54XX系列DSP與PC機(jī)間串行通信的實(shí)現(xiàn)

TMS320C54XX系列DSP與PC機(jī)間串行通信的實(shí)現(xiàn)

2008-09-16
作者:薛志宏 劉建業(yè)

  摘? 要: 目前大多數(shù)數(shù)字信號(hào)處理器(DSP)芯片上未提供通用異步串行收發(fā)器" title="串行收發(fā)器">串行收發(fā)器(UART),只提供2~3個(gè)同步串行接口" title="串行接口">串行接口,其與微機(jī)及其它設(shè)備進(jìn)行串行通信時(shí),必須在DSP上擴(kuò)展異步串行接口。以美國(guó)TI公司TMS320C54XX系列DSP為例,采用MAXIM公司的MAX3111異步串行收發(fā)器,研究了理想的接口擴(kuò)展方案。論述了這種方案的軟、硬件實(shí)現(xiàn)。該方案硬件連接簡(jiǎn)單,軟件編程方便,可實(shí)現(xiàn)DSP與PC機(jī)間的串行通信,具有很高的工程應(yīng)用價(jià)值。

  關(guān)鍵詞: 異步串行收發(fā)器? 多通道緩沖串行接口? DSP? McBSP? SPI? UART

?

  DSP在電子工業(yè)領(lǐng)域得到了越來(lái)越廣泛的應(yīng)用。在DSP應(yīng)用系統(tǒng)設(shè)計(jì)中,必不可少的是各種通信接口的設(shè)計(jì)。與并行接口相比,串行接口的最大特點(diǎn)是減少了器件引腳數(shù)目,降低了接口設(shè)計(jì)復(fù)雜性。串行數(shù)據(jù)傳輸可分為同步和異步兩種模式。通用PC機(jī)的RS-232接口為通用異步接口UART(Universal Asynchronous Receiver and Transmitter),而MOTOROLA公司的串行外圍設(shè)備接口SPI、隊(duì)列SPI(QSPI)、PHILIPS公司的內(nèi)部IC總線(I2C),National公司的微總線(MICROWIRE)均為同步串行協(xié)議。

  目前幾乎所有的數(shù)字信號(hào)處理器都提供了一個(gè)或多個(gè)串行接口,然而,多數(shù)DSP芯片提供的是同步串口" title="串口">串口。在實(shí)際的應(yīng)用中,也需要DSP能夠與外設(shè)進(jìn)行異步串行通信,如與PC機(jī)進(jìn)行串行數(shù)據(jù)傳輸就要求DSP系統(tǒng)具有UART串行接口。針對(duì)這種情況,本文研究并實(shí)現(xiàn)了一種簡(jiǎn)單、可靠的異步串口擴(kuò)展方法。

1 擴(kuò)展方案

  綜合分析DSP應(yīng)用系統(tǒng)中擴(kuò)展異步串行接口的方案,其基本方法和優(yōu)缺點(diǎn)如下:

  (1)在DSP的并行總線上擴(kuò)展UART芯片(如TI公司的TL16C552),用硬件實(shí)現(xiàn)異步數(shù)據(jù)傳輸。優(yōu)點(diǎn)是軟件實(shí)現(xiàn)簡(jiǎn)單,缺點(diǎn)是在總線上還需擴(kuò)展其它設(shè)備,這樣做使目標(biāo)系統(tǒng)復(fù)雜化,增大系統(tǒng)體積。

  (2)利用DSP的McBSP和DMA,在不擴(kuò)展其它硬件的情況下,用軟件實(shí)現(xiàn)異步數(shù)據(jù)傳輸格式。這種方法的優(yōu)點(diǎn)在于硬件簡(jiǎn)單,但軟件復(fù)雜,加大了CPU的負(fù)擔(dān),所以不適合通信數(shù)據(jù)量大的場(chǎng)合。

  (3)利用DSP的McBSP同步串行接口,在擴(kuò)展適當(dāng)硬件的情況下,將同步數(shù)據(jù)變換為UART異步數(shù)據(jù)格式進(jìn)行傳輸。這樣,就充分利用了DSP的片上資源,使硬件系統(tǒng)盡量簡(jiǎn)單化。

  綜合考慮硬件連接和軟件編程的方便性,本文采用第三種方案,應(yīng)用美國(guó)MAXIM 公司的MAX3111串行異步收發(fā)器,與DSP的McBSP口直接連接。硬件上無(wú)需任何其它外圍器件,同時(shí)由于異步數(shù)據(jù)的發(fā)送和接收由MAX3111以硬件方式實(shí)現(xiàn),所以軟件編程需要考慮的也只是DSP與MAX3111之間的同步數(shù)據(jù)通信。這樣,用最簡(jiǎn)單的硬件連接和軟件編程就能實(shí)現(xiàn)同步到異步的串行數(shù)據(jù)格式轉(zhuǎn)換。

2 SPI接口協(xié)議及DSP的多通道緩沖串行接口

2.1 SPI接口協(xié)議

  串行外圍設(shè)備接口(SPI)是MOTOROLA公司提出的一個(gè)同步串行外設(shè)接口,允許CPU與各種外圍接口器件以串行方式進(jìn)行通信、交換信息。它使用4條線:串行時(shí)鐘線(SCK)、主機(jī)輸入/從機(jī)輸出線(MISO)、主機(jī)輸出/從機(jī)輸入線(MOSI)、低電平有效的使能信號(hào)線(CS)。這樣,僅需3~4根數(shù)據(jù)線和控制線即可擴(kuò)展具有SPI接口的各種I/O器件。其典型的接口示意圖如圖1所示。

?

2.2? McBSP的功能與特點(diǎn)

  TMS320C54XX系列DSP芯片都具有2~3個(gè)高速、全雙工、多通道緩沖串行接口(McBSP),其方便的數(shù)據(jù)流控制可使其與大多數(shù)同步串行外圍設(shè)備接口。McBSP是在標(biāo)準(zhǔn)串行接口的基礎(chǔ)上對(duì)功能進(jìn)行擴(kuò)展的,除具有標(biāo)準(zhǔn)串口的功能特點(diǎn)外,其靈活性體現(xiàn)在如下幾個(gè)方面:

  (1)雙緩沖區(qū)發(fā)送,三緩沖區(qū)接收,允許連續(xù)數(shù)據(jù)流傳輸;

  (2)可與SPI、IOM-2、AC97等兼容設(shè)備直接接口;

  (3)可編程幀同步" title="幀同步">幀同步、數(shù)據(jù)時(shí)鐘極性,支持外部移位時(shí)鐘或內(nèi)部頻率可編程移位時(shí)鐘;

  (4)擁有相互獨(dú)立的數(shù)據(jù)發(fā)送和接收幀同步脈沖和時(shí)鐘信號(hào)" title="時(shí)鐘信號(hào)">時(shí)鐘信號(hào);

  (5)多通道發(fā)送和接收,最多可達(dá)128個(gè)通道,速度可為100Mbit/s。

2.3 McBSP的SPI方式

  TMS320C54XX系列DSP芯片的McBSP串口工作于時(shí)鐘停止模式時(shí)與SPI協(xié)議兼容。當(dāng)將McBSP配置為時(shí)鐘停止模式時(shí),發(fā)送器和接收器在內(nèi)部得到同步,這時(shí)McBSP可作為SPI的主設(shè)備或從設(shè)備。發(fā)送時(shí)鐘信號(hào)(BCLKX)對(duì)應(yīng)于SPI協(xié)議中的串行時(shí)鐘信號(hào)(SCK),發(fā)送幀同步信號(hào)對(duì)應(yīng)于從設(shè)備使能信號(hào)(/CS)。在這種方式下對(duì)接收時(shí)鐘信號(hào)(BCLKR)和接收幀同步信號(hào)(BFSR)將不進(jìn)行連接,因?yàn)樗鼈冊(cè)趦?nèi)部與BCLKX和BFSX相連接。McBSP工作于SPI模式的主機(jī)時(shí),與其它SPI器件接口如圖2所示。

?

?

3 MAX3111通用異步收發(fā)器

3.1 MAX3111功能特點(diǎn)

  MAX3111通用異步收發(fā)器是MAXIM公司專門為小型微處理系統(tǒng)進(jìn)行最優(yōu)化設(shè)計(jì)的UART,它包括一個(gè)振蕩器和一個(gè)可編程波特率發(fā)生器;具有一個(gè)可屏蔽的中斷源;另具有一個(gè)8字節(jié)的接收FIFO(先入先出)緩沖器。它應(yīng)用SPI/MICROWIRE接口技術(shù)直接與主控制器進(jìn)行通信,線路簡(jiǎn)單、體積小,通信速率可達(dá)230kbit/s。另外其內(nèi)部除具有UART之外,還包括兩個(gè)RS-232電平轉(zhuǎn)換器,這樣無(wú)需再接入普通的MAX232進(jìn)行電平轉(zhuǎn)換,即可應(yīng)用一個(gè)芯片實(shí)現(xiàn)微控器(具有SPI/MICROWIRE接口)與PC機(jī)或其它設(shè)備之間的異步數(shù)據(jù)傳輸。

3.2 對(duì)MAX3111的操作

  MAX3111通過(guò)SPI接口與主設(shè)備進(jìn)行16位數(shù)據(jù)的全雙工同步通信,即主設(shè)備傳送16位數(shù)據(jù)給MAX3111的同時(shí),也可接收到MAX3111發(fā)送的16位數(shù)據(jù)。主設(shè)備在MOSI線上向MAX3111發(fā)送的16位串行數(shù)據(jù)序列中包括傳輸格式控制字,如波特率設(shè)置、中斷屏蔽、奇偶校驗(yàn)位等,同時(shí)還有發(fā)送的數(shù)據(jù)字。MAX3111在MISO線上向主設(shè)備發(fā)送的16位數(shù)據(jù)序列中除了接收到的數(shù)據(jù)外,還包括中斷標(biāo)志等狀態(tài)位。所以通過(guò)16位的實(shí)時(shí)數(shù)據(jù)傳輸,主設(shè)備可獲得MAX3111工作狀態(tài)信息,同時(shí)對(duì)其具有完全控制權(quán)利。這樣,兩個(gè)設(shè)備的控制、狀態(tài)、數(shù)據(jù)信息的實(shí)時(shí)通信就保證了數(shù)據(jù)傳輸?shù)目煽啃院头€(wěn)定性。

4 DSP與MAX3111的接口設(shè)計(jì)

  DSP的McBSP串行接口工作于SPI模式時(shí)可直接與MAX3111進(jìn)行連接,從而實(shí)現(xiàn)與RS-232設(shè)備進(jìn)行異步數(shù)據(jù)傳輸。此時(shí)DSP作為SPI協(xié)議中的主設(shè)備,其接口電路如圖3所示。

?

?

  DSP的發(fā)送時(shí)鐘信號(hào)(BCLKX)作為MAX3111的串行時(shí)鐘輸入,發(fā)送幀同步脈沖信號(hào)(BFSX)作為MAX3111的片選信號(hào)(/CS)。BDX與DIN連接作為發(fā)送數(shù)據(jù)線,BDR與DOUT連接作為接收數(shù)據(jù)線。MAX3111的TX與T1IN連接,RX與R1OUT連接,以便利用其片內(nèi)的轉(zhuǎn)換器實(shí)現(xiàn)UART到RS-232電平的轉(zhuǎn)換。MAX3111的中斷信號(hào)(IRQ)與DSP的外部中斷相連。

  在SPI串行協(xié)議中,主設(shè)備提供時(shí)鐘信號(hào)并控制數(shù)據(jù)傳輸過(guò)程。由MAX3111接口電路時(shí)序圖(圖4)可知,必須設(shè)置DSP的McBSP于適當(dāng)?shù)姆绞讲拍鼙WC與MAX3111的時(shí)序相配合。

?

?

  MAX3111要求在數(shù)據(jù)傳輸過(guò)程中CS信號(hào)必須為低電平,在傳輸完畢后必須為高電平。此信號(hào)由McBSP的BFSX引腳提供,因此必須正確設(shè)置DSP的幀脈沖發(fā)生器,使之在每個(gè)數(shù)據(jù)包傳輸期間產(chǎn)生幀同步脈沖,即在數(shù)據(jù)包傳輸?shù)牡谝晃蛔優(yōu)橛行顟B(tài),然后保持此狀態(tài)直到數(shù)據(jù)包傳輸結(jié)束。

  McBSP的采樣率發(fā)生器產(chǎn)生適當(dāng)頻率的時(shí)鐘信號(hào),由BCLKX引腳輸出,保證主從設(shè)備間的同步數(shù)據(jù)傳輸。因此必須正確設(shè)置DSP的采樣率發(fā)生器時(shí)鐘源(CLKSM)和時(shí)鐘降頻因子(CLKGDV)。根據(jù)SPI傳輸協(xié)議,必須正確設(shè)置數(shù)據(jù)發(fā)送延遲時(shí)間(XDATDLY)。由圖4可知MAX3111要求在SCLK變高之前的半個(gè)周期開始傳輸數(shù)據(jù)。

  所以必須為McBSP選擇合適的時(shí)鐘方案,即設(shè)置McBSP的時(shí)鐘停止模式。在本應(yīng)用中采用McBSP的時(shí)鐘停止模式2(CLKSTP=11b,CLKXP=0),這樣即可保證與MAX3111的時(shí)序相配合。

5 DSP的異步通信軟件的設(shè)計(jì)

  考慮到應(yīng)用系統(tǒng)軟件的可移植性和可讀性,數(shù)據(jù)傳輸軟件采用C語(yǔ)言進(jìn)行編寫,這樣,可以利用DSP開發(fā)軟件CCS2.0所提供的DSP/BIOS中的芯片支持庫(kù)函數(shù)(CSL)。CSL提供C語(yǔ)言可調(diào)用的DSP外圍接口庫(kù)函數(shù),其中包括DMA模塊、McBSP模塊、TIMER模塊等。應(yīng)用這些庫(kù)函數(shù)可大大提高程序可讀性,縮短軟件開發(fā)周期。在本文所提到的應(yīng)用中,主要調(diào)用MCBSP模塊。數(shù)據(jù)傳輸軟件主要包括以下幾部分。

  (1)McBSP串口初始化

  如上所述,在本應(yīng)用中應(yīng)將TMS320C54XX DSP的McBSP串行口配置為SPI模式,以DSP作為主設(shè)備。表1給出了應(yīng)設(shè)置的寄存器或寄存器位的值,未涉及的寄存器保持其默認(rèn)值即可。

?

?

  根據(jù)表1,調(diào)用CSL的McBSP配置庫(kù)函數(shù)即可完成McBSP的初始化:

  McBSP_Handle hport0;???????????? /*聲明指向McBSP的句柄*/

  McBSP_Config PortConfig={???????? /*定義寄存器設(shè)置結(jié)構(gòu)*/

????????????? 0x1800,????????????????/*設(shè)置串口控制寄存器1的值*/

????????????? 0x0000,????????????????/*設(shè)置串口控制寄存器2的值*/

????????????? 0x0040,??????????????? /*設(shè)置接收控制寄存器的值*/

  ...

  };

  hport0 = MCBSP_open(0, MCBSP_OPEN_RESET);  /*打開第一個(gè)McBSP串口 */

  MCBSP_config (hport0, &PortConfig);     /*按結(jié)構(gòu)設(shè)置McBSP的各寄存器*/

  (2) MAX3111工作模式及波特率設(shè)置

  在進(jìn)行通信之前,DSP必須首先根據(jù)命令序列格式向MAX3111寫入配置命令字,之后才能進(jìn)行正確的數(shù)據(jù)傳輸,如8位數(shù)據(jù)位、一位停止位、無(wú)奇偶校驗(yàn)位、波特率為115200、使能接收和發(fā)送中斷的異步數(shù)據(jù)傳輸。DSP對(duì)MAX3111進(jìn)行配置的簡(jiǎn)要過(guò)程為:

  ...

  McBSP_start(hport0,???????????? /*McBSP開始數(shù)據(jù)傳輸*/

  ??? McBSP_SRGR_START|MCBSP_SRGR_FRAMESYNC

? ??? ?|McBSP_RCV_START|MCBSP_XMIT_START, 0x200

????  );

  while(!McBSP_xrdy(hport0)); ?? ?/*等待發(fā)送寄存器為空*/

  McBSP_write16(hport0,0x6E0B);? /*向MA3111寫入配置命令字*/

  ...

  (3)中斷服務(wù)程序

  在進(jìn)行中斷方式數(shù)據(jù)傳輸時(shí),需要注意的是:雖然DSP的McBSP有自身的發(fā)送和接收中斷,但由于McBSP與MAX3111之間的同步串行數(shù)據(jù)傳輸速率高于MAX3111將數(shù)據(jù)以一定波特率(最高230kbps)異步發(fā)送的速率,因此如果應(yīng)用McBSP的發(fā)送中斷,將造成發(fā)送數(shù)據(jù)的丟失。同時(shí),在SPI協(xié)議中,數(shù)據(jù)的傳輸是由SPI主設(shè)備發(fā)起的,所以在SPI方式下的McBSP并不能產(chǎn)生接收中斷。因此,本方案應(yīng)用的關(guān)鍵之一是將MAX3111的IRQ中斷信號(hào)連接至DSP的一外部中斷,以實(shí)現(xiàn)中斷方式下可靠、正確的數(shù)據(jù)傳輸。

  針對(duì)現(xiàn)有的多數(shù)數(shù)字信號(hào)處理器(DSP)芯片上不提供異步串行收發(fā)器(UART)接口,而只有同步串行接口的情況。本文通過(guò)簡(jiǎn)單的硬件電路將同步接口轉(zhuǎn)換為異步串行接口,充分利用了DSP的在片硬件資源,很好地解決了DSP的異步串口擴(kuò)展問(wèn)題。此方法在工程實(shí)踐中已經(jīng)得到應(yīng)用。實(shí)踐證明,在各種波特率下(最高可為230.4kbps),其查詢和中斷方式數(shù)據(jù)傳輸正確、可靠,各元件工作正常,并且在此硬件連接的基礎(chǔ)上,利用DSP的DMA功能進(jìn)行串行數(shù)據(jù)接收及發(fā)送收到了良好效果,進(jìn)一步提升了應(yīng)用系統(tǒng)的性能。

?

參考文獻(xiàn)

1 TMS320C54 DSP CPU And Peripherals Reference Set.Texas Instruments, Vol1, April,2001

2 TMS320C54 DSP Applications Guide Reference Ser.Texas?Instruments, Vol4, October,2001

3 TMS320C54X Chip Support Library API User’s Guide,October,2001

4 MAXIM 2001 New Releases Data Book Volume Ⅶ.MAXIM,2001

5 胡又農(nóng),趙錦紅.具有IrDA模式的UART芯片MAX3100及其應(yīng)用. 國(guó)外電子元器件,1999;8(3)

6 王魯南.MAX3100在串行紅外數(shù)據(jù)與RS232轉(zhuǎn)換器中的應(yīng)用.電子工程師,2000(2)

7 戴明禎,周建江.TMS320C54X DSP 結(jié)構(gòu)、原理及應(yīng)用.北京:北京航空航天大學(xué)出版社,2001

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。