0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區
會(huì )員中心
創(chuàng )作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內不再提示

固件工程師到底做的工作是哪個(gè)方面

Wildesbeast ? 來(lái)源:網(wǎng)絡(luò )整理 ? 作者:佚名 ? 2020-10-25 09:16 ? 次閱讀

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

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

2、硬件工程師 當然是指玩電路板的,工作內容就是畫(huà)原理圖、PCB等。

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

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

我這里粗略地介紹一下,這個(gè)原理。

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

當然,我們現在可不會(huì )落后到需要到晶體管來(lái)制造電腦。

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

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

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

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

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

怎樣用晶體管搭這些與、或、非門(mén)就不說(shuō)了,不懂的,可以翻書(shū)。 上圖就告訴你,可以用這些門(mén)電路搭一個(gè)加法器。

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

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

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

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

這里的控制單元,就把ROM里面的數據取出來(lái),再用選擇器,來(lái)調用加法器和乘法器,最終把結果存到寄存器中。

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

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

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

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

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

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

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

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

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

下面給個(gè)相對完整一點(diǎn)的ALU內部結構圖。

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

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

聲明:本文內容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權轉載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習之用,如有內容侵權或者其他違規問(wèn)題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6008

    文章

    44106

    瀏覽量

    623617
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10526

    瀏覽量

    207451
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7549

    瀏覽量

    131570
收藏 人收藏

    評論

    相關(guān)推薦

    請問(wèn)設備工程師和TAPE OUT哪個(gè)好點(diǎn)呢?

    本帖最后由 eehome 于 2013-1-5 09:58 編輯 請問(wèn)設備工程師和TAPE OUT哪個(gè)好點(diǎn)呢,我指的是薪資待遇和發(fā)展前景等方面?
    發(fā)表于 08-02 20:20

    PE工程師如何轉硬件設計?

    本人目前的是PE工程師,已工作近倆年,第一年工作偏制程方面,現在主要是新項目導入方面。所學(xué)專(zhuān)業(yè)
    發(fā)表于 01-03 13:15

    招聘電子工程師、結構工程師、軟件工程師、PE工程師

    廣州創(chuàng )美電子有限公司公司成立于2003年,主要研發(fā)、生產(chǎn)、銷(xiāo)售LED顯示屏、LED燈飾、LED商業(yè)照明等產(chǎn)品?,F在招聘電子工程師、結構工程師、軟件工程師、PE工程師、內貿銷(xiāo)售主管、外貿
    發(fā)表于 02-21 11:52

    從嵌入式工程師射頻工程師,難嗎?

    之前從事嵌入式工程師工作,現想轉射頻工程師,請問(wèn)同行們,這種轉變難嗎?
    發(fā)表于 11-03 14:47

    從嵌入式工程師射頻工程師,難嗎?

    之前從事嵌入式工程師工作,現想轉射頻工程師,請問(wèn)同行們,這種轉變難嗎?
    發(fā)表于 11-03 14:49

    今日話(huà)題:硬件工程師or軟件工程師哪個(gè)有錢(qián)途?

    軟件做什么方向?。。。。。。上期話(huà)題請查看:今日話(huà)題:作為工程師,做人or做事哪個(gè)更重要?https://bbs.elecfans.com/jishu_571167_1_1.html`
    發(fā)表于 03-22 10:27

    電子工程師最關(guān)心的10個(gè)問(wèn)題

    的真誠交流,長(cháng)時(shí)間的深刻思考電子工程師一直糾結于心中的難題,提取了10個(gè)電子工程師最關(guān)心的問(wèn)題。1 電子新手“沒(méi)事,沒(méi)人教,工作沒(méi)有技術(shù)含量”的矛盾心態(tài)電子新手往往心浮氣躁,拒絕進(jìn)步
    發(fā)表于 05-18 11:49

    嵌入式工程師的具體工作是什么?

    由于嵌入式主要分為操作系統和硬件兩個(gè)方面,所以嵌入式工程師的就業(yè)方向要比一般的軟件工程師更廣、更深,同時(shí)其就業(yè)機會(huì )和入職待遇也要比普通軟件工程師好。嵌入式
    發(fā)表于 04-21 15:23

    硬件工程師和軟件工程師哪個(gè)更有前途?

    ,自己調試應用代碼寫(xiě)kernel code,能調試無(wú)線(xiàn)通信,基本意味著(zhù)一個(gè)合格的嵌入式工程師要對硬件和軟件相關(guān)方面有足夠的知識。我自己是比較討厭web開(kāi)發(fā)app純開(kāi)發(fā)軟件的工作,因為
    發(fā)表于 08-23 10:59

    硬件工程師和軟件工程師哪個(gè)更有前途?我會(huì )告訴你嵌入式工程師更有前途

    企業(yè)的角度來(lái)講講。我個(gè)人認為造成這個(gè)差異的原因,第一個(gè)是基本上所有的公司,從初創(chuàng )公司到全球百強,都有對軟件工程師的需求?,F在哪個(gè)公司不需要幾個(gè)碼農來(lái)開(kāi)發(fā)app,或者做個(gè)web。但是硬件這種
    發(fā)表于 08-23 11:04

    求各位前輩指明方向,射頻工程師和傳感器研發(fā)工程師哪個(gè)方向比較有前景

    小弟畢業(yè)一年現在做的是射頻工程師這塊,最近想換工作,發(fā)現新?lián)Q的工作是傳感器研發(fā)工程師,請教各位前輩,哪個(gè)方向比較有前景呢,希望能指點(diǎn)迷津啊
    發(fā)表于 12-25 13:17

    射頻工程師的具體工作內容

    每年七月份的畢業(yè)季,電子專(zhuān)業(yè)的學(xué)生要開(kāi)始自己的職業(yè)生涯。其中一定會(huì )有一定數量的畢業(yè)生從事射頻工程師工作,面對即將走上工作的崗位,那么這些射頻工程師的具體
    發(fā)表于 06-24 06:26

    硬件工程師和軟件工程師哪個(gè)更有前途?我會(huì )告訴你嵌入式工程師更有前途

    企業(yè)的角度來(lái)講講。我個(gè)人認為造成這個(gè)差異的原因,第一個(gè)是基本上所有的公司,從初創(chuàng )公司到全球百強,都有對軟件工程師的需求?,F在哪個(gè)公司不需要幾個(gè)碼農來(lái)開(kāi)發(fā)app,或者做個(gè)web。但是硬件這種
    發(fā)表于 12-20 14:18

    嵌入式軟件開(kāi)發(fā)工程師與FPGA開(kāi)發(fā)工程師 精選資料分享

    我是一名初入職場(chǎng)的萌新,工作不久從嵌入式軟件工程師轉到了FPGA工程師,這篇文章簡(jiǎn)單講講兩者的區別。嵌入式軟件工程師無(wú)非分為兩大類(lèi),在Windows平臺下
    發(fā)表于 08-18 06:37

    硬件工程師和軟件工程師對比分析哪個(gè)更好

    企業(yè)的角度來(lái)講講。我個(gè)人認為造成這個(gè)差異的原因,第一個(gè)是基本上所有的公司,從初創(chuàng )公司到全球百強,都有對軟件工程師的需求?,F在哪個(gè)公司不需要幾個(gè)碼農來(lái)開(kāi)發(fā)app,或者做個(gè)web。但是硬件這種
    發(fā)表于 12-24 08:05
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看