MPC82XX的UPM方式應(yīng)用研究
MPC82XX是Freescale公司繼MPC860之后推出的一系列高性能通信處理器中性能價(jià)格比十分出色的一款,它具有獨(dú)立的64位數(shù)據(jù)總線和32位地址總線,獨(dú)立的32位PCI2.2總線接口,豐富的外設(shè)接口(MII、I2C、SP、USB、UART等),足夠的用戶可自定義的GPI0。MPC82XX的這些技術(shù)特點(diǎn)使它非常適合于應(yīng)用在某些既具有多樣通信接口又具有一定計(jì)算和控制功能的自動(dòng)化智能設(shè)備中。
在此類自動(dòng)化智能設(shè)備的開發(fā)設(shè)計(jì)過程中經(jīng)常遇到的一個(gè)問題是總線器件的擴(kuò)展。對于地址總線和數(shù)據(jù)總線分開的器件,例如常見的STl6C554、NOR Flash等,MPC82XX提供了8路用戶可自定義地址區(qū)間的片選信號,采用GPCM(General—Purpose Chip—Select Machine)模式可以非常方便地進(jìn)行掛接。同時(shí)MPC82XX還提供了SDRAM接口模式——SDRAM Machine,可以方便應(yīng)用SDRAM。
但是當(dāng)遇到某些數(shù)據(jù)總線與地址總線復(fù)用的器件,如CAN總線驅(qū)動(dòng)器SJAl000等,或者某些控制時(shí)序比較特殊的器件,如大容量存儲器NAND Flash等,在這些情況下一般的做法是通過增加CPLD進(jìn)行數(shù)據(jù)總線、地址總線和控制總線的時(shí)序和邏輯轉(zhuǎn)換,以滿足特定的要求。這種解決方案的優(yōu)點(diǎn)是可以方便地對CPLD的邏輯進(jìn)行反復(fù)調(diào)整以達(dá)到最佳效果,還能利用CPLD進(jìn)行電平匹配。但是它的缺點(diǎn)也是顯然的:首先,增加了CPLD這種占PCB面積較大的芯片,同時(shí)還需要提供燒寫CPLD的JTAG接口;其次,增加了CPLD軟件的開發(fā)和維護(hù)工作。其實(shí),MPC82XX的存儲器控制模塊還為用戶提供一種配置十分靈活的UPM(User—Programmable Machine)模式,充分利用其配置功能可以在不需要增加器件,或者只增加簡單的邏輯接口器件的情況下,很好地解決以上問題。
1 UPM的特點(diǎn)
1.1 接口信號及時(shí)序控制
MPC82XX的UPM接口信號線如表1所列。
其中,GPLx、CSx的時(shí)序用戶可以自定義,它們最小可調(diào)整時(shí)序間隔為1/4個(gè)總線時(shí)鐘周期。同時(shí)地址總線和數(shù)據(jù)總線的時(shí)序也可作一定程度的修改,以適應(yīng)各種不同的應(yīng)用場合。
MPC82XX具有3個(gè)UPM,GPLx信號為各UPM所共用,每一個(gè)UPM對應(yīng)一個(gè)由64個(gè)字(32位)組成的RAM陣列,RAM陣列中每個(gè)字對應(yīng)一個(gè)時(shí)鐘周期內(nèi)總線上各信號的狀態(tài),同時(shí)可以通過設(shè)置LOOP位或者RE—D0位進(jìn)行時(shí)間上的擴(kuò)展,以適應(yīng)某些慢速設(shè)備。UPM每個(gè)狀態(tài)序列的結(jié)束由LAST位確定。由此可見,UPM控制的總線時(shí)序完全由它對應(yīng)的RAM陣列決定,RAM陣列由用戶在初始化UPM時(shí)寫入。
1.2 劃分基本操作
根據(jù)要掛接的芯片的基本操作,對UPM的RAM陣列進(jìn)行分割,即在適當(dāng)?shù)奈恢迷O(shè)置LAST位,以形成幾個(gè)基本微操作,如讀寫等。每次需要UPM進(jìn)行某項(xiàng)操作時(shí),先將該操作在RAM陣列中的起始地址寫入U(xiǎn)PM控制寄存器MxMR,接下來的操作對于用戶來說相當(dāng)于是透明的,只需要進(jìn)行簡單的賦值操作即可,總線時(shí)序?qū)⒂蒛PM來控制。
下文將以利用UPM掛接兩種常見的芯片為例進(jìn)行詳細(xì)說明。
2 擴(kuò)展CAN總線驅(qū)動(dòng)器
在工業(yè)控制領(lǐng)域,CAN總線應(yīng)用相當(dāng)廣泛,SJAl000是最常見的CAN總線驅(qū)動(dòng)器,利于MPC827X的UPM模式可以很好的掛接總線復(fù)用的SJAl000芯片。
2.1 硬件連接
MPC82XX利用UPM掛接SJAl000的連接如圖l所示。
在該應(yīng)用實(shí)例中,SJAl000的讀寫信號和地址有效信號均由GPL提供,74LVC245用于完成5 V邏輯和3.3 V邏輯的轉(zhuǎn)換。[!--empirenews.page--]
2.2 設(shè)計(jì)要點(diǎn)
對SJAl000的操作可以分為讀數(shù)據(jù)和寫數(shù)據(jù)兩個(gè)基本操作,同時(shí)SJAl000是總線復(fù)用器件,待讀寫數(shù)據(jù)的地址必須先行給出,還需加上一個(gè)寫地址的操作,因此可以將微操作定義為三個(gè)。不論是數(shù)據(jù)還是地址,都由MPC82XX的數(shù)據(jù)總線給出,通過分別使能ALE、RD和WR信號以區(qū)分以上三類操作,ALE、RD和WR功能由UPM的GPL信號線來模擬實(shí)現(xiàn)。圖2分別給出了這三類操作的時(shí)序波形。
3 擴(kuò)展NAND Flash存儲器
閃存(Flash Memory)具有非易失性、高存儲密度、功耗低等優(yōu)點(diǎn),是嵌入式系統(tǒng)的首選存儲設(shè)備。NAND Flash更是具有容量大、價(jià)格低的優(yōu)點(diǎn),比較適合大容量存儲。MPC82XX沒有類似于SDRAM Machine的NAND Flash專用接口,一般采用CPLD作為接口。但是結(jié)合UPM的特性和NAND Flash操作時(shí)序的特點(diǎn)進(jìn)行分析,采用UPM掛接NAND Flash是可行的。經(jīng)實(shí)踐檢驗(yàn),下文所述方案完全可以滿足應(yīng)用需求。
3.1 硬件連接
MPC82XX利用UPM掛接NAND Flash,如圖3所示。
該應(yīng)用中,NAND Flash的讀寫信號、地址有效信號、命令有效信號均由GPL提供,NAND Flash的Ready/Busyr信號則由MPC82XX的通用I/O引腳讀取。
3.2 設(shè)計(jì)要點(diǎn)
NAND Flash的操作具有以下特點(diǎn):其一,地址是通過I/0口串行寫入的,即一次寫入8位或者16位(視具體芯片IO總線寬度而定);其二,F(xiàn)lash在非空白區(qū)寫入時(shí)需先進(jìn)行擦除操作,擦除和寫入的速度相對于CPU的速度來說是比較長的,因此CPU需等待一個(gè)操作完成后才能進(jìn)行下一步操作;其三,對NAND Flash的讀寫操作之前必須先寫入相應(yīng)的命令字。以上這些特點(diǎn)決定NANDFlash的操作較為復(fù)雜,但是依然只需要?jiǎng)澐譃楹唵蔚?種操作即可:寫命令、寫地址、寫數(shù)據(jù)、讀數(shù)據(jù)。圖4為其中的寫命令和寫地址操作的總線時(shí)序。
值得注意的是,寫入了地址的最后一個(gè)字段后不能立即進(jìn)行數(shù)據(jù)操作,必須等待幾μs的時(shí)間,這個(gè)等待時(shí)間可以通過設(shè)置UPM的LOOP和REDO實(shí)現(xiàn)。經(jīng)測試,該方案讀數(shù)據(jù)的速度達(dá)到2 MB/s,寫數(shù)據(jù)的速度達(dá)到1.5MB/s,可以滿足應(yīng)用需求。
結(jié) 語
PowerPC UPM方式配置靈活,適應(yīng)力強(qiáng),能有效地減少應(yīng)用系統(tǒng)軟硬件的復(fù)雜程度,提高系統(tǒng)可靠性,降低設(shè)備的研發(fā)成本和制造成本,使得PowerPC更加適合用在空間、成本等方面有諸多限制而接口要求又豐富多樣的嵌入式應(yīng)用系統(tǒng)中。