發展歷程
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系列微控制器,這也是大量套用的8位微控制器系列。
基於RISC架構的微控制器則包括Microchip的PIC系列8位微控制器等。在16位RISC架構的微控制器中,Maxim公司推出的MAXQ系列微控制器以其高性能、低功耗和卓越的代碼執行效率,成為許多需要高精度混合信號處理以及攜帶型系統和電池供電系統的理想選擇。
分類
微控制器(Microcontroller Unit,即MCU)可從不同方面進行分類:根據數據匯流排寬度可分為8位、16位和32位機;根據存儲器結構可分為Harvard結構和Von Neumann結構;根據內嵌程式存儲器的類別可分為OTP、掩膜、EPROM/EEPROM和快閃記憶體Flash;根據指令結構又可分為CISC(Complex Instruction Set Computer)和RISC(Reduced Instruction Set Computer)微控制器。
核心
基於8051核心的CISC微控制器
迄今為止,MCS-51已成為8位機中運行最慢的系列。現在Dallas推出的DS89C430系列產品在保持與80C51引腳和指令集兼容的基礎上,每個機器周期僅為一個時鐘,實現了8051系列的最高吞吐率。一般而言,對於現有的基於8051的套用軟體可以直接寫入DS89C430而無需進行更改。除此之外,DS89C430還在許多其他方面引入了新的功能,從而為具體套用提供了更多靈活性。下面介紹DS89C430不同於8051的功能和特點。
片內程式存儲器及套用
片內程式存儲器邏輯上分為成對的8 KB、16 KB或32 KB快閃記憶體單元,以支持在套用編程。這允許器件在套用軟體的控制下修改程式存儲器,套用系統能夠在執行其主要功能的情況下,完成線上軟體升級。DS89C430集成了64 B加密陣列,允許用戶以加密形式查看數據,進行程式代碼校驗。
器件支持通過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。
對於某具體套用,電容和電源電壓相對固定,而處理器的處理速度在不同時刻可能是不同的,因此工作頻率可以根據不同需要進行調整,從而在不影響系統性能的前提下達到降低功耗的要求。
DS89C430支持三種低功耗節電模式。
①系統時鐘分頻控制:允許微控制器使用內部分頻的時鐘源繼續工作,以節省功耗。通過軟體設定時鐘分頻控制位,設定工作速率為每機器周期1024個振盪器周期.
②空閒模式:以靜態方式保持程式計數器,並掛起處理器。在此模式中,處理器不取指令也不執行指令。除了外圍接口時鐘保持為活動狀態以及定時器、看門狗、串口和電源監視功能仍然工作外,所有的資源均保存。處理器能夠使用允許的中斷源退出空閒模式。
③停機模式:禁止處理器內部的所有電路。所有片內時鐘、定時器和串口通信都停止運行,處理器不執行任何指令。通過使用六個外部中斷中的任何一個,處理器都能夠退出停機模式。
架構
基於RISC架構的微控制器
MAXQ2000微控制器是Maxino/Dallas公司推出的一款基於RISC架構的16位微控制器。理解這款微控制器的一些結構特點,可以使我們更好地理解RISC結構微控制器的最新發展趨勢和技術特點,從而為我們構建新型系統提供更加理想的選擇。MAXQ2000的指令讀取和執行操作在一個周期內完成,而沒有流水線操作,這是因為指令既包含了操作碼也包括了數據。字母Q表示這款微控制器的一個重要特點便是“安靜”,MAXQ架構通過智慧型化的時鐘管理來降低噪聲.這意味著MAXQ只向那些需要使用時鐘的電路提供時鐘,這樣既降低了功耗,又為模擬電路的整合提供了一個最安靜的環境。它包含液晶顯示(LCD)接口,最多可以驅動100或132段(兩種版本)。這款微控制器的功耗指標和MIPS/MHz代碼效率方面都在同類微控制器當中遙遙領先.下面介紹MAXQ2000的主要特性。
指令集
指令集由23條對暫存器和存儲器進行操作的固定長度的16位指令組成。指令集高度正交,允許算術和邏輯操作使用累加器和任何暫存器。特殊功能暫存器控制外圍設備,並細分成暫存器模組。產品系列的結構是模組化的,因此新的器件和模組能夠繼續使用為現有產品開發的代碼.該結構是基於傳送觸發的,這意味著對某一暫存器位置的讀或寫會產生額外作用。這些額外作用構成了由彙編器定義的高層操作碼的基礎,如ADDC、OR和JUMP等。
存儲器
MAXQ2000具有32KB快閃記憶體、lKBRAM、4KB的內部ROM存儲器塊和16級堆疊存儲器。存儲器預設配置成Harvard結構,程式和數據存儲器具有獨立的地址空間,還可以使能為Vorl Ncumann存儲器配置模式,即將固定用途ROM、代碼和數據存儲器放置到一個連續的存儲器映射中.這適合於需要進行動態程式修改或特殊存儲器配置的套用。快閃記憶體程式存儲器可以通過16字密鑰進行密碼保護,從而防止未授權者訪問程式存儲器。同時,還具有3個數據指針,支持高效快速地處理數據.
固定用途ROM由可以在套用軟體中進行調用的子程式組成(預設起始地址為8000H).包括:通過JTAG或UART接口進行在系統編程(引導載入程式);在電路調試程式;測試程式(內部存儲器測試,存儲器載入等);用於在套用快閃記憶體編程和快速查找表的用戶可調用程式。無論以任何方式復位,都從固定用途ROM開始運行程式。R。M軟體決定程式立刻跳轉到8000H位置、用戶套用代碼的起始位置、還是上面提到的某特定用途子程式.用戶可訪問固定用途ROM中的程式,並且可以由套用軟體調用這些程式。
暫存器組
器件的大多數功能是由暫存器組來控制的。這些暫存器為存儲器操作提供工作空間,並配置和定址器件上的外設暫存器。暫存器分成兩大類:系統暫存器和外設暫存器.公共暫存器組也稱作系統暫存器,包括ALU、累加器暫存器、數據指針、堆疊指針等。外設暫存器定義了可能包含在基於MAXQ架構的不同產品中的附加功能.
電源管理
MAXQ2000同樣提供了先進的電源管理功能,根據系統不同時刻的不同性能需求,可以動態設定處理速度,從而大大降低功耗。通過軟體選擇分頻功能,來選擇系統時鐘周期是l、2、4或者8個振藹周期。為進一步降低功耗,還有另外三種低功耗模式,256分頻、32 kH。和停機模式。
中斷
提供多箇中斷源,可對內部和外部事件快速回響。MAXQ結構採用了單一中斷向量(IV)和單一中斷服務程式(ISR)設計。必須在用戶中斷程式內清除中斷標誌,以避免由同一中斷源引發重複中斷。當檢測到使能的中斷時,軟體跳轉到一個用戶可程式的中斷向量位置。
一旦軟體控制權轉移到ISR,可以使用中斷識別暫存器(IIR)來判定中斷源是系統暫存器還是外設暫存器。然後,就可以查詢特定模組以確定具體中斷源,並採取相應的操作。由於中斷源是由用戶軟體識別的,因此用戶可以為每種套用確立一個獨特的中斷優先權方案。
硬體乘法器
集成的硬體乘法器模組執行高速乘法、乘方和累加操作,並能在一個周期內完成一個16位×16位乘法和累加操作。硬體乘法器由2個]6位並行載入運算元暫存器(MA,MB)和1個累加器組成。載入暫存器能夠自動啟動操作,從而節省了重複計算的時間。硬體乘法器的累加功能是數字濾波、信號處理以及PII)控制系統中的一個基奉單元,這使得MAXQ2000可以勝任需要大量數學運算的套用。
體系結構
哈佛結構
哈佛結構是一種將程式指令存儲和數據存儲分開的存儲器結構。中央處理器首先到程式指令存儲器中讀取程式指令內容,解碼後得到數據地址,再到相應的數據存儲器中讀取數據,並進行下一步的操作(通常是執行)。程式指令存儲和數據存儲分開,可以使指令和數據有不同的數據寬度,如Microchip公司的PIC16晶片的程式指令是14位寬度,而數據是8位寬度。
哈佛結構的微處理器通常具有較高的執行效率。其程式指令和數據指令分開組織和存儲的,執行時可以預先讀取下一條指令。目前使用哈佛結構的中央處理器和微控制器有很多,除了上面提到的Microchip公司的PIC系列晶片,還有摩托羅拉公司的MC68系列、Zilog公司的Z8系列、ATMEL公司的AVR系列和安謀公司的ARM9、ARM10和ARM11,51單片機也屬於哈佛結構。
諾伊曼結構
馮·諾伊曼結構也稱普林斯頓結構,是一種將程式指令存儲器和數據存儲器合併在一起的存儲器結構。程式指令存儲地址和數據存儲地址指向同一個存儲器的不同物理位置,因此程式指令和數據的寬度相同,如英特爾公司的8086中央處理器的程式指令和數據都是16位寬。
目前使用馮·諾伊曼結構的中央處理器和微控制器有很多。除了上面提到的英特爾公司的8086,英特爾公司的其他中央處理器、安謀公司的ARM7、MIPS公司的MIPS處理器也採用了馮·諾伊曼結構。
發展前景
通過以上兩種基於CISC.和RISC架構的微控制器的對比分析,會發現許多共同的特性,如安全特性、外圍設備、電源管理和在系統編程等。顯然.它們都是適應具體套用的共性要求而增加的功能。兩者最大的不同是指令結構的差異。MCS一5l有50條基本指令,若累計各種不同定址方式,指令總計lll條,對應的機器指令有單位元組、雙位元組和三位元組指令~68H(:05有62條基本指令,加上多種定址方式,最終指令達210條,也分為單位元組、雙位元組和三位元組指令。比較而言,RIS(:微控制器的所有指令是由一些簡單、等長度的指令構成.精簡指令使微控制器的線路可以儘量最佳化,硬體結構更加簡單,從而可以實現較低的成本和功耗,當然完成相同的工作可能需要更多的指令。所以,二者取捨之間沒有絕對優勢,只能說根據套用的不同需求和側重來進行選擇。
微處理器是20世紀偉大的技術創新之一,由此而衍生的微控制器將微處理器和外設集於一身,為多種套用開創了新局面,並將繼續發揮不可替代的作用。