您當前的位置:首頁 > 文化

微控制器,微控制器是什麼意思

作者:由 一顆小丸子 發表于 文化時間:2021-07-23

1、

什麼是微控制器

微控制器是一種整合在電路晶片,是採用超大規模積體電路技術把具有資料處理能力的中央處理器CPU隨機儲存器RAM、只讀儲存器ROM、多種I/O口和中斷系統、定時器/計時器等功能(可能還包括顯示驅動電路、脈寬調製電路、模擬多路轉換器、A/D轉換器等電路)整合到一塊矽片上構成的一個小而完善的計算機系統。

一臺能夠工作的計算機要有這樣幾個部份構成:CPU(進行運算、控制)、RAM(資料儲存)、ROM(程式儲存)、輸入/輸出裝置(例如:序列口、並行輸出口等)。在個人計算機上這些部份被分成若干塊晶片,安裝一個稱之為主機板的印刷線路板上。而在微控制器中,這些部份,全部被做到一塊積體電路晶片中了,所以就稱為單片(單晶片)機,而且有一些微控制器中除了上述部份外,還集成了其它部份如A/D,D/A等。

微控制器是一種控制晶片,一個微型的計算機,而加上晶振,儲存器,地址鎖存器,邏輯閘,七段譯碼器(顯示器),按鈕(類似鍵盤),擴充套件晶片,介面等那是微控制器系統。

天!PC中的CPU一塊就要賣幾千塊錢,這麼多東西做在一起,還不得買個天價!再說這塊晶片也得非常大了。

不,價格並不高,從幾元人民幣到幾十元人民幣,體積也不大,一般用40腳封裝,當然功能多一些微控制器也有引腳比較多的,如68引腳,功能少的只有10多個或20多個引腳,有的甚至只8只引腳。

為什麼會這樣呢?

功能有強弱,打個比方,市場上面有的組合音響一套才賣幾百塊錢,可是有的一臺功放機就要賣好幾千。另外這種晶片的生產量很大,技術也很成熟,51系列的微控制器已經做了十幾年,所以價格就低了。

既然如此,微控制器的功能肯定不強,幹嗎要學它呢?

話不能這樣說,實際工作中並不是任何需要計算機的場合都要求計算機有很高的效能,一個控制電冰箱溫度的計算機難道要用PIII?應用的關鍵是看是否夠用,是否有很好的效能價格比。所以8051出來十多年,依然沒有被淘汰,還在不斷的發展中。

2、MCS51微控制器和8051、8031、89C51等的關係

我們平常老是講8051,又有什麼8031,現在又有89C51,89s51它們之間究竟是什麼關係?

MCS51是指由美國INTEL公司(對了,就是大名鼎鼎的INTEL)生產的一系列微控制器的總稱,這一系列微控制器包括了好些品種,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的產品,該系列其它微控制器都是在8051的基礎上進行功能的增、減、改變而來的,所以人們習慣於用8051來稱呼MCS51系列微控制器,而8031是前些年在我國最流行的微控制器,所以很多場合會看到8031的名稱。INTEL公司將MCS51的核心技術授權給了很多其它公司,所以有很多公司在做以8051為核心的微控制器,當然,功能或多或少有些改變,以滿足不同的需求,其中89C51就是這幾年在我國非常流行的微控制器,它是由美國ATMEL公司開發生產的。以後我們將用89C51微控制器來完成一系列的實驗。

微控制器也被稱為微控制器(Microcontroller),是因為它最早被用在工業控制領域。微控制器由晶片內僅有CPU的專用處理器發展而來。最早的設計理念是透過將大量外圍裝置和CPU整合在一個晶片中,使計算機系統更小,更容易整合進複雜的而對體積要求嚴格的控制裝置當中。INTEL的Z80是最早按照這種思想設計出的處理器,從此以後,微控制器和專用處理器的發展便分道揚鑣。

早期的微控制器都是8位或4位的。其中最成功的是INTEL的8031,因為簡單可靠而效能不錯獲得了很大的好評。此後在8031上發展出了MCS51系列微控制器系統。基於這一系統的微控制器系統直到現在還在廣泛使用。隨著工業控制領域要求的提高,開始出現了16位微控制器,但因為價效比不理想並未得到很廣泛的應用。90年代後隨著消費電子產品大發展,微控制器技術得到了巨大的提高。隨著INTEL i960系列特別是後來的ARM系列的廣泛應用,32位微控制器迅速取代16位微控制器的高階地位,並且進入主流市場。而傳統的8位微控制器的效能也得到了飛速提高,處理能力比起80年代提高了數百倍。目前,高階的32位微控制器主頻已經超過300MHz,效能直追90年代中期的專用處理器,而普通的型號出廠價格跌落至1美元,最高階的型號也只有10美元。當代微控制器系統已經不再只在裸機環境下開發和使用,大量專用的嵌入式作業系統被廣泛應用在全系列的微控制器上。而在作為掌上電腦和手機核心處理的高階微控制器甚至可以直接使用專用的Windows和Linux作業系統。

微控制器比專用處理器更適合應用於嵌入式系統,因此它得到了最多的應用。事實上微控制器是世界上數量最多的計算機。現代人類生活中所用的幾乎每件電子和機械產品中都會整合有微控制器。手機、電話、計算器、家用電器、電子玩具、掌上電腦以及滑鼠等電腦配件中都配有1-2部微控制器。而個人電腦中也會有為數不少的微控制器在工作。汽車上一般配備40多部微控制器,複雜的工業控制系統上甚至可能有數百臺微控制器在同時工作!微控制器的數量不僅遠超過PC機和其他計算的綜合,甚至比人類的數量還要多。

微控制器介紹

微控制器又稱單片微控制器,它不是完成某一個邏輯功能的晶片,而是把一個計算機系統整合到一個晶片上。相當於一個微型的計算機,和計算機相比,微控制器只缺少了I/O裝置。概括的講:一塊晶片就成了一臺計算機。它的體積小、質量輕、價格便宜、為學習、應用和開發提供了便利條件。同時,學習使用微控制器是瞭解計算機原理與結構的最佳選擇。

微控制器內部也用和電腦功能類似的模組,比如CPU,記憶體,並行匯流排,還有和硬碟作用相同的儲存器件,不同的是它的這些部件效能都相對我們的家用電腦弱很多,不過價錢也是低的,一般不超過10元即可……用它來做一些控制電器一類不是很複雜的工作足矣了。我們現在用的全自動滾筒洗衣機、排煙罩、VCD等等的家電裡面都可以看到它的身影!……它主要是作為控制部分的核心部件。

它是一種線上式實時控制計算機,線上式就是現場控制,需要的是有較強的抗干擾能力,較低的成本,這也是和離線式計算機的(比如家用PC)的主要區別。

微控制器是靠程式的,並且可以修改。透過不同的程式實現不同的功能,尤其是特殊的獨特的一些功能,這是別的器件需要費很大力氣才能做到的,有些則是花大力氣也很難做到的。一個不是很複雜的功能要是用美國50年代開發的74系列,或者60年代的CD4000系列這些純硬體來搞定的話,電路一定是一塊大PCB板!但是如果要是用美國70年代成功投放市場的系列微控制器,結果就會有天壤之別!只因為微控制器的透過你編寫的程式可以實現高智慧,高效率,以及高可靠性!

由於微控制器對成本是敏感的,所以目前佔統治地位的軟體還是最低階組合語言,它是除了二進位制機器碼以上最低階的語言了,既然這麼低階為什麼還要用呢?很多高階的語言已經達到了視覺化程式設計的水平為什麼不用呢?原因很簡單,就是微控制器沒有家用計算機那樣的CPU,也沒有像硬碟那樣的海量儲存裝置。一個視覺化高階語言編寫的小程式裡面即使只有一個按鈕,也會達到幾十K的尺寸!對於家用PC的硬碟來講沒什麼,可是對於微控制器來講是不能接受的。 微控制器在硬體資源方面的利用率必須很高才行,所以彙編雖然原始卻還是在大量使用。一樣的道理,如果把巨型計算機上的作業系統和應用軟體拿到家用PC上來執行,家用PC的也是承受不了的。

可以說,二十世紀跨越了三個“電”的時代,即電氣時代、電子時代和現已進入的電腦時代。不過,這種電腦,通常是指個人計算機,簡稱PC機。它由主機、鍵盤、顯示器等組成。還有一類計算機,大多數人卻不怎麼熟悉。這種計算機就是把智慧賦予各種機械的微控制器(亦稱微控制器)。顧名思義,這種計算機的最小系統只用了一片積體電路,即可進行簡單運算和控制。因為它體積小,通常都藏在被控機械的“肚子”裡。它在整個裝置中,起著有如人類頭腦的作用,它出了毛病,整個裝置就癱瘓了。現在,這種微控制器的使用領域已十分廣泛,如智慧儀表、實時工控、通訊裝置、導航系統、家用電器等。各種產品一旦用上了微控制器,就能起到使產品升級換代的功效,常在產品名稱前冠以形容詞——“智慧型”,如智慧型洗衣機等。現在有些工廠的技術人員或其它業餘電子開發者搞出來的某些產品,不是電路太複雜,就是功能太簡單且極易被仿製。究其原因,可能就卡在產品未使用微控制器或其它可程式設計邏輯器件上。

微控制器歷史

微控制器誕生於20世紀70年代末,經歷了SCM、MCU、SoC三大階段。

1。SCM即單片微型計算機(Single Chip Microcomputer)階段,主要是尋求最佳的單片形態嵌入式系統的最佳體系結構。“創新模式”獲得成功,奠定了SCM與通用計算機完全不同的發展道路。在開創嵌入式系統獨立發展道路上,Intel公司功不可沒。

2。MCU即微控制器(Micro Controller Unit)階段,主要的技術發展方向是:不斷擴充套件滿足嵌入式應用時,物件系統要求的各種外圍電路與介面電路,突顯其物件的智慧化控制能力。它所涉及的領域都與物件系統相關,因此,發展MCU的重任不可避免地落在電氣、電子技術廠家。從這一角度來看,Intel逐漸淡出MCU的發展也有其客觀因素。在發展MCU方面,最著名的廠家當數Philips公司。

Philips公司以其在嵌入式應用方面的巨大優勢,將MCS-51從單片微型計算機迅速發展到微控制器。因此,當我們回顧嵌入式系統發展道路時,不要忘記Intel和Philips的歷史功績。

3。微控制器是嵌入式系統的獨立發展之路,向MCU階段發展的重要因素,就是尋求應用系統在晶片上的最大化解決;因此,專用微控制器的發展自然形成了SoC化趨勢。隨著微電子技術、IC設計、EDA工具的發展,基於SoC的微控制器應用系統設計會有較大的發展。因此,對微控制器的理解可以從單片微型計算機、單片微控制器延伸到單片應用系統。

微控制器的應用領域

目前微控制器滲透到我們生活的各個領域,幾乎很難找到哪個領域沒有微控制器的蹤跡。導彈的導航裝置,飛機上各種儀表的控制,計算機的網路通訊與資料傳輸,工業自動化過程的實時控制和資料處理,廣泛使用的各種智慧IC卡,民用豪華轎車的安全保障系統,錄影機、攝像機、全自動洗衣機的控制,以及程控玩具、電子寵物等等,這些都離不開微控制器。更不用說自動控制領域的機器人、智慧儀表、醫療器械了。因此,微控制器的學習、開發與應用將造就一批計算機應用與智慧化控制的科學家、工程師。

微控制器廣泛應用於儀器儀表、家用電器、醫用裝置、航空航天、專用裝置的智慧化管理及過程控制等領域,大致可分如下幾個範疇:

1。在智慧儀器儀表上的應用

微控制器具有體積小、功耗低、控制功能強、擴充套件靈活、微型化和使用方便等優點,廣泛應用於儀器儀表中,結合不同型別的感測器,可實現諸如電壓、功率、頻率、溼度、溫度、流量、速度、厚度、角度、長度、硬度、元素、壓力等物理量的測量。採用微控制器控制使得儀器儀表數字化、智慧化、微型化,且功能比起採用電子或數位電路更加強大。例如精密的測量裝置(功率計,示波器,各種分析儀)。

2。在工業控制中的應用

用微控制器可以構成形式多樣的控制系統、資料採集系統。例如工廠流水線的智慧化管理,電梯智慧化控制、各種報警系統,與計算機聯網構成二級控制系統等。

3。在家用電器中的應用

可以這樣說,現在的家用電器基本上都採用了微控制器控制,從電飯褒、洗衣機、電冰箱、空調機、彩電、其他音響影片器材、再到電子秤量裝置,五花八門,無所不在。

4。在計算機網路和通訊領域中的應用

現代的微控制器普遍具備通訊介面,可以很方便地與計算機進行資料通訊,為在計算機網路和通訊裝置間的應用提供了極好的物質條件,現在的通訊裝置基本上都實現了微控制器智慧控制,從手機,電話機、小型程控交換機、樓宇自動通訊呼叫系統、列車無線通訊、再到日常工作中隨處可見的行動電話,叢集行動通訊,無線電對講機等。

5。微控制器在醫用裝置領域中的應用

微控制器在醫用裝置中的用途亦相當廣泛,例如醫用呼吸機,各種分析儀,監護儀,超聲診斷裝置及病床呼叫系統等等。

6。在各種大型電器中的模組化應用

某些專用微控制器設計用於實現特定功能,從而在各種電路中進行模組化應用,而不要求使用人員瞭解其內部結構。如音樂整合微控制器,看似簡單的功能,微縮在純電子晶片中(有別於磁帶機的原理),就需要複雜的類似於計算機的原理。如:音樂訊號以數字的形式存於儲存器中(類似於ROM),由微控制器讀出,轉化為模擬音樂電訊號(類似於音效卡)。

在大型電路中,這種模組化應用極大地縮小了體積,簡化了電路,降低了損壞、錯誤率,也方便於更換。

7。微控制器在汽車裝置領域中的應用

微控制器在汽車電子中的應用非常廣泛,例如汽車中的發動機控制器,基於CAN匯流排的汽車發動機智慧電子控制器,GPS導航系統,abs防抱死系統,制動系統等等。

此外,微控制器在工商,金融,科研、教育,國防航空航天等領域都有著十分廣泛的用途。

學習應用六大重要部分

片機學習應用的六大重要部分

一、匯流排:我們知道,一個電路總是由元器件透過電線連線而成的,在類比電路中,連線並不成為一個問題,因為各器件間一般是序列關係,各器件之間的連線並不很多,但計算機電路卻不一樣,它是以微處理器為核心,各器件都要與微處理器相連,各器件之間的工作必須相互協調,所以需要的連線就很多了,如果仍如同類比電路一樣,在各微處理器和各器件間單獨連線,則線的數量將多得驚人,所以在微處理機中引入了匯流排的概念,各個器件共同享用連線,所有器件的8根資料線全部接到8根公用的線上,即相當於各個器件並聯起來,但僅這樣還不行,如果有兩個器件同時送出資料,一個為0,一個為1,那麼,接收方接收到的究竟是什麼呢?這種情況是不允許的,所以要透過控制線進行控制,使器件分時工作,任何時候只能有一個器件傳送資料(可以有多個器件同時接收)。器件的資料線也就被稱為資料匯流排,器件所有的控制線被稱為控制匯流排。在微控制器內部或者外部儲存器及其它器件中有儲存單元,這些儲存單元要被分配地址,才能使用,分配地址當然也是以電訊號的形式給出的,由於儲存單元比較多,所以,用於地址分配的線也較多,這些線被稱為地址匯流排。

二、資料、地址、指令:之所以將這三者放在一起,是因為這三者的本質都是一樣的——數字,或者說都是一串‘0’和‘1’組成的序列。換言之,地址、指令也都是資料。指令:由微控制器晶片的設計者規定的一種數字,它與我們常用的指令助記符有著嚴格的一一對應關係,不可以由微控制器的開發者更改。地址:是尋找微控制器內部、外部的儲存單元、輸入輸出口的依據,內部單元的地址值已由晶片設計者規定好,不可更改,外部的單元可以由微控制器開發者自行決定,但有一些地址單元是一定要有的(詳見程式的執行過程)。資料:這是由微處理機處理的物件,在各種不同的應用電路中各不相同,一般而言,被處理的資料可能有這麼幾種情況:

1•地址(如MOV DPTR,1000H),即地址1000H送入DPTR。

2•方式字或控制字(如MOV TMOD,#3),3即是控制字。

3•常數(如MOV TH0,#10H)10H即定時常數。

4•實際輸出值(如P1口接彩燈,要燈全亮,則執行指令:MOV P1,#0FFH,要燈全暗,則執行指令:MOV P1,#00H)這裡0FFH和00H都是實際輸出值。又如用於LED的字形碼,也是實際輸出的值。

理解了地址、指令的本質,就不難理解程式執行過程中為什麼會跑飛,會把資料當成指令來執行了。

三、P0口、P2口和P3的第二功能用法:初學時往往對P0口、P2口和P3口的第二功能用法迷惑不解,認為第二功能和原功能之間要有一個切換的過程,或者說要有一條指令,事實上,各埠的第二功能完全是自動的,不需要用指令來轉換。如P3。6、P3。7分別是WR、RD訊號,當微片理機外接RAM或有外部I/O口時,它們被用作第二功能,不能作為通用I/O口使用,只要一微處理機一執行到MOVX指令,就會有相應的訊號從P3。6或P3。7送出,不需要事先用指令說明。事實上‘不能作為通用I/O口使用’也並不是‘不能’而是(使用者)‘不會’將其作為通用I/O口使用。你完全可以在指令中按排一條SETB P3。7的指令,並且當微控制器執行到這條指令時,也會使P3。7變為高電平,但使用者不會這麼去做,因為這通常會導致系統的崩潰。

四、程式的執行過程: 微控制器在通電覆位後8051內的程式計數器(PC)中的值為‘0000’,所以程式總是從‘0000’單元開始執行,也就是說:在系統的ROM中一定要存在‘0000’這個單元,並且在‘0000’單元中存放的一定是一條指令。

五、堆疊: 堆疊是一個區域,是用來存放資料的,這個區域本身沒有任何特殊之處,就是內部RAM的一部份,特殊的是它存放和取用資料的方式,即所謂的‘先進後出,後進先出’,並且堆疊有特殊的資料傳輸指令,即‘PUSH’和‘POP’,有一個特殊的專為其服務的單元,即堆疊指標SP,每當執一次PUSH指令時,SP就(在原來值的基礎上)自動加1,每當執行一次POP指令,SP就(在原來值的基礎上)自動減1。由於SP中的值可以用指令加以改變,所以只要在程式開始階段更改了SP的值,就可以把堆疊設定在規定的記憶體單元中,如在程式開始時,用一條MOV SP,#5FH指令,就時把堆疊設定在從記憶體單元60H開始的單元中。一般程式的開頭總有這麼一條設定堆疊指標的指令,因為開機時,SP的初始值為07H,這樣就使堆疊從08H單元開始往後,而08H到1FH這個區域正是8031的第二、三、四工作暫存器區,經常要被使用,這會造成資料的混亂。不同作者編寫程式時,初始化堆疊指令也不完全相同,這是作者的習慣問題。當設定好堆疊區後,並不意味著該區域成為一種專用記憶體,它還是可以象普通記憶體區域一樣使用,只是一般情況下程式設計者不會把它當成普通記憶體用了。

六、微控制器的開發過程: 這裡所說的開發過程並不是一般書中所說的從任務分析開始,我們假設已設計並製作好硬體,下面就是編寫軟體的工作。在編寫軟體之前,首先要確定一些常數、地址,事實上這些常數、地址在設計階段已被直接或間接地確定下來了。如當某器件的連線設計好後,其地址也就被確定了,當器件的功能被確定下來後,其控制字也就被確定了。然後用文字編輯器(如EDIT、CCED等)編寫軟體,編寫好後,用編譯器對源程式檔案編譯,查錯,直到沒有語法錯誤,除了極簡單的程式外,一般應用模擬機對軟體進行除錯,直到程式執行正確為止。執行正確後,就可以寫片(將程式固化在EPROM中)。在源程式被編譯後,生成了副檔名為HEX的目標檔案,一般程式設計器能夠識別這種格式的檔案,只要將此檔案調入即可寫片。在此,為使大家對整個過程有個認識,舉一例說明:

微控制器試驗板ORG 0000H

LJMP START

ORG 040H

START:

MOV SP,#5FH ;設堆疊

LOOP:

NOP

LJMP LOOP ;迴圈

END ;結束

微控制器學習

目前,很多人對組合語言並不認可。可以說,掌握用C語言微控制器程式設計很重要,可以大大提高開發的效率。不過初學者可以不瞭解微控制器的組合語言,但一定要了解微控制器具體效能和特點,不然在微控制器領域是比較致命的。如果不考慮微控制器硬體資源,在KEIL中用C胡亂程式設計,結果只能是出了問題無法解決!可以肯定的說,最好的C語言微控制器工程師都是從彙編走出來的程式設計者因為微控制器的C語言雖然是高階語言,但是它不同於桌上型電腦個人電腦上的VC++什麼的微控制器的硬體資源不是非常強大,不同於我們用VC、VB等高階語言在臺式PC上寫程式畢竟臺式電腦的硬體非常強大,所以才可以不考慮硬體資源的問題。還有就是在微控制器程式設計中C語言雖然程式設計方便,便於人們閱讀,但是在執行效率上是要比組合語言低10%到20%,所以用什麼語言編寫程式是要看具體用在什麼場合下。總的來說做微控制器程式設計要靈活使用匯編語言與C語言,讓微控制器的強大功能以最高是效率展示給使用者。

以8051微控制器為例講解微控制器的引腳及相關功能;

《微控制器引腳圖》

40個引腳按引腳功能大致可分為4個種類:電源、時鐘、控制和I/O引腳。

⒈ 電源:

⑴ VCC - 晶片電源,接+5V;

⑵ VSS - 接地端;

注:用萬用表測試微控制器引腳電壓一般為0v或者5v,這是標準的TTL電平。但有時候在微控制器程式正在工作時候測試結果並不是這個值而是介於0v-5v之間,其實這是萬用表的響應速度沒這麼快而已,在某一個瞬間微控制器引腳電壓仍保持在0v或者5v。

⒉ 時鐘:XTAL1、XTAL2 - 晶體振盪電路反相輸入端和輸出端。

⒊ 控制線:控制線共有4根,

⑴ ALE/PROG:地址鎖存允許/片內EPROM程式設計脈衝

① ALE功能:用來鎖存P0口送出的低8位地址

② PROG功能:片內有EPROM的晶片,在EPROM程式設計期間,此引腳輸入程式設計脈衝。

⑵ PSEN:外ROM讀選通訊號。

⑶ RST/VPD:復位/備用電源。

① RST(Reset)功能:復位訊號輸入端。

② VPD功能:在Vcc掉電情況下,接備用電源。

⑷ EA/Vpp:內外ROM選擇/片內EPROM程式設計電源。

① EA功能:內外ROM選擇端。

② Vpp功能:片內有EPROM的晶片,在EPROM程式設計期間,施加程式設計電源Vpp。

⒋ I/O線

80C51共有4個8位並行I/O埠:P0、P1、P2、P3口,共32個引腳。

P3口還具有第二功能,用於特殊訊號輸入輸出和控制訊號(屬控制匯流排)

5。 P3口第二功能

P30 RXD 序列輸入口

P31 TXD 序列輸出口

P32 INT0 外部中斷0(低電平有效)

P33 INT1 外部中斷1(低電平有效)

P34 T0 定時計數器0

P35 T1 定時計數器1

P36 WR 外部資料儲存器寫選通(低電平有效)

P37 RD 外部資料儲存器讀選通(低電平有效)

常用微控制器晶片簡介

STC微控制器

STC公司的微控制器主要是基於8051核心,是新一代增強型微控制器,指令程式碼完全相容傳統8051,速度快8~12倍,帶ADC,4路PWM,雙串列埠,有全球唯一ID號,加密性好,抗干擾強。

PIC微控制器:

是MICROCHIP公司的產品,其突出的特點是體積小,功耗低,精簡指令集,抗干擾性好,可靠性高,有較強的模擬介面,程式碼保密性好,大部分晶片有其相容的FLASH程式儲存器的晶片。

EMC微控制器:

是臺灣義隆公司的產品,有很大一部分與PIC 8位微控制器相容,且相相容產品的資源相對比PIC的多,價格便宜,有很多系列可選,但抗干擾較差。

ATMEL微控制器(51微控制器):

ATMEl公司的8位微控制器有AT89、AT90兩個系列,AT89系列是8位Flash微控制器,與8051系列微控制器相相容,靜態時鐘模式;AT90系列微控制器是增強RISC結構、全靜態工作方式、內載線上可程式設計Flash的微控制器,也叫AVR微控制器。

PHLIPIS 51PLC系列微控制器(51微控制器):

PHILIPS公司的微控制器是基於80C51核心的微控制器,嵌入了掉電檢測、模擬以及片內RC振盪器等功能,這使51LPC在高整合度、低成本、低功耗的應用設計中可以滿足多方面的效能要求。

HOLTEK微控制器:

臺灣盛揚半導體的微控制器,價格便宜,種類較多,但抗干擾較差,適用於消費類產品。

TI公司微控制器(51微控制器):

德州儀器提供了TMS370和MSP430兩大系列通用微控制器。TMS370系列微控制器是8位CMOS微控制器,具有多種儲存模式、多種外圍介面模式,適用於複雜的實時控制場合;MSP430系列微控制器是一種超低功耗、功能整合度較高的16位低功耗微控制器,特別適用於要求功耗低的場合

松翰微控制器(SONIX):

是臺灣松翰公司的單片,大多為8位機,有一部分與PIC 8位微控制器相容,價格便宜,系統時鐘分頻可選項較多,有PMW ADC 內振 內部雜訊濾波。缺點RAM空間過小,抗干擾較好。

從無線電世界到微控制器世界

現代計算機技術的產業革命,將世界經濟從資本經濟帶入到知識經濟時代。在電子世界領域,從20世紀中的無線電時代也進入到21世紀以計算機技術為中心的智慧化現代電子系統時代。現代電子系統的基本核心是嵌入式計算機系統(簡稱嵌入式系統),而微控制器是最典型、最廣泛、最普及的嵌入式系統。

一、 無線電世界造就了幾代英才

在20世紀五六十年代,最具代表的先進的電子技術就是無線電技術,包括無線電廣播、收音、無線通訊(電報)、業餘無線電臺、無線電定位、導航等遙測、遙控、遙信技術。早期就是這些電子技術帶領著許多青少年步入了奇妙的電子世界,無線電技術展示了當時科技生活美妙的前景。電子科學開始形成了一門新興學科。無線電電子學、無線通訊開始了電子世界的歷程。

無線電技術不僅成為了當時先進科學技術的代表,而且從普及到專業的科學領域,吸引了廣大青少年,並使他們從中找到了無窮的樂趣。從床頭的礦石收音機到超外差收音機;從無線電發報到業餘無線電臺;從電話、電鈴到無線電操縱模型。無線電技術成為當時青少年科普、科技教育最普及、最廣泛的內容。至今,許多老一輩的工程師、專家、教授當年都是無線電愛好者。無線電技術的無窮樂趣、無線電技術的全面訓練,從電子學基本原理、電子元器件基礎到無線電遙控、遙測、遙信電子系統制作,培養出了幾代科技英才。

二、 從無線電時代到電子技術普及時代

早期的無線電技術推動了電子技術的發展,其中最主要的是真空管電子技術向半導體電子技術的發展。半導體電子技術使有源器件實現了微小型化和低成本,使無線電技術有了更大普及和創新,並大大地開闊了許多非無線電的控制領域。

半導體技術發展導致積體電路器件的產生,形成了近代電子技術的飛躍,電子技術從分立器件時代走進了電路整合時代。電子設計工程師不再用分立的電子元器件設計電路單元,而直接選擇整合化的電路單元器件構成系統。他們從電路單元設計中解放出來,致力於系統設計,大大地解放了科技生產力,促進了電子系統更大範圍的普及。

半導體積體電路首先在基本數字邏輯電路上取得突破。大量數字邏輯電路,如閘電路、計數器、定時器、移位暫存器以及模擬開關、比較器等,為電子數字控制提供了極佳的條件,使傳統的機械控制轉向電子控制。功率電子器件以及感測技術的發展使原先以無線電為中心的電子技術開始轉向工程領域中的機械系統的數字控制,檢測領域中的資訊採集,運動機械物件的電氣伺服驅動控制。

半導體及其積體電路技術將我們帶入了一個電子技術普及時代,無線電技術成為電子技術應用領域的一個部分。

進入20世紀70年代,大規模積體電路出現,促進了常規的電子電路單元的專用電子系統發展。許多專用電子系統單元變成了整合化器件,如收音機、電子鐘、計算器等,在這些領域的電子工程師從電路、系統的精心設計、除錯轉變為器件選擇、外圍器件適配工作。電子技術發展了,電子產品豐富了,電子工程師的難度減少了,但與此同時,無線電技術、電子技術的魅力卻削弱了。半導體積體電路的發展使經典電子系統日趨完善,留在大規模積體電路以外的電子技術日益減少,電子技術沒有了往昔無線電時代的無窮樂趣和全面的工程訓練。

三、 從經典電子技術時代到現代電子技術時代

進入20世紀80年代,世紀經濟中最重要的變革是計算機的產業革命。而計算機產業革命的最重要標誌則是計算機嵌入式應用的誕生。近代電子計算機是應數值計算要求誕生的。在很長的時間內,電子計算機都是以發展海量數值計算為己任。但是電子計算機表現出的邏輯運算、處理、控制能力,吸引了電子控制領域的專家,他們要求發展能滿足控制物件要求,實現嵌入式應用的計算機系統。如果將滿足海量資料處理的計算機系統稱為通用計算機系統,那麼則可把嵌入到物件體系(如艦船、飛機、機車等)中的計算機系統稱作嵌入式計算機。顯而易見,兩者的技術發展方向是不同的。前者要求海量資料儲存、吞吐、高速資料處理分析及傳輸;而後者要求在物件環境中可靠執行,對外部物理引數的高速採集、邏輯分析處理和對外部物件的快速控制等。早期人們將通用計算機加上資料採集單元、輸出驅動電路勉為其難地構成一個熱處理爐的溫控系統。這樣的通用計算機系統不可能為大多數電子系統採用,而且要使通用計算機系統滿足嵌入式應用要求,必然影響高速數值處理技術的發展。為了解決計算機技術發展的矛盾,在20世紀70年代,半導體專家另闢蹊徑,完全按照電子系統的計算機嵌入式應用要求,將一個微型計算機的基本系統整合在一個晶片上,形成了早期的微控制器(Single Chip Microcomputer)。微控制器問世後,在計算機領域中開始出現了通用計算機系統和嵌入式系統的兩大分支。此後,無論是嵌入式系統,還是通用計算機系統都得到了飛速的發展。

早期雖然有通用計算機改裝而成的嵌入式計算機系統,而真正意義上的嵌入式系統始於微控制器的出現。因為微控制器是專門為嵌入式應用設計的,微控制器只能實現嵌入式應用。微控制器能最好地滿足嵌入式應用的環境要求,例如,晶片級的物理空間、大規模積體電路的低價位、良好的外圍介面匯流排和突出控制功能的指令系統。

微控制器有計算機系統核心,嵌入到電子系統中,為電子系統智慧化奠定了基礎。因此,當前微控制器在電子系統中的廣泛使用,使經典電子系統迅速過渡到智慧化的現代電子系統。

四、 微控制器開創了現代電子系統時代

1?微控制器與嵌入式系統

嵌入式系統源於計算機的嵌入式應用,早期嵌入式系統為通用計算機經改裝後嵌入到物件體系中的各種電子系統,如艦船的自動駕駛儀,輪機監測系統等。嵌入式系統首先是一個計算機系統,其次它被嵌入到物件體系中、在物件體系中實現物件要求的資料採集、處理、狀態顯示、輸出控制等功能,由於嵌入在物件體系中,嵌入式系統的計算機沒有計算機的獨立形式及功能。微控制器完全是按照嵌入式系統要求設計的,因此微控制器是最典型的嵌入式系統。早期的微控制器只是按嵌入式應用技術要求設計的計算機單晶片整合,故名微控制器。隨後,微控制器為滿足嵌入式應用要求不斷增強其控制功能與外圍介面功能,尤其是突出控制功能,因此國際上已將微控制器正名為微控制器(MCU,Microcontroller Unit)。

2?微控制器構成的現代電子系統將成為主流電子系統

微控制器是器件級計算機系統,它可以嵌入到任何物件體系中去,實現智慧化控制。小到微型機械,如手錶、助聽器。整合器件級的低價位,低到幾元、十幾元,足以使微控制器普及到許多民用家電、電子玩具中去。微控制器構成的現代電子系統已深入到各家各戶,正改變我們的生活,如家庭中的音響、電視機、洗衣機、微波爐、電話、防盜系統、空調機等。微控制器革新了原有電子系統,如微波爐採用微控制器控制後,可方便地進行時鐘設定、程式記憶、功率控制;空調機採用微控制器後不但遙控引數設定方便,執行狀態自動變換,還可實現變頻控制。目前許多家用電器如VCD、DVD只有微控制器出現後才可能實現其功能。

3?嵌入式系統帶動了整個電子產業

目前電子元器件產業除了微處理器、嵌入式系統器件外,大多是圍繞現代電子系統配套的元器件產業,例如滿足人機互動用的按鍵,LED/LCD顯示驅動、LED/LCD顯示單元、語音整合器件等,滿足資料採集通道要求的數字感測器、ADC、資料採集模組、訊號調理模組等,滿足伺服驅動控制的DAC、固體繼電器、步進電機控制器、變頻控制單元等,滿足通訊要求的各種匯流排驅動器、電平轉換器等。

世界電子元器件在嵌入式系統帶動下,沿著充分滿足嵌入式應用的現代電子系統要求發展。這就使原來經典電子系統的天地愈來愈小。電子系統中的各類從業人員應儘早轉向現代電子系統的康莊大道。

五、 微控制器將造就新一代電子精英

如果說五十年代起,無線電世界造就了幾代精英,那麼當今的微控制器世界將會造就出新一代電子精英。

1?微控制器帶你進入智慧化電子領域

若將經典電子系統當作一個僵死的電子系統,那麼智慧化的現代電子系統則是一個具有“生命”的電子系統。微控制器應用系統的硬體結構給予電子系統“身軀”,微控制器應用系統的應用程式賦予其“生命”。例如,在設計智慧化儀器顯示器的顯示功能時,可在開機時顯示系統自檢結果,未進入工作時顯示各種待機狀態,儀器執行時顯示執行過程,工作結束後可顯示當前結果、自檢結果、原始資料、各種處理報表等。在無人值守時,可給定各種自動執行功能。

電子系統的智慧化為無止境境界,常常不需硬體資源的增添就能實現各種翻新功能。這也是當前許多家用電器功能大量增設的因素之一。

2?微控制器帶你進入計算機工控領域

21世紀是全人類進入計算機時代的世紀,許多人不是在製造計算機便是在使用計算機。在使用計算機的人們中,只有從事嵌入式系統應用的人才真正地進入到計算機系統的內部軟、硬體體系中,才能真正領會計算機的智慧化本質並掌握智慧化設計的知識。從學習微控制器應用技術入手是當今培養計算機應用軟、硬體技術人才的最佳道路之一。

3?微控制器帶你進入最具魅力的電子世界

獨具魅力的微控制器能使你體會到電腦的真諦,你可以用微控制器親自動手設計智慧玩具,可以設計不同的應用程式實現不同的功能。既有硬體製作又有軟體設計,既動腦、又動手。初級水平可開發智慧玩具,用宏指令程式設計。中級水平可開發一些智慧控制器,如電腦鼠、智慧車、各種遙控模型。高階水平可開發機器人,如機器人足球賽,開發工業控制單元,網路通訊等,並用組合語言或高階語言設計應用程式。圍繞微控制器及嵌入式系統形成的電子產業的未來,將會為電子愛好者提供廣闊的天地,一個比當年無線電世界更廣闊、更豐富、更持久、更具魅力的電子世界。投身到微控制器世界來,將使你一生受益。

微控制器攻擊技術

目前,攻擊微控制器主要有四種技術,分別是:

(1)軟體攻擊

該技術通常使用處理器通訊介面並利用協議、加密演算法或這些演算法中的安全漏洞來進行攻擊。軟體攻擊取得成功的一個典型事例是對早期ATMEL AT89C 系列微控制器的攻擊。攻擊者利用了該系列微控制器擦除操作時序設計上的漏洞,使用自程式設計序在擦除加密鎖定位後,停止下一步擦除片內程式儲存器資料的操作,從而使加過密的微控制器變成沒加密的微控制器,然後利用程式設計器讀出片內程式。

(2) 電子探測攻擊

該技術通常以高時間解析度來監控處理器在正常操作時所有電源和介面連線的模擬特性,並透過監控它的電磁輻射特性來實施攻擊。因為微控制器是一個活動的電子器件,當它執行不同的指令時,對應的電源功率消耗也相應變化。這樣透過使用特殊的電子測量儀器和數學統計方法分析和檢測這些變化,即可獲取微控制器中的特定關鍵資訊。

(3)過錯產生技術

該技術使用異常工作條件來使處理器出錯,然後提供額外的訪問來進行攻擊。使用最廣泛的過錯產生攻擊手段包括電壓衝擊和時鐘衝擊。低電壓和高電壓攻擊可用來禁止保護電路工作或強制處理器執行錯誤操作。時鐘瞬態跳變也許會復位保護電路而不會破壞受保護資訊。電源和時鐘瞬態跳變可以在某些處理器中影響單條指令的解碼和執行。

(4)探針技術

該技術是直接暴露晶片內部連線,然後觀察、操控、干擾微控制器以達到攻擊目的。為了方便起見,人們將以上四種攻擊技術分成兩類,一類是侵入型攻擊(物理攻擊),這類攻擊需要破壞封裝,然後藉助半導體測試裝置、顯微鏡和微定位器,在專門的實驗室花上幾小時甚至幾周時間才能完成。所有的微探針技術都屬於侵入型攻擊。另外三種方法屬於非侵入型攻擊,被攻擊的微控制器不會被物理損壞。在某些場合非侵入型攻擊是特別危險的,這是因為非侵入型攻擊所需裝置通常可以自制和升級,因此非常廉價。

大部分非侵入型攻擊需要攻擊者具備良好的處理器知識和軟體知識。與之相反,侵入型的探針攻擊則不需要太多的初始知識,而且通常可用一整套相似的技術對付寬範圍的產品。

微控制器侵入型攻擊的一般過程

侵入型攻擊的第一步是揭去晶片封裝。有兩種方法可以達到這一目的:第一種是完全溶解掉晶片封裝,暴露金屬連線。第二種是隻移掉矽核上面的塑膠封裝。第一種方法需要將晶片繫結到測試夾具上,藉助繫結臺來操作。第二種方法除了需要具備攻擊者一定的知識和必要的技能外,還需要個人的智慧和耐心,但操作起來相對比較方便。

晶片上面的塑膠可以用小刀揭開,晶片周圍的環氧樹脂可以用濃硝酸腐蝕掉。熱的濃硝酸會溶解掉晶片封裝而不會影響晶片及連線。該過程一般在非常乾燥的條件下進行,因為水的存在可能會侵蝕已暴露的鋁線連線。

接著在超聲池裡先用丙酮清洗該晶片以除去殘餘硝酸,然後用清水清洗以除去鹽分並乾燥。沒有超聲池,一般就跳過這一步。這種情況下,晶片表面會有點髒,但是不太影響紫外光對晶片的操作效果。最後一步是尋找保護熔絲的位置並將保護熔絲暴露在紫外光下。一般用一臺放大倍數至少100倍的顯微鏡,從程式設計電壓輸入腳的連線跟蹤進去,來尋找保護熔絲。若沒有顯微鏡,則採用將晶片的不同部分暴露到紫外光下並觀察結果的方式進行簡單的搜尋。操作時應用不透明的紙片覆蓋晶片以保護程式儲存器不被紫外光擦除。將保護熔絲暴露在紫外光下5~10分鐘就能破壞掉保護位的保護作用,之後,使用簡單的程式設計器就可直接讀出程式儲存器的內容。

對於使用了防護層來保護EEPROM單元的微控制器來說,使用紫外光復位保護電路是不可行的。對於這種型別的微控制器,一般使用微探針技術來讀取儲存器內容。在晶片封裝開啟後,將晶片置於顯微鏡下就能夠很容易的找到從儲存器連到電路其它部分的資料匯流排。

由於某種原因,晶片鎖定位在程式設計模式下並不鎖定對儲存器的訪問。利用這一缺陷將探針放在資料線的上面就能讀到所有想要的資料。在程式設計模式下,重啟讀過程並連線探針到另外的資料線上就可以讀出程式和資料儲存器中的所有資訊。

還有一種可能的攻擊手段是藉助顯微鏡和鐳射切割機等裝置來尋找保護熔絲,從而尋查和這部分電路相聯絡的所有訊號線。由於設計有缺陷,因此,只要切斷從保護熔絲到其它電路的某一根訊號線,就能禁止整個保護功能。由於某種原因,這根線離其它的線非常遠,所以使用鐳射切割機完全可以切斷這根線而不影響臨近線。這樣,使用簡單的程式設計器就能直接讀出程式儲存器的內容。

雖然大多數普通微控制器都具有熔絲燒斷保護微控制器內程式碼的功能,但由於通用低檔的微控制器並非定位於製作安全類產品,因此,它們往往沒有提供有針對性的防範措施且安全級別較低。加上微控制器應用場合廣泛,銷售量大,廠商間委託加工與技術轉讓頻繁,大量技術資料外瀉,使得利用該類晶片的設計漏洞和廠商的測試介面,並透過修改熔絲保護位等侵入型攻擊或非侵入型攻擊手段來讀取微控制器的內部程式變得比較容易。