[liantaiwei]微控制單元(Microcontroller Unit;MCU) 技術原理——聯泰威電子

[liantaiwei]微控制單元(Microcontroller Unit;MCU) 技術原理——聯泰威電子

2018-05-19handler2011

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

 

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


技術原理


MCU同溫度傳感器之間通過(guò)I2C總線連接。I2C總線占用2條MCU輸入輸出口線,二者之間的通信完全依靠軟件完成(chéng)。溫度傳感器的地址可以通過(guò)2根地址引腳設定,這(zhè)使得一根I2C總線上可以同時(shí)連接8個這(zhè)樣(yàng)的傳感器。本方案中,傳感器的7位地址已經(jīng)設定爲1001000。MCU需要訪問傳感器時(shí),先要發(fā)出一個8位的寄存器指針,然後(hòu)再發(fā)出傳感器的地址(7位地址,低位是WR信号)。傳感器中有3個寄存器可供MCU使用,8位寄存器指針就(jiù)是用來确定MCU究竟要使用哪個寄存器的。本方案中,主程序會(huì)不斷更新傳感器的配置寄存器,這(zhè)會(huì)使傳感器工作于單步模式,每更新一次就(jiù)會(huì)測量一次溫度。


要讀取傳感器測量值寄存器的内容,MCU必須首先發(fā)送傳感器地址和寄存器指針。MCU發(fā)出一個啓動信号,接著(zhe)發(fā)出傳感器地址,然後(hòu)將(jiāng)RD/WR管腳設爲高電平,就(jiù)可以讀取測量值寄存器。


爲了讀出傳感器測量值寄存器中的16位數據,MCU必須與傳感器進(jìn)行兩(liǎng)次8位數據通信。當傳感器上電工作時(shí),默認的測量精度爲9位,分辨力爲0.5 C/LSB(量程爲-128.5 C至128.5 C)。本方案采用默認測量精度,根據需要,可以重新設置傳感器,將(jiāng)測量精度提高到12位。如果隻要求作一般的溫度指示,比如自動調溫器,那麼(me)分辨力達到1 C就(jiù)可以滿足要求了。這(zhè)種(zhǒng)情況下,傳感器的低8位數據可以忽略,隻用高8位數據就(jiù)可以達到分辨力1 C的設計要求。由于讀取寄存器時(shí)是按先高8位後(hòu)低8位的順序,所以低8位數據既可以讀,也可以不讀。隻讀取高8位數據的好(hǎo)處有二,第一是可以縮短MCU和傳感器的工作時(shí)間,降低功耗;第二是不影響分辨力指标。


MCU讀取傳感器的測量值後(hòu),接下來就(jiù)要進(jìn)行換算并將(jiāng)結果顯示在LCD上。整個處理過(guò)程包括:判斷顯示結果的正負号,進(jìn)行二進(jìn)制碼到BCD碼的轉換,將(jiāng)數據傳到LCD的相關寄存器中。


數據處理完畢并顯示結果之後(hòu),MCU會(huì)向(xiàng)傳感器發(fā)出一個單步指令。單步指令會(huì)讓傳感器啓動一次溫度測試,然後(hòu)自動進(jìn)入等待模式,直到模數轉換完畢。MCU發(fā)出單步指令後(hòu),就(jiù)進(jìn)入LPM3模式,這(zhè)時(shí)MCU系統時(shí)鍾繼續工作,産生定時(shí)中斷喚醒CPU。定時(shí)的長(cháng)短可以通過(guò)編程調整,以便适應具體應用的需要。


主要區别


在20世紀最值得人們稱道(dào)的成(chéng)就(jiù)中,就(jiù)有集成(chéng)電路和電子計算機的發(fā)展。20世紀70年代出現的微型計算機,在科學(xué)技術界引起(qǐ)了影響深遠的變革。在70年代中期,微型計算機家族中又分裂出一個小小的派系--單片機。随著(zhe)4位單片機出現之後(hòu),又推出了8位的單片機。MCS48系列,特别是MCS51系列單片機的出現,确立了單片機作爲微控制器(MCU)的地位,引起(qǐ)了微型計算機領域新的變革。在當今世界上,微處理器(MPU)和微控制器(MCU)形成(chéng)了各具特色的兩(liǎng)個分支。它們互相區别,但又互相融合、互相促進(jìn)。與微處理器(MPU)以運算性能(néng)和速度爲特征的飛速發(fā)展不同,微控制器(MCU)則是以其控制功能(néng)的不斷完善爲發(fā)展标志的。


CPU(Central Processing Unit,中央處理器)發(fā)展出來三個分枝,一個是DSP(Digital Signal Processing/Processor,數字信号處理),另外兩(liǎng)個是MCU(Micro Control Unit,微控制器單元)和MPU(Micro Processor Unit,微處理器單元)。


MCU集成(chéng)了片上外圍器件;MPU不帶外圍器件(例如存儲器陣列),是高度集成(chéng)的通用結構的處理器,是去除了集成(chéng)外設的MCU;DSP運算能(néng)力強,擅長(cháng)很多的重複數據運算,而MCU則适合不同信息源的多種(zhǒng)數據的處理診斷和運算,側重于控制,速度并不如DSP。MCU區别于DSP的最大特點在于它的通用性,反應在指令集和尋址模式中。DSP與MCU的結合是DSC,它終將(jiāng)取代這(zhè)兩(liǎng)種(zhǒng)芯片。


1.對(duì)密集的乘法運算的支持


GPP不是設計來做密集乘法任務的,即使是一些現代的GPP,也要求多個指令周期來做一次乘法。而DSP處理器使用專門的硬件來實現單周期乘 法。DSP處理器還(hái)增加了累加器寄存器來處理多個乘積的和。累加器寄存器通常比其他寄存器寬,增加稱爲結果bits的額外bits來避免溢出。同時(shí),爲了 充分體現專門的乘法-累加硬件的好(hǎo)處,幾乎所有的DSP的指令集都(dōu)包含有顯式的MAC指令。


2. 存儲器結構


傳統上,GPP使用馮。諾依曼存儲器結構。這(zhè)種(zhǒng)結構中,隻有一個存儲器空間通過(guò)一組總線(一個地址總線和一個數據總線)連接到處理器核。通常,做一次乘法會(huì)發(fā)生4次存儲器訪問,用掉至少四個指令周期。


大多數DSP采用了哈佛結構,將(jiāng)存儲器空間劃分成(chéng)兩(liǎng)個,分别存儲程序和數據。它們有兩(liǎng)組總線連接到處理器核,允許同時(shí)對(duì)它們進(jìn)行訪問。這(zhè)種(zhǒng)安排將(jiāng)處理器存儲器的帶寬加倍,更重要的是同時(shí)爲處理器核提供數據與指令。在這(zhè)種(zhǒng)布局下,DSP得以實現單周期的MAC指令。


典型的高性能(néng)GPP實際上已包含兩(liǎng)個片内高速緩存,一個是數據,一個是指令,它們直接連接到處理器核,以加快運行時(shí)的訪問速度。從物理上說(shuō),這(zhè)種(zhǒng)片内的雙存儲器和總線的結構幾乎與哈佛結構的一樣(yàng)了。然而從邏輯上說(shuō),兩(liǎng)者還(hái)是有重要的區别。


GPP使用控制邏輯來決定哪些數據和指令字存儲在片内的高速緩存裡(lǐ),其程序員并不加以指定(也可能(néng)根本不知道(dào))。與此相反,DSP使用多個片内存儲器和多組總線來保證每個指令周期内存儲器的多次訪問。在使用DSP時(shí),程序員要明确地控制哪些數據和指令要存儲在片内存儲器中。程序員在寫程序時(shí),必須保證處理器能(néng)夠有效地使用其雙總線。

此外,DSP處理器幾乎都(dōu)不具備數據高速緩存。這(zhè)是因爲DSP的典型數據是數據流。也就(jiù)是說(shuō),DSP處理器對(duì)每個數據樣(yàng)本做計算後(hòu),就(jiù)丢棄了,幾乎不再重複使用。


3.零開(kāi)銷循環


如果了解到DSP算法的一個共同的特點,即大多數的處理時(shí)間是花在執行較小的循環上,也就(jiù)容易理解,爲什麼(me)大多數的DSP都(dōu)有專門的硬件,用于 零開(kāi)銷循環。所謂零開(kāi)銷循環是指處理器在執行循環時(shí),不用花時(shí)間去檢查循環計數器的值、條件轉移到循環的頂部、將(jiāng)循環計數器減1。


與此相反,GPP的循環使用軟件來實現。某些高性能(néng)的GPP使用轉移預報硬件,幾乎達到與硬件支持的零開(kāi)銷循環同樣(yàng)的效果。


4.定點計算


大多數DSP使用定點計算,而不是使用浮點。雖然DSP的應用必須十分注意數字的精确,用浮點來做應該容易的多,但是對(duì)DSP來說(shuō),廉價也是非常重要的。定點機器比起(qǐ)相應的浮點機器來要便宜(而且更快)。爲了不使用浮點機器而又保證數字的準确,DSP處理器在指令集和硬件方面(miàn)都(dōu)支持飽和計算、舍入和移位。


5.專門的尋址方式


DSP處理器往往都(dōu)支持專門的尋址模式,它們對(duì)通常的信号處理操作和算法是很有用的。例如,模塊(循環)尋址(對(duì)實現數字濾波器延時(shí)線很有用)、位倒序尋址(對(duì)FFT很有用)。這(zhè)些非常專門的尋址模式在GPP中是不常使用的,隻有用軟件來實現。


6.執行時(shí)間的預測


大多數的DSP應用(如蜂窩電話和調制解調器)都(dōu)是嚴格的實時(shí)應用,所有的處理必須在指定的時(shí)間内完成(chéng)。這(zhè)就(jiù)要求程序員準确地确定每個樣(yàng)本需要多少處理時(shí)間,或者,至少要知道(dào),在最壞的情況下,需要多少時(shí)間。如果打算用低成(chéng)本的GPP去完成(chéng)實時(shí)信号處理的任務,執行時(shí)間的預測大概不會(huì)成(chéng)爲什麼(me)問題,應爲低成(chéng)本GPP具有相對(duì)直接的結構,比較容易預測執行時(shí)間。然而,大多數實時(shí)DSP應用所要求的處理能(néng)力是低成(chéng)本GPP所不能(néng)提供的。 這(zhè)時(shí)候,DSP對(duì)高性能(néng)GPP的優勢在于,即便是使用了高速緩存的DSP,哪些指令會(huì)放進(jìn)去也是由程序員(而不是處理器)來決定的,因此很容易判斷指令是從高速緩存還(hái)是從存儲器中讀取。DSP一般不使用動态特性,如轉移預測和推理執行等。因此,由一段給定的代碼來預測所要求的執行時(shí)間是完全直截了當的。從而使程序員得以确定芯片的性能(néng)限制。


7.定點DSP指令集


定點DSP指令集是按兩(liǎng)個目标來設計的:使處理器能(néng)夠在每個指令周期内完成(chéng)多個操作,從而提高每個指令周期的計算效率。將(jiāng)存貯DSP程序的存儲器空間減到最小(由于存儲器對(duì)整個系統的成(chéng)本影響甚大,該問題在對(duì)成(chéng)本敏感的DSP應用中尤爲重要)。爲了實現這(zhè)些目标,DSP處理器的指令集通常都(dōu)允許程序員在一個指令内說(shuō)明若幹個并行的操作。例如,在一條指令包含了MAC操作,即同時(shí)的一個或兩(liǎng)個數據移動。在典型的例子裡(lǐ),一條指令就(jiù)包含了計算FIR濾波器的一節所需要的所有操作。這(zhè)種(zhǒng)高效率付出的代價是,其指令集既不直觀,也不容易使用(與GPP的指令集相比)。 GPP的程序通常并不在意處理器的指令集是否容易使用,因爲他們一般使用象C或C++等高級語言。而對(duì)于DSP的程序員來說(shuō),不幸的是主要的DSP應用程序都(dōu)是用彙編語言寫的(至少部分是彙編語言優化的)。這(zhè)裡(lǐ)有兩(liǎng)個理由:首先,大多數廣泛使用的高級語言,例如C,并不适合于描述典型的DSP算法。其次, DSP結構的複雜性,如多存儲器空間、多總線、不規則的指令集、高度專門化的硬件等,使得難于爲其編寫高效率的編譯器。 即便用編譯器將(jiāng)C源代碼編譯成(chéng)爲DSP的彙編代碼,優化的任務仍然很重。典型的DSP應用都(dōu)具有大量計算的要求,并有嚴格的開(kāi)銷限制,使得程序的優化必不可少(至少是對(duì)程序的最關鍵部分)。因此,考慮選用DSP的一個關鍵因素是,是否存在足夠的能(néng)夠較好(hǎo)地适應DSP處理器指令集的程序員。


8.開(kāi)發(fā)工具的要求


因爲DSP應用要求高度優化的代碼,大多數DSP廠商都(dōu)提供一些開(kāi)發(fā)工具,以幫助程序員完成(chéng)其優化工作。例如,大多數廠商都(dōu)提供處理器的仿真工具,以準确地仿真每個指令周期内處理器的活動。無論對(duì)于确保實時(shí)操作還(hái)是代碼的優化,這(zhè)些都(dōu)是很有用的工具。 GPP廠商通常并不提供這(zhè)樣(yàng)的工具,主要是因爲GPP程序員通常并不需要詳細到這(zhè)一層的信息。GPP缺乏精确到指令周期的仿真工具,是DSP應用開(kāi)發(fā)者所面(miàn)臨的的大問題:由于幾乎不可能(néng)預測高性能(néng)GPP對(duì)于給定任務所需要的周期數,從而無法說(shuō)明如何去改善代碼的性能(néng)。


發(fā)展曆史


單片機出現的曆史并不長(cháng),但發(fā)展十分迅猛。 它的産生與發(fā)展和微處理器的産生與發(fā)展大體同步,自1971年美國(guó)Intel公司首先推出4位微處理器以來,它的發(fā)展到目前爲止大緻可分爲5個階段。下面(miàn)以Intel公司的單片機發(fā)展爲代表加以介紹。


1971-1976

單片機發(fā)展的初級階段。 1971年11月Intel公司首先設計出集成(chéng)度爲2000隻晶體管/片的4位微處理器Intel 4004,并配有RAM、 ROM和移位寄存器, 構成(chéng)了第一台MCS—4微處理器, 而後(hòu)又推出了8位微處理器Intel 8008, 以及其它各公司相繼推出的8位微處理器。


1976-1980

低性能(néng)單片機階段。 以1976年Intel公司推出的MCS—48系列爲代表, 采用將(jiāng)8位CPU、 8位并行I/O接口、8位定時(shí)/計數器、RAM和ROM等集成(chéng)于一塊半導體芯片上的單片結構, 雖然其尋址範圍有限(不大于4 KB), 也沒(méi)有串行I/O, RAM、 ROM容量小, 中斷系統也較簡單, 但功能(néng)可滿足一般工業控制和智能(néng)化儀器、儀表等的需要。


1980-1983

高性能(néng)單片機階段。 這(zhè)一階段推出的高性能(néng)8位單片機普遍帶有串行口,有多級中斷處理系統, 多個16位定時(shí)器/計數器。片内RAM、 ROM的容量加大,且尋址範圍可達64 KB,個别片内還(hái)帶有A/D轉換接口。


1983-80年代末

16位單片機階段。 1983年Intel公司又推出了高性能(néng)的16位單片機MCS-96系列,由于其采用了最新的制造工藝, 使芯片集成(chéng)度高達12萬隻晶體管/片。


1990年代

單片機在集成(chéng)度、功能(néng)、速度、可靠性、應用領域等全方位向(xiàng)更高水平發(fā)展。


按照單片機的特點,單片機的應用分爲單機應用與多機應用。在一個應用系統中,隻使用一片單片機稱爲單機應用。單片機的單機應用的範圍包括:


(1) 測控系統。 用單片機可以構成(chéng)各種(zhǒng)不太複雜的工業控制系統、自适應控制系統、數據采集系統等,達到測量與控制的目的。

(2) 智能(néng)儀表。 用單片機改造原有的測量、控制儀表,促進(jìn)儀表向(xiàng)數字化、智能(néng)化、多功能(néng)化、綜合化、柔性化方向(xiàng)發(fā)展。

(3) 機電一體化産品。單片機與傳統的機械産品相結合,使傳統機械産品結構簡化, 控制智能(néng)化。

(4) 智能(néng)接口。 在計算機控制系統, 特别是在較大型的工業測、控系統中,用單片機進(jìn)行接口的控制與管理, 加之單片機與主機的并行工作, 大大提高了系統的運行速度。

(5) 智能(néng)民用産品。 如在家用電器、玩具、遊戲機、聲像設備、電子秤、收銀機、辦公設備、廚房設備等許多産品中,單片機控制器的引入, 不僅使産品的功能(néng)大大增強, 性能(néng)得到提高, 而且獲得了良好(hǎo)的使用效果。


單片機的多機應用系統可分爲功能(néng)集散系統、并行多機處理及局部網絡系統。

(1) 功能(néng)集散系統。 多功能(néng)集散系統是爲了滿足工程系統多種(zhǒng)外圍功能(néng)的要求而設置的多機系統。

(2) 并行多機控制系統。 并行多機控制系統主要解決工程應用系統的快速性問題,以便構成(chéng)大型實時(shí)工程應用系統。

(3) 局部網絡系統。


單片機按應用範圍又可分成(chéng)通用型和專用型。專用型是針對(duì)某種(zhǒng)特定産品而設計的,例如用于體溫計的單片機、用于洗衣機的單片機等等。在通用型的單片機中,又可按字長(cháng)分爲4位、8位、16/32位,雖然計算機的微處理器現在幾乎是32/64位的天下,8位、16位的微處理器已趨于萎縮,但單片機情況卻不同,8位單片機成(chéng)本低,價格廉,便于開(kāi)發(fā),其性能(néng)能(néng)滿足大部分的需要,隻有在航天、汽車、機器人等高技術領域,需要高速處理大量數據時(shí),才需要選用16/32位,而在一般工業領域,8位通用型單片機,仍然是目前應用最廣的單片機。


到目前爲止,中國(guó)的單片機應用和嵌入式系統開(kāi)發(fā)走過(guò)了二十餘年的曆程,随著(zhe)嵌入式系統逐漸深入社會(huì)生活各個方面(miàn),單片機課程的教學(xué)也有從傳統的8位處理器平台向(xiàng)32位高級RISC處理器平台轉變的趨勢,但8位機依然難以被(bèi)取代。國(guó)民經(jīng)濟建設、軍事(shì)及家用電器等各個領域,尤其是手機、汽車自動導航設備、PDA、智能(néng)玩具、智能(néng)家電、醫療設備等行業都(dōu)是國(guó)内急需單片機人才的行業。行業高端目前有超過(guò)10餘萬名從事(shì)單片機開(kāi)發(fā)應用的工程師,但面(miàn)對(duì)嵌入式系統工業化的潮流和我國(guó)大力推動建設“嵌入式軟件工廠”的機遇,我國(guó)的嵌入式産品要溶入國(guó)際市場,形成(chéng)産業,則必將(jiāng)急需大批單片機應用型人才,這(zhè)爲高職類學(xué)生從事(shì)這(zhè)類高技術行業提供了巨大機會(huì)。


深圳市西城微科電子有限公司(聯泰威電子有限公司)位于深圳市福田區,是以軟件開(kāi)發(fā)和芯片代理爲主營業務的科技型企業。公司從2005年開(kāi)始從事(shì)芯片代理及方案開(kāi)發(fā),對(duì)單片機和标準芯片的選型有著(zhe)豐富的經(jīng)驗,可以爲客戶提供最佳的産品和最優質的服務。

公司代理合泰、芯海、紘康、松翰、華潤、晟矽微電、敏芯等國(guó)際知名品牌公司的産品,可以爲客戶提供:8位/32位MCU、LCD/LED/VFD驅動、EEPROM存儲器、電源管理、時(shí)鍾電路、低功耗運放、觸摸按鍵等一系列标準IC與技術支持。公司緻力于不同領域電子産品的研發(fā),可以爲客戶提供自信的藍牙秤方案、藍牙四電極/八電極交流測脂方案、藍牙直流測脂方案、藍牙PM2.5方案、藍牙心率檢測方案、藍牙電量檢測方案、普通電子秤方案、胎壓計方案、血壓計方案、紅外耳溫槍方案、電子體溫計方案、LED電源驅動、觸控開(kāi)關、充電器、移動電源、報警器、單車表、計步器、熱電偶、電池電量儀等産品的相關成(chéng)熟方案。

公司有著(zhe)各種(zhǒng)電子方案的深厚開(kāi)發(fā)經(jīng)驗,歡迎廣大客戶定制開(kāi)發(fā)方案。公司以市場需求爲導向(xiàng),客戶需求爲己任,盡可能(néng)的爲客戶提供最新的市場資訊,最佳的産品與做優質的服務,以争取和客戶取得雙赢,實現永續經(jīng)營爲追求之目标。

圖片