硬體工程師,曾經有多少人希望從事的職業?在別人眼裡好像能夠從事硬體設計需要你了解很多東西,可以從事這個職業之後才逐漸發現,硬體工程師處在一種非常難受的困境當中!想來造成這種情況可能主要有多方面的原因,一個很重要的原因是現在設計分工越來越細,每一個人接觸的事情越來越少,但是技術卻沒有隨之加深,以前硬體工程師可能做很多事情,包括前期的方案設計、選型、畫原理圖、畫PCB,板子做完之後回來調試,還要寫驅動程序,有的時候還會寫一些上層的測試程序,如果單板中存在邏輯器件還能夠寫寫邏輯,但是隨著分工的加劇,現在的方案由系統設計工程師給搞定,就連器件選型也不用自己管,別人選好之後,自己只需要仔細根據datasheet來照著設計,更多的時候晶片供應商還提供參考設計,只要照著葫蘆畫瓢就可以了,原理圖的設計也不是自己全部負責,電源有專門的電源工程師負責,一些具體的技術也會有專門的工程師來負責,最後才發現自己只是在原理圖上面連連線而言,現在大家戲稱自己為連線工程師!!畫完原理圖之後單板也不會自己去畫,而是有專門的EDA設計工程師來幫助你畫,你只要告訴別人應該注意什麼,但是往往會出現溝通上面的困難,你不會操作PCB的設計軟體或者說操作不熟練,別人又不明白你需要的設計規則,到最後發現設計出來的PCB總是存在缺陷。
不管怎麼的板子總算加工回來了,自己找器件送來外面加工焊接,原來或許自己就直接開始動手焊接了,現在壓根不需要了有專門的焊工來幫助你焊接。單板焊接完成之後就是調試了,這個環節或許是自己能夠操作最多的環節了,但是因為前面設計的時候很多人參與設計,參與檢查,大部分的時候也就是發現一些粗心大意的錯誤,而過深層次的錯誤也不少那麼簡單能夠發現的,因為很多東西不是自己設計的,等單板調試結束之後開始測試,這個環節是很多硬體工程師比較討厭的事情,因為這邊的測試是一個很無聊的環節,雖然它很重要,可是耗散的不管是經歷還有很多其他的東西。
整個單板調試結束之後就開始進行各種可靠性測試,可是這個時候只要硬體工程師搭建一下環境,然後有EMC工程師、熱設計工程師等來進行測試,獲取數據,然後分析,如果有問題那麼需要硬體工程師來修正,最後開始重複上面的流程。
硬體工程師在整個設計過程中最大的工作量在於文檔的編寫和流程的溝通,其它主要體現工作量的地方就是畫原理圖和調試了,但是這兩個環節卻沒有體現多少的技術含量,硬體的工程師總是感慨自己懂得東西越來越少了,或者自己已經轉變成了「連線工程師」!
請問硬體工程師你真的轉變成了連線工程師嗎?你的未來何在?!
一、什麼是硬體?
也就是說硬體是物理層面的,至少是你能看得到摸得著的東西,它是一種物質載體,物質基礎。廣義來說人類都是生活在物質基礎之上,你可以把所有你能看到的東西都統稱為硬體。當然狹義來說,一般我們所說的軟體和硬體指的是電子領域的。
軟體代碼也是人編寫的,我們所熟知的語言比如C、C++等都是通過編譯器翻譯成彙編語言,然後彙編語言通過彙編器翻譯成二進位機器語言,機器語言操控門電路完成相應的動作。個人覺得,沒有硬體,軟體就沒有存在的意義,硬體是一切的基礎,這裡可以看出硬體設計是多重要。
但軟體和硬體又有明顯的區分,至少工作內容區別很大。按照行業內描述硬體屬於底層(一般稱為底層硬體),軟體稱為上層(軟體又分為:底層驅動、上層業務以及應用層等)。如果非要舉個例子來說明軟體和硬體, 那最好的例子就是人,硬體指人的軀體,而軟體指人的思維。
其實對於非電子領域的人,很難想明白計算機是怎麼工作的,硬體是怎樣工作的,軟體是怎樣工作的,即使你知道都是0和1,但你沒做過相關工作,你發現不了其中的神奇之處。其實你只要知道,軟體驅動硬體工作,驅動的激勵是什麼?是電訊號!硬體接收到的這個電訊號分為0和1,硬體的響應速度非常快,多快呢?舉個例子,硬體中常用的串口波特率115200bit per second,一秒鐘115200個0或者1,英語字母是8個bit(可在ASCII表看到,這在大學都學過),那就是一秒鐘可列印14400個字母。你眨下眼睛一萬多個字母就出來了。當然實際上並沒有這麼多,這只是個形象的例子。
但在電路設計上100kHz屬於比較慢的速率了。再比如顯示器一幅圖的刷新頻率在一秒鐘24個以上,我們人眼就看不出來。24幀的數據是非常大的,比如1080p30格式輸出,總的數據量是一秒鐘1920*1080*12*30= 746496000個0或者1,也就是7億個0或者1。
二、什麼是硬體設計?
一般來說硬體設計指的是電路設計,這樣說是沒問題的,因為你所有的工作都是圍繞電路設計,最終的目標也是產出一個優秀的電路,能夠滿足各種要求,經歷各種考驗。但實際上我們要求的是產品,而不是單板。
網上有一篇文章講的挺好:"硬體設計就是根據產品經理的需求PRS(Product Requirement Specification),在COGS(Cost of Goods Sale)的要求下,利用目前業界成熟的晶片方案或者技術,在規定時間內完成符合:
- PRS功能(Function)
- 性能(perrformance)
- 電源設計(power Supply)
- 功耗(power Consumption)
- 散熱(Thermal/Cooling)
- 噪音(Noise)
- 信號完整性(Signal Integrity),
- 電磁輻射(EMC/EMI)
- 安規(Safet)
- 器件採購(Component Sourcing)
- 可靠性(Reliability)
- 可測試性(DFT: design for test)
- 可生產性(DFM:design for manufacture)
等上述要求的硬體產品(注意:是產品不是開發板)。可以看到,一個成功的硬體設計,主要功能的實現只是所有環節中的一小部分。剛開始工作的時候,覺得板子電路設計完就完成了50%工作,PCB回板主要功能都能實現了,那就完成了80%的工作。實際上不是的,PCB回板主要功能都實現了,連30%工作都沒有。所以不管是時間上,還是階段上,產品的硬體設計時一個漫長過程。
而且你在一個公司做產品硬體設計,一般情況下都是參考成熟的方案,主晶片CPU主要功能的實現最終還是依靠晶片廠商提供的套片方案,一般來說為了降低風險,主要是參考套片方案的參考設計完成,晶片廠商也會提供包括器件封裝,參考設計,仿真模型,PCB參考等等全部資料,在晶片功能越來越複雜的今天,一個片子動不動就幾百上千個PIN,對於一個新項目來說,是沒有時間一頁頁去吃透每個PIN,每個輸入輸出的具體功能,電氣參數的,尤其是對於高速設計,比如DDR3接口,XAUI接口等等。一般來說晶片廠商提供的參考設計就是他們經過開發,驗證,測試的最佳方案了,很多情況就是你必須按照參考設計來做,否則硬體可能就有問題,一般來說就是信號完整性問題或者EMC問題。"
那有的人就說了,硬體電路設計談不上設計,都是copy成熟電路。晶片廠商提供越來越周到的服務,再加上公司沉澱的技術積累,硬體設計工程師可以完全不動腦子進行電路設計。看起來硬體工程師HWE(Hardware Engineer)的價值越來越低了,畢竟一個產品的核心功能或者技術一般都在IC或者FPGA裡面了,HWE一般沒有能力進行核心邏輯設計IC design。那如果按照這個邏輯軟體設計也談不上設計,都是copy成熟代碼。試問有幾個軟體開發人員不移植別人的代碼?再深入點,有幾個軟體工程師能隨意更改uboot、kernel,不百度C語言語法,不移植業務程序,不去問晶片廠商的技術支持?
即使都是成熟的東西,實際上工作過程中我並沒有發現哪個項目做得很快,同樣一套電路和代碼,成熟產品沒問題,新產品為什麼就有問題??最後還是是硬體設計去解決。
對於這上述問題,我也曾經困惑過,總是感覺硬體設計沒有什麼好搞的了,不就是抄抄參考設計,就跟組裝一台電腦一樣組裝一個單板嘛。當然隨著項目經驗的增多,尤其從事現在硬體系統級設計的角色,感覺原來自己考慮更多是從一名原理圖設計工程師的角度考慮問題,看問題總是很片面。就像開始說的,一個成功的硬體設計,功能Function只是一小部分,至於其他的因素和能力,一個HWE的能力取決於能考慮因素越多,越深入,就越是一個優秀的HWE工程師。
所以HWE是吃經驗的,對公司來說培養一個HWE成本很高,硬體不會像軟體一樣代碼錯了修改一下幾分鐘就可以搞定,硬體設計錯了,那有可能全部都要重來,整個項目周期可能就要延遲3周甚至一個月以上。比如最近遇到的SENSOR出圖像,效果不好,亮壞點比較多,硬體電路這邊沒法跳線,這和布局布線有關,只有改板。
有個觀點需要說明一下,啥都不懂也可以做出事情,但對個人來說會有發展天花板。硬體方面就像參考電路一樣,你不知道電路怎麼工作的也能把他用起來,軟體方面就像uboot和kernel一樣你看不懂也能用起來,但一旦你懂,那就不一樣了。就像一談到硬體設計,大家都認為是電路設計,好簡單,沒什麼難度,但實際上不是的,越到底層越難,責任越大,部門交流越多。懂得越多,學的越容易,就能夠走的越遠。
三、什麼是硬體電路設計?
顧名思義,硬體電路設計就是設計電路的,能夠熟練使用cadence繪製電路與查看PCB。硬體設計中的電路設計是HWE最重要的職責。電路設計考驗的是HWE的設計基本功,即對一些硬體器件的理解以及靈活應用,比如:
- CPU
- 電阻,電容,電感,
- 二極體,三極體,
- 保護器件,接口器件,
- 邏輯晶片,邏輯功能,
- 小晶片
- 電源
因為本人是EMC專業畢業,所以對設計時考慮的東西深有感觸,我們上述討論的硬體設計的13條東西都應該在設計時候考慮,目前大公司的各種流程保證了設計時各部門的聯動,還是很好的。
每個公司都會有自己的硬體電路設計規範,這個需要自己好好去看一下,並用在實踐中。硬體電路設計主要針對電路設計,裡面涉及的東西比較多,對電路模塊的設計後面會有單獨的章節討論。硬體電路設計需要足夠的經驗與理論知識。
四、硬體設計開發流程
硬體部門開發流程指定後,需要硬體部門人員嚴格按照開發流程完成開發工作。硬體部開發流程主要分為如下幾個步驟
1) 市場調研
對即將進行的項目,需要進行市場調研。
2) 立項
市場調研完成後後,首先需要進行立項工作。
3) 硬體總體設計
項目立項後,需要進行硬體總體設計。
4) 核心器件的實驗及分模塊的詳細設計
總體設計完成後,需要對核心器件進行實驗並且開始進行分模塊的設計方案。
5) 電路、程序及外殼設計
核心器件的實驗及分模塊的詳細設計完成後,進行電路、程序及外殼設計。電路、程序及外殼設計按照項目設
6) 系統聯調
每個分塊部分調試完成後,即可進行系統聯調。
7) 內部審核、項目驗收
系統聯調完成後,項目即可進行內部審核、項目驗收。
五、什麼是硬體工程師?
硬體工程師負責整個產品的硬體設計。
5.1.硬體工程師的職責
首先看下
大公司的研發分工如下圖所示,可以看到自己所處的部門與位置。
而一個硬體產品的研發流程,如下圖所示:
公司內的所有崗位都同等重要的。
雖然各團隊的重要性一致的,但研發團隊在產品開發中的位置應該更加核心。研發人員可以轉去做市場、測試、供應鏈或者質量管理等,但市場等崗位的人卻很難轉做研發。一來研發門檻高,二來研發工作接觸面廣。而在整個研發團隊中,硬體工程師做主導作用。
一般情況下我們所說的研發不僅僅局限於軟體硬體,而是整個項目組,這裡包括基本上所有部門的產品負責人。
而硬體工程師在研發團隊中是重要的一員,硬體產品的研發團隊可以如下圖所示:
當然上圖中所展示的並不完全,比如熱設計也是非常重要的一員。但需要說明的是,在整個項目研發團隊中,有兩個人和所有人打交道,一個就是項目經理,另一個就是硬體工程師。硬體工程師需要和各種研發人員打交道 、協調工作,這也要求硬體工程師具有豐富的知識面和強大的協調能力。
硬體工程師的本職工作,如下圖所示:
硬體工程師可以大致分為如下四個階段:
初級硬體工程師
在別人的指導下完成階段三、四的部分,這個是應屆畢業生入職三個月基本可以達到。
普通的硬體工程師
獨立完成階段三、四的工作,一般工作1到2年即可。
資深的硬體工程師
主導完成階段三、四的工作,參與完成階段二總體設計的工作。
專家級硬體工程師
主導完成階段一、二的工作。
5.2.時間點把握
作為一個硬體工程師,負責整個產品的研發過程。所以必須對每個時間段進行精確把握。項目都會有項目周期,雖然項目經理在把控時間,但具體的操作還是硬體工程師來搞。因為本人只是處於階段三,對階段二、一沒什麼時間概念,對於正常進度的項目來說:
原理圖和詳細設計方案:5周,包括參考設計以及原理圖評審。
PCB布板布線:4周,包括配合結構、PCB進行電路調整或者器件重新選型。
發板及等待回板:2周,這兩周是最閒的,發板同時必須完成BOM上傳,這個不能忘。多看自己的圖!
回板檢查:1周,將自己的板子跑起來,能燒錄uboot,網口能ping通。檢查有無焊接問題。聯繫結構進行機器組裝,查看結構有沒有問題。
驅動調試:5周,配合完成所有底層功能的調試。
媒體版本:2周,這個是驅動調試之後第一個整機跑起來的版本,準備拿給測試進行測試。
信號測試:3周,配合信號測試人員完成信號測試。同時給做業務研發人員準備板子給他們研發。
功能測試:2周,配合功能測試人員完成環境測試,防護靜電浪涌測試,以及其他
功能測試,EMC測試等。
解BUG等待:2周,解決上述出現的所有BUG!
改板與發板:2周。
。。。。。。。。。
具體時間會隨著產品的複雜程度而變化,上述只是本人了解的大致時間=,不能一概而論。
5.3.硬體工程師的本質工作
目標:產品零缺陷
過程:設計電路、解BUG、部門溝通交流。
能力:主要集中在解BUG能力。
結果:一個字-------忙!!!!
5.4. 硬體工程師基本素質與技術
這裡給出華為硬體工程師手冊中的定位,看起來還是不錯的。
六
硬體工程師需具備什麼樣的性格?
溝通能力 要有邏輯,想法要全面點,這樣才能與其他部門人員好好溝通,說不清會導致吵架!!
性格溫和 因為你會和所有部門交流,不要拉著臉,也不要命令式的,性格偏激會導致吵架!!
謙虛謹慎 別人的意見即使不採納也要傾聽,然後說出自己的見解與原因,一意孤行會導致吵架!!
認真仔細 設計電路要認真仔細,解BUG要認真仔細,因為一旦出問題這個責任只有自己背!!
要有耐心 不論是溝通還是解BUG還是檢查電路,一定要有耐心!
不會就問 不會的東西就問,因為產品開發時間比較短,不可能給你大把時間去研究!!
有責任心 對電路負責,對產品負責,對BUG負責!!
分清主次 出了問題要先想怎樣去解決問題,而不是先去追究誰的責任!!
樂善好學 善於幫助別人,善於學習,必須有紮實的經驗知識與理論知識!!!
其實總結出來,上述是作為一個硬體工程師必須的性格,可以說是缺一不可。性格偏激的人不適合做硬體研發,甚至可以說不適合做所有研發。所以一般情況下硬體工程師做產品經理的人很多,因為這個職位本身要求就很高,良好的性格與經驗理論知識會讓你一直進步的。
七、硬體工程師遇到的困惑
在剛剛開始的時候我是做單片機的,對於整體化設計很感興趣。所以,大部分的項目中軟體、硬體,甚至結構都是我自己操刀。
其實核心不是實際的細節,硬體電路板的細節你可以找各種專業的專門的人去完成,而你更應該專注的是整體。
最開始你會因為電平匹配的問題、信號頻率問題大傷腦筋,但是當你做過五個、十個項目以後,只要你善於總結你就會發現最重要的其實是整體設計。
硬體需要不斷地充實自己,不斷學習、完善,因為硬體工程師需要的只是紛繁複雜。
八、實例講解
1.技術上學習
以做藍牙為例: 你需要知道天線的設計,你需要知道饋線的設計,最後到阻抗匹配、矢量分析儀的使用。所有的每一個分支、天線設計、射頻電子線路、儀器儀表的使用都是一個可以學習很久的領域,甚至一輩子都學不完。
藍牙又分為硬體部分,軟體部分。而軟體部分又分為協議棧、os部分以及驅動等,這些都是我們需要不斷地擴展充實的。作為一個硬體工程師,你需要不斷的擴展自己的視野,了解整個完整的體系,溝通各個方面的工程師以讓自己更清楚產品的整體。
2.市場上了解
cost down永遠是公司一直希望的!我們需要降低成本,每一個器件的選型、種類、成本、周期、渠道,我們都要熟悉。了解市場的動態,如別人家用的是什麼,為什麼。如何突破自己的產品,提高性價比,甚至像當年的蘋果一樣出眾。
3.項目管理、質量管理
硬體工程師永遠面臨的是:產線的問題要找你,物料供應的事情要找你,產品返修要找你,現場維護要找你,這些都是提升的機會。那麼問題來了,要用科學的方法做事情,多學習質量管理,可靠性設計的知識。
在生產的時候需要注意許多焊接問題,如爐溫導致的虛焊,x-ray如何查看bga的焊接狀況等,這些都是我們需要知道的。
4.知識的積累
技術部分也分行業,如視頻、音頻上的編解碼、傳輸格式(bt1120 h323)等。
其次就是純知識積累,如信號完整性、電源完整性、PCB設計、裝配生產安裝經驗及電源AC DC的設計等等。
九、整體分析
一個產品的設計,首先是要從市場的角度考慮:受眾群體、解決痛點、廣告宣傳方式、解決的痛點,我們用料穩定性要更強,著重考慮邏輯和結構材料。在廣告宣傳上,我們會更考慮突出的外表特點,於是我們對於產品的基本思路產生了。
1 規劃設計、產品功能以及完善細節
我們需要根據產品經理的想法互相溝通,不斷地產出新的創新型的idea,讓自己的產品功能性更強,細節性更好,這樣我們就對於大框的產品有了一個基礎的認識。
2 功能實現
這個時候我們需要找到原廠、供應商去了解晶片,選擇合適的晶片。
晶片參數:功耗、電源質量(電流 紋波 衝擊 時序 浪涌 電流保護)
晶片採購:貨期、階梯價格、合同、NDA、服務質量
基本思路我們有了就做到了心中有數,就可以開始做整體的框圖。
最後尤為重要的一點,一定要把思路畫出框圖進行評審。
3 原理圖
這個階段是時間花費最多的,如果是新做一個產品,大部分時間都需要閱讀文檔,熟悉晶片。
在原理圖設計的時候我們經常遇到的問題:Input Capacitance 上拉、下拉功能,兼容性、功耗、電源供電、阻抗匹配、抖動、拉高的時間、IO電平、散熱、控制邏輯統一晶片、調試口、功能的擴展性、各個時鐘(重點關注主時鐘和位時鐘) 最大最小電平等。
4 PCB 設計
這是一個經驗積累的工作,在一個有經驗的工程師的帶領下你會迅速學會很多繪製PCB的技巧。但是你想知道為什麼,對不起,要多看看你的理論知識扎不紮實了,理論越紮實觸類旁通的能力的就越好。
PCB設計時候經常遇到的問題:線寬、鋪地、銅厚、封裝等問題,還有裝配失敗、距離板邊過近、阻抗控制、差分對組間等長(及組內等長)、檢測不完整、出光繪等。
5 驅動
這個首先是對linux 框架的理解,或者相關的os ucos freertos 。甚至裸跑對於單片機本身總線 arm架構的理解,寫出相應的符合架構的框架(待補充)
寄存器配置,這個考驗你對於行業本身的技能知識。如音頻,你要知道 aac sbc ldac 編碼都是什麼,編碼解碼速度pga是什麼,增益控制 agc 、回聲消除 、嘯叫抑制等等。這會出現很多相關的知識,也是我們常見的行業積累的最重要的地方。
6 應用層 業務層邏輯
這個地方我做的基本比較簡單,這地方總會有寫xswl的問題出現,甚至整個人崩潰掉。
需要注意的主要有變量類型 溢出 邏輯if else 冗餘等,以兼容不同硬體性能的提升。
7 測試
這部分會遇到儀器的使用,還有一些認證 、跌落測試、浪涌、靜電、工頻干擾等等。
十、硬體工程師現狀?
1. 或許,我們該審視一下自身
水木社區幾位工程師最近對「硬體工程師的技術現狀」表達了一些自己的觀點。
@feiy : "許多硬體工程師都不知道『電源完整性』是什麼。"
羨慕網際網路工資高,可捫心自問,你是個合格的硬體工程師嗎?
@ dormouseBHU: "211電子工程碩士,傳輸線方程都不知道,就要跟我討論阻抗匹配問題"
「很多硬體工程師就是這種現狀,深入研究就不行了」。
硬體門坎真的高嗎?
@ commandosren: "因為很多產品並沒有很高的速率,要求特別嚴格的SI PI,更沒PDN什麼事,比如一些小的電器啊智能硬體的控制板,基本上連通就行,根本用不到什麼規則。做這些板子的人做十年他也還是那個水平,但人家產品也沒問題。都說軟體門坎低,其實硬體門坎也不高。"
比較扎心的就是一位朋友說:「就算你精通電源完整性,工資能比別人高多少呢?」
2. 趨勢,只是「技術無用論」的藉口?
觀點一:硬體工程師要看趨勢,「吃苦鑽研」並一定合適
單純的硬體工程師有什麼前途?
技術再高,沒有機會和平台,可能只能做外包外協。
但是
觀點二:「沒有過硬的能力,機會給你了你也接不住啊,平台給你了你也依然只是螺絲釘啊。」
能獨立工作的硬體工程師並不便宜。
看了隔壁AI應屆博士年薪80萬的貼,各位是不是有種「回爐重造」和「重選專業」的想法,你不是一個人。
不過,硬體能力馬馬虎虎的各位,你確定自己就一定能成為BAT們搶著要的「AI博士」嗎?
十一、關於「青春飯」與「越老越吃香」
以前在研究所的時候,一些老工程師不斷的返聘,一些現場的疑難雜症,年輕人束手無策的時候,老教授一出馬,藥到病除。
若干年前,還有人會說:「程式設計師是吃青春飯,做硬體好,做硬體越老越吃香」。
現在說的人越來越少了,為什麼呢??
硬體工程師已經不再是越老越吃香了?也變成吃青春飯了?
「為什麼會有越老越吃香一說?」老工程師的優勢在於:經驗的積累,但是精力和體力並不一定優於年輕工程師;硬體工程師的工作需要比較長時間的積累和理解,有一定的技術積累門檻。
「為什麼會有青春飯一說?」年輕工程師的優勢往往在於:願意接受新鮮事物,學習速度快,體力和精力比較旺盛。家庭的負擔相對輕一些。
首先任何工種都需要積累和經驗,所以程式設計師也不能算是吃青春飯的,因為成為卓越的軟體工程師也需要大量的軟體代碼的編程積累和經驗。
作家格拉德威爾在《異類》一書中指出:「人們眼中的天才之所以卓越非凡,並非天資超人一等,而是付出了持續不斷的努力。1萬小時的錘鍊是任何人從平凡變成超凡的必要條件」。他將此稱為「一萬小時定律」。要成為某個領域的專家,需要10000小時,按比例計算就是:如果每天工作八個小時,一周工作五天,那麼成為一個領域的專家至少需要五年。這就是一萬小時定律。
那麼為什麼會覺得硬體工程師也會變成吃青春飯的感覺了呢?
【硬體技術的入門門檻確實在降低】
首先,由於工具的發達、晶片的進步,特別是數字電路的發展,軟體的功能強大,端管雲架構的逐步成為現實——硬體技術的入門門檻確實在降低。
工具的發達:Saber、ADS、Multisim、candence 等工具越來越強大,很多經驗積累的內容,或者需要生產之後才能夠看到的數據、波形和電路特性已經可以通過仿真工具,在電路生產之前進行分析和優化。包括嵌入式軟體的工具的完善和強大,使得嵌入式軟體的開發門檻也在降低。
晶片的進步:晶片的集成度高,對於PCB的設計複雜度相對降低很多,例如:開關電源設計,集成MOSFET的晶片能夠承載的功耗越來越高,對於硬體工程師對於原理圖和PCB的設計複雜度越來越低;SoC的發展,MCU和CPU的功能越來越強大,集成的存儲、ADC、DAC等外設越來越多,參數越來越好;包括一些射頻的功能組件的集成度也越來越高,國內的研究所單片的均衡器可以做到1mm*0.7mm的尺寸;Zynq實現了FPGA和ARM的集成、Intel收購了Altera計劃推出X86集成FPGA的晶片降低了高速總線的互連需求;早些年,一些算法的實現,由於ADC的速率,DSP的處理能力等限制,還有通過模擬電路進行實現的,現在幾乎看不到了。
晶片發展到最後,會不會出現:晶片加連線到接口,完成設計。不得而知。
端管雲架構逐步實現:
對於智能硬體的開發來說,最大的問題在於將產品接入雲,並與軟體、硬體完美兼容 。雲計算是實現物聯網的技術核心,作為在智能硬體開發中的重要工具,雲端可以實現可靠地傳輸、儲存和備份,保證後台的可管可控。
運行良好的雲端可以降低整個產品的運營成本,提供與用戶接觸的入口,增加了解用戶需求的機會,進而不斷完善產品。 從某種意義上說,只有包含了雲接入的設備,才是真正適合當下市場發展的優秀產品。
把計算和存儲都放置在雲端,雲端實現伺服器的歸一化,其實是對雲端硬體設計要求的降低;同時在通信領域的全IP化的實現,「端」歸一化程度也非常的高,接口的種類、數量都在減少;終端主要是傳感器的採集和介面的呈現,並且隨著MEMS的發展,傳感器的模擬電路開發的工作量也越來越少。
十二、敢問路在何方
如果「硬體就是連連線」,豈不是不需要一些經驗和積累就可以做出硬體產品了?
簡單硬體和複雜硬體:首先我一向認為硬體設計,需要區分「簡單硬體」和「複雜硬體」,一些簡單硬體,例如,類似:MP3、電子賀卡、藍牙耳機。電路結構比較簡單,開發門檻比較低,不需要非常深厚的經驗的工程師去開發,可能問題也不會大,即使出了問題,檢查問題和修正問題的代價也不會特別高,所以對工程師的要求也不是特別高。但是電路的功耗高於20W,管腳數量超過10k,則駕馭電路的設計和調試,問題的解決就變得複雜,一旦出現問題往往不是那麼容易分析和處理。所以當你的產品屬於複雜硬體的設計時候,還是應該找一些專業和有經驗的工程師,至少是有問題的解決思路的人來從事相關的工作,來駕馭複雜系統。
簡單硬體更適合供應鏈有優勢的企業和個人去開發和突破。
走向射頻:由於ADC的速率畢竟是有限的,也不可能所有的系統都做成軟體無線電,所以射頻的電路還是需要經驗積累和硬體設計的。但是由於仿真工具的強大,射頻工程師對軟體的使用熟練度變得更為重要,而不是像更早的時候,經驗非常之重要,並且需要深厚的理論知識積累和理解。射頻因為需要深厚的電磁場理論知識,所以需要有一定的門檻。如果你從事射頻的相關工作,恭喜你你的堡壘暫時還沒被攻破。但是按照趨勢發展,射頻的工作也會變得越來越簡單。
走進晶片:在華為時,一些大佬硬體出身,有深厚的網絡協議的理論基礎、產品應用經驗、對處理器有深厚的應用功底,或者有FPGA的設計功底,轉到「海思」去規劃晶片或者設計晶片,發展的不錯。由於硬體人員對晶片的應用有比較多的積累,也容易從晶片應用的角度去思考晶片設計,所以有機會去走進晶片內部,是一個不錯的選擇。
未來隨著中國人口紅利的消退,人力成本優勢的消失,現在的SMT、PCB加工很可能從中國消失,跟歐美一樣沒有相關的低附加值的產品生產,而需要去類似於印度、越南等還具備人力成本優勢的區域去加工生產。
十三、軟硬結合,成為綜合性人才
多知識的結構效率大於單一知識運行效率。人的知識體系結構跟企業的結構一樣,效率大於運營效率。
知識也是如此,我們光從軟體的角度來說,軟體解決成本低,忽略了在這種情況下,硬體成本;反之亦然。軟硬體結合,能從技術角度角度尋找到全局成本最低點。項目中,軟體可以用IO口模擬出一些接口,SPI主、I2C主、I2C從、UART從、UART主。有時候,單片機沒有這些接口,又不能及時換方案的前提下,軟體可以降低硬體開發成本;對於一些模擬信號的濾波,經過ADC變成數位訊號。既可以採用模擬濾波器濾波,也可以採用數字濾波器濾波。兩者可以結合結合,硬體不用更多的器件,軟體也不用更高的計算量。不然,上算力更高的晶片,帶來的改動不是一點點。軟硬工程師都很傷。
在嵌入式方面成為軟硬結合的工程師,甚至包括懂結構設計、ID設計、網站設計、射頻;成為一個綜合性的人才,更有可能成為極客,你只需要一個idea,就可以動手去實踐,去改變世界。同時,全棧工程師也可以走向工程、做系統集成。
提升為系統設計師:在華為的技術發展路線裡面,一個硬體工程師,有三條路可以走:1、管理者;2、硬體專家;3、系統工程師。而縱觀華為各個產品線的工程師的發展路徑,硬體工程師更容易成長為一個系統工程師,而軟體工程師更容易成長成為項目經理。
這是由於硬體工程師的知識體系相對更完善,去理解其他領域的工作更容易決定的。
華為硬體工程師任職資格對照表(表格來源《百度文庫》)
資格等級
工作經驗
一級
1年以上硬體類工作經驗;熟悉硬體類基礎知識,具備獨立處理一般硬體類技術問題的經驗。具備獨立完成單板硬體詳細設計、原理圖設計的經驗。或者具備基本的網上設備維護經驗。
二級
獲得硬體或相關技術以及任職資格後,繼續從事硬體類工作1年以上。具備獨立進行硬體類開發的經驗,具備獨立完成單板總體設計到單元測試的經驗,具備產品工程領域的基本知識。或者具備3個月以上網上設備維護經驗以及獨立解決網上一般問題的能力。
三級
獲得硬體或相關技術二級資格後,繼續從事硬體類工作2年以上。巨額被分析單板需求並完成單板全過程開發的經驗,具備產品工程領域較全面的知識,具備複雜單板或簡單產品硬體開發設計的經驗,具備解決研發、生產現場硬體技術問題的經驗,具備知道相關設計人員進行硬體開發的經驗;具備提出流程優化建議的能力和經驗。或者具備網上疑難問題定位處理、組織網上問題攻關、網上設備巡檢/開局支持/入網測試,以及指導相關維護人員處理網上問題的經驗。
四級
獲得硬體或相關技術三級任職資格後,繼續從硬體類工作2年以上。具備產品硬體技術領域全面的知識,具備組織產品硬體開發設計或中等難度技術研究項目的經驗,具備解決產品開發過程中的重大技術問題的經驗,曾參與硬體類技術發展決策活動;具備1年以上的網上設備維護經驗;具備參與開發流程建設和優化的經驗。
五級
獲得硬體或相關技術四級任職則個後,繼續從事硬體類工作2年以上。具備產品硬體技術領域及系統領域全面的知識,具備解決產品開發過程中的重大技術難題的經驗,遇見企業未來產品某領域的硬體技術走向,具備組織跨產品的中等複雜項目開發經驗,具備開發公司內領先技術的經驗,享有技術專利;具備相關流程及技術規範標準的建設和優化經驗,是公司領域的技術帶頭人。
六級
獲得硬體或相關技術五級資格後,繼續從事硬體類工作2年以上。具備產品硬體技術領域、系統領域廣博精深的知識,具備解決產品開發過程的重大系統類、硬體技術難題的經驗,具備組織跨產品線的大型項目開發的經驗或者具備開發業界先進技術的經驗;在外部期刊雜誌上發表論文;參與決策企業未來產品的技術走向,是公司硬體類技術的權威。
曾經有一家物聯網公司,朋友介紹,去談一談項目合作和外包的事情。這家公司做得不錯,老闆也有思路。但是在交流的過程中,表達了大量硬體可靠性不重要的觀點。所以這個項目我都沒有興趣去談項目的報價,直接委婉的拒絕了合作的意向。
我們認知硬體設計的價值,不能只從功能實現角度去思考。除了實現功能之外,對於DFx的理解,包括可製造性、可供應性、可測試性、等方面的積累,利於硬體工程師成長為一個系統工程師。
十四、總結
關於硬體工程師在不同類型公司中的思考:
很多硬體工程師會覺得自己的工作不是核心,沒有像軟體工程師一樣備受重視,其實我們這個思考源於在硬體行業的不同趨勢以及方向。我們首先看通信行業,類似華為的通信設計核心是通信協議,而完成通信協議的晶片,對於硬體工程師來說需要解決的有如下幾個部分:
1.了解晶片內部 FPGA CPLD 觸發器類別,以及核心的編解碼系統的設計完善
2.板級PCB的高速電路設計,射頻電子線路倍頻等信號的設計
3.系統層為os提供的更多接口,方便應用層使用
只有這樣一步步走下去,在這個方面不算深入的我們才會漸漸的變為專家,從而從事深層次的相關領域,實際上一個射頻就夠你吃一輩子的了。
l來源:麵包板社區