單片機(jī)到底是個(gè)什么東西?
1 從電路到集成電路
1.1 電路發(fā)展變化的趨勢(shì)
(1)功率。電子設(shè)備越來(lái)越省電,待機(jī)時(shí)間越來(lái)越長(zhǎng),工作電壓越來(lái)越低。
(2)體積。體積越來(lái)越小。
(3)功能。功能越來(lái)越強(qiáng)大。
1.2 微器件的出現(xiàn)
(1)電路的核心:開關(guān)控制、倍率控制。
(2)電子管、晶體管等。
1.3 集成電路的出現(xiàn)
(1)IC(integrated circuit,集成電路),就是使用微器件為積木,去搭建具備一定功能的一個(gè)電路板。
(2)以前沒(méi)有微器件的時(shí)候,必須很大一塊電路板才能實(shí)現(xiàn)一個(gè)電路功能(譬如一個(gè)加法器,完成加法運(yùn)算)。然后有了微器件之后,這個(gè)電路板的體積變小了,越來(lái)越小,最后小到mm級(jí)別甚至更小,我們就把這個(gè)電路做在一起,用塑料外殼封裝起來(lái)就形成了大家看到的IC芯片。
(3)芯片(IC、集成電路)其實(shí)就是:里面餡是電路,外面的殼就是絕緣體殼,里面的電路通過(guò)外殼上引出來(lái)的一些引腳(金屬材料的)來(lái)與IC外部接軌。
(4)IC有多少個(gè)引腳,每一個(gè)引腳的作用是干嘛的,是IC設(shè)計(jì)制造的時(shí)候就已經(jīng)決定的,我們拿到IC使用時(shí)要去讀IC的數(shù)據(jù)手冊(cè)來(lái)知道這個(gè)引腳怎么用。
2 計(jì)算機(jī)的核心設(shè)備CPU
CPU就是一塊超大規(guī)模集成電路,CPU的本質(zhì)就是電路。
2.1 CPU(Central Processing Unit,中央處理器)
(1)CPU = 運(yùn)算器 + 控制器
(2)CPU = ALU + cache + Bus
(3)CPU = 匯編指令 + 寄存器
2.2 CPU的工作原理
(1)CPU通過(guò)總線從存儲(chǔ)器取出指令到內(nèi)部,然后譯碼,然后執(zhí)行。
(2)一條指令包括:指令碼+數(shù)據(jù)。
(3)執(zhí)行指令反應(yīng)為一個(gè)控制操作或者一個(gè)數(shù)學(xué)運(yùn)算。
(4)給單片機(jī)編程其實(shí)就是給CPU寫指令序列。
3 給單片機(jī)下個(gè)定義
3.1 計(jì)算機(jī)系統(tǒng)三大組成部分:CPU、內(nèi)部存儲(chǔ)器、IO
(1)單片機(jī)屬于計(jì)算機(jī)的一種。
(2)IO就是input/output,也就是輸入輸出。譬如鍵盤、鼠標(biāo)、觸摸屏等就是輸入設(shè)備,而LCD顯示器、聲卡等就是輸出設(shè)備。
3.2 單片機(jī)的結(jié)構(gòu)框圖分析
(1)我們來(lái)看單片機(jī)這個(gè)計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)框圖。
(2)框圖中的方塊是組成部件、箭頭表示總線Bus。
(3)CPU處于單片機(jī)系統(tǒng)的核心位置,別的模塊都通過(guò)總線和CPU進(jìn)行關(guān)聯(lián)。別的模塊之間一般沒(méi)有總線直接相連,有時(shí)候2個(gè)互相有關(guān)系的模塊也會(huì)有總線直接相連。
(4)IO其實(shí)就是芯片上的引腳,不同的單片機(jī)型號(hào)有不同的IO數(shù)量和定義。
3.3 如何定義單片機(jī)
(1)單片機(jī)就是一臺(tái)微型計(jì)算機(jī)。
(2)臺(tái)式電腦或者筆記本電腦(這種計(jì)算機(jī)叫PC)也是一種計(jì)算機(jī)系統(tǒng),這種計(jì)算機(jī)系統(tǒng)由很多個(gè)零部件組成。這些零部件由不同的廠商生產(chǎn),可以去組合組裝成一臺(tái)電腦。
(3)單片機(jī)這臺(tái)計(jì)算機(jī)的所有零件全部做在了一個(gè)IC內(nèi)部,并且出廠前被塑料殼封裝起來(lái)了。傳統(tǒng)計(jì)算機(jī)中的主要部件單片機(jī)都有,都集成到內(nèi)部去了。
(4)MCU的概念(參考百度百科詞條:MCU),所以說(shuō)大家看到:?jiǎn)纹瑱C(jī)、單片微型計(jì)算機(jī)、MCU、微控制器、微控制單元等,都是一個(gè)意思。
微控制單元(Microcontroller Unit;MCU) ,又稱單片微型計(jì)算機(jī)(Single Chip Microcomputer )或者單片機(jī),是把中央處理器(Central Process Unit;CPU)的頻率與規(guī)格做適當(dāng)縮減,并將內(nèi)存(memory)、計(jì)數(shù)器(Timer)、USB、A/D轉(zhuǎn)換、UART、PLC、DMA等周邊接口,甚至LCD驅(qū)動(dòng)電路都整合在單一芯片上,形成芯片級(jí)的計(jì)算機(jī),為不同的應(yīng)用場(chǎng)合做不同組合控制。諸如手機(jī)、PC外圍、遙控器,至汽車電子、工業(yè)上的步進(jìn)馬達(dá)、機(jī)器手臂的控制等,都可見(jiàn)到MCU的身影
4 ROM與RAM
4.1 計(jì)算機(jī)中的2種存儲(chǔ)器
(1)計(jì)算機(jī)要存儲(chǔ)器干嘛
(2)內(nèi)存:內(nèi)存和CPU接軌比較緊密,內(nèi)存可以被CPU直接訪問(wèn),內(nèi)存可以按照字節(jié)為單位來(lái)隨機(jī)訪問(wèn)、程序運(yùn)行時(shí)離不開內(nèi)存、程序中的變量都是定義在內(nèi)存中的。內(nèi)存受限于物理技術(shù)和成本,容量比較小而貴;內(nèi)存速度比外存快很多,CPU的速度比內(nèi)存的速度快好多。
(3)外存:外存和CPU之間比較遠(yuǎn),外存不可以被CPU直接訪問(wèn),外存一般以塊為單位來(lái)訪問(wèn),不能以字節(jié)為單位隨機(jī)訪問(wèn)。外存容量大而便宜,外存速度比內(nèi)存慢好多。
(4)綜合來(lái)說(shuō),計(jì)算機(jī)系統(tǒng)是這樣工作的:文件和數(shù)據(jù)不用的時(shí)候就放在外存中,要用的時(shí)候從外存讀取到內(nèi)存,然后CPU再?gòu)膬?nèi)存中讀取數(shù)據(jù)來(lái)直接使用。
4.2 ROM
(1)read only memory,只讀存儲(chǔ)器,意思是只能讀不能寫。實(shí)際上世界上根本不存在真正的只能讀不能寫的器件,我們ROM這里的只讀意思是:程序運(yùn)行時(shí)只能通過(guò)程序自己本身的操作去讀而不能寫。
(2)常見(jiàn)的ROM:?jiǎn)纹瑱C(jī)中用來(lái)存儲(chǔ)用戶燒錄的程序的器件就是ROM,燒錄的過(guò)程其實(shí)就是在寫ROM,但是程序運(yùn)行時(shí)是不能修改ROM內(nèi)容的。燒錄程序一般要通過(guò)燒錄器來(lái)完成。
(3)storage,存儲(chǔ)器,含義有點(diǎn)像倉(cāng)庫(kù)存儲(chǔ)東西。ROM就有點(diǎn)類似于倉(cāng)庫(kù),用來(lái)存儲(chǔ)程序代碼。
(4)ROM有點(diǎn)像外存的概念,但是并不完全相等。主要是因?yàn)橛?jì)算機(jī)系統(tǒng)有不同的設(shè)計(jì)方法,譬如PC機(jī)和單片機(jī)的設(shè)計(jì)就不相同。PC機(jī)中有外存沒(méi)有ROM,單片機(jī)中有ROM沒(méi)有外存。單片機(jī)中程序平時(shí)是存儲(chǔ)在ROM中,運(yùn)行時(shí)由ROM直接供給CPU。
4.3 RAM
(1)random access memory,隨機(jī)訪問(wèn)存儲(chǔ)器。
(2)常見(jiàn)的RAM:從物理上來(lái)講,主要分為SRAM和DRAM,單片機(jī)中一般使用的都是SRAM,嵌入式SoC中和PC機(jī)中用的都是DRAM。
(3)memory,存儲(chǔ)器,專指的是計(jì)算機(jī)的內(nèi)存。
4.4 單片機(jī)中的ROM和RAM
(1)單片機(jī)中的ROM一般是Flash(閃存),有些地方會(huì)看到叫flash memory;單片機(jī)中的RAM一般都是SRAM;這兩個(gè)共同構(gòu)成單片機(jī)中的存儲(chǔ)體系。
(2)ROM和RAM的協(xié)同工作方式是:ROM用來(lái)存儲(chǔ)用戶寫好編譯好的程序,運(yùn)行時(shí)CPU直接從ROM中讀取一條一條的指令來(lái)運(yùn)行,指令運(yùn)行過(guò)程中產(chǎn)生的臨時(shí)數(shù)據(jù)放在RAM中。所以基本可以理解為:ROM是單片機(jī)用來(lái)放程序的,RAM是用來(lái)放數(shù)據(jù)的。
5 單片機(jī)的工作原理
5.1 主要器件負(fù)責(zé)干嘛?CPU、存儲(chǔ)器、IO
5.2 統(tǒng)一的時(shí)鐘節(jié)拍
(1)這里有一個(gè)概念叫:同步。同步就是好多個(gè)獨(dú)立的部分按照同一個(gè)節(jié)奏步調(diào)來(lái)動(dòng),以此來(lái)實(shí)現(xiàn)一個(gè)配合。
(2)和同步相對(duì)的一個(gè)概念叫異步,異步就是各自干各自的。
(3)單片機(jī)的各個(gè)模塊之間是同步工作的,CPU和存儲(chǔ)器和IO和單片機(jī)中其他東西這些模塊之間通過(guò)一個(gè)統(tǒng)一的節(jié)拍來(lái)同步工作,這個(gè)統(tǒng)一節(jié)拍就是單片機(jī)的時(shí)鐘。
(4)這個(gè)時(shí)鐘節(jié)拍對(duì)單片機(jī)很重要,單片機(jī)內(nèi)部在一個(gè)時(shí)鐘節(jié)拍中只能做一件事情。所以單片機(jī)要發(fā)生一些變化或者做一些事情,最小的時(shí)間單位就是1個(gè)時(shí)鐘節(jié)拍。單片機(jī)的時(shí)間單位都是時(shí)鐘節(jié)拍的整數(shù)倍。
(5)單片機(jī)中的CPU、存儲(chǔ)器、IO等都是以時(shí)鐘節(jié)拍為動(dòng)作節(jié)拍的,所以單片機(jī)是一個(gè)同步系統(tǒng)。
(6)時(shí)鐘周期的長(zhǎng)度(時(shí)鐘節(jié)拍的快慢)影響了單片機(jī)的速度,所以這個(gè)時(shí)鐘就叫做單片機(jī)的主頻。主頻越高性能越高,一般PC的主頻都是2G多3G多,51單片機(jī)的主頻MHz級(jí)別。一般手機(jī)CPU的主頻也在1G-2G左右。一般高級(jí)單片機(jī)如STM32的主頻在百M(fèi)Hz級(jí)別。
6 外設(shè)與內(nèi)部外設(shè)
6.1 什么是外設(shè)
(1)外設(shè)英文叫 peripheral ,全稱為外部設(shè)備。屬于單片機(jī)中的模塊。
(2)單片機(jī)中除了三大部件(CPU、IO、存儲(chǔ)器)外,還有一些別的東西,譬如串口控制器、譬如I2C控制器等····這些東西就叫外設(shè)。
(3)早期單片機(jī)功能很弱小,不具備很多功能(譬如中斷功能、譬如串口通信功能),那我們用單片機(jī)做產(chǎn)品,只能外部擴(kuò)展一些專用芯片(中斷控制有中斷控制器芯片,串口通信我們有串口通信芯片)來(lái)和單片機(jī)結(jié)合(做到一塊電路板上用導(dǎo)線連接)起來(lái)工作。這種產(chǎn)品設(shè)計(jì)中核心部分就是單片機(jī),外部配合的這些專用芯片就是外部設(shè)備,簡(jiǎn)稱外設(shè)。
(4)后來(lái)隨著半導(dǎo)體工業(yè)發(fā)展進(jìn)化,集成電路的集成能力變強(qiáng)大了,我們干脆就把一些常用的外設(shè)直接集成到單片機(jī)里邊去了。所以單片機(jī)里邊就有了一些原來(lái)被稱為外設(shè)的東西,但是叫法名稱還是沿用了開始的名稱。
6.2 什么叫內(nèi)部外設(shè)
(1)我為了區(qū)分外設(shè),將集成到單片機(jī)里邊的外設(shè)叫做內(nèi)部外設(shè)。
(2)還有外部外設(shè),就是至今仍然沒(méi)有集成到單片機(jī)內(nèi)部,還在外部的那些外設(shè)。
7 單片機(jī)與電路板
7.1 什么是電路板(PCB printed circuit board,印刷電路板)
(1)外觀:PCB板 = 基板(絕緣)+電路。
(2)作用:PCB的作用就是骨架和連接。最終目的就是把所有的元件按照正確的電路圖連接起來(lái)形成一個(gè)完整的可以工作的電路。
(3)構(gòu)成和材質(zhì),常用的基板材質(zhì)都是FR4(玻璃纖維),PCB板是由多層構(gòu)成的(單面板、雙面板、四層板、8層板、12層、16層、24層)。
(4)印刷電路其實(shí)就是在不導(dǎo)電的基板表面按照電路構(gòu)成來(lái)印刷一層導(dǎo)電物質(zhì)形成電路。最后形成的就是一個(gè)里面的芯是不導(dǎo)電的FR4,外面有一層構(gòu)成了電路的銅(標(biāo)準(zhǔn)術(shù)語(yǔ)叫覆銅),為了避免銅氧化或者與外部導(dǎo)電外部還有一層油墨,刷油墨時(shí)要露出來(lái)焊接點(diǎn)(焊接點(diǎn)一般有2種:一種是插針式、一種是貼片式),焊接點(diǎn)上本來(lái)就是銅,但是我們?yōu)榱朔奖愫附右话銜?huì)做鍍錫。
(5)PCB板其實(shí)就是硬件電路(元件和電路設(shè)計(jì))的載體。
7.2 什么是芯片
(1)芯片就是:芯是半導(dǎo)體技術(shù)形成的電路,外面的殼是塑料絕緣殼,里面電路通過(guò)芯片引腳接出來(lái)用于連接外部電路。
7.3 芯片方式和電路板方式的關(guān)系
(1)相同點(diǎn)。芯片其實(shí)就是一個(gè)微型的電路板。這兩個(gè)東西本身一模一樣,早期只有電路板沒(méi)有芯片,后來(lái)半導(dǎo)體工藝發(fā)展后有了微型器件,所以人把一些電路利用半導(dǎo)體工藝直接作死到一個(gè)芯片中去形成了IC。
(2)不同點(diǎn)。電路板體積較大,功率大;芯片體積小,功率小。
(3)我們做一個(gè)電子產(chǎn)品究竟應(yīng)該如何去總體設(shè)計(jì)?現(xiàn)代的設(shè)計(jì)方案都是芯片+電路板。能做到芯片里面的都做進(jìn)去(趨勢(shì)是越來(lái)越進(jìn)去的多),實(shí)在不能做成芯片的就只好放在外面。原來(lái)的產(chǎn)品,譬如老式大屁股電視機(jī)主板非常大,而新式的智能電視機(jī)主板就是一個(gè)大芯片+很少的外圍設(shè)備。
(4)單片機(jī)開發(fā)板其實(shí)就是PCB板主板+單片機(jī)芯片+其他芯片+其他外圍電路元器件總體構(gòu)成的。這就是普遍的電子產(chǎn)品的結(jié)構(gòu)。
8 軟件與硬件的區(qū)別和聯(lián)系
8.1 從產(chǎn)品角度
(1)硬件是?產(chǎn)品的載體和身體。
(2)軟件是?產(chǎn)品的思維和靈魂、精神。
8.2 軟硬結(jié)合
(1)物聯(lián)網(wǎng)不能靠純軟件打造。
(2)純硬件產(chǎn)品大部分都低端。
9 硬件工程師主要工作職責(zé)
電路圖的分析和設(shè)計(jì)
原件的選擇和參數(shù)確定
PCB的設(shè)計(jì)和樣板焊接、調(diào)試
生產(chǎn)跟蹤和問(wèn)題解決
10 軟件工程師主要工作職責(zé)
初級(jí)軟件工程師:輔助測(cè)試、寫代碼、維護(hù)
中級(jí)軟件工程師:獨(dú)立工作、對(duì)產(chǎn)品負(fù)責(zé)、解bug
高級(jí)軟件工程師:需求分析、框架設(shè)計(jì)、團(tuán)隊(duì)管理
軟件工程師成長(zhǎng)路線:學(xué)到基礎(chǔ)(知識(shí)+能力)->找到工作->學(xué)習(xí)和鍛煉->中級(jí)->高級(jí)/轉(zhuǎn)方向
11 datasheet的重要性
11.1 什么是datasheet
(1)datasheet就是數(shù)據(jù)手冊(cè),其實(shí)就是芯片的文檔。
(2)數(shù)據(jù)手冊(cè)中描述的都是這個(gè)芯片/器件的物理參數(shù)、電學(xué)參數(shù)、時(shí)序圖、編程需要的信息、別的信息??偟膩?lái)說(shuō)這個(gè)芯片的所有有用的信息都在數(shù)據(jù)手冊(cè)中,使用這顆芯片過(guò)程中的任何疑問(wèn)都可以去datasheet中查詢。
(3)我們學(xué)習(xí)單片機(jī)軟件開發(fā)過(guò)程中,要不斷去查詢各種芯片的數(shù)據(jù)手冊(cè)以獲取一些有效信息來(lái)指導(dǎo)我們。
11.2 datasheet誰(shuí)寫的?
(1)datasheet是由芯片廠商提供的。datasheet其實(shí)就是芯片的產(chǎn)品說(shuō)明書。
11.3 datasheet從哪里來(lái)?
(1)最官方最權(quán)威的途徑就是到芯片廠商的官方網(wǎng)站去下載。
(2)開發(fā)板附帶的光盤資料中一般也會(huì)有。
(3)將芯片型號(hào)信息敲到百度去搜索其數(shù)據(jù)手冊(cè)。
11.4 datasheet應(yīng)該怎么使用?
(1)數(shù)據(jù)手冊(cè)不是書,更不是教材,數(shù)據(jù)手冊(cè)更像是一本字典。所以不是從第一頁(yè)看到最后一頁(yè),更不用試圖是記住。
(2)數(shù)據(jù)手冊(cè)一定要先瀏覽一遍。尤其對(duì)于剛開始學(xué)習(xí)的人。瀏覽的目的是大概知道什么東西在哪里(將來(lái)用到時(shí)大概知道到哪里去找),里面一些概念基本理解,但是并不是為了記住。
(3)數(shù)據(jù)手冊(cè)的正確用法就是:前面先簡(jiǎn)單看一遍(其中的前面一些可以認(rèn)真看,后面的了解即可),用到某個(gè)具體知識(shí)時(shí)再根據(jù)前面瀏覽時(shí)的了解去具體查找數(shù)據(jù)手冊(cè)中相關(guān)部分,這時(shí)候再去認(rèn)真看。
12 原理圖和PCB圖
12.1 原理圖
(1)原理圖叫電路原理設(shè)計(jì)圖,就是用符號(hào)來(lái)繪制出的電路連接的邏輯圖。我們平時(shí)講的電路圖其實(shí)就是原理圖。原理圖不是實(shí)物。
(2)原理圖由:線條、方框、圓圈、數(shù)字、字母等組成??炊@些符號(hào)所對(duì)應(yīng)的電路實(shí)物,就能看懂原理圖。
(3)原理圖中每一個(gè)符號(hào)表達(dá)一種含義,常見(jiàn)的有:
直線:表示導(dǎo)線,是用來(lái)連接元件構(gòu)成電路的。
方框:表示器件,如IC、插座
常見(jiàn)符號(hào):如電阻、電容、三極管等···
特殊符號(hào):不常見(jiàn)器件
(4)原理圖中的每一個(gè)器件都有一個(gè)編號(hào),如IC都用Un(U1、U2等),電容都用Cn(C1、C2)····這個(gè)編號(hào)在原理圖中是唯一的,這個(gè)編號(hào)用來(lái)表示/記錄這個(gè)元器件。
(5)原理圖中芯片類型的器件還會(huì)有一個(gè)名字,名字一般是器件的型號(hào)。
(6)原理圖中大多數(shù)器件還有一個(gè)參數(shù)值,譬如電容的容量、電阻的阻值等。
(7)有些器件(IC、插座)有引腳,引腳編號(hào)用數(shù)字表示。
(8)原理圖中有個(gè)網(wǎng)絡(luò)的概念,原理圖上2個(gè)編號(hào)一樣的節(jié)點(diǎn)其實(shí)在邏輯上是連在一起的。網(wǎng)絡(luò)的發(fā)明純粹是為了方便畫圖,讓圖不會(huì)導(dǎo)線連接的跟蜘蛛網(wǎng)一樣。分析原理圖時(shí)一定要注意網(wǎng)絡(luò),否則看到的可能就是一半的原理圖。
12.2 PCB圖
(1)硬件工程師在設(shè)計(jì)產(chǎn)品硬件時(shí)的步驟是:先有原理圖,然后用原理圖畫出PCB圖。
(2)PCB圖是原理圖和實(shí)際器件結(jié)合起來(lái)后,生成的PCB板的結(jié)構(gòu)圖紙,PCB圖的作用就是拿給做PCB板的廠商去印刷電路板。
(3)對(duì)于軟件工程師來(lái)說(shuō),PCB圖完全不用去關(guān)注,我們只關(guān)注原理圖。
12.3 BOM表
(1)BOM就是bills of meterials,就是物料表,物料表是整個(gè)電路中用到的所有物料的一張清單。
(2)BOM表是研發(fā)部門(硬件工程師)提供,一般是給生產(chǎn)部門來(lái)備料、記錄用的。
(3)BOM中每個(gè)物料的記錄和對(duì)應(yīng)就靠物料編號(hào)。
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!