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