微控制單元(Microcontroller Unit;MCU) ,又稱單片微型計算機(Single Chip Microcomputer )或者單片機,是把中央處理器(Central Process Unit;CPU)的頻率與規格做適當縮減,并將內存(memory)、計數器(Timer)、USB、A/D轉換、UART、PLC、DMA等周邊接口,甚至LCD驅動電路都整合在單一芯片上,形成芯片級的計算機,為不同的應用場合做不同組合控制。諸如手機、PC外圍、遙控器,至汽車電子、工業上的步進馬達、機器手臂的控制等,都可見到MCU的身影。 技術原理 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對于給定任務所需要的周期數,從而無法說明如何去改善代碼的性能。 發展歷史 單片機出現的歷史并不長,但發展十分迅猛。 它的產生與發展和微處理器的產生與發展大體同步,自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余萬名從事單片機開發應用的工程師,但面對嵌入式系統工業化的潮流和我國大力推動建設“嵌入式軟件工廠”的機遇,我國的嵌入式產品要溶入國際市場,形成產業,則必將急需大批單片機應用型人才,這為高職類學生從事這類高技術行業提供了巨大機會。 免責聲明:本文轉自網絡,版權歸原作者,如果您覺得不好,請聯系我們刪除! 深圳市菲利盟電子技術有限公司 |