TMS320VC5402串行通信接口設(shè)計(jì)
近年來,DSP在電子、通信和控制領(lǐng)域得到了非常廣泛的應(yīng)用,在DSP應(yīng)用系統(tǒng)設(shè)計(jì)中與上、下位機(jī)的通信必不可少。目前幾乎所有的DSP都提供一個(gè)或多個(gè)串口,然而,多數(shù)DSP芯片提供的是同步串口,在實(shí)際的應(yīng)用中,DSP要能夠與外設(shè)進(jìn)行異步串行通信,如與PC機(jī)進(jìn)行串行數(shù)據(jù)傳輸就要求DSP系統(tǒng)具UART串行接口。另外,由于單片機(jī)控制靈活方便、便于鍵盤及顯示的擴(kuò)展,使得其與DSP結(jié)合的更加緊密。針對這種情況,本文研究并實(shí)現(xiàn)了DSP與PC機(jī)及單片機(jī)通信接口的擴(kuò)展。
1 SPI接口協(xié)議
串行外圍設(shè)備接口(SPI)是MOTOROLA公司提出的一個(gè)同步串行外設(shè)接口,以主從方式工作,允許CPU 與各種外圍接口器件以串行方式進(jìn)行通信、交換信息。接口包括4條線:串行時(shí)鐘線(SCK)、主機(jī)輸入/從機(jī)輸出線(MIsO)、主機(jī)輸出/從機(jī)輸入線(MOSI)、低電平有效的使能信號(hào)線(/SS)。這樣,僅需3~4根數(shù)據(jù)線和控制線即可擴(kuò)展具有SPI接口的各種I/O器件。
2 TMS320VC5402與PC機(jī)的異步串口通信
2.1 McBSP的功能與特點(diǎn)
TMS320VC5402芯片具有2個(gè)高速、全雙工、多通道緩沖串行接口(McBSP),其方便的數(shù)據(jù)流控制可使其與大多數(shù)同步串行外圍設(shè)備接口。McBSP通過6個(gè)引腳(BDX、BDR、BCLKX、BCLKR、BFSX 和BFSR)與外設(shè)接口。
McBSP串口工作于時(shí)鐘停止模式時(shí)與SPI協(xié)議兼容。此時(shí),發(fā)送器和接收器在內(nèi)部得到同步,McBSP可作為SPI的主設(shè)備或從設(shè)備。發(fā)送時(shí)鐘信號(hào)(BCLKX)對應(yīng)于SPI協(xié)議中的串行時(shí)鐘信號(hào)(SCK),發(fā)送幀同步信號(hào)對應(yīng)于從設(shè)備使能信號(hào)(/CS)。在這種方式下對接收時(shí)鐘信號(hào)(BCLKR)和接收幀同步信號(hào)(BFSR)不進(jìn)行連接,因?yàn)樗鼈冊趦?nèi)部分別與BCLKX和BFSX相連。McBSP工作于SPI模式的主機(jī)時(shí),與SPI從設(shè)備接口如圖1所示。
圖1 McBSP作為SPI的主設(shè)備
2.2 MAX3111通用異步收發(fā)器
MAX3111通用異步收發(fā)器是MAXIM 公司為微處理系統(tǒng)設(shè)計(jì)的通用異步收發(fā)器UART,包括振蕩器、可編程波特率發(fā)生器、可屏蔽的中斷源、8字節(jié)的接收FIFO緩沖器和兩個(gè)RS232電平轉(zhuǎn)換器。它應(yīng)用SPI接口技術(shù)直接與主控制器進(jìn)行通信,通信速率可達(dá)230 Kb/s,無需再接入普通的MAX232進(jìn)行電平轉(zhuǎn)換,即可應(yīng)用一個(gè)芯片實(shí)現(xiàn)微控器與PC機(jī)或其它設(shè)備之間的異步數(shù)據(jù)傳輸。
2.3 DSP與MAX3111的接口設(shè)計(jì)
由于MAX3111是3.3 V器件,DSP的McBSP串行接口工作于SPI模式時(shí)可直接與MAX3111連接,實(shí)現(xiàn)與RS232設(shè)備異步數(shù)據(jù)傳輸。此時(shí)DSP作為SPI協(xié)議中的主設(shè)備,發(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 與TIIN連接,RX與R1OUT連接,以便利用其片內(nèi)的轉(zhuǎn)換
器實(shí)現(xiàn)UART到RS232電平的轉(zhuǎn)換。MAX3111的中斷信號(hào)(IRQ)與DSP的外部中斷INTO相連,其接口電路如圖2所示。這樣硬件上無需任何其它外圍器件,由于異步數(shù)據(jù)的發(fā)送和接收由MAX3111以硬件方案實(shí)現(xiàn),所以軟件編程只需考慮DSP與MAX3111之間的同步數(shù)據(jù)通信。
圖2 DSP與MAX3111的接口電路
在SPI串行協(xié)議中,主設(shè)備提供時(shí)鐘信號(hào)并控制數(shù)據(jù)傳輸過程,必須對McBSP初始化并設(shè)定適當(dāng)?shù)墓ぷ鞣绞讲拍鼙WC與MAX3111的時(shí)序相配合,設(shè)計(jì)中采用McBSP的時(shí)鐘停止模式2(CLKSTP=11 b,CLKXP=0) 。
3 TMS320VC5402與AT89S51單片機(jī)的串口通信
DSP主機(jī)接口HPI具有強(qiáng)大功能的智能外設(shè),主要用于DSP與其它總線或CPU進(jìn)行連接。DSP與單片機(jī)的接口通常采用HPI來實(shí)現(xiàn),但要外加電平轉(zhuǎn)換,硬件電路較復(fù)雜。這里采用C5402通過SPI總線與AT89S51單片機(jī)進(jìn)行數(shù)據(jù)通信,但由于后者不帶SPI總線接口,故采用軟件模擬SPI串行時(shí)鐘及輸入、輸出數(shù)據(jù)。
圖3 DSP與89S5l單片機(jī)的接口電路
DSP與AT89S51單片機(jī)的接口如圖3所示。DSP通過MOSI引腳將要傳送的數(shù)據(jù)寫到主機(jī)的發(fā)送數(shù)據(jù)寄存器DXR,啟動(dòng)發(fā)送過程,在同步時(shí)鐘BCLKX的控制下將待發(fā)的數(shù)據(jù)從高位到低位逐位送到單片機(jī)接收引腳RXD,當(dāng)RXD接受移位完畢時(shí)產(chǎn)生中斷,通知主機(jī)數(shù)據(jù)發(fā)送完畢。值得注意的是,單片機(jī)接收數(shù)據(jù)時(shí)是低位在前,高位在后。對于從機(jī)而言,在同步時(shí)鐘的節(jié)拍下將從機(jī)移位寄存器SBUF中的數(shù)據(jù)逐位經(jīng)MISO移到主機(jī)的接收數(shù)據(jù)寄存器RSR,再拷貝這些數(shù)據(jù)到接收緩沖寄存器RBR中,最后再送到DRR,當(dāng)一個(gè)完整的數(shù)據(jù)塊接收完后置中斷標(biāo)志,通知從機(jī)數(shù)據(jù)接收完畢。
4 結(jié)論
本文介紹了利用TMS320VC5402的2個(gè)McBSP擴(kuò)展與PC機(jī)和51系列單片機(jī)的通信,硬件設(shè)計(jì)簡單可靠,實(shí)用性強(qiáng),軟件上僅需對McBSP進(jìn)行設(shè)置和編程,實(shí)現(xiàn)起來非常容易。在足球機(jī)器人模型識(shí)別與控制過程中完成了PC機(jī)、DSP和單片機(jī)的實(shí)時(shí)通信,效果良好。