付東翔+陳瑋+蔣念平+傅迎華+胡春燕



摘要:為了使智能本科專業的學生更好地掌握嵌入式系統硬件功能和結構、操作系統和程序設計,針對本專業的應用現狀,從教學內容、理論與實驗內容的安排、后續課程的銜接以及本科創新與創業項目申請、參加全國性大學生實踐大賽等幾個方面進行分析和討論,以期通過本課程和后續銜接課程的設計學習,學生能夠順利申請和完成本科創新與創業項目,為參加全國性大學生實踐大賽奠定堅實的基礎。
關鍵詞:智能科學與技術;嵌入式系統;課程設計
0引言
嵌入式系統是計算機、自動化、電氣等本科專業的核心專業課程之一,其內容是在電工技術、模擬電子、數字電子、單片機技術和c語言程序設計等課程基礎上的更高層次的專業知識。當前信息技術飛速發展,智能化的系統和設備不斷普及,從工業機器人到智能穿戴設備,所有這些技術的背后都有著嵌入式系統技術的支撐。
如何提高嵌入式系統的教學效果,使得學生能夠不但掌握基本原理,而且具備實踐動手能力;課程教學內容如何與當前嵌入式系統技術的發展與應用水平保持一致等,是我們需要探討的問題。
1教學目標定位
智能科學與技術專業作為計算機類下的專業之一,專業培養目標定位于:注重智能科學與技術在智能檢測、智能識別、智能控制、智能管理、智能化儀表等方面的應用技能,強化學生實驗、驗證、自主設計的能力Ⅲ。因此,教學內容和實驗安排應該圍繞掌握一個智能系統的硬件結構、功能、系統軟件組成和原理以及應用軟件設計展開。
2理論教學內容
理論教學安排見表1。
2.1硬件系統。
以STM32的32位的ARM Cortex-M3內核控制器為例講述嵌入式芯片的更新和發展。在2004年以后,ARM體系結構發展到了ARMv7t,推出了全新的CortexTM系列,該系列有3個類型:Cortex-A、Cortex-R、Cortex-M。A系列為應用處理器,面向豐富的操作系統平臺的設備和用戶應用,主要為智能手機、移動計算平臺、數字電視、機頂盒和企業網絡和服務器等;R系列為嵌入式實時處理器,具有嚴格實時響應,目標應用包括醫療、工業和汽車等行業的可靠系統的嵌入式應用;M系列為低成本低功耗的微控制器,面向智能測量、人機接口、大型家用電器等的應用。因此CortexTM系列內核芯片是目前的實際應用主流。
基于當前ARM的發展和應用水平,選擇ARM Cortex-M3內核的控制器為對象作為教學內容,符合當前最新的嵌入式硬件發展和應用水平,ARM Cortex-M處理器是全球微控制器標準,NXP(恩智浦)、STMIcroelectronics(意法半導體)、Texas Instruments(德州儀器)等著名半導體公司都推出相應的產品,產品線豐富,目前市場上在售產品很多,價格便宜,實驗板和開發板等市場上很普遍。
通過Cortex-M3內核的控制器學習,學生更加清晰地認識了ARM體系結構。掌握了Cortex-M3就完全熟悉了Cortex-M系列,有了Cortex-M的基礎,學生以后轉向Cortex-R和Cortex-A系列處理器的應用和開發就變得容易了。
在介紹ARM體系結構之后,著重介紹CortexTM系列,以ARM Cortex-M3內核控制器為重點,以STM32的STM32F103為對象,對Cortex-M3內核控制器的硬件片內資源和功能予以介紹,STM32F103的片內資源包括GPIO、A/D模數轉換、串口、USB、中斷、定時器等,這里以GPIO、A/D模數轉換、中斷和定時器的控制為主要內容展開,STM32控制器的所有片內外設控制和操作都以庫函數調用方法實現。具體如下:
(1)GPIO和通用I/O口。常用的操作函數有GPIO_Init()、GPIO ReadlnputDataBit()、GPIO ReadInputData()、GPIO-SetBits()等。
(2)ADC模擬量輸入和讀取。常用的函數有:ADC_Init()、ADC_RegularChannelConfig()、ADC_GetConversionValue()等。
(3)通用定時器TIM。由一組庫函數來設置和控制,包括TIM TimeBaseInit0、TIM_ETRClockMode 1 Config()、TIM SelectlnputTrigger()、TIM SelectInputTrigger()。
(4)外部中斷/事件控制器EXTI。由一組庫函數設置和控制,包括EXTI Initf)、EXTIGenerateSWInterrupt()、EXTI_ClearFlag()、EXTI_GetFlagStatus()。
由于學時有限,所有硬件的庫函數不可能在課堂上一一講解,以上述內容為重點,詳細闡述和介紹這些常用硬件資源配置和控制功能的庫函數的定義和使用,同時強調所有的硬件配置和功能調用都是相同的形式,通過查詢庫函數手冊,能夠掌握所有硬件資源的配置和功能調用,觸類旁通。
2.2軟件系統
2.2.1嵌入式操作系統
μC/OS-Ⅱ操作系統的源代碼開放,內核小、實時性好,能夠被移植到絕大多數的8位、16位、32位和64位微處理器/控制器上,基于μC/OS-Ⅱ的產品包括從自動控制到手持設備等各個應用領域。教學內容主要包括:①μC/OS-Ⅱ嵌入式實時系統內核結構:多任務、任務調度、中斷與時間管理、μC/OS-Ⅱ的初始化和用戶創建;②μC/OS-Ⅱ的任務同步和通信:任務互斥與同步、任務間的通信、μC/OS-Ⅱ的任務通信機制。
1)μC/OS-Ⅱ系統任務與調度的主要內容。
多任務與任務創建:μC/OS-Ⅱ采用多任務機制,最多可以運行64個任務,每個任務對應一個唯一的優先級。與任務有關的系統服務函數有:創建任務OSTaskCreate()、OSTaskCreateExt();刪除一個任務OSTaskDel();改變優先級OSTaskChangePrio();掛起一個任務OSTaskSuspend();恢復一個任務OSTaskResume()等。
對于gC/OS-Ⅱ系統中的任務,共存在5種狀態:睡眠狀態(DORMANT)、就緒狀態(READY)、運行狀態(RUNNING)、等待狀態(WAITING)和中斷服務狀態(ISR)。不同狀態之間的轉換關系如圖1所示。
任務控制塊OS_TCB是描述一個任務的核心數據結構,存放它的各種管理信息,包括任務堆棧指針,任務的狀態、優先級,任務鏈表指針等。
各任務之間具有相互關聯性,需要通信機制來實現消息的傳遞。任務間的通信使用信號量、郵箱(消息郵箱)和消息隊列等方式來實現,這些通信方式也稱為事件。
μC/OS-Ⅱ中與對信號量操作有關的函數共有5個:①OSSemCreate(),創建信號量;②OSSemPost(),發送信號量;③OSSemPend(),等待信號量;④OSSemAccept(),無等待的請求信號量;⑤ossemQuery(),查詢一個信號量當前狀態。
2.2.2嵌入式應用程序。
主要講述IAE軟件的C程序設計。IAR軟件是目前主流的嵌入式系統開發工具之一,支持幾乎所有的嵌入式處理界面功能和操作與其他主流軟件工具很
3實驗教學內容
嵌入式系統課程實驗與單片機實驗的不同在于:①硬件功能的配置和控制通過寄存器編程實現,硬件配置和控制庫函數數量眾多;②以μC/OS-Ⅱ系統下的應用程序設計為主,強調操作系統多任務的創建、運行和任務間的通信等。因此,本課程實驗主要基于上述兩點展開,分為3部分內容:
1)基本實驗,包括LED、LCD、ADC采樣等控制器基本功能。
重點實踐通過庫函數調用,在IAR環境下的對GPIO、ADC、定時器、中斷等功能寄存器的設置,實現這些硬件控制,讓學生熟悉和掌握常用的庫函數的功能和調用,同時能夠通過查詢手冊掌握每個庫函數的定義和使用方法。
2)uC/OS-Ⅱ系統下的多任務系統實驗。
實驗板上3個LED燈:LED1、LED2、LED3,分別由3個GPIO口控制,通過程序中向該端口寫“1”或“O”讓其熄滅和點亮或者閃爍。要求分別創建3個任務,任務1控制LED1,任務2控制LED2,任務3控制LED3。雖然是一個簡單的GPIO端口實驗,但是可以實現規模最小的一個多任務嵌入式系統。學生通過該實驗可以掌握μC/OS-Ⅱ系統的嵌入式系統應用程序的開發和設計。實驗程序流程和結構圖如圖2所示。
3)uC/OS-Ⅱ系統下的任務間通信實驗。
在主程序main()中,首先通過系統函數OSTaskCreate0創建一個初始化任務TaskStart(),然后在Task_Start()中,初始化液晶屏LCD,再調用系統函數OSTaskCreate()創建2個應用程序任務Task LCD1()和Task LCD20,每個任務函數的內容為創建各自的一個郵箱,并等待郵箱消息,如有消息,就從郵箱中取出,并在LCD上以字符信息顯示。實驗展示了一個μC/OS-Ⅱ系統下2個任務的通信。實驗程序流程和結構如圖3所示。
學生通過程序設計和下載運行,根據LCD液晶屏的顯示信息,驗證任務間的通信。
實驗內容安排見表2。
4課程設計
在嵌入式系統內容的學習中,學生已經能夠熟練掌握STM32控制器的GPIO、ADC、定時器和中斷控制等庫函數調用和IAR編程環境,同時能夠在μC/OS-Ⅱ系統上進行多任務應用程序的設計。智能專業課程設計主要內容是設計一個以μC/OS-Ⅱ為平臺的智能儀表測量系統。開發測量儀表人機界面,包括有主界面和菜單選項,其中測量界面能顯示模擬量采樣輸入,設定界面能夠設定采樣周期和信號濾波參數等。
5結語
學生通過課程學習,理解小型智能系統的硬件組成和功能原理,能夠充分理解、熟悉和掌握嵌入式軟件的系統組成和應用功能的開發與設計。智能專業學生近3年參加多項大學生創新項目,如Android云編譯器的設計和實現(SH2015023)、基于Arduino的多功能智能車研發(SH2015041)、智慧家居遠程監測控制系統(SH2015047)等,取得了較好的成績。
課程內容安排與后續課程設計、創新實踐和大學生教學實踐比賽環環相扣,從基礎到應用,培養學生構建一個小型智能系統,很好地提升了學生的專業能力。
(編輯:彭遠紅)