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