《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > TMS320C3x DSP和PC機的異步串行通信
TMS320C3x DSP和PC機的異步串行通信
陜西空軍工程大學導彈學院
齊崇英 陳西宏 蘇紅潮
摘要: TMS320C3x DSP和PC機的異步串行通信設計,TMS320C3x DSP是目前國內應用比較廣泛的DSP芯片之一,,它提供了可與外部串行設備通信的串行接口,,支持8/16/24/32位數(shù)據(jù)交換,為設計A/D,、D/A接口電路提供了很大的靈活性。然而,,當DSP系統(tǒng)和PC機進行通信時,,如何設計合
Abstract:
Key words :

   TMS320C3x DSP是目前國內應用比較廣泛的DSP芯片之一,它提供了可與外部串行設備通信的串行接口,,支持8/16/24/32位數(shù)據(jù)交換,,為設計A/D、D/A接口電路提供了很大的靈活性,。然而,,當DSP系統(tǒng)和PC機進行通信時,如何設計合理的接口電路和通信軟件,,將DSP處理后的數(shù)據(jù)實時準確地傳輸給PC機,,同時使PC機實時有效地控制DSP,成為DSP系統(tǒng)設計中的重要一環(huán),。本文采用異步串行通信(Universal Asychronous Receiverand Transmitter,,UART),較好地解決了DSP和PC機通信這一問題,。
1 TMS320C3x簡介
  TMS320C3x(以下簡稱C3x)是TI(TexasInstruments)公司生產(chǎn)的第三代產(chǎn)品,,也是第一代浮點DSP芯片,包括C30,、C31,、C32和C33四種,是TMS320系列中性能價格比較高的一種浮點DSP芯片,,具有32位的浮點精度,,總共有三套總線,即程序總線,、數(shù)據(jù)總線和DMA總線,,取指、讀寫數(shù)據(jù)以及DMA操作可并行進行,,可以尋址16M字的空間,。其中C31是C30的簡化和改進型,,它去掉了擴展總線和一個串口,降低了芯片的成本,,并且在硬件上增加了一個非常有用的功能,,即程序引導功能(Bootloader),使其程序可以從低速EPROM,、PROM或串行口裝入到系統(tǒng)的高速RAM中全速運行 ,。C32和C33是C31的進一步簡化和改進,其中C32片內RAM減為512字,,以降低成本,。C33片內RAM為34K ,需3.3V電源,。
2 DSP系統(tǒng)結構框圖
    圖1為整個DSP系統(tǒng)的硬件框圖,。


                             
    其中,TLC32044是TI公司生產(chǎn)的話帶模數(shù)接口芯片(簡稱AIC)TLC32040系列中的一種,,它集A/D,、D/A于一體,具有兩個模擬輸入口和一個模擬輸出口,,最高采樣頻率為19.2kHz,。MC6850為Motorola公司生產(chǎn)的異步串行接口芯片(UART),它可以進行8位或9位數(shù)據(jù)的發(fā)送和接收,,并可選擇÷1,、÷16、÷64三種不同的時鐘模式,。DSP通過對MC6850的控制寄存器初始化來設置異步通信協(xié)議,然后MC6850對DSP的并行數(shù)據(jù)和PC機的串行數(shù)據(jù)按照協(xié)議進行并串轉換,。MAX232芯片進行TTL電平和RS-232電平之間的轉換,。外部信號經(jīng)A/D轉換進入DSP,DSP對其進行處理后,,經(jīng)UART送入PC機,,由PC機對數(shù)據(jù)進行處理和存儲。同時,,PC機將控制信號或待發(fā)數(shù)據(jù)經(jīng)UART送入DSP,,對DSP實施控制或經(jīng)DSP處理后送入D/A,經(jīng)低通濾波后還原為模擬信號,。
3 DSP系統(tǒng)通信軟件
  傳輸時,,發(fā)送雙方應按照共同遵循的協(xié)議進行初始化。通信協(xié)議采用起止式異步通信協(xié)議,,下面分別是DSP對MC6850和上層PC機軟件對串行口初始化操作的源程序代碼,。
3.1 MC6850異步串口通信程序設計
  加電之后,,6850處于閉鎖狀態(tài),以避免輸出錯誤的發(fā)送,。使用前,,必須通過程序將控制寄存器的CR0和CR1置“1”,以進行主復位,,使其從閉鎖狀態(tài)釋放,。然后就可以對控制寄存器編程,以確定6850的時鐘分頻,、數(shù)據(jù)格式和發(fā)送與接收控制功能等,。以下是在Code Composer集成開發(fā)環(huán)境下,用C語言實現(xiàn)對6850的初始化設置和發(fā)送數(shù)據(jù)程序,。


                         
3.2 PC機通信程序設計
  在VC++6.0環(huán)境下,,利用PC機進行串口通信的常用方法有兩種:(1)調用Windows API(Application Program Interface)函數(shù);(2)使用ActiveX的MSComm控件,。第一種方法需聲明及調用許多API函數(shù),,十分煩瑣。故本文采用第二種方法,。
    PC機通信的具體實現(xiàn)過程如下:
    第一步,,啟動VC++6.0,新建一個基于對話框的應用程序TxRx,。
  第二步,,在對話框中插入串口控件,增加新的靜態(tài)文本,、編輯框和按鈕控件,,并為它們添加相應的變量。其屬性如下:
                          


  第三步,,在TxRxDlg.cpp文件中添加有關程序代碼,。
  首先,在文件頭第一條注釋行中加入全局變量說明,。
                                       
    其次,,需要初始化串口參數(shù),在OnInitiDialog()函數(shù)中TODO語句后加入以下代碼:

 
                     
    //先預讀緩沖區(qū)以清除殘留數(shù)據(jù)
  接著,,為發(fā)送按鈕IDC-TRSMITT添加消息處理函數(shù)OnTransmitt(),,內容如下:


                             
   下面舉例說明如何在Transmitt()函數(shù)中實現(xiàn)發(fā)送一幀數(shù)據(jù)。
                            


                            
                              UpdateData(FALSE),;//更新對話框

4 結束語
  以上是DSP與PC機之間異步串行通信的軟硬件解決方案,,目前此方案已應用于短波通信智能終端數(shù)據(jù)傳輸系統(tǒng)中,運行穩(wěn)定,通信性能良好,,較好地解決了DSP和PC機的通信問題,。

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