隨著硬件的不斷發展和產業的升級,針對嵌入式硬件工程師的工作要求已經從傳統的硬件工程師要求拓展轉變了不少,下邊我們來看看一個嵌入式硬件工程師應該掌握哪些技能。
嵌入式硬件工程師主要職責是為產品設計硬件電路原理圖,設計硬件PCB板,選擇合適的元器件,焊接調試硬件電路板,保證硬件電路板的可靠性、穩定性和抗干擾能力。但想要成為一名資深的嵌入式硬件工程師是有一定難度的,一方面要有非常扎實的理論知識,同時也要有相當豐富的那種大型的、高頻CPU、多層PCB板的設計經驗。
如果你想要成為一名優秀的嵌入式硬件開發工程師,那你就需得具備以下技能:由需求分析至總體方案、詳細設計的規劃能力;熟練運用設計工具、設計原理圖、PCB板的能力;熟練運用單片機、DSP、PLD、FPGA等進行軟硬件開發調試的能力;熟練運用仿真工具、示波器、信號發生器、邏輯分析儀等調測硬件的能力;掌握常用的標準電路的設計能力,如復位電路、常用濾波器電路、功放電路、高速信號傳輸線的匹配電路等;故障定位、解決問題的能力;設計文檔的組織編寫技能。
嵌入式系統的分層與專業的分類
嵌入式系統分為4層,硬件層、驅動層、操作系統層和應用層。
1.硬件層
這是整個嵌入式系統的根本,如果現在單片機及接口這塊很熟悉,并且能用C和匯編語言來編程的話,從嵌入式系統的硬件層走起來相對容易,硬件層也是驅動層的基礎,一個優秀的驅動工程師是要能夠看懂硬件的電路圖和自行完成CPLD的邏輯設計的,同時還要對操作系統內核及其調度性相當的熟悉。但硬件平臺是基礎,增值還要靠軟件。
硬件層比較適合于,電子、通信、自動化、機電一體、信息工程類專業的人來搞,需要掌握的專業基礎知識有:單片機原理及接口技術、微機原理及接口技術、C語言。
2.驅動層
這部分比較難,驅動工程師不僅要能看懂電路圖,還要能對操作系統內核十分的精通,以便其所寫的驅動程序在系統調用時,不會獨占操作系統時間片,而導致其它任務不能動行。不懂操作系統內核架構和實時調度性,沒有良好的驅動編寫風格,按大多數書上所說添加的驅動的方式,很多人都能做到,但可能連個初級的驅動工程師的水平都達不到,這樣所寫的驅動在應用調用時,就如同windows下我們打開一個程序運行后,再打開一個程序時,要不就是中斷以前的程序,要不就是等上一會才能運行后來打開的程序。想做個好的驅動工程師,沒有三、四年功底,操作系統內核不研究上幾遍,不是太容易成功的,但其工資在嵌入式系統四層中,可是最高的。
驅動層比較適合于電子、通信、自動化、機電一體、信息工程類專業,尤其是計算機偏體系結構類專業的人來搞,除硬件層所具備的基礎學科外,還要對數據結構與算法、操作系統原理、編譯原理都要十分精通了解。
3.操作系統層
對于操作系統層目前可能只能說是簡單的移植,而很少有人來自已寫操作系統,或者寫出缺胳膊少腿的操作系統來,這部分工作大都由驅動工程師來完成。操作系統是負責系統任務的調試、磁盤和文件的管理,而嵌入式系統的實時性十分重要。據說,XP操作系統是微軟投入300人用兩年時間才搞定的,總時工時是600人年,中科院軟件所自己的女媧Hopen操作系統估計也得花幾百人年才能搞定。因此這部分工作相對來講沒有太大意義。
4.應用層
相對來講較為容易的,如果會在windows下如何進行編程接口函數調用,到操作系統下只是編譯和開發環境有相應的變化而已。
嵌入式硬件工程師的從業范圍是相當的大,很多工程師只是從事其中的一部分開發工作,當然了一個高級的嵌入式硬件工程師一定是一個全能型的人才。