單片機,單片機是什么意思
1、什么是單片機
單片機是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計時器等功能(可能還包括顯示驅(qū)動電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個小而完善的計算機系統(tǒng)。
一臺能夠工作的計算機要有這樣幾個部份構(gòu)成:CPU(進行運算、控制)、RAM(數(shù)據(jù)存儲)、ROM(程序存儲)、輸入/輸出設備(例如:串行口、并行輸出口等)。在個人計算機上這些部份被分成若干塊芯片,安裝一個稱之為主板的印刷線路板上。而在單片機中,這些部份,全部被做到一塊集成電路芯片中了,所以就稱為單片(單芯片)機,而且有一些單片機中除了上述部份外,還集成了其它部份如A/D,D/A等。
?? 單片機是一種控制芯片,一個微型的計算機,而加上晶振,存儲器,地址鎖存器,邏輯門,七段譯碼器(顯示器),按鈕(類似鍵盤),擴展芯片,接口等那是單片機系統(tǒng)。
? 天!PC中的CPU一塊就要賣幾千塊錢,這么多東西做在一起,還不得買個天價!再說這塊芯片也得非常大了。
? 不,價格并不高,從幾元人民幣到幾十元人民幣,體積也不大,一般用40腳封裝,當然功能多一些單片機也有引腳比較多的,如68引腳,功能少的只有10多個或20多個引腳,有的甚至只8只引腳。
為什么會這樣呢?
? 功能有強弱,打個比方,市場上面有的組合音響一套才賣幾百塊錢,可是有的一臺功放機就要賣好幾千。另外這種芯片的生產(chǎn)量很大,技術(shù)也很成熟,51系列的單片機已經(jīng)做了十幾年,所以價格就低了。
既然如此,單片機的功能肯定不強,干嗎要學它呢?
? 話不能這樣說,實際工作中并不是任何需要計算機的場合都要求計算機有很高的性能,一個控制電冰箱溫度的計算機難道要用PIII?應用的關(guān)鍵是看是否夠用,是否有很好的性能價格比。所以8051出來十多年,依然沒有被淘汰,還在不斷的發(fā)展中。
2、MCS51單片機和8051、8031、89C51等的關(guān)系
我們平常老是講8051,又有什么8031,現(xiàn)在又有89C51,89s51它們之間究竟是什么關(guān)系?
?? MCS51是指由美國INTEL公司(對了,就是大名鼎鼎的INTEL)生產(chǎn)的一系列單片機的總稱,這一系列單片機包括了好些品種,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的產(chǎn)品,該系列其它單片機都是在8051的基礎上進行功能的增、減、改變而來的,所以人們習慣于用8051來稱呼MCS51系列單片機,而8031是前些年在我國最流行的單片機,所以很多場合會看到8031的名稱。INTEL公司將MCS51的核心技術(shù)授權(quán)給了很多其它公司,所以有很多公司在做以8051為核心的單片機,當然,功能或多或少有些改變,以滿足不同的需求,其中89C51就是這幾年在我國非常流行的單片機,它是由美國ATMEL公司開發(fā)生產(chǎn)的。以后我們將用89C51單片機來完成一系列的實驗。
單片機也被稱為微控制器(Microcontroller),是因為它最早被用在工業(yè)控制領(lǐng)域。單片機由芯片內(nèi)僅有CPU的專用處理器發(fā)展而來。最早的設計理念是通過將大量外圍設備和CPU集成在一個芯片中,使計算機系統(tǒng)更小,更容易集成進復雜的而對體積要求嚴格的控制設備當中。INTEL的Z80是最早按照這種思想設計出的處理器,從此以后,單片機和專用處理器的發(fā)展便分道揚鑣。
早期的單片機都是8位或4位的。其中最成功的是INTEL的8031,因為簡單可靠而性能不錯獲得了很大的好評。此后在8031上發(fā)展出了MCS51系列單片機系統(tǒng)?;谶@一系統(tǒng)的單片機系統(tǒng)直到現(xiàn)在還在廣泛使用。隨著工業(yè)控制領(lǐng)域要求的提高,開始出現(xiàn)了16位單片機,但因為性價比不理想并未得到很廣泛的應用。90年代后隨著消費電子產(chǎn)品大發(fā)展,單片機技術(shù)得到了巨大的提高。隨著INTEL i960系列特別是后來的ARM系列的廣泛應用,32位單片機迅速取代16位單片機的高端地位,并且進入主流市場。而傳統(tǒng)的8位單片機的性能也得到了飛速提高,處理能力比起80年代提高了數(shù)百倍。目前,高端的32位單片機主頻已經(jīng)超過300MHz,性能直追90年代中期的專用處理器,而普通的型號出廠價格跌落至1美元,最高端的型號也只有10美元。當代單片機系統(tǒng)已經(jīng)不再只在裸機環(huán)境下開發(fā)和使用,大量專用的嵌入式操作系統(tǒng)被廣泛應用在全系列的單片機上。而在作為掌上電腦和手機核心處理的高端單片機甚至可以直接使用專用的Windows和Linux操作系統(tǒng)。
單片機比專用處理器更適合應用于嵌入式系統(tǒng),因此它得到了最多的應用。事實上單片機是世界上數(shù)量最多的計算機?,F(xiàn)代人類生活中所用的幾乎每件電子和機械產(chǎn)品中都會集成有單片機。手機、電話、計算器、家用電器、電子玩具、掌上電腦以及鼠標等電腦配件中都配有1-2部單片機。而個人電腦中也會有為數(shù)不少的單片機在工作。汽車上一般配備40多部單片機,復雜的工業(yè)控制系統(tǒng)上甚至可能有數(shù)百臺單片機在同時工作!單片機的數(shù)量不僅遠超過PC機和其他計算的綜合,甚至比人類的數(shù)量還要多。
單片機介紹
單片機又稱單片微控制器,它不是完成某一個邏輯功能的芯片,而是把一個計算機系統(tǒng)集成到一個芯片上。相當于一個微型的計算機,和計算機相比,單片機只缺少了I/O設備。概括的講:一塊芯片就成了一臺計算機。它的體積小、質(zhì)量輕、價格便宜、為學習、應用和開發(fā)提供了便利條件。同時,學習使用單片機是了解計算機原理與結(jié)構(gòu)的最佳選擇。
單片機內(nèi)部也用和電腦功能類似的模塊,比如CPU,內(nèi)存,并行總線,還有和硬盤作用相同的存儲器件,不同的是它的這些部件性能都相對我們的家用電腦弱很多,不過價錢也是低的,一般不超過10元即可......用它來做一些控制電器一類不是很復雜的工作足矣了。我們現(xiàn)在用的全自動滾筒洗衣機、排煙罩、VCD等等的家電里面都可以看到它的身影!......它主要是作為控制部分的核心部件。
它是一種在線式實時控制計算機,在線式就是現(xiàn)場控制,需要的是有較強的抗干擾能力,較低的成本,這也是和離線式計算機的(比如家用PC)的主要區(qū)別。
單片機是靠程序的,并且可以修改。通過不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨特的一些功能,這是別的器件需要費很大力氣才能做到的,有些則是花大力氣也很難做到的。一個不是很復雜的功能要是用美國50年代開發(fā)的74系列,或者60年代的CD4000系列這些純硬件來搞定的話,電路一定是一塊大PCB板!但是如果要是用美國70年代成功投放市場的系列單片機,結(jié)果就會有天壤之別!只因為單片機的通過你編寫的程序可以實現(xiàn)高智能,高效率,以及高可靠性!
由于單片機對成本是敏感的,所以目前占統(tǒng)治地位的軟件還是最低級匯編語言,它是除了二進制機器碼以上最低級的語言了,既然這么低級為什么還要用呢?很多高級的語言已經(jīng)達到了可視化編程的水平為什么不用呢?原因很簡單,就是單片機沒有家用計算機那樣的CPU,也沒有像硬盤那樣的海量存儲設備。一個可視化高級語言編寫的小程序里面即使只有一個按鈕,也會達到幾十K的尺寸!對于家用PC的硬盤來講沒什么,可是對于單片機來講是不能接受的。 單片機在硬件資源方面的利用率必須很高才行,所以匯編雖然原始卻還是在大量使用。一樣的道理,如果把巨型計算機上的操作系統(tǒng)和應用軟件拿到家用PC上來運行,家用PC的也是承受不了的。
可以說,二十世紀跨越了三個“電”的時代,即電氣時代、電子時代和現(xiàn)已進入的電腦時代。不過,這種電腦,通常是指個人計算機,簡稱PC機。它由主機、鍵盤、顯示器等組成。還有一類計算機,大多數(shù)人卻不怎么熟悉。這種計算機就是把智能賦予各種機械的單片機(亦稱微控制器)。顧名思義,這種計算機的最小系統(tǒng)只用了一片集成電路,即可進行簡單運算和控制。因為它體積小,通常都藏在被控機械的“肚子”里。它在整個裝置中,起著有如人類頭腦的作用,它出了毛病,整個裝置就癱瘓了?,F(xiàn)在,這種單片機的使用領(lǐng)域已十分廣泛,如智能儀表、實時工控、通訊設備、導航系統(tǒng)、家用電器等。各種產(chǎn)品一旦用上了單片機,就能起到使產(chǎn)品升級換代的功效,常在產(chǎn)品名稱前冠以形容詞——“智能型”,如智能型洗衣機等?,F(xiàn)在有些工廠的技術(shù)人員或其它業(yè)余電子開發(fā)者搞出來的某些產(chǎn)品,不是電路太復雜,就是功能太簡單且極易被仿制。究其原因,可能就卡在產(chǎn)品未使用單片機或其它可編程邏輯器件上。
單片機歷史
單片機誕生于20世紀70年代末,經(jīng)歷了SCM、MCU、SoC三大階段。
1.SCM即單片微型計算機(Single Chip Microcomputer)階段,主要是尋求最佳的單片形態(tài)嵌入式系統(tǒng)的最佳體系結(jié)構(gòu)?!皠?chuàng)新模式”獲得成功,奠定了SCM與通用計算機完全不同的發(fā)展道路。在開創(chuàng)嵌入式系統(tǒng)獨立發(fā)展道路上,Intel公司功不可沒。
2.MCU即微控制器(Micro Controller Unit)階段,主要的技術(shù)發(fā)展方向是:不斷擴展?jié)M足嵌入式應用時,對象系統(tǒng)要求的各種外圍電路與接口電路,突顯其對象的智能化控制能力。它所涉及的領(lǐng)域都與對象系統(tǒng)相關(guān),因此,發(fā)展MCU的重任不可避免地落在電氣、電子技術(shù)廠家。從這一角度來看,Intel逐漸淡出MCU的發(fā)展也有其客觀因素。在發(fā)展MCU方面,最著名的廠家當數(shù)Philips公司。
Philips公司以其在嵌入式應用方面的巨大優(yōu)勢,將MCS-51從單片微型計算機迅速發(fā)展到微控制器。因此,當我們回顧嵌入式系統(tǒng)發(fā)展道路時,不要忘記Intel和Philips的歷史功績。
3.單片機是嵌入式系統(tǒng)的獨立發(fā)展之路,向MCU階段發(fā)展的重要因素,就是尋求應用系統(tǒng)在芯片上的最大化解決;因此,專用單片機的發(fā)展自然形成了SoC化趨勢。隨著微電子技術(shù)、IC設計、EDA工具的發(fā)展,基于SoC的單片機應用系統(tǒng)設計會有較大的發(fā)展。因此,對單片機的理解可以從單片微型計算機、單片微控制器延伸到單片應用系統(tǒng)。
單片機的應用領(lǐng)域
目前單片機滲透到我們生活的各個領(lǐng)域,幾乎很難找到哪個領(lǐng)域沒有單片機的蹤跡。導彈的導航裝置,飛機上各種儀表的控制,計算機的網(wǎng)絡通訊與數(shù)據(jù)傳輸,工業(yè)自動化過程的實時控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄像機、攝像機、全自動洗衣機的控制,以及程控玩具、電子寵物等等,這些都離不開單片機。更不用說自動控制領(lǐng)域的機器人、智能儀表、醫(yī)療器械了。因此,單片機的學習、開發(fā)與應用將造就一批計算機應用與智能化控制的科學家、工程師。
單片機廣泛應用于儀器儀表、家用電器、醫(yī)用設備、航空航天、專用設備的智能化管理及過程控制等領(lǐng)域,大致可分如下幾個范疇:
1.在智能儀器儀表上的應用
單片機具有體積小、功耗低、控制功能強、擴展靈活、微型化和使用方便等優(yōu)點,廣泛應用于儀器儀表中,結(jié)合不同類型的傳感器,可實現(xiàn)諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長度、硬度、元素、壓力等物理量的測量。采用單片機控制使得儀器儀表數(shù)字化、智能化、微型化,且功能比起采用電子或數(shù)字電路更加強大。例如精密的測量設備(功率計,示波器,各種分析儀)。
2.在工業(yè)控制中的應用
用單片機可以構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。例如工廠流水線的智能化管理,電梯智能化控制、各種報警系統(tǒng),與計算機聯(lián)網(wǎng)構(gòu)成二級控制系統(tǒng)等。
3.在家用電器中的應用
可以這樣說,現(xiàn)在的家用電器基本上都采用了單片機控制,從電飯褒、洗衣機、電冰箱、空調(diào)機、彩電、其他音響視頻器材、再到電子秤量設備,五花八門,無所不在。
4.在計算機網(wǎng)絡和通信領(lǐng)域中的應用
現(xiàn)代的單片機普遍具備通信接口,可以很方便地與計算機進行數(shù)據(jù)通信,為在計算機網(wǎng)絡和通信設備間的應用提供了極好的物質(zhì)條件,現(xiàn)在的通信設備基本上都實現(xiàn)了單片機智能控制,從手機,電話機、小型程控交換機、樓宇自動通信呼叫系統(tǒng)、列車無線通信、再到日常工作中隨處可見的移動電話,集群移動通信,無線電對講機等。
5.單片機在醫(yī)用設備領(lǐng)域中的應用
單片機在醫(yī)用設備中的用途亦相當廣泛,例如醫(yī)用呼吸機,各種分析儀,監(jiān)護儀,超聲診斷設備及病床呼叫系統(tǒng)等等。
6.在各種大型電器中的模塊化應用
某些專用單片機設計用于實現(xiàn)特定功能,從而在各種電路中進行模塊化應用,而不要求使用人員了解其內(nèi)部結(jié)構(gòu)。如音樂集成單片機,看似簡單的功能,微縮在純電子芯片中(有別于磁帶機的原理),就需要復雜的類似于計算機的原理。如:音樂信號以數(shù)字的形式存于存儲器中(類似于ROM),由微控制器讀出,轉(zhuǎn)化為模擬音樂電信號(類似于聲卡)。
在大型電路中,這種模塊化應用極大地縮小了體積,簡化了電路,降低了損壞、錯誤率,也方便于更換。
7.單片機在汽車設備領(lǐng)域中的應用
單片機在汽車電子中的應用非常廣泛,例如汽車中的發(fā)動機控制器,基于CAN總線的汽車發(fā)動機智能電子控制器,GPS導航系統(tǒng),abs防抱死系統(tǒng),制動系統(tǒng)等等。
此外,單片機在工商,金融,科研、教育,國防航空航天等領(lǐng)域都有著十分廣泛的用途。
學習應用六大重要部分
單片機學習應用的六大重要部分
一、總線:我們知道,一個電路總是由元器件通過電線連接而成的,在模擬電路中,連線并不成為一個問題,因為各器件間一般是串行關(guān)系,各器件之間的連線并不很多,但計算機電路卻不一樣,它是以微處理器為核心,各器件都要與微處理器相連,各器件之間的工作必須相互協(xié)調(diào),所以需要的連線就很多了,如果仍如同模擬電路一樣,在各微處理器和各器件間單獨連線,則線的數(shù)量將多得驚人,所以在微處理機中引入了總線的概念,各個器件共同享用連線,所有器件的8根數(shù)據(jù)線全部接到8根公用的線上,即相當于各個器件并聯(lián)起來,但僅這樣還不行,如果有兩個器件同時送出數(shù)據(jù),一個為0,一個為1,那么,接收方接收到的究竟是什么呢?這種情況是不允許的,所以要通過控制線進行控制,使器件分時工作,任何時候只能有一個器件發(fā)送數(shù)據(jù)(可以有多個器件同時接收)。器件的數(shù)據(jù)線也就被稱為數(shù)據(jù)總線,器件所有的控制線被稱為控制總線。在單片機內(nèi)部或者外部存儲器及其它器件中有存儲單元,這些存儲單元要被分配地址,才能使用,分配地址當然也是以電信號的形式給出的,由于存儲單元比較多,所以,用于地址分配的線也較多,這些線被稱為地址總線。
二、數(shù)據(jù)、地址、指令:之所以將這三者放在一起,是因為這三者的本質(zhì)都是一樣的——數(shù)字,或者說都是一串‘0’和‘1’組成的序列。換言之,地址、指令也都是數(shù)據(jù)。指令:由單片機芯片的設計者規(guī)定的一種數(shù)字,它與我們常用的指令助記符有著嚴格的一一對應關(guān)系,不可以由單片機的開發(fā)者更改。地址:是尋找單片機內(nèi)部、外部的存儲單元、輸入輸出口的依據(jù),內(nèi)部單元的地址值已由芯片設計者規(guī)定好,不可更改,外部的單元可以由單片機開發(fā)者自行決定,但有一些地址單元是一定要有的(詳見程序的執(zhí)行過程)。數(shù)據(jù):這是由微處理機處理的對象,在各種不同的應用電路中各不相同,一般而言,被處理的數(shù)據(jù)可能有這么幾種情況:
1?地址(如MOV DPTR,1000H),即地址1000H送入DPTR。
2?方式字或控制字(如MOV TMOD,#3),3即是控制字。
3?常數(shù)(如MOV TH0,#10H)10H即定時常數(shù)。
4?實際輸出值(如P1口接彩燈,要燈全亮,則執(zhí)行指令:MOV P1,#0FFH,要燈全暗,則執(zhí)行指令:MOV P1,#00H)這里0FFH和00H都是實際輸出值。又如用于LED的字形碼,也是實際輸出的值。
理解了地址、指令的本質(zhì),就不難理解程序運行過程中為什么會跑飛,會把數(shù)據(jù)當成指令來執(zhí)行了。
三、P0口、P2口和P3的第二功能用法:初學時往往對P0口、P2口和P3口的第二功能用法迷惑不解,認為第二功能和原功能之間要有一個切換的過程,或者說要有一條指令,事實上,各端口的第二功能完全是自動的,不需要用指令來轉(zhuǎn)換。如P3.6、P3.7分別是WR、RD信號,當微片理機外接RAM或有外部I/O口時,它們被用作第二功能,不能作為通用I/O口使用,只要一微處理機一執(zhí)行到MOVX指令,就會有相應的信號從P3.6或P3.7送出,不需要事先用指令說明。事實上‘不能作為通用I/O口使用’也并不是‘不能’而是(使用者)‘不會’將其作為通用I/O口使用。你完全可以在指令中按排一條SETB P3.7的指令,并且當單片機執(zhí)行到這條指令時,也會使P3.7變?yōu)楦唠娖剑褂谜卟粫@么去做,因為這通常會導致系統(tǒng)的崩潰。
四、程序的執(zhí)行過程: 單片機在通電復位后8051內(nèi)的程序計數(shù)器(PC)中的值為‘0000’,所以程序總是從‘0000’單元開始執(zhí)行,也就是說:在系統(tǒng)的ROM中一定要存在‘0000’這個單元,并且在‘0000’單元中存放的一定是一條指令。
五、堆棧: 堆棧是一個區(qū)域,是用來存放數(shù)據(jù)的,這個區(qū)域本身沒有任何特殊之處,就是內(nèi)部RAM的一部份,特殊的是它存放和取用數(shù)據(jù)的方式,即所謂的‘先進后出,后進先出’,并且堆棧有特殊的數(shù)據(jù)傳輸指令,即‘PUSH’和‘POP’,有一個特殊的專為其服務的單元,即堆棧指針SP,每當執(zhí)一次PUSH指令時,SP就(在原來值的基礎上)自動加1,每當執(zhí)行一次POP指令,SP就(在原來值的基礎上)自動減1。由于SP中的值可以用指令加以改變,所以只要在程序開始階段更改了SP的值,就可以把堆棧設置在規(guī)定的內(nèi)存單元中,如在程序開始時,用一條MOV SP,#5FH指令,就時把堆棧設置在從內(nèi)存單元60H開始的單元中。一般程序的開頭總有這么一條設置堆棧指針的指令,因為開機時,SP的初始值為07H,這樣就使堆棧從08H單元開始往后,而08H到1FH這個區(qū)域正是8031的第二、三、四工作寄存器區(qū),經(jīng)常要被使用,這會造成數(shù)據(jù)的混亂。不同作者編寫程序時,初始化堆棧指令也不完全相同,這是作者的習慣問題。當設置好堆棧區(qū)后,并不意味著該區(qū)域成為一種專用內(nèi)存,它還是可以象普通內(nèi)存區(qū)域一樣使用,只是一般情況下編程者不會把它當成普通內(nèi)存用了。
六、單片機的開發(fā)過程: 這里所說的開發(fā)過程并不是一般書中所說的從任務分析開始,我們假設已設計并制作好硬件,下面就是編寫軟件的工作。在編寫軟件之前,首先要確定一些常數(shù)、地址,事實上這些常數(shù)、地址在設計階段已被直接或間接地確定下來了。如當某器件的連線設計好后,其地址也就被確定了,當器件的功能被確定下來后,其控制字也就被確定了。然后用文本編輯器(如EDIT、CCED等)編寫軟件,編寫好后,用編譯器對源程序文件編譯,查錯,直到?jīng)]有語法錯誤,除了極簡單的程序外,一般應用仿真機對軟件進行調(diào)試,直到程序運行正確為止。運行正確后,就可以寫片(將程序固化在EPROM中)。在源程序被編譯后,生成了擴展名為HEX的目標文件,一般編程器能夠識別這種格式的文件,只要將此文件調(diào)入即可寫片。在此,為使大家對整個過程有個認識,舉一例說明:
單片機試驗板ORG 0000H
LJMP START
ORG 040H
START:
MOV SP,#5FH ;設堆棧
LOOP:
NOP
LJMP LOOP ;循環(huán)
END ;結(jié)束
單片機學習
目前,很多人對匯編語言并不認可??梢哉f,掌握用C語言單片機編程很重要,可以大大提高開發(fā)的效率。不過初學者可以不了解單片機的匯編語言,但一定要了解單片機具體性能和特點,不然在單片機領(lǐng)域是比較致命的。如果不考慮單片機硬件資源,在KEIL中用C胡亂編程,結(jié)果只能是出了問題無法解決!可以肯定的說,最好的C語言單片機工程師都是從匯編走出來的編程者因為單片機的C語言雖然是高級語言,但是它不同于臺式機個人電腦上的VC++什么的單片機的硬件資源不是非常強大,不同于我們用VC、VB等高級語言在臺式PC上寫程序畢竟臺式電腦的硬件非常強大,所以才可以不考慮硬件資源的問題。還有就是在單片機編程中C語言雖然編程方便,便于人們閱讀,但是在執(zhí)行效率上是要比匯編語言低10%到20%,所以用什么語言編寫程序是要看具體用在什么場合下。總的來說做單片機編程要靈活使用匯編語言與C語言,讓單片機的強大功能以最高是效率展示給用戶。
以8051單片機為例講解單片機的引腳及相關(guān)功能;
《單片機引腳圖》
40個引腳按引腳功能大致可分為4個種類:電源、時鐘、控制和I/O引腳。
?、?電源:
?、?VCC - 芯片電源,接+5V;
?、?VSS - 接地端;
注:用萬用表測試單片機引腳電壓一般為0v或者5v,這是標準的TTL電平。但有時候在單片機程序正在工作時候測試結(jié)果并不是這個值而是介于0v-5v之間,其實這是萬用表的響應速度沒這么快而已,在某一個瞬間單片機引腳電壓仍保持在0v或者5v。
⒉ 時鐘:XTAL1、XTAL2 - 晶體振蕩電路反相輸入端和輸出端。
?、?控制線:控制線共有4根,
?、?ALE/PROG:地址鎖存允許/片內(nèi)EPROM編程脈沖
?、?ALE功能:用來鎖存P0口送出的低8位地址
?、?PROG功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,此引腳輸入編程脈沖。
⑵ PSEN:外ROM讀選通信號。
⑶ RST/VPD:復位/備用電源。
?、?RST(Reset)功能:復位信號輸入端。
② VPD功能:在Vcc掉電情況下,接備用電源。
?、?EA/Vpp:內(nèi)外ROM選擇/片內(nèi)EPROM編程電源。
?、?EA功能:內(nèi)外ROM選擇端。
?、?Vpp功能:片內(nèi)有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 定時計數(shù)器0
P35 T1 定時計數(shù)器1
P36 WR 外部數(shù)據(jù)存儲器寫選通(低電平有效)
P37 RD 外部數(shù)據(jù)存儲器讀選通(低電平有效)
常用單片機芯片簡介
STC單片機
STC公司的單片機主要是基于8051內(nèi)核,是新一代增強型單片機,指令代碼完全兼容傳統(tǒng)8051,速度快8~12倍,帶ADC,4路PWM,雙串口,有全球唯一ID號,加密性好,抗干擾強.
PIC單片機:
是MICROCHIP公司的產(chǎn)品,其突出的特點是體積小,功耗低,精簡指令集,抗干擾性好,可靠性高,有較強的模擬接口,代碼保密性好,大部分芯片有其兼容的FLASH程序存儲器的芯片.
EMC單片機:
是***義隆公司的產(chǎn)品,有很大一部分與PIC 8位單片機兼容,且相兼容產(chǎn)品的資源相對比PIC的多,價格便宜,有很多系列可選,但抗干擾較差.
ATMEL單片機(51單片機):
ATMEl公司的8位單片機有AT89、AT90兩個系列,AT89系列是8位Flash單片機,與8051系列單片機相兼容,靜態(tài)時鐘模式;AT90系列單片機是增強RISC結(jié)構(gòu)、全靜態(tài)工作方式、內(nèi)載在線可編程Flash的單片機,也叫AVR單片機.
PHLIPIS 51PLC系列單片機(51單片機):
PHILIPS公司的單片機是基于80C51內(nèi)核的單片機,嵌入了掉電檢測、模擬以及片內(nèi)RC振蕩器等功能,這使51LPC在高集成度、低成本、低功耗的應用設計中可以滿足多方面的性能要求.
HOLTEK單片機:
***盛揚半導體的單片機,價格便宜,種類較多,但抗干擾較差,適用于消費類產(chǎn)品.
TI公司單片機(51單片機):
德州儀器提供了TMS370和MSP430兩大系列通用單片機.TMS370系列單片機是8位CMOS單片機,具有多種存儲模式、多種外圍接口模式,適用于復雜的實時控制場合;MSP430系列單片機是一種超低功耗、功能集成度較高的16位低功耗單片機,特別適用于要求功耗低的場合
松翰單片機(SONIX):
是***松翰公司的單片,大多為8位機,有一部分與PIC 8位單片機兼容,價格便宜,系統(tǒng)時鐘分頻可選項較多,有PMW ADC 內(nèi)振 內(nèi)部雜訊濾波。缺點RAM空間過小,抗干擾較好。
從無線電世界到單片機世界
現(xiàn)代計算機技術(shù)的產(chǎn)業(yè)革命,將世界經(jīng)濟從資本經(jīng)濟帶入到知識經(jīng)濟時代。在電子世界領(lǐng)域,從20世紀中的無線電時代也進入到21世紀以計算機技術(shù)為中心的智能化現(xiàn)代電子系統(tǒng)時代?,F(xiàn)代電子系統(tǒng)的基本核心是嵌入式計算機系統(tǒng)(簡稱嵌入式系統(tǒng)),而單片機是最典型、最廣泛、最普及的嵌入式系統(tǒng)。
一、 無線電世界造就了幾代英才
在20世紀五六十年代,最具代表的先進的電子技術(shù)就是無線電技術(shù),包括無線電廣播、收音、無線通信(電報)、業(yè)余無線電臺、無線電定位、導航等遙測、遙控、遙信技術(shù)。早期就是這些電子技術(shù)帶領(lǐng)著許多青少年步入了奇妙的電子世界,無線電技術(shù)展示了當時科技生活美妙的前景。電子科學開始形成了一門新興學科。無線電電子學、無線通信開始了電子世界的歷程。
無線電技術(shù)不僅成為了當時先進科學技術(shù)的代表,而且從普及到專業(yè)的科學領(lǐng)域,吸引了廣大青少年,并使他們從中找到了無窮的樂趣。從床頭的礦石收音機到超外差收音機;從無線電發(fā)報到業(yè)余無線電臺;從電話、電鈴到無線電操縱模型。無線電技術(shù)成為當時青少年科普、科技教育最普及、最廣泛的內(nèi)容。至今,許多老一輩的工程師、專家、教授當年都是無線電愛好者。無線電技術(shù)的無窮樂趣、無線電技術(shù)的全面訓練,從電子學基本原理、電子元器件基礎到無線電遙控、遙測、遙信電子系統(tǒng)制作,培養(yǎng)出了幾代科技英才。
二、 從無線電時代到電子技術(shù)普及時代
早期的無線電技術(shù)推動了電子技術(shù)的發(fā)展,其中最主要的是真空管電子技術(shù)向半導體電子技術(shù)的發(fā)展。半導體電子技術(shù)使有源器件實現(xiàn)了微小型化和低成本,使無線電技術(shù)有了更大普及和創(chuàng)新,并大大地開闊了許多非無線電的控制領(lǐng)域。
半導體技術(shù)發(fā)展導致集成電路器件的產(chǎn)生,形成了近代電子技術(shù)的飛躍,電子技術(shù)從分立器件時代走進了電路集成時代。電子設計工程師不再用分立的電子元器件設計電路單元,而直接選擇集成化的電路單元器件構(gòu)成系統(tǒng)。他們從電路單元設計中解放出來,致力于系統(tǒng)設計,大大地解放了科技生產(chǎn)力,促進了電子系統(tǒng)更大范圍的普及。
半導體集成電路首先在基本數(shù)字邏輯電路上取得突破。大量數(shù)字邏輯電路,如門電路、計數(shù)器、定時器、移位寄存器以及模擬開關(guān)、比較器等,為電子數(shù)字控制提供了極佳的條件,使傳統(tǒng)的機械控制轉(zhuǎn)向電子控制。功率電子器件以及傳感技術(shù)的發(fā)展使原先以無線電為中心的電子技術(shù)開始轉(zhuǎn)向工程領(lǐng)域中的機械系統(tǒng)的數(shù)字控制,檢測領(lǐng)域中的信息采集,運動機械對象的電氣伺服驅(qū)動控制。
半導體及其集成電路技術(shù)將我們帶入了一個電子技術(shù)普及時代,無線電技術(shù)成為電子技術(shù)應用領(lǐng)域的一個部分。
進入20世紀70年代,大規(guī)模集成電路出現(xiàn),促進了常規(guī)的電子電路單元的專用電子系統(tǒng)發(fā)展。許多專用電子系統(tǒng)單元變成了集成化器件,如收音機、電子鐘、計算器等,在這些領(lǐng)域的電子工程師從電路、系統(tǒng)的精心設計、調(diào)試轉(zhuǎn)變?yōu)槠骷x擇、外圍器件適配工作。電子技術(shù)發(fā)展了,電子產(chǎn)品豐富了,電子工程師的難度減少了,但與此同時,無線電技術(shù)、電子技術(shù)的魅力卻削弱了。半導體集成電路的發(fā)展使經(jīng)典電子系統(tǒng)日趨完善,留在大規(guī)模集成電路以外的電子技術(shù)日益減少,電子技術(shù)沒有了往昔無線電時代的無窮樂趣和全面的工程訓練。
三、 從經(jīng)典電子技術(shù)時代到現(xiàn)代電子技術(shù)時代
進入20世紀80年代,世紀經(jīng)濟中最重要的變革是計算機的產(chǎn)業(yè)革命。而計算機產(chǎn)業(yè)革命的最重要標志則是計算機嵌入式應用的誕生。近代電子計算機是應數(shù)值計算要求誕生的。在很長的時間內(nèi),電子計算機都是以發(fā)展海量數(shù)值計算為己任。但是電子計算機表現(xiàn)出的邏輯運算、處理、控制能力,吸引了電子控制領(lǐng)域的專家,他們要求發(fā)展能滿足控制對象要求,實現(xiàn)嵌入式應用的計算機系統(tǒng)。如果將滿足海量數(shù)據(jù)處理的計算機系統(tǒng)稱為通用計算機系統(tǒng),那么則可把嵌入到對象體系(如艦船、飛機、機車等)中的計算機系統(tǒng)稱作嵌入式計算機。顯而易見,兩者的技術(shù)發(fā)展方向是不同的。前者要求海量數(shù)據(jù)存儲、吞吐、高速數(shù)據(jù)處理分析及傳輸;而后者要求在對象環(huán)境中可靠運行,對外部物理參數(shù)的高速采集、邏輯分析處理和對外部對象的快速控制等。早期人們將通用計算機加上數(shù)據(jù)采集單元、輸出驅(qū)動電路勉為其難地構(gòu)成一個熱處理爐的溫控系統(tǒng)。這樣的通用計算機系統(tǒng)不可能為大多數(shù)電子系統(tǒng)采用,而且要使通用計算機系統(tǒng)滿足嵌入式應用要求,必然影響高速數(shù)值處理技術(shù)的發(fā)展。為了解決計算機技術(shù)發(fā)展的矛盾,在20世紀70年代,半導體專家另辟蹊徑,完全按照電子系統(tǒng)的計算機嵌入式應用要求,將一個微型計算機的基本系統(tǒng)集成在一個芯片上,形成了早期的單片機(Single Chip Microcomputer)。單片機問世后,在計算機領(lǐng)域中開始出現(xiàn)了通用計算機系統(tǒng)和嵌入式系統(tǒng)的兩大分支。此后,無論是嵌入式系統(tǒng),還是通用計算機系統(tǒng)都得到了飛速的發(fā)展。
早期雖然有通用計算機改裝而成的嵌入式計算機系統(tǒng),而真正意義上的嵌入式系統(tǒng)始于單片機的出現(xiàn)。因為單片機是專門為嵌入式應用設計的,單片機只能實現(xiàn)嵌入式應用。單片機能最好地滿足嵌入式應用的環(huán)境要求,例如,芯片級的物理空間、大規(guī)模集成電路的低價位、良好的外圍接口總線和突出控制功能的指令系統(tǒng)。
單片機有計算機系統(tǒng)內(nèi)核,嵌入到電子系統(tǒng)中,為電子系統(tǒng)智能化奠定了基礎。因此,當前單片機在電子系統(tǒng)中的廣泛使用,使經(jīng)典電子系統(tǒng)迅速過渡到智能化的現(xiàn)代電子系統(tǒng)。
四、 單片機開創(chuàng)了現(xiàn)代電子系統(tǒng)時代
1?單片機與嵌入式系統(tǒng)
嵌入式系統(tǒng)源于計算機的嵌入式應用,早期嵌入式系統(tǒng)為通用計算機經(jīng)改裝后嵌入到對象體系中的各種電子系統(tǒng),如艦船的自動駕駛儀,輪機監(jiān)測系統(tǒng)等。嵌入式系統(tǒng)首先是一個計算機系統(tǒng),其次它被嵌入到對象體系中、在對象體系中實現(xiàn)對象要求的數(shù)據(jù)采集、處理、狀態(tài)顯示、輸出控制等功能,由于嵌入在對象體系中,嵌入式系統(tǒng)的計算機沒有計算機的獨立形式及功能。單片機完全是按照嵌入式系統(tǒng)要求設計的,因此單片機是最典型的嵌入式系統(tǒng)。早期的單片機只是按嵌入式應用技術(shù)要求設計的計算機單芯片集成,故名單片機。隨后,單片機為滿足嵌入式應用要求不斷增強其控制功能與外圍接口功能,尤其是突出控制功能,因此國際上已將單片機正名為微控制器(MCU,Microcontroller Unit)。
2?單片機構(gòu)成的現(xiàn)代電子系統(tǒng)將成為主流電子系統(tǒng)
單片機是器件級計算機系統(tǒng),它可以嵌入到任何對象體系中去,實現(xiàn)智能化控制。小到微型機械,如手表、助聽器。集成器件級的低價位,低到幾元、十幾元,足以使單片機普及到許多民用家電、電子玩具中去。單片機構(gòu)成的現(xiàn)代電子系統(tǒng)已深入到各家各戶,正改變我們的生活,如家庭中的音響、電視機、洗衣機、微波爐、電話、防盜系統(tǒng)、空調(diào)機等。單片機革新了原有電子系統(tǒng),如微波爐采用單片機控制后,可方便地進行時鐘設置、程序記憶、功率控制;空調(diào)機采用單片機后不但遙控參數(shù)設置方便,運行狀態(tài)自動變換,還可實現(xiàn)變頻控制。目前許多家用電器如VCD、DVD只有單片機出現(xiàn)后才可能實現(xiàn)其功能。
3?嵌入式系統(tǒng)帶動了整個電子產(chǎn)業(yè)
目前電子元器件產(chǎn)業(yè)除了微處理器、嵌入式系統(tǒng)器件外,大多是圍繞現(xiàn)代電子系統(tǒng)配套的元器件產(chǎn)業(yè),例如滿足人機交互用的按鍵,LED/LCD顯示驅(qū)動、LED/LCD顯示單元、語音集成器件等,滿足數(shù)據(jù)采集通道要求的數(shù)字傳感器、ADC、數(shù)據(jù)采集模塊、信號調(diào)理模塊等,滿足伺服驅(qū)動控制的DAC、固體繼電器、步進電機控制器、變頻控制單元等,滿足通信要求的各種總線驅(qū)動器、電平轉(zhuǎn)換器等。
世界電子元器件在嵌入式系統(tǒng)帶動下,沿著充分滿足嵌入式應用的現(xiàn)代電子系統(tǒng)要求發(fā)展。這就使原來經(jīng)典電子系統(tǒng)的天地愈來愈小。電子系統(tǒng)中的各類從業(yè)人員應盡早轉(zhuǎn)向現(xiàn)代電子系統(tǒng)的康莊大道。
五、 單片機將造就新一代電子精英
如果說五十年代起,無線電世界造就了幾代精英,那么當今的單片機世界將會造就出新一代電子精英。
1?單片機帶你進入智能化電子領(lǐng)域
若將經(jīng)典電子系統(tǒng)當作一個僵死的電子系統(tǒng),那么智能化的現(xiàn)代電子系統(tǒng)則是一個具有“生命”的電子系統(tǒng)。單片機應用系統(tǒng)的硬件結(jié)構(gòu)給予電子系統(tǒng)“身軀”,單片機應用系統(tǒng)的應用程序賦予其“生命”。例如,在設計智能化儀器顯示器的顯示功能時,可在開機時顯示系統(tǒng)自檢結(jié)果,未進入工作時顯示各種待機狀態(tài),儀器運行時顯示運行過程,工作結(jié)束后可顯示當前結(jié)果、自檢結(jié)果、原始數(shù)據(jù)、各種處理報表等。在無人值守時,可給定各種自動運行功能。
電子系統(tǒng)的智能化為無止境境界,常常不需硬件資源的增添就能實現(xiàn)各種翻新功能。這也是當前許多家用電器功能大量增設的因素之一。
2?單片機帶你進入計算機工控領(lǐng)域
21世紀是全人類進入計算機時代的世紀,許多人不是在制造計算機便是在使用計算機。在使用計算機的人們中,只有從事嵌入式系統(tǒng)應用的人才真正地進入到計算機系統(tǒng)的內(nèi)部軟、硬件體系中,才能真正領(lǐng)會計算機的智能化本質(zhì)并掌握智能化設計的知識。從學習單片機應用技術(shù)入手是當今培養(yǎng)計算機應用軟、硬件技術(shù)人才的最佳道路之一。
3?單片機帶你進入最具魅力的電子世界
獨具魅力的單片機能使你體會到電腦的真諦,你可以用單片機親自動手設計智能玩具,可以設計不同的應用程序?qū)崿F(xiàn)不同的功能。既有硬件制作又有軟件設計,既動腦、又動手。初級水平可開發(fā)智能玩具,用宏指令編程。中級水平可開發(fā)一些智能控制器,如電腦鼠、智能車、各種遙控模型。高級水平可開發(fā)機器人,如機器人足球賽,開發(fā)工業(yè)控制單元,網(wǎng)絡通信等,并用匯編語言或高級語言設計應用程序。圍繞單片機及嵌入式系統(tǒng)形成的電子產(chǎn)業(yè)的未來,將會為電子愛好者提供廣闊的天地,一個比當年無線電世界更廣闊、更豐富、更持久、更具魅力的電子世界。投身到單片機世界來,將使你一生受益。
單片機攻擊技術(shù)
目前,攻擊單片機主要有四種技術(shù),分別是:
?。ǎ保┸浖?br> 該技術(shù)通常使用處理器通信接口并利用協(xié)議、加密算法或這些算法中的安全漏洞來進行攻擊。軟件攻擊取得成功的一個典型事例是對早期ATMEL AT89C 系列單片機的攻擊。攻擊者利用了該系列單片機擦除操作時序設計上的漏洞,使用自編程序在擦除加密鎖定位后,停止下一步擦除片內(nèi)程序存儲器數(shù)據(jù)的操作,從而使加過密的單片機變成沒加密的單片機,然后利用編程器讀出片內(nèi)程序。
(2) 電子探測攻擊
該技術(shù)通常以高時間分辨率來監(jiān)控處理器在正常操作時所有電源和接口連接的模擬特性,并通過監(jiān)控它的電磁輻射特性來實施攻擊。因為單片機是一個活動的電子器件,當它執(zhí)行不同的指令時,對應的電源功率消耗也相應變化。這樣通過使用特殊的電子測量儀器和數(shù)學統(tǒng)計方法分析和檢測這些變化,即可獲取單片機中的特定關(guān)鍵信息。
(3)過錯產(chǎn)生技術(shù)
該技術(shù)使用異常工作條件來使處理器出錯,然后提供額外的訪問來進行攻擊。使用最廣泛的過錯產(chǎn)生攻擊手段包括電壓沖擊和時鐘沖擊。低電壓和高電壓攻擊可用來禁止保護電路工作或強制處理器執(zhí)行錯誤操作。時鐘瞬態(tài)跳變也許會復位保護電路而不會破壞受保護信息。電源和時鐘瞬態(tài)跳變可以在某些處理器中影響單條指令的解碼和執(zhí)行。
(4)探針技術(shù)
該技術(shù)是直接暴露芯片內(nèi)部連線,然后觀察、操控、干擾單片機以達到攻擊目的。為了方便起見,人們將以上四種攻擊技術(shù)分成兩類,一類是侵入型攻擊(物理攻擊),這類攻擊需要破壞封裝,然后借助半導體測試設備、顯微鏡和微定位器,在專門的實驗室花上幾小時甚至幾周時間才能完成。所有的微探針技術(shù)都屬于侵入型攻擊。另外三種方法屬于非侵入型攻擊,被攻擊的單片機不會被物理損壞。在某些場合非侵入型攻擊是特別危險的,這是因為非侵入型攻擊所需設備通??梢宰灾坪蜕?,因此非常廉價。
大部分非侵入型攻擊需要攻擊者具備良好的處理器知識和軟件知識。與之相反,侵入型的探針攻擊則不需要太多的初始知識,而且通??捎靡徽紫嗨频募夹g(shù)對付寬范圍的產(chǎn)品。
單片機侵入型攻擊的一般過程
侵入型攻擊的第一步是揭去芯片封裝。有兩種方法可以達到這一目的:第一種是完全溶解掉芯片封裝,暴露金屬連線。第二種是只移掉硅核上面的塑料封裝。第一種方法需要將芯片綁定到測試夾具上,借助綁定臺來操作。第二種方法除了需要具備攻擊者一定的知識和必要的技能外,還需要個人的智慧和耐心,但操作起來相對比較方便。
芯片上面的塑料可以用小刀揭開,芯片周圍的環(huán)氧樹脂可以用濃硝酸腐蝕掉。熱的濃硝酸會溶解掉芯片封裝而不會影響芯片及連線。該過程一般在非常干燥的條件下進行,因為水的存在可能會侵蝕已暴露的鋁線連接。
接著在超聲池里先用丙酮清洗該芯片以除去殘余硝酸,然后用清水清洗以除去鹽分并干燥。沒有超聲池,一般就跳過這一步。這種情況下,芯片表面會有點臟,但是不太影響紫外光對芯片的操作效果。最后一步是尋找保護熔絲的位置并將保護熔絲暴露在紫外光下。一般用一臺放大倍數(shù)至少100倍的顯微鏡,從編程電壓輸入腳的連線跟蹤進去,來尋找保護熔絲。若沒有顯微鏡,則采用將芯片的不同部分暴露到紫外光下并觀察結(jié)果的方式進行簡單的搜索。操作時應用不透明的紙片覆蓋芯片以保護程序存儲器不被紫外光擦除。將保護熔絲暴露在紫外光下5~10分鐘就能破壞掉保護位的保護作用,之后,使用簡單的編程器就可直接讀出程序存儲器的內(nèi)容。
對于使用了防護層來保護EEPROM單元的單片機來說,使用紫外光復位保護電路是不可行的。對于這種類型的單片機,一般使用微探針技術(shù)來讀取存儲器內(nèi)容。在芯片封裝打開后,將芯片置于顯微鏡下就能夠很容易的找到從存儲器連到電路其它部分的數(shù)據(jù)總線。
由于某種原因,芯片鎖定位在編程模式下并不鎖定對存儲器的訪問。利用這一缺陷將探針放在數(shù)據(jù)線的上面就能讀到所有想要的數(shù)據(jù)。在編程模式下,重啟讀過程并連接探針到另外的數(shù)據(jù)線上就可以讀出程序和數(shù)據(jù)存儲器中的所有信息。
還有一種可能的攻擊手段是借助顯微鏡和激光切割機等設備來尋找保護熔絲,從而尋查和這部分電路相聯(lián)系的所有信號線。由于設計有缺陷,因此,只要切斷從保護熔絲到其它電路的某一根信號線,就能禁止整個保護功能。由于某種原因,這根線離其它的線非常遠,所以使用激光切割機完全可以切斷這根線而不影響臨近線。這樣,使用簡單的編程器就能直接讀出程序存儲器的內(nèi)容。
雖然大多數(shù)普通單片機都具有熔絲燒斷保護單片機內(nèi)代碼的功能,但由于通用低檔的單片機并非定位于制作安全類產(chǎn)品,因此,它們往往沒有提供有針對性的防范措施且安全級別較低。加上單片機應用場合廣泛,銷售量大,廠商間委托加工與技術(shù)轉(zhuǎn)讓頻繁,大量技術(shù)資料外瀉,使得利用該類芯片的設計漏洞和廠商的測試接口,并通過修改熔絲保護位等侵入型攻擊或非侵入型攻擊手段來讀取單片機的內(nèi)部程序變得比較容易。
- 單片機(619327)
相關(guān)推薦
評論
查看更多