TMS320VC5402與PC機進行串行通信的兩種方案
【摘 要】 介紹了TMS320VC5402和PC機進行串行通信的兩種方案,分析了兩者的特點,并且給出了具體的電路圖。
關鍵詞:數字信號處理,通信接口,TMS320VC5402
1 引 言
通用數字信號處理器(DSP)以其很強的數據處理能力在高速數字信號處理方面得到了廣泛的應用。TMS320VC5402(以下簡稱C5402)是為實現低功耗、高性能而專門設計的定點DSP芯片,其主要應用領域是無線通信系統。在實際應用的過程中,我們發現C5402的通信接口控制能力很弱。當C5402獨立作為一個系統的處理單元時,與外設進行數據交換是必不可少的,其通信能力弱的特點就會影響應用的效果。
對TI的TMS320系列的DSP來說,設計串口的方法一般有兩種:(1)利用通用I/O口線XF和BIO來構成串口,由軟件設計波特率,在CPU不繁忙的情況下往往采用這種方法;(2)利用UART(通用異步收發器)來進行串行通信,CPU只需通過UART提供的接口來編程,就可以實現串行通信。接下來將具體介紹這兩種方案。
2 基于C5402的軟RS232接口
2.1 硬件電路
RS232為低速率應用提供通信接口。利用C5402的XF、BIO,INT0和定時器可以實現一個最簡RS232接口,從而達到C5402與PC機進行串行通信的目的。原理如圖1所示。

2.2 軟件設計
這種設計支持從110到115200各種波特率。C5402通過XF管腳向RS232接口發送串行數據,通過 BIO管腳接收來自RS232接口的串行數據。BIO和INT0相連,可以避免頻繁檢測接收管腳的電平,當接收端出現第一個低電平,即認為是接收字節的開始位,每次判決電平位置在每個比特的中間位置,可最大限度地防止誤判的發生。
RS232接口的主要邏輯都是用C5402匯編語言編寫的,減少了硬件成本和系統體積,發送是先將8位原始數據加上1位起始位和2位停止位,然后根據波特率設定時鐘間隔,每次時鐘中斷發生是,發送1位數據,直到包含這8位原始數據的11位數據全部發送完成。
接收時由低電平觸發INT0中斷,表示有新數據到來,進入INT0中斷服務子程序。為防止誤判,中斷子程序首先檢查接收到的第一位是否為開始位,如果不是,說明并未有新數據到來。如果確是開始位,則屏蔽INT0中斷,根據波特率設置定時器,開始數據接收。每次接收時鐘中斷發生,檢測BIO值并將檢測值依次移入接收寄存器。最后去掉開始位和停止位,將8位數據存入接收緩存,完成1個字節的接收。
3 利用TL16C550實現C5402與PC機的高速串行通信
3.1 異步通信芯片TL16C550
3.1.1 TL16C550管腳介紹
TL16C550C是TI公司的異步通信芯片,它具有以下主要特點:
·管腳與TL16C750兼容;
·最高可達1M的波特率,且波特率發生器可編程設定;
·由軟件設定的FIFO以減少CPU中斷;
·有可編程的串行數據發送格式:數據位長度為5、6、7、8;
·具有奇、偶校驗或無校驗模式;停止位長度為1、1.5、2;
·采用44引腳PLCC封裝。
TL16C550的引腳如圖2所示。

TL16C550各主要引腳的功能說明見表1。
評論