高速單片機(jī)W77E58的特點(diǎn)及應(yīng)用
掃描二維碼
隨時(shí)隨地手機(jī)看文章
一、前言
隨著電子技術(shù)的發(fā)展,單片機(jī)的功能日益強(qiáng)大,集成度日益提高,運(yùn)行速度也越來(lái)越快。過(guò)去,需要擴(kuò)展幾片外圍芯片才能實(shí)現(xiàn)的功能現(xiàn)在完全可以由單片機(jī)自己去實(shí)現(xiàn),本文介紹的W77E58就是這樣一種具有許多功能的單片機(jī)。
W77E58是臺(tái)灣華邦公司生產(chǎn)的與MCS51系列單片機(jī)兼容的可多次編程的快速微處理 器,在它內(nèi)部集成有32K的可重復(fù)編程的flash ROM、256字節(jié)的片內(nèi)存儲(chǔ)器、1K的 用MOVX指令訪問(wèn)的SRAM、可編程的看門狗定時(shí)器、3個(gè)16位定時(shí)器、2個(gè)增強(qiáng)型的全雙工串行口、片內(nèi)RC振蕩器、雙16位數(shù)據(jù)指針等諸多功能。在很多場(chǎng)合,幾乎不用擴(kuò)展外圍芯片就能夠滿足系統(tǒng)要求,而且,由于它采用了全新設(shè)計(jì)的微處理器內(nèi)核,去除多余的時(shí)鐘和存儲(chǔ)周期,因此,在相同的晶振頻率下,根據(jù)不同的指令類型,其運(yùn)行速度一般比傳統(tǒng)8051系列快1.5到3倍,一般情況下,平均可達(dá) 2.5倍以上。另外,由于W77E58采用全靜態(tài)CMOS設(shè)計(jì),能工作在低速晶振頻率下,因此,和普通的8051相比,若W77E58采用低速工作頻率,在相同的指令吞吐量下,W77E58的節(jié)電性能也將大大提高。
二、W77E58的特點(diǎn)及功能
1. 兼容性
77E58的指令功能完全兼容于80C52(包括對(duì)狀態(tài)位和標(biāo)志位的影響),只有一點(diǎn)不同的就是在普通80C52的指令系統(tǒng)中,沒(méi)有操作指令(op-code)A5H,而在W77 E58的指令系統(tǒng)中,增加了一條指令DEC DPTR(數(shù)據(jù)指針DPTR減一),其操作指令 (op-code)為A5H。而且,W77E58也具有80C52的全部資源和功能,包括4個(gè)8位I /O口,3個(gè)16位定時(shí)器,全雙工串口,中斷源等。W77E58的增加的新功能都是用普通8052所保留的特殊功能寄存器實(shí)現(xiàn)的,不與普通80C52的資源產(chǎn)生任何沖突,因此,W77E58可以直接用在已設(shè)計(jì)好的80C52系統(tǒng)中使用,而為原有系統(tǒng)編寫的程 序幾乎不做任何改動(dòng),系統(tǒng)就可正常工作,需要注意的只是由于新的高速內(nèi)核所造成的指令執(zhí)行時(shí)間的改變及訪問(wèn)外部存儲(chǔ)器的讀寫速度的限制。W77E58的封裝也完全兼容于80C52,它所增加的與硬件有關(guān)的功能都是復(fù)用80C52的P1口,并且 W77E58 的44pin PLCC/QFP封裝比普通的8051多一組4位的I/O口。
2. 高速性
77E58的外部工作時(shí)鐘頻率可達(dá)40MHz,而且,由于W77E58采用了重新設(shè)計(jì)的微處理器內(nèi)核,去除了多余的時(shí)鐘和存儲(chǔ)周期,運(yùn)行速度大大提高,這不僅僅是運(yùn)行 晶振頻率的提高,而是將普通8051的每個(gè)機(jī)器周期(machine cycle)包含12個(gè) 時(shí)鐘周期(clock period)縮減到每個(gè)機(jī)器周期包含4個(gè)時(shí)鐘周期,這樣,即使在相同的時(shí)鐘頻率下,根據(jù)不同的指令類型,其運(yùn)行速度一般比傳統(tǒng)8051提高1. 5到3倍。因此,若程序中需要軟件定時(shí),其執(zhí)行時(shí)間須根據(jù)W77E58的指令的執(zhí)行時(shí)間應(yīng)重新計(jì)算,一般情況下,每一個(gè)機(jī)器周期有一次取指(包括操作碼和操作數(shù))操作,由于在W77E58的256個(gè)操作碼指令中,有128個(gè)是單字節(jié)指令,因此,W77E58的指令有一半的執(zhí)行時(shí)間只須一個(gè)機(jī)器周期,即4個(gè)時(shí)鐘周期。圖1以單周期指令為例說(shuō)明了W77E58的指令的時(shí)序關(guān)系。
3. 中斷源
77E58除了具有80C52的6個(gè)中斷源外,又另外增加了6個(gè)中斷源,共有12個(gè)可定義兩種優(yōu)先級(jí)的中斷源,每個(gè)中斷源都有獨(dú)立的中斷使能位、中斷優(yōu)先權(quán)位、中斷 標(biāo)志位和中斷向量。但是,為了同80C32兼容,所有新增加的中斷的優(yōu)先級(jí)都在 原有中斷的優(yōu)先級(jí)之后,其中斷優(yōu)先級(jí)及中斷向量如下表1所示,除了同80C32有相同的兩個(gè)外部中斷INT0和INT1外,W77E58又增加了4個(gè)外部中斷INT2、INT3、I NT4、INT5。同80C32一樣,外部中斷INT0和INT1有邊沿觸發(fā)和電平觸發(fā)兩種觸發(fā)方式,當(dāng)中斷被響應(yīng)后,其中斷標(biāo)志位由硬件自動(dòng)清除;而外部中斷INT2到INT5 只有邊沿觸發(fā)方式,其中斷標(biāo)志位可被獨(dú)立設(shè)為由硬件或軟件清除,缺省設(shè)置為 由軟件清除,當(dāng)然,用戶可根據(jù)需要通過(guò)修改相對(duì)應(yīng)的特殊寄存器,將外部中斷 INT2到INT5設(shè)為由硬件清除中斷標(biāo)志位。
4. 兩個(gè)增強(qiáng)全雙工串口
和80C32相比,W77E58除了具有同80C32一樣的全雙工串口外,W77E58又增加了一個(gè)全雙工串口,其外部引腳RXD1、TXD1和P1.2、P1.3復(fù)用。然而,這兩個(gè)串口除了具有同原有80C32的串口相同的功能外,又增加了兩個(gè)增強(qiáng)型的特點(diǎn),即多機(jī)通訊自動(dòng)地址識(shí)別和幀錯(cuò)誤檢測(cè)功能,但是需要注意的是,這兩個(gè)串口也有一點(diǎn)細(xì)微的差別,那就是串口0(原有保留串口)可以用定時(shí)器0和定時(shí)器1作為波特率發(fā)生器,而串口1只能使用定時(shí)器1作為波特率發(fā)生器。
(1) 自動(dòng)幀錯(cuò)誤檢測(cè)
自動(dòng)幀錯(cuò)誤檢測(cè)指的是在數(shù)據(jù)傳輸?shù)倪^(guò)程中,如果由于噪音等隨機(jī)干擾造成接收方接收不到正確的停止位,W77E58能夠自動(dòng)檢測(cè)出并設(shè)置標(biāo)志FE(FE_1),此標(biāo) 志被定位在SCON.7(SCON1.7),用戶可以訪問(wèn),并且必須軟件清除。
(2) 多機(jī)通訊自動(dòng)地址識(shí)別
在標(biāo)準(zhǔn)的8051系列單片機(jī)中,當(dāng)進(jìn)行多機(jī)通訊時(shí),發(fā)送9位數(shù)據(jù),最后一位只當(dāng)作地址/數(shù)據(jù)識(shí)別位,但是并不能區(qū)分準(zhǔn)確地址,準(zhǔn)確地址須靠軟件識(shí)別,而在W77 E58中,增加了地址特殊寄存器SADDR和地址屏蔽特殊寄存器SADEN,只有SADEN中的某一位為1,計(jì)算實(shí)際地址時(shí)相對(duì)應(yīng)的SADDR的位才有效,若SADEN中某一位是0 ,則進(jìn)行實(shí)際地址計(jì)算時(shí)忽略對(duì)應(yīng)的SADDR中的位。例如:
SADDR:10100100
SADEN:11111010
實(shí)際地址:10101X1X
在進(jìn)行多機(jī)通訊時(shí),只有接收到的地址幀和根據(jù)SADDR、SADEN計(jì)算出的地址完全 相同時(shí),從機(jī)才會(huì)置位中斷標(biāo)志,這完全由硬件自動(dòng)完成,而不是象標(biāo)準(zhǔn)8051系 列那樣必須靠軟件完成。
5. 可軟件編程的訪問(wèn)外部存儲(chǔ)器的存取速度
標(biāo)準(zhǔn)的8051在執(zhí)行MOVX指令訪問(wèn)外部存儲(chǔ)器時(shí),執(zhí)行時(shí)間固定為2個(gè)機(jī)器周期,而 W77E58可根據(jù)外部存儲(chǔ)器的響應(yīng)速度來(lái)選擇執(zhí)行MOVX指令時(shí)存取速度,這可以通 過(guò)選擇特殊寄存器CKCON(clock control)的MD0-MD2的值來(lái)實(shí)現(xiàn),特殊寄存器C KCON各位說(shuō)明見(jiàn)表2,MD0-MD2的取值與外部存儲(chǔ)器訪問(wèn)周期的關(guān)系見(jiàn)表3。
6. 內(nèi)存
在W77E58中,有32KB的可多次編程(Multiple-Time Programmable)flash ROM, 256字節(jié)的片內(nèi)RAM,1KB的片內(nèi)用MOVX指令訪問(wèn)的SRAM,這在大多情況下,足以滿足用戶要求。
7. 可編程看門狗定時(shí)器(Watchdog Timer)
在W77E58中,集成了一個(gè)用戶可編程的看門狗定時(shí)器,溢出時(shí)間選擇如表4所示,在軟件編程中,用戶可以隨時(shí)復(fù)位看門狗定時(shí)器。若程序跑飛,看門狗定時(shí)器溢出,則看門狗定時(shí)器自動(dòng)設(shè)定中斷標(biāo)志,在512個(gè)時(shí)鐘周期后,產(chǎn)生硬件復(fù)位,并保留2個(gè)機(jī)器周期后,程序恢復(fù)到地址0000H處開(kāi)始執(zhí)行。
8. 雙16位數(shù)據(jù)指針(Dual 16-bit Data Pointers)
W77E58提供有兩組數(shù)據(jù)數(shù)據(jù)指針DPTR和DPTR1,另外還增加了一條附加的指令DEC DPTR,在處理連續(xù)的一片內(nèi)存空間時(shí),可大大提高代碼效率。用戶可以通過(guò)DPS (DATA POINTER SELECT)位標(biāo)志來(lái)選擇使用DPTR或DPTR1,DPS是特殊寄存器DPS (86H)的最低位(LSB),當(dāng)DPS為0時(shí),選擇DPTR,當(dāng)DPS為1時(shí),選擇DPTR1。下面以數(shù)據(jù)塊傳輸來(lái)比較一下使用雙數(shù)據(jù)指針時(shí)的優(yōu)越性。
SH和SL為源數(shù)據(jù)區(qū)高位地址和地位地址;
DH和DL為目的數(shù)據(jù)區(qū)高位地址和地位地址;
CNT為傳送數(shù)據(jù)的字節(jié)數(shù)。
W77E58還有對(duì)某些重點(diǎn)標(biāo)志位修改時(shí)的限時(shí)存取保護(hù)功能、定時(shí)器定時(shí)記數(shù)時(shí)按照4分頻(W77E58的機(jī)器周期)或12分頻(標(biāo)準(zhǔn)8051系列的機(jī)器周期)的選擇功能、使用片內(nèi)RC振蕩器或片外晶體振蕩器的選擇功能、節(jié)電工作方式的電源管理功能等諸多優(yōu)點(diǎn),由于篇幅有限,不再贅述。
三、應(yīng)用前景
通過(guò)以上特點(diǎn)和功能的介紹可以看出,W77E58確實(shí)是一個(gè)非常難得的、功能強(qiáng)大的微處理器產(chǎn)品,尤其特別適合于對(duì)存儲(chǔ)器資源有一定要求和對(duì)軟件運(yùn)行速度有特別要求的場(chǎng)合。由于它與國(guó)內(nèi)目前使用最廣泛的8051系列產(chǎn)品兼容,用戶使用時(shí)不必重新花時(shí)間去學(xué)習(xí)其指令系統(tǒng),前期也不必在開(kāi)發(fā)仿真裝置上重新投資,就可利用原有開(kāi)發(fā)仿真裝置對(duì)其大部分功能進(jìn)行直接仿真開(kāi)發(fā),有些功能進(jìn)行間接開(kāi)發(fā),比如第二串口,可先利用第一串口進(jìn)行調(diào)試,最后將程序移植即可。在需要提高原有設(shè)計(jì)系統(tǒng)的運(yùn)行速度時(shí),除了需要修改有關(guān)靠軟件定時(shí)的指令,其它幾乎不用做任何修改,就可直接替換8051系列使用。在對(duì)其新增功能進(jìn)行軟件開(kāi)發(fā)設(shè)計(jì)時(shí),只須在匯編軟件的REG52.INC中加入新增特殊功能寄存器的定義,就可利用原匯編調(diào)試軟件對(duì)為W77E58寫的軟件進(jìn)行調(diào)試。因此,W77E58的出現(xiàn)給系 統(tǒng)的開(kāi)發(fā)設(shè)計(jì)提供了更廣闊的應(yīng)用前景。