2018-05-26 11:01:32分類:行業(yè)資訊5988
單片微型計算機(jī)簡稱單片機(jī),是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的縮寫MCU表示單片機(jī),它最早是被用在工業(yè)控制領(lǐng)域。由于單片機(jī)在工業(yè)控制領(lǐng)域的廣泛應(yīng)用,為使更多的業(yè)內(nèi)人士、學(xué)生、愛好者,產(chǎn)品開發(fā)人員掌握單片機(jī)這門技術(shù),于是產(chǎn)生單片機(jī)開發(fā)板,比較有名的例如電子人DZR-01A單片機(jī)開發(fā)板。單片機(jī)由芯片內(nèi)僅有CPU的專用處理器發(fā)展而來。最早的設(shè)計理念是通過將大量外圍設(shè)備和CPU集成在一個芯片中,使計算機(jī)系統(tǒng)更小,更容易集成進(jìn)復(fù)雜的而對體積要求嚴(yán)格的控制設(shè)備當(dāng)中。INTEL的Z80是最早按照這種思想設(shè)計出的處理器,從此以后,單片機(jī)和專用處理器的發(fā)展便分道揚(yáng)鑣。
單片機(jī)的概述:
單片機(jī)是指一個集成在一塊芯片上的完整計算機(jī)系統(tǒng)。盡管他的大部分功能集成在一塊小芯片上,但是它具有一個完整計算機(jī)所需要的大部分部件:CPU、內(nèi)存、內(nèi)部和外部總線系統(tǒng),目前大部分還會具有外存。同時集成諸如通訊接口、定時器,實時時鐘等外圍設(shè)備。而現(xiàn)在最強(qiáng)大的單片機(jī)系統(tǒng)甚至可以將聲音、圖像、網(wǎng)絡(luò)、復(fù)雜的輸入輸出系統(tǒng)集成在一塊芯片上。
彈片機(jī)又稱單片微控制器,它不是完成某一個邏輯功能的芯片,而是把一個計算機(jī)系統(tǒng)集成到一個芯片上。概括的講:一塊芯片就成了一臺計算機(jī)。它的體積小、質(zhì)量輕、價格便宜、為學(xué)習(xí)、應(yīng)用和開發(fā)提供了便利條件。同時,學(xué)習(xí)使用單片機(jī)了解計算機(jī)原理與結(jié)構(gòu)的最佳選擇。
單片機(jī)的特點:
2.1.集成度高、體積小。
單片機(jī)將CPU、存儲器、I/O接口等各種功能部件集成在一塊晶體芯片上,體積小,節(jié)省空間。能靈活,方便地應(yīng)用于各種智能化的控制設(shè)備和儀器,實現(xiàn)機(jī)電一體化。
2.2.可靠性高,抗干擾性強(qiáng)。
單片機(jī)把各種功能部件集成在一塊芯片上,內(nèi)部采用總線結(jié)構(gòu),減少了各芯片之間的連線,大大提高了單片機(jī)的可靠性與抗干擾能力。另外,其體積小,對于強(qiáng)磁場環(huán)境易于采取屏蔽措施,適合在惡劣環(huán)境下工作。
2.3.低功耗。
許多單片機(jī)的工作電壓只有2~4伏特,電流幾百微安,功耗很低,適用于便攜式系統(tǒng)。
2.4.控制功能強(qiáng)。
其CPU可以對I/O端口直接進(jìn)行操作,可以進(jìn)行位操作、分支轉(zhuǎn)移操作, 還能方便地實現(xiàn)多機(jī)控制,使整個系統(tǒng)的控制效率大為提高,適用于專門的控制領(lǐng)域。
2.5.可擴(kuò)展性好。
單片機(jī)具有靈活方便的外部擴(kuò)展總線接口,使得當(dāng)片內(nèi)資源不夠使用時可以非常方便地進(jìn)行片外擴(kuò)展。另外,現(xiàn)在單片機(jī)具有越來越豐富的通信接口:如異步串行口SCI、同步串行口SPI、I2C、CAN總線、甚至有的單片機(jī)還集成了USB接口或以太網(wǎng)接口,這些豐富的通信接口使得單片機(jī)系統(tǒng)與外部計算機(jī)系統(tǒng)的通信變得非常容易。
2.6.性價比高。
單片機(jī)應(yīng)用廣泛,生產(chǎn)批量大,產(chǎn)品供應(yīng)商的商業(yè)競爭使得單片機(jī)產(chǎn)品的性能越來越強(qiáng)而價格低廉,有優(yōu)異的性能價格比。
單片機(jī)的分類:
3.1.通用型/專用型 這是按單片機(jī)適用范圍來區(qū)分的。例如,80C51是通用型單片機(jī),它不是為某種專用途設(shè)計的;專用型單片機(jī)是針對一類產(chǎn)品甚至某一個產(chǎn)品設(shè)計生產(chǎn)的,例如為了滿足電子體溫計的要求,在片內(nèi)集成ADC接口等功能的溫度測量控制電路。
3.2.總線型/非總線型 這是按單片機(jī)是否提供并行總線來區(qū)分的。總線型單片機(jī)普遍設(shè)置有并行地址總線、 數(shù)據(jù)總線、控制總線,這些引腳用以擴(kuò)展并行外圍器件都可通過串行口與單片機(jī)連接,另外,許多單片機(jī)已把所需要的外圍器件及外設(shè)接口集成一片內(nèi),因此在許多情況下可以不要并行擴(kuò)展總線,大大減省封裝成本和芯片體積,這類單片機(jī)稱為非總線型單片機(jī)。
3.3.控制型/家電型 這是按照單片機(jī)大致應(yīng)用的領(lǐng)域進(jìn)行區(qū)分的。一般而言,工控型尋址范圍大,運(yùn)算 能力強(qiáng);用于家電的單片機(jī)多為專用型,通常是小封裝、低價格,外圍器件和外設(shè)接口集成度高。 顯然,上述分類并不是惟一的和嚴(yán)格的。例如,80C51類單片機(jī)既是通用型又是總線型,還可以作工控用。
單片機(jī)的原理:
目前,單片機(jī)原理在當(dāng)代的應(yīng)用可謂是越來越廣泛,單片機(jī)原理是值得我們好好學(xué)習(xí)的,現(xiàn)在我們就深入了解單片機(jī)原理。
單片機(jī)原理
所謂單片機(jī)就是指一個集成在一塊芯片上的完整計算機(jī)系統(tǒng)。盡管他的大部分功能集成在一塊小芯片上 ,但是它具有一個完整計算機(jī)所需要的大部分部件。單片機(jī)又稱單片微控制器,它不是完成某一個邏輯功能的芯片,而是把 一個計算機(jī)系統(tǒng)集成到一個芯片上。概括的講:一塊芯片就成了一臺計算機(jī)。它的體積小、質(zhì)量輕、價格便宜、為學(xué)習(xí)、 應(yīng)用和開發(fā)提供了便利條件。同時,學(xué)習(xí)使用單片機(jī)是了解計算機(jī)原理與結(jié)構(gòu)的最佳選擇。
隨著大規(guī)模集成電路的出現(xiàn)及其發(fā)展,將計算機(jī)的CPU 、RAM 、 ROM 、定時/數(shù)器和多種I/O接口集成在一片芯片上,形成芯片級的計算機(jī),因此單片機(jī)早期的含義稱為單片微型計算機(jī),直譯為單片機(jī) 。
單片機(jī)的結(jié)構(gòu):
5.1.運(yùn)算器:用于實現(xiàn)算術(shù)和邏輯運(yùn)算。計算機(jī)的運(yùn)算和處理都在這里進(jìn)行;
5.2.控制器:是計算機(jī)的控制指揮部件,使計算機(jī)各部份能自動協(xié)調(diào)的工作;
5.3.存儲器:用于存放程序和數(shù)據(jù);(又分為內(nèi)存儲器和外存儲器,內(nèi)存儲器就如我們電腦的硬盤,外存儲器就如我們的U盤)
5.4.輸入設(shè)備:用于將程序和數(shù)據(jù)輸入到計算機(jī)(例如我們電腦的鍵盤、掃描儀);
5.5.輸出設(shè)備:輸出設(shè)備用于把計算機(jī)數(shù)據(jù)計算或加工的結(jié)果以用戶需要的形式顯示或保存(例如我們的打印機(jī))。
單片機(jī)的工作過程 :
單片機(jī)自動完成賦予它的任務(wù)的過程,也就是單片機(jī)執(zhí)行程序的過程,即一條條執(zhí)行的指令的過程,所謂指令就是把要求單片機(jī)執(zhí)行的各種操作用的命令的形式寫下來,這是在設(shè)計人員賦予它的指令系統(tǒng)所決定的,一條指令對應(yīng)著一種基本操作;單片機(jī)所能執(zhí)行的全部指令,就是該單片機(jī)的指令系統(tǒng),不同種類的單片機(jī),其指令系統(tǒng)亦不同。為使單片機(jī)能自動完成某一特定任務(wù),必須把要解決的問題編成一系列指令(這些指令必須是選定單片機(jī)能識別和執(zhí)行的指令),這一系列指令的集合就成為程序,程序需要預(yù)先存放在具有存儲功能的部件——存儲器中。存儲器由許多存儲單元(最小的存儲單位)組成,就像大樓房有許多房間組成一樣,指令就存放在這些單元里,單元里的指令取出并執(zhí)行就像大樓房的每個房間的被分配到了唯一一個房間號一樣,每一個存儲單元也必須被分配到唯一的地址號,該地址號稱為存儲單元的地址,這樣只要知道了存儲單元的地址,就可以找到這個存儲單元,其中存儲的指令就可以被取出,然后再被執(zhí)行。
程序通常是順序執(zhí)行的,所以程序中的指令也是一條條順序存放的,單片機(jī)在執(zhí)行程序時要能把這些指令一條條取出并加以執(zhí)行,必須有一個部件能追蹤指令所在的地址,這一部件就是程序計數(shù)器PC(包含在CPU中),在開始執(zhí)行程序時,給PC賦以程序中第一條指令所在的地址,然后取得每一條要執(zhí)行的命令,PC之中的內(nèi)容就會自動增加,增加量由本條指令長度決定,可能是1、2或3,以指向下一條指令的起始地址,保證指令順序執(zhí)行。
單片機(jī)的應(yīng)用 :
7.1.在智能儀器儀表上的應(yīng)用
單片機(jī)具有體積小、功耗低、控制功能強(qiáng)、擴(kuò)展靈活、微型化和使用方便等優(yōu)點,廣泛應(yīng)用于儀器儀表中,結(jié)合不同類型的傳感器,可實現(xiàn)諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長度、硬度、元素、壓力等物理量的測量。采用單片機(jī)控制使得儀器儀表數(shù)字化、智能化、微型化,且功能比起采用電子或數(shù)字電路更加強(qiáng)大。例如精密的測量設(shè)備(功率計,示波器,各種分析儀)。
7.2.在工業(yè)控制中的應(yīng)用
用單片機(jī)可以構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。例如工廠流水線的智能化管理,電梯智能化控制、各種報警系統(tǒng),與計算機(jī)聯(lián)網(wǎng)構(gòu)成二級控制系統(tǒng)等。
7.3.在家用電器中的應(yīng)用
可以這樣說,現(xiàn)在的家用電器基本上都采用了單片機(jī)控制,從電飯褒、洗衣機(jī)、電冰箱、空調(diào)機(jī)、彩電、其他音響視頻器材、再到電子秤量設(shè)備,五花八門,無所不在。
7.4.在計算機(jī)網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用
現(xiàn)代的單片機(jī)普遍具備通信接口,可以很方便地與計算機(jī)進(jìn)行數(shù)據(jù)通信,為在計算機(jī)網(wǎng)絡(luò)和通信設(shè)備間的應(yīng)用提供了極好的物質(zhì)條件,現(xiàn)在的通信設(shè)備基本上都實現(xiàn)了單片機(jī)智能控制,從手機(jī),電話機(jī)、小型程控交換機(jī)、樓宇自動通信呼叫系統(tǒng)、列車無線通信、再到日常工作中隨處可見的移動電話,集群移動通信,無線電對講機(jī)等。
7.5.單片機(jī)在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用
單片機(jī)在醫(yī)用設(shè)備中的用途亦相當(dāng)廣泛,例如醫(yī)用呼吸機(jī),各種分析儀,監(jiān)護(hù)儀,超聲診斷設(shè)備及病床呼叫系統(tǒng)等等。
此外,單片機(jī)在工商,金融,科研、教育,國防航空航天等領(lǐng)域都有著十分廣泛的用途。
單片機(jī)的主要發(fā)展階段:
早期階段SCM即單片微型計算機(jī)(Microcontrollers)階段,主要是尋求最佳的單片形態(tài)嵌入式系統(tǒng)的最佳體系結(jié)構(gòu)。“創(chuàng)新模式”獲得成功,奠定了SCM與通用計算機(jī)完全不同的發(fā)展道路。在開創(chuàng)嵌入式系統(tǒng)獨(dú)立發(fā)展道路上,Intel公司功不可沒。
Micro Controller Unit中期發(fā)展MCU即微控制器(Micro Controller Unit)階段,主要的技術(shù)發(fā)展方向是:不斷擴(kuò)展?jié)M足嵌入式應(yīng)用時,對象系統(tǒng)要求的各種外圍電路與接口電路,突顯其對象的智能化控制能力。它所涉及的領(lǐng)域都與對象系統(tǒng)相關(guān),因此,發(fā)展MCU的重任不可避免地落在電氣、電子技術(shù)廠家。從這一角度來看,Intel逐漸淡出MCU的發(fā)展也有其客觀因素。在發(fā)展MCU方面,最著名的廠家當(dāng)數(shù)Philips公司。Philips公司以其在嵌入式應(yīng)用方面的巨大優(yōu)勢,將MCS-51從單片微型計算機(jī)迅速發(fā)展到微控制器。因此,當(dāng)我們回顧嵌入式系統(tǒng)發(fā)展道路時,不要忘記Intel和Philips的歷史功績。當(dāng)前趨勢SoC嵌入式系統(tǒng)(System on Chip)式的獨(dú)立發(fā)展之路,向MCU階段發(fā)展的重要因素,就是尋求應(yīng)用系統(tǒng)在芯片上的最大化解決,因此,專用單片機(jī)的發(fā)展自然形成了SoC化趨勢。隨著微電子技術(shù)、IC設(shè)計、EDA工具的發(fā)展,基于SoC的單片機(jī)應(yīng)用系統(tǒng)設(shè)計會有較大的發(fā)展。因此,對單片機(jī)的理解可以從單片微型計算機(jī)、單片微控制器延伸到單片應(yīng)用系統(tǒng)。
單片機(jī)系統(tǒng)軟件抗干擾方法:
在提高硬件系統(tǒng)抗干擾能力的同時,軟件抗干擾以其設(shè)計靈活、節(jié)省硬件資源、可靠性好越來越受到重視。下面以mcs-51單片機(jī)系統(tǒng)為例,對微機(jī)系統(tǒng)軟件抗干擾方法進(jìn)行研究。
單片機(jī)系統(tǒng)因干擾復(fù)位或掉電后復(fù)位均屬非正常復(fù)位,應(yīng)進(jìn)行故障診斷并能自動恢復(fù)非正常復(fù)位前的狀態(tài)。
單片機(jī)的攻擊技術(shù):
10.1.軟件攻擊。該技術(shù)通常使用處理器通信接口并利用協(xié)議、加密算法或這些算法中的安全漏洞來進(jìn)行攻擊。軟件攻擊取得成功的一個典型事例是對早期atmelat89c 系列單片機(jī)的攻擊。攻擊者利用了該系列單片機(jī)擦除操作時序設(shè)計上的漏洞,使用自編程序在擦除加密鎖定位后,停止下一步擦除片內(nèi)程序存儲器數(shù)據(jù)的操作,從而使加過密的單片機(jī)變成沒加密的單片機(jī),然后利用編程器讀出片內(nèi)程序。
10.2.電子探測攻擊。該技術(shù)通常以高時間分辨率來監(jiān)控處理器在正常操作時所有電源和接口連接的模擬特性,并通過監(jiān)控它的電磁輻射特性來實施攻擊。因為單片機(jī)是一個活動的電子器件,當(dāng)它執(zhí)行不同的指令時,對應(yīng)的電源功率消耗也相應(yīng)變化。這樣通過使用特殊的電子測量儀器和數(shù)學(xué)統(tǒng)計方法分析和檢測這些變化,即可獲取單片機(jī)中的特定關(guān)鍵信息。
10.3.探針技術(shù)。該技術(shù)是直接暴露芯片內(nèi)部連線,然后觀察、操控、干擾單片機(jī)以達(dá)到攻擊目的。
雖然大多數(shù)普通單片機(jī)都具有熔絲燒斷保護(hù)單片機(jī)內(nèi)代碼的功能,但由于通用低檔的單片機(jī)并非定位于制作安全類產(chǎn)品,因此,它們往往沒有提供有針對性的防范措施且安全級別較低。加上單片機(jī)應(yīng)用場合廣泛,銷售量大,廠商間委托加工與技術(shù)轉(zhuǎn)讓頻繁,大量技術(shù)資料外瀉,使得利用該類芯片的設(shè)計漏洞和廠商的測試接口,并通過修改熔絲保護(hù)位等侵入型攻擊或非侵入型攻擊手段來讀取單片機(jī)的內(nèi)部程序變得比較容易。
應(yīng)對單片機(jī)破解的建議:
11.1.在選定加密芯片前,要充分調(diào)研,了解單片機(jī)破解技術(shù)的新進(jìn)展,包括哪些單片機(jī)是已經(jīng)確認(rèn)可以破解的。盡量不選用已可破解或同系列、同型號的芯片。
11.2.盡量不要選用mcs51系列單片機(jī),因為該單片機(jī)在國內(nèi)的普及程度最高,被研究得也最透。
11.3.產(chǎn)品的原創(chuàng)者,一般具有產(chǎn)量大的特點,所以可選用比較生僻、偏冷門的單片機(jī)來加大仿冒者采購的難度。
11.4.選擇采用新工藝、新結(jié)構(gòu)、上市時間較短的單片機(jī),如atmelavr系列單片機(jī)等。
11.5.在設(shè)計成本許可的條件下,應(yīng)選用具有硬件自毀功能的智能卡芯片,以有效對付物理攻擊。
11.6.如果條件許可,可采用兩片不同型號單片機(jī)互為備份,相互驗證,從而增加破解成本。
11.7.打磨掉芯片型號等信息或者重新印上其它的型號,以假亂真。
當(dāng)然,要想從根本上防止單片機(jī)被解密,程序被盜版等侵權(quán)行為發(fā)生,只能依靠法律手段來保障。
如果說單片機(jī)就是一個電腦你可能不會認(rèn)可,其實它和我們用的電腦的在本質(zhì)上沒有區(qū)別,只是5步和100步的區(qū)別,想當(dāng)年比爾.蓋茨也給類似的東西搞過編程,當(dāng)時機(jī)器的顯示器是幾個led顯示燈。
PLC與單片機(jī)的區(qū)別:
看到網(wǎng)友在討論P(yáng)LC與單片機(jī)的區(qū)別,我也來瞎說幾句: PLC其實就是一套已經(jīng)做好的單片幾(單片機(jī)范圍很廣的喔)系統(tǒng).
PLC的梯形圖你可以理解成是與匯編等計算器語言一樣是一種編程語言,只是使用范圍不同!而且通常做法是由PLC軟件把你的梯形圖轉(zhuǎn)換成C或匯編語言(由PLC所使用的CPU決定),然后利用匯編或C編譯系統(tǒng)編譯成機(jī)器碼!PLC運(yùn)行的只是幾器碼而已.梯形圖只是讓使用者更加容易使用而已.
同樣MCS-51單片機(jī)當(dāng)然也可以用于PLC制作,只是8位CPU在一些高級應(yīng)用如: 大量運(yùn)算(包括浮點運(yùn)算),嵌入式系統(tǒng)(現(xiàn)在UCOS也能移植到MCS-51)等,有些力不從心而已.我公司在使用的一套工業(yè)系統(tǒng)就是使用MCS-51單片機(jī)做的,不過加上DSP而已,已經(jīng)能滿足我們要求(我們設(shè)備速度較慢,而且邏輯控制為主,但是點數(shù)不少喔,128點I/O呢!!),而且同樣使用梯形圖編程,我們在把我們的梯形圖轉(zhuǎn)化為C51再利用KEIL的C51進(jìn)行編譯.你沒有注意到不用型號的PLC會選用不同的CPU嗎!!
當(dāng)然也可以用單片機(jī)直接開發(fā)控制系統(tǒng),但是對開發(fā)者要求相當(dāng)高(不是一般水平可以勝任的),開發(fā)周期長,成本高(對于一些大型一點的體統(tǒng)你需要做實驗,印刷電路板就需要一筆相當(dāng)?shù)馁M(fèi)用,你可以說你用仿真器,用實驗板來開發(fā),但是我要告訴你,那樣做你只
單片機(jī)故障的排除:
13.1.單片機(jī)正常工作的三個條件
單片機(jī)工作的三個條件分別是電源、時鐘晶振、復(fù)位。當(dāng)單片機(jī)不能正常工作時,我們首先就要檢查這三個條件,用電壓表或者萬用表檢測他的電源和接地腳,檢測兩個引腳之間的電壓是不是5V左右;對于時鐘晶體振蕩有沒有正常工作,我們最好用示波器進(jìn)行檢測,看能否檢測到相應(yīng)頻率的正弦波脈沖;復(fù)位檢測比較簡單,單片機(jī)的復(fù)位電平一般是高電平復(fù)位,單片機(jī)在接通電源的時候一般復(fù)位引腳上會出現(xiàn)5V左右的高電平,另外在按下復(fù)位按鍵時,復(fù)位引腳上也會出現(xiàn)高電平,用一般的電壓表或者萬用表都可以進(jìn)行檢測。
13.2.單片機(jī)內(nèi)部是否正常工作的檢測
單片機(jī)內(nèi)部有沒有正常工作,我們主要是通過寫入程序的方式來進(jìn)行檢測和排查。這個檢測需要有“燒入”代碼的硬件和軟件才行,檢測的原理就是通過“燒入”代碼的硬件和軟件,將一段帶有檢測功能的正常代碼“燒入”到單片機(jī)。檢查兩個方面:第一就是能不能將目標(biāo)代碼正常寫入單片機(jī),不能正常寫入單片機(jī)時,說明單片機(jī)已經(jīng)損壞,需要更換同型號的單片機(jī);第二就是目標(biāo)代碼可以正常寫入單片機(jī),寫入后的效果是不是就是程序設(shè)定的功能,如果是說明單片機(jī)正常。
單片機(jī)在更換時,我們最好采用同型號的單片機(jī),然后寫入公司給予的目標(biāo)代碼,單片機(jī)的價格目前一般比較便宜,零售價格大概5元左右。
是驗證了硬件與軟件的可行性,并不代表可以用在工業(yè)控制系統(tǒng),因為工業(yè)控制系統(tǒng)對抗干擾的要求非常高,穩(wěn)定第一,而不是性能第一,所以你的電路板設(shè)計必須不斷實驗,改進(jìn)).