DSP與單片機高速通信實(shí)現的方案
下面討論一下89C52對雙口RAM的讀寫(xiě)過(guò)程。當89C52對雙口RAM進(jìn)行讀數據時(shí),由圖3可知此時(shí)A0應為低電平,不妨假設地址為0x1000h,則存儲在雙口RAM中該地址處的16位數據同時(shí)被讀出,由于高8位數據線(xiàn)與89C52的8位數據線(xiàn)直接相連,所以高8位數據被立即讀入89C52中。同時(shí),根據圖3中各信號的相互邏輯關(guān)系不難判斷,U3的使能信號LE有效(高電平),OE無(wú)效(低電平),因而低8位數據被送入U3中鎖存起來(lái)。接著(zhù)89C52再進(jìn)行一次讀操作,這時(shí)地址變?yōu)?x1001h,由于A(yíng)0變成高電平,雙口RAM的讀使能信號變成無(wú)效電平,所以此次讀操作對雙口RAM不產(chǎn)生影響。再來(lái)看U3的使能信號LE和OE的變化情況,顯然LE變成了無(wú)效電平,而OE變成了有效電平,上次被鎖存的數據(即雙口RAM的低8位數據)被送入89C52。當89C52對雙口RAM進(jìn)行寫(xiě)入操作時(shí),注意此時(shí)A0應為高電平,不妨假設地址為0x100Ch,同樣可根據圖3判斷U2的使能信號LE和OE均為有效電平,因而數據被同時(shí)寫(xiě)入雙口RAM中(即此時(shí)雙口RAM的高8位數據和低8位相同);接著(zhù)89C52再進(jìn)行一次寫(xiě)操作,此時(shí)地址變?yōu)?x100Dh,由于A(yíng)0變成低電平,U2的片選為無(wú)效電平,U2被封鎖,數據寫(xiě)入雙口RAM的高8位。從上面的分析可知,利用最低地址位A0的不同電平,89C52通過(guò)兩次連續的讀或寫(xiě)操作,成功地實(shí)現了對雙口RAM中數據的讀或寫(xiě),只不過(guò)是讀入時(shí)是先讀入高8位,后讀入低8位;而寫(xiě)入則是先寫(xiě)入低8位,后寫(xiě)入高8位。
雙口RAM必須采用一定的機制來(lái)協(xié)調左右兩邊CPU對它的讀寫(xiě)操作,否則會(huì )出現讀寫(xiě)數據的錯誤。通??梢杂弥袛?、硬件、令牌和軟件這四種方式來(lái)協(xié)調雙方,本文采用的是軟件方式。從上面的分析中我們可以得知,在接口電路中實(shí)際上已經(jīng)利用89C52的最低地址位A0把雙口RAM的存儲空間分為奇、偶地址兩個(gè)空間。其中,奇地址空間專(zhuān)供89C52寫(xiě),偶地址空間專(zhuān)供89C52讀。那么我們只需對TMS320C32的軟件作相應處理即可,也就是說(shuō),TMS320C32對雙口RAM的奇地址空間只讀,對偶地址空間只寫(xiě)。這樣就避免了TMS320C32和89C52對雙口RAM同一地址單元的寫(xiě)入操作。另外,在對雙口RAM進(jìn)行訪(fǎng)問(wèn)之前,CPU首先對本端的BUSY信號進(jìn)行查詢(xún),只有本端/BUSY信號無(wú)效時(shí)才進(jìn)行讀寫(xiě)操作,進(jìn)一步保證了數據讀寫(xiě)的可靠性。
5結束語(yǔ)
通過(guò)雙口RAM實(shí)現雙CPU之間的數據通信,極大地提高了數據傳輸速度和可靠性,滿(mǎn)足了控制系統的實(shí)時(shí)、高速的控制要求。本文所設計的89C52與雙口RAM之間的接口電路簡(jiǎn)單實(shí)用,成功解決了它們總線(xiàn)匹配的問(wèn)題,對其他類(lèi)似需要總線(xiàn)擴展的系統也有一定的參考價(jià)值。
評論