由外部總線訪問MPC5554的內(nèi)部存儲(chǔ)器
1 處理器MPC5554的總線模式
MPC5554是Freescak公司推出的32位PowerPC系列處理器,其內(nèi)核為PowerPC Book E結(jié)構(gòu)的e20026CPU,外圍有豐富的外設(shè)接口,包括有eMIOS、eQADC、DSPI、eSCI、eDMA、eTPU、FlexCAN等模塊,可以方便地與外設(shè)進(jìn)行連接。這款處理器廣泛地應(yīng)用在汽車電子和航空航天等場(chǎng)合,具有成熟可靠的體系結(jié)構(gòu)和廣泛的技術(shù)支持。
MPC5554的外部總線模塊稱為EBI(External BusInterface)模塊,同其他處理器的外部總線模塊一樣,也可以擴(kuò)展諸如F1ash、SSRAM以及異步存儲(chǔ)器。EBI模塊可以工作在許多不同的模式下,主要有以下幾種模式:
◆單獨(dú)主機(jī)模式,此模式下只響應(yīng)處理器內(nèi)部的命令,忽略所有的外部總線請(qǐng)求;
◆外部主機(jī)模式,此模式下可以響應(yīng)處理器內(nèi)部的命令和外部總線請(qǐng)求,并且允許外部主機(jī)訪問內(nèi)部地址空間;
◆模塊禁止模式,模塊被禁止后即停止工作;
◆16位數(shù)據(jù)總線模式,數(shù)據(jù)總線只有16位,DATA[O:15]有效,DATA[16:31]無效;
◆調(diào)試模式,當(dāng)系統(tǒng)處于此模式下時(shí),EBI模塊不受影響,仍正常工作。
以上幾種模式中,只有外部主機(jī)模式下可以實(shí)現(xiàn)外部主機(jī)訪問MPC5554內(nèi)部存儲(chǔ)地址的功能。
2 MPC5554的外部主機(jī)模式
EBI Moclule Configuration Register(EBI_MCR)寄存器是EBI模塊的配置寄存器,其中的EXTM位即為EBI的外部主機(jī)模式選擇位,置1表示將EBI模塊置為外部主機(jī)模式,置0表示為單獨(dú)主機(jī)模式。在啟動(dòng)模塊時(shí),需要將MDIS位清O。
EBI模塊的外部引腳在外部主機(jī)模式時(shí)全部需要使用,MPC5554與外部主機(jī)的硬件連接如圖1所示。
[!--empirenews.page--]
2.1 內(nèi)部存儲(chǔ)空間地址編碼
當(dāng)EBI被配置為外部主機(jī)模式時(shí),外部主機(jī)可以通過總線訪問內(nèi)部的存儲(chǔ)空間。MPC5554,內(nèi)部地址總線是32位,但外部地址總線只有24位,需要通過特殊的解碼方式來將24位地址總線擴(kuò)展為32位。EBI模塊將外部總線的ADDR[8:11]這4位進(jìn)行解碼,作為內(nèi)部總線ADDR[O:11]的12位。解碼的規(guī)則為:
①當(dāng)外部地址總線的ADDR[8]=O時(shí),EBI忽略外部數(shù)據(jù),無效地址。
②當(dāng)外部地址總線的ADDR[8]=1時(shí),ADDR[9:11]用來選擇為Flash存儲(chǔ)地址的區(qū)塊;匹配則進(jìn)入該區(qū)塊,不匹配則返回總線錯(cuò)誤標(biāo)志。
外部主機(jī)模式下具體的地址譯碼如表1所列。
2.2 外主模式下外部主機(jī)在內(nèi)存儲(chǔ)器上讀寫數(shù)據(jù)
外部主機(jī)在得到總線控制權(quán)后,通過拉低TS位來初始化對(duì)內(nèi)存儲(chǔ)器的操作。如2.1節(jié)所示,當(dāng)?shù)刂肪€上的信號(hào)匹配時(shí),即可訪問內(nèi)存儲(chǔ)器空間,訪問結(jié)束于TA信號(hào)或TEA信號(hào)出現(xiàn)。TA信號(hào)為正常結(jié)束信號(hào),TEA信號(hào)則表示有總線上的錯(cuò)誤。圖2為外部主機(jī)讀數(shù)據(jù)流程,圖3為外部主機(jī)讀數(shù)據(jù)時(shí)序。
圖4和圖5為外部主機(jī)寫數(shù)據(jù)的流程和時(shí)序,與讀數(shù)據(jù)時(shí)的大體類似。但需要注意的是,規(guī)定外主訪問的最小延遲是3個(gè)總線周期,在實(shí)際系統(tǒng)中還需要根據(jù)具體訪問的存儲(chǔ)器塊來決定。
[!--empirenews.page--]
3 系統(tǒng)設(shè)計(jì)
3.1 硬件設(shè)計(jì)
主芯片使用處理器MPC5554,其內(nèi)部Flash有2 MB,通過EBI模塊進(jìn)行外部訪問。外部主機(jī)使用Altera公司生產(chǎn)的Cyclone II系列FPGA芯片EP2C35F672,芯片的I/O資源豐富,選用的672引腳封裝最大可用I/O為475個(gè),對(duì)于I/O需求很多的應(yīng)用非常適合。EP2C35F672的33 216個(gè)LE單元,105個(gè)M4K的RAM塊,可以滿足較高要求的應(yīng)用。
電路板上的電源種類較多,MPC5554需要有5 V、3.3V、1.5 V供電,EP2C35F672需要3.3 V和1.2 V供電,外部輸入則為5 V。采用2片LT1765將5 V轉(zhuǎn)換至3.3 V和1.2 V,1.5 V則利用NJD2783從3.3 V處生成。
根據(jù)圖1所示的連接,將MPC5554的EXTAL、TS、TSIZ[0:1]、ADDR[8:31]、DATA[O:31]、RD_WR、BR、BG、BB、TA、TEA等信號(hào)線全部接至FPGA的I/O處,其中EXTAL需要引至FPGA的PLL輸出口作為外部輸入時(shí)鐘,其余的都接至普通I/O。
為了方便調(diào)試及觀察結(jié)果,將MPC5554的1路SCI接口引出,通過MAX3232電平轉(zhuǎn)換至RS232電平,然后連至PC上的串口,使用超級(jí)終端程序進(jìn)行觀察。
3.2 軟件設(shè)計(jì)
軟件的設(shè)計(jì)需要MPC5554與FPGA協(xié)同工作。首先需要將MPC5554配置為外主模式,在MPC5554的EBI模塊里共有2個(gè)主要的配置寄存器,分別是EBI模塊配置寄存器EBI_MCR和EBI總線監(jiān)控寄存器EBI_BMCR。
EBI模塊配置寄存器負(fù)責(zé)整個(gè)模塊的基礎(chǔ)配置,MDIS位控制EBI模塊是否啟用,EXTM位配置EBI是否為外主模式,DBM位控制。EBI為32位或16位數(shù)據(jù)總線,EARP[O:1]用來設(shè)置總線請(qǐng)求的優(yōu)先級(jí)。
EBI總線監(jiān)控寄存器負(fù)責(zé)對(duì)總線監(jiān)測(cè)控制,BMT[O:7]位為總線監(jiān)測(cè)的超時(shí)周期,BME位控制總線監(jiān)測(cè)的使能。
另外,還有一個(gè)總線傳輸錯(cuò)誤狀態(tài)寄存器EBI_TESR,TEAF位為傳輸錯(cuò)誤標(biāo)志位,BMTF為總線監(jiān)測(cè)超時(shí)標(biāo)志位。
EBI模塊的初始化程序?yàn)椋?/p>
在讀取操作時(shí),EBI模塊在接收到FPGA發(fā)來的地址信息后,返回相應(yīng)地址的數(shù)據(jù)信息;在寫入操作時(shí),EBI模塊根據(jù)FPGA發(fā)來的地址信息,將數(shù)據(jù)信息寫入相應(yīng)地址。根據(jù)圖2~圖5的流程與時(shí)序,作為外部主機(jī)的FPGA起到發(fā)起數(shù)據(jù)傳輸并結(jié)束的作用。FPGA部分使用VHDL語言,只附上結(jié)構(gòu)體里的process部分。
結(jié) 語
本文所述的基于MPC5554和FPGA的測(cè)試系統(tǒng)已調(diào)試完成,MPC5554內(nèi)部的Flash存儲(chǔ)器可以通過EBI模塊由外部的FPGA進(jìn)行讀寫。與外掛的存儲(chǔ)器相比,通信讀/寫速度和系統(tǒng)的可靠性都大大提高。在實(shí)際應(yīng)用中,其他處理器也可以像文中的FPGA一樣模擬總線時(shí)序。當(dāng)應(yīng)用中不需要數(shù)據(jù)傳輸時(shí),也可將連接配置為普通I/0以作他用,硬件配置靈活。