張喜紅,祁懷遠,李鵬
(陜西烽火通信集團有限公司,陜西 寶雞 721006)
C8051F系列單片機為CIP51處理器,在指令集上與傳統(tǒng)MCS-51完全兼容;然而在系統(tǒng)構架、外圍設備等方面有很大的改進,使得集成度更高,運行速度更快。
與傳統(tǒng)51單片機相比,C8051F系列單片機有以下特征:
1) 低電壓供電 (2.7~3.6 V), 輸入端口兼容 5 V電壓,輸出有開漏和推挽模式;
2)集成JTAG調試器,可在線調試和下載;
3)多復位源,有看門狗復位、電源電平監(jiān)視復位、時鐘失步復位及比較器復位等,以滿足各種需求;
4)處理器最高運行時鐘可達25 MHz,可用片內時鐘,也可用外部時鐘;
5)2個12位DAC模塊,DAC為電壓輸出型,輸出無需再接運放而將電流轉化為電壓;
6)1個12位ADC模塊和1個8位ADC模塊;
7)一個芯片溫度傳感器,可檢測芯片溫度;
8)3個史密斯比較器模塊;
9)集成CAN控制器,帶有32個消息對象,每個消息對象有獨立的地址;
10)5個定時器,其中T2、T3和T4為增強型定時器,可靈活地配置成頻率可調方波輸出和事件捕捉;
11)6個PCA模塊,可實現(xiàn)PWM輸出、方波輸出和事件捕捉等;
12)1個SPI串行外圍設備接口控制器;
13)1個SMBUS總線控制器,與I2C總線完全兼容;
14)1個帶硬件地址控制的串行總線UART0和1個普通串行總線UART1;
15)2個外部事件中斷;
16)中斷源一共可達20個;
17)64 kB Flash ROM,256字節(jié)片內內存和4 kB外部內存;
18)引入交叉開關配置,可將外圍設備靈活地配置到 P0~P3口。
CIP51采用了流水線處理架構,不再分系統(tǒng)時鐘和機器周期,指令直接按照系統(tǒng)時鐘執(zhí)行,而且大部分指令只需1~2個系統(tǒng)時鐘即可完成。另外,在執(zhí)行當前指令時,還有可能會部分地處理下一條指令,從而使得有些指令執(zhí)行事件不是很確定。
CIP51存儲組織結構與傳統(tǒng)MCS-51相似,可分為代碼存儲區(qū)和數(shù)據(jù)存儲區(qū)。代碼存儲區(qū)與數(shù)據(jù)存儲區(qū)共享數(shù)據(jù)地址,采用MOVX或MOV指令。
CIP51代碼存儲區(qū)為Flash ROM,不僅可進行讀操作,還可進行寫操作。由于MOVX指令也是外部內存讀/寫操作指令,為了能正確地區(qū)分指令操作對象,在對Flash ROM進行寫操作前,需將相關的控制寄存器正確設置。Flash ROM寫操作完畢后,再將PSCTL.0清零,以便使MOVX指令指向外部內存。
C8051F共有21個中斷,中斷分優(yōu)先級,且優(yōu)先級還可通過相關寄存器IP、EIP1和EIP2調整。若同一時刻有多個中斷發(fā)生,則MCU先進入優(yōu)先級高的中斷,執(zhí)行相應的中斷程序,再執(zhí)行次高優(yōu)先級中斷,一直到優(yōu)先級最低的中斷也處理完畢,再回中斷相應前,執(zhí)行原來的代碼。在中斷處理過程中,若有更高級的中斷發(fā)生,則MCU進入更高級中斷程序執(zhí)行直至完畢,再處理低優(yōu)先級中斷。
CIP51有兩種軟件電源管理模式:休眠態(tài)和停止態(tài)。在休眠態(tài)下,CPU掛起,留下外圍設備和系統(tǒng)時鐘在工作。在停止態(tài)下,CPU掛起,所有的中斷和定時器停止工作,內部晶振停振。
a)休眠態(tài)
將PCON.0置1,立即進入休眠態(tài)。所有的內部內存和SFR寄存器保持原有的數(shù)值,所有的數(shù)字外圍設備和模擬器件正常工作。外部內存只要供電電壓不低于保存值,其數(shù)據(jù)就保持原有的值,與MCU的電源管理模式無關。當中斷發(fā)生或復位時,MCU結束休眠態(tài)。
b)停止態(tài)
將PCON.1置1,立即進入停止態(tài)。在停止態(tài)下,MCU內部晶振停振,關閉所有的數(shù)字外圍設備,模擬器件模塊需在對PCON.1置1前關閉。停止態(tài)無法用中斷喚醒,只能用復位來結束停止態(tài)。CIP51提供了多種復位源,可以與停止態(tài)切換相結合。
當復位發(fā)生時,以下事件會發(fā)生:
1)CIP51執(zhí)行代碼重新回到0x0000 ,即PC值=0x0000 ;
2)SFR寄存器初始化成默認值;
3)外部端口值強制推動到默認值;
4)中斷和定時器被禁止;
5)所有I/O鎖存器的值變?yōu)?xFF,并將弱推挽端口置高電平。
復位結束后,PC值開始計數(shù),內部默認時鐘按最低時鐘頻率起振,程序開始運行,看門狗起作用,時間間隔置為最長??傊磺邪茨J的配置開始運行,一直運行到有代碼改寫配置后,才按代碼所要求的配置繼續(xù)運行。在復位期間程序是不運行的。比如RST一直處于低電平時,則系統(tǒng)處于復位期間,程序并不運行,直到復位結束,才開始運行。
VDD監(jiān)視復位對RST引腳的電平會產生影響,當在VDD監(jiān)視復位期間,RST處于低電平。
有7種情況會導致MCU進入復位狀態(tài):上電,失電,外部RST引腳低電平,外部CNVSTR0信號,軟件命令,比較器0,時鐘失步檢測及看門狗溢出。
C8051F內含一個可編程內部晶振和一個外部晶振驅動電路。內部晶振可以禁用,也可改變其振蕩頻率,這些均可通過OSCICN和OSCICL寄存器操作而得以實現(xiàn)。MCU共有5種起振方式,分別是:外部石英晶振,其旁路電容一般取值為20~30 pF;外部RC振蕩;外部電容振蕩;外部CMOS時鐘輸入;內部可編程晶振。
C8051F閃存含64 kB的程序存儲單元和8448 字節(jié)內部數(shù)據(jù)。閃存支持在線編程,可通過JTAG口或MOVX指令寫入數(shù)據(jù)。在讀寫閃存時,MCU處于掛起狀態(tài),此時若發(fā)生中斷,則中斷入棧,等閃存讀寫完畢再處理。
對閃存寫入編程最簡單的辦法是通過JTAG接口下載。Silabs公司和第三方開發(fā)商均有相應的編寫軟件。當MCU沒有初始化時,這也是唯一的程序代碼寫入方式。
閃存寫入還可以通過MOVX指令在程序中直接完成。其一般寫入順序要求先清0后擦除 (置1),再寫入數(shù)據(jù)。為了避免在MOVX指向Flash后發(fā)生中斷,而在中斷中有對XRAM寫操作引起混亂,應在閃存寫操作期間將中斷關閉。
C8051F集成了外部內存,外部內存擴展可接到P0~P3,也可接到P4~P7,且可以設計成數(shù)據(jù)地址復用方式和非復用方式。若要節(jié)約接口,則采用數(shù)據(jù)地址復用方式,節(jié)省8個位口,但是,這樣做的結果是犧牲了速度;若要追求速度,則采用非復用方式。
外部內存的訪問方式有兩種:
1)DPTR 16位尋址訪問;
2)通過R0或R18位尋址訪問,EMI0CN控制內存頁碼。
當對連續(xù)存儲的內存訪問時,8位尋址訪問效率比16位高。
最簡原理圖如圖1所示:晶振采用外部石英晶振11.0592 MHz,旁路電容接20 P;復位電路采用MAX公司的復位電路MAX6315,采用專用復位電路穩(wěn)定可靠,抗干擾性強;JTAG接口為單片機程序仿真和下載接口,具體的管腳定義則根據(jù)仿真器管腳的定義執(zhí)行。
圖1 最簡原理圖
仿真器采用新華龍公司的U-EC6(C8051系列開發(fā)器),它為設計者提供了快速開發(fā)應用系統(tǒng)的工具,U-EC6具有:完全的USB2.0接口、免安裝驅動程序,硬件加強型保護功能;集成開發(fā)環(huán)境采用Silicon Laboratories IDE,Silicon集成開發(fā)環(huán)境(IDE)是一套完整、獨立的軟件程序,它為設計者提供了用于開發(fā)和測試項目所用的工具。
硬件安裝操作如圖2所示來進行硬件連接。
圖2 硬件連接示意
圖3 調試界面
集成開發(fā)環(huán)境采用Silicon Laboratories IDE集程序代碼的編寫,調試和下載于一體,方便實用,其調試界面如圖3所示。
C8051F系列單片機采用Flash ROM技術,集成JTAG,支持在線編程。它的諸多特點和優(yōu)越性,使其廣受單片機系統(tǒng)設計工程師的青睞,成為很多測控系統(tǒng)設計的首選機型。
[1]C8051F單片機應用解析 [M].潘琢金,孫德龍,夏秀峰譯.北京:北京航空航天大學出版社,2002.
[2]童長飛.C8051F系列單片機開發(fā)與C語言編程 [M].北京:北京航空航天大學出版社,2005.