分類
微控制器可從不同方面進行分類:根據數據總線寬度可分為8位、16位和32位機。根據存儲器結構可分為Harvard結構和Von Neumann結構;根據内嵌程序存儲器的類别可分為OTP、掩膜、EPROM/EEPROM和閃存Flash;根據指令結構又可分為CISC(Complex Instruction Set Computer)和RISC(Reduced Instruction Set Computer)微控制器。本文将結合不同指令結構微控制器的發展及其特性進行論述。
發展曆程
Intel公司作為最早推出微處理器的公司,同樣也是最早推出微控制器的公司。繼1976年推出MCS-48後,又于1980年推出了MCS-51,為發展具有良好兼容性的新一代微控制器奠定了良好的基礎。在8051技術實現開放後,Philips、Atmel、Dallas和Siemens等公司紛紛推出了基于80C5l内核(805l的CMC)S版本)的微控制器。這些各具特色的産品能夠滿足大量嵌入式應用需求。基于80C51内核的微控制器并沒有停止發展的腳步,例如現在Maxim/Dallas公司提供的DS89C430系列微控制器,其單周期指令速度已經提高到了805l的12倍。
基于CISC架構的微控制器除了80C51外,還包括Motorola提供的68HC系列微控制器,這也是大量應用的微控制器系列。
基于RISC架構的微控制器則包括Microchip的PIC系列8位微控制器等。在16位RISC架構的微控制器中,Maxim公司推出的MAXQ系列微控制器以其高性能、低功耗和卓越的代碼執行效率,成為許多需要高精度混合信号處理以及便攜式系統和電池供電系統的理想選擇。
迄今為止,MCS-51已成為8位機中運行最慢的系列。現在Dallas推出的DS89C430系列産品在保持與80C51引腳和指令集兼容的基礎上,每個機器周期僅為一個時鐘,實現了8051系列的最高吞吐率。一般而言,對于現有的基于8051的應用軟件可以直接寫入DS89C430而無需進行更改。除此之外,DS89C430還在許多其他方面引入了新的功能,從而為具體應用提供了更多靈活性。下面介紹DS89C430不同于8051的功能和特點。
内核
基于8051内核的CISC微控制器,迄今為止,MCS-51已成為8位機中運行最慢的系列。現在Dallas推出的DS89C430系列産品在保持與80C51引腳和指令集兼容的基礎上,每個機器周期僅為一個時鐘,實現了8051系列的最高吞吐率。一般而言,對于現有的基于8051的應用軟件可以直接寫入DS89C430而無需進行更改。除此之外,DS89C430還在許多其他方面引入了新的功能,從而為具體應用提供了更多靈活性。下面介紹DS89C430不同于8051的功能和特點。
片内程序存儲器及應用
片内程序存儲器邏輯上分為成對的8KB、16KB或32KB閃存單元,以支持在應用編程。這允許器件在應用軟件的控制下修改程序存儲器,應用系統能夠在執行其主要功能的情況下,完成在線軟件升級。DS89C430集成了64B加密陣列,允許用戶以加密形式查看數據,進行程序代碼校驗。
器件支持通過RS-232串口實現在系統編程。在系統編程通過将器件的一個或多個外部引腳設置為某特定狀态來激活引導加載程序。器件啟動後,開始執行駐留于器件内部專用ROM的加載程序。一旦收到一個回車符号,串口就執行自動波特率功能,并與主機的波特率同步。如圖1所示是在系統編程的物理連接.簡單的引導加載程序接口允許使用幾種方法來實現PC機與目标微控制器間的通信。最簡單的方法是使用Dallas的微控制器工具包(MTK)軟件.它具有高度前端特征,簡化了目标配置,上傳、下載代碼以及特殊功能配置等任務操作。
雙數據指針
8051微控制器是通過MOVX指令來訪問片外數據空間的,用MOVX@DPTR指令可訪問整個64 KB的片外數據存儲器。傳統的8051隻有一個數據指針DPTR,要将數據從一個地址移到另一個地址非常麻煩。DS89C430則具備雙數據指針DPTR0和DPTRl,因此軟件可以使用一個指針裝載源地址,另一個指針裝載目的地址。DPTR0的SFR地址與805l相同(82H和83H),因此使用該指針時源代碼無需更改,DPTRl位于84H和85H地址。所有與數據指針相關的操作都使用活動數據指針,活動指針通過控制位SEL選擇。每個指針還各有一個控制位,決定INCDPTR操作是遞增還是遞減數據指針值。
在拷貝數據塊時,與使用單數據指針相比,雙數據指針可以節省大量代碼。用戶通過轉換SEL位來轉換活動數據指針,其中一種方法可通過執行INCDPS指令來實現。對于這些大的數據塊拷貝,用戶必須頻繁執行該指令來轉換DPTR0和DPTRl。為了在節省代碼的同時提高運行速度和效率,DS89C430又包含了一個轉換選擇位 (TSL),來确定執行MOVX指令時硬件是否自動轉換SEL位,這樣就可以省去INCDPS指令并進一步提高運行速度。
大的數據塊拷貝需要源指針和目的指針逐字節尋址數據空間,傳統的方法是通過使用INCDPTR指令來增加數據指針。為了進一步提高數據傳輸速率,引入了自動增減控制位(AID),用以确定執行MOVX指令時,是否會自動增減活動指針值。表l為各種情況下DS80C320和DS89C430進行64B數據塊傳輸時的速度比較。從表l中可以看出,采用雙數據指針後運行速度得到極大提高。
電源管理和時鐘分頻控制
CMOS電路的功耗主要由兩部分組成:連續漏電流造成的靜态功耗以及對負載電容進行充放電所需的轉換開關電流造成的動态功耗。其中,動态功耗是總體功耗的主要部分,該功耗(PD)可以通過負載電容(CL)、電源電壓(VDD)和工作頻率(f)進行計算,即:PD=CL×VDD2×f。
對于某具體應用,電容和電源電壓相對固定,而處理器的處理速度在不同時刻可能是不同的,因此工作頻率可以根據不同需要進行調整,從而在不影響系統性能的前提下達到降低功耗的要求。
體系
哈佛結構
哈佛結構是一種将程序指令存儲和數據存儲分開的存儲器結構。中央處理器首先到程序指令存儲器中讀取程序指令内容,解碼後得到數據地址,再到相應的數據存儲器中讀取數據,并進行下一步的操作(通常是執行)。程序指令存儲和數據存儲分開,可以使指令和數據有不同的數據寬度,如Microchip公司的PIC16芯片的程序指令是14位寬度,而數據是8位寬度。
哈佛結構的微處理器通常具有較高的執行效率。其程序指令和數據指令分開組織和存儲的,執行時可以預先讀取下一條指令。目前使用哈佛結構的中央處理器和微控制器有很多,除了上面提到的Microchip公司的PIC系列芯片,還有摩托羅拉公司的MC68系列、Zilog公司的Z8系列、ATMEL公司的AVR系列和安謀公司的ARM9、ARM10和ARM11,51單片機也屬于哈佛結構。
諾伊曼結構
馮·諾伊曼結構也稱普林斯頓結構,是一種将程序指令存儲器和數據存儲器合并在一起的存儲器結構。程序指令存儲地址和數據存儲地址指向同一個存儲器的不同物理位置,因此程序指令和數據的寬度相同,如英特爾公司的8086中央處理器的程序指令和數據都是16位寬。
目前使用馮·諾伊曼結構的中央處理器和微控制器有很多。除了上面提到的英特爾公司的8086,英特爾公司的其他中央處理器、安謀公司的ARM7、MIPS公司的MIPS處理器也采用了馮·諾伊曼結構。



















