摘 要: 介紹了采用title="TMS320C31">TMS320C31和80C196雙CPU構(gòu)成的高速實時控制系統(tǒng)的基本構(gòu)成,,給出了TMS320C31,、80C196與雙口RAM IDT7140之間的接口電路,IDT公司雙口RAM系列的中斷邏輯設(shè)計以及DSP與80C196之間采用雙口RAM進行高速數(shù)據(jù)通信的軟件實現(xiàn),。該控制系統(tǒng)可應(yīng)用于對實時性要求很高的系統(tǒng)中,。
關(guān)鍵詞: DSP 雙口RAM 高速實時 中斷
DSP也稱數(shù)字信號處理器。TMS320C31是TI公司的第三代DSP芯片,,它的基本結(jié)構(gòu)包括:(1)程序空間與數(shù)據(jù)空間分開的總線結(jié)構(gòu),,可以對程序存儲器和數(shù)據(jù)存儲器這兩個獨立的存儲器進行獨立編址、獨立訪問;(2)流水線結(jié)構(gòu),,以三級流水線操作為例,,在每個指令周期內(nèi),三條不同的指令都處于激活狀態(tài),,但處于不同的階段,,分別為取指、譯碼和執(zhí)行;(3)專用的硬件乘法器,,使乘法可以在單周期內(nèi)完成;(4)特殊的DSP指令;(5)快速的指令周期,,可以達到33.3ns,即每秒能執(zhí)行60M條指令,。
由一片TMS320C31加上存儲器,、模/數(shù)轉(zhuǎn)換單元和外設(shè)接口就可以構(gòu)成一個完整的控制系統(tǒng),但這種方案若要達到高速實時控制則是不可行的,。因為TMS320C31除了要完成復(fù)雜的算法,,還要采集處理數(shù)據(jù)、控制外部系統(tǒng)中的執(zhí)行機構(gòu)和實現(xiàn)人機接口等功能,,而這些工作勢必會大大延長系統(tǒng)對控制對象進行控制的周期,。所以我們采用TMS320C31和一個通用微處理器80C196一起來作為這個高速實時控制系統(tǒng)的CPU。其中80C196作為主機,,負(fù)責(zé)數(shù)據(jù)的采集處理,、外部系統(tǒng)中執(zhí)行機構(gòu)的控制和驅(qū)動以及人機接口等功能;TMS320C31作為從機,負(fù)責(zé)復(fù)雜算法的實現(xiàn),。這樣可以使TMS320C31專注于算法的計算,,充分利用它高速數(shù)據(jù)處理的能力。TMS320C31與80C196之間通過雙口RAM進行高速數(shù)據(jù)通信,,之所以采用雙口RAM是因為這種通信方式數(shù)據(jù)傳輸?shù)乃俾屎芨?,并且抗干擾性能較好。
1 系統(tǒng)構(gòu)成
系統(tǒng)主要由兩大模塊組成:算法模塊和輸入輸出控制模塊,。算法模塊以TMS320C31為核心構(gòu)成,,是整個系統(tǒng)的計算中心,負(fù)責(zé)復(fù)雜算法的實現(xiàn);輸入輸出控制模塊以80C196為中心構(gòu)成,,負(fù)責(zé)數(shù)據(jù)的采集處理,、外部系統(tǒng)中執(zhí)行機構(gòu)的控制和驅(qū)動以及人機接口等功能。算法模塊與輸入輸出控制模塊之間通過雙口RAM IDT7140進行高速數(shù)據(jù)通信,。算法模塊從輸入輸出控制模塊處獲得算法所需的輸入數(shù)據(jù)(即實時采樣到的數(shù)據(jù)),,然后將計算結(jié)果送給輸入輸出控制模塊,最后再由輸入輸出控制模塊控制各執(zhí)行機構(gòu),。
2 TMS320C31,、80C196與雙口RAM IDT7140之間的接口電路
如圖1所示,IDT7140有兩組完全對稱的地址線,、數(shù)據(jù)線和控制線,,TMS320C31與左邊這組線相連,80C196與右邊的那組線相連,。TMS320C31給IDT7140分配的地址空間為0x100000H~0x1003ffH,。通過GAL16V8對 A[20,23]和外部存取選通信號/STRB進行譯碼,,給出IDT7140的片選信號/CEL,。IDT7140通過/BUSYL和/BUSYR引腳接高電平,工作在中斷方式,。IDT7140的中斷信號/INTL可以與TMS320C31的某個外部中斷引腳直接相連(這里將外部中斷1即INT1分配給雙口RAM IDT7140),,具體原因?qū)⒃诘?部分進行說明。80C196給IDT7140分配的地址空間為0xA000H~0xA3ffH,。通過GAL16V8對 AD[12,,15]和外部存儲器讀信號/RD進行譯碼,給出IDT7140的片選信號/CER,。因為80C196的/WE在寫周期為低電平,,讀周期為高電平,與IDT7140的R/WR定義一致,,所以/WE可直接與R/WR相連,,作為IDT7140右邊的讀寫控制信號,。IDT7140的中斷引腳/INTR接到80C196的外部中斷。
3 雙口RAM IDT7130/40的中斷邏輯設(shè)計
雙口RAM必須采用一定的機制來協(xié)調(diào)左右兩邊CPU對它的讀寫操作,。IDT公司的雙口RAM系列用中斷,、硬件、令牌和軟件這四種方式來協(xié)調(diào)雙方,。在TMS320C31和80C196雙CPU構(gòu)成的高速實時控制系統(tǒng)中,,IDT7140采用的是中斷方式。下面介紹IDT雙口RAM系列的中斷邏輯設(shè)計,。
如圖2所示,,IDT雙口RAM的中斷邏輯實際上是由與非門組成的兩個基本RS觸發(fā)器所構(gòu)成。在所有的IDT雙口RAM芯片中,,內(nèi)存的最高兩個單元被用作為 左右兩邊CPU的中斷信箱,。以1K雙口RAM為例,這兩個單元為3FEH和3FFH,。其中3FEH為左邊CPU的中斷信箱,,3FFH為右邊CPU的中斷信箱。各CPU只能讀自己的中斷信箱,,寫對方的中斷信箱;而不能寫自己的中斷信箱,,讀對方的中斷信箱。當(dāng)左邊CPU向右邊CPU的中斷信箱3FFH單元寫入數(shù)據(jù)時,,圖2中/WR置0,,則IRn+1置1,指向右邊CPU的中斷信號有效;當(dāng)右邊CPU從自己的中斷信箱3FFH單元讀數(shù)據(jù)時,,圖2中/RR置0,,則IRn+1置0,指向右邊CPU的中斷信號被清除,。同樣地 ,,右邊CPU對左邊CPU中斷信號的設(shè)置和清除也是如此,只不過是把上面的3FFH單元換為3FEH單元,。其真值表如表1所示,。
從圖2和表1中不難看出,指向右邊CPU的中斷信號從被置為低電平那一刻起一直有效至右邊CPU來讀3FFH單元,。TMS320C31要求一個外部中斷必須至少持續(xù)一個H1周期保持為低電平,,以便讓TMS320C31來確認(rèn)。如果外部中斷信號在一到三個H1周期之內(nèi)保持為低,,那么只有一個中斷被確認(rèn);如果在三個或更多個周期內(nèi)保持為低,,則可以確認(rèn)多于一個中斷。所以IDT7140提供的中斷信號的有效時間可以滿足TMS320C31的要求,,這樣IDT7140的/INTL引腳就可以和TMS320C31的/INT1直接相連,。但與此同時也要求TMS320C31盡快地服務(wù)IDT7140的中斷申請,,以免一個中斷申請被誤認(rèn)為多個中斷申請。
4 TMS320C31與80C196之間采用雙口RAM進行高速數(shù)據(jù)通信的軟件實現(xiàn)
從圖2中我們得知,,左邊CPU寫右邊CPU的中斷信箱3FFH單元時,,雙口RAM會給右邊CPU發(fā)一中斷信號;同樣,右邊CPU在寫左邊CPU的中斷信箱3FEH單元時,,雙口RAM也會給左邊CPU發(fā)一中斷信號。以左邊的TMS320C31為例,,在它獲得外部中斷信號INT1后,,它并不知道右邊的80C196是剛開始占用雙口RAM還是用完了要釋放使用權(quán),或是其它別的意思,。所以雙方事先應(yīng)有一個簡單的協(xié)議,,例如右邊CPU在3FEH單元中(或左邊CPU在3FFH單元中)寫“FFH”代表右(左)邊正占用雙口RAM,寫“11H”代表要釋放使用權(quán),,或者還可以有更多的數(shù)據(jù)含義的定義,,視兩邊CPU通信內(nèi)容的復(fù)雜程度而定。例如在這個高速實時控制系統(tǒng)中,,還定義了“88H”和“55H”來表示其它的含義,。這樣,在中斷服務(wù)程序里,,就可以做相應(yīng)的操作,。下面以TMS320C31為例來說明數(shù)據(jù)通信的軟件實現(xiàn),程序流程如圖3和圖4所示,。
隨著各種復(fù)雜算法的應(yīng)用越來越廣泛,,DSP的應(yīng)用也會越來越普及,各種不同的多CPU系統(tǒng)不斷涌現(xiàn),。在這些系統(tǒng)中,,雙口RAM以它方便、快速的特點將成為很多多CPU系統(tǒng)中的通信途徑,。
參考文獻
1 TMS320C3X User’s Guide. Texas Instruments,,1991
2 張雄偉. DSP芯片的原理與開發(fā)應(yīng)用.北京:電子工業(yè)出版社,1997
3 David C. Wyland.DUAL-PORT SRAMs SIMPLIFY COMMUNICATION IN COMPUTER SYSTEMS.WWW.IDT.COM
4 李小青.雙口RAM在多CPU計算機測控系統(tǒng)中的應(yīng)用.微計算機信息,,1999,;15(1):54~56