敖天勇,宮德龍
(1.河南大學 人工智能學院, 河南 鄭州 450046;2.河南大學 設備處,河南 開封 475004)
隨著國家產業(yè)轉型升級戰(zhàn)略的深入推進,社會對人才尤其是創(chuàng)新創(chuàng)業(yè)人才的要求越來越高。高校作為高層次人才培養(yǎng)的重要基地,在創(chuàng)新人才的培養(yǎng)上更是擔負和履行著不可推卸的責任和義務。在大學生中進行創(chuàng)新創(chuàng)業(yè)教育是當今高等教育改革的一個重要突破口。[1]嵌入式系統作為一門應用性和綜合性很強的課程,非常適合進行創(chuàng)新創(chuàng)業(yè)教育。[2]近年來,許多高校的電子信息類專業(yè)開設了嵌入式系統課程,但嵌入式系統技術發(fā)展日新月異,目前該課程的教學內容跟不上社會需求變化和技術發(fā)展步伐,同時培養(yǎng)的學生在理論知識、動手能力、工程規(guī)范素養(yǎng)、創(chuàng)新意識等方面難以滿足社會需求。[3]因此,如何適應社會需求變化與技術發(fā)展,提高嵌入式系統課程的教學質量,培養(yǎng)滿足社會需求、具有創(chuàng)新精神和創(chuàng)業(yè)意識的嵌入式系統人才,是亟待解決的教學任務。
針對嵌入式系統的教學改革,許多學者從不同側面進行了探討。馬忠梅強調由于嵌入式系統涉及多個學科知識,各個專業(yè)的嵌入式系統教學內容應有所側重。[4]吳昊等從雙創(chuàng)背景下探討了嵌入式系統課程體系建設問題。[5]張曉東等探索了基于CDIO理念的嵌入式系統教學模式改革。[6]孫宇丹從工程教育認證角度探討了嵌入式系統教學改革,認為應將更多的實際案例融入教學中。[7]也有不少人對嵌入式系統的實驗教學體系展開研究。[8]但目前面向電子信息類本科生的嵌入式系統教學內容應該如何取舍,相關研究成果甚少,缺乏理論指導。因此,面向電子信息類本科專業(yè),如何組織嵌入式系統教學內容是一個值得研究的課題。
成果導向教育理念(OBE)以成果導向、學生為中心、持續(xù)改進為三個基本理念,其合理性已經得到廣泛認可。[9]本文采用OBE理念,基于人才需求現狀及技術發(fā)展趨勢分析,確立嵌入式系統的課程內容體系改革方案。
目前,在電子信息類本科專業(yè)的嵌入式系統課程教學中存在以下主要問題。
嵌入式系統教學內容涉及電路、微機原理與接口技術、ARM處理器、C語言、操作系統等相關知識,具有很強的綜合性和實踐性。但在電子信息類專業(yè)人才培養(yǎng)方案中,該課程教學時間通常只有40—72課時,教學內容難以全面覆蓋嵌入式系統內容,蜻蜓點水式涉及各知識點,又容易讓學生感覺沒有學到真東西。
在電子信息類本科生培養(yǎng)方案中,前期課程中學生通常只學習了51單片機,而嵌入式系統中多采用ARM系列處理器。由于新知識點多、硬件系統龐大、代碼復雜,會讓初次接觸嵌入式系統的本科生感到一頭霧水,易產生畏難情緒,缺乏學習積極性。同時因教學內容多,教師的教學進度快,因此,師生交流缺乏,教與學容易脫節(jié)。
目前嵌入式系統教學內容還有許多是基于ARM9/ARM7處理器,甚至是51處理器。但是在實際應用中,主流的嵌入式處理不斷推陳出新,在高端應用中已經過渡到A9,甚至是A78等系列處理器,而ARM9處于高低端應用兩不就的尷尬地位。
因此,為避免因內容陳舊、知識點多、入門難而使學生失去學習興趣,需要根據各專業(yè)特點對嵌入式系統的教學內容側重點做好規(guī)劃。
嵌入式系統作為一門應用性和綜合性很強的課程,其在選取教學內容時需要綜合考慮人才需求、技術發(fā)展狀況、專業(yè)培養(yǎng)目標及課程特點。
培養(yǎng)滿足市場需求的人才是高等教育的重要使命。本文在“前程無憂”招聘網站上,以“嵌入式系統”為關鍵字,檢索獲得了5724條招聘信息。對這些招聘信息中技能要求進行深入分析后發(fā)現:市場上需求的嵌入式系統人才主要分為嵌入式系統硬件工程師和軟件工程師兩大類,這兩類人才都需要掌握嵌入式系統的基本原理和開發(fā)流程,具備C/C++編程能力、自學能力和解決問題的工程素養(yǎng)。嵌入式系統軟件工程師還需要熟悉嵌入式操作系統知識,具備嵌入式操作系統移植技能,基于嵌入式操作系統的多任務開發(fā)經驗,常用接口設備驅動程序開發(fā)能力,熟悉GCC等開發(fā)工具;嵌入式系統硬件工程師還需要掌握嵌入式處理器知識、接口電路設計知識,具備常用嵌入式系統片上硬件資源的開發(fā)與編程能力。
當前嵌入式處理器種類較多,嵌入式系統教學內容的選取必將涉及使用哪類處理器平臺,以及采用何種軟件編程開發(fā)方式等問題。
1.處理器平臺的選擇
選用主流的嵌入式處理器,有利于教學內容與市場接軌。常見的嵌入式處理器有ARM、MIPS、ARC、PowerPC等。從市場占有率看,ARM 處理器占據嵌入式市場絕對地位。目前ARM公司的嵌入式處理器以Cortex-A、Cortex-R、Cortex-M三個系列為主。Cortex-A系列面向高性能應用場景,產品更新速度快。Cortex-R系列面向高可靠性的實時嵌入式系統應用場景。Cortex-M系列面向微控制器應用場景,應用范圍廣,產品比較穩(wěn)定。
從教學的角度看,Cortex-A系列更新速度快,系統復雜,教學內容更新難以跟上其應用發(fā)展速度,教師需先學后教,待學生畢業(yè)后所學的產品可能已經退出主流市場。Cortex-R系列應用場景對設計者要求較高,不適合初學者。Cortex-M系列產品穩(wěn)定、開發(fā)難度適中、應用范圍廣。因此,選擇Cortex-M系列處理器比較適合電子信息類專業(yè)本科生。
2.軟件編程開發(fā)方式的選擇
隨著嵌入式處理器性能越來越高,系統應用場景日益多樣化,但開發(fā)周期要求越來越短,用匯編語言開發(fā)項目難以適應市場需求。ARM公司聯合眾多廠家推出了CMSIS軟件接口標準庫,基于庫函數進行嵌入式應用開發(fā)是一種高效的編程開發(fā)方式,已經成為主流。因此,在軟件編程開發(fā)方式上,應當加強基于C語言和庫函數的編程能力培養(yǎng)。
從《普通高等學校本科專業(yè)類教學質量國家標準》推薦的電子信息類專業(yè)核心課程體系上看,該類專業(yè)學生系統地接受了C語言、微機原理、電路設計等知識,但操作系統相關課程未被列入。由于嵌入式系統具有專用性特點,其開發(fā)人員既要具備硬件設計能力,還要具備嵌入式系統軟件編程能力。因此,面向電子信息類專業(yè)的嵌入式系統課程內容,適合以偏向嵌入式系統硬件開發(fā)知識為主,兼顧培養(yǎng)學生的嵌入式系統軟件開發(fā)的編程能力。
綜合上述分析及《普通高等學校本科專業(yè)類教學質量國家標準》中規(guī)定的電子信息專業(yè)類培養(yǎng)目標[10],本文給出一個面向電子信息類本科專業(yè)的嵌入式系統課程的培養(yǎng)目標:培養(yǎng)理解嵌入式系統的基本概念,熟悉嵌入式系統基本結構、Cortex-M系列處理器結構,掌握常用嵌入式系統片上硬件資源的工作原理、基于庫函數的嵌入式系統開發(fā)方法及相關開發(fā)工具,具備良好的學習能力、實踐能力和創(chuàng)新創(chuàng)業(yè)意識,可從事嵌入式系統的應用與開發(fā)領域工作的高素質專門人才。
根據上述分析,提出了面向電子信息類專業(yè)的嵌入式系統課程教學內容安排方案。該方案結合電子信息類專業(yè)知識結構特點,面向市場中嵌入式系統工程師職業(yè)需求,以嵌入式系統的基本概念、嵌入式處理器基礎知識、常用嵌入式硬件資源知識、軟件編程知識為主體,以嵌入式系統應用開發(fā)實踐為手段,輔以嵌入式操作系統基本知識,注重基礎知識和實踐活動,能夠有效解決知識點繁多、課時有限、教學內容組織困難等問題。
新教學內容安排的總課時為54學時,其中理論課36學時、實踐課18學時。另外,有一個課外的課程設計實踐與演示環(huán)節(jié),作為期末考核形式。下面具體介紹理論教學和實踐教學安排方案。
內容上分為5大知識模塊,各知識模塊的教學內容及目標如下。
知識模塊1:嵌入式系統基本概念(3學時)。知識點包括:嵌入式系統的構成、應用場景、發(fā)展趨勢;常見嵌入式處理器和嵌入式操作系統簡介;嵌入式系統軟硬件開發(fā)方法;嵌入式系統實驗硬件平臺介紹及演示。教學目標是理解嵌入式系統的基本概念、軟硬件開發(fā)方法,用演示激發(fā)學習興趣。
知識模塊2:嵌入式微處理器知識(6學時)。知識點包括:Cortex-M系列處理器特點簡介;Cortex-M3處理器的體系結構;處理器的操作狀態(tài)與模式;Cortex-M3存儲系統;CMSIS軟件標準接口模型;編程模型。教學目標是掌握常用嵌入式處理器的體系結構、存儲系統及編程模型。
知識模塊3:嵌入式處理器的常用片上外設(18學時)。知識點包括:時鐘系統;GPIO工作模式及基于庫函數的操作方法;USART配置方法及應用;中斷系統及應用;定時器的捕獲、比較、PWM等工作模式及應用;FSMC控制器及其訪問存儲器應用;LCD操作方法及應用;IIC及SPI等常見片上外設操作方法。教學目標是掌握嵌入式系統中常用片上外設的工作原理及其基于庫函數的開發(fā)方法。
知識模塊4:軟件開發(fā)環(huán)境及庫函數編程方法(3學時)。知識點包括:MDK軟件環(huán)境安裝及使用方法;標準庫函數基礎知識;基于庫函數的軟件開發(fā)方法及演示。教學目標是掌握嵌入式系統軟件開發(fā)環(huán)境,基于庫函數的編程基礎知識與技能。
知識模塊5:嵌入式操作系統基礎知識(6學時)。知識點包括:嵌入式操作系統的作用;并發(fā)操作系統的概念;多任務與處理器之間關系的處理模型;任務的基本要素;操作系統下多任務開發(fā)方法。教學目標是掌握嵌入式操作系統上進行多任務開發(fā)的基本原理和基本方法。
實踐中發(fā)現若將操作系統中抽象的概念和原理融入案例中,采用動畫演示,將復雜問題簡單化、抽象的理論具體化,6學時也能使學生理解嵌入式操作系統的相關概念和工作原理,為以后從事涉及嵌入式操作系統相關工作打下基礎。
實踐環(huán)節(jié)知識點包括:GPIO應用實驗、中斷應用實驗、串口通信應用實驗、定時器應用實驗、LCD與觸摸屏應用實驗、綜合性設計實驗及課程設計。教學目標是掌握常用嵌入式系統的軟件開發(fā)方法,學以致用,培養(yǎng)動手能力和創(chuàng)新能力。
在實踐教學平臺上,采用帶有STM32F103ZE嵌入式處理器的開發(fā)板進行實踐教學。該處理器是意法半導體公司推出的集成Cortex-M3內核和多種片上外設的嵌入式處理器,當前被廣泛使用。與傳統的實驗相比,開發(fā)板具有成本低、攜帶方便、電路簡潔、易上手等優(yōu)點。在學期初為每組同學分發(fā)一套嵌入式系統開發(fā)板,供學生在整個學期內自由練習使用。教師錄制嵌入式系統編程開發(fā)入門環(huán)節(jié)的演示視頻資源,供學生課下學習,借以拓展課程教學的時間和空間。這種方式可操作性強,能夠激發(fā)學生的學習興趣,很大程度上解決了嵌入式系統學習入門難的問題。
實踐教學內容從難度和培養(yǎng)目標上可分為三個層次。
第一層次是GPIO、串口等硬件應用的基礎實驗。目的是使學生了解嵌入式系統的開發(fā)流程,熟悉軟件開發(fā)環(huán)境,掌握基于庫函數開發(fā)嵌入式系統的編程方法。這部分實驗教學穿插于各理論教學環(huán)節(jié)中,在對應硬件資源理論知識講解之后進行,使學生能夠及時將理論應用于實踐,提高學習興趣。
第二層次是綜合實驗。綜合應用所學的知識,實現一個給定任務的嵌入式系統應用,如模擬糧倉溫/濕度采集顯示與報警系統,車聯網應用模擬等。這部分實驗放在最后一個項目中進行。教師給出任務目標、任務分解、系統結構設計等具體指導,學生自己進一步完成設計與實現。目的是培養(yǎng)學生綜合運用所學知識進行嵌入式系統開發(fā)的能力。
第三層次是課程設計。以實驗開發(fā)板為基礎,通過增加外設,實現功能完整的嵌入式系統應用產品。學生自主選題,自主設計。教師提供學生所需的外設模塊,如指紋識別、GPS模塊、藍牙、WiFi、加速度計等幾十種硬件模塊,也會根據學生的設計方案購買相關硬件供學生使用。這部分實踐活動由學生在課外時間完成,教師定期進行線上、線下指導,及時解決學生遇到的問題。最后安排學生進行演示與答辯,并作為課程考核的一部分。在這個過程中,鼓勵學生進行創(chuàng)新設計,同時鼓勵創(chuàng)意較好的項目進行創(chuàng)業(yè)項目拓展,參加競賽。教學目標是提升學生綜合應用所學知識能力,培養(yǎng)創(chuàng)新創(chuàng)業(yè)精神。
課程考核方式,借鑒OBE理念,以“平時過程考核+課程設計考核”并重形式進行。平時過程考核部分包括出勤率、課堂表現和課內實驗表現等。課程設計考核不僅能考查學生的嵌入式系統綜合設計與開發(fā)能力,而且能夠促進學生自學,還能夠培養(yǎng)創(chuàng)新精神和創(chuàng)業(yè)意識。
本文提出的嵌入式系統教學內容改革方案充分結合了人才市場需求、技術發(fā)展趨勢和電子信息類本科專業(yè)特點,教學內容完整、與時俱進。實踐環(huán)節(jié)將基礎實驗、綜合實驗以及自主創(chuàng)新課程設計三個層次有機結合起來,既能提高學生的實踐能力,又能以項目驅動形式培養(yǎng)學生的創(chuàng)新精神和創(chuàng)業(yè)意識。該教學內容改革方案在河南大學電子信息類專業(yè)本科生中經過了三年多的實踐檢驗,取得了良好的教學效果。學生能夠利用所學的嵌入式系統知識參加多種學科競賽,每年均有多名同學獲省級以上獎勵,畢業(yè)生也獲得了多家用人單位的肯定。