日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > > 嵌入式微處理器
[導(dǎo)讀]軟件跟硬件之間的界限已經(jīng)越來越模糊了,那么處于這個灰色地帶的,就是固件了。 這就分成三類工作者。

軟件跟硬件之間的界限已經(jīng)越來越模糊了,那么處于這個灰色地帶的,就是固件了。 這就分成三類工作者。


1、軟件工程師 一般指做圖形界面的程序員,工作內(nèi)容就是寫C++、JAVA、Web等。

2、硬件工程師 當(dāng)然是指玩電路板的,工作內(nèi)容就是畫原理圖、PCB等。

3、固件工程師 也叫單片機工程師,既寫代碼(主要是C語言、匯編)又要畫電路圖。


玩單片機的人,可能會有個疑問,為什么我寫的C語言能操作到底層的硬件? 其實在《計算機組成原理》已經(jīng)有很詳細的介紹了。

我這里粗略地介紹一下,這個原理。

首先你可以搜索一下“從零開始造電腦”,這位叫Steve的大神,就告訴你,用晶體管可以做出CPU(單片機也是CPU)。




當(dāng)然,我們現(xiàn)在可不會落后到需要到晶體管來制造電腦。

接下來,你可以看一部叫《喬布斯》的電影,劇中就給你展示蘋果公司的第一臺計算機。




嘿嘿,看到那些黑色的芯片沒有? 還有兩個大大的變壓器。 這說明了在大學(xué)玩單片機的時代,就相當(dāng)于回到蘋果公司的初始時期! 是不是很激動人心?

其實你可以用74系列的邏輯IC、單片機等,來搭建一個屬于自己的計算機。 這就是說人們把若干個晶體管集成為一塊74系列的IC,如果集成度更高呢? 那就是手機或者臺式機用的多核CPU了。

好,介紹了這些古董之后,就讓你有個認識,計算機本質(zhì)上是N個晶體管的組合,也是數(shù)字邏輯芯片的組合,更高級的,就是一塊數(shù)模混合的芯片,具體形式是由你的工藝決定的。 現(xiàn)在回到正題,介紹一下數(shù)電的基礎(chǔ)知識。

因為CPU主要功能是計算,也就是可以直接運用數(shù)學(xué)知識來解決問題,這里就舉個例子介紹一下,CPU如何計算加法,也就是用數(shù)電里的門電路搭一個加法器。




怎樣用晶體管搭這些與、或、非門就不說了,不懂的,可以翻書。 上圖就告訴你,可以用這些門電路搭一個加法器。

怎樣輸入Ai=0,Bi=1,Ci=0? 用74系列的IC的話,可以直接把Ai,Ci接GND,Bi接VCC,就實現(xiàn)加法了。 而在CPU內(nèi)部也是一樣可以這樣做的,但是CPU可沒那么死板,只算常數(shù)的加法。




上圖中,藍色箭頭指向的1,就是接VCC的,而紅色箭頭,就是接GND。

在CPU內(nèi)部,還有ROM,它可以把你要計算的加數(shù)和被加數(shù)存進去(ROM輸出的高低電平,跟你接GND和VCC是一樣的效果),而結(jié)果則存在寄存器(先暫存,以備后面使用)。

現(xiàn)在有個問題,如果加完之后還要計算乘法(在信號處理領(lǐng)域的卷積運算的核心單元就是乘加器),怎么辦? 誰來自動完成這個動作? 幸好,CPU里面有個叫ALU(算術(shù)邏輯單元)來處理這件事情。




這里的控制單元,就把ROM里面的數(shù)據(jù)取出來,再用選擇器,來調(diào)用加法器和乘法器,最終把結(jié)果存到寄存器中。

如果ROM里面只存數(shù)據(jù),那是無法讓控制單元知道,你要執(zhí)行加法還是乘法,要解決這個問題,就需要在ROM里面再劃分一個區(qū)域,存放指令碼。

這個指令碼,跟數(shù)據(jù)是一樣,都是0、1的二進制數(shù),只是用途不同,所以起了不同的名字。

其實這個指令碼,對應(yīng)在單片機里面的匯編語言,就是操作碼(如: MOV); 而操作數(shù)就是數(shù)據(jù)(如: 01H)。 具體的,可以看看單片機的教材。

根據(jù)指令碼的設(shè)計方法來分,有四種,分別是CISC、RISC、VLIW、TTA,具體區(qū)別可以看計算機組成原理。

而PC(程序計數(shù)器)就是控制ROM的地址,現(xiàn)在你要知道PC是不能出錯的,一旦出錯,就意味著單片機不按照你的代碼來工作。

現(xiàn)在,我在8位的CPU的ROM里面,第一個地址存了0x03這個指令碼來代表加法,而在第二、三個地址存了加數(shù)和被加數(shù),然后在第四個地址存了0x05代表乘法,在第五、六個地址存了乘數(shù)和被乘數(shù)。 那么,按照一定的規(guī)則來設(shè)計控制單元(這個規(guī)則可以自己定義的),它就知道0x03是要執(zhí)行加法。

那么這個規(guī)則如何設(shè)計? 最簡單的,就是用與門了,然后輸出一個使能信號,讓加法器工作,就跟上面的74LS160差不多。

但是CPU可沒那么簡陋,它可以使用狀態(tài)機、流水線等,來控制這些基本單元(如: 加法器、乘法器),如下圖所示。




說到這里,你至少應(yīng)該知道,我們只要改變ROM的內(nèi)容,就可以操作CPU內(nèi)部的ALU,從而操作CPU的各個硬件單元了。

下面給個相對完整一點的ALU內(nèi)部結(jié)構(gòu)圖。




ROM的內(nèi)容本質(zhì)上是一些電荷量(電容上有、無電荷,代表二進制的1和0),也就是固件、軟件工程師寫的代碼。 而硬件,就是由晶體管搭建的數(shù)字、模擬電路(如: 單片機內(nèi)部的比較器、ADC等)。 所以硬件是物理器件,不容易更改; 而ROM的內(nèi)容完全可以用燒錄器就輕松改變它,修改成本非常低,而且很靈活。

在這里,你很難表述,這些電荷量是軟件還是硬件,但是CPU的這種結(jié)構(gòu),導(dǎo)致了兩種不同類型的工作者,我們稱他們?yōu)檐浖こ處熀陀布こ處煛?/span> 而單片機程序員寫的代碼,跟硬件密切相關(guān),而且一旦完成之后,很少需要修改的(不像軟件工程師修改的那么頻繁),我們稱之為固件。


-END-


|?整理文章為傳播相關(guān)技術(shù),版權(quán)歸原作者所有?|

|?如有侵權(quán),請聯(lián)系刪除?|


【1】用C實現(xiàn):均值計算的兩種算法

【2】單片機DSP必備概念:快速教會你傅立葉算法

【3】幾種常見的校驗算法

【4】C語言編程:九種必會查找算法(附完整代碼)

【5】圖解機器學(xué)習(xí):請不要再說看不懂算法!


免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

嵌入式ARM

掃描二維碼,關(guān)注更多精彩內(nèi)容

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉