時間:2023-10-09 16:14:55
開篇:寫作不僅是一種記錄,更是一種創造,它讓我們能夠捕捉那些稍縱即逝的靈感,將它們永久地定格在紙上。下面是小編精心整理的12篇嵌入式課程設計,希望這些內容能成為您創作過程中的良師益友,陪伴您不斷探索和進步。
題目
基于單片機的智能晾衣系統設計
學院
電子信息工程學院
專業
通信工程專業
組員姓名與學號
指導教師
張紅偉、趙博
2019 年 7月
基于單片機的的智能晾衣系統設計
摘 要
隨著社會經濟水平的發展,現在人們的生活追求個性化、自動化,追求快節奏,追求充滿樂趣的生活方式,家裝要求的檔次越來越高,生活家居人性化、智能化的要求使智能控制技術在智能家居電子產品中得到了廣泛應用,伴隨著智能家居的快速發展,晾衣工具的智能化發展明顯落后與其他家用器具智能化發展之后,現在己經引起社會的很大關注。本論文為了把握市場動態,順應時代主題,設計并實現了智能晾衣架系統。 采用單片機進行采集光照、DHT11溫濕度傳感器采集外部空氣濕度兩,并通過單片機控制旋轉衣架,旋轉衣架通過步進電機進行調節,當外部天晴,且無雨時,將衣架轉出,晾曬衣物;當下雨或者沒有陽光時,轉回室內,防止被雨打濕,或者天已黑。其中光照傳感器采用光敏電阻,濕度采用DHT11,控制硬件采用步進電機,按鍵電路設定手動自動模式,L602液晶顯示感測量和設定值,及工作狀態。通過設計和實驗調試完成了基于單片機的智能晾衣系統。
目 錄
一 .引言...........................................4
1.1 課題研究背景與意義 ........................4
1.2 本設計的發展現狀 ..........................4
1.3研究方法..................................5
1.4研究內容.................................5
二.智能晾衣系統的硬件設計........................... 5
2.1設計要求.......................................5
2.2 整體設計框圖 ...................................6
2.3系統組成概述 .................................6
2.4系統設計要求 ..................................7
2.5光強采集模塊...................................7
2.6液晶顯示模塊.................................8
2.7驅動模塊.......................................9
2.8顯示模塊.......................................10
三.基于單片機的的智能晾衣系統的軟件設計..............11
3.1 系統分析 .......................................11
3.2 STC89C52RC單片機介紹...........................12
3.3 程序設計 .......................................14
3.4 軟件算法 ....................................14
四.實驗調試...................................... 16
五.結論與展望.....................................18
六.心得...........................................18
參考文獻...........................................20
一、引言
1.1研究背景與意義
基于現在晾衣架發展現狀,本設計開發了一種能幫助人們擺脫原始操作的智能晾衣架。本新型晾衣架主要特點在于:可以伸縮,操作簡單,占地面積小,美觀實尸構優點。同類產品雖有可收縮式的,但屬組裝而成,操作比較麻煩,而本晾才架只需按下打開按鍵,衣架桿即可自動伸展開來。同時晾衣架能識別晴雨天氣一自動完成收衣服功能的目的。晴雨智能晾衣架能有效地避免在下雨時,衣服無人收起而被雨淋濕;或在天色變晚時,衣架能自動收回,避免衣服在外面過夜
1.2智能晾衣架的發展現狀
在中國各大中城市以及農村普遍是將衣物晾曬于陽臺內部或外部,而傳統的晾曬衣物方式是陽臺內天花板下設置有鋼筋掛鉤,鉤卜通常是掛有竹桿或其它桿體。人們通常習慣于用一支撐桿將衣物支撐到晾衣桿晾曬,這樣晾曬衣物費時費力,而且布置鋼筋及竹桿與當今現代化建筑結構的陽臺也不搭配、有失雅觀。另外,家庭通常大都是老人晾衣物,因此,傳統的支撐曬衣、收衣不僅是費神費力,而目.容易扭傷筋胃·或支撐不順扎傷人體。正因傳統晾曬衣方式有眾多的不便,后出現手搖晾衣架,手搖晾衣架改變了支撐晾衣架的傳統習慣,同時也給眾多家庭帶來了更多的方便。但手搖晾衣架需設置多個機械裝置和支撐點,同時需多根網線布置來帶動其晾衣桿上下升降。由幾支撐點及多根網線的布置,手搖式晾衣架給原本漂亮的陽臺增添了不美的因素。其次,手搖晾衣架的升降每次都要人工轉換接頭,目.需要人力搖動慢慢將桿升降,若晾桿承載的衣物重量過大,搖上去既費力又容易傷手。因此,手搖晾衣架雖然改變傳統支撐晾衣的不便,但沒有徹底改變費神費力的根本狀態。人們期望著一種更方便更美觀的新型晾衣架的出現。
1.3 研究方法
(1)文獻法。由于本研究將會觸及到很多單片機方面的繪圖以及變成等方面的知識和技術,為了能夠更好的完成研究,所以需要對大量的期刊雜志等書籍進行瀏覽、整理和分析。這樣做能夠快速而且有效的獲得大量對本研究由有利的信息和材料,因此成為研究方法不可缺少的部分。
(2)觀察法。合理的觀察對研究有很大的幫助,這種研究方法具有很強的目的性和計劃性,在實驗中往往能達到意想不到的效果,從而開辟人們的思路,招致新的發現,因此也成為研究方法不可缺少的部分。
1.4 研究內容
基于單片機的的智能晾衣系統設計,需要采用單片機作為控制中心,實現自動晾衣的功能,并根據具體情況進行相應的調整,具體性能和指標如下:
(1)智能晾衣桿全自動工作,可實現無人操控
(2)晾衣桿只有兩個位置,伸出去,縮回來
(3)具有手動模式,可以直接強制伸縮晾衣架
(4)光敏傳感器:天黑時候將衣服收回來,天亮時候或者陽光猛烈的時候伸出去晾曬
(5)濕度檢查:通過DHT11溫濕度傳感器采集當前空氣溫濕度,如果濕度較大,將衣服收回來
(6)液晶顯示:可以直接顯示當前信息和狀態
(7)供電:5V電源供給單片機、電機
(8)紅外遙控器可以直接進行控制晾衣架進行工作
二、智能晾衣系統的硬件設計
采用單片機進行采集光照、雨滴兩個外部天氣信號,并通過單片機控制旋轉衣架,旋轉衣架通過步進電機進行調節,當外部天晴,且無雨時,將衣架轉出,晾曬衣物;當下雨或者沒有陽光時,轉回室內,防止被雨打濕,或者天已黑。
2.1 設計要求
(1)構建一個型號為STC89C52的單片機系統(內含串口通信電路,單片機最小系統),作為系統的主控模塊,負責數據的采集、處理與分析、執行部件的控制等;
(2)檢測功能:實時檢測是否下雨;實時檢測環境的光強值;
(3)顯示功能:通過液晶屏1602對系統的參數及系統狀態進行指示;
(4)執行部件:過298驅動電機,為電機轉動時提供停轉信號;;
(5)程序編寫:使用KEIL C軟件編譯環境,使用C語言進行系統程序的編寫,并在程序中對采集到的數據進行分析、處理和顯示。
2.1 整體設計框圖
控制總體款圖如下圖2.1所示,通過光照傳感器和雨滴(水位)傳感器感知外部天氣的光照和雨滴情況,按鍵設定光照和雨滴的閾值,衣架位置傳感器采集衣架所在位置,最后單片機驅動步進電機,將衣架來回于室內室外。
開啟開關電源后,溫濕度傳感器開始工作,采集過程首先是STC89C51單片機發起開始信號,通過I/O引腳發送給DHT11溫濕傳感器,之后DHT1溫濕度傳感器1反向單片機發送響應,并將采集到的數據按照40位數據幀格式輸出,
溫濕度傳感器開始工作,把空氣中的溫度通過一定檢測裝置,測量到溫度后,按一定的規律變換成電信號或其他所需形式的信息輸出,用以滿足設計需求。市場上的溫濕度傳感器一般是測量溫濕度量。常見的溫濕度測量方法有:動態法(雙壓法、雙溫法、分流法),靜態法(飽和鹽法、硫酸法),露點法,和形形的電子式傳感器法。DHT11溫濕度傳感器將檢測到的溫濕度值以數字量的形式輸出給單片機,單片機內部計算后得出此時的溫度,之后顯示在LCD1602液晶顯示器上。溫濕度檢測流程圖如圖4.3所示:
五.結論展望
本報告設計并實現了基于單片機的智能晾衣系統,通過實驗調試,當外部天晴,且無雨時,衣架轉出,晾曬衣物;當下雨或者沒有陽光時,轉回室內。完成要求中智能晾衣桿全自動工作,實現無人操控;晾衣桿有兩個位置,伸出去,縮回來;可以進行位置檢測:晾衣桿伸出去時,到達指定位置能夠停下來;有軟件容錯處理:晾衣桿伸縮過程中遇到各種障礙,能夠通過軟件容錯處理來停止;使用光敏傳感器:天黑時候將衣服收回來,天亮時候或者陽光猛烈的時候伸出去晾曬;使用雨滴傳感器:下雨的時候將衣服收回來;參數靈敏度可以調節(動態設置):按鍵+液晶顯示;采用5V供電:5V電源供給單片機、電機。 本報告實現了智能晾衣系統,還需要結合市場,對衣架的結構和工作方式。比如旋轉還是上下伸縮,前后伸縮等,進一步完善系統,使之滿足市場需求,更好的為客戶服務。
六、心得
1.通過這次單片機課設,我們學到了很多平時難得的東西,首先是團隊協作,在這次設計當中,難免和同學產生觀點和意見的分歧,以及分工明細、時間安排等不合理
2.通過這次設計,我們體會到了團結合作的重要性及力量之強大,還有讓我們處理事情更加有條理,思路更加清晰明了了,發現、提出、分析、解決問題和實踐能力的提高都將受益于我在以后的學習、工作和生活中。
3.此次的設計,其實也是我們所學知識的一次綜合運用,讓我深深的認識到了學習單片機要有一定的基礎,要有電子技術方面的數字電路和模擬電路等方面的理論基礎,特別是數字電路;也要有編程語言的匯編語言或C語言。要想成為單片機高手,我們首先要學好匯編語言,然后轉入C語言學習,所以我們不能學到后面就忘了前面的知識,更應該將所學的知識緊緊的結合在一起,綜合運用,所謂設計,就是要求創新,只有將知識綜合運用起來才能真正的設計好。
七、展望
本次畢業設計從題目的選定到方案的論證再到畢業設計的完成歷時將近三個月,在這三個月的時間內我用自己最飽滿的熱情和最認真的態度來對待。很多問題看似簡單,但是真正在實踐過程中卻舉步維艱、問題百出,尤其是在程序調試的階段要有極大的耐心,但是這個過程也很大程度上的提高了我分析問題和解決問題的能力。在畢設的實踐中也提高了我的動手能力,強化了自己的專業理論知識。與此同時,我也發現了很多身上不足的地方,例如專業軟件使用得不夠熟練、編程能力不夠、動手實踐能力較弱等,我會在今后的學習實踐中不斷加以提高。
。
參考文獻
[1]潘清明,丁左武,蔣偉,鄭孫偉.防雨、防暴曬、夜晚能自動收縮的智能晾衣架設計[J].機電產品開發與創新,2007,06:79-81.
[2]呂廣紅,黃崇林,陳曉銘.基于AT89C52的智能晾衣架的設計[J].自動化與儀器儀表,2013,02:71-73.
[3]劉秋呈,顧凱燕,劉輝.感光智能晾衣架的設計[J].科學咨詢(科技·管理),2013,05:67.
[4] 趙金利,肖興達.單片機原理及應用教程[M].機械工業出版社,2007.
[5]三恒星科技.MCS-STM32單片機原理與應用實例.北京:電子工業出版設,2008.1
[6] 康華光主編.電子技術基礎模擬部分. 第四版. 北京: 高等教育出版社,1999
[7] 閻石.數字電子技術基礎[M]. 北京:高等教育出版社,1998.
[8] 林伸茂.80STM32單片機徹底研究——實習篇.北京:中國電力出版社,2006
嵌入式系統的研究內容較為寬泛,其中主要包括嵌入式硬件設計和軟件設計。嵌入式軟、硬件設計的教學內容的選取原則應是適合本科生學習、與課程學時匹配、并具有較好的課堂展示效果。因此嵌入式課程教學內容的合理選取對課程授課效率和學生的學習效果起著至關重要的作用。
(一)嵌入式系統課程硬件設計教學內容的選取
嵌入式系統硬件是嵌入式系統的重要組成部分,是嵌入式系統與實際環境交互的載體,其性能的優劣直接影響嵌入式系統的可靠性和實時性,決定嵌入式系統設計的成敗,因此硬件設計在嵌入式系統設計中處于十分重要位置。在嵌入式硬件教學中,嵌入式課程的首先需要向學生介紹嵌入式系統的硬件在系統中的作用,并以日常生活中常見的嵌入式系統設備為例(例如手機、MP3播放器等等)直觀的講解嵌入式系統硬件結構,幫助學生建立嵌入式硬件系統的基本概念。在此基礎上,嵌入式系統課程應著重講授嵌入式系統硬件體系結構,從硬件體系結構的三個層次給學生講解嵌入式系統硬件設計。
1.嵌入式處理器,它是嵌入式系統的核心部件,負責整個嵌入式系統的運行。嵌入式處理器選型原則是硬件設計的重要教學內容之一,嵌入式系統課程應能引導學生了解處理器選型時應考慮的因素,如處理器性能、價格以及可獲得的技術支持等等,培養學生根據種嵌入式處理器的特點和實際工程需要對處理器選型能力[3],為其后續嵌入式硬件設計的學習奠定基礎。
2.嵌入式系統的電路,主要包括嵌入式系統存儲器、時鐘電路、數據端口、復位電路和系統電源電路等等,其中,時鐘電路、復位電路和系統電源電路為嵌入式系統最基本單元,具有這三個基本單元和處理器單元的系統即可正常工作,也稱其為嵌入式最小系統。嵌入式課程應能幫助學生了解嵌入式系統電路種類、功能及其設計方法,建立嵌入式最小系統的概念。
3.嵌入式系統外部設備,主要是指嵌入式系統與真實環境交互的各種設備,包括外存儲設備(如FlashCard)、IO設備(如鍵盤、鼠標等)、打印設備(如打印機)。在學生了解嵌入式系統硬件的三個層次的基礎上,嵌入式課程應選擇一款適合課堂教學的處理器,并具體的講解嵌入式硬件的各個電路的設計內容、設計方法和設計目標。嵌入式課程硬件教學在選擇處理器作為授課和研究對象時,應該考慮應用廣泛且學習難度較低的嵌入式微控制器。在眾多的嵌入式微處理器中,ST公司于2011年推出的基于Cortex-M4內核的STM32F104微處理器具有廣闊的市場應用前景,廣泛應用于工業控制、多媒體、精密儀器、家電等各個領域,STM32F104微處理器對于初學者來說具有開發簡單、直觀并且可獲取豐富的網絡支持的特點,因此本文以基于STM32F104微處理器的嵌入式系統為課程硬件教學內容,介紹STM32F104微處理器的主要特性,如處理的主頻、字長等,并以框圖形式介紹STM32F104微處理器的內部結構和片上的各個功能模塊,如片上內存、片上AD和DA轉換器、各種通信接口等。同時,任課教師應指導學生如何閱讀芯片的英文數據手冊,掌握英文數據手冊的章節安排和閱讀方法,提高學生英文文獻的閱讀水平,并能從中快速獲取芯片的主要性能指標。在嵌入式系統電路設計教學中,嵌入式課程必須著重強調系統的電源電路設計、復位電路設計以及時鐘電路設計。
嵌入式電源電路設計教學主要向學生介紹電源電路的兩種類型,即線性電源和開關電源,以及兩種電源電路的拓撲結構、工作原理和各自特點以及應用場合,并在此基礎上向學生介紹2~3種常用的電源控制芯片,如線性電源常采用LM7805、AMS1117-3.3等線性穩壓芯片,開關電源則常采用LM2596、MP2359等開關電源芯片,簡單介紹各個電源芯片的主要參數,如輸入電壓范圍、輸出電流等參數等。嵌入式系統時鐘電路設計的課程教學主要向學生介紹兩種類型的時鐘電路,即無源晶體和有源晶振電路,講解這兩種類型時鐘的特點和應用場合以及時鐘電路設計的注意的事項,并用多媒體給出兩種類型電路結構,向學生分析電路中各個元件的作用。嵌入式系統復位電路教學需向學生介紹兩種類型的嵌入式復位電路,即阻容式復位和專用復位芯片復位,介紹兩種電路的特點,同時介紹幾款常用的專用復位芯片(如MAX811),讓學生掌握嵌入式系統復位電路的設計方法。如果說嵌入式處理器是嵌入式系統的大腦,那么嵌入式系統的IO設備是嵌入式系統的四肢,是和現實世界交互的設備,嵌入式系統IO設備的教學需引導學生建立嵌入式系統中IO設備的概念,并舉例說明嵌入式系統常用的一些IO設備,如嵌入式顯示屏、鍵盤、打印機等。在IO設備的教學中,課程應首先介紹IO設備與嵌入式處理器的接口技術,分別介紹并行接口和串行接口,指導學生學習接口類型,并根據實際工程需要選擇不同接口類型的IO設備,同時引導學生掌握各種接口的時序,并能夠熟悉幾種常用的接口類型,如I2C、Intel式并行口、SPI等接口以及各種接口的數據傳輸速率和物理接線數目等。
(二)嵌入式課程軟件設計教學內容的選取
嵌入式軟件是嵌入式系統的靈魂,與嵌入式硬件一起作為嵌入式設計的核心內容,因此,嵌入式系統軟件設計是嵌入式課程授課的重要內容之一。嵌入式軟件教學應注重培養學生的嵌入式軟件開發能力,向學生講解嵌入式系統的軟件體系結構,即嵌入式軟件可分為應用程序、應用程序接口、嵌入式操作系統、硬件設備驅動程序,加強學生對各個軟件層次的把握。嵌入式軟件設計授課需要向學生講授各軟件層的功能與特點、嵌入式軟件開發所需要具備的先行課程知識,明確嵌入式實時操作系統是嵌入式軟件的核心,引導學生根據嵌入式系統的軟件體系結構學會軟件設計的分工。嵌入式課程應能夠向學生介紹幾種目前較為流行的嵌入式操作系統,讓學生對目前常用的嵌入式操作系統的發展狀況及其主要特點有所了解。目前,嵌入式實時操作系統可分為兩種類型,即商用型和免費型,商用型操作系統有Vxworks、Wince、PalmOS等,商用型操作系統功能穩定、可靠,有完善的技術支持和售后服務,但是價格昂貴;免費型操作系統在價格方面具有較大的優勢,主要以Linux為代表,嵌入式系統課程應要求學生能夠熟悉并掌握一種嵌入式操作系統的基本原理和使用方法。
μC/OS-II嵌入式操作系統是一種規模較小和源碼開放的嵌入式操作系統,比較適合初學者學習和課堂教學,特別是學生在具備μC/OS-II操作系統基礎和學習經驗之后,再學習某些大型的操作系統(如嵌入式Linux)則可大大提高學習效率并獲得較好的學習效果,因此本文選取μC/OS-II操作系統作為嵌入式操作系統的授課內容和研究對象,并以μC/OS-II操作系統為例講授基于嵌入式系統的應用程序開發、驅動程序開發以及圖形用戶接口的使用方法。同時,嵌入式軟件教學需向學生介紹嵌入式軟件開發工具和開發平臺,其中主要介紹交叉開發系統調試結構和使用方法。嵌入式交叉開發系統由宿主機系統、通信系統和目標機系統構成[4],嵌入式課程教學需要幫助學生直觀的了解嵌入式軟件開發的工作形式、嵌入式軟件開發需要具備哪些條件和做哪些準備工作。同時,嵌入式課程需要向學生講解1~2種嵌入式微處理器的上位機開發軟件,目前STM32F104微處理器的軟件開發普遍采用KeilμVision開發軟件以及JLINK仿真器,則嵌入式課程需要向學生介紹KeilμVision開發環境設置方法、工程項目的建立方法、JLINK仿真器硬件連接方式以及驅動程序安裝方法,使得學生能夠自主構建基于STM32F104微處理器的嵌入式系統軟、硬件開發平臺,并能在此開發平臺上新建工程項目、下載程序、仿真運行、斷點跟蹤調試等。
二、嵌入式系統教學方式的優化
在嵌入式系統教學過程中,任課教師必須研究和制定一套有效的教學方式,合理安排課程授課內容順序,注重知識的承前啟后,對嵌入式系統的一些先行課的相關章節知識點需要進行必要的復習,比如在硬件設計中,需復習模擬電路、數字電路、微機原理及接口技術等課程的相關知識點,在嵌入式軟件設計教學中,需復習C語言程序設計、操作系統、數據結構等課程,為嵌入式系統課程作必要的準備。
(一)嵌入式課程硬件設計教學方式改革
嵌入式硬件設計教學中,任課教師可在課堂上準備一些實驗設備[5],將軟、硬件實驗直接融合到理論課程的教學中,在課堂上首先向學生展示一塊嵌入式系統硬件電路板,如STM32F104應用開發電路板,讓學生近距離觀察電路結構和板上的各種元器件,并作簡要介紹,使得學生能夠直觀的認識嵌入式系統硬件電路,然后以提問的方式引導學生對電路圖如何設計和生成產生興趣,授課教師此時可介紹嵌入式硬件設計步驟以及電路設計的相關軟件,讓學生了解嵌入式硬件原理圖和印制電路板圖(PCB圖)設計過程和設計方法。在此基礎上,授課教師在課堂上以一個簡單的嵌入式電路系統為例,現場安裝Protel電路圖繪制軟件,講解并演示電路原理圖和PCB圖的繪制步驟和方法。在電路圖設計的演示之后,授課教師應給學生講解硬件電路的調試過程和調試方法,讓學生掌握嵌入式電源電路、時鐘電路、接口電路的調試方法,并在課堂上現場演示硬件調試,最后以處理器的一個IO接口控制的LED燈閃爍為例,編寫LED燈閃爍的例程,讓學生直觀的把握嵌入式系統調試方法。
(二)嵌入式課程軟件設計教學方式優化
嵌入式軟件教學的主要內容是嵌入式操作系統的移植方法、使用方法和應用程序編寫。授課教師在講解嵌入式操作系統的使用方法時,可在課堂上利用多媒體教學手段基于μC/OS-II的操作系統編寫應用程序,在操作系統的每個任務的主循環中添加斷點,讓學生直觀的感受操作系統多任務切換機制,并以一個簡單的軟件例程,要求學生現場進行構思,開展廣泛的交流,然后將學生構思的各種方案在多媒體上進行現場編程實現、輸出結果,讓學生對自己方案的正確性、合理性有直觀的認識和理解,并促使其對方案進行修正,以使學生迅速掌握μC/OS-II的操作系統的使用方法和應用程序設計方法。
三、嵌入式系統實驗和實踐教學的優化
實驗教學和實踐教學是教學過程中重要環節,可提高學生對理論知識的理解和把握,培養學生工程實踐能力、獨立思考解決問題的能力。學生可以通過實驗來驗證理論課程知識,對于課堂上的例程,學生可以通過自己的學習和理解對其進行修改,然后進行實驗,驗證其修改正確與否,這是一種極其有效的學習方法。嵌入式系統課程設計是嵌入式系統課程的工程實踐環節,旨在訓練學生的動手實踐能力和培養學生的方案論證能力、工程項目設計和開發能力,適應學生就業和社會需求。
(一)嵌入式課程實驗教學
嵌入式實驗教學需要向學生詳細介紹實驗系統的拓撲結構、電原理圖和系統的軟件開發環境,并以一個簡單的例程引導學生熟悉和如何使用實驗系統的硬件電路和軟件開發環境以及實驗操作步驟。實驗課程的章節內容安排應遵循由簡入繁的原則,明確實驗方法、實驗步驟和實驗目的,引導學生從一個簡單的IO端口控制LED燈閃爍的例程開始學習,完成從新建工程、編寫程序、下載程序調試、觀看實驗結果的實驗過程,再以2~3個難度逐步增加的實驗,明確實驗目標(即實驗成功后應看到的實驗現象),激發學生的學習和動手實驗的興趣。學生在實驗期間遇到問題,指導教師應積極引導學生檢查問題并解決問題,而并非直接告訴學生答案,培養學生獨立思考和解決問題的能力。在學生正確完成實驗后,指導教師應積極鼓勵學生采用多種不同的軟件算法完成同一個實驗,提高學生的編程能力和拓寬學生的視野。在完成實驗的基礎上,指導教師應鼓勵學生在現有實驗系統的基礎上開發一些簡單的電子設備,如數字電子鐘、數字溫度計、計算器等,讓學生切身的感受到嵌入式技術的廣泛用途。
(二)嵌入式課程設計教學
嵌入式系統作為一門應用性很強的課程,進行項目化教學是課程設計教學改革的必由之路[6]。本文采用項目開發為驅動的課程設計形式,引導學生自主學習嵌入式硬件設計、操作系統移植、驅動設計、應用程序設計,以一個完整的項目開發作為課程設計任務,讓學生全面掌握嵌入式系統設計的全部過程,鞏固所學的理論知識。在課程設計選題方面,指導教師可提供一定數量設計課題,設計課題需具備較高的綜合性和可行性,難度適中,要能夠達到訓練學生嵌入式方案論證能力和軟、硬件設計能力的目的。學生也可根據自身的知識特點擬定課題,經指導教師審核修改后進行課程設計,同樣,自擬課題也要達到綜合訓練的目的。課程設計的選題和實施應能培養學生的嵌入式方案論證和制定項目具體實施計劃的能力,規范學生的嵌入式項目開發方法和開發步驟。在嵌入式系統課程設計結束后,學校應提倡以學院為單位組織嵌入式系統設計大賽,進一步鍛煉學生嵌入式工程實踐能力,達到學以致用的目的。
四、結論
摘要:本文針對“嵌入式系統設計”的教學實踐,將“嵌入式系統設計”系列課程實踐教學分為三個層面,對課程內容、實踐教學方案和實踐教學環節等進行探索,確保學生在掌握專業知識的同時,提高自主學習與自主創新的工程實踐能力,真正做到學以致用。
關鍵詞:嵌入式系統設計;實踐教學;創新
中圖分類號:G6420.0 文獻標識碼:A
嵌入式系統是相對于通用計算機系統提出的“嵌入式計算機系統”,它是將先進的計算機技術、半導體技術、電子技術與各個行業的具體應用相結合后的產物,是一個技術密集、高度分散、不斷創新的知識集成系統,被廣泛應用于通信設備、信息家電、工業控制和交通等方面。作為“嵌入式系統設計”的教學應是以應用為中心,結合實踐與應用的一系列課程教學,它是本科生在四年學習中進行創新性實踐的有力保證?!扒度胧较到y設計”需要設計者具有較強的綜合理論知識和動手能力,是對設計者綜合能力與創新能力的考查。因此,在以“應用型”人才培養為目標的理工科院校的實踐教學中應特別重視學生嵌入式系統設計能力的培養,加強實踐教學環節,提高學生實踐能力、職業技能與就業能力。在此結合地方高校通信工程專業的特點對學生“嵌入式系統設計”能力培養的相關課程內容、實踐教學方案和實踐教學環節等進行探索,探討地方高校理工科學生創新型人才培養體系,培養出理論與實踐相結合的創新性人才。
1嵌入式系統設計實踐教學層面
嵌入式系統設計是復合型的新興技術[1][2]?;谇度胧较到y設計的課程既與計算機、電子、通信、自動控制技術相關的專業課程有關,又與具體的應用背景有關。理工科各專業需結合專業特點和嵌入式系統在專業中的應用進行嵌入式系統設計的研究與教學,根據專業特色開設先進的、具有深入內容的嵌入式系統設計課程,使學生具備創新能力和解決實際問題的能力,所以在進行嵌入式系統設計人才培養時必須重點把握實踐和創新這兩個方面,注意科學對技術所起的基礎支持作用,要從嵌入式系統設計動態發展出發,開設具有嵌入式系統設計體系的課程,開設有關含有信息論、系統理論及控制理論等基本內容交叉融合的課程,拓寬學生在專業學習中視野與思維的深度和廣度,這樣才能培養出學生的創新能力。根據嵌入式系統設計的實踐可以按照圖1所示三個層面進行相關課程的配置。
層面一是培養學生具備能夠針對某個具體嵌入式系統軟、硬件平臺進行二次開發的能力。要求學生掌握應用系統的設計和開發技能,屬于嵌入式系統教學的最低層。集中在微處理器(如MCS51系列、TMS320系列、ARM系列)的體系結構及其語言、接口的工作原理;嵌入式應用系統開發工具、開發語言、交叉編譯環境和調試工具的使用。在此
方面以單片機芯片及其開發應用、DSP芯片及其開發應用和ARM微處理器及其開發應用展開教學,并在實踐環節對學生動手制作自已所期望的單片機、DSP和ARM的應用系統進行作品展示,并將作品作為成績考核的依據。
層面二是培養學生具備能夠進行嵌入式系統平臺設計與開發的能力。不僅要求學生掌握硬件系統的設計與開發技能,還應該掌握軟件系統的設計與開發技能。促使學生掌握嵌入式系統體系結構后,掌握嵌入式操作系統的原理及其在特定硬件平臺上的移植。使學生具備特定硬件平臺下的嵌入式系統裁剪、移植,板載資源的初始化與驅動及外設驅動程序的設計和嵌入式數據庫系統開發技能,注重嵌入式系統圖形界面和網絡通信的設計與開發。在層面一的基礎上進行嵌入式操作系統及應用軟件開發的教學,并在實踐環節對學生動手制作自已所期望的具有圖形界面操作、外設驅動和數據信息管理等功能的單片機、DSP和ARM應用系統進行作品展示,并將作品作為成績考核的依據。
層面三是培養學生具備能夠進行基于SOPC嵌入式系統IP內核設計和開發的能力。要求學生在掌握前兩層面的基礎上,讓學生能夠進行基于FPGA的SOC系統的設計與開發訓練,并結合嵌入式系統的發展進行有關計算機體系結構等理論研究。促使學生結合EDA設計、嵌入式系統優化、計算機體系結構理論、微電子等學科知識,將微處理器等以IP內核的方式植入FPGA中,利用FPGA的可編程邏輯資源,按照系統功能需求來添加接口功能模塊,既能實現目標系統功能,又能降低系統的成本和功耗。這樣就使得FPGA靈活的硬件設計與處理器的強大軟件功能有機地結合在一起,高效地實現SOPC嵌入式系統。實踐環節以學生參加嵌入式系統設計競賽、科研創新、發明制作等實踐進行作品展示,并將作品作為創新學分修讀的依據。
2嵌入式系統設計實踐教學方案
(1) 學生實踐能力設計
“嵌入式系統設計”系列課程的教學內容應包括嵌入式系統硬件與軟件的設計,在以電路與系統集成、計算機信息系統集成及計算機輔助設計與仿真為工程設計基礎教學的同時,加強學生在工程設計能力方面的培養,提高學生的電路設計和軟件開發能力。因而,通信工程本科專業的實踐教學可在基于現代電子技術進行信息的采集、傳輸、處理、檢測、控制和現代通信網工程應用的同時,以信息與通信工程技術為主線,融電子科學與技術、計算機科學與技術、控制科學與工程技術于一體,構建通信與信息系統和信號與信息處理學科方向,使學生實踐能力結構如圖2所示。
(2) 實踐教學方案
在教學中注重理論與實踐課程相結合,加強實踐與設計課程,設置完善的實踐課程體系,強化學生的技能訓練,開展工程設計。低年級課程要特別強調基礎理論的學習,基本技能的訓練;高年級逐步加強技術性,實用性課程,關注信息工業發展的需要??山Y合本校學術研究、參與企事業科研及就業市場的方向,分設若干個課程組及專題設計,有利于學生專業化水平的提高,并縮小大學教育與企業要求之間的期望差距。其實踐教學具體實施可參考圖3進行。
第一學期培養學生認識、發現、探索實踐的主動創新思維模式。如通過軍事理論的學習,注重介紹通信技術在現代軍事中的應用;通過工程制圖的學習,以電子CAD為導引學習AutoCAD、Protel等繪圖軟件的應用;通過認識實習,下企業進行現代通信方式及通信器械的認識學習。
第二學期培養學生工程創新中結構設計及可視化界面編寫能力。如在以國家級計算機等級考核展開教學的同時,注重學生計算機語言編程基礎能力的培養,注重VB、VC、VF、Delphi、Java等編程的導向學習。
第三學期培養學生可視化界面及數據庫管理信息系統的開發設計能力,進行有線與無線通信中電子測量儀器設備的使用。
第四學期培養學生基于單片機與EDA的嵌入式系統設計開發能力。在加強電子工藝實踐的同時,以數字系統與邏輯設計教學為基礎,加強硬件描述語言與電子技術系統級的融合,基本實現計算機軟件到硬件的實踐創新技能。
第五學期培養學生基于DSP的嵌入式系統設計開發能力,加強生產實踐實習。在各專業課程學習的過程中,以計算機硬件與計算機軟件設計來體現信息與通信工程學科下通信與信息系統和信號與信息處理學科方向共性的實踐操作創新設計。
第六學期培養學生基于ARM的嵌入式系統設計開發能力。以通信與信息系統和信號與信息處理學科方向構建專業綜合課程設計。
第七學期培養學生基于SOPC的嵌入式系統設計開發能力。在通信與信息系統學科方向以現代通信網絡系統為導向,構建有線通信與無線通信的通信系統課程設計。在信號與信息處理學科方向以語音、圖像等多媒體信號與信息為導向,構建語音與圖像信號與信息工程應用的通信系統課程設計。
第八學期培養學生綜合的嵌入式系統設計開發能力。通過專題進行企事業單位上崗實踐,加強畢業設計的理論與實踐相結合,為畢業后就能上崗打下基礎。
在以上各環節中除了完成課程實踐教學外,還要求學生在課外必須參與科技實踐及各項競賽活動或提供自已的創意作品以取得一定的創新學分。因此在“嵌入式系統設計”實踐教學與創新型人才培養體系建設中,要綜合考慮實驗、實習、課程設計、畢業設計及課外科技實踐活動等實踐環節,統籌實踐教學體系,使學生能從課內到課外,充分發揮課外科技活動提高自身工程素質。
3嵌入式系統設計實踐教學支持
以嵌入式系統設計為指引,將理論與實踐進行有效合理的整合,應用現代教育技術,結合工程實踐進行分解,變成可供實際推廣操作的學習任務,輔以必要的教育技術支持手段(開發教材、課件、培訓計劃、教學設計、實驗設計、必要的評估手段)強調學生自主學習,在實際工程環境中掌握和內化工程的理念。
(1) 開放實驗室
在以“學生是主體,教師是主導” 的基礎上,為了使學生在高等教育中獲取更多的實用知識和創新技能,開辟與課程配套的網上資源系統,鼓勵學生遇到問題后上網查找資料,采用基于Web的開放實踐教學管理系統[3]。對實驗室教學信息進行綜合分析,建立開放式實踐教學平臺和開放式實踐教學管理體系,通過Web頁完成學生開放實驗的各個環節管理,提高教學質量和辦學效益。使學生由實驗申請到實驗結束完全網絡化管理,有利于實驗設備的充分利用,也有利于學生思維能力、設計能力、知識綜合運用能力和創新能力的培養。
實驗室開放的對象為所有在校學生,主要以設計性、綜合性及研究創新性的實驗項目開放為主,培養學生綜合運用所學基礎理論和專業知識解決復雜問題的能力。在實驗室內部的各實驗分室可根據自身特點和教學實際需要,采取定時開放與網上預約開放兩種不同的模式向學生開放。
所謂定時開放是根據教學安排,在指定時間內向學生全面開放。理論課教師和實踐課教師根據實驗室儀器設備情況,結合課程內容,確定教學計劃以外的自選實踐項目。學生可以根據自己的興趣愛好對實踐項目進行創新設計組合成綜合型、設計型實踐課題,在課外獨立完成自己的課題方案設計并經指導教師審核通過,在實踐過程中學生必須獨立完成實踐并撰寫上傳實驗報告。
所謂網上預約開放是學生提前申請擬做實踐項目和所需儀器設備及元器件,由實驗室根據學生人數、實踐內容和網上預約時間安排實踐設備、器材和指導教師。學生根據實驗室的儀器設備的條件自行擬定科技活動課題并提供方案,在網上預約相應的實驗室與指導教師,開展創新發明、科技制作、論文撰寫等實踐活動。在實踐過程中學生都必須進行獨立的思考,查閱相關文獻資料,綜合多方面的知識和技能,在實踐設備和操作環節上不受任何限制的情況下自行分析、設計和調試實踐系統,最終得出實踐結果并撰寫上傳實踐報告或論文。
(2) 實踐教學組織
聯系專業提供工程設計課題,結合前面所講的教學層面與科研、科技競賽工作開展學生設計性實踐項目,激發學生的創新熱情,如將行走機器人的制作分解為語音識別、圖像識別、高精密電機進給控制等實踐項目。強化實踐過程,選派具有實踐經驗的教師參與指導,有助于培養學生的創新能力,如通過提供的對比示例來啟發學生,增強學生的自信心。在實驗方法與實驗措施上實現多元化,使學生在不斷改進、反復鍛煉中提高分析問題、解決問題的能力,在實踐過程中真正做到舉一反三。
學生須進行嵌入式系統的軟硬件設計,為了使實踐內容和教學內容聯系得更緊密,可結合前面所講的教學層面要求學生設計實踐核心板與擴展板。核心板提供相對應微處理器的最小系統,包括了處理器、RAM、ROM、寄存器接口等;擴展板提供電源、LCD顯示、串口、USB、以太網口等模塊。
改革課程考核方式,加強學生動手能力的培養,單片機技術、DSP技術、EDA技術、嵌入式系統、可視化程序設計等技術課程的考核成績全部采用實踐環節,實驗占總成績的40%,課程設計(要求有硬件和軟件制作)占總成績的40%,創意制作占總成績的20%。學生在完成實驗基礎上,完成選定題目的課程設計,實驗與課程設計題目每年不斷更新,學生可以根據自身掌握的程度選擇不同難度的題目,分值依據題目難易程度而定。
這樣將“嵌入式系統設計”系列課程實踐教學融合到地方理工科院校的人才培養體系中。通過加強開放實驗與科技制作及科技競賽等創新學分的管理,改革相關課程考核方式,綜合考慮知識、能力和素質三者的關系,統籌實踐教學體系,提供豐富的工程設計課題,加強學生對“嵌入式系統設計”的工程訓練,促進大學教育的創新性人才培養。
參 考 文 獻
[1] 沈連豐,宋鐵成,葉芝慧等. 嵌入式系統及其開發應用[M]. 北京:電子工業出版社,2005.
【關鍵詞】嵌入式技術課程 教學改革 目標驅動法
【中圖分類號】G 【文獻標識碼】A
【文章編號】0450-9889(2016)11C-0070-03
隨著信息技術的發展,各高校的電子信息工程、通信工程、電子科學技術等專業都開設了嵌入式技術課程,目的是為了使學生掌握嵌入式系統的硬件和軟件設計技術,具備一定的實踐經驗,為畢業后從事嵌入式技術相關工作打下基礎。嵌入式技術課程傳統的教學方法大多側重于基礎知識、基本原理學習,經典的教材都是從基本原理到處理器內部結構,再到指令系統,再到內部接口及功能電路,按照這一模式進行學習,學生把大量的時間花在原理的學習上,實踐的內容比較少,導致學完課程后可能連最簡單的程序都不會調試,無法學于致用。
近年來,我國越來越重視本科生實踐能力的培養,提出培養工程型本科人才目標,嵌入式技術課程作為電子信息類專業一門實踐性較強的課程,若還采用傳統的理論教學為主的教學方式,培養出來的學生很難適應社會的需求,因此課程的教學改革勢在必行。我們采用目標驅動的教學方法,縮減理論教學學時,增加實踐教學學時,教學過程制定一些具有一定難度的小設計題目,作為目標讓學生選擇,促使學生在完成小課題的過程中遇到問題、分析問題和解決問題,在實踐過程中學習和掌握嵌入式技術相關的知識。
一、嵌入式技術課程傳統教學存在的問題
嵌入式技術課程以往的教學中,理論課時36學時,實驗課時時,以老師在課堂授課為主、學生實驗為輔。理論課教師教授時,學生還沒有機會接觸實物,學生聽課往往無法把理論和實際應用聯系起來,聽課積極性、學習的主動性都不高,隨后雖然安排有實驗,但9個學時的實驗內容是統一安排在實驗室并限定時間內完成的,通常以驗證性實驗為主,這種模式學生參照講義內容,雖然能完成實驗,但沒有機會和時間對實驗內容和軟件設計方法等進行更深入的研究和思考,學習效果不好,收效不大,與實際應用脫節。
二、基于目標驅動法的嵌入式技術課程教學改革實踐
所謂目標驅動,就是在學生對課程內容有一定了解的前提下,由老師擬定一些小設計題目供學生選擇,學生可2-3人為一組,根據自己的興趣選擇一個題目來完成。為實現這一教學改革目標,我們從嵌入式芯片選型、教材選擇、實驗板選擇、小設計題目擬定、學生分組形式、時間安排、中期考核、期終考核驗收等多個環節進行了改革。
(一)嵌入式處理器的選型及教材的選擇。嵌入式處理器有ARM、PowerPC、MIPS、ColdFire和386EX等多種不同系列的產品,其中以ARM系列的占的市場份額最大,因此嵌入式技術的學習通常是以ARM為基礎的。而ARM系列又可分為ARM7、ARM9、ARM11、Cortex等眾多不同的子系列,作為初學者面對眾多的、不同的類型嵌入式處理器,一般只能選擇其中一個系列來進行學習和研究,在掌握某一系列的相關技術后,如果實際工作需要,再去研究或使用其他系列的嵌入式系統也是比較容易上手的。
傳統的嵌入式技術課程一般基于ARM7系列嵌入式處理來開展教學,典型的教材有周立功編寫的《ARM嵌入式系統基礎教程》,以LPC2100系列的微控制器為核心,介紹嵌入式系統的基本概念、ARM7的體系結構、指令系統、LPC2100內部結構和接口等,雖然內容翔實,但教材側重于基礎知識和基本功能模塊的學習,沒有太多應用實例,與目前社會上主流的技術也有所脫節。也有部分高?;贏RM9系列嵌入式處理來開展教學,典型的教材有袁志勇編寫的《嵌入式系統原理與應用技術》,以S3C2410嵌入式處理器為核心,介紹嵌入式系統硬件工作原理與接口應用技術、嵌入式程序設計及嵌入式Linux基礎應用,學習門檻比較高,涉及比較復雜硬件內部結構和Linux操作系統,作為電子信息工程專業而言,不太合適。
針對傳統教材及嵌入式處理器選擇存在的不足,結合電子信息工作專業特點,我們對嵌入式技術課程的教材進行了調整,選用目前流行的Cortex-M3系列ARM處理器進行介紹,教材則選擇張洋、劉軍等編寫的《原子教你玩STM32(庫函數版)》。其中Cortex-M3系列為微控制類嵌入式芯片,內部集成了CPU、IO接口和眾多功能模塊,也可稱之為高性能的單片機,體積小、功耗低、成本低,且具有較高性能和可靠性的特點。我們所選的教材,其內容分為硬件篇、軟件篇和實戰篇等共三大部分,特別是實戰篇部分,設置了近40個實例(實驗)內容,由簡單到復雜,循序漸進,引導學生從實踐出發,慢慢掌握STM32為核心的嵌入式系統開發方法,同時配套光盤包含所有實例的完整源碼,方便學生自主學習時進行實驗驗證及研究。
(二)實驗板的選擇。嵌入式技術課程是一門實踐性很強的課程,與實際應用結合較為緊密,單純的理論學習不利于學生對知識的理解和掌握,學生必須在實驗、課程設計等過程中學會分析問題、解決問題的方法,在編程實踐中掌握嵌入式技術的實際應用技能,才能在畢業后較快地適應嵌入式技術研究與開發工作。在課程時間安排上,學生動手實驗的課時可以占總課時的2/3,可見實踐環節的重要性。
實驗板是實驗或課程設計題目工作開展的硬件基礎,選擇一塊合適的實驗板,有助于學生理解和掌握嵌入式系統基本開發流程,并能在該硬件平臺上完成更多的應用開發。
在進行教學改革之前,我們一直使用周立功公司ARM7系列的LPC2104實驗板,該實驗板ARM芯片的片內資源較少,引出的IO接口也比較少,實驗板上擴展的外部電路也比較少,能設計的實驗內容也相對較少。針對原有實驗板存在的種種不足,我們選擇了教材配套的“STM32戰艦開發實驗板”作為實驗平臺。該實驗板以STM32F103ZET處理器為核心,具有超過100個可編程的GPIO供用戶使用,板上還配置有外部Flash、外部RAM、TFT型LCD接口、觸摸屏接口、攝像頭接口、紅外接口、鍵盤、LED等待數量眾多的外部接口及電路,與教材內容完全配套,可對教材中近40個例程進行下載和驗證,非常方便學生進行實驗或設計。
(三)設計題目的擬定。如何制定設計題目是目標驅動法中很重要的一個環節,考慮到各個學生實際學習能力和水平會的差異,任課教師對所選的題目的難度要仔細斟酌、拿捏好尺度。如果擬定的題目難度過高,對于學習能力較差的學生而言,可能會不知道從何處下手,找不到思路,很難完成;如果擬定的題目難度過低,則對于學習能力較強的學生,可能不需要太多的努力,很輕松就完成了,學生的潛力沒有得到充分的發揮,不利于他們學習能力的培養和實踐水平提高,也不利于今后參加實際的項目研究與開發。為適應不同層次學生學習的需要,我們擬定的設計選題分為三個難度級別,每個級別1-2個題目,且不同難度級別的設計題目最高得分不相同,比如一級難度最高得分低于75分,二級難度最高得分低于85分,三級難度最高得分可達到95分,如果實際完成得很好的,可以超過95分。另外,對于第三級難度的題目,參考全國大學電子設計競賽出題的形式,把題目要求分為基本部分和發揮部分,如果只選擇完成基本部分時,相當二級難度,按二級難度來考核和評定成績,如果同時完成了基本部分和發揮部分,則按三級難度來考核和評定成績。這樣學生就可以根據自己個人的實際情況,選擇合適的難度級別的設計題目來完成,從而避免出現力不從心或者輕而易舉的極端現象,每個學生都能在這門課上掌握一定的嵌入式技術知識,學習能力和實踐水平獲得一定的提高。
(四)學生分組形式。在開始進行題目設計工作之前,一般要將選課學生按2-3人一組進行分組,以便開展后續的設計工作。學生分組形式也會影響學生對于課程的學習效果,好的分組方式,同組同學之間可以相互促進,形成良好的氛圍;不好的分組形式,可能不能很好地合作,不利于任務的完成。我們采用學生自由組合的方式來進行分組,所有選課同學以2-3人為一組進行組合,每組同學配發一塊ARM開發板,開發板由各組的組長負責簽領及保管。學生自由組合的分組形式的優點是:通常每個學生都會選擇自己較為要好的、愛好興趣相投的,或者認為學習能力比自己好一點的同學來進行組合,這樣可以確保小組成員之間能夠團結協作,相互促進,順利完成老師下達的課程設計任務。
(五)時間安排。選課的學生中,除了個別學生提前接觸或自學了ARM相關知識,大部分的學生都是剛開始接觸ARM,對課程內容和學習方法不甚了解,所以課程學習分為三個階段,分別是教師授課、實驗驗證、完成設計選題任務。第一階段為教師授課,教師利用課程教學計劃安排的理論課時,給學生講解嵌入式技術的基礎知識、ARM處理器的體系結構、嵌入式系統基本開發方法,并以較為簡單的GPIO接口編程作為例子,介紹ARM的編程方法及開發工作軟件的使用方法。通過第一階段的學習,學生能夠對嵌入式技術及實際設計有基本的認識。第二階段為實驗驗證階段,我們所選擇的正點原子STM32教材的第三篇提供了數量眾多的例程,且教材配套的光盤具有全部例程的完整源碼,這些例程為學生實習和實踐提供了很好的學習和參考,學生通過研究教材中實踐部分內容中的例程,就可以了解ARM軟件的框架結構和初步的軟件設計方法。教材提供的實驗例程多達40個,我們不可能要求學生全部都理解和掌握,在第二階段,只要求學生選擇其中的2個例程來研究,理解和掌握這個2個例程,并進行實驗驗證。第三階段是完成小組選定題目的設計工作。
(六)中期考核。中期考核就是在學生完成了第一階段和第二階段的學習后,進行階段性考核,中期考核的成績占總評成績的30%。以下是我們實際教學過程中,有關中期考核的要求和安排。
1.考核內容:每一組同學選擇教材實踐篇中的兩個實驗來進行驗證(光盤中已經有參考例程),然后根據自己的理解,制作一個PPT,該PPT的內容包括實驗名稱、實驗的內容、實現原理、關鍵代碼、實驗結果等。
2.考核方法:現場操作,完成實驗驗證;利用PPT講解實驗原理及方法。
3.考核時間:開課后第5-6周。
通過中期考核,學生建立了教材上的理論知識與實際應用的相互關系,基本掌握了基于STM32的嵌入式系統開發流程和方法。
(七)期終考核驗收。考核環節必須嚴格把關,確保考核出學生實際的水平,才能倒逼學生平時用心去研究并完成所選題目的設計工作。中期考核和期終考核環節至關重要,是否能嚴格把關,直接關系到課程教學改革的成效。
學生根據第三階段選定的目標,即設計題目,每個小組同學制訂自己的工作計劃,從分析設計題目開始,通過自覺、老師定時指導答疑等環節,學生掌握相關準備知識,然后制訂設計方案。以正點原子的STM32實驗為基礎,外加適當的外部電路,從硬件設計、軟件設計到基本功能模塊調試,系統聯調實現,最終綜合合作完成設計題目。并在課程結束周,安排時間,集中進行考核驗收。驗收時要求提交課程設計作品1份和課程設計報告1份;每個同學獨立演示(展示)設計作品,回答老師或同學的現場提問,教師根據完成情況進行評分,期終考核成績占總評成績的70%。
三、成效
2015年廣西大學計算機與電子信息學院與廣西廣播電視技術中心開展嵌入式技術課程共建,邀請企業導師參加課程教學過程。在教學過程中,安排3個學時時間讓企業工程技術人員給學生授課,介紹應用嵌入式技術的實際應用,以及廣電中心基于嵌入式技術的研發課題。并請企業導師參與設計題目的擬訂,結合企業需求,提供若干設計題目供學生選題。下一步計劃將企業課題的開展帶入畢業設計,拓展合作范圍。企業的參與,更為有效地避免了理論與實踐脫節,提高了學生的工程實踐意識和學習熱情與興趣。
采用目標驅動教學方法后,每個小組擁有一塊實驗板,以完成設計題目為目標,加上具有豐富的例程,學生不需要等到實驗課才有機會接觸實物,而是隨時都可以利用實驗板進行設計題目的研究工作,學生參與的積極性高。同時,通過優秀同學的帶動,絕大部分同學都能掌握嵌入式系統設計和應用的相關知識和基本技能,初步掌握基于STM32的嵌入式系統的硬件設計和軟件開發方法,在參加全國大學生電子設計大賽、廣西大學生電子設計大賽過程中,很多學生都能自覺地使用STM32來實現自己的賽題設計任務。
【參考文獻】
[1]朱天元.淺談嵌入式實驗教學改革[J].教育科學,2009(24)
[2]胡威,郭宏,蔣F,等.面向嵌入式系統的本科/研究生連續式課程建設研究[J].現代企教育,2014(22)
[3]黃?,摚柘喑?,何華光.嵌入式技術課程的教學探討[J].廣西大學學報(哲學社會科學版,2007(S1)
[4]賀德強,劉旗揚,王勇.“微機原理與接口技術”課程教學改革方法研究[J].廣西大學學報(哲學社會科學版),2009(S1)
[5]黃勇.計算機專業嵌入式技術方向課程體系的探索[J].農業網絡信息,2010(11)
【教改項目】廣西高等教育本科教學改革工程項目(2015JGA126);廣西高等教育本科教學改革工程項目(2015JGB123)
中圖分類號:G642
0 引 言
大規模在線開放課程(massive open online course, MOOC)是基于課程與教學以及網絡和移動智能技術發展起來的新興在線課程形式。MOOC是一種全新的、更公平的教育模式,它借助互聯網,通過MOOC平臺的課程講座視頻、嵌入式課程進行測試與評估以及師生在線互動,教與學隨時隨地都可以發生[1]。然而,MOOC在迅速發展的同時,由于其自身存在的一些不可避免的問題,使得MOOC飽受爭議。沒有規模限制、沒有先修條件、MOOC注冊率高而完成率低以及師生不能深入交流等問題日漸凸顯,且難以得到有效解決[2]。因此,MOOC被不斷改進,許多新的教學模式應用到MOOC中,彌補之前MOOC的不足,超越了原有的MOOC模式,MOOC已經進入后MOOC時代。
在后 MOOC時代涌現的一些新樣式中,SPOC最為典型。SPOC(small private online courses,小規模限制性在線課程)表示小型的、私有的、在線課程,它是針對MOOC來說的,這一概念最早是由美國加州大學伯克利分校的阿曼多?福克斯教授提出的[3]。與 MOOC相比,SPOC吸收和傳承 MOOC的先進思想,將 MOOC的潛能更好地發揮出來,變革傳統的教學結構,實現對現行課堂的有效翻轉,最終提高教學質量。SPOC把學習的人數進行了限制,通常限定在幾十人到幾百人之間,不同于MOOC同一課程擁有注冊人數幾十萬甚至幾百萬,另外,SPOC在MOOC的基礎上增加了教師和學生面對面的交流。相比之下, SPOC的學習活動更加靈活高效,能滿足學習者個性化學習的需求[4]。
嵌入式課程是信息技術行業的核心課程,在國外信息類人才培養中尤其得到重視。目前,嵌入式軟件市場的規模劇增,已形成一個充滿商機的巨大產業,并且成為整個軟件業的發展支柱[5]。在家電、手機、各種數碼產品等都向智能化方向發展的今天,嵌入式技術越來越成為當前最熱門、最具發展前景的IT應用領域,吸引越來越多的工程師投入到這一行業[6]。本文研究嵌入式課程教學模式,通過SPOC充分利用MOOC平臺上的教學視頻資源,并與翻轉課堂有機結合應用到課堂教學中。SPOC與翻轉課堂相結合的方式可以提高學生的學習主動性、增強學生的動手能力、培養學生的創新意識和創新能力,使學生能夠獨立地進行項目開發和編程。
1 傳統教學模式存在的問題
嵌入式課程是計算機課程的重要組成部分,嵌入式課程包含Linux系統應用、嵌入式系統設計和嵌入式系統案例分析等實踐性較強的多門課程,這些課程采用傳統的教學模式存在以下問題:
(1)在傳統的教學模式下,老師的授課時間有限,只能單方面把課程的內容傳授給學生,沒有與學生交流的機會。
(2)部分學生存在惰性,老師講多少就聽多少,并不實際動手練習,導致僅理解理論內容,卻不會實際應用。
(3)大部分學生在實踐活動中虎頭蛇尾,一遇到困難就輕易放棄,沒有解決難題的決心,從而也無法真正的掌握和理解所學知識。
(4)傳統的教學模式只重視成績和分數,泯滅了學生動手實踐的欲望,導致學生缺乏創新能力。
SPOC和翻轉課堂相結合的教學模式提供一個新的思路:如果學生能夠在課前完成相關知識的學習,就會減少教師課堂講授時間,從而留給學生更多的時間進行實踐、參與交流討論和獲得教師的指導,解決學生只停留在對理論內容的理解、動手機會少、不會將所學內容應用到實際的項目開發中去的問題。
2 基于SPOC和翻轉課堂的嵌入式課程教學方法
基于SPOC和翻轉課堂的嵌入式課程教學方法可以分為四個階段:前端分析、課程設計、課堂教學和評價,具體模式如圖1所示。
2.1 前端分析
任何課程開始前都必須進行前端分析,這樣設計出的教學資源才具有針對性、個性化,因此,前端分析對一門課程設計的成功與否起到非常關鍵的作用。本文中,前端分析涉及3個要素,分別為學習對象、教學內容和學習環境。
學習對象主要包括學生年級、學生已經學過的相關課程以及對學過課程的掌握情況。嵌入式課程分為硬件課程和軟件課程,因此課程的設置應該分為3個階段:第1階段為嵌入式硬件開發,作為嵌入式軟件開發的平臺基礎;第2階段為嵌入式軟件開發;第3階段為嵌入式綜合開發實踐。單片機原理等基礎理論課程是學好嵌入式硬件開發的基礎,嵌入式軟件課程包括嵌入式操作系統和Linux系統應用等課程,只有將以上課程學好才能進行嵌入式綜合開發實踐。
教學內容研究應該從理論和實際開發能力兩方面入手。理論方面,對于C語言、數據庫、數據結構、單片機原理、計算機網絡等前導課程,教師要在保證理論授課學時的前提下,適當增加或強調嵌入式開發中必需的知識基礎,以保證后續嵌入式開發課程的順利進行。在實際開發能力方面,教師要強化和規范嵌入式硬件課程、嵌入式軟件課程、嵌入式綜合開發實踐課程中的實踐環節,為學生配備齊全的軟、硬件開發環境,讓學生通過動手實踐掌握所學的內容。
學習環境主要包括傳統的課堂教學環境和基于MOOC的在線學習環境,將課堂教學和在線學習結合起來,提高教學質量。
2.2 課程設計
課程設計主要包括教學視頻、教學大綱、拓展資源、測試作業幾個部分。根據教學需要,教師可以充分利用MOOC平臺上優質豐富的教學資源,對其進行編輯和整合,設計成富有邏輯結構的視頻資源上傳到網絡教學平臺。教師還可以將電影錄像、電子書、其他資料等作為拓展資源提供給學生。測試作業包含測試題和大作業,測試題至關重要,學生可以帶著問題去觀看教?W視頻,也可以看完教學視頻后做測試題,這樣有助于學生對重點、難點的理解與掌握,進而提高學生的學習效率和學習質量;大作業用來綜合性的測試學生的學習情況,需要由一組學生來共同完成,大家一起討論,相互激發靈感,這種方式可以提高學生們的創新意識和團隊意識。
2.3 課堂教學
課堂教學階段在整個教學模式中的地位十分重要。在課程開始前,根據學生原有的知識基礎、學習個性和風格等信息將學生進行異質分組,并選出每個學習小組的組長。
課堂教學的實施過程借鑒翻轉課堂模式,翻轉課堂是推動師生互動、激發學生學習興趣的有力手段,真正體現“以學生為中心”的教育理念。本文將翻轉課堂分為兩種形式:一種側重于分析本次課的重點和難點;另一種側重于對實際項目進行分析和講解。
第一種形式要求學生在課前通過MOOC平臺上提供的教學視頻,學習嵌入式課程的基礎知識,然后,通過完成測試題驗證對知識點的掌握情況。在課堂教學過程中,學生針對教師在課前提出的問題進行討論,并采用輪流的方式對本次課的重點和難點進行講解。在該門課程的課堂教學中,每名學生至少有一次機會講解知識點。最后,教師對課程內容的重點、難點進行說明,并對知識內容進行系統化的總結和梳理。
第二?N形式通過大作業的方式,以小組為單位,共同完成一個項目。大作業是對學生學習本門課程的綜合性考察,嵌入式軟件開發的作業可以是多進程程序編寫、管道通信、Linux環境下“生產者與消費者”的實現等。嵌入式實踐開發的作業可以是智能家居、智能停車場等。在課堂教學過程中,小組組內成員之間、各小組成員之間針對大作業的內容相互討論,并每組選出一個代表對自己組的作業完成情況進行匯報展示,學生之間共同鑒賞、互相評價。教師可以在每名學生展示作品或學習成果后進行逐一評價,也可在所有學生成果展示完畢后做最后的總結,教師最終對學生的學習成果進行總結和評價。
課后主要是學生對學習進行復習和鞏固,檢驗自己掌握知識的情況,分享課中學習的感悟與收獲。教師則針對大家課上提出的問題進行反思和總結,對課程知識進行系統化的梳理和總結,并根據學生課上的表現、反應以及學生在學習過程中的意見對課前、課中階段進行及時調整。
2.4 評 價
評價環節既要體現評價主體的多元化又要注重評價樣式的多樣化,關注學生的效果,采用形成性評價和總結性評價兩種評價相結合的方式。
形成性評價包括多個因素:登錄網絡教學平臺的次數、下載教學視頻的次數、課堂出勤情況、課堂討論的積極程度以及小組成員間互評等多個方面。小組成員間互評主要從學生與對小組其他成員討論問題的情況、參與小組活動情況以及對小組的貢獻等方面出發,對自己和小組成員作出評價。這種評價方式有利于學生更好地參與到小組學習活動中,能夠提高組內成員間合作學習的積極性,同時,教師對學生的評價也同等重要,教師應該根據以上因素對學生進行評價,給出學生的平時成績。
總結性評價則主要包括學生的平時測驗、作業完成質量和期末考試成績。最后,教師根據形成性評價和總結性評價的一定比例給學生最終量化分數。
關鍵詞:應用型嵌入式人才;能力晉級階梯;課程體系
1研究背景
嵌入式系統是以微控制器為核心,嵌入到產品或設備中,以實現功能的數字化和智能化的系統。它既是相關產品設備的智能核心,也是這些產品設備實現創新和增值的關鍵。嵌入式系統的應用十分廣泛,覆蓋了消費類電子、智能家電、工業控制、通訊網絡、儀器儀表、汽車電子等多個領域。與此同時,社會對嵌入式人才的需求越來越旺盛,對嵌入式專業人才的知識、能力和素質提出了更高的要求[1-4]。
為了適應市場需求,不少高校近年在IT類專業中開設了嵌入式系統相關課程或設置了嵌入式專業方向,但大多只是在傳統的IT類課程基礎上增設一些嵌入式課程,并沒有形成比較完整的課程體系。如果從嵌入式應用開發人才培養角度來看,可以說開設了很多與現實脫節、與嵌入式應用開發能力培養無關的課程,培養的學生在專業技能、實踐能力、創新意識等方面都不能滿足用人單位的要求[2-4]。因此,如何適應形勢的變化和發展,提高嵌入式專業人才的培養水平,培養社會需要的高素質應用型嵌入式人才,是一個亟待研究的課題。
為了拓寬計算機專業學生的就業面,提升學生的就業能力和就業質量,從2002年開始,電子科技大學中山學院建設了嵌入式系統實驗室,并以選修課形式開設了嵌入式系統概論課程。從2006年開始,為了適應中山市及珠三角電子信息產業的特點,我們將計算機科學與技術專業定位為嵌入式系統及其應用方向,確定本專業方向的培養目標是培養具備計算機工程技術領域的基本理論、基本知識和基本技能,扎實掌握嵌入式系統基礎理論、開發方法和工具環境,接受嵌入式系統應用開發嚴格訓練的高素質應用型人才。通過幾年的探索和實踐,我們逐步明晰應用型嵌入式人才的知識、能力和素質要求,梳理嵌入式專業學生應當掌握的專業知識單元、基本技能、核心能力,并在此基礎上構建了比較符合應用型嵌入式人才培養規律的課程體系和實踐教學體系。
2應用型嵌入式人才內涵和培養目標
嵌入式系統有兩個很顯著的特點,一是面向應用,嵌入式系統是通過嵌入到具體的產品中提升產品性能,降低產品成本的;二是軟硬件結合,可以說任何嵌入式系統都是軟硬件協同設計的結果[5]。這就在知識、能力、素質等方面對應用型嵌入式人才提出了特別的內涵要求。
在知識結構方面,除了通識教育所涉及的公共基礎知識、人文社科和經濟管理知識外,應用型嵌入式人才還必須具備比較扎實的計算機軟硬件基礎知識和比較系統的嵌入式系統專業知識,具備一定的行業領域知識。
對于應用型嵌入式人才,能力結構涉及核心能力和專業能力兩個方面。核心能力包括獲取知識的能力,即具有較強的自學能力及獲取嵌入式相關專業知識的能力;應用知識的能力,即具有運用所學知識分析和解決嵌入式應用領域實際問題的能力;工程實踐能力,即具有較強的軟硬件設計、調試能力及嵌入式系統運行維護能力;團隊協作能力,即具有較強的溝通能力和合作意識;技術創新能力,即具有一定的創新意識和產品開發能力。專業能力包括專業基本技能,即學生應具備較強的程序設計能力、硬件制作和調試能力以及軟硬件工具平臺應用能力;應用開發能力,即學生應初步具備嵌入式項目開發能力和解決關鍵技術問題的能力。
素質結構涉及品德、人文、身心、專業四個方面。首先企業用人品德為先,因此學校培養的學生必須具有良好的思想品德和職業道德;其次應具有較好的語言、文字表達能力;第三應當身心健康,具有一定抗挫折能力;最后,學生須具有扎實的專業基礎知識和工程意識、分析問題和解決問題的能力。
基于對應用型嵌入式人才知識、能力、素質內涵的分析,我們確定嵌入式人才專業方向的培養目標是以市場需求為導向,以應用開發能力培養為中心,以“知識―能力―素質”為主線,培養具有扎實的計算機專業基礎,具有嵌入式專業核心能力和專業能力,“上手快,能實戰,后勁足”的高素質應用型嵌入式人才。
3課程體系設計的基本原則
課程體系設計是否合理,直接關系到專業培養目標能否真正實現。課程體系設計不只是簡單考慮開設哪些課程,還應該重點關注課程的授課內容和教學模式,處理好課程板塊之間、共性要求與個性發展之間的關系,實現課程與課程之間、課程板塊與和課程板塊之間、理論與實踐之間的有機銜接,為學生的能力進階提供一個合理的學習路徑[1,6]。我們在設計課程體系時遵循了如下幾個原則:
1) 適當保持計算機專業特色,從“系統”出發,在強調嵌入式軟硬件協同設計的同時,適當側重于嵌入式軟件開發。
國內許多高校在計算機科學與技術、電子工程、自動化等專業開設了嵌入式相關的專業方向,由于各專業培養目標、教學體系側重點不同,他們的課程體系和教學內容也不盡相同。電子工程專業主要側重嵌入式硬件設計,自動化專業側重自動控制、智能儀器儀表的設計,計算機專業則應從“系統”的角度出發,更側重軟/硬件的協同工作,將計算機核心課程和嵌入式專業方向課程有機地整合起來,形成一條清晰的邏輯主線。
電子科技大學中山學院在計算機科學與技術專業中設置了嵌入式專業方向。所以,我們是在保留計算機專業核心課程的基礎上,針對嵌入式特點,通過對相關課程進行內容整合和更新,適當強化相關硬件課程,引入嵌入式相關課程來構建嵌入式專業方向的課程體系。
2) 以“知識―能力―素質”為主線,構建符合嵌入式系統應用開發能力晉級階梯的課程體系。
課程體系是專業培養方案的核心,我們將以學科體系為導向的課程設置轉變為以能力培養為主線的課程設置,即認真分析企業對應用型嵌入式人才的知識、能力和素質要求,分析嵌入式專業學生應當掌握的專業知識單元、專業基本技能、專業核心應用能力。在此基礎上,以能力培養為主線,構建符合嵌入式系統應用開發能力晉級階梯的課程體系和學習路徑。大一階段注重科學基礎訓練(主要包括通識教育、專業認識和編程訓練),大二階段注重專業基礎訓練(主要包括計算機軟硬件基礎理論教育和技能培養);大三階段注重專業課程學習(包括嵌入式專業技能和應用開發能力培養),大四階段注重提高工程實踐能力(包括實踐能力與工程素養培養)[6]。
符合能力晉級階梯原則課程體系的構建,使得嵌入式課程體系的所有課程都是以能力培養為基本出發點,前后銜接緊密,層層遞進,逐步提高學生的嵌入式應用開發能力。
3) 圍繞嵌入式應用開發能力的培養,構建以“一體化、多層次、分階段”為特征的實踐教學體系。
在層次上,我們將嵌入式實踐教學體系分成三個層次:基礎層、綜合設計層和應用創新層?;A層主要包括相關課程(如程序設計、模擬電路、數字邏輯設計、單片機及其應用開發、嵌入式系統基礎等)的課內實驗,主要目的在于課程知識的鞏固。綜合設計層主要包括兩個方面,一是相關課程綜合性、設計性實驗,主要目的在于提高學生相關課程的知識和綜合運用能力;二是里程碑式的綜合實踐課程,即在能力培養主線上設置一些里程牌,并通過綜合性實踐課程培養學生階段性綜合應用能力。應用創新層主要培養學生的綜合分析、設計、創新能力和工程素養,主要通過創新實驗和課程設計、項目實訓、學科競賽、學生科研和畢業設計完成。
從階段上來看,我們將嵌入式實踐教學體系分成三個階段。第一個階段著重培養學生的編程功底和基本的硬件制作和調試能力,第二個階段著重培養學生的嵌入式軟硬件設計和開發能力,第三個階段著重培養學生的嵌入式系統綜合應用開發能力、軟硬件協同設計思想和工程素養[6]。
4) 關注課程教學內容和實踐教學環節的改革,
使課程教學內容、實踐教學環節與應用型嵌入式人才培養目標保持一致,同時保持課程之間的有機銜接,理論教學和實踐教學的有機結合。
首先,將應用型嵌入式人才培養目標分解細化到相關課程和實踐環節,使課程內容與培養目標保持一致,實踐環節與應用開發能力培養保持一致,前后課程之間保持有機銜接。其次,通過理論教學環節和實踐環節的有機結合,在培養學生比較扎實的理論基礎的同時,培養學生的核心能力和專業能力。
4課程體系的具體設計
4.1總體設計
嵌入式方向課程體系總體結構如圖1所示。整個課程體系分成三個部分,理論教學體系、實踐教學體系和素質教學體系。整個課程體系是圍繞著學生的能力培養而設計的。
4.2學科基礎課程
電子科技大學中山學院在計算機科學與技術專業中設置了嵌入式專業方向。所以,我們在課程體系的學科基礎課程中基本保留了計算機專業的核心課程,如程序設計基礎、離散數學、數據結構、計算機網絡基礎、計算機組成原理、計算機操作系統、數據庫原理與應用、多媒體技術基礎、軟件工程等??紤]到嵌入式系統軟硬件并重的特點,我們適當強化了電路與模擬電子技術、數字邏輯設計及應用這兩門電路課程。
針對嵌入式特點和后續專業課程的教學要求,我們對這些學科基礎課程的內容進行了整合和更新。
程序設計基礎既是很多后續專業課的學習基礎,也關系到學生的專業自信。我們對這門課程的處理方法是淡化語法細節,強調學生程序設計邏輯和分析問題解決問題能力的培養。同時,針對嵌入式軟件開發特點,對教學內容和重點進行適當調整,引入嵌入式C相關的教學內容。
在數據結構中,教師將在嵌入式軟件開發中經常用到的內容(如內存動態分配和釋放、棧、隊列、串、查找算法等)作為重點內容進行講述,而對于在嵌入式應用開發中較少用到的內容(樹、圖等),只作簡單介紹。
模擬電路與電子技術基礎、數字邏輯設計及應用這兩門電路課程的教學任務由具有比較豐富的嵌入式硬件開發經驗的教師擔任。教學不受老教材的束縛,教師大膽地對教學內容進行取舍,有用的內容講通講透,過時無用的內容堅決舍棄,并在相關章節講授中聯系后續專業課程內容,做好鋪墊性教學。同時,我們站在一個嵌入式應用開發工程師角度講授相關電路知識,著重它們的工程應用,而適當簡化數學公式和理論推導,降低學生的學習門檻,提高學生的學習興趣和自信。
很多高校的嵌入式專業方向都開設了微機原理及接口技術課程。但是,我們通過實踐發現,這門課程的知識與實際應用脫節,學生學習起來沒有興趣。同時,由于在后續的課程設計、課外科技競賽、畢業設計甚至今后的工作中都很難用到它們,這些內容即使學了也很容易忘記?;谶@些原因,我們取消了微機原理及接口技術這門課程。
4.3專業方向課程
專業方向課程的主要目的是培養學生基本的嵌入式應用開發能力,設置的課程包括Linux軟件開發基礎、單片機及其應用開發、嵌入式系統基礎、嵌入式操作系統及其程序設計、嵌入式Linux應用開發。
設置單片機及其應用開發課程,除了用它替代微機原理與接口技術以外,我們還期望從單片機這一相對簡單的嵌入式微控制器入手,讓學生能夠比較深入地理解嵌入式系統的工作原理和應用,為嵌入式系統的學習打下基礎,同時也讓學生對前面學習的兩門電路課程加深認識,為部分對硬件感興趣學生的后續發展做好鋪墊。我校的單片機實驗教學平臺采用自主設計AVR單片機實驗開發平臺,而沒有采用傳統的51單片機,主要是考慮教學與學生今后的應用相銜接,同時便于開發一些設計性、綜合性實驗項目。
嵌入式系統基礎可以看成是嵌入式專業方向登堂入室的課程,是正式跨入專業課程學習的橋梁。該門課程主要講述嵌入式系統的基本概念、ARM7體系結構及指令系統、ARM硬件結構和接口、接口電路與硬件設計、嵌入式系統工程設計等。在這門課程中,我們選擇ARM7作為嵌入式處理的主要介紹對象,因為相對ARM9來說,ARM7的體系結構、接口相對簡單,學生容易把握,也易于與實踐教學環節中的嵌入式最小系統設計相銜接。我們將這門課程的教學重心放在嵌入式處理接口的理解和應用上,讓學生容易入手并能夠動手應用,而不是一開始就讓學生接觸過于抽象的概念和比較復雜的內核東西,學起來困難,又動不了手。同時采取一種先易后難、先外后內的方式編排教學內容,更加符合學生的學習規律。
嵌入式操作系統及其程序設計課程的教學目的是讓學生在學習操作系統和嵌入式系統基礎的基礎上,掌握嵌入式操作系統的基本概念、基本原理思想,掌握基于嵌入式操作系統的應用程序設計方法和技術。該門課程既關注嵌入式實時操作系統的內核實現思想,同時也更加關注嵌入式操作系統的應用,即基于嵌入式操作系統的程序設計方法。該門課程的教學內容以 C/OS-Ⅱ為主,原因是 C/OS-II麻雀雖小,卻五臟基本全(微內核);通過其開放源碼,學生可以理解嵌入式操作系統實現的基本思想,把前面學到的操作系統抽象概念具體化;可以學習實時系統的一些編程技巧; C/OS-II已經移植到嵌入式實驗平臺上,課程實驗和課程設計可以與原來的嵌入式系統基礎課程很好銜接;在一些中低端嵌入式軟件開發中,它具有很強的實用性。同時,教師在該課程中引入文件系統和GUI,強化學生基于嵌入式操作系統的嵌入式軟件設計能力。
嵌入式Linux應用開發課程進一步凸顯該專業方向的計算機特色,讓學生掌握基于嵌入式Linux軟件的開發方法和技巧,真正培養學生的嵌入式軟件開發能力。
4.4專業選修課程
在選修課程中,我們有意識地設計了一些課程模塊,便于學生根據興趣和就業取向選修,如信息終端軟件開發課程模塊、硬件設計和驅動開發課程模塊等。信息終端軟件開發課程模塊包括.Net程序設計、J2ME架構軟件開發、WinCE嵌入式軟件開發、移動設備應用軟件開發;硬件設計和驅動開發課程模塊包括電子線路硬件設計、嵌入式驅動應用開發、EDA技術及其應用、嵌入式網絡協議及應用等。另外,我們會根據嵌入式技術的發展和社會需求適時調整選修課程。
4.5實踐教學環節
實踐教學環節對于應用型人才培養十分重要。我們在加大實驗實踐學時,強化實驗實踐環節的同時,注意有機整合實驗內容,減少驗證性實驗,增加設計性、綜合性實驗項目,按照“一體化、多層次、分階段”的思想,設計比較合理的嵌入式專業方向的實踐教學體系,如表1所示。
整個實踐教學環節具有以下幾個特點:
1) 將電路和模擬電子技術、數字邏輯設計及其應用課程的實驗獨立出來,并加大實驗課時比重,培養學生的硬件實踐動手能力。
2) 對于一些重要的專業基礎課程和專業課程,除了有課內實驗加深學生對所學知識的理解外,還設置一些專門的專業實踐環節,進一步提升學生的實踐動手能力和綜合創新能力。例如,在學生學習數字邏輯設計及其應用之后開設數字系統設計,利用我們自主開發的基于FPGA的數字邏輯設計教學與開發平臺,通過可編程邏輯器件等數字設計的主流器件和EDA數字系統設計重要工具,引入數字邏輯的最新內容和設計理念,開展一些創新性課程設計,一來引起學生的興趣,二則為學生的后續學習打下基礎。對于嵌入式系統基礎,我們除了在課程內完成GPIO、串口、定時器等相關基礎實驗外,還設置了嵌入式系統進階實驗這一單列的實踐教學環節,提供GPRS、CanBus、SD卡讀寫、以太網、USB等一些嵌入式系統進階實驗,開拓學生的眼界,提高學生的實際應用開發能力。
3) 在能力培養主線上設置一些里程牌,并引入一些綜合型實踐課程(以實踐為主、講授為輔),提高學生綜合運用所學知識解決實際問題的能力。例如,在學習完程序設計、數據結構等課程之后設置程序設計綜合實訓,進一步強化學生的編程功底;在學習完模擬電路、數字電路、電子線路設計工具等課程之后設置嵌入式工程實踐,培養學生基本的硬件制作和調試能力;在學習完單片機及其應用開發、嵌入式系統基礎等課程之后設置嵌入式最小系統設計,讓學生深入理解嵌入式系統的結構和工作原理,培養學生的嵌入式系統設計和開發能力;在學習完嵌入式系統基礎、嵌入式操作系統及其程序設計、嵌入式Linux應用開發、WinCE嵌入式軟件開發等課程之后設置嵌入式系統綜合實訓和畢業設計,著重培養學生嵌入式系統綜合應用開發能力、軟硬件協同設計思想和工程素養。
同時,我們還通過加大實驗室開放力度,鼓勵和引導學生通過課程設計、參與嵌入式學科競賽、參與教師科研課題,進一步提升實踐能力和創新能力。利用新實驗室,學生可以開展自主學習、合作學習、任務驅動式學習、研究性學習,實現從自主實驗嵌入式工程實踐小型科研課題研究開發參加各種學科競賽的創新教育全過程,提高知識應用能力、信息獲取和選擇能力、實踐動手能力,并在實踐中逐步提高創新能力。
5結語
作為一個新興的專業方向,嵌入式暫時還沒有一個公認的比較成熟完善的課程體系可供借鑒。本文在深入分析應用型嵌入式人才知識、能力結構的基礎上,以“知識―能力―素質”為主線,構建了符合嵌入式系統應用開發人才能力晉級階梯的課程體系和“一體化、多層次、分階段”的實踐教學體系。經過電子科技大學中山學院幾年的教學實踐,取得了較好的效果,證明該課程體系具備合理性和可行性。本專業方向培養的學生不少成為企業的技術骨干,甚至就職于產品技術開發管理崗位。同時,他們在一些學科競賽中也取得了很好的成績,先后獲得“博創杯”大學生嵌入式設計大賽一等獎兩項、二等獎兩項、三等獎一項,全國大學生信息安全競賽一等獎一項,“ZLG杯”ARM嵌入式系統電子設計大賽二等獎兩項、優勝獎三項等。
當然,嵌入式系統會隨著技術發展和應用需求而變得越來越復雜。為了適應這種需要,嵌入式人才的培養方案和課程體系也必須做出相應調整。同時,隨著我們和企業嵌入式開發人員、高校嵌入式教學人員交流的深入,我們對嵌入式人才內涵的認識也將越來越深,相應地,嵌入式課程體系也將更加完善。
參考文獻:
[1] 馬義德,湯書森,張北斗,等. 嵌入式系統課程群建設與創新型人才培養[J].高等理科教育,2004(8):23-25.
[2] JIANG Linying, LI Dancheng, ZHU Zhijiang. Research and Practice of the Training Model of Industrialization in Embedded[J]. 計算機教育,2010(9):2-5.
[3] HUANG Ming, LIU Zhen, LIANG Xu, et al. Exploration and Practice of Complex Embedded Software Training Model[J].計算機教育,2010(9):6-9.
[4] 俸皓. 嵌入式系統教學體系改革的探討[J]. 科技信息:科學教研,2007,12(30):29-31.
[5] 周立功,王祖麟,陳明計,等. ARM嵌入式系統基礎教程[M]. 北京:北京航空航天大學出版社,2005:163-190.
[6] 羅嗣海,周立功,王祖麟. 新型校企合作培養零適應期應用型人才探討(以江西理工大學嵌入式系統人才培養為例)[J]. 江西理工大學學報,2009,30(2):57-60.
Design of Embedded Curriculum for Application-oriented Talents Cultivation
LI Wensheng, MA Zheng, FU Yu, DENG Chunjian
(Zhongshan Institute, University of Electronic Science and Technology of China, Zhongshan 528402, China)
在高職計算機應用技術專業教學中,嵌入式技術是一個重要分支,廣泛應用到工業控制、儀器儀表、電子產品、汽車、辦公自動化和通信等領域,具有良好的市場前景。嵌入式操作系統是學習嵌入式程序設計的前導課程,是準備從事嵌入式開發人員必須學習的職業課程。目前,在嵌入式操作系統教學過程中,教學效果還不夠理想,學生的職業能力不能很好的適應崗位要求。因此,嵌入式操作系統課程教學改革勢在必行。
1 嵌入式操作系統課程教學過程中存在的問題
高職院校嵌入式操作系統是一門知識點多、概念性強、較為抽象的課程,課程知識涉及程序設計、計算機組成原理、嵌入式系統基礎等,課程教學難度較大。傳統的嵌入式操作系統教學,學生難以掌握知識、學習枯燥無味,普遍感到難學。尤其是職業院校的學生,很多還沒有接觸過計算機結構,難以理解嵌入式操作系統的內部結構。此外,在嵌入式操作系統教學中,重理論輕應用、理論教學與實踐教學脫節的問題普遍存在。在課堂教學中學生處于被動接受方式,無法主動參與整個教學活動,沒能達到以學生為中心,以培養學生操作技能為目的的職業技術教育宗旨。盡管安排有實訓,但實訓環節與課堂教學環節沒能做到相互連貫、相互映證,習題與課堂內容沒能緊密相扣,考試形式和內容多以理論為主,沒能體現考查學生實際應用知識的實踐能力。
總之,傳統的嵌入式操作系統教材和教學過于重視知識體系的演繹和推理,加之課程本身所固有的抽象性、強實踐性,使大多數學生對嵌入式操作系統課程產生了畏懼心理,以至于影響了他們學習的積極性,使之變成了難講的課程,不僅對學生后續專業課的學習形成了一定困難,對開展教學質量工程也產生了消極影響。
2 基于職業需求的嵌入式操作系統課程教學改革措施
根據高職教育的特點,結合企業職業需求,突破原有課程結構和教學模式,更新教學內容,改革教學方法。
2.1 重組課程內容體系
①課程設計理念
依據國家行業職業標準和崗位能力需求,對嵌入式程序開發工作崗位進行調研,分析職業需求,制定嵌入式操作系統課程標準。以“立足基礎、重在應用、強化能力,服務專業、適應社會”的思想,重組課程內容體系,體現基于工作過程系統化的課程設計理念。
②課程設計思路
通過企業專業人才需求分析、工作崗位分析、典型工作任務分析、學習領域生成、學習情境設計、教學設計、教學資源開發等環節,進行課程開發。課程以職業能力為本位、以工作過程為導向,建立基于嵌入式程序開發工作崗位所需的課程教學體系。
③課程教學內容設計
嵌入式操作系統課程以學習情境為載體組織教學內容,通過設計認識Linux、Linux基本應用、Linux編程應用、Linux網絡管理、Linux系統管理5個學習情境來完成對知識的系統化學習。讓學生在完成具體工作任務、工作過程中構建相關知識,融基礎知識和基本技能于一體。在教學過程中,創建真實工作環境,以完成任務為中心,整合任務需要的專業知識和專業技能,與工作崗位緊密對接,培養學生的崗位技能和職業能力,切實體現工學結合的職業教育特色。
2.2 構建任務驅動教學模式
采用“任務驅動”教學模式進行教學,教師的教和學生的學都是圍繞如何完成一個具體的任務進行的。在教學過程中,教師應該充分重視并精心設計教學情境和任務,用精心設計的任務,來激發學生的探索、思考的興趣,讓學生真正從內心產生強烈的“探索知識”的欲望,以積極探索問題、要求解決問題的心態來驅動學生的學習欲望并維持濃厚的興趣,讓學生通過完成一個個任務來實現總體的教學目標,從而形成一個系統的知識體系。
①設計并提出任務。在教學過程中,結合嵌入式操作系統課程特點,建立與當前學習主題相關的、盡可能真實的學習情景,引導學生帶著真實的任務進入學習情境,使學生的學習形象化和具有直觀性,任務的設計要注意知識點的系統性、連貫性、功能的遞進性。充分利用多媒體信息設計出具有情境的學習任務,使學生在情境中進行探索實踐,在課堂實施之前先對學生提出任務要求,然后讓他們討論、分析任務中用到的知識點、方法。
②引導學生完成任務。高職教育注重技能的培養,教師要在充分調動學生學習積極性的基礎上,積極提高學生動手操作的能力。在課堂上要采用學生自主學習的方式,以學生為主體,教師為引導。在學生接受學習任務后,給學生足夠思考空間及完成任務的時間,讓學生進行探究學習、解決問題。作為引導者的教師,只需為學生提供一些相關的線索和方法,少提示內容,這樣更有利于培養學生自主合作、探索創新的精神。
③展示、交流任務作品。教師或學生通過多種方式向全班學生展示各學生的任務作品,讓學生對任務作品進行自評,這樣可以讓學生通過對學習任務的認真分析,建立屬于自己的思維方式。然后由其他學生進行點評,發表自己的觀點和見解,這樣有利于學生在交流與點評中鍛煉自己的能力。
④教師點評任務作品
教師首先充分肯定學生的成績,并對本次任務作品進行點評,對某些問題提出個人意見,對沒有被發現的優點和問題進行補充,從提高學生能力的角度進行正確引導、提出期望,鼓勵他們繼續發揚這種探索的精神。
2.3 改革教學方法、重視教師隊伍建設
任何一種教學方法能否被成功地運用,是否促進學生的智能發展,這取決于教師的知識水平和教學才能。因此,要進行教學方法改革,首先必須提高教師的素質水平。嵌入式操作系統是一門實踐性很強的課程,應該創造條件讓教師定期到企業進行學習和培訓,了解職業的需求,鼓勵教師取得“技師”或“高級技師”職業資格證書,鼓勵企業技術人員擔任高職院校兼職教師。
在教學過程中,以教師為主導,學生為主體,實施“教、學、做、用”為一體的動態教學模式,真正轉變以課堂、教材為中心的傳統教學模式,突出學生的主體性,倡導學生主動參與、樂于探究,培養學生自主學習的能力、創新能力、分析問題和解決問題的職業能力,讓學生主動去構建知識結構、能力結構和品格結構,使學生把所學的理論、技能及時轉化為現實的職業操作能力,達到企業所需的技能要求。同時,應發揮“以賽促學,以賽促教”的作用,鼓勵學生積極參加嵌入式系統設計競賽、挑戰杯等各類創新實踐活動。在創業大賽中,對優秀團隊學生實行導師制,使學生有機會在教師的指導下完成相應的項目和作品,重點培養學生綜合分析、設計、自主研究及創新能力。
2.4 改革考核方案
嵌入式操作系統是一門綜合性和實踐性比較強的課程,用通常的機考、筆試進行考核存在一定的難度,因此考核方式應該多樣化。在考核過程中,應加大過程考核力度,把考核貫穿學習的始終,主要包括學生在課堂的表現、任務完成情況、職業能力掌握程度、試卷考核情況等,以提高能力為目標,以完成實際的任務為重點,以考促學,實施“知識、技能、素質”三位一體的考核方案。
【關鍵詞】嵌入式系統 S3C2410 實踐教學
【中圖分類號】G424.31 【文獻標識碼】A 【文章編號】1009-9646(2008)08-0227-02
1 引言
在我國,嵌入式系統的最新成果不斷被應用在航空航天、工業控制、儀器儀表、消費電子等領域, 直接導致了我國嵌入式系統的市場需求快速增長,嵌入式領域中的人才需求日益旺盛,人才缺口在逐漸擴大,而大部分高校的嵌入式系統課程教學存在諸多該改進的地方,最突出的是學生沒有使用工程方法來構建符合需求的系統的能力,導致了用人企業不得不對學生進行再培訓。由于嵌入式系統課程涉及的知識面寬、實踐性強,對實驗教學的要求較高,包括實驗教師、硬件配置、實驗項目的設置等。因此,應大力加強嵌入式系統實驗教學建設,這對嵌入式系統的學習、研究與開發可以起到事半功倍的效果,更好的促進創新型人才的培養。
2 S3C2410微處理器
針對我校的實際情況,我們自行開發了基于S3C2410微處理器的實踐教學平臺,S3C2410微處理器是一款由Samsung半導體公司為手持設備等相關應用設計的低功耗、高集成度的微處理器,采用272腳FBGA封裝,包含一個ARM920T內核。其內部包含以下功能模塊:1.8V/2.0V內部供電,3.3V存儲器,3.3V外部I/O供電。具有16KB一體化的Cache/MMU;具有外部存儲器控制器(SDRAM控制和片選邏輯);LCD 控制器(支持高達4K色的STN屏和256K色的TFT型液晶屏,具有1路LCD專用DMA);4路DMA,具備外部請求腳;3路UART(支持IrDA1.0,16字節的發送FIFO,16字節的接收FIFO)/2通道SPI;1路多主模式的IIC總線,1路IIS總線控制器;兼容V1.0的SD主接口協議和V2.11的MMC卡協議;2路全速 USB主設備,其中1路可以作為USB從設備(V1.1協議)。4路PWM定時器和一路內部定時器;具有看門狗定時器;共提供117個通用I/O,24路外部中斷;電源控制:正常模式,SLOW模式,空閑模式和掉電模式。8路10位ADC,其中2路可以作為觸摸屏接口;具有日歷功能的RTC時鐘;片內倍頻鎖相環PLL。
3 實驗系統的組成
我們研制的嵌入式系統教學實驗平臺采用了核心主板加擴展板的設計方式,提供基于微處理器的核心主板,將微處理器所有的I/O口全部引出,在核心主板上面只提供S3C2410,FLASH,SDRAM和LED 等最基本部分,而對于一些特殊用途的USB接口、以太網接口、TFT型液晶屏接口、觸摸屏接口、音頻接口、SD卡接口、GPRS 接口和GPS 接口等是以底板形式提供的。這樣,學生需要的話,可以在實驗平臺上進行主流技術硬件電路設計實驗,切實掌握部分硬件工作原理。系統功能模塊框圖如圖1 所示。
4 可開設的實驗
實踐性教學環節,對于培養具有創新性精神的高素質人才起著非常重要的作用。在這一方面,我們將實驗、課程設計、畢業設計及課外科技實踐活動相結合,從整體出發,構建了相應的嵌入式系統課程實踐教學體系,即基礎知識和實驗環境、基本技能訓練和綜合應用3個層次,三個層次的實驗項目分布在不同的實踐教學環節當中,所起到的作用和性質各有不同。
在第一層次的課程實驗中,要求熟悉軟硬件開發環境、完成硬件實驗程序的編寫、掌握基本外設接口程序的編寫方法、操作系統等基礎實驗,開設的主要實驗有:ADS1.2集成開發環境實驗;匯編語言與C語言編程實驗;GPIO輸入、輸出實驗;外部中斷實驗;定時器實驗;串口通訊實驗;中斷實驗;步進電機實驗;鍵盤、LED、LCD及觸摸屏實驗;BootLoader實驗;Linux內核移植及裁減實驗;構建Windows CE 5.0實驗。在這些實驗中,要求在對基本原理驗證的基礎上,進一步擴展完成簡單的設計性實驗。
在第二層次的課程設計(時間為2周) 環節中,以設計性實驗項目為主,讓學生掌握基本技能和方法。該環節由教師布置題目、設計內容及要求,學生自行完成。可開設的題目有:
4.1 UART實驗
考慮到串口在嵌入式系統中的應用非常廣泛,設置了本實驗。通過理論學習和上機操作,實驗者可以學習串行接口和串行通信原理,掌握S3C2410芯片的內部UART的使用方法,了解Linux和Windows CE 5.0下的串口驅動程序,學會Linux和Windows CE 5.0下的串口編程方法。本實驗要求實驗者能利用開發板編程實現串口與主機之間的通信和文件傳輸。
4.2 LCD實驗
實驗者可以了解LCD的基本原理,理解LCD的控制和驅動原理以及常用LCD控制芯片的基本使用方法,掌握S3C2410內置的LCD控制器方式驅動LCD的基本原理和方法掌握Linux和Windows CE 5.0下編寫LCD控制器的驅動程序和LCD應用程序的方法。要求實驗者調用Linux和Windows CE 5.0提供的LCD API函數實現簡單的圖文顯示和動畫效果。
4.3 LED和鍵盤控制實驗
實驗者可以了解LED 顯示和控制原理,掌握矩陣鍵盤軟件掃描原理和抖動、重鍵問題的解決方法,了解S3C2410的片選功能,理解使用CPLD擴展系統總線控制LED和鍵盤的方法。要求實驗者編寫列掃描鍵盤處理程序,與CPLD配合將用戶所按的鍵轉換成從1到16的數字顯示在2個LED上,并能實現用鍵盤輸入控制LCD顯示動畫。
4.4 觸摸屏實驗
實驗者可以了解電阻式觸摸屏的原理和觸摸屏與LCD的配合使用方法,理解嵌入式系統中同步IO接口的工作原理,重點掌握如何在Linux和Windows CE 5.0下編寫觸摸屏程序。要求實驗者通過分析手寫板程序,編寫一個簡單的觸摸屏計算器程序來掌握觸摸屏應用程序的工作原理。
4.5 A/ D 轉換實驗
實驗者可以了解A/D轉換的原理,掌握S3C2410芯片中AD轉換器的使用方法。要求實驗者編程實現在8路輸入中任意指定一路進行A/D轉換,并根據轉換結果在LCD上實時描繪輸入信號。該實驗用到了LCD 實驗中的基本知識,在理解本實驗內容的同時加深了對LCD 實驗的理解。
4.6 進程間通信實驗
實驗者可以了解操作系統中進程的概念,理解和掌握Linux和Windows CE 5.0下中進程間通信的方法,包括管道及有名管道、信號、消息隊列、共享內存、信號量等。要求實驗者用信號、有名管道和消息隊列編程實現進程間的通信,在進行編程前需要對Linux和Windows CE 5.0操作系統內核作相應的配置。
4.7 中斷和驅動程序實驗
實驗者可以理解S3C2410的中斷系統原理和中斷寄存器設置,理解應用程序和驅動程序交互的方法,掌握在Linux和Windows CE 5.0系統中編寫設備驅動程序的方法以及如何在驅動程序中掛接中斷。要求實驗者編寫阻塞和非阻塞方式中斷處理例程。
4.8 GUI實驗
實驗者可以了解圖形用戶界面的基本概念,嵌入式系統下常用的圖形用戶界面以及它們各自的特點,掌握Mirowindows 的體系結構和圖形引擎的特點及實現,掌握Mirowindows 配置文件的結構和各個功能選項。要求實驗者會利用Linux 內核、應用程序配置工具對Mirowindows 進行定制,重點掌握Mirowindows 提供的應用程序編程接口Nano-XAPI,會利用Nano-XAPI編寫簡單的圖形用戶界面,實現時鐘效果。
4.9 TCP/ UDP實驗
實驗者可以了解TCP/ IP 協議的基本內容,重點掌握IP 協議、TCP 協議以及UDP 協議,理解套接字的基本概念和編程原理,包括網間進程通信、客戶/ 服務器作用模式、套接字基本類型和系統調用等,掌握套接字編程的基本方法。要求實驗者使用Linux和Windows CE 5.0提供的一系列套接字相關的系統調用,通過開發板的網口實現與主機通信以及文件傳輸。
4.10 CGI實驗
實驗者可以了解Web 服務器的基本概念,特別是嵌入式Web 服務器Boa 的配置和使用,了解靜態頁面和動態頁面、CGI、JavaScript 等基本概念,能夠使用C語言進行CGI 編程。要求實驗者用CGI編寫URL解碼程序對用戶表格輸入進行處理,使用JavaScript制作一個智能化的頁面。此外,對能力較強的實驗者,還要求創建一個簡單的嵌入式Web服務器,頁面用中英文兩種語言顯示,該服務器允許授權用戶查看服務器配置文件,查看并修改服務器上的用戶文件和個人信息、密碼。
第三層次中包含了針對課外科技實踐活動及畢業設計,加強學生創新能力和綜合能力的培養。我們把這一環節也納入到實踐教學環節中,以充分調動學生開發嵌入式應用系統的積極性。由于畢業設計的時間相對較長,所以可以進行較大規模的創新性綜合項目的開發。在課外科技實踐活動中,可以設計嵌入式視頻監控系統,可以通過網絡進行遠距離圖像監控等;在畢業設計中,開發的項目可有手持式電子圖書閱讀器、Linux 下的媒體播放器、嵌入式指紋采集裝置、基于WinCE的嵌入式系統注冊表的研究及基于ARM和WINCE的嵌入式熱流計的設計等。目前本系統已經在大學生電子科技大賽中得到應用,收到很好的效果。
關鍵詞:智慧農業 嵌入式系統 體系建設
中圖分類號:G643 文獻標識碼:A 文章編號:1673-9795(2014)01(a)-0141-02
隨著計算機信息技術的發展,我國傳統農業正在加快向現代農業轉型,而智慧農業將成為現代農業未來發展的趨勢。智慧農業將農業看成一個有機聯系的系統,依托嵌入式技術、感知技術、互聯互通技術、智能化技術等綜合、全面、系統地應用到農業系統的各個環節,使得農業系統的運轉智能化、多功能,大力推進農業科技創新。
智慧農業所涉及的關鍵技術包括嵌入式技術、檢測技術、通信技術等。嵌入式是當前發展最快、應用最廣、最有發展前景的信息技術應用領域之一。目前,許多高等院校的計算機、電子、軟件等專業針對市場需求,開設了嵌入式系統相關課程,也在逐步完善適應社會需求的嵌入式系統的教學體系。本文基于智慧農業背景,結合都市型現代農業開設嵌入式課程的經驗,對農林院校嵌入式課程教學改革進行了探討。
1 智慧農業物聯網嵌入式系統
智慧農業是最近興起的一個概念,出現的時間很短,目前還沒有一個公認的定義。中國農業大學李道亮教授認為: 智慧農業是以最高效率地利用各種農業資源,最大限度地降低農業成本和能耗、減少農業生態環境破壞以及實現農業系統的整體最優為目標,以農業全產業、全過程智能化的泛在化為特征,以全面感知、可靠傳輸和智能處理等物聯網技術為支撐和手段,以自動化生產、最優化控制、智能化管理、系統化物流和電子化交易為主要生產方式的高產、高效、低耗、優質、生態和安全的一種現代農業發展模式與形態。
要建設智慧農業,就要依托物聯網等先進的科學技術。物聯網(The Internet of Things,簡稱IOT)的概念是在1999年提出的,2005年國際電信聯盟(ITU)的ITU互聯網報告,對物聯網做了如下定義:通過二維碼識讀設備、射頻識別(RFID)裝置、紅外感應器、全球定位系統和激光掃描器等信息傳感設備,按約定的協議,把任何物品與互聯網相連接,進行信息交換和通信,以實現智能化識別、定位、跟蹤、監控和管理的一種網絡。
智慧農業物聯網唯一的物聯源頭是嵌入式系統。隨著嵌入式系統的各個領域應用需求的多樣化,嵌入式技術已成為當今電子技術發展的主流。
本文基于嵌入式技術,針對農林院校計算機專業嵌入式系統方向課程體系的特點, 通過一系列教學嘗試,對計算機專業嵌入式系統方向的課程體系建設進行了一些探索,使學生在保證專業原有課程的基礎上,根據專業方向的不同,側重點有所差別,將智慧農業貫徹課程體系始終,使學生在軟件和硬件設計方面都得到很好的鍛煉,最終為都市型現代農業培養全方位的信息技術人才。
2 嵌入式課程體系建設
(1)我校計算機專業嵌入式系統方向培養和教學目標。
我校計算機專業嵌入式系統方向培養目標培養側重嵌入式軟件設計開發的嵌入式系統開發人員。根據學生的接受能力,嵌入式系統的學習體現層次性、漸進性、注重實踐性,尤其側重培養在農業領域中的嵌入式系統應用能力。(圖1)
嵌入式系統課程體系的設置體現“注重工程能力培養的嵌入式系統人才知識體系”,學習側重嵌入式軟件設計部分。嵌入式系統教學體系教學目標是掌握四個“1”,即“一種主流嵌入式微處理器、一門開發語言、一種嵌入式操作系統、一套開發工具”,嵌入式開發語言主要有匯編語言、C和C++語言、Java語言等;嵌入式操作系統主要有Windows CE、Linux等;集成開發工具主要有Windows CE開發工具、ADS等。
(2)嵌入式系統課程體系。
北京農學院計算機與信息工程學院自2011年設置了計算機專業嵌入式系統方向,根據自由選擇的原則在大學三年級實施特定方向培養,同期購買了30套嵌入式開發實驗平臺設備,可實現每人一臺的教學環境。
嵌入式系統課程體系大致可分為:基礎課程、專業基礎課以及專業課。
基礎課程在大學一、二年級開設,主要學習理工科的一些基礎課程,如高等數學等。
專業基礎以及專業課的開設時間以及內容如表1所示。需要特別說明的是根據我?!?+1”本科人才培養模式,大學前六個學期完成的是課內學習,旨在掌握較寬厚的基礎知識和扎實的專業知識,最后一學年有計劃地到校內外實調基地進行為期一年的實踐和實訓,所以第七學期和第八學期是專業實習和畢業設計實習環節。
嵌入式導論課程:介紹嵌入式的主要應用領域、嵌入式軟件開發的基本概念、嵌入式軟件開發的基本流程和基本方法、嵌入式系統的特點。
嵌入式操作系統課程:介紹嵌入式系統基本知識,嵌入式操作系統與通用操作系統的差別。結合典型的嵌入式操作系統對操作系統的基本構成、工作機制、系統移植剪裁和實時任務調度等內容進行介紹。我校根據具體情況選擇、Linux、WinCE等嵌入式操作系統進行教學。
嵌入式程序設計基礎:介紹嵌入式系統體系結構、嵌入式系統設計的基本方法、軟件編程及設備接口和驅動等。通過該課程的學習,學生了解和掌握必要的嵌入式系統設計方法學的概念、方法和工具嵌入式程序設計基礎,掌握嵌入式系統的基本原理與設計開發思想,學生能完成簡單的嵌入式系統的軟硬件設計。
JAVA開發語言:介紹Java語言的體系結構、Java語言的基本概念和程序設計的基礎知識、面向對象的程序設計的思路和方法。培養學生的編程能力,使學生能夠運用Java語言作為完成應用程序設計。
嵌入式接口技術:介紹鍵盤接口、LED顯示器接口、觸摸屏、通信接口、中斷接口、A/D和D/A轉換、ARM的JTAG接口。
嵌入式高級編程:介紹Android嵌入式開發環境搭建的方法,項目結構;Android的體系結構,嵌入式軟件開發流程;嵌入式特性開發,多媒體開發,數據存儲開發,聯網開發等開發方法,學生通過實踐能達到獨立完成開發單機、網絡嵌入式軟件的能力。
3 嵌入式課程實踐教學
(1)層次化實驗實踐教學。
實驗室選用UP-Magic6410嵌入式實驗開發平臺,著重培養學生在該平臺下進行嵌入式Linux程序開發的相關環境搭建與軟件設計方法的能力。針對各模塊以及嵌入式系統的應用背景,按照由淺入深,不同課程層次對應不同實驗項目等原則,組織設計了三個層次的實驗,循序漸進,逐步提高,以滿足不同階段的實驗和實踐需求,分別為涉及嵌入式導論的基礎性實驗、涉及嵌入式程序設計基礎的實操性實驗、設計嵌入式高級編程的提高性實驗。基礎性實驗多以理論驗證為主,在于學習方法;綜合性實驗和提高性實驗則多以應用為主,在于提高能力。三個層次的實驗教學內容,為學生提高了動手能力,進一步的實踐開發和畢業設計打下了良好的基礎。
(2)通過項目案例,強化實踐教學。
首先,依托教師實際的科研或工程項目,教師在實驗課程實施時,可以按照模塊化將案例的分解到各個部分,鼓勵學生對實例所采用的技術和方案進行不同角度的評價,變被動知識灌輸為主動探索思考,使教學理論知識與科研實踐有機地結合在一起。
其次,在設計綜合課程設計等綜合性實驗時,結合教師實際的科研或工程項目,在強調基礎性知識掌握的同時,鼓勵學生創新的綜合設計。使得學生既掌握了一些具體的通用的嵌入式系統的開發方法,也能發揮主觀能動性,獨立設計并實現較完整的嵌入式系統,激發學習、創造熱情。在課程設計綜合實驗中,考慮到學生水平差異,按照“自由組合、自主選題”的原則,要求學生課外查找資料進一步地學習,引導學生進行主動性學習,對某些問題進行深入的分析研究,進而提出自己的設計思想,此環節中設計思想的原創性也將作為課程考核的重要內容。
(3)鼓勵學生參與科研項目,注重培養創新能力。
通過項目實踐來鍛煉和提高學生動手能力是非常重要的。我校實行導師制指導學生,在參與教師科研項目的過程中,本科生導師負責學生在整個科研期間從理論到具體操作的各個環節的指導工作,加強了指導力度。
學生在家禽食品安全追溯系統的嵌入式系統應用項目中,教師組織學有余力的同學成立興趣小組,直接參與到前沿的課題和項目中去,將食品安全追溯系統按照生產鏈的六個環節分解成若干子題目,交由各興趣小組,模擬項目的形式實踐開發,真正做到“在學中做,在做中學”,以務實的項目培養學生的實踐科研能力。
(4)鼓勵學生積極參與課外科技活動。
近年來,高等院校加大了學生的課外科技活動開展的力度,筆者指導的學生參與了北京市大學生科研計劃,利用嵌入式平臺,對溫室環境等參數檢測,進而對溫室大棚實現智能化控制,學生在該課題中,運用所學理論知識,系統的完成了整個項目,獲得了北京市大學生科研計劃成果二等獎,尤其值得一提的是,畢業的學生在擔任京郊村官期間,將課題成果應用于所服務的村鎮,取得了良好的效果。實踐證明,鼓勵學生參與課外科技活動,將會拓展學生的知識體系,并學以致用,對進一步提高學習興趣以及培養合作精神發揮了至關重要的作用。
(5)做好畢業設計及畢業實習
我校實行的是采取“3+1”人才培養模式。以往學生在第八學期進行畢業論文和實習,部分學生在校內機房根據教師給出的題目完成畢業實習和設計論文,學生如果不走出去。就無法完成理論與實踐的有機結合,部分同學雖然通過實習單位的學習完成畢業論文,但是畢業設計和論文的時間和質量也難以保證。因此,我們將畢業論文提前到第七學期安排任務,進行設計、論文的前期準備及調試工作,既可以保證充分的畢業設計時間又可以提高學生專業課的學習興趣和主動性,做到有的放矢.提高設計.論文和專業課的學習質量。
針對在校學生缺少行業背景知識這一缺點,在教學中大力開展了與企業的合作,直接把學生派到相關企業進行實習和畢業設計,使得培養的嵌入式人才能夠適應企業的需要,目前我院已經建立了中軟、中國農業科學院信息所等校外實習基地,并簽訂了相關的實習協議。一方面學生在實踐工程項目中完成畢業設計和論文,綜合能力得到極大的提升,另一方面用人單位在與學校合作辦學的過程中也為自己培養了急需的技術人才,實行了定單式培養,最終構筑高校.學生和企業獲利的共贏平臺,從而實現人才培養和社會需求的無縫對接。從以往經驗來看,選擇嵌入式系統開發課題并能按時保質保量完成課題的的學生知識面更廣,就業面更寬,既可以從事軟件開發,也可以適應硬件的開發工作。
4 結語
嵌入式系統作為應用性極強的課程,其教學體系建設是一項復雜而艱巨的任務,包括完整的課程設置體系結構、不斷的豐富實踐教學內容,獲取更多的實踐項目等內容。隨著嵌入式在現代農業應用的迅猛發展,如何真正立足于農業院校發展特色,培養高素質嵌入式系統農業信息化人才,將是我們今后教學的方向和努力目標。
參考文獻
[1] 李道亮.物聯網與智慧農業[J].農業工程,2012(1):1-7.
[2] 朱仲英.傳感網與物聯網的進展與趨勢[J].微型電腦應用,2010(1):1-3.
[3] 柳翔.嵌入式軟件工程人才培養的探索與實踐[J].計算機教育,2005,11:55-57.
[4] 馬忠梅.嵌入式系統教學模式探討[J].單片機與嵌入式系統應用,2008(11):5-8.
[5] 李巖,孫玉,孫丞春.嵌入式系統教學研究[J].電氣電子教學學報,2006,(3):45.
關鍵詞:硬件課程;教學體系;項目驅動;系統性
隨著計算機硬件技術的迅速發展,各類硬件產品越來越多地應用到人們的生活中。因此,業界對硬件類技術人員需求急劇上升。然而,嵌入式之類的硬件系統開發需要的是軟硬件緊密結合的復合型人才;通常企業不愿花費太多的人力物力去培養。而一般本科院校的計算機類專業由于實驗設備和傳統偏軟的教學體系,造成畢業生對硬件知識的欠缺或掌握不夠系統,不具備業界需求的硬件系統開發能力[1]。技術發展和硬件類產品的大量應用帶來了對硬件開發工程師的巨大需求,這給計算類專業學生帶來了新的機遇,但同時也對學校的教學體系和學生能力培養提出更高的要求。
一般本科院校在開展硬件類知識和技術方面的教學中通常有如下一些問題:
1) 院校投入了大量的硬件實驗設備,但是學生硬件開發能力的提高并不明顯;
2) 學校開設的硬件類課程銜接不夠緊密,使學生對課程之間的聯系掌握不夠;
3) 理論教學時間多,實踐教學時間少,實驗設備利用率低;
4) 學生面對具體的硬件項目開發時,無從著手或知識能力欠缺。
而在學生方面,通常也存在一些問題:
1) 很多學生對硬件知識學習有一種畏懼心理,從而造成學習信心不足;
2) 硬件學習需要花大量的時間,而且效果并不像學習軟件一樣直觀,很多人都失去深入學習的耐心;
3) 軟件實踐需要的器材很容易滿足,一般就是PC+軟件,而有些硬件(擴展)實驗門檻較高,實驗環境難以搭建;
4) 由于硬件的集成度高,學生只能從理論上掌握硬件底層細節,容易形成硬件盲區,學習積極性容易被打擊。
隨著對硬件開發人員需求的不斷增大,近年來在計算機類專業硬件教學方面也提出了一些有效的方法,如文獻[2]對硬件教學的系統性進行了一定的探討;文獻[3]對陳舊的硬件教學內容進行了改進;文獻[4]對硬件實踐教學提出了一些看法。而本文則結合當前流行的嵌入式硬件開發,在多個硬件系統項目開發的基礎上,總結了提高硬件開發能力所需要的知識和涉及到的相關課程,并對課程之間前修后續關聯進行了合理的安排,建立了一套行之有效的硬件課程教學體系。
1硬件類課程體系設置
學生硬件開發能力的培養涉及到多個學科的課程,包括計算機和電子等專業的課程,還與具體應用背景的一些專業知識有關。具體的課程包括模擬電路、數字電路、嵌入式微處理器、操作系統、程序設計語言、軟件開發技術、接口技術與設計、嵌入式操作系統及底層驅動等技術,是軟件、硬件的有機結合。在制定硬件人才培養計劃時,既要拓寬深度和廣度體現硬件系統具有軟硬結合、面向具體應用的特點,又要注意與原有的計算機專業課程體系相兼容。
因此,需要在原有的計算機專業課程基礎上進行調整,有針對性地增加一些硬件類課程和實踐教學環節,增加學生對硬件方面的知識,有效地提高學生的綜合性動手能力和具體應用產品和項目的開發能力,并激發學生的學習積極性。
課程調整將與硬件系統開發的相關專業、相關課程合理地散列在低年級的各個學期,留給學生足夠的時間去鉆研、消化和深入,培養學生扎實的知識背景和基礎能力。同時,為幾門相關性比較大的課程或者重要性相對突出的課程,設置一些綜合性課程設計,讓每個學生感覺到一定的成就感,給予一定的動力。另外,設置一些獨立性實驗,幾個人一組,讓學生自己查資料,自己設置實驗方案等,獨立完成。通過上述的這些鍛煉后,能很大程度上提高學生團隊協作能力和自學能力,提高學生綜合素質。具體的課程體系設置圖1所示。
從圖1可以看出,課程之間都是有很強的關聯性,先修課程與后繼課程之間需要進行重要知識點的銜接,才能逐步培養學生具有硬件系統開發能力。在學生每修完一門課程,就開設一門能覆蓋重要知識的綜合課程設計。通過完整的工程項目案例教學,系統地提高學生的綜合能力,培養學生具備到企業去做實際項目的實踐能力和開發經驗。充分滿足業界對硬件開發人員的能力要求。
2硬件課程的教學方法和實踐
培養學生硬件開發能力,一些基礎課學習必不可少,如數字電路、模擬電路、C語言、數據結構、計算機組成原理、操作系統等。如果這些基礎知識掌握不牢固,學生在后續專業課程的學習中會感到力不從心。另外,由于硬件知識的學習十分抽象,脫離實踐去學習可能會舉步維艱。因此,在教學方面要解決“重理論輕實踐”問題,貫徹“理論教學與實踐教學相互印證和支撐”,將多種實驗課程貫穿于課程教學體系中,以提高學生學習效率和知識掌握的熟練程度。下面分幾個方面對教學環節中的一些方法進行討論。
1) 理論課堂教學。
在理論課上,教師通過對具體理論知識點的實例演示,同時穿插對理論知識點講解,讓學生們理解的更具體,從而激發學生的學習興趣,也間接提升學習信心。學生在課后讓依照課堂的演示實驗自行進行實例的重復和知識點的驗證。如在“嵌入式系統原理與接口技術”課程中講解串口的傳輸和實現,教師在課堂上圍繞驗證S3C2410芯片的功能進行講解,并在課下開放實驗室讓學生自行學習,以提高學生獨立思考和分析解決問題的能力。
2) 實驗課教學。
在實驗課上,教師結合理論課上所演示的實驗,講述具體的實驗內容,但并不需要完全透徹地講解,而是把更多的時間留給學生自己思考。如“嵌入式操作系統及應用”課程的實驗,教師在課上演示如何建立SAMBA服務器實現開發環境,簡要地闡述一遍實驗的原理及其過程,把更多時間留給學生,讓學生自己建立SAMBA并建立通訊,鼓勵同學間的相互討論和提出問題。
3) 單門的課程設計。
課程設計以設計性和綜合性實驗為主,在一學期的理論學習和實驗的基礎上,進一步提高學生對整門課程知識的理解以及對相應基礎課程知識的復習,并培養學生一定的動手能力。如操作系統課程設計“銀行家算法實現進程同步”結合了C語言、數據結構等知識,不僅可以復習鞏固一系列相關課程知識,我們還對這些課程知識進行匯總,設計出綜合性課程設計,提升學生知識體系的系統性。課程設計指導書按照知識要點,循序漸進,對這些基礎知識進行了進一步的綜合,從而使學生將離散的知識點逐步綜合起來,增強了其實踐能力。
4) 綜合性實踐。
在學習完各門基礎課程之后,教師采用適當的工程案例開展一站式綜合案例教學:
(1) 講解具體項目的知識點,并將它們聯系起來;
(2) 將同學們按項目分成小組,引導各組進行項目的討論并完成具體設計,這樣不僅可以提高學生的動手能力,還能培養學生的工程素養和綜合能力。
3課程體系驗證
通過該課程體系的培訓,學生能夠具備一定的硬件系統開發能力。下面就通過一個學生實踐創新項目――機房溫度濕度檢測硬件系統的開發來驗證課程體系的有效性。
該項目的系統原理圖如圖2所示。系統采用ARM7系列LPC2114芯片作為控制單元,設備包括溫度、濕度傳感器、降溫通氣設備控制接口、鍵盤和液晶顯示屏。其中鍵盤和液晶顯示屏作為系統與人機控制的界面,這些設備采用RS-485通信接口方式和計算機實現遠程控制,如及時給用戶發送信息,用戶對設備進行操作、處理等。
通過圖2可以清晰地看到計算機與電子專業的結合:
1) 學生在選擇相關的設備時需要用到一定的數字電路和模擬電路等技術知識,并了解相應的參數;
2) 選好了各種款式的電子設備后,需要設計可靠的電路,這更需要學生在電子技術實驗中獲取的經驗;
3) 選好了硬件外設和控制芯片之后,將這些設備與CPU進行連接,就需要用到計算機組成原理和嵌入式接口技術相關的知識;
4) 接著,需要編寫相應的驅動,這將涉及嵌入式操作系統和程序設計方面的知識。
當上述步驟完成后,系統可以通過傳感器獲取需要的外部信息。但還需要對所采集的信號進行處理,然后將處理后的信息反映到顯示器上,用戶還可以通過相應的設置,進行一些簡單的設置,在這里就會用到如A/D轉換、通信原理、數據結構和算法設計等相關知識。
系統設計完成之后,學生通過Protel繪制電路圖,制作電路板將所有的外設和芯片集成起來,安裝操作系統和編寫好的控制軟件,這樣就形成了可以實際應用的一個硬件產品。
4結語
通過這種以完成項目為每門課程最終目的的方式,強調“授之以漁”的教學宗旨,使得學生每學完一門課程就能解決一些相應的實際問題,很好地提高學生的動手能力和對學科的積極性,從而有效地培養了學生的實踐能力。
參考文獻:
[1] 劉全利,黃賢英,楊武. 計算機應用型人才培養新思路[J]. 重慶工學院學報,2005,19(6):144-145.
[2] 易法令,謝云. 計算機硬件教學的系統性與實踐性探討[J]. 理工高教研究,2005,24(1):83-84.
關鍵詞:實驗教學;嵌入式系統;Linux系統
嵌入式Linux系統由于具有開源、網絡功能強大、內核穩定高效等特性,在產品開發周期、產品的功能可擴展性、開發時的人力投入等方面都具有顯著的優勢,因此廣泛應用于中低端智能電子設備中。隨著物聯網的趨熱,作為物聯網的底層技術之一的嵌入式智能技術將具有巨大的市場前景[1-2]。
而在高校教學中,對于嵌入式技術這類強調實踐性的學科,實驗對于培養學生的實際操作能力和解決問題的能力是至關重要的。本文針對當前高等院校嵌入式實驗課程,特別是嵌入式實時軟件開發這門課程的教學投入不足、學生學習效果不佳的問題,提出了具體的實驗教學設計方案。并且詳細地剖析了一些重點實驗,給出了這些實驗在教學設計中實現的具體方案。
1嵌入式Linux系統開發實驗課程分析
嵌入式Linux課程設計具有很強的滲透性,與其他專業課程相比,嵌入式Linux課程設計具有獨特的特點[3]:該課程對學生的專業知識有較高的要求,課程具有交叉性,并且對學生的動手能力和系統思考解決問題的能力要求較高。
通過實驗,學生能夠掌握嵌入式Linux系統程序設計方面的基本概念和技能,嵌入式軟件設計的一般方法和流程,以及基本的實時控制方法、嵌入式網絡編程、嵌入式文件系統操作、I/O控制等知識;通過綜合實驗的學習和模擬,使學生能夠達到實際開發能力的目的。然而嵌入式系統的一大特色表現在發展速度上[4]。嵌入式系統的應用無處不在,其知識的新陳代謝的非常快,新技術層出不窮,這就需要教師不斷地將新的應用技術補充到嵌入式系統教學體系之中,推陳出新,設計出新的實驗項目。在實際的教學實驗中,針對嵌入式系統實驗,教師應注重培養學生自己動手設計開發綜合項目的能力,使學生能夠設計出實用的嵌入式軟件系統,適應于社會的需要。
本文的實驗運行在ARM-Linux操作系統下,結合ARM2410/PXA270/OMAP5910平臺的嵌入式Linux程序設計與系統開發技術,秉承理論與實踐相結合的思想,幫助學生快速跨入嵌入式系統開發的門檻。
2嵌入式Linux系統開發實驗教學設計
嵌入式系統開發課程涉及操作系統分析和應用軟件編程等知識,學生需要能夠理解嵌入式實時操作系統的工作原理、掌握基本的開發流程和開發工具的使用方法。在實驗的設計上既有簡單的基礎實驗也有復雜的綜合實驗,每部分的實驗環節充分體現了“分層次、分階段”的教學思想。本文將實驗分為三部分:
2.1基礎性實驗
目的是讓學生了解嵌入式軟件和硬件的一般開發環境與流程;熟悉實驗開發工具,掌握實驗開發工具的操作方法及使用,熟悉軟件編程環境,為更進一步實驗做準備。
2.1.1嵌入式應用程序交叉開發環境的建立
本實驗介紹了一般的嵌入式開發流程,以及開發環境中的軟件和硬件的安裝與調試。目的是讓學生了解嵌入式交叉編譯的相關知識,以及能夠搭建嵌入式Linux系統的開發環境。
2.1.2開發基本的嵌入式應用程序實例
通過嵌入式應用程序Makefile與Hello World實驗,使學生熟悉Linux開發環境,了解基本的嵌入式開發的基本過程,以及Makefile的基本內容,掌握基本的程序設計方法與流程,建立起任務的概念,為后續的應用程序的設計打基礎。
2.1.3Linux 多線程使用實例――生產者-消費者協議
通過本實驗,學生可以了解操作系統提出的多個機制對線程的執行順序進行限制,包括互斥鎖和條件變量等機制。在這里引入生產者―消費者模型對多線程的管理機制進行描述。目的是讓學生了解多線程程序設計的基本原理,并且使學生學習pthread庫函數的使用。
2.1.4進程相關的應用程序設計――進程創建及通信
通過本實驗,學生可以了解對于操作系統進程的一些基本操作,包括進程函數、信號函數和管道函數的相關使用機制等。目的是讓學生了解在Linux下進程通信的相關原理,以及掌握使用進程進行相關應用程序設計的能力。
2.2基本技能性實驗
通過構建嵌入式Linux系統以及內核定制、系統引導、文件系統、接口設計、驅動程序開發、圖形界面設計、以及通信應用等實驗,學生可以更清楚深刻地理解嵌入式Linux系統的相關術語,體會嵌入式Linux系統的組成要素,提高操作的人性化水平、完成功能完善的應用系統。目的是讓學生掌握嵌入式系統特有的編程機制和提供的各種編程接口,使之具備基本的嵌入式程序開發技能。
2.2.1嵌入式Linux內核、引導系統和文件系統實驗
通過構建嵌入式Linux系統以及內核定制等實驗,學生可以更清楚深刻地理解嵌入式Linux系統的相關術語、體會嵌入式Linux系統的組成要素。目的是讓學生了解Linux內核的結構、具有編譯Linux內核的能力,以及了解一個操作系統的構造。
1)Linux內核裁剪與編譯實驗。
以源程序的形式提供給學生一個分析研究的例子,展示內核的配置、內核鏡像的編譯過程以及內核的測試。讓學生了解Linux內核的結構,以及操作系統的構造,使學生具有編譯Linux內核的能力。
2) 引導系統和文件系統實驗。
此處利用一個階段性的綜合性實驗―軟盤Linux操作系統的實現,使學生了解一個操作系統的構造,以及如何制作軟件Linux操作系統。在該實驗中,要求學生使用軟盤進行GRUB配置,讓學生觀察如何實現的引導系統;之后使用make menuconfig進行內核配置,再使用BusyBox編譯生成一個新的根文件系統,使學生了解文件系統是如何實現的;最后將內核鏡像和根文件系統整合到軟盤中完成實驗。學生在讀懂源程序流程的基礎上可以對例程進行修改,驗證是否完成所設想的功能。
2.2.2嵌入式Linux接口設計與驅動程序實驗
驅動開發是嵌入式Linux系統開發中一個重要的組成部分,此部分實驗對學生的前述基本功要求較高,要求學生不僅要熟悉Linux的內核機制、驅動程序與用戶級應用程序的接口關系,還要考慮設備的并發操作等因素,而且要了解所開發硬件的工作原理。
1) 虛擬驅動模塊實驗。
使用靜態結點方式進行驅動程序的開發和測試。需要學生首先創建一個新目錄,并在其中編寫驅動程序nodevfs.c和Makefile文件,然后編譯生成驅動程序模塊?;谠擈寗映绦蚰K編寫測試程序。然后將程序模塊裝入到目標開發板上,建立設備結點并連接,運行及測試程序。通過本實驗學生可以學習在Linux下進行驅動設計的原理,掌握使用靜態結點方式進行開發調試的過程以及如何使用動態devfs方式進行開發調試的過程。
2)A/D接口驅動實驗。
要求學生使用C語言編程Makefile文件和線程庫,完成A/D驅動程序以及測試程序。例如要求學生編程實現采集A/D前三路通道信息,并在終端上顯示0~9的范圍。通過本實驗,學生能夠掌握程序編寫的基本過程,以及了解S3C2410芯片的8通道10位A/D的操作與控制。
2.2.3嵌入式Linux圖形界面實驗
1)Qt圖形界面相關實驗。
要求學生使用C語言進行編程,以及Makefile文件來完成Qt圖形界面相關實驗。通過本實驗使學生熟悉如何在Linux環境下安裝Qt和Qt/Embedded環境,如何在Qt/Embedded環境下使用qvfb顯示程序結果,以及如何完成Qt/Embedded的交叉編譯環境并且運行程序。
2)Qtopia的移植以及編程實驗。
本實驗的目的在于使學生熟悉如何在Linux環境下安裝Qtopia環境,如何使用qvfb顯示Qtopia環境,以及如何在開發板上運行Qtopia環境。在了解了安裝Qtopia的基本步驟后,需要將Qtopia移植到ARM平臺上運行。
2.2.4嵌入式Linux下的通信實驗
隨著嵌入式系統技術的發展,純單機工作已經遠遠不能滿足用戶的需求,因此各個系統之間的信息交互由于具有廣泛的應用價值面成為嵌入式技術更深層次的應用。因此需要學生掌握嵌入式Linux系統下的各種通信應用,包括串口通信、網絡通信、藍牙通信以及CAN總線通信。學生可以嘗試把通信編程和之前的各種案例結合起來,完成功能更加完善的應用系統。
1) 串口通信實驗。
串口作為計算機一種常用的接口,具有連接線少、通信簡單的優點,因此得到廣泛應用。特別是在嵌入式系統的開發和應用中,經常需要使用宿主機實現目標機的調試及現場數據的采集和控制。從而通過串口線連接宿主機和目標機達到通信的目的。
要求學生編寫發送端程序和接收端程序,發送端程序經交叉編譯后在目標機上運行,接收端程序在宿主機上運行,發送端程序通過串口發送字符給接收端。本實驗的目的在于使學生了解使用Telnet登陸目標機的方法以及掌握串口通信的編程方法。
2) 網絡通信實驗。
隨著網絡的發展,需要解決網絡間不同主機進程間的相互通信問題。為了解決網絡上的不同主機,可以用相同的進程號來表示沒有任何關系的兩個進程的問題,從及操作系統支持的網絡協議眾多,不同協議的工作方式不同,地址格式不同等問題,實驗需要學生首先熟悉TCP/IP協議中引入的地址和端口的概念,并要求學生使用C語言編寫skt_cli.c程序,stk_ser.c程序以及相應的Makefile文件,編譯成功后生成執行文件后,在嵌入式開發平臺和宿主機上運行測試。本部分實驗目的在于使學生了解在Linux系統下的Socket通信的基本原理,以及使學生掌握Socket編程的相關知識。
3) 藍牙相關實驗。
藍牙計劃主要是面向網絡中各類數據及語音設備,使用無線微波的方式將它們連成一個微網,多個微網之間也可以互連,從而方便快速地實現各類設備之間的通信。本實驗要求學生編譯內核,使內核包含藍牙模塊的相關驅動,重新燒寫內核,最終使開發板上的藍牙適配器能夠和Windows主機中的藍牙適配器建立連接。其目的使學生掌握藍牙設備通信原理,以及Linux嵌入式開發平臺上藍牙設備的使用。
4)CAN總線實驗。
要求學生使用C語言進行編程,完成Makefile文件,CAN驅動程序,以及測試程序的編寫。目的在于使學生掌握CAN總線通信原理,以及學習CAN總線控制器MCP2510驅動的開發,使學生能夠更改CAN應用程序的內容,實現兩臺開發板之間CAN數據信息的收發。
2.3綜合應用性實驗
此階段實驗目的在于運用基礎技能部分所學,進行綜合應用,獨立完成項目開發。由于是綜合實驗,因此在第二階段即給出題目,要求學生在整個實驗階段進行構思與準備,最后連接代碼。以基于藍牙技術的嵌入式點菜系統為例,對項目進行整體規劃設計以及具體實現的步驟進行介紹。
大多數無線點菜系統都是一套基于掌上電腦和802.11b無線局域網技術的實用型系統。從功能上來說,嵌入式開發板端即客戶端,包括開臺點菜模塊和藍牙數據傳輸模塊;PC機端即服務器端,包括菜單管理模塊、消費結賬模塊和藍牙數據傳輸模塊??蛻舳撕头掌鞫说乃{牙傳輸模塊都是通過后臺線程實現的,而其他模塊都是通過與Qt圖形界面的交互實現的。
整個點菜系統的通信結構為一個微微網,服務器端位于該微微網的中心節點,利用BT_PROTO_ RFCOMM協議與其他的點菜端進行通信。
1) 服務器端設定了接收數據和發送數據的緩沖區,分別保存接收到的點菜信息和要發送的結賬房間號,利用多線程技術實現數據的發送、接收和界面事件處理的“并行”執行。服務器端程序一運行,在建立圖形界面的同時,創建用于藍牙通信的線程并進行連接監聽;當客戶端建立藍牙連接后,通信線程不斷地從與點菜終端的連接中讀取數據,若讀到數據,則保存到接收數據緩沖區中,表示有點菜信息,便進行信息提取并保存到數據庫的消費信息表中。同時,不斷地檢查發送數據緩沖區,若緩沖區內容不為空,表示有了結賬的房間,則向點菜終端發送該數據。同樣,客戶端也設定了接收數據和發送數據的緩沖區,分別保存接收到的結賬房間號和要發送點菜信息,利用多線程技術實現數據的發送、接收和界面事件處理的“并行”執行。
2) 藍牙程序的開發主要是利用Bluez協議棧中的相關庫函數,主要數據結構是sockaddr_rc,該結構的用法與Socket中的sockaddr_rc類似。藍牙通信和Socket通信類似。另外藍牙地址BD_ADDR和相應字符串之間的轉換函數:bas2str(&rem_addr.rc_bdaddr, buf); str2ba(dest,&addr.rc_bdaddr)。
3結語
嵌入式Linux系統是一門實踐性很強的學科,本文列出多個實驗及綜合設計環節,構成了一個完整的實驗教學體系,目的是讓學生由淺入深,循序漸進地去學習、了解和掌握嵌入式Linux系統開發流程,對學生的嵌入式Linux系統設計和研發能力培養起到了積極作用。
參考文獻:
[1] 李巖,王小玉,孫永春. 嵌入式系統教學研究[J].電氣電子教學學報,2006,28(3):45-47.
[2] 凌明,王學香,鐘銳. 電子類專業嵌入式系統課程體系建設探索[J].電氣電子教學學報, 2007,29(5):4-6.
[3] 王先春,郭杰榮,胡惟文,等. 基于ARM_Linux的嵌入式Web服務器的設計與實現[J].微計算機信息,2007(14):163-165.
[4] L.T.Clark,E.J.Hoffillan,J.Miller,et al. An embedded 32- bit microproeessor core or low-power and high-performance applications[J]. In:Proeeeding of IEEE Journal of Solid-State Circuits. San Francisco.2001.US:IEEE Press,2001: 1599-1608.
Design on the Experimental Teaching of Embedded Linux System Development
SHENG Linyang, LI Liping
(Computer Science and Information Engineering College, Harbin Normal University, Harbin 150025, China)
關鍵詞:應用型本科;嵌入式軟件;課程體系
中圖分類號:G 文獻標識碼:B
文章編號:1672-5913 (2007) 07-0035-03
嵌入式系統已被廣泛地應用于工業控制系統、信息家電、通信設備、醫療儀器、智能儀器等眾多領域,“嵌入式無處不在”已成為現實。而社會對掌握嵌入式技術人才的大量需求,使嵌入式軟硬件工程師成為未來幾年最為熱門的職業之一。2004年6月,美國電氣及電子工程師學會計算機協會(IEEE-CS)和美國計算機學會(ACM)公布了“計算教程2004”(Computing Curriculum 2004,簡稱CC2004)。CC2004對原“計算教程CC2001”四個專業方向進行了修改和擴充,并給出了新的評述,其中在計算機工程專業課程中將嵌入式系統作為一門核心課程,分兩個學期進行學習??梢?,國內外將嵌入式技術人才的培養已經作為一個重點方向。本文根據江蘇技術師范學院以培養應用型本科人才的教學體系,對在計算機科學與技術專業中增設嵌入式軟件專業方向進行探討。
1 增設嵌入式軟件專業方向的可行性
20世紀70年代,隨著微處理器的出現,計算機的發展出現了歷史性的變化。以微處理器為核心的微型計算機以其小型、價廉、高可靠性特點,迅速應用在智能化控制領域中,這使計算機失去了原來的形態與通用計算機功能。為了區別于原有的通用計算機系統,把嵌入到對象體系中,實現對象體系智能化控制的計算機,稱為嵌入式計算機系統,簡稱嵌入式系統。
嵌入式系統所涉及到的知識有電子工程、通信工程和計算機技術等多種學科。在嵌入式系統應用領域中,人才可分為兩類,一類主要是搞硬件設計,他們大多數在本科階段學習電子類或通信類專業;另一類主要從事嵌入式操作系統和應用軟件的開發,他們大多數在本科階段學習計算機專業。嵌入式產品硬件設計完成后,后期工作主要靠軟件技術人員進行開發與設計,不同的軟件體現不同的功能,在嵌入式系統設計中軟件開發與設計占總工作量的80%左右,所以在嵌入式系統設計和開發中需要更多的嵌入式軟件開發人才。
目前,我校從事嵌入式應用方向研究的教師有16人,其中副高以上5人,講師5人,助教6人,獲得碩士以上學位的教師有8人,在讀研究生4人。與嵌入式相關的實驗室有計算機組成、接口實驗室,以51序列為主的嵌入式實驗室,以ARM7為主的嵌入式實驗室,正在籌備的以ARM9為核心的嵌入式實驗室。
從社會需求、師資力量、實驗室建設等多方面可得出,在我校計算機科學與技術專業中增設嵌入式軟件專業方向是可行的。
2 嵌入式軟件人才培養目標與規格
2.1 培養目標
嵌入式軟件專業方向是以應用為主的專業,其培養目標是:德、智、體、美全面發展,掌握計算機基礎理論和軟件開發的過程,掌握必需的嵌入式軟件理論、主流嵌入式系統硬件架構,和嵌入式軟件編程的技術、方法和工具,基本具備本領域分析問題解決問題的能力,具備一定的工程實踐能力,并具備良好外語運用能力,從事嵌入式軟件設計與開發的應用型人才。
2.2 培養規格
計算機科學與技術專業(嵌入式軟件方向)的學制一般為4年,授予工學學士學位。學生在專業知識的學習、實踐能力以及職業素質的培養過程中,逐步提高自身的獲取知識的能力、應用知識能力、創新能力以及團隊合作的能力。
(1)職業素質
現代企業需要的人才是職業化的專業人才,企業選拔、考核人才主要從德、能、勤、績四個方面考核,德排在首位,因此,職業素質是培養嵌入式軟件人才的基礎。在計算教程CC2004報告中,各專業方向的知識領域中都包含社會和職業生涯方面的知識,涉及與計算相關的哲學、歷史、社會、職業和道德責任、知識產權、隱私和公民自由、計算機犯罪等內容。通過這些知識體培養學生的思想品德、職業道德和社會責任。一個合格的人才首先要具備良好的職業素質。
(2)專業能力
嵌入式系統專業方向知識結構比較龐大,為了在本科階段培養出合格的嵌入式軟件專業人才,需要將計算機知識、嵌入式系統知識、相關交叉學科(電子、通信)基礎知識結合起來,形成嵌入式軟件專業方向領域知識。
(3)實踐能力
培養嵌入式軟件人才,工程實踐能力非常重要,因為嵌入式系統是以應用為中心,要求學生能借助于硬件開發平臺進行實際的研究與開發,并且要求學生具有獨立設計產品的能力,同時也要求學生具有團隊合作的能力,這就需要在實踐技能訓練過程中,加強學生的動手能力、團隊合作能力的培養。
3 課程體系結構
從企業實際用人需求出發,分析現階段嵌入式相關產業領域、行業人才需求特點及發展趨勢,合理地安排課程,是培養優秀人才的關鍵。根據培養嵌入式人才的能力構成將所學課程歸納為如下五個模塊:
人文社科模塊(A模塊):在于強化學生的思想道德素質、文化素質和職業素質,讓學生對社會環境有所認識和了解??砂才耪嗡枷搿⑿蝿菖c政策、法律等人文社科方面的課程,大學語文、英語、體育、心理學、經營管理等方面的課程,以及培養學生團隊合作精神和溝通能力相關的課程也放在該模塊中。
基礎學科模塊(B模塊):在于為學生打下扎實的基礎知識,主要安排高等數學、大學物理、計算機基礎等方面的基礎課程。
專業知識模塊(C模塊):是體現本專業業務能力和素質的核心、涉及專業基礎課程、專業核心課程。
專業基礎課程主要有離散數學、電路與電子學、邏輯設計、計算機組成原理、匯編語言程序設計、高級語言程序設計、數據結構、嵌入式系統概論和學科前沿講座。
專業核心課程主要有操作系統、數據庫系統原理、嵌入式微處理器原理與接口技術、計算機網絡、算法設計與分析、軟件工程方法學、Java 語言程序設計。
實踐教學模塊(D模塊):培養學生實際工作能力和操作技能,主要安排為實驗、實習、課程設計、實訓、畢業設計、職前培訓或案例分析等環節。
專業擴展模塊(E模塊):是培養學生專業知識和職業適應能力,該模塊課程設置為選修課程,可分為專業必修課程和專業任選課程。必修課程主要有嵌入式實時操作系統、嵌入式網絡技術、嵌入式系統設計方法、嵌入式系統體系結構、DSP軟件開發技術、單片機原理與應用。專業任選課程可安排多種不同要求的選修課,任選課有 Windows 環境與編程、面向對象技術、無線局域網、計算機控制系統、計算機安全技術、J2ME、移動通信、家庭網關技術、計算機系統結構、WinCE 操作系統、嵌入式Linux操作系統、傳感器概論等。
4 實驗室建設
為了讓學生能夠深入地理解和掌握嵌入式軟件開發與設計技術,必須建立嵌入式軟件實驗室,在建立嵌入式軟件實驗實之前,首先要對嵌入式實驗課程內容、實驗體系、實驗室師資隊伍等諸多方面進行詳細設計和規劃,以保證嵌入式軟件實驗室能夠滿足學生掌握嵌入式軟件開發與設計的要求。根據培養目標,實驗室要配備相應的硬件開發環境和軟件。硬件包括開發板、仿真器等必須的硬件設備,最好采用以ARM9為核心的實驗開發平臺,軟件包括常用的Linux、μC/OS、VxWorks、WinCE等常用操作系統,以及相應的軟件開發工具。實驗室要有經驗豐富的、具有項目開發經驗的教師進行實驗指導。
5 結束語
在計算機科學與技術專業中設置嵌入式軟件專業方向是可行的,它符合社會發展的需要。由于嵌入式系統將多種學科交織在一起,所以在制訂教學計劃,專業知識結構和課程體系時要充分考慮各學科的知識點,形成嵌入式軟件專業方向人才培養的獨特體系。
參考文獻:
[1] 魏洪興,王田苗. 軟件專業嵌入式系統課程體系研究[C].第三屆全國高等院校嵌入式系統教學研討會論文集,北京:清華大學出版社,2005.
[2] IEEE Computer Society/ACM Task Force on Computing Curriculum. Computing Curricula-Computer Enginnering “Iron-Man Draft”. June 8,2004 (/ece/CCCE/).
[3] 康一梅. 嵌入式軟件工程人才系統化教育探索[C].第三屆全國高等院校嵌入式系統教學研討會論文集.北京:清華大學出版社,2005.
[4] 2006年第三屆全國高等院校嵌入式系統教學研討會第一屆全國嵌入式系統學術交流會論文集.北京:北京航空航天大學出版社,2006.