劉海成,鄒海英,佟寧寧
(黑龍江工程學(xué)院,哈爾濱 150050)
?
嵌入式開發(fā)工程師的能力結(jié)構(gòu)構(gòu)成及培養(yǎng)研究*
劉海成,鄒海英,佟寧寧
(黑龍江工程學(xué)院,哈爾濱 150050)
嵌入式開發(fā)工程師以其創(chuàng)造力改變著我們的生活,但由于嵌入式系統(tǒng)開發(fā)涉及到多個方面的技術(shù),工程師的能力結(jié)構(gòu)是單個專業(yè)無法覆蓋的。本文在明確知識點和能力點五種屬性,以及嵌入式開發(fā)的4個層面基礎(chǔ)上,將嵌入式開發(fā)的職位分成4類,并給出了對應(yīng)的能力構(gòu)成、課程群特點和所適合的專業(yè)。相關(guān)專業(yè)大學(xué)生和嵌入式開發(fā)工程師可依此來完善自身的知識和能力構(gòu)成,更好地服務(wù)于嵌入式開發(fā)工程師崗位。
嵌入式開發(fā);工程師;專業(yè);能力點;課程群
近年來,隨著嵌入式技術(shù)在信息產(chǎn)業(yè)的廣泛應(yīng)用和高速發(fā)展,人們的生活方式和工作方式也正在發(fā)生快速的改變。例如身邊常見的手機(jī)、平板電腦、機(jī)頂盒、智能手環(huán)、儀器儀表等都是典型的嵌入式產(chǎn)品,IT行業(yè)的發(fā)展也勢不可擋地進(jìn)入了嵌入式時代,同時也對嵌入式系統(tǒng)的開發(fā)者提出了新的挑戰(zhàn)[1]。
面對IT企業(yè)對嵌入式人才的需求,國內(nèi)很多高校相繼開設(shè)了嵌入式系統(tǒng)相關(guān)課程群或設(shè)置了嵌入式系統(tǒng)相關(guān)專業(yè)方向,開展了各具特色的嵌入式系統(tǒng)教學(xué)實踐。但是由于嵌入式系統(tǒng)具有面向應(yīng)用的特點,嵌入式軟硬平臺和開發(fā)工具的多樣性以及各個學(xué)校學(xué)科背景的不同,各個學(xué)校開設(shè)的嵌入式系統(tǒng)相關(guān)課程、教學(xué)內(nèi)容以及實踐教學(xué)環(huán)節(jié)存在較大的差異,沒有形成與未來的嵌入式開發(fā)工程師需要相一致的完整教學(xué)體系。主要問題有:
① 有兩類專業(yè)背景:一類是以電子、電氣、通信、自動化和儀器等專業(yè)為背景的嵌入式開發(fā)工程師的能力構(gòu)成;另一類是以計算機(jī)和軟件等專業(yè)為背景的嵌入式開發(fā)工程師的能力構(gòu)成。二者既有區(qū)別,又有聯(lián)系,能力側(cè)重點不同,所以就涉及到二者的協(xié)同和統(tǒng)一問題。
② 以知識點和學(xué)科體系代替能力結(jié)構(gòu),課程體系臃腫或缺少重要環(huán)節(jié),沒有明確嵌入式開發(fā)工程師的能力結(jié)構(gòu),課程群不能形成合力,與OBE(Outcomes-based Education)的基于學(xué)習(xí)產(chǎn)出的教育模式相背離,即課程群的教學(xué)內(nèi)容還不能覆蓋能夠解決復(fù)雜工程問題所需要的能力點。
筆者認(rèn)為,課程是由知識點和能力點共同構(gòu)成的,有的問題既是知識點,也是能力點。課程群則是知識點和能力點的合理化布控,且每個學(xué)習(xí)內(nèi)容的呈現(xiàn)都應(yīng)至少具備以下5種屬性之一:
① 必要或必需的基礎(chǔ)性、常識性知識點,這些知識點不都具備工程可用性,屬性為“學(xué)習(xí)不是為了直接應(yīng)用”的范疇,比如,CPU的工作原理、堆棧、中斷系統(tǒng)等。
② 基礎(chǔ)技能型的知識點,屬性為能力結(jié)構(gòu)的基礎(chǔ),比如,匯編語言程序設(shè)計、嵌入式C程序設(shè)計、GPIO等。
③ 強(qiáng)應(yīng)用性的綜合型,以及課程群合力化知識點,以解決復(fù)雜工程問題能力為目標(biāo),通過課程群形成能力點的閉環(huán),屬性為核心應(yīng)用能力,比如,采用FPGA作為嵌入式計算機(jī)的協(xié)處理器等。
④ 技術(shù)協(xié)議或規(guī)范,屬性為核心工程設(shè)計能力,比如,SPI協(xié)議、I2C協(xié)議、UART協(xié)議、CAN2.0總線協(xié)議、USB協(xié)議、以太網(wǎng)協(xié)議、Modbus協(xié)議、SD協(xié)議等。熟練準(zhǔn)確掌握這些協(xié)議,是基于嵌入式系統(tǒng)和協(xié)議規(guī)范進(jìn)行工程設(shè)計的前提。
⑤ 與其他相關(guān)的課程群間的技術(shù)融合或引領(lǐng)性知識點,屬性為學(xué)科交叉及創(chuàng)新能力,比如,如何在嵌入式系統(tǒng)中實現(xiàn)FFT、IIR和FIR等,則將數(shù)字信號處理課程群與嵌入式系統(tǒng)課程群進(jìn)行了技術(shù)融合,數(shù)字信號處理課程群落地生根,由知識體系轉(zhuǎn)化為能力體系。
嵌入式開發(fā)工程師的能力結(jié)構(gòu)就是由這5類屬性的知識點和能力點構(gòu)成。
從嵌入式系統(tǒng)應(yīng)用開發(fā)角度,嵌入式系統(tǒng)分為4個層面的技術(shù),包括硬件平臺層、BSP及設(shè)備驅(qū)動層、調(diào)度系統(tǒng)層和應(yīng)用層。
(1) 硬件平臺層
圖1所示為硬件平臺層,包括核心部分和外圍功能電路兩個部分。
圖1 嵌入式系統(tǒng)的硬件平臺層
嵌入式系統(tǒng)的核心一般是微處理器,常用的微處理器有MCU、MPU和DSP等。顯然,計算機(jī)原理是嵌入式系統(tǒng)開發(fā)工程師的知識點,這些知識點的核心就是至少精通一種MCU/MPU/DSP的體系結(jié)構(gòu),如MCS-51和ARM等,包括:
① CPU的構(gòu)成、程序指針PC與程序的自動運(yùn)行、堆棧與堆棧指針、中斷與中斷系統(tǒng)等知識點[2]。
② 存儲器結(jié)構(gòu)及尋址方式、指令系統(tǒng)及匯編語言設(shè)計方法、C程序設(shè)計等知識點和能力點。
③ 系統(tǒng)總線、SPI總線、I2C總線、CAN總線及接口技術(shù)等。
4類電子技術(shù)構(gòu)建的處理器外圍電路具有強(qiáng)應(yīng)用性和個性化的專用系統(tǒng)特色,與所設(shè)計系統(tǒng)的技術(shù)指標(biāo)密切相關(guān),是項目的核心產(chǎn)權(quán)部分,其既要自成面向應(yīng)用的特定體系,又要方便與微處理器的接口。其優(yōu)化設(shè)計的核心就是軟硬件的配合及硬件的軟件設(shè)計,以軟代硬,合理地給處理器增負(fù),優(yōu)化外圍電路的結(jié)構(gòu)、面積和功耗,增強(qiáng)外圍電路的自校準(zhǔn)、自診斷和抗老化等能力,從而提升項目的智能化水平。
4類電子技術(shù)中,模擬電子技術(shù)和數(shù)字電子技術(shù)是基礎(chǔ),是電類相關(guān)專業(yè)必修基礎(chǔ)課,受到了各個學(xué)校的廣泛重視。不過仍然存在以下幾個問題:
① 數(shù)字電子技術(shù)以數(shù)字邏輯設(shè)計為主體,目前的工程應(yīng)用已經(jīng)過渡到EDA水平,即采取CPLD或FPGA完成邏輯的驗證和實現(xiàn)??墒墙虒W(xué)上還處于與EDA技術(shù)“分家”的狀態(tài),盡管有些數(shù)字電子技術(shù)教材引入了硬件描述語言,但其教學(xué)地位仍定位為附屬知識,而不是核心能力。換言之,數(shù)字電子技術(shù)大都停留在邏輯設(shè)計,而非復(fù)雜數(shù)字系統(tǒng)設(shè)計。
② 模擬電子技術(shù)以電路分析、信號與系統(tǒng),以及自動控制原理等理論為基礎(chǔ),但一般是在開設(shè)了電路分析后就開設(shè)模擬電子技術(shù)課程,而信號與系統(tǒng)和自動控制原理課程開設(shè)在其后面,頻域和復(fù)頻域模擬電路設(shè)計方法缺失,負(fù)反饋電路分析仍停留在定性的水平。
③ 電子信息類專業(yè)會以通信電路為背景開設(shè)高頻電子技術(shù)課程,基本是唯一進(jìn)行非線性電路分析與設(shè)計的課程,強(qiáng)電、自動化、測控和計算機(jī)類專業(yè)則不開設(shè)該課程。時過境遷,這是歷史順延的結(jié)果,已經(jīng)不合時宜。比如,開關(guān)電源技術(shù)作為這些專業(yè)的能力核心,其非線性電路部分就是高頻電子技術(shù)課程的核心內(nèi)容;儀器儀表設(shè)計中經(jīng)常用到調(diào)制和解調(diào)電路實現(xiàn)信號變換,這更是高頻電子技術(shù)課程的核心內(nèi)容;智能電網(wǎng)和電力載波技術(shù)也要大量應(yīng)用高頻電子技術(shù)知識。
④ 強(qiáng)電、自動化和測控類專業(yè)大都開設(shè)電力電子技術(shù)實現(xiàn)電力變換,而電子信息類專業(yè)和計算機(jī)類則不開設(shè)該課程。然而,隨著移動設(shè)備、手持設(shè)備等應(yīng)用的日益廣泛,尤其是電池供電的移動式手持設(shè)備(如手機(jī)、數(shù)碼相機(jī)等)的大量使用,其內(nèi)部的電源電路都采用基于電力電子技術(shù)的開關(guān)電源為系統(tǒng)供電,以提升電源的效率和延長待機(jī)時間。不同于工業(yè)電力電子設(shè)備的大電流、大電壓特點,手持設(shè)備屬于低壓小電流電力電子電路,但核心原理和設(shè)計方法是一樣的,這嚴(yán)重制約了電子信息類人才的整機(jī)設(shè)計能力。
可見,從事電子系統(tǒng)設(shè)計,這4類電子技術(shù)基礎(chǔ)都是必備的,是從事硬件平臺層開發(fā)的核心能力。嵌入式開發(fā)工程師要在專業(yè)的課程設(shè)置基礎(chǔ)上,自學(xué)完成這4類電子技術(shù)的學(xué)習(xí)。
(2) BSP及設(shè)備驅(qū)動層
調(diào)度系統(tǒng)及其應(yīng)用軟件模塊與硬件之間的接口是嵌入式系統(tǒng)設(shè)計的重要環(huán)節(jié),這個中間層包含了系統(tǒng)中與硬件相關(guān)的大部分功能,通過特定的上層接口API與調(diào)度系統(tǒng)進(jìn)行交互,根據(jù)調(diào)度系統(tǒng)的要求完成對硬件的直接操作。由于引入了一個中間層次,屏蔽了底層硬件的多樣性,調(diào)度系統(tǒng)不再直接面對具體的硬件環(huán)境,而是面向由這個中間層次所代表的、邏輯上的硬件環(huán)境,因此,把這個中間層次叫做硬件抽象層(Hardware Abstraction Layer,HAL),也稱板級支持包(Board Support Package,BSP)。通過BSP就可以實現(xiàn)統(tǒng)一的接口形式,得到廣泛的認(rèn)可和應(yīng)用[3]。
BSP的核心作用就是使在面向應(yīng)用的軟件開發(fā)時不必關(guān)心硬件的具體情況。因此,BSP具有與硬件緊密耦合、與具體的調(diào)度系統(tǒng)相關(guān)的特點。在BSP的實現(xiàn)和功能上包含硬件的芯片級、板級和應(yīng)用級初始化,以及與硬件相關(guān)的功能驅(qū)動兩部分。圖2所示為BSP及設(shè)備驅(qū)動層,基于操控底層硬件的低級語言建立硬件的抽象層。由于不同調(diào)度系統(tǒng)具有各自的軟件層次結(jié)構(gòu),因此,不同的調(diào)度系統(tǒng)具有特定的硬件接口形式。所以,要在調(diào)度系統(tǒng)所確定的硬件相關(guān)API基礎(chǔ)上,基于低級語言(匯編語言、C語言或C++語言)實現(xiàn)處理器片內(nèi)硬件外設(shè)和片外硬件外設(shè)驅(qū)動的API。計算機(jī)類專業(yè)也可以從事為微處理器提供底層算法API等工作。
圖2 嵌入式系統(tǒng)的BSP及設(shè)備驅(qū)動層
(3) 調(diào)度系統(tǒng)層
調(diào)度系統(tǒng)層用于完成嵌入式應(yīng)用的任務(wù)調(diào)度和控制等核心功能,具有內(nèi)核較精簡、可配置、與高層應(yīng)用緊密關(guān)聯(lián)等特點,以調(diào)度器和操作系統(tǒng)(OS)兩種形式存在。圖3所示為調(diào)度系統(tǒng)層。調(diào)度器一般具有占用CPU資源極少的特點,如Protothread、時間觸發(fā)調(diào)度器等;而嵌入式OS的功能更加完善,當(dāng)然占用CPU的資源也較高,如freeRTOS、μC/OS(II或III)和VxWorks等。調(diào)度系統(tǒng)一般具有相對不變性。
圖3 嵌入式系統(tǒng)的調(diào)度系統(tǒng)層
另外,根據(jù)具體應(yīng)用系統(tǒng)的特點,調(diào)度器還需要針對內(nèi)存管理、電源管理及實時性要求等進(jìn)行改進(jìn),形成專用系統(tǒng)。
(4) 應(yīng)用層
圖4所示為嵌入式系統(tǒng)的應(yīng)用層。嵌入式系統(tǒng)是面向特定應(yīng)用對象設(shè)計的專用計算機(jī)系統(tǒng),應(yīng)用層運(yùn)行于調(diào)度系統(tǒng)之上,基于調(diào)度系統(tǒng)提供的實時機(jī)制完成特定功能的嵌入式應(yīng)用,具有專用性的特點。
圖4 嵌入式系統(tǒng)的應(yīng)用層
應(yīng)用層是接收并解釋用戶命令的接口,包括人機(jī)接口與GUI開發(fā)、業(yè)務(wù)及算法開發(fā)、開源的應(yīng)用代碼移植,很多應(yīng)用還包括數(shù)據(jù)庫及Internet應(yīng)用開發(fā)等。開發(fā)工具更偏向于高級語言、硬件平臺資源和性能較強(qiáng)的嵌入式系統(tǒng),如支持Android操作系統(tǒng)的平臺可直接采用JAVA等面向?qū)ο蟮母呒壵Z言進(jìn)行開發(fā)。
基于嵌入式系統(tǒng)的這4層構(gòu)建嵌入式開發(fā)工程師的職位屬性及其對應(yīng)的能力結(jié)構(gòu),并基于此構(gòu)建閉環(huán)的知識點或能力點體系。嵌入式開發(fā)工程師的職位主要包括硬件工程師、驅(qū)動工程師、算法工程師和應(yīng)用軟件工程師4類。
(1) 硬件工程師及其能力結(jié)構(gòu)
硬件工程師一般以處理器為核心,在充分考量微處理器性能和特色基礎(chǔ)上,基于4類電子技術(shù)實現(xiàn)硬件電路的設(shè)計,包括處理器性能測試、單元電路的設(shè)計及測試等,主要完成嵌入式系統(tǒng)的硬件平臺層,基于FPGA進(jìn)行數(shù)字邏輯電路設(shè)計也屬于這個范疇。
此類工作主要面向電類相關(guān)專業(yè)。課程群中,除了計算機(jī)原理、C語言和4類電子技術(shù),還包括信號與系統(tǒng)、自動控制原理和誤差理論等內(nèi)容。
(2) 驅(qū)動工程師及其能力結(jié)構(gòu)
驅(qū)動工程師的主要工作就是針對不同的嵌入式硬件編寫相應(yīng)的BSP,包括測試驗證等。驅(qū)動工程師不但要有低級語言及運(yùn)用能力,還要有較好的軟硬件接口知識基礎(chǔ),主此類工作要完成嵌入式系統(tǒng)的BSP及設(shè)備驅(qū)動層。
主要面向電類相關(guān)專業(yè)。課程群中,除了計算機(jī)原理和C外,最主要的就是各種接口協(xié)議規(guī)范,ADC和DAC的數(shù)模-模數(shù)轉(zhuǎn)換接口知識也是重要的能力點。
(3) 算法工程師及其能力結(jié)構(gòu)
算法工程師分為兩類,一類是基于FPGA進(jìn)行算法設(shè)計和實現(xiàn)的工程師,另一類是基于微處理器進(jìn)行算法設(shè)計和實現(xiàn)的工程師。前者也稱為FPGA工程師,算法的屬性是嵌入式產(chǎn)品的核心競爭力產(chǎn)權(quán),主要為嵌入式系統(tǒng)的應(yīng)用層服務(wù)。
此類工作主要面向電類相關(guān)專業(yè)。課程群中,則以算法的理論設(shè)計及仿真驗證為主線,包括數(shù)字信號處理、計算機(jī)控制系統(tǒng)等,然后基于FPGA和硬件描述實現(xiàn),或基于微處理器實現(xiàn),對計算數(shù)學(xué)能力有較高要求。
(4) 應(yīng)用軟件工程師及其能力結(jié)構(gòu)
應(yīng)用軟件工程師則要熟悉調(diào)度系統(tǒng)及移植、GUI、應(yīng)用協(xié)議和實時多任務(wù)編程,在調(diào)度系統(tǒng)基礎(chǔ)上基于BSP和算法API實現(xiàn)特定應(yīng)用,主要完成嵌入式系統(tǒng)的調(diào)度系統(tǒng)層和應(yīng)用層。
基于高端硬件和操作系統(tǒng)的應(yīng)用軟件工程師主要面向計算機(jī)類相關(guān)專業(yè)。課程群中,除數(shù)據(jù)結(jié)構(gòu)等基礎(chǔ)知識外,最主要的就是對操作系統(tǒng)的應(yīng)用編程非常熟悉,比如開發(fā)iPhone手機(jī)的APP,就要對iOS操作系統(tǒng)及應(yīng)用編程進(jìn)行深入學(xué)習(xí)。
而低端或?qū)S眯詮?qiáng)的嵌入式軟件設(shè)計,如DSP應(yīng)用系統(tǒng)的軟件開發(fā),則主要面向電類相關(guān)專業(yè)。課程群中,則以應(yīng)用流程或狀態(tài)機(jī)為主線,基于C語言實現(xiàn)各任務(wù)的調(diào)度及配合,一般要求對硬件實際情況有全面的了解,對硬件資源、成本控制和功耗等進(jìn)行全面掌控。有時,這類應(yīng)用軟件工程師也兼做驅(qū)動工程師。
嵌入式開發(fā)工程師的能力結(jié)構(gòu)培養(yǎng)是高校和相關(guān)專業(yè)大學(xué)生共同完成的使命,但由于嵌入式系統(tǒng)開發(fā)涉及到多個方面的技術(shù),單個專業(yè)是無法覆蓋的。本文將嵌入式開發(fā)的職位分成4類,并給出了對應(yīng)的能力構(gòu)成、課程群特點和所適合的專業(yè)。大學(xué)生和嵌入式開發(fā)工程師可依此來完善自身的知識和能力構(gòu)成,基于OBE形成課程群合力,更好地勝任嵌入式開發(fā)工程師崗位。
[1] 王蘇峰,寧洪,陸洪毅,等.嵌入式系統(tǒng)課程體系及其創(chuàng)新實踐的探索[J].計算機(jī)教育,2010(7).
[2] 張林,秦臻,鄒韜.平伊利諾伊大學(xué)香檳分校電氣信息類專業(yè)課程體系特色分析[J].中國大學(xué)教學(xué),2013(4).
[3] 李文生,陸洪毅,呂燚.嵌入式人才能力結(jié)構(gòu)分析及教學(xué)體系設(shè)計[J].計算機(jī)教育,2014(7).
劉海成(副教授),研究方向為信號處理與智能儀器。
編者按: 無人駕駛成為本年度新興技術(shù)的熱門。由于無人駕駛車輛是多學(xué)科綜合技術(shù)載體,并聯(lián)接了諸多產(chǎn)業(yè)和商業(yè)模式,它的發(fā)展必將撬動相關(guān)技術(shù)的突破發(fā)展。在新一輪的國際競爭中,我們要如何跟進(jìn)并超越?如何普及相關(guān)技術(shù)并培養(yǎng)更多從業(yè)人員是現(xiàn)階段迫切需要解決的問題。本文作者從無人駕駛車輛最為核心的環(huán)境感知功能實現(xiàn)入手,通過相關(guān)技術(shù)系列介紹和總結(jié),以資借鑒。內(nèi)容包括智能車輛環(huán)境感知技術(shù)與平臺構(gòu)建、智能車輛道路檢測系統(tǒng)、智能車輛交通信號燈和交通標(biāo)志檢測、智能車輛行駛環(huán)境中的車輛檢測。
Research on Ability Structural Formation and Cultivation for Embedded Development Engineer
Liu Haicheng,Zou Haiying,Tong Ningning
(Heilongjiang Institute of Technology,Harbin 150050,China)
Our life is being changed by the embedded development engineer with their creativity,and since various technologies are involved in embedded system development,any single specialty is not able to cover ability structure of developer.In the paper,the positions of embedded development are divided into four types,and it is proposed that corresponding ability structural formation,characteristics of curriculum group and its suitable specialties,based on clarifying five properties of knowledge and ability points and four layers of embedded development.The college students of related majors and embedded developer may improve their knowledge and ability constitution in sequence according to it,in order to be more competent to the embedded developer position.
embedded development;engineer;specialty;ability points;curriculum group
黑龍江省高等教育教學(xué)改革項目(JG2014011139);黑龍江工程學(xué)院教育教學(xué)改革工程項目(JG2014013)。
TN710.9
A
(責(zé)任編輯:薛士然2016-04-29)