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