TMS320VC5402與51單片機的接口設計
利用雙口RAM實(shí)現
CY7C026是CYPRESS公司生產(chǎn)的16k×16B高速雙口靜態(tài)RAM,存取速度小于25ns。他具有真正的雙端口,可以同時(shí)進(jìn)行數據存取,兩個(gè)端口具有獨立的控制信號線(xiàn)、地址線(xiàn)和數據線(xiàn),另外通過(guò)主?從選擇可以方便地擴存儲容量和數據寬度。通過(guò)芯片的信號量標志器,左、右兩端口可以實(shí)現芯片資源的共享。
由于DSP的數據是16位,而單片機的數據是8位,所以TMS320VC5402與雙口RAM的接口并無(wú)特別之處,但是89C51與雙口RAM之間的接口電路中就需要對89C51進(jìn)行總線(xiàn)擴展了。具體做法是利用鎖存器74HC373的鎖存功能,通過(guò)對其使能信號的控制,進(jìn)行分時(shí)讀寫(xiě),實(shí)現數據總線(xiàn)的擴展,即利用鎖存器作為虛擬總線(xiàn)。DSP,單片機與雙口RAM之間的接口電路如圖1所示。
圖1 通過(guò)雙口RAM實(shí)現的接口電路
雙口RAM必須采用一定的機制來(lái)協(xié)調左右兩邊CPU對他的讀寫(xiě)操作,否則會(huì )出現讀寫(xiě)數據的錯誤。通??梢杂弥袛?、硬件、令牌和軟件這4種方式來(lái)協(xié)調雙方。在接口電路中利用89C51的最低地址位A0把雙口RAM的存儲空間分為奇、偶地址兩個(gè)空間。其中,奇地址空間專(zhuān)供89C51寫(xiě),偶地址空間專(zhuān)供89C51讀。那么只需對VC5402的軟件做相應處理即可,即VC5402對雙口RAM的奇地址空間只讀,對偶地址空間只寫(xiě)。這樣就避免了DSP和單片機對雙口RAM同一地址單元的寫(xiě)入操作。另外,在對雙口RAM進(jìn)行訪(fǎng)問(wèn)之前,單片機和DSP首先對本端的BUSY信號進(jìn)行查詢(xún),只有本端/BUSY信號無(wú)效時(shí)才進(jìn)行讀寫(xiě)操作,進(jìn)一步保證了數據讀寫(xiě)的可靠性。
通過(guò)串口實(shí)現
VC5402多通道緩沖串行口(McBSP)主要特點(diǎn):雙緩沖區發(fā)送,三緩沖區接收以便數據的連續性;接收與發(fā)送的幀同步、時(shí)鐘信號獨立;多通道發(fā)送和接收,最多可以到達128個(gè)通道;數據大小可為8,12,16,20,24和32b;μ率和A率壓縮;幀同步、數據時(shí)鐘極性可編程;內部時(shí)鐘和幀同步可自行設定。
VC5402串口通過(guò)16b寬度的控制寄存器與內部總線(xiàn)通信。
數據接收過(guò)程:數據從輸入引腳(DR)移位到接收移位寄存器(RSR),然后拷貝數據到接收緩沖寄存器(RBR),接著(zhù)把數據拷貝到數據接收寄存器(DRR),CPU或者DMA控制器讀取DRR。
數據輸出過(guò)程:CPU或者DMA把數據寫(xiě)到數據傳輸寄存器(DXR),再通過(guò)寄存器(XSR)移位到數據輸出引腳DX6。
對串口寄存器的訪(fǎng)問(wèn)是間接尋址方式,例如要對McBSP數據寄存器進(jìn)行訪(fǎng)問(wèn),首先寫(xiě)串口控制寄存器SPCR子地址到子地址寄存器SPSA,然后對數據寄存器進(jìn)行訪(fǎng)問(wèn)。硬件連接如圖2所示。
圖2 通過(guò)McBSP實(shí)現的硬件連接
McBSP的位時(shí)鐘由內部采樣率發(fā)生器產(chǎn)生,為UART波特率×16。
在軟件的設計中McBSP的16位代表UART的1位。發(fā)送時(shí),軟件將UART的每一位擴展為16位,再由McBSP發(fā)送。接收時(shí),軟件將McBSP接收的16位壓縮為UART的1位,并進(jìn)行合并。軟件還應負責處理UART的起始位、奇偶校驗位和停止位。
通過(guò)HPI和電平轉換器件實(shí)現
DSP芯片中的HPI(主機接口)是為了滿(mǎn)足DSP與其他的微處理器接口而專(zhuān)門(mén)設計的。他分為HPI—8和HPI1—6,分別針對具有8位和16位數據線(xiàn)的單片機。每一種又分為標準型和增強型,區別在于標準型只可以訪(fǎng)問(wèn)固定的地址空間,而增強型可以訪(fǎng)問(wèn)整個(gè)DSP的片內存儲器。利用C5402的增強型8位并行主機接口(HPI)與單片機通信。
VC5402DSP的外部I/P引腳用的是3.3V的邏輯電平,而大部分51單片機用的是5V的邏輯電平。前者輸出高電平,最小值為2.4V;后者輸入高電平,最小值為2.0V。所以前者的輸出可以直接接到后者的輸入。但是前者允許輸入高電平最大值為3.6V,而后者的輸出高電平一般都在4.6V以上。所以前者的輸入和后者的輸出不能直接連接,需要做電平轉換。如果引腳數量少,可以直接用三極管電阻來(lái)轉換。這里由于引腳較多,所以選用TI74LVC16245A芯片來(lái)進(jìn)行電平轉換。硬件電路如圖3所示。
圖3 通過(guò)電平轉換芯片實(shí)現
HPI的數據傳輸分為2部分:外部傳輸和內部傳輸。外部傳輸是指主機和HPI寄存器之間的傳輸,由主機發(fā)出指令完成。內部傳輸是指HPI寄存器和DSP內部RAM之間的傳輸,由DSP內部的DMA控制器自動(dòng)完成。主機在進(jìn)行外部傳輸時(shí),要先檢查內部傳輸是否完成,這是通過(guò)檢測HRDY信號實(shí)現的。外部傳輸操作的一般步驟是:檢查HRDY信號的電平。為高,表示可以進(jìn)行傳輸;為低,表示DSP正在進(jìn)行內部傳輸,此時(shí)不能進(jìn)行外部傳輸。主機發(fā)出指令,設置HCNTL0,HCNTL1,BHIL,HR?W信號的狀態(tài),以確定讀或寫(xiě)的寄存器以及字節的選擇。主機發(fā)出時(shí)序控制信號,按時(shí)序進(jìn)行操作,從而完成一次外部傳輸。
結語(yǔ)
雙口RAM實(shí)現VC5402和89C51之間的數據通信,極大地提高了數據傳輸速度和可靠性,能滿(mǎn)足控制系統的實(shí)時(shí)、高速的控制要求。
利用McBSP的方法,硬件結構簡(jiǎn)單所用芯片少,但是將占用片上系統中為數不多的同步串行口資源,而且也要占用DSP的處理時(shí)間,他是用于傳輸數據較少,傳輸速率慢而又希望DSP與單片機之間是緊耦合的場(chǎng)合。
HPI方案比較簡(jiǎn)單,附加硬件少、成本低、數據吞吐量非常大,但不適合于實(shí)時(shí)控制的場(chǎng)合,因為工作中可能將DSP掛起,影響實(shí)時(shí)工作。而一般應用在對成本比較敏感而數據量又比較大的場(chǎng)合。讀者可以根據系統要求選取合適的方案。
評論