《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > TMS320VC5402與PC機(jī)進(jìn)行串行通信的兩種方案
TMS320VC5402與PC機(jī)進(jìn)行串行通信的兩種方案
摘要: 對(duì)TI的TMS320系列的DSP來(lái)說(shuō),設(shè)計(jì)串口的方法一般有兩種:(1)利用通用I/O口線XF和BIO來(lái)構(gòu)成串口,由軟件設(shè)計(jì)波特率,在CPU不繁忙的情況下往往采用這種方法;(2)利用UART(通用異步收發(fā)器)來(lái)進(jìn)行串行通信,CPU只需通過(guò)UART提供的接口來(lái)編程,就可以實(shí)現(xiàn)串行通信。接下來(lái)將具體介紹這兩種方案。
Abstract:
Key words :
  1 引言

  通用數(shù)字信號(hào)處理器(DSP)以其很強(qiáng)的數(shù)據(jù)處理能力在高速數(shù)字信號(hào)處理方面得到了廣泛的應(yīng)用。TMS320VC5402(以下簡(jiǎn)稱C5402)是為實(shí)現(xiàn)低功耗、高性能而專門設(shè)計(jì)的定點(diǎn)DSP芯片,其主要應(yīng)用領(lǐng)域是無(wú)線通信系統(tǒng)。在實(shí)際應(yīng)用的過(guò)程中,我們發(fā)現(xiàn)C5402的通信接口控制能力很弱。當(dāng)C5402獨(dú)立作為一個(gè)系統(tǒng)的處理單元時(shí),與外設(shè)進(jìn)行數(shù)據(jù)交換是必不可少的,其通信能力弱的特點(diǎn)就會(huì)影響應(yīng)用的效果。

  對(duì)TI的TMS320系列的DSP來(lái)說(shuō),設(shè)計(jì)串口的方法一般有兩種:(1)利用通用I/O口線XF和BIO來(lái)構(gòu)成串口,由軟件設(shè)計(jì)波特率,在CPU不繁忙的情況下往往采用這種方法;(2)利用UART(通用異步收發(fā)器)來(lái)進(jìn)行串行通信,CPU只需通過(guò)UART提供的接口來(lái)編程,就可以實(shí)現(xiàn)串行通信。接下來(lái)將具體介紹這兩種方案。

  2 基于C5402的軟RS232接口

  2.1 硬件電路

  RS232為低速率應(yīng)用提供通信接口。利用C5402的XF、BIO,INT0和定時(shí)器可以實(shí)現(xiàn)一個(gè)最簡(jiǎn)RS232接口,從而達(dá)到C5402與PC機(jī)進(jìn)行串行通信的目的。原理如圖1所示。

  2.2 軟件設(shè)計(jì)

  這種設(shè)計(jì)支持從110到115200各種波特率。C5402通過(guò)XF管腳向RS232接口發(fā)送串行數(shù)據(jù),通過(guò)BIO管腳接收來(lái)自RS232接口的串行數(shù)據(jù)。BIO和INT0相連,可以避免頻繁檢測(cè)接收管腳的電平,當(dāng)接收端出現(xiàn)第一個(gè)低電平,即認(rèn)為是接收字節(jié)的開始位,每次判決電平位置在每個(gè)比特的中間位置,可最大限度地防止誤判的發(fā)生。

  RS232接口的主要邏輯都是用C5402匯編語(yǔ)言編寫的,減少了硬件成本和系統(tǒng)體積,發(fā)送是先將8位原始數(shù)據(jù)加上1位起始位和2位停止位,然后根據(jù)波特率設(shè)定時(shí)鐘間隔,每次時(shí)鐘中斷發(fā)生是,發(fā)送1位數(shù)據(jù),直到包含這8位原始數(shù)據(jù)的11位數(shù)據(jù)全部發(fā)送完成。

  接收時(shí)由低電平觸發(fā)INT0中斷,表示有新數(shù)據(jù)到來(lái),進(jìn)入INT0中斷服務(wù)子程序。為防止誤判,中斷子程序首先檢查接收到的第一位是否為開始位,如果不是,說(shuō)明并未有新數(shù)據(jù)到來(lái)。如果確是開始位,則屏蔽INT0中斷,根據(jù)波特率設(shè)置定時(shí)器,開始數(shù)據(jù)接收。每次接收時(shí)鐘中斷發(fā)生,檢測(cè)BIO值并將檢測(cè)值依次移入接收寄存器。最后去掉開始位和停止位,將8位數(shù)據(jù)存入接收緩存,完成1個(gè)字節(jié)的接收。

  3 利用TL16C550實(shí)現(xiàn)C5402與PC機(jī)的高速串行通信

  3.1 異步通信芯片TL16C550

  3.1.1 TL16C550管腳介紹

  TL16C550C是TI公司的異步通信芯片,它具有以下主要特點(diǎn):

  ·管腳與TL16C750兼容;

  ·最高可達(dá)1M的波特率,且波特率發(fā)生器可編程設(shè)定;

  ·由軟件設(shè)定的FIFO以減少CPU中斷;

  ·有可編程的串行數(shù)據(jù)發(fā)送格式:數(shù)據(jù)位長(zhǎng)度為5、6、7、8;

  ·具有奇、偶校驗(yàn)或無(wú)校驗(yàn)?zāi)J剑煌V刮婚L(zhǎng)度為1、1.5、2;

  ·采用44引腳PLCC封裝。

  TL16C550的引腳如圖2所示。

 

  TL16C550各主要引腳的功能說(shuō)明見(jiàn)表1?! ?nbsp;

 

  3.1.2 TL16C550片內(nèi)寄存器介紹

  TL16C550內(nèi)部共有11個(gè)寄存器,這些寄存器分別用于實(shí)現(xiàn)通信參數(shù)的設(shè)置、對(duì)線路及MODEN的狀態(tài)訪問(wèn)、數(shù)據(jù)的發(fā)送和接收及中斷管理等功能。表2描述了訪問(wèn)這些寄存器時(shí)鎖存器訪問(wèn)位DLAB和A0、A1、A2的狀態(tài)?! ?nbsp;

  3.2 C5402與PC機(jī)串行通信的硬件電路

  C5402與PC機(jī)串行通信的硬件電路如圖3所示。

  圖3中,TL16C550的CS0和CS1都接高電平,CS2接C5402的外部I/O空間,選擇線IS。

  當(dāng)XIN、XOUT端外接1.8342MHz晶振時(shí),C5402以28400的波特率與PC機(jī)通信,所以,波特率因子寄存器的低位設(shè)為02H,高位設(shè)為00H。

  TLC16C550的數(shù)據(jù)線D0-D7直接與C5402的D0-D7數(shù)據(jù)線相連,TL16C550的片內(nèi)寄存器選擇線接C5402的A0-A2。

  由于RS-232-C電路電平與CMOS電平不同,因此,RS232驅(qū)動(dòng)器與CMOS電平連接時(shí)必須經(jīng)過(guò)電平轉(zhuǎn)換。這里,我們采用MAX232完成這一功能,MAX232具有一個(gè)專有的低壓降發(fā)送器輸出級(jí),在其以雙電荷棒3.0V~5.5V供電時(shí),可以獲得真正的RS-232性能。該器件只需4個(gè)1μF小型外接電容,可在維持RS-232輸出電平的情況下確保運(yùn)行于120kb/s數(shù)據(jù)率,因此十分適合高速串行通信場(chǎng)合。

  利用RXRDY和TXRDY引入外部中斷,從而系統(tǒng)工作在中斷方式,RXRDY產(chǎn)生外部0中斷(INT0),而TXRDY將產(chǎn)生外部1中斷(INT1)。

  3.3 軟件設(shè)計(jì)

  系統(tǒng)軟件設(shè)計(jì)包括PC機(jī)、TMS320VC5402以

 

  及TL16C550的初始化和通信協(xié)議等。初始化的主要任務(wù)是設(shè)置操作所需要的參數(shù)。這些參數(shù)包括串行通信時(shí)數(shù)據(jù)串的數(shù)據(jù)位數(shù)、停止位數(shù)、奇偶校驗(yàn)等。另外,還需要設(shè)置發(fā)送和接收的波特率及中斷方式。

  其中需要注意的是由于系統(tǒng)工作在中斷方式,應(yīng)允許接收就緒中斷和發(fā)送緩沖區(qū)空中斷,相應(yīng)地,中斷允許寄存器的值應(yīng)該設(shè)置為03H。

  4 結(jié)束語(yǔ)

  利用通用I/O引腳擴(kuò)展串口時(shí)硬件構(gòu)成簡(jiǎn)單,

  但軟件編制較為復(fù)雜,而且由于DSP的中斷優(yōu)先級(jí)無(wú)法通過(guò)軟件設(shè)置,在有其他外部中斷的情況下較難適用。相比之下,運(yùn)用UART來(lái)擴(kuò)展串口增加了硬件,但降低了軟件復(fù)雜度,并且免去了對(duì)時(shí)鐘中斷的依賴,還可引進(jìn)另外的外部中斷,兩個(gè)通用引腳也可留出,更適合在較復(fù)雜的獨(dú)立系統(tǒng)中使用。在應(yīng)用時(shí),可根據(jù)實(shí)際情況進(jìn)行選擇。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。