TMS320VC5402 DSP與單片機(jī)的HPI接口實(shí)現(xiàn)
TMS320VC5402(VC5402)兩個(gè)可編程的多通道緩沖串口(McBSP)能夠全雙工、快速地與其他同步串口進(jìn)行數(shù)據(jù)交換,硬件連接簡單,串口的工作模式和傳送數(shù)據(jù)的格式可通過編程實(shí)現(xiàn)。DSP和單片機(jī)之間的通信一般利用雙口RAM,通過串口或DSP的HPI接口實(shí)現(xiàn)。
本文引用地址:http://m.butianyuan.cn/article/150221.htm利用雙口RAM實(shí)現(xiàn)
CY7C026是CYPRESS公司生產(chǎn)的16k×16B高速雙口靜態(tài)RAM,存取速度小于25ns。他具有真正的雙端口,可以同時(shí)進(jìn)行數(shù)據(jù)存取,兩個(gè)端口具有獨(dú)立的控制信號(hào)線、地址線和數(shù)據(jù)線,另外通過主?從選擇可以方便地?cái)U(kuò)存儲(chǔ)容量和數(shù)據(jù)寬度。通過芯片的信號(hào)量標(biāo)志器,左、右兩端口可以實(shí)現(xiàn)芯片資源的共享。
由于DSP的數(shù)據(jù)是16位,而單片機(jī)的數(shù)據(jù)是8位,所以TMS320VC5402與雙口RAM的接口并無特別之處,但是89C51與雙口RAM之間的接口電路中就需要對(duì)89C51進(jìn)行總線擴(kuò)展了。具體做法是利用鎖存器74HC373的鎖存功能,通過對(duì)其使能信號(hào)的控制,進(jìn)行分時(shí)讀寫,實(shí)現(xiàn)數(shù)據(jù)總線的擴(kuò)展,即利用鎖存器作為虛擬總線。DSP,單片機(jī)與雙口RAM之間的接口電路如圖1所示。
圖1 通過雙口RAM實(shí)現(xiàn)的接口電路
雙口RAM必須采用一定的機(jī)制來協(xié)調(diào)左右兩邊CPU對(duì)他的讀寫操作,否則會(huì)出現(xiàn)讀寫數(shù)據(jù)的錯(cuò)誤。通??梢杂弥袛唷⒂布?、令牌和軟件這4種方式來協(xié)調(diào)雙方。在接口電路中利用89C51的最低地址位A0把雙口RAM的存儲(chǔ)空間分為奇、偶地址兩個(gè)空間。其中,奇地址空間專供89C51寫,偶地址空間專供89C51讀。那么只需對(duì)VC5402的軟件做相應(yīng)處理即可,即VC5402對(duì)雙口RAM的奇地址空間只讀,對(duì)偶地址空間只寫。這樣就避免了DSP和單片機(jī)對(duì)雙口RAM同一地址單元的寫入操作。另外,在對(duì)雙口RAM進(jìn)行訪問之前,單片機(jī)和DSP首先對(duì)本端的BUSY信號(hào)進(jìn)行查詢,只有本端/BUSY信號(hào)無效時(shí)才進(jìn)行讀寫操作,進(jìn)一步保證了數(shù)據(jù)讀寫的可靠性。
通過串口實(shí)現(xiàn)
VC5402多通道緩沖串行口(McBSP)主要特點(diǎn):雙緩沖區(qū)發(fā)送,三緩沖區(qū)接收以便數(shù)據(jù)的連續(xù)性;接收與發(fā)送的幀同步、時(shí)鐘信號(hào)獨(dú)立;多通道發(fā)送和接收,最多可以到達(dá)128個(gè)通道;數(shù)據(jù)大小可為8,12,16,20,24和32b;μ率和A率壓縮;幀同步、數(shù)據(jù)時(shí)鐘極性可編程;內(nèi)部時(shí)鐘和幀同步可自行設(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。
對(duì)串口寄存器的訪問是間接尋址方式,例如要對(duì)McBSP數(shù)據(jù)寄存器進(jìn)行訪問,首先寫串口控制寄存器SPCR子地址到子地址寄存器SPSA,然后對(duì)數(shù)據(jù)寄存器進(jìn)行訪問。硬件連接如圖2所示。
圖2 通過McBSP實(shí)現(xiàn)的硬件連接
McBSP的位時(shí)鐘由內(nèi)部采樣率發(fā)生器產(chǎn)生,為UART波特率×16。
在軟件的設(shè)計(jì)中McBSP的16位代表UART的1位。發(fā)送時(shí),軟件將UART的每一位擴(kuò)展為16位,再由McBSP發(fā)送。接收時(shí),軟件將McBSP接收的16位壓縮為UART的1位,并進(jìn)行合并。軟件還應(yīng)負(fù)責(zé)處理UART的起始位、奇偶校驗(yàn)位和停止位。
評(píng)論