近年來,隨著計算機技術及集成電路技術的發展,嵌入式技術日漸普及,在通訊、網絡、工控、醫療、電子等領域發揮著越來越重要的作用。嵌入式系統已成為當前最有發展前途的IT應用領域之一。伴隨著巨大的產業需求,我國嵌入式系統產業的人才需求量也一路高漲,嵌入式系統工程師將成為未來幾年最熱門的職業之一。目前產業的發展趨勢是,越來越多的智能設備的系統趨于復雜,軟件將發揮關鍵作用,當前業界非常缺乏軟硬件技術兼具的人才。另據權威部門統計,我國目前嵌入式軟件人才缺口每年為20萬人左右。
北京博創興業科技有限公司長期致力于嵌入式技術的研發和推廣,對企業嵌入式人才的需求和高校對嵌入式人才的培養有一定理解。在此結合嵌入式專業的高職學生就業問題,就企業里嵌入式系統崗位的人才需求談談自己的看法。
1嵌入式系統簡述
嵌入式系統已經有近30年的發展歷史,其發展過程是硬件和軟件交替進行的雙螺旋式發展。最早的單片機是1976年INTEL公司退出的8048。1981年Ready System開發了世界上第一個商業嵌入式實時內核(VTRX32)。隨后嵌入式微控制器的出現是計算機工程應用史的一個里程碑,隨著微電子技術的飛速發展,CPU已經成為低成本器件。在可能的情況下,各種機電設備已經或者正在嵌入微處理器構成的嵌入式系統。據Virginia Tech公司報告,嵌入式系統中所使用的CPU數量已經超過通用PC中CPU數量的30倍。已成為工業自動化的關鍵部件之一。目前,中、高檔8位嵌入式微控制器,16位、32位嵌入式微處理器,以及一些專用嵌入式微處理器(如數字信號處理、數字圖像處理、通信控制單片機等)已在通信系統、網絡設備、工業測控系統、機器人控制系統、分布式控制系統、快速多機實時處理系統和圖像處理系統中成為不可缺少的部分。
嵌入式系統的應用涉及眾多領域,深入到了社會和生活的各個方面。表1.1 列舉了嵌入式系統的主要應用領域。

總體上嵌入式系統可劃分硬件和軟件兩部分,硬件一般由高性能的微處理器和外圍的接口電路組成,軟件一般由硬件抽象層、嵌入式操作系統、軟件應用平臺和應用程序等組成,如圖1.1所示。

硬件層:硬件是整個嵌入式操作系統和應用程序運行的平臺,包括輸入輸出接口/驅動電路、處理器、存儲器、定時器、串口、中斷控制器、外設器件、圖形控制器及相關系統電路等部分。對于硬件層的設計開發要有較深的硬件開發經驗,這些崗位一般都需要資深的硬件工程師,不太適合剛畢業的本科學生,對于在校期間有過研發經歷的研究生比較合適。
中間層:硬件抽象層(HAL)或板級支持包(BSP),負責對各種硬件功能提供軟件接口,包括硬件初始化、時鐘管理、定時器管理、中斷處理、總線管理、內存地址的映射,等。它位于底層硬件和操作系統之間,是二者之間的橋梁。這個層次的設計開發不僅要精通底層硬件結構,還要熟悉上層的操作系統,主要工作是開發設備驅動程序。這部分工作需要有豐富的軟硬件研發經驗才可以勝任,崗位主要針對有經驗的本科生和研究生。
軟件層:主要包括操作系統和軟件應用平臺。操作系統主要是實現資源的訪問和管理,完成任務調度,支持應用軟件的運行及開發。軟件應用平臺則是為了提高開發速度與軟件質量,一些應用提供商開發了一些可重用的應用平臺,封裝了一些常用的功能,同時提供API接口,可以在此基礎上進行二次開發。對于操作系統級的開發比較適合學過嵌入式專業課程的研究生和本科學生。對于軟件應用平臺上的開發比較適合學過嵌入式專業課程的本科生和高職學生。
功能層:主要指的是應用軟件層,位于嵌入式系統層次結構的最頂層,直接與最終用戶交互。針對各種特定功能來編寫應用程序,實現系統的功能應用。主要是進行大量的C、C++或Java語言編程,不需要更多涉及底層硬件,大都是基于操作系統之上的編程。非常適合學過嵌入式專業課程的本科生和高職生。
2嵌入式系統崗位分類
對于從事嵌入式技術的企業最基本的部門劃分有研發、生產、銷售部門,當然還會有行政部、財務部、采購部等其他輔助部門,在這我們主要針對的是和嵌入式技術相關的部門。但是各企業會根據各自的規模大小、產品類型不同、研發結構不同等因素進一步細化部門。所以每個企業招聘人才時都會根據具體工作來確定工作崗位。在此我們就以這三個最基本的部門進行分析。
2.1研發部
無論從事任何方面的嵌入式產品的研發都離不開硬件層、中間層、軟件層、功能層四個層次的研發工作。它的開發流程都必須先定義產品功能,再對定義進行系統分割,然后進行軟硬件的規劃和設計。流程如圖2.1.1所示:

研發部的工作主要分為軟件研發和硬件研發,按照崗位職能可進一步細分:
軟件研發分為——系統構建工程師、上層驅動開發工程師、上層應用程序開發工程師。
硬件研發分為——電路原理圖設計工程師、PCB設計工程師、FPGA開發工程師、單片機開發工程師、底層驅動開發工程師。
軟件研發這三類工程師按照操作系統的種類又分出與各種操作系統相對應的工程師。目前在各領域應用的主流操作系統有UCOS-II、LINUX、WINCE、VXWORKS等操作系統。企業一般會按照不同的操作系統平臺招聘相應工程師,例如在研發部里有做LIUNX系統研發,有做WINCE系統研發。對應工作崗位就會有LINUX驅動開發工程師、LIUNX應用程序開發工程師、WINCE驅動開發工程師、WINCE應用程序開發工程師,等等。
企業在對軟件研發的三類工程師招聘時,以對系統構建工程師要求最高,此崗位最少要有3年以上的相關工作經驗,一般招聘對象針對研究生學歷,主要工作是進行系統構建和系統分析。上層驅動開發工程師也需要至少1年以上的相關工作經驗或者是嵌入式專業畢業的本科生,對嵌入式專業畢業的高職學生稍稍有點難,但如果是尖子學生應該也可以勝任。上層應用程序開發工程師則非常適合嵌入式專業畢業的本科生和高職生。
以上層應用程序開發工程師為例,企業對其工作崗位的要求如表2.1.1所示。

目前企業里硬件研發工程師相對軟件研發工程師比較難招聘。其原因一是它的崗位需求量沒有軟件工程師大,從事其工作的人才比較少,二是硬件工程師一般都要有1到3年的開發經驗,才能在短時間內完成企業交給的任務。所以這類工作不太適合應屆畢業生,但是對相關專業畢業的研究生還是比較適合。在硬件研發工程師里單片機開發工程師要求相對較低,只要學過或做過相關的開發就可以勝任。但是做嵌入式硬件研發一般都需要了解單片機的開發,因此很多企業往往不會單獨設立這個工作崗位。
2.2生產部
研發部對研發的產品定型后會把PCB設計圖、元器件清單等資料交付采購部和生產部,進行元器件采購和制板。大多企業一般都不會設立加工廠,產品的制板和焊接都會采取外包。在加工廠將焊接好芯片的主板取回后在生產部進行硬件測試和部件組裝、軟件測試、整體功能測試。產品生產流程見圖2.2.1

生產部的工作按照流程可分為焊接工程師、硬件測試工程師、軟件測試工程師、系統功能測試工程師、硬件維修工程師。這些工作崗位對學歷的要求都不高,工作難度不大。主要針對的就是專科生和高職類學生。企業對這些工作崗位的招聘要求如表2.2.1-2.2.5所示。



2.3銷售部
產品出廠入庫后就進入銷售環節了。整個銷售工作分售前、售中、售后環節。工作崗位主要分為銷售工程師和技術支持工程師。銷售工程師主要的工作是挖掘潛在客戶、確定客戶需求、與客戶建立良好的關系最終有效的將產品銷售給客戶。技術支持工程師在銷售工程師將產品銷售給客戶后對客戶的跟蹤服務,主要工作是進行產品驗收、培訓以及解決客戶在使用過程中遇到的技術問題。其工作流程圖如圖2.3.1所示。

由于嵌入式技術專業性很強,從而對銷售工程師和技術支持工程師都要有一定的要求,不是什么專業畢業的學生都能做好的。如果不了解嵌入式技術,在做銷售和技術支持工作時感覺難度比較大,在和客戶做交流時缺少共同語言。所以針對嵌入式專業畢業的高職學生和本科生而言,從事這兩個工作崗位較為合適。如果想在技術上有所發展,可以從技術支持工程師做起,逐漸向研發工程師過渡。如果想在營銷管理上發展,那就從銷售工程師做起,逐漸向管理層躍進。
企業對這兩個崗位的具體要求如表2.3.1-2.3.2所示。

3針對高職學生的崗位歸納
高職教育的特點是突出了學生的實踐能力和專門技能的教育訓練。高職教育主要是為當前社會所急需的領域培養專門人才,也就是要培養實用型、技能型人才。這也就確定了高職學生畢業后工作崗位將主要定位在嵌入式技術的應用層。
對上述崗位進行總結得表3.1。

以上嵌入式系統職業崗位分析是由博創興業科技有限公司的資深工程師完成,其中:產品銷售工程師,技術支持工程師由公司銷售副總李泉編寫;焊接工程師,硬件測試工程師,軟件測試工程師,系統功能測試工程師,硬件維修工程師由公司生產部經理廉同友編寫;系統構建工程師,上層驅動開發工程師,上層應用程序開發工程師由公司研發部經理乾正光編寫;電路原理圖設計工程師,PCB設計工程師,FPGA開發工程師,單片機開發工程師,底層驅動開發工程師由公司硬件研發部經理趙寧編寫。以上分析如有不妥請各位同行批評指正。