利用P89C669的23 b的線性地址并采用CPLD外部擴(kuò)展設(shè)備
P89C669是PHILIPS半導(dǎo)體一款51MX(存儲(chǔ)器擴(kuò)展)內(nèi)核的微處理器,其指令執(zhí)行速度2倍于標(biāo)準(zhǔn)的80C51器件,線性地址經(jīng)擴(kuò)展后可支持高達(dá)8 MB的程序存儲(chǔ)器和8 MB的數(shù)據(jù)存儲(chǔ)器,這是他相對(duì)于標(biāo)準(zhǔn)51內(nèi)核的最大優(yōu)點(diǎn)。目前的單片系統(tǒng)越來(lái)越復(fù)雜,擴(kuò)展的外部設(shè)備也更多,如果能充分利用P89C669的豐富的線性地址資源,將能大大增強(qiáng)系統(tǒng)能力。在一個(gè)嵌入式系統(tǒng)開(kāi)發(fā)中,筆者采用ALTERA公司的CPLD芯片EPM7032利用這款單片機(jī)的線性地址擴(kuò)展了豐富的外部設(shè)備資源。
本文引用地址:http://m.butianyuan.cn/article/173500.htm1 P89C669的存儲(chǔ)器結(jié)構(gòu)
1.1 存儲(chǔ)結(jié)構(gòu)
P89C669的存儲(chǔ)器結(jié)構(gòu)為哈佛結(jié)構(gòu),地址分配如表1所示。
從表1可見(jiàn),P89C669對(duì)傳統(tǒng)的51內(nèi)核的3部分存儲(chǔ)結(jié)構(gòu)進(jìn)行了相應(yīng)的擴(kuò)展,各個(gè)部分的片內(nèi)存儲(chǔ)空間也增加了,如內(nèi)部數(shù)據(jù)空間有1 280 B在片內(nèi),外部數(shù)據(jù)空間有768 B在片內(nèi),有96 kB的片內(nèi)程序存儲(chǔ)空間等。
尋址指令除了傳統(tǒng)的MOV,MOVX,MOVC外,EMOV指令與24位的通用指針寄存器EPTR可尋址16MB的全部空間,但是所占用的指令周期也較長(zhǎng)。
擴(kuò)展外部數(shù)據(jù)存儲(chǔ)空問(wèn)HDATA除了768 B在片內(nèi)外,其余地址空間可以用來(lái)擴(kuò)展外部設(shè)備(其實(shí)只要把片內(nèi)的768 B通過(guò)指令將其屏蔽,也可以用來(lái)擴(kuò)展外部設(shè)備)。
1.2 P2口的讀寫時(shí)序分析
尋址8 MB的數(shù)據(jù)存儲(chǔ)空間,需要有23 b的地址尋址能力,P89C669將傳統(tǒng)51內(nèi)核的P2高位地址時(shí)分復(fù)用,從而得到23 b地址尋址能力,時(shí)序圖如圖1所示,即當(dāng)使用23 b地址時(shí),ALE為高時(shí),地址位A16~A22輸出到P2.0~P2.6;ALE為低時(shí),地址位A8~A14輸出到P2.0~P2.6。無(wú)論ALE為何值,位地址A15都從P2.7輸出。
2 系統(tǒng)外部設(shè)備擴(kuò)展需求
在某產(chǎn)品的控制系統(tǒng)中,擴(kuò)展的外部設(shè)備比較豐富,利用P89c669的23 b地址尋址能力進(jìn)行設(shè)備地址編碼,所以需要對(duì)23 b地址的時(shí)序邏輯進(jìn)行處理,處理單元交給一塊ALTERA公司的CPLD(EPM7032)。
EPM7032具有32個(gè)邏輯單元,約600個(gè)門級(jí)單元,可用IO口36個(gè),內(nèi)置IEEE std.1149.1 JTAG,方便可編程下載。
在滿足系統(tǒng)資源的前提下,選用EPM7032,將P89C669的P2口作為處理單元輸入信號(hào),經(jīng)過(guò)CPLD的內(nèi)部邏輯進(jìn)行譯碼或數(shù)據(jù)鎖存,以獲得各個(gè)外部設(shè)備資源的選擇信號(hào)及少量的控制信號(hào),如圖2所示。
評(píng)論