MCU

微控制單元

微控制單元(Microcontroller Unit;MCU) ,又稱單片微型計算機(Single Chip Microcomputer )或者單片機,是把中央處理器(Central Process Unit;CPU)的頻率與規格做適當縮減,並將內存(memory)、計數器(Timer)、USB、A/D轉換、UART、PLC、DMA等周邊介面,甚至LCD驅動電路都整合在單一晶元上,形成晶元級的計算機,為不同的應用場合做不同組合控制。諸如手機、PC外圍、遙控器,至汽車電子、工業上的步進馬達、機器手臂的控制等,都可見到MCU的身影。

發展歷史


單片機出現的歷史 並不長,但發展十分迅猛。它的產生與發展和微處理器的產生與發展大體同步,自1971年美國Intel公司首先推出4位微處理器以來,它的發展到目前為止大致可分為5個階段。下面以Intel公司的單片機發展為代表加以介紹。
1971-1976
單片機發展的初級階段。 1971年11月Intel公司首先設計出集成度為2000隻晶體管/片的4位微處理器Intel 4004, 並配有RAM、 ROM和移位寄存器, 構成了第一台MCS—4微處理器, 而後又推出了8位微處理器Intel 8008, 以及其它各公司相繼推出的8位微處理器。
1976-1980
低性能單片機階段。以1976年Intel公司推出的MCS—48系列為代表, 採用將8位CPU、 8位并行I/O介面、8位定時/計數器、RAM和ROM等集成於一塊半導體晶元上的單片結構, 雖然其定址範圍有限(不大於4 KB), 也沒有串列I/O, RAM、 ROM容量小,中斷系統也較簡單, 但功能可滿足一般工業控制和智能化儀器、儀錶等的需要。
1980-1983
高性能單片機階段。這一階段推出的高性能8位單片機普遍帶有串列口, 有多級中斷處理系統, 多個16位定時器/計數器。片內RAM、 ROM的容量加大,且定址範圍可達64 KB,個別片內還帶有A/D轉換介面。
1983-80年代末
16位單片機階段。 1983年Intel公司又推出了高性能的16位單片機MCS-96系列, 由於其採用了最新的製造工藝, 使晶元集成度高達12萬隻晶體管/片。
1990年代
單片機在集成度、功能、速度、可靠性、應用領域等全方位向更高水平發展。
按照單片機的特點,單片機的應用分為單機應用與多機應用。在一個應用系統中,只使用一片單片機稱為單機應用。單片機的單機應用的範圍包括:
(1) 測控系統。用單片機可以構成各種不太複雜的工業控制系統、自適應控制系統、數據採集系統等, 達到測量與控制的目的。
(2) 智能儀錶。用單片機改造原有的測量、控制儀錶, 促進儀錶向數字化、智能化、多功能化、綜合化、柔性化方向發展。
(3)機電一體化產品。單片機與傳統的機械產品相結合, 使傳統機械產品結構簡化, 控制智能化。
(4) 智能介面。在計算機控制系統, 特別是在較大型的工業測、控系統中, 用單片機進行介面的控制與管理, 加之單片機與主機的并行工作, 大大提高了系統的運行速度。
(5) 智能民用產品。如在家用電器、玩具、遊戲機、聲像設備、電子秤、收銀機、辦公設備、廚房設備等許多產品中, 單片機控制器的引入, 不僅使產品的功能大大增強, 性能得到提高, 而且獲得了良好的使用效果。
單片機的多機應用系統可分為功能集散系統、并行多機處理及局部網路系統。
(1) 功能集散系統。多功能集散系統是為了滿足工程系統多種外圍功能的要求而設置的多機系統。
(2) 并行多機控制系統。并行多機控制系統主要解決工程應用系統的快速性問題, 以便構成大型實時工程應用系統。
(3) 局部網路系統。
單片機按應用範圍又可分成通用型和專用型。專用型是針對某種特定產品而設計的,例如用於體溫計的單片機、用於洗衣機的單片機等等。在通用型的單片機中,又可按字長分為4位、8位、16/32位,雖然計算機的微處理器現在幾乎是32/64位的天下,8位、16位的微處理器已趨於萎縮,但單片機情況卻不同,8位單片機成本低,價格廉,便於開發,其性能能滿足大部分的需要,只有在航天、汽車、機器人等高技術領域,需要高速處理大量數據時,才需要選用16/32位,而在一般工業領域,8位通用型單片機,仍然是目前應用最廣的單片機。
到目前為止,中國的單片機應用和嵌入式系統開發走過了二十餘年的歷程,隨著嵌入式系統逐漸深入社會生活各個方面,單片機課程的教學也有從傳統的8位處理器平台向32位高級RISC處理器平台轉變的趨勢,但8位機依然難以被取代。國民經濟建設、軍事及家用電器等各個領域,尤其是手機、汽車自動導航設備、PDA、智能玩具、智能家電、醫療設備等行業都是國內急需單片機人才的行業。行業高端目前有超過10餘萬名從事單片機開發應用的工程師,但面對嵌入式系統工業化的潮流和我國大力推動建設“嵌入式軟體工廠”的機遇,我國的嵌入式產品要融入國際市場,形成產業,則必將急需大批單片機應用型人才,這為高職類學生從事這類高技術行業提供了巨大機會。

主要分類


按用途分類:
通用型:將可開發的資源(ROM、RAM、I/O、 EPROM)等全部提供給用戶。
專用型:其硬體及指令是按照某種特定用途而設計,例如錄音機機芯控制器、印表機控制器、電機控制器等。
按其基本操作處理的數據位數分類:
根據匯流排或數據暫存器的寬度,單片機又分為1位、4位、8位、16位、32位甚至64位單片機。4位MCU大部份應用在計算器、車用儀錶、車用防盜裝置、呼叫器、無線電話、CD播放器、LCD驅動控制器、LCD遊戲機、兒童玩具、磅秤、充電器、胎壓計、溫濕度計、遙控器及傻瓜相機等;8位MCU大部份應用在電錶、馬達控制器、電動玩具機、變頻式冷氣機、呼叫器、傳真機、來電辨識器(CallerID)、電話錄音機、CRT顯示器、鍵盤及USB等;8位、16位單片機主要用於一般的控制領域,一般不使用操作系統, 16位MCU大部份應用在行動電話、數字相機及攝錄放影機等;32位MCU大部份應用在Modem、GPS、PDA、HPC、STB、Hub、Bridge、Router、工作站、ISDN電話、激光印表機與彩色傳真機; 32位用於網路操作、多媒體處理等複雜處理的場合,一般要使用嵌入式操作系統。64位MCU大部份應用在高階工作站、多媒體互動系統、高級電視遊樂器(如SEGA的Dreamcast及Nintendo的GameBoy)及高級終端機等。
8位MCU工作頻率在16~50MHz之間,強調簡單效能、低成本應用,在目前MCU市場總值仍有一定地位,而不少MCU業者也持續為8bit MCU開發頻率調節的節能設計,以因應綠色時代的產品開發需求。
16位MCU,則以16位運算、16/24位定址能力及頻率在24~100MHz為主流規格,部分16bit MCU額外提供32位加/減/乘/除的特殊指令。由於32bit MCU出現並持續降價及8bit MCU簡單耐用又便宜的低價優勢下,夾在中間的16bit MCU市場不斷被擠壓,成為出貨比例中最低的產品。
32位MCU可說是MCU市場主流,單顆報價在1.5~4美元之間,工作頻率大多在100~350MHz之間,執行效能更佳,應用類型也相當多元。但32位MCU會因為操作數與內存長度的增加,相同功能的程序代碼長度較8/16bit MCU增加30~40%,這導致內嵌OTP/FlashROM內存容量不能太小,而晶元對外腳位數量暴增,進一步局限32bit MCU的成本縮減能力。
內嵌程序存儲器類型
下面以51單片機為例(MCS-51系列MCU是我國使用最多的單片機),根據其內部存儲器的類型不同可以分為以下幾個基本型:
1.無ROM型:8031
2.ROM型:8051
3.EPROM型:8751
4.EEPROM 型:8951
5.增強型:8032/8052/8752/8952/C8051F
MCU按其存儲器類型可分為無片內ROM型和帶片內ROM型兩種。對於無片內ROM型的晶元,必須外接EPROM才能應用(典型晶元為8031)。帶片內ROM型的晶元又分為片內EPROM型(典型晶元為87C51)、MASK片內掩模ROM型(典型晶元為8051)、片內FLASH型(典型晶元為89C51)等類型,一些公司還推出帶有片內一次性可編程ROM(One Time Programming, OTP)的晶元(典型晶元為97C51)。MASKROM的MCU價格便宜,但程序在出廠時已經固化,適合程序固定不變的應用場合;FLASH ROM的MCU程序可以反覆擦寫,靈活性很強,但價格較高,適合對價格不敏感的應用場合或做開發用途;OTPROM的MCU價格介於前兩者之間,同時又擁有一次性可編程能力,適合既要求一定靈活性,又要求低成本的應用場合,尤其是功能不斷翻新、需要迅速量產的電子產品。
由於MCU強調是最大密集度與最小晶元面積,以有限的程序代碼達成控制功能,因此當今MCU多半使用內建的MaskROM、OTP ROM、EEPROM或Flash內存來儲存韌體碼,MCU內建Flash內存容量從低階4~64KB到最高階512KB~2MB不等。
存儲器結構
MCU根據其存儲器結構可分為哈佛(Harvard)結構和馮▪諾依曼(Von Neumann)結構。現在的單片機絕大多數都是基於馮·諾伊曼結構的,這種結構清楚地定義了嵌入式系統所必需的四個基本部分:一個中央處理器核心,程序存儲器(只讀存儲器或者快閃記憶體)、數據存儲器(隨機存儲器)、一個或者更多的定時/計時器,還有用來與外圍設備以及擴展資源進行通信的輸入/輸出埠,所有這些都被集成在單個集成電路晶元上。
指令結構
MCU根據指令結構又可分為CISC(Complex Instruction Set Computer,複雜指令集計算機)和RISC(Reduced Instruction Set Comuter,精簡指令集計算機微控制器)

技術原理


MCU同溫度感測器之間通過I2C匯流排連接。I2C匯流排佔用2條MCU輸入輸出口線,二者之間的通信完全依靠軟體完成。溫度感測器的地址可以通過2根地址引腳設定,這使得一根I2C匯流排上可以同時連接8個這樣的感測器。本方案中,感測器的7位地址已經設定為1001000。MCU需要訪問感測器時,先要發出一個8位的寄存器指針,然後再發出感測器的地址(7位地址,低位是WR信號)。感測器中有3個寄存器可供MCU使用,8位寄存器指針就是用來確定MCU究竟要使用哪個寄存器的。本方案中,主程序會不斷更新感測器的配置寄存器,這會使感測器工作於單步模式,每更新一次就會測量一次溫度。
要讀取感測器測量值寄存器的內容,MCU必須首先發送感測器地址和寄存器指針。MCU發出一個啟動信號,接著發出感測器地址,然後將RD/WR管腳設為高電平,就可以讀取測量值寄存器。
為了讀出感測器測量值寄存器中的16位數據,MCU必須與感測器進行兩次8位數據通信。當感測器上電工作時,默認的測量精度為9位,分辨力為0.5 C/LSB(量程為-128.5 C至128.5 C)。本方案採用默認測量精度,根據需要,可以重新設置感測器,將測量精度提高到12位。如果只要求作一般的溫度指示,比如自動調溫器,那麼分辨力達到1 C就可以滿足要求了。這種情況下,感測器的低8位數據可以忽略,只用高8位數據就可以達到分辨力1 C的設計要求。由於讀取寄存器時是按先高8位后低8位的順序,所以低8位數據既可以讀,也可以不讀。只讀取高8位數據的好處有二,第一是可以縮短MCU和感測器的工作時間,降低功耗;第二是不影響分辨力指標。
MCU讀取感測器的測量值后,接下來就要進行換算並將結果顯示在LCD上。整個處理過程包括:判斷顯示結果的正負號,進行二進位碼到BCD碼的轉換,將數據傳到LCD的相關寄存器中。
數據處理完畢並顯示結果之後,MCU會向感測器發出一個單步指令。單步指令會讓感測器啟動一次溫度測試,然後自動進入等待模式,直到模數轉換完畢。MCU發出單步指令后,就進入LPM3模式,這時MCU系統時鐘繼續工作,產生定時中斷喚醒CPU。定時的長短可以通過編程調整,以便適應具體應用的需要。

主要區別


在20世紀最值得人們稱道的成就中,就有集成電路和電子計算機的發展。20世紀70年代出現的微型計算機,在科學技術界引起了影響深遠的變革。在70年代中期,微型計算機家族中又分裂出一個小小的派系--單片機。隨著4位單片機出現之後,又推出了8位的單片機。MCS48系列,特別是MCS51系列單片機的出現,確立了單片機作為微控制器(MCU)的地位,引起了微型計算機領域新的變革。在當今世界上,微處理器(MPU)和微控制器(MCU)形成了各具特色的兩個分支。它們互相區別,但又互相融合、互相促進。與微處理器(MPU)以運算性能和速度為特徵的飛速發展不同,微控制器(MCU)則是以其控制功能的不斷完善為發展標誌的。
CPU(Central Processing Unit,中央處理器)發展出來三個分枝,一個是DSP(Digital Signal Processing/Processor,數字信號處理),另外兩個是MCU(Micro Control Unit,微控制器單元)和MPU(Micro Processor Unit,微處理器單元)。
MCU集成了片上外圍器件;MPU不帶外圍器件(例如存儲器陣列),是高度集成的通用結構的處理器,是去除了集成外設的MCU;DSP運算能力強,擅長很多的重複數據運算,而MCU則適合不同信息源的多種數據的處理診斷和運算,側重於控制,速度並不如DSP。MCU區別於DSP的最大特點在於它的通用性,反應在指令集和定址模式中。DSP與MCU的結合是DSC,它終將取代這兩種晶元。
1.對密集的乘法運算的支持
GPP不是設計來做密集乘法任務的,即使是一些現代的GPP,也要求多個指令周期來做一次乘法。而DSP處理器使用專門的硬體來實現單周期乘 法。DSP處理器還增加了累加器寄存器來處理多個乘積的和。累加器寄存器通常比其他寄存器寬,增加稱為結果bits的額外bits來避免溢出。同時,為了 充分體現專門的乘法-累加硬體的好處,幾乎所有的DSP的指令集都包含有顯式的MAC指令。
2. 存儲器結構
傳統上,GPP使用馮。諾依曼存儲器結構。這種結構中,只有一個存儲器空間通過一組匯流排(一個地址匯流排和一個數據匯流排)連接到處理器核。通常,做一次乘法會發生4次存儲器訪問,用掉至少四個指令周期。
大多數DSP採用了哈佛結構,將存儲器空間劃分成兩個,分別存儲程序和數據。它們有兩組匯流排連接到處理器核,允許同時對它們進行訪問。這種安排將處理器存儲器的帶寬加倍,更重要的是同時為處理器核提供數據與指令。在這種布局下,DSP得以實現單周期的MAC指令。
典型的高性能GPP實際上已包含兩個片內高速緩存,一個是數據,一個是指令,它們直接連接到處理器核,以加快運行時的訪問速度。從物理上說,這種片內的雙存儲器和匯流排的結構幾乎與哈佛結構的一樣了。然而從邏輯上說,兩者還是有重要的區別。
GPP使用控制邏輯來決定哪些數據和指令字存儲在片內的高速緩存里,其程序員並不加以指定(也可能根本不知道)。與此相反,DSP使用多個片內 存儲器和多組匯流排來保證每個指令周期內存儲器的多次訪問。在使用DSP時,程序員要明確地控制哪些數據和指令要存儲在片內存儲器中。程序員在寫程序時,必 須保證處理器能夠有效地使用其雙匯流排。
此外,DSP處理器幾乎都不具備數據高速緩存。這是因為DSP的典型數據是數據流。也就是說,DSP處理器對每個數據樣本做計算后,就丟棄了,幾乎不再重複使用。
3.零開銷循環
如果了解到DSP演演算法的一個共同的特點,即大多數的處理時間是花在執行較小的循環上,也就容易理解,為什麼大多數的DSP都有專門的硬體,用於 零開銷循環。所謂零開銷循環是指處理器在執行循環時,不用花時間去檢查循環計數器的值、條件轉移到循環的頂部、將循環計數器減1。
與此相反,GPP的循環使用軟體來實現。某些高性能的GPP使用轉移預報硬體,幾乎達到與硬體支持的零開銷循環同樣的效果。
4.定點計算
大多數DSP使用定點計算,而不是使用浮點。雖然DSP的應用必須十分注意數字的精確,用浮點來做應該容易的多,但是對DSP來說,廉價也是非 常重要的。定點機器比起相應的浮點機器來要便宜(而且更快)。為了不使用浮點機器而又保證數字的準確,DSP處理器在指令集和硬體方面都支持飽和計算、舍 入和移位。
5.專門的定址方式
DSP處理器往往都支持專門的定址模式,它們對通常的信號處理操作和演演算法是很有用的。例如,模塊(循環)定址(對實現數字濾波器延時線很有用)、位倒序定址(對FFT很有用)。這些非常專門的定址模式在GPP中是不常使用的,只有用軟體來實現。
6.執行時間的預測
大多數的DSP應用(如蜂窩電話和數據機)都是嚴格的實時應用,所有的處理必須在指定的時間內完成。這就要求程序員準確地確定每個樣本需要多少處理時間,或者,至少要知道,在最壞的情況下,需要多少時間。如果打算用低成本的GPP去完成實時信號處理的任務,執行時間的預測大概不會成為什麼問題,應為低成本GPP具有相對直接的結構,比較容易預測執行時間。然而,大多數實時DSP應用所要求的處理能力是低成本GPP所不能提供的。這時候,DSP對高性能GPP的優勢在於,即便是使用了高速緩存的DSP,哪些指令會放進去也是由程序員(而不是處理器)來決定的,因此很容易判斷指令是從高速緩存還是從存儲器中讀取。DSP一般不使用動態特性,如轉移預測和推理執行等。因此,由一段給定的代碼來預測所要求的執行時間是完全直截了當的。從而使程序員得以確定晶元的性能限制。
7.定點DSP指令集
定點DSP指令集是按兩個目標來設計的:使處理器能夠在每個指令周期內完成多個操作,從而提高每個指令周期的計算效率。將存貯DSP程序的存儲器空間減到最小(由於存儲器對整個系統的成本影響甚大,該問題在對成本敏感的DSP應用中尤為重要)。為了實現這些目標,DSP處理器的指令集通常都允許程序員在一個指令內說明若干個并行的操作。例如,在一條指令包含了MAC操作,即同時的一個或兩個數據移動。在典型的例子里,一條指令就包含了計算FIR濾波器的一節所需要的所有操作。這種高效率付出的代價是,其指令集既不直觀,也不容易使用(與GPP的指令集相比)。 GPP的程序通常並不在意處理器的指令集是否容易使用,因為他們一般使用象C或C++等高級語言。而對於DSP的程序員來說,不幸的是主要的DSP應用程序都是用彙編語言寫的(至少部分是彙編語言優化的)。這裡有兩個理由:首先,大多數廣泛使用的高級語言,例如C,並不適合於描述典型的DSP演演算法。其次, DSP結構的複雜性,如多存儲器空間、多匯流排、不規則的指令集、高度專門化的硬體等,使得難於為其編寫高效率的編譯器。即便用編譯器將C源代碼編譯成為DSP的彙編代碼,優化的任務仍然很重。典型的DSP應用都具有大量計算的要求,並有嚴格的開銷限制,使得程序的優化必不可少(至少是對程序的最關鍵部分)。因此,考慮選用DSP的一個關鍵因素是,是否存在足夠的能夠較好地適應DSP處理器指令集的程序員。
8.開發工具的要求
因為DSP應用要求高度優化的代碼,大多數DSP廠商都提供一些開發工具,以幫助程序員完成其優化工作。例如,大多數廠商都提供處理器的模擬工具,以準確地模擬每個指令周期內處理器的活動。無論對於確保實時操作還是代碼的優化,這些都是很有用的工具。 GPP廠商通常並不提供這樣的工具,主要是因為GPP程序員通常並不需要詳細到這一層的信息。GPP缺乏精確到指令周期的模擬工具,是DSP應用開發者所面臨的的大問題:由於幾乎不可能預測高性能GPP對於給定任務所需要的周期數,從而無法說明如何去改善代碼的性能。

應用大會


MCU技術創新與嵌入式應用大會是伴隨著高交會電子展一起開展的一個有關MCU技術的交流應用論壇。由深圳市創意時代會展有限公司承辦,內容上安排通常是上午由國內專業人士對mcu知識和創新應用進行演講,下午論壇,自由暢談交流技術及行業趨勢等。
第四屆
時間:2012年8月21日
地點:深圳會展中心
相關展會:2012年嵌入式系統展
大會全稱:第四屆MCU技術創新與嵌入式應用大會
支持媒體:電子展覽網
主題演講(上午):
從MCU到SoC
MCU技術的融合、開放與創新
將嵌入式系統無縫升級32位MCU
更綠色可靠的嵌入式設計,等
分論壇(下午)深入更多嵌入式應用市場:
分論壇1:家用電器/智能家居
分論壇2:人機界面/IPC
分論壇3:電機控制
第三屆
將重點呈現:嵌入式世界創新關鍵 及 中國企業產品升級轉型所需MCU與嵌入式方案。
時間:2011年11月18日
地點:深圳
主辦單位:第十三屆深圳高交會電子展組委會
承辦單位:創意時代會展 電子展覽網
主題演講(上午)內容包括:
多核MCU發展趨勢
MCU到SoC
智能系統的安全性與可靠性等
MCU!MCU!2011觸角深入最新應用市場(下午):
分論壇1:家用電器/智能家居
分論壇2:智能計量
分論壇3:人機界面/IPC
分論壇4:電機控制
以往回顧
2009年有460多位專業人士出席
2010年有606位專業人士出席
2010年專業聽眾分析
MCU!MCU!2010吸引了來自IBM西門子、研祥、艾默生TCL創維康佳、美的、中興、聯想、富士康、偉創力、比亞迪等上百家國內外知名企業606位技術及管理人員到會參與:
專業聽眾中研發技術人員超過了一半
技術研發人員佔到52%,其次是中、高層管理人員佔33%;少部分為市場/營銷人員,佔13%,其他佔2%
MCU
MCU
專業聽眾從事的領域分佈 參會人員所在的企業,消費電子佔37%;工業電子佔24%;嵌入式系統設計佔22%;醫療電子佔19%;汽車電子,嵌入式軟體開發,各佔15%;家電14%;手機與通訊11%;IT與網路10%;其他佔9%。