01 什么是硬件?
百度百科介紹"硬件(英文名Hardware)是計算機硬件的簡稱(中國大陸及香港用語,臺灣作硬體),是指計算機系統(tǒng)中由電子,機械和光電元件等組成的各種物理裝置的總稱。這些物理裝置按系統(tǒng)結(jié)構(gòu)的要求構(gòu)成一個有機整體為計算機軟件運行提供物質(zhì)基礎(chǔ)。"
也就是說硬件是物理層面的,至少是你能看得到摸得著的東西,它是一種物質(zhì)載體,物質(zhì)基礎(chǔ)。廣義來說人類都是生活在物質(zhì)基礎(chǔ)之上,你可以把所有你能看到的東西都統(tǒng)稱為硬件。當(dāng)然狹義來說,一般我們所說的軟件和硬件指的是電子領(lǐng)域的。軟件代碼也是人編寫的,我們所熟知的語言比如C、C++等都是通過編譯器翻譯成匯編語言,然后匯編語言通過匯編器翻譯成二進制機器語言,機器語言操控門電路完成相應(yīng)的動作。個人覺得,沒有硬件,軟件就沒有存在的意義,硬件是一切的基礎(chǔ),這里可以看出硬件設(shè)計是多重要。但軟件和硬件又有明顯的區(qū)分,至少工作內(nèi)容區(qū)別很大。按照行業(yè)內(nèi)描述硬件屬于底層(一般稱為底層硬件),軟件稱為上層(軟件又分為:底層驅(qū)動、上層業(yè)務(wù)以及應(yīng)用層等)。如果非要舉個例子來說明軟件和硬件, 那最好的例子就是人,硬件指人的軀體,而軟件指人的思維。其實對于非電子領(lǐng)域的人,很難想明白計算機是怎么工作的,硬件是怎樣工作的,軟件是怎樣工作的,即使你知道都是0和1,但你沒做過相關(guān)工作,你發(fā)現(xiàn)不了其中的神奇之處。其實你只要知道,軟件驅(qū)動硬件工作,驅(qū)動的激勵是什么?是電訊號!硬件接收到的這個電訊號分為0和1,硬件的響應(yīng)速度非常快,多快呢?舉個例子,硬件中常用的串口波特率115200bit per second,一秒鐘115200個0或者1,英語字母是8個bit(可在ASCII表看到,這在大學(xué)都學(xué)過),那就是一秒鐘可打印14400個字母。你眨下眼睛一萬多個字母就出來了。當(dāng)然實際上并沒有這么多,這只是個形象的例子。但在電路設(shè)計上100kHz屬于比較慢的速率了。再比如顯示器一幅圖的刷新頻率在一秒鐘24個以上,我們?nèi)搜劬涂床怀鰜怼?4幀的數(shù)據(jù)是非常大的,比如1080p30格式輸出,總的數(shù)據(jù)量是一秒鐘1920*1080*12*30= 746496000個0或者1,也就是7億個0或者1。
02 什么是硬件設(shè)計?
一般來說硬件設(shè)計指的是電路設(shè)計,這樣說是沒問題的,因為你所有的工作都是圍繞電路設(shè)計,最終的目標(biāo)也是產(chǎn)出一個優(yōu)秀的電路,能夠滿足各種要求,經(jīng)歷各種考驗。但實際上我們要求的是產(chǎn)品,而不是單板。網(wǎng)上有一篇文章講的挺好:"硬件設(shè)計就是根據(jù)產(chǎn)品經(jīng)理的需求PRS(Product Requirement Specification),在COGS(Cost of Goods Sale)的要求下,利用目前業(yè)界成熟的芯片方案或者技術(shù),在規(guī)定時間內(nèi)完成符合:PRS功能(Function)
性能(perrformance)
電源設(shè)計(power Supply)
功耗(power Consumption)
散熱(Thermal/Cooling)
噪音(Noise)
信號完整性(Signal Integrity)
電磁輻射(EMC/EMI)
安規(guī)(Safet)
器件采購(Component Sourcing)
可靠性(Reliability)
可測試性(DFT: design for test)
可生產(chǎn)性(DFM:design for manufacture)
等上述要求的硬件產(chǎn)品(注意:是產(chǎn)品不是開發(fā)板)?梢钥吹剑粋成功的硬件設(shè)計,主要功能的實現(xiàn)只是所有環(huán)節(jié)中的一小部分。剛開始工作的時候,覺得板子電路設(shè)計完就完成了50%工作,PCB回板主要功能都能實現(xiàn)了,那就完成了80%的工作。實際上不是的,PCB回板主要功能都實現(xiàn)了,連30%工作都沒有。所以不管是時間上,還是階段上,產(chǎn)品的硬件設(shè)計是一個漫長過程。而且你在一個公司做產(chǎn)品硬件設(shè)計,一般情況下都是參考成熟的方案,主芯片CPU主要功能的實現(xiàn)最終還是依靠芯片廠商提供的套片方案,一般來說為了降低風(fēng)險,主要是參考套片方案的參考設(shè)計完成,芯片廠商也會提供包括器件封裝,參考設(shè)計,仿真模型,PCB參考等等全部資料,在芯片功能越來越復(fù)雜的今天,一個片子動不動就幾百上千個PIN,對于一個新項目來說,是沒有時間一頁頁去吃透每個PIN,每個輸入輸出的具體功能,電氣參數(shù)的,尤其是對于高速設(shè)計,比如DDR3接口,XAUI接口等等。一般來說芯片廠商提供的參考設(shè)計就是他們經(jīng)過開發(fā),驗證,測試的最佳方案了,很多情況就是你必須按照參考設(shè)計來做,否則硬件可能就有問題,一般來說就是信號完整性問題或者EMC問題。"
03 什么是硬件電路設(shè)計?
顧名思義,硬件電路設(shè)計就是設(shè)計電路的,能夠熟練使用cadence繪制電路與查看PCB。硬件設(shè)計中的電路設(shè)計是HWE最重要的職責(zé)。電路設(shè)計考驗的是HWE的設(shè)計基本功,即對一些硬件器件的理解以及靈活應(yīng)用,比如:CPU
電阻
電容
電感
二極管
三極管
保護器件
接口器件
邏輯芯片
邏輯功能
小芯片
電源
我們上述討論的硬件設(shè)計的13條東西都應(yīng)該在設(shè)計時候考慮,目前大公司的各種流程保證了設(shè)計時各部門的聯(lián)動,還是很好的。每個公司都會有自己的硬件電路設(shè)計規(guī)范,這個需要自己好好去看一下,并用在實踐中。硬件電路設(shè)計主要針對電路設(shè)計,里面涉及的東西比較多,對電路模塊的設(shè)計后面會有單獨的章節(jié)討論。硬件電路設(shè)計需要足夠的經(jīng)驗與理論知識。
04 硬件設(shè)計開發(fā)流程
硬件部門開發(fā)流程指定后,需要硬件部門人員嚴(yán)格按照開發(fā)流程完成開發(fā)工作。硬件部開發(fā)流程主要分為如下幾個步驟: 1) 市場調(diào)研 對即將進行的項目,需要進行市場調(diào)研。市 2) 立項
市場調(diào)研完成后后,首先需要進行立項工作。 3) 硬件總體設(shè)計 項目立項后,需要進行硬件總體設(shè)計。 4) 核心器件的實驗及分模塊的詳細(xì)設(shè)計 總體設(shè)計完成后,需要對核心器件進行實驗并且開始進行分模塊的設(shè)計方案。 5) 電路、程序及外殼設(shè)計 核心器件的實驗及分模塊的詳細(xì)設(shè)計完成后,進行電路、程序及外殼設(shè)計。電路、程序及外殼設(shè)計按照項目設(shè)。 6) 系統(tǒng)聯(lián)調(diào) 每個分塊部分調(diào)試完成后,即可進行系統(tǒng)聯(lián)調(diào)。 7) 內(nèi)部審核、項目驗收 系統(tǒng)聯(lián)調(diào)完成后,項目即可進行內(nèi)部審核、項目驗收。
5.1 硬件工程師的職責(zé)
首先看下大公司的研發(fā)分工如下圖所示,可以看到自己所處的部門與位置。而一個硬件產(chǎn)品的研發(fā)流程,如下圖所示:公司內(nèi)的所有崗位都同等重要的。雖然各團隊的重要性一致的,但研發(fā)團隊在產(chǎn)品開發(fā)中的位置應(yīng)該更加核心。研發(fā)人員可以轉(zhuǎn)去做市場、測試、供應(yīng)鏈或者質(zhì)量管理等,但市場等崗位的人卻很難轉(zhuǎn)做研發(fā)。一來研發(fā)門檻高,二來研發(fā)工作接觸面廣。而在整個研發(fā)團隊中,硬件工程師做主導(dǎo)作用。一般情況下我們所說的研發(fā)不僅僅局限于軟件硬件,而是整個項目組,這里包括基本上所有部門的產(chǎn)品負(fù)責(zé)人。而硬件工程師在研發(fā)團隊中是重要的一員,硬件產(chǎn)品的研發(fā)團隊可以如下圖所示:當(dāng)然上圖中所展示的并不完全,比如熱設(shè)計也是非常重要的一員。但需要說明的是,在整個項目研發(fā)團隊中,有兩個人和所有人打交道,一個就是項目經(jīng)理,另一個就是硬件工程師。硬件工程師需要和各種研發(fā)人員打交道 、協(xié)調(diào)工作,這也要求硬件工程師具有豐富的知識面和強大的協(xié)調(diào)能力。硬件工程師的本職工作,如下圖所示:硬件工程師可以大致分為如下四個階段: 初級硬件工程師 在別人的指導(dǎo)下完成階段三、四的部分,這個是應(yīng)屆畢業(yè)生入職三個月基本可以達到。 普通的硬件工程師 獨立完成階段三、四的工作,一般工作1到2年即可。 資深的硬件工程師 主導(dǎo)完成階段三、四的工作,參與完成階段二總體設(shè)計的工作。 專家級硬件工程師 主導(dǎo)完成階段一、二的工作。
5.2 時間點把握
作為一個硬件工程師,負(fù)責(zé)整個產(chǎn)品的研發(fā)過程。所以必須對每個時間段進行精確把握。項目都會有項目周期,雖然項目經(jīng)理在把控時間,但具體的操作還是硬件工程師來搞。因為本人只是處于階段三,對階段二、一沒什么時間概念,對于正常進度的項目來說:
- 原理圖和詳細(xì)設(shè)計方案:5周,包括參考設(shè)計以及原理圖評審。
- PCB布板布線:4周,包括配合結(jié)構(gòu)、PCB進行電路調(diào)整或者器件重新選型。
- 發(fā)板及等待回板:2周,這兩周是最閑的,發(fā)板同時必須完成BOM上傳,這個不能忘。多看自己的圖!
- 回板檢查:1周,將自己的板子跑起來,能燒錄uboot,網(wǎng)口能ping通。檢查有無焊接問題。聯(lián)系結(jié)構(gòu)進行機器組裝,查看結(jié)構(gòu)有沒有問題。
- 驅(qū)動調(diào)試:5周,配合完成所有底層功能的調(diào)試。
- 媒體版本:2周,這個是驅(qū)動調(diào)試之后第一個整機跑起來的版本,準(zhǔn)備拿給測試進行測試。
- 信號測試:3周,配合信號測試人員完成信號測試。同時給做業(yè)務(wù)研發(fā)人員準(zhǔn)備板子給他們研發(fā)。
- 功能測試:2周,配合功能測試人員完成環(huán)境測試,防護靜電浪涌測試,以及其他功能測試,EMC測試等。
- 解BUG等待:2周,解決上述出現(xiàn)的所有BUG!
- 改板與發(fā)板:2周。
- 具體時間會隨著產(chǎn)品的復(fù)雜程度而變化,不能一概而論。
5.3 硬件工程師的本質(zhì)工作
5.4 硬件工程師基本素質(zhì)與技術(shù)
這里給出華為硬件工程師手冊中的定位,看起來還是不錯的。
第一、由需求分析至總體方案、詳細(xì)設(shè)計的設(shè)計創(chuàng)造能力; 第二、熟練運用設(shè)計工具,設(shè)計原理圖、EPLD、FPGA調(diào)試程序的能力;第三、運用仿真設(shè)備、示波器、邏輯分析儀調(diào)測硬件的能力; 第四、掌握常用的標(biāo)準(zhǔn)電路的設(shè)計能力,如ID電路、WDT電路、Π型濾波電路、高速信號傳輸線的匹配電路等: 第五、故障定位、解決問題的能力; 第六、文檔的寫作技能; 第七、接觸供應(yīng)商、保守公司機密的技能。
06 硬件工程師需要具備什么樣的性格?
溝通能力:要有邏輯,想法要全面點,這樣才能與其他部門人員好好溝通,說不清會導(dǎo)致吵架。
性格溫和:因為你會和所有部門交流,不要拉著臉,也不要命令式的,性格偏激會導(dǎo)致吵架。
謙虛謹(jǐn):別人的意見即使不采納也要傾聽,然后說出自己的見解與原因,一意孤行會導(dǎo)致吵架。
認(rèn)真仔細(xì):設(shè)計電路要認(rèn)真仔細(xì),解BUG要認(rèn)真仔細(xì),因為一旦出問題這個責(zé)任只有自己背。
要有耐心:不論是溝通還是解BUG還是檢查電路,一定要有耐心。
不會就問:不會的東西就問,因為產(chǎn)品開發(fā)時間比較短,不可能給你大把時間去研究。
有責(zé)任心:對電路負(fù)責(zé),對產(chǎn)品負(fù)責(zé),對BUG負(fù)責(zé)。
分清主次:出了問題要先想怎樣去解決問題,而不是先去追究誰的責(zé)任。
樂善好學(xué):善于幫助別人,善于學(xué)習(xí),必須有扎實的經(jīng)驗知識與理論知識。
本文為CSDN博主「wangdapao12138」的原創(chuàng)文章,原文鏈接:https://blog.csdn.net/wangdapao12138/article/details/79121996
其實總結(jié)出來,上述是作為一個硬件工程師必須的性格,可以說是缺一不可。性格偏激的人不適合做硬件研發(fā),甚至可以說不適合做所有研發(fā)。所以一般情況下硬件工程師做產(chǎn)品經(jīng)理的人很多,因為這個職位本身要求就很高,良好的性格與經(jīng)驗理論知識會讓你一直進步的。