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