1 引言
典型的微控制器(MCS51系列,MCS98系列,M68000系列,PIC系列等)片的內(nèi)部都集成了少量的RAM、ROM及計數(shù)器,具有有限的 I/O能力,這在構(gòu)成一般小型應(yīng)用系統(tǒng)時,或許可以滿足開發(fā)者的需求。但對于大型的單片機應(yīng)用系統(tǒng),僅單片機內(nèi)的這一點資源是遠遠不夠的。為了擴展單片機系統(tǒng),設(shè)計者不得不外加EPROM、RAM、IO端口、存儲器空間譯碼邏輯和各類外圍芯片片選譯碼邏輯。因此,設(shè)計者就必須根據(jù)需求加入各類芯片,并在電路設(shè)計完成以后就不能再更改電路。1990年美國的WSI公司引入了可編程系統(tǒng)器件PSD(Pro-grammable System Device),PSD是世界上第一個把EPROM、SRAM、可編程邏輯器件(PLD)以及眾多IO端口集成到一塊硅片上的芯片。WSI公司免費提供集成開發(fā)環(huán)境PSDsoft,在這個環(huán)境下設(shè)計者可以自己運用軟件進行單片機外圍電路的設(shè)計,在完成設(shè)計并通過仿真以后,可以編程且配置到一片PSD器件上。因此PSD器件易于使用,又可以大大減少元件數(shù)、功耗和電路板空間,從而相對顯著地降低了系統(tǒng)的成本,提高了系統(tǒng)的可靠性。
2 芯片結(jié)構(gòu)及功能簡介
PSD器件有多個系列,主要包括2XX、3XX、4XX、5XX、8XX、9XX及目前最新推出的4000系列,其中在國內(nèi)應(yīng)用較多的為3XX系列。
2.1 典型的PSD3XX系列芯片邏輯結(jié)構(gòu)和主要特征
典型的PSD3XX系列芯片邏輯結(jié)構(gòu)見圖1,其主要特征有:
·數(shù)據(jù)總線可以配置為8位或16位,地址總線最多可以有20位,支持絕大多數(shù)的MCU。
·256kb至1Mb EPROM,可以配置為8位或16位方式。為了優(yōu)化地址譯碼,EPROM分為8個相同大小的塊,由內(nèi)部地址譯碼邏輯PAD A輸出(ES0-ES7)進行選擇,通過對PAD A的編程可以把每一塊EPROM放入任何地址空間。另外,PSD3XX系列芯片的EPROM采用零功耗技術(shù),即僅在EPROM的地址輸入發(fā)生改變時, EPROM才有功耗,這非常適用于有嚴格功耗要求的場合。
·可選擇的16k SRAM,可以配置為8位或16位方式,由內(nèi)部地址譯碼邏輯PADA輸出(RS0)進行選擇,內(nèi)部的SRAM同樣采用零功耗技術(shù)。
·兩個可編程地址譯碼陣列PAD A和PADB,可產(chǎn)生片選邏輯、控制邏輯和鎖存的地址信號等。這兩個陣列屬可編程邏輯陣列,可以由用戶以軟件進行配置,最多可以有18個輸入,24項輸出,總共40個乘積項。PAD A和PAD B的輸入信號可以有:MCU地址輸入信號,PSD本身端口C的輸入信號,內(nèi)部頁面寄存器輸入信號,MCU各控制信號等。其中PAD A輸出最多可以有13項,用于PSD芯片內(nèi)部8個EPROM塊的選擇(ES0~ES7)、SRAM基地址的確定(RSO)及IO緩沖器、頁面寄存器、控制寄存器基地址(C SIOPORT)的確定。PAD B輸出到IO口B和C上,最多可以輸出11項(CS0~CS10),供片外使用。PSD芯片的這種配置方式,極大地提高了PSD芯片的使用靈活性,使它能適應(yīng)各種不同類型的MCU。
·擴展MCU可尋址空間,最大可以至原來尋址空間的16倍,這由內(nèi)部的頁面寄存器(4位)實現(xiàn)。
·可編程IO,共有A(8位)、B(8位)和C(3位)三個端口,可重構(gòu)MCU由于數(shù)據(jù)/地址復(fù)用而失去的IO端口。其中A口可以根據(jù)不同的MCU進行不同的配置,可配置為通用IO、數(shù)據(jù)總線或地址總線等。B口可以配置為通用IO或內(nèi)部PAD B譯碼輸出(CS0~CS7,作為片選,控制邏輯),注意,B口的每根線可以單獨配置。C口可以配置為地址輸入(A16~A18:用于有多于16條地址總線的MCU)或內(nèi)部PAD B譯碼輸出(CS8~CS10),同樣,C口的每根線也可以單獨配置。具體配置情況在下面的工作模式中闡述。
·可編程的安全特性,在設(shè)置安全特性位的情況下,可以防止內(nèi)部PADA和PAD B的配置方式及EPROM內(nèi)容被非法讀出。
2.2 根據(jù)不同的MCU,PSD3XX系列芯片有四種不同的工作方式
(1)方式1:8位數(shù)據(jù)總線、地址/數(shù)據(jù)總線多路復(fù)用方式。
如圖2所示,這種方式為絕大多數(shù)的8位MCU所用,如MCS51系列等。在這種方式下,MCU的8位低階地址/數(shù)據(jù)復(fù)用線接PSD器件的 AD0~AD8,高階地址線接AD8~AD15。當ALE/AS信號有效時,PSD芯片在內(nèi)部鎖存地址信號,然后在下一個時鐘周期,復(fù)用總線上出現(xiàn)的8位數(shù)據(jù)是寫入器件還是讀出器件由控制信號決定。因此,在這種方式下A口可以配置為通用IO,低階地址線(A0~A7),低階的8位地址/數(shù)據(jù)復(fù)用總線(AD0~AD7),即原來的MCU復(fù)用總線的功能。B口的每根線可以配置為通用IO,或內(nèi)部PADB輸出(CS0~CS7)。端口C可配置為地址輸入(A16~A18:有的MCU有多于16條的地址總線)也可配置為PAD B的輸出(CS8~CS10),注意,C口可能的配置在四種方式下都是一樣的。
(2)方式2:16位數(shù)據(jù)總線、地址/數(shù)據(jù)總線多路復(fù)用方式。
如圖3所示,這種方式下的MCU的16位數(shù)據(jù)/地址復(fù)用線和PSD器件的16位數(shù)據(jù)/地址復(fù)用線直接相連,和方式1電路連接形式完全相同,工作原理也類似,只不過其數(shù)據(jù)總線變?yōu)?6位。此時端口A,可能的配置如方式1,即通用IO,低階地址線,低階的8位地址/數(shù)據(jù)復(fù)用總線。B口可能的配置也如方式 1。
(3)方式3:8位數(shù)據(jù)總線、地址/數(shù)據(jù)總線獨立方式。
如圖4所示,在這種方式下,MCU輸出的16位地址總線和PSD器件的AD0~AD8相連作為地址總線。MCU的8位數(shù)據(jù)總線連到PSD器件的A口。在這種方式下A口只能配置為數(shù)據(jù)總線。B口可能的配置如方式1和方式2。
(4)方式4:16位數(shù)據(jù)總線、地址/數(shù)據(jù)總線獨立方式。
如圖5所示,在這種方式下,MCU輸出的16位地址總線和PSD器件的AD0~AD8相連作為地址總線,MCU的16位數(shù)據(jù)總線中的低8位接到A口,高8 位接到B口。此時A口只能配置為低8位數(shù)據(jù)總線,B口只能配置為高8位數(shù)據(jù)總線。C口可能的配置在各種方式下都是一樣的。所以此時PSD3XX系列器件可用的片外控制邏輯最少(最多只能有CS8~CS10)。
其余系列的PSD芯片在功能上大抵和PSD3XX系列差不多,但有各自的特點,主要體現(xiàn)在:內(nèi)部RAM容量的增大、EPROM和內(nèi)部譯碼邏輯改為編程更加方便的Flash Mem ory、IO引腳的增多、引入其余功能(定時器/計數(shù)器,中斷系統(tǒng)等)、內(nèi)部PLD輸入/輸出及乘積項的增多,以及引入ISP(在系統(tǒng)可編程中)功能等,這使得PSD系列芯片的使用更加方便,靈活。例如,PSD5XX系列,最多可以有1Mbit EPROM和16kbit RAM(可帶后配電池),IO引腳數(shù)為40,內(nèi)部的PLD最多可以有61個輸入、140個輸出乘積項和4個16位定時器/計數(shù)器(可用作 WATCHDOG)。PSD8XX只用于與8位MCU的接口,其內(nèi)部的EPROM改為FLASH MEMORY,分成二級(主FLASH,二級FLASH),可以在使系統(tǒng)執(zhí)行程序的同時實現(xiàn)擦寫FLASH的功能,這在程序經(jīng)常需要變更的場合顯得猶為有用;在芯片上集成基于JTAG標準的ISP端口,從而引入系統(tǒng)可編程功能,即無需專門的編程器,只需插在PC機上的下載電纜(Flash LINK)即可實現(xiàn)整個空白芯片的完全編程。PSD9XX在功能及結(jié)構(gòu)上與PSD8XX系列基本相同。最新的PSD4000系列用于與16位MCU的接口,內(nèi)部有更大的FLASH MEMORY(4Mbit主,256kbit二級)、更大的RAM(64kbit),52個可單獨配置的IO引腳和超過3000有效門的閃爍可編程邏輯,因而可以組成更大規(guī)模的系統(tǒng)。
3 開發(fā)步驟及應(yīng)用實例
對PSD系列器件的開發(fā),可以在WSI公司提供的開發(fā)環(huán)境PSDsoft下進行。PSDsoft包括五個不同的部分:PSDabbl(定義ZPLD譯碼功能),PS-Dconfiguration(配置總線類型,IO引腳分配),PS-Dcomplier(用于文件的編譯及地址空間的轉(zhuǎn)換), PSDsimulator(可對PSD配置進行仿真),PSDpro-grammer(進行目標文件的下載與上傳)。不同系列的芯片又有不同的開發(fā)方法,其中PSD9XX系列之前的芯片,還需開發(fā)者熟悉PSDabel高級硬件定義語言,用于定義內(nèi)部PLD的譯碼邏輯,開發(fā)過程一般可遵循以下步驟:
(1)確定PSD在整個系統(tǒng)中所要完成的功能,以選擇相應(yīng)的型號;
(2)確定PSD所需的與MCU接口的信號,這些信號通常根據(jù)特定型號的MCU確定;
(3)確定內(nèi)部功能塊和外擴器件所需的地址空間,在確定地址空間時,應(yīng)記住PSD3XX系列PLD引入的地址信號只有A11~A19,它所能區(qū)分的地址空間是2kb;
(4)確定PSD內(nèi)PLD的輸入和輸出信號,確定PLD配置:
·給內(nèi)部EPROM、RAM和CSIOPORT分配存儲空間,
·PSDabel定義段中說明PLD的輸入/輸出信號,
·在PSDabel中書寫相應(yīng)的邏輯方程,注意,3XX系列的PLD的輸出只能為端口B或C;
(5)確定PSD其余配置(總線類型,IO引腳分配等);
(6)使用PSDsoft編譯器,形成復(fù)合目標文件(包括PSDabel、PSD芯片配置和MCU代碼);
(7)將目標文件通過編程器寫入PSD器件。
對于PSD9XX以上系列的芯片,開發(fā)更加方便,開發(fā)者無需運用高級硬件描述語言去定義管腳,而只要在PSDsoft中進行簡單的選擇便可以實現(xiàn)芯片的配置,編譯結(jié)束后可以通過WSI公司提供的下載電纜FlashLINK經(jīng)器件的ISP端口直接配置到芯片中。
圖6是PSD3XX系列芯片與國內(nèi)應(yīng)用較為廣泛的80C31接口的一個實例。80C31利用PSEN信號有效地訪問PSD3XX中的程序存儲器。用 WR與RD信號有效地讀寫PSD3XX中的數(shù)據(jù)存儲器的數(shù)據(jù)。因此,可以將PSD3XX配置成地址/數(shù)據(jù)復(fù)用方式(8位數(shù)據(jù)總線),指令存儲器與數(shù)據(jù)存儲器分開,端口A、B可配置為IO口,端口C配置為內(nèi)部PAD B輸出。
4 結(jié)束語
綜上所述,用PSD器件來擴展單片機外圍電路是很方便的,但PSD器件目前國內(nèi)應(yīng)用得并不多,其優(yōu)點尚未被廣大開發(fā)人員所認識,很多人還習慣于用通用器件來設(shè)計單片機外圍電路,因此PSD系列器件的應(yīng)用急需普及。
參考文獻
1 PSD3XX Family Datasheet.WSICorp.February,19992 PSD913F2/80C32 Design Guide.WSICorp.January,2000
3 許少云,李偉鵬編著.PSD原理、開發(fā)與應(yīng)用.北京:電子工業(yè)出版社.1996