TMS320VC5402(VC5402)增強外設(shè)由軟件等待狀態(tài)發(fā)生器、鎖相環(huán)時鐘發(fā)生器,、6通道直接存儲器訪問(DMA)控制器,、增強型8位并行主機接口(HPI)等組成。兩個可編程的多通道緩沖串口(McBSP)能夠全雙工,、快速地與其他同步串口進行數(shù)據(jù)交換,,硬件連接簡單,串口的工作模式和傳送數(shù)據(jù)的格式可通過編程實現(xiàn),。DSP和單片機之間的通信一般利用雙口RAM,,通過串口或DSP的HPI接口實現(xiàn)。
利用雙口RAM實現(xiàn)
CY7C026是CYPRESS公司生產(chǎn)的16k×16B高速雙口靜態(tài)RAM,,存取速度小于25ns。他具有真正的雙端口,可以同時進行數(shù)據(jù)存取,,兩個端口具有獨立的控制信號線,、地址線和數(shù)據(jù)線,另外通過主?從選擇可以方便地擴存儲容量和數(shù)據(jù)寬度,。通過芯片的信號量標志器,,左、右兩端口可以實現(xiàn)芯片資源的共享,。
由于DSP的數(shù)據(jù)是16位,,而單片機的數(shù)據(jù)是8位,所以TMS320VC5402與雙口RAM的接口并無特別之處,,但是89C51與雙口RAM之間的接口電路中就需要對89C51進行總線擴展了,。具體做法是利用鎖存器74HC373的鎖存功能,通過對其使能信號的控制,,進行分時讀寫,,實現(xiàn)數(shù)據(jù)總線的擴展,即利用鎖存器作為虛擬總線,。DSP,,單片機與雙口RAM之間的接口電路如圖1所示。

圖1 通過雙口RAM實現(xiàn)的接口電路
雙口RAM必須采用一定的機制來協(xié)調(diào)左右兩邊CPU對他的讀寫操作,,否則會出現(xiàn)讀寫數(shù)據(jù)的錯誤,。通??梢杂弥袛唷⒂布?、令牌和軟件這4種方式來協(xié)調(diào)雙方,。在接口電路中利用89C51的最低地址位A0把雙口RAM的存儲空間分為奇、偶地址兩個空間,。其中,,奇地址空間專供89C51寫,偶地址空間專供89C51讀,。那么只需對VC5402的軟件做相應(yīng)處理即可,,即VC5402對雙口RAM的奇地址空間只讀,對偶地址空間只寫,。這樣就避免了DSP和單片機對雙口RAM同一地址單元的寫入操作,。另外,在對雙口RAM進行訪問之前,,單片機和DSP首先對本端的BUSY信號進行查詢,,只有本端/BUSY信號無效時才進行讀寫操作,進一步保證了數(shù)據(jù)讀寫的可靠性,。
通過串口實現(xiàn)
VC5402多通道緩沖串行口(McBSP)主要特點:雙緩沖區(qū)發(fā)送,,三緩沖區(qū)接收以便數(shù)據(jù)的連續(xù)性;接收與發(fā)送的幀同步、時鐘信號獨立;多通道發(fā)送和接收,,最多可以到達128個通道;數(shù)據(jù)大小可為8,,12,16,,20,,24和32b;μ率和A率壓縮;幀同步、數(shù)據(jù)時鐘極性可編程;內(nèi)部時鐘和幀同步可自行設(shè)定,。
VC5402串口通過16b寬度的控制寄存器與內(nèi)部總線通信,。
數(shù)據(jù)接收過程:數(shù)據(jù)從輸入引腳(DR)移位到接收移位寄存器(RSR),然后拷貝數(shù)據(jù)到接收緩沖寄存器(RBR),,接著把數(shù)據(jù)拷貝到數(shù)據(jù)接收寄存器(DRR),,CPU或者DMA控制器讀取DRR。
數(shù)據(jù)輸出過程:CPU或者DMA把數(shù)據(jù)寫到數(shù)據(jù)傳輸寄存器(DXR),,再通過寄存器(XSR)移位到數(shù)據(jù)輸出引腳DX6,。
對串口寄存器的訪問是間接尋址方式,例如要對McBSP數(shù)據(jù)寄存器進行訪問,,首先寫串口控制寄存器SPCR子地址到子地址寄存器SPSA,,然后對數(shù)據(jù)寄存器進行訪問。硬件連接如圖2所示,。

圖2 通過McBSP實現(xiàn)的硬件連接
McBSP的位時鐘由內(nèi)部采樣率發(fā)生器產(chǎn)生,,為UART波特率×16,。
在軟件的設(shè)計中McBSP的16位代表UART的1位。發(fā)送時,,軟件將UART的每一位擴展為16位,,再由McBSP發(fā)送。接收時,,軟件將McBSP接收的16位壓縮為UART的1位,,并進行合并。軟件還應(yīng)負責(zé)處理UART的起始位,、奇偶校驗位和停止位,。
通過HPI和電平轉(zhuǎn)換器件實現(xiàn)
DSP芯片中的HPI(主機接口)是為了滿足DSP與其他的微處理器接口而專門設(shè)計的,。他分為HPI—8和HPI1—6,,分別針對具有8位和16位數(shù)據(jù)線的單片機。每一種又分為標準型和增強型,,區(qū)別在于標準型只可以訪問固定的地址空間,,而增強型可以訪問整個DSP的片內(nèi)存儲器。利用C5402的增強型8位并行主機接口(HPI)與單片機通信,。
VC5402DSP的外部I/P引腳用的是3.3V的邏輯電平,,而大部分51單片機用的是5V的邏輯電平。前者輸出高電平,,最小值為2.4V;后者輸入高電平,,最小值為2.0V。所以前者的輸出可以直接接到后者的輸入,。但是前者允許輸入高電平最大值為3.6V,,而后者的輸出高電平一般都在4.6V以上。所以前者的輸入和后者的輸出不能直接連接,,需要做電平轉(zhuǎn)換,。如果引腳數(shù)量少,可以直接用三極管電阻來轉(zhuǎn)換,。這里由于引腳較多,,所以選用TI74LVC16245A芯片來進行電平轉(zhuǎn)換。硬件電路如圖3所示,。

圖3 通過電平轉(zhuǎn)換芯片實現(xiàn)HPI的數(shù)據(jù)傳輸分為2部分:外部傳輸和內(nèi)部傳輸,。外部傳輸是指主機和HPI寄存器之間的傳輸,由主機發(fā)出指令完成,。內(nèi)部傳輸是指HPI寄存器和DSP內(nèi)部RAM之間的傳輸,,由DSP內(nèi)部的DMA控制器自動完成。主機在進行外部傳輸時,,要先檢查內(nèi)部傳輸是否完成,,這是通過檢測HRDY信號實現(xiàn)的,。外部傳輸操作的一般步驟是:檢查HRDY信號的電平。為高,,表示可以進行傳輸;為低,,表示DSP正在進行內(nèi)部傳輸,此時不能進行外部傳輸,。主機發(fā)出指令,,設(shè)置HCNTL0,HCNTL1,,BHIL,,HR?W信號的狀態(tài),以確定讀或?qū)懙募拇嫫饕约白止?jié)的選擇,。主機發(fā)出時序控制信號,,按時序進行操作,從而完成一次外部傳輸,。
結(jié)語
雙口RAM實現(xiàn)VC5402和89C51之間的數(shù)據(jù)通信,,極大地提高了數(shù)據(jù)傳輸速度和可靠性,能滿足控制系統(tǒng)的實時,、高速的控制要求,。
利用McBSP的方法,硬件結(jié)構(gòu)簡單所用芯片少,,但是將占用片上系統(tǒng)中為數(shù)不多的同步串行口資源,,而且也要占用DSP的處理時間,他是用于傳輸數(shù)據(jù)較少,,傳輸速率慢而又希望DSP與單片機之間是緊耦合的場合,。
HPI方案比較簡單,附加硬件少,、成本低,、數(shù)據(jù)吞吐量非常大,但不適合于實時控制的場合,,因為工作中可能將DSP掛起,,影響實時工作。而一般應(yīng)用在對成本比較敏感而數(shù)據(jù)量又比較大的場合,。讀者可以根據(jù)系統(tǒng)要求選取合適的方案,。