趙 靜
[摘要]介紹一種利用DRAM實(shí)現(xiàn)數(shù)字信號(hào)處理器與單片機(jī)高速數(shù)據(jù)通信的方法,給出它們之間的接口電路以及軟件實(shí)現(xiàn)方案。
[關(guān)鍵詞]數(shù)字信號(hào)處理器DRAM接口電路數(shù)據(jù)通信
中圖分類號(hào):TN91文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1671-7597(2009)1220010-01
一、引言
DSP芯片,也稱數(shù)字信號(hào)處理器,是一種特別適合于進(jìn)行數(shù)字信號(hào)處理運(yùn)算的微處理器具,其主要應(yīng)用是實(shí)時(shí)快速地實(shí)現(xiàn)各種數(shù)字信號(hào)處理算法。根據(jù)數(shù)字信號(hào)處理的要求,DSP芯片一般具有如下主要特點(diǎn):(1)在一個(gè)指令周期內(nèi)可完成一次乘法和一次加法;(2)程序和數(shù)據(jù)空間分開,可以同時(shí)ac訪問指令和數(shù)據(jù);(3)片內(nèi)具有快速RAM,通常可通過獨(dú)立的數(shù)據(jù)總線在兩塊中同時(shí)訪問;(4)具有低開銷或無開銷循環(huán)及跳轉(zhuǎn)的硬件支持;(5)快速的中斷處理和硬件I/O支持;(6)具有在單周期內(nèi)操作的多個(gè)硬件地址產(chǎn)生器;(7)可以并行執(zhí)行多個(gè)操作;(8)支持流水線操作,使取指、譯碼和執(zhí)行等操作可以重疊執(zhí)行。由一片DSP加上存儲(chǔ)器、模/數(shù)轉(zhuǎn)換單元和外設(shè)接口就可以構(gòu)成一個(gè)完整的控制系統(tǒng),但這種方案要達(dá)到高速實(shí)時(shí)控制是不可行的。因?yàn)橐粋€(gè)實(shí)時(shí)控制系統(tǒng)一般需要完成數(shù)據(jù)采集、模/數(shù)轉(zhuǎn)換、分析計(jì)算、數(shù)/模轉(zhuǎn)換、實(shí)時(shí)過程控制以及顯示等任務(wù),單靠一片DSP來完成這些工作勢(shì)必會(huì)大大延長(zhǎng)系統(tǒng)對(duì)控制對(duì)象的控制周期,從而影響整個(gè)系統(tǒng)的性能。所以我們添加一個(gè)CPU,負(fù)責(zé)數(shù)據(jù)采集、模/數(shù)轉(zhuǎn)換、過程控制以及人機(jī)接口等任務(wù),使DSP專注于系統(tǒng)控制算法的實(shí)現(xiàn),充分利用它的高速數(shù)據(jù)處理能力。從性能價(jià)格比的角度出發(fā),這個(gè)CPU采用8位的51系列單片機(jī)。這時(shí),兩個(gè)CPU之間的數(shù)據(jù)共享就成了一個(gè)重要的問題。
采用雙口RAM(簡(jiǎn)稱DRAM)是解決CPU之間的數(shù)據(jù)共享的有效辦法。與串行通信相比,采用雙口RAM不僅數(shù)據(jù)傳輸速度高,而且抗干擾性能好。筆者選用了TI公司的第三代DSP芯片TMS320C32和51系列單片機(jī)89C52作為控制系統(tǒng)的CPU。兩個(gè)CPU之間通過雙口RAM CY7C133完成數(shù)據(jù)交換。但在實(shí)際使用過程中遇到了89C52與雙口RAM總線寬度不匹配的問題,需要進(jìn)行接口電路的設(shè)計(jì)。
二、雙口DRAM CY7C133的內(nèi)部結(jié)構(gòu)和功能
DRAM即動(dòng)態(tài)隨機(jī)存儲(chǔ)器最為常見的系統(tǒng)內(nèi)存。DRAM只能將數(shù)據(jù)保持很短的時(shí)間。為了保持?jǐn)?shù)據(jù),DRAM使用電容存儲(chǔ),所以必須隔一段時(shí)間刷新(refresh)一次,如果存儲(chǔ)單元沒有被刷新,存儲(chǔ)的信息就會(huì)丟失(關(guān)機(jī)就會(huì)丟失數(shù)據(jù))。
CY7C133是CYPRESS公司研制的高速2K×16CMOS雙端口靜態(tài)RAM,具有兩套相互獨(dú)立、完全對(duì)稱的地址總線、數(shù)據(jù)總線和控制總線,采用68腳PLCC封裝形式,最大訪問時(shí)間可以為25/35/55ns。采用主從模式可以方便地將數(shù)據(jù)總線擴(kuò)展成32位或更寬。
CY7C133允許兩個(gè)CPU同時(shí)讀取任何存儲(chǔ)單元(包括同時(shí)讀同一地址單元),但不允許同時(shí)寫或一讀一寫同一地址單元,否則就會(huì)發(fā)生錯(cuò)誤。DRAM中引入了仲裁邏輯(忙邏輯)電路來解決這個(gè)問題:當(dāng)左右兩端口同時(shí)寫入或一讀一寫同一地址單元時(shí),先穩(wěn)定的地址端口通過仲裁邏輯電路優(yōu)先讀寫,同時(shí)內(nèi)部電路使另一個(gè)端口的信號(hào)有效,并在內(nèi)部禁止對(duì)方訪問,直到本端口操作結(jié)束。BUSY信號(hào)可以作為中斷源指明本次操作非法。在主從模式中,主芯片的信號(hào)接上拉電阻作為輸出,從芯片的信號(hào)作為寫禁止輸入。
三、DSP、單片機(jī)與DRAM之間的接口電路
89C52的地址總線寬度為16位,數(shù)據(jù)總線為8位;TMS320C32的數(shù)據(jù)總線寬度為32位,地址總線寬度為24位。而CY7C133的數(shù)據(jù)總線寬度為16位,地址總線寬度為11位,所以TMS320C32與雙口RAM的接口并無特別之處,但是89C52與雙口RAM之間的接口電路中就需要對(duì)89C52進(jìn)行總線擴(kuò)展了。具體做法是利用鎖存器74HC373的鎖存功能,通過對(duì)其使能信號(hào)的控制,進(jìn)行分時(shí)讀寫,實(shí)現(xiàn)數(shù)據(jù)總線的擴(kuò)展,即利用鎖存器作為虛擬總線。具體的讀寫過程、讀寫信號(hào)及鎖存器使能信號(hào)的產(chǎn)生將在下面詳細(xì)說明。
TMS320C32分配給雙口RAM的地址空間為0x800000h~0x8007FFh。通過三八譯碼器74HC138對(duì)A20~A23和STRB進(jìn)行譯碼,給出雙口RAM的片選信號(hào)CER。89C52分配給雙口RAM的地址空間為0x1000h~0x1FFFh。通過二四譯碼器74HC139對(duì)A13~A15進(jìn)行譯碼產(chǎn)生雙口RAM的片選信號(hào)CEL。雙口RAM每邊都有兩個(gè)讀/寫控制信號(hào),分別控制高位字節(jié)和低位字節(jié)的讀/寫,在使用時(shí)可以根據(jù)需要分別對(duì)數(shù)據(jù)的高位和低位進(jìn)行寫入操作。接口電路中,兩邊的兩個(gè)讀/寫控制信號(hào)分別被連接在一起,也就是說此時(shí)雙口RAM的讀寫都是同時(shí)讀寫16位數(shù)據(jù)。
四、軟件實(shí)現(xiàn)方案
DRAM必須采用一定的機(jī)制來協(xié)調(diào)左右兩邊CPU對(duì)它的讀寫操作,否則會(huì)出現(xiàn)讀寫數(shù)據(jù)的錯(cuò)誤。通??梢杂弥袛?、硬件、令牌和軟件這四種方式來協(xié)調(diào)雙方,本文采用的是軟件方式。從上面的分析中我們可以得知,在接口電路中實(shí)際上已經(jīng)利用89C52的最低地址位A0把雙口RAM的存儲(chǔ)空間分為奇、偶地址兩個(gè)空間。其中,奇地址空間專供89C52寫,偶地址空間專供89C52讀。那么我們只需對(duì)TMS320C32的軟件作相應(yīng)處理即可,也就是說,TMS320C32對(duì)雙口RAM的奇地址空間只讀,對(duì)偶地址空間只寫。這樣就避免了TMS320C32和89C52對(duì)雙口RAM同一地址單元的寫入操作。另外,在對(duì)雙口RAM進(jìn)行訪問之前,CPU首先對(duì)本端的BUSY信號(hào)進(jìn)行查詢,只有本端/BUSY信號(hào)無效時(shí)才進(jìn)行讀寫操作,進(jìn)一步保證了數(shù)據(jù)讀寫的可靠性。
五、結(jié)束語
通過DRAM實(shí)現(xiàn)雙CPU之間的數(shù)據(jù)通信,極大地提高了數(shù)據(jù)傳輸速度和可靠性,滿足了控制系統(tǒng)的實(shí)時(shí)、高速的控制要求。本文所設(shè)計(jì)的89C52與DRAM之間的接口電路簡(jiǎn)單實(shí)用,成功解決了它們總線匹配的問題,對(duì)其他類似需要總線擴(kuò)展的系統(tǒng)也有一定的參考價(jià)值。
參考文獻(xiàn):
[1]李剛,TMS320F206DSP結(jié)構(gòu)、原理及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2002.
[2]朱銘鋯、趙勇、甘泉,DSP應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2002.
作者簡(jiǎn)介:
趙靜(1982-),女,山東淄博人,淄博職業(yè)學(xué)院教師,主要研究方向:單片機(jī)原理、微機(jī)原理與接口技術(shù)、自動(dòng)控制等。