新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)小白學(xué)步(17) 單片機(jī)/計(jì)算機(jī)系統(tǒng)概述:核心模塊

單片機(jī)小白學(xué)步(17) 單片機(jī)/計(jì)算機(jī)系統(tǒng)概述:核心模塊

作者: 時(shí)間:2016-11-19 來源:網(wǎng)絡(luò) 收藏
前面已經(jīng)介紹了模塊化設(shè)計(jì)的特點(diǎn)和巨大優(yōu)勢(shì)。在我們的實(shí)驗(yàn)板中,單片機(jī)是其中最核心的一個(gè)模塊;而對(duì)于單片機(jī)來說,又是由更多的子模塊組合而成。本文主要對(duì)單片機(jī)/計(jì)算機(jī)系統(tǒng)中最核心的幾個(gè)模塊進(jìn)行簡(jiǎn)要介紹。

為了便于進(jìn)行說明,后面會(huì)將單片機(jī)/計(jì)算機(jī)簡(jiǎn)單的統(tǒng)稱為微機(jī)系統(tǒng)。

本文引用地址:http://butianyuan.cn/article/201611/318516.htm

信息與數(shù)據(jù)

何為信息?可以理解成我們周圍各種所能感知到的東西、還有人們所思所想等等,信息的概念不好解釋,但是大家都能理解,也不是我要討論的重點(diǎn)。

在微機(jī)系統(tǒng)中,能處理很多信息,例如我正在寫的內(nèi)容,就是文字和圖像信息。處理信息的前提,就是對(duì)信息進(jìn)行表示,例如文字就是一種形式。

何為數(shù)據(jù)?在微機(jī)系統(tǒng)中,其結(jié)構(gòu)決定了各種能處理的信息都需要表示成二進(jìn)制數(shù)字,這就被稱為數(shù)據(jù)。例如英文字符可以通過ASCII碼表示成一個(gè)個(gè)字節(jié)的數(shù)據(jù)等。

CPU

人的大腦每時(shí)每刻所做的最重要的事,就是對(duì)大量的信息進(jìn)行處理。對(duì)內(nèi)部已有信息和外界信息進(jìn)行處理,產(chǎn)生新的信息保存在大腦中,或?qū)ν饨缱鞒龇磻?yīng)。

CPU即中央處理器(CPU=Central Processing Unit),是一個(gè)微機(jī)系統(tǒng)最核心的部件,可以認(rèn)為相當(dāng)于人的大腦中的思維部分,負(fù)責(zé)數(shù)據(jù)的處理。

存儲(chǔ)器:RAM/ROM/外存儲(chǔ)器

存儲(chǔ)器用來保存數(shù)據(jù),例如在硬盤上可以存放電影音樂,可以認(rèn)為相當(dāng)于大腦中的記憶部分。

RAM

隨機(jī)存儲(chǔ)器(RAM=Random Access Memory),最重要的特點(diǎn)是可讀可寫。寫是指修改或者刪除數(shù)據(jù)。另外,RAM的速度相對(duì)比較快;斷電后數(shù)據(jù)會(huì)丟失;另外由于造價(jià)較高通常容量不大,但是夠用了。通常在電腦中相當(dāng)于內(nèi)存。

在學(xué)習(xí)C語言的時(shí)候,定義一個(gè)變量,例如int a,程序在執(zhí)行的時(shí)候,這個(gè)變量就會(huì)保存在RAM中。

RAM根據(jù)結(jié)構(gòu)和工作原理,又分為SRAM(=Static RAM,靜態(tài)RAM)和DRAM(=Dynamic RAM,動(dòng)態(tài)RAM)兩種,有興趣可以自己查閱相關(guān)資料。

ROM

即只讀存儲(chǔ)器(ROM=Read Only Memory),主要特點(diǎn)是通常情況下存儲(chǔ)內(nèi)容不能被修改;斷電后數(shù)據(jù)不會(huì)丟失。

最早的ROM是一次性寫入的,寫入完成后通過高電壓燒斷ROM內(nèi)部的熔絲,之后就不能再修改,而這也是單片機(jī)“燒寫程序”一詞的由來。后來為了適應(yīng)硬件發(fā)展,可用紫外線擦寫的ROM被發(fā)明出來,但是操作起來比較麻煩。再到后來電擦寫的ROM誕生了,也就是后面會(huì)用到的EEPROM(EEPROM=Electrically Erasable Programmable Read-Only Memory,帶電可擦可編程只讀存儲(chǔ)器)。

給單片機(jī)燒寫程序時(shí),就是將代碼燒寫到了單片機(jī)的ROM中;運(yùn)行程序的時(shí)候,指令就會(huì)從ROM中取出并被執(zhí)行。

備注1:ROM常被誤認(rèn)為是對(duì)應(yīng)于計(jì)算機(jī)上的硬盤,實(shí)際上硬盤屬于外部存儲(chǔ),而ROM對(duì)應(yīng)于計(jì)算機(jī)主板上的BIOS存儲(chǔ)器等。

備注2:在計(jì)算機(jī)中,常用到的應(yīng)用程序平時(shí)是保存在硬盤中的,執(zhí)行的時(shí)候,會(huì)由操作系統(tǒng)裝載到內(nèi)存的代碼區(qū)域而不是ROM,這和單片機(jī)中的程序的執(zhí)行過程不一樣(與單片機(jī)程序執(zhí)行過程一致的是BIOS程序等,而不是操作系統(tǒng)之上的應(yīng)用程序)。

備注3:一些單片機(jī)具備IAP功能(IAP=In Application Programming,在應(yīng)用編程),利用一段小程序更新單片機(jī)ROM中的程序,可以實(shí)現(xiàn)在不斷電的情況下自動(dòng)更新單片機(jī)程序。

外存儲(chǔ)器

一般計(jì)算機(jī)系統(tǒng)中存儲(chǔ)器包括主存儲(chǔ)器和輔助存儲(chǔ)器,主存儲(chǔ)器又叫內(nèi)存儲(chǔ)器(內(nèi)存),輔助存儲(chǔ)器又叫外儲(chǔ)存器(外存)。常見的外存儲(chǔ)器有硬盤、軟盤、光盤、U盤等,斷電后仍然能保存數(shù)據(jù)。

中斷系統(tǒng)

中斷系統(tǒng)是計(jì)算機(jī)中非常重要的一個(gè)概念,但是這個(gè)詞看起來很難理解。何為中斷系統(tǒng)呢?我先講一個(gè)故事。

有一天班長(zhǎng)收到通知要讓五位同學(xué)每人填一份表格,填完后盡快收集起來上交給老師。班長(zhǎng)把表格分別發(fā)給了這五位同學(xué),但是每個(gè)同學(xué)什么時(shí)候能填好表格是不確定的。這時(shí)他有幾種選擇。

方法一,每隔一段時(shí)間輪流去問這五位同學(xué)有沒有填完,如果填完了,確認(rèn)無誤,就收集起來。

方法二,班長(zhǎng)發(fā)表格時(shí)告訴這幾位同學(xué),填完表后馬上交給他,然后自己就能繼續(xù)好好看書了。每當(dāng)有同學(xué)交表格的時(shí)候,班長(zhǎng)就會(huì)把書簽放到正在看的那一頁(yè)書中,然后檢查這個(gè)同學(xué)的表格填寫是否正確。確認(rèn)了以后,班長(zhǎng)又會(huì)從剛剛看的那一頁(yè)繼續(xù)看書。

顯然,方法一效率實(shí)在太低,浪費(fèi)了很多時(shí)間;方法二效果不錯(cuò),效率提高了很多。

故事講完了,這里就要介紹中斷系統(tǒng)了。在基本的微機(jī)系統(tǒng)中,CPU負(fù)責(zé)主要數(shù)據(jù)的處理工作(不考慮計(jì)算機(jī)顯卡這類設(shè)備),通常任務(wù)繁重(相當(dāng)于故事中的班長(zhǎng))。

有時(shí)外圍器件需要執(zhí)行工作,執(zhí)行結(jié)果要讓CPU及時(shí)處理,但又不能確定具體完成時(shí)間(故事中的同學(xué)填表格)。

原因有可能是因?yàn)橥鈬K速度遠(yuǎn)不及CPU,例如從硬盤讀數(shù)據(jù);也可能是執(zhí)行不需CPU干預(yù)的費(fèi)時(shí)操作(也可以理解成外圍模塊執(zhí)行這個(gè)操作的速度慢);或者是接收來自外界的操作,例如按下鍵盤電腦需要很快進(jìn)行響應(yīng),要不然就表現(xiàn)為很卡甚至死機(jī)了。

這時(shí)為了及時(shí)知道外圍器件處理的結(jié)果并進(jìn)行處理,就有幾種工作流程了。

一是輪詢法(故事中的方法一)。以一定的間隔不斷查詢外圍器件工作狀態(tài)。好處是設(shè)計(jì)起來比較簡(jiǎn)單;缺點(diǎn)是效率太低,特別是當(dāng)外圍設(shè)備太多、速度差異很大時(shí),CPU幾乎沒空干別的事。

二是中斷法(故事中的方法二)。外圍模塊處理好任務(wù)以后,主動(dòng)給CPU發(fā)送中斷請(qǐng)求(填好表格交給班長(zhǎng))。然后CPU中斷當(dāng)前任務(wù),轉(zhuǎn)而處理中斷請(qǐng)求,對(duì)該模塊的執(zhí)行結(jié)果進(jìn)行處理(檢查表格填寫正確,并收集表格)。處理中斷請(qǐng)求之前,需要保護(hù)現(xiàn)場(chǎng)(放書簽),處理完中斷請(qǐng)求,再恢復(fù)現(xiàn)場(chǎng),繼續(xù)之前任務(wù)(繼續(xù)看書)。

DMA

前面的故事其實(shí)還有方法三。班長(zhǎng)由于最近事情太多,決定請(qǐng)副班長(zhǎng)幫忙收集表格,讓同學(xué)們自己把表格交給副班長(zhǎng)。副班長(zhǎng)把表格都收集完了,再由他交給老師。這種方法需要征得副班長(zhǎng)的同意,不過效果很好。

同樣對(duì)于微機(jī)系統(tǒng)來說,也有第三種方法,這種方法就叫做DMA(DMA=Direct Memory Access,直接內(nèi)存訪問)。在CPU之外設(shè)置一個(gè)DMA控制器(副班長(zhǎng)),根據(jù)CPU發(fā)送的指令,外圍設(shè)備處理完數(shù)據(jù),通過DMA直接將數(shù)據(jù)保存到內(nèi)存中的指定位置,然后才用中斷通知CPU處理。

在比較復(fù)雜的系統(tǒng)中,DMA能大大提高執(zhí)行效率。51等單片機(jī)本身沒有DMA功能,可以在外部添加DMA控制器芯片實(shí)現(xiàn)(例如Intel 8237)。不過性能相對(duì)較低的單片機(jī)不能實(shí)現(xiàn)復(fù)雜系統(tǒng),所以使用DMA的意義不大。

定時(shí)器/計(jì)數(shù)器

這里的定時(shí)器和我們生活中的定時(shí)器相似,主要區(qū)別是這個(gè)定時(shí)器往往定時(shí)時(shí)間很短;定時(shí)器定時(shí)時(shí)間到,不會(huì)響鈴,而是通過中斷的形式通知CPU。計(jì)數(shù)器則是計(jì)數(shù)高低電平脈沖數(shù)量的,而定時(shí)器通常正是由計(jì)數(shù)器實(shí)現(xiàn)的。這兩個(gè)模塊放在一起講解,正是因?yàn)樗麄兺ǔ>褪窃O(shè)計(jì)在一塊的,后面再做詳細(xì)介紹。

計(jì)算機(jī)/單板機(jī)/單片機(jī)

核心模塊基本介紹完了。對(duì)于一個(gè)微機(jī)系統(tǒng),CPU、存儲(chǔ)器(主要指RAM和ROM)是必不可少的,實(shí)際上還會(huì)有很多其他設(shè)備。對(duì)于計(jì)算機(jī)而言,這些模塊一般都是獨(dú)立的,通過主板連接在一起。早期人們把CPU、RAM、ROM等器件集成到一塊電路板上,被稱為單板機(jī)。后來集成電路技術(shù)不斷發(fā)展,CPU、RAM、ROM、中斷等模塊集成到一個(gè)芯片中,就成了單片機(jī)。

=======================================================



評(píng)論


技術(shù)專區(qū)

關(guān)閉