TMS320C54x與80386EX接口技術(shù)
摘要:以TI公司的TMS320C575為例,討論C54x DSP的主機接口與Intel 80386Ex處理器的連接技術(shù),及軟件設(shè)計中的注意事項。
本文引用地址:http://cafeforensic.com/article/241605.htm關(guān)鍵詞:MTS320C54x 主機接口(HPI) 80386EX
現(xiàn)代電子技術(shù)的發(fā)展方向是嵌入式系統(tǒng)。傳統(tǒng)的嵌入式系統(tǒng)是基于單片機的,而新一代的嵌入式系統(tǒng)將是以IP核(Intellectual Property Kernel知識產(chǎn)權(quán)核)模塊為核心,用混合ASIC/MPU/FPGA/DSP生成的硅片直接構(gòu)成的單片嵌入式產(chǎn)品。在嵌入式系統(tǒng)設(shè)計中,特別是智能電子系統(tǒng)以及系統(tǒng)集成設(shè)計中,MPU、CPLD/FPGA以及DSP起著重要的核心作用;而以DSP和80x86為核心的電子系統(tǒng)則是一種典型的嵌入式系統(tǒng)。以下討論這兩種處理器的連接技術(shù)。
1 主機接口386EX
C54x片內(nèi)都有一個主機接口(HPI)。HPI是一個并行口,用來與主設(shè)備或主處理器接口。外部主機是HPI的主控者,可以通過HPI直接訪問CPU的存儲空間,包括存儲器映像寄存器。
HPI主要由5個部分組成:
*HPI存儲器(DARAM)。HPI的RAM主要用于C54x與主機之間傳送數(shù)據(jù),也可以用作通用雙尋址數(shù)據(jù)RAM或程序RAM。
*HPI地址寄存器(HPIA)。它只能由主機對其直接訪問。寄存器中存放當(dāng)前尋址HPI存儲單元的地址。
*HPI數(shù)據(jù)鎖存器(HPID)。它也只能由主機對其直接訪問。如果當(dāng)前進行的是讀操作,則HPID中存放的是要從HPI在座器中讀出的數(shù)據(jù);如果當(dāng)前進行的是寫操作,則HPID中存放的是將要寫到HPI存儲器的數(shù)據(jù)。
*HPI控制寄存器(HPIC)。C54x和主機都能對其直接訪問,它映像在C54x數(shù)據(jù)存儲器地址的002CH處。
*HPI控制邏輯。用于處理HPI與主機之間的接口信號。
HPI有兩種工作方式:
*共用尋址方式(SAM)。這是常用的操作方式。在SAM方式下,主機和C54x都能尋址HPI存儲器,異步工作的主機的尋址可以在HPI內(nèi)部重新得到同步。如C54x與主機的時候周期發(fā)生沖突,則主機具有尋址優(yōu)先權(quán),C54x等待一個周期。
*僅主機尋址方式(HOM)。在HOM方式下,只能讓主機尋址HPI存儲器,C54x則處于復(fù)位狀態(tài)或者處在所有內(nèi)部和外部時鐘都停止工作的IDLE2空閑狀態(tài)(最小功耗狀態(tài))。
HPI支持主設(shè)備與C54x之間的高速數(shù)據(jù)傳送。在SAM工作方式,若HPI每5個CLKOUT周期傳送一個字節(jié)(即64 Mb/s),那么主機的運行頻率可達(dá)(fd·n)/5。其中fd是C54x的CLKOUT頻率;n是主機每進行一次外部尋址的周期數(shù),通常n為4(或3)。若C54x的CLKOUT頻率為40MHz,那么,主機的時鐘頻率可達(dá)32(或24)MHz,且不需插入等待周期。而在HOM方式,主機可以更快的速度——每50ns尋址一個字節(jié)(即160Mb/s),且與C54x的時鐘速率無關(guān)。
Intel 386EX微處理器是一個優(yōu)化的、用于嵌入式應(yīng)用的全靜態(tài)的32位處理器。其特點是功耗低、工作電壓低,集成了許多通常使用的DOS類型外圍芯片,并且與擁有大量軟件基礎(chǔ)的32位編程結(jié)構(gòu)的Intel 386處理器兼容。
2 主機接口與386EX的連接
圖1為TMS320C57S HPI與80386EX主機連接的接口電路圖。由圖1可見,C54x通過HPI與主設(shè)備相連時,除了8位HPI數(shù)據(jù)總線以及控制信號線外,不需要附加其它的邏輯電路。
C57S HPI是一個8位的并行端口,可以用其將16位字結(jié)構(gòu)的C54x DSP與主機相連,因而主機必須讀/寫兩個連續(xù)的8位字節(jié)。386EX有一個BS8引腳,可用來指示所連接設(shè)備是一個8位的外部設(shè)備。當(dāng)該引腳為低電平時,就可以通過D7:D0讀/寫2個連續(xù)的8位字節(jié)達(dá)到操作16位外設(shè)的目的。
從386EX的可尋址空間可以看出,只需兩根地址線(A2、A1)便可尋址到HPI端口:控制寄存器、地址寄存器和數(shù)據(jù)寄存器。386EX有一個內(nèi)部譯碼器CS0,可將外部設(shè)備譯碼至可尋址范圍。當(dāng)然,也可將HPI端口映射至386EX的I/O地址空間。
386EX的外部時鐘頻率(CLK2)為50 MHz,內(nèi)部經(jīng)2分頻后,CPU頻率可達(dá)25MHz(40ns)。386EX的一個讀/寫周期為80ns;而DSP在HOM模式下的運行頻率為2個時鐘周期,SAM模式下為5個時鐘周期。因此,當(dāng)外部時鐘頻率為80MHz(40MHz/25ns)時,其存取時間分別為50ns和125ns。對于SAM模式,386EX必須使用READY信號來插入一個等待狀態(tài)(一個等待周期為40ns)。
3 軟件設(shè)計
(1)存取DSP的數(shù)據(jù)
由于主機接口總是傳送8位數(shù)據(jù)字節(jié),而HPIC寄存器(通常是主機首先要尋址的寄存器)又是一個16位寄存器,在主機這一邊就可以相同內(nèi)容的高字節(jié)與低字節(jié)來管理HPIC寄存器(盡管某些位的尋址受到一定的限制),而在C54x這一邊高位是不用的。
當(dāng)主機開始存取DSP的數(shù)據(jù)時,首先要執(zhí)行以下兩步操作:
*將HPIC寄存器的BOB位置1(高字節(jié)與低字節(jié)必須相同)。
BOB位為字節(jié)選擇位。BOB位置為1,表示第一個字節(jié)為低字節(jié)。BOB位影響數(shù)據(jù)和地址的傳送。只有主機可以修改這一位,C54x對它既不能讀也不能寫。
*將地址寫入HPIA寄存器。
此后即可正常存取DSP的數(shù)據(jù)了。
當(dāng)DSP處于復(fù)位狀態(tài)時,HPI自動設(shè)置為HOM模式。此時主機可以靈活地控制DSP的復(fù)位信號(RS)。如果想使DSP處于省電方式,還應(yīng)當(dāng)控制其時鐘信號(圖1中未顯示這些功能)。C54x與主機在同一時鐘周期訪問存儲器時,主機的優(yōu)先級要高。
(2)HPI自舉加載
如果選擇HPI自舉方式,應(yīng)將HINT與INT3引腳連在一起。當(dāng)HINT為低電平時,C54x的中斷標(biāo)志寄存器(IFR)的相應(yīng)位(bit2)置位。INT3發(fā)出之后,自舉加載程序等待20個機器周期后讀出IFR的相應(yīng)位(bit2)置位。INT3發(fā)出之后,自舉加載程序等待20個機器周期后讀出IFR的bit2。若此位被置位(表示INT3被識別),自舉加載程序就轉(zhuǎn)換到片內(nèi)HPI RAM的起始地址——程序空間的8800H,并從這個地址起執(zhí)行程序。
(3)HPI存儲器
C54x的HPI存儲器是一個2K×16位的DARAM。它在數(shù)據(jù)存儲空間的地址為1000H~17FFH(這一存儲空間也可以用作程序存儲空間,條件是PMST寄存器的OVLY位被置位)。
從接口的主機方便看,是很容易尋址2K字的HPI存儲器的。由于HPIA寄存器是16位,由它指向2K字空間,因此主機對它尋址是很方便的,地址為0~7FFH。
HPI存儲器地址的自動增量特性,可以用來連續(xù)尋址HPI存儲器。在自動增量方式,每進行驪次讀操作,都會使HPIA事后增1;每進行一次寫操作,都會使HPIA事前減1。HPIA寄存器是一個16位寄存器,它的每一位都可以讀出和寫入,盡管尋址2K字的HPI存儲器只要11位最低有效位地址。HPIA的增/減對HPIA寄存器所有16位都會產(chǎn)生影響。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論