武永華,左瑞娟(.福建江夏學院,福州 35008 .福建師范大學,福州 350007)
?
應用型本科院校電子信息工程專業《嵌入式系統》課程架構設計
武永華1,左瑞娟2
(1.福建江夏學院,福州350108 2.福建師范大學,福州350007)
摘要:
關鍵詞:
《嵌入式系統》課程是一門實踐性很強的課程,該課程主要培養學生的實踐動手能力。是對學生綜合能力與創新能力的考查。本文以電子信息工程專業學生為背景,以培養應用型人才為目標,對《嵌入式系統》課程教學架構進行了深層次的三層剖析。
《嵌入式系統》課程涉及軟件、硬件、嵌入式操作系統、應用程序開發[1]。課程的設計必須要和模電、數電、單片機、、微機原理、C語言、數據結構等關聯課程知識相結合。學習該課程是目的是培養知識的綜合運用的能力。課堂的講授和實驗是遠遠不夠的,本文將從以培養應用型人才為目標,在結合電子信息工程專業知識體系軟硬結合的特點,對本課程的技能和能力培養相關課程內容、實踐教學方式和項目帶動課程內容的吸收等環節進行了整理,對嵌入式《系統課程》架構模型進行了研究,并以此構建適應培養創新型人才的嵌入式系統課程架構設計。
根據電子專業的課程特點,將整個課程分為三個教學層次,如下圖1所示,一是課程基礎內容介紹,二是基于S3C2410硬件資源裸機教學內容[2],三是基于S3C2410 Linux[3]操作系統內容,采用分層次分內容的課程架構設計。

圖1 課程的三個教學層次
1.1課程基礎內容設計
該課程基礎內容的講解主要包括兩個大方向,一是嵌入式系統開發過程,二是S3C2410 ARM體系結構。
嵌入式系統的開發過程要讓學生了解嵌入式電子產品的開發流程,要理解源代碼的編寫、編譯和鏈接、下載鏡像文件到開發板以及最重要的交叉調試的過程。一般通過在源代碼中加入串口的Print語句在串口端來分析程序運行的狀況,來完成調試程序的過程,這是目前電子行業調試程序通用的最簡單的調試方法。該部分內容需要1-2個學時。
S3C2410 ARM體系結構[4]首先要讓學生深刻理解ARM公司是IP的供應商,本身并沒有生產IC,其次要了解ARM的9種尋址方式和寄存器組織圖以及流水線步驟,第三要掌握程序數據的訪問均要通過加載(Load)/存儲(Store)指令進行以及對應的ARM的指令系統。該部分設計匯編指令較多,建議只是講解一下基礎的幾個指令即可。該部分內容需要4-6個學時。
1.2S3C2410硬件資源裸機教學內容設計
本部分主要針對S3C2410的硬件資源進行一系列的教學設計。S3C2410硬件資源的學習采用實驗箱原理圖、寄存器和IC的規格書、C程序的三層架構。這樣可以讓學生更深刻理解電子產品的開發工作,不僅僅只是寫代碼,原理圖和寄存器也要深刻了解,這樣才能寫出穩定性強的代碼。特別是讓學生看懂寄存器和怎么利用寄存器調試碰到的問題。該部分主要包括以下8個小節,需要32個學時。是本課程的重點部分。
(1)基于ARM匯編語言和C語言程序設計
本小節讓學生了解ARM匯編語言的基本框架和C語言的基本架構,學會使用ARM的簡單的匯編語言編程和C語言編程。同時了解在Windows環境下ARM編譯環境的搭建。
(2)基于ARM的硬件Boot啟動程序設計
本小節主要讓學生理解裸機程序Boot的啟動過程。復雜的片上系統中多數硬件模塊都是可配置的,需要由軟件來預先設置其需要的工作狀態,因此在用戶的應用程序之前,需要由專門的一段代碼來完成對系統基本的初始化工作。由于此類代碼直接面對處理器內核和硬件控制器進行編程,故一般均用匯編語言實現。學生要深刻理解中斷向量表。
(3)ARM的I/O接口
本小節首先讓學生看懂實驗箱原理圖,明確要知道兩個LED燈和S3C2410的那兩個GPIO管腳相連的走線,由于S3C2410芯片采用FBGA封裝,所以管腳在芯片底部,這個要讓學生看S3C2410的底部封裝尺寸圖。其次看懂對應GPIO管腳的控制寄存器包括GPXCON、GPXDAT、GPXUP,最后要從代碼部分知道關于寄存器宏定義語句的方式和關于GPIO管腳某位BIT采用相與和相或的方式來置位和清零,這是在程序中最基本的操作方式,只操作自己需要的BIT而不能改變其他BIT。
(4)ARM的中斷
掌握ARM9的中斷原理,能夠對S3C2410的中斷資源及其相關中斷寄存器的進行合理配置。學習響應外部中斷請求的配置方法,并通過響應定時器中斷,執行中斷服務子程序使CPU板上的LED指示燈LED1、LED2閃爍。
定時器的初始化程序是重點,要產生一秒的定時間中斷,必須設定TCFG0、TCFG1、TCNTB1、TCON。通過S3C2410的16 Bit PWM定時器方框圖來了解這幾個寄存器的之間的關系,在此基礎上請學生編寫0.5秒和2秒的定時程序。
(5)ARM的DMA傳送方式
本小節讓學生深刻理解DMA數據傳送方式,這種方式是存儲器與外設在DMA控制器的控制下,直接傳送數據而不通過CPU,這樣CPU可以去處理其他任務。ARM的DMA通道有4個,要理解DMA通道的初始源寄存器、初始源控制寄存器、初始目標寄存器、初始目標控制寄存器。本小節初始源為存儲器、初始目標為串口。同時要重點強調學生理解S3C2410的結構框圖。理解掛載在APB,AHB總線上的DMA控制器和串口。
(6)ARM的A/D接口
S3C2410的A/D轉換器包含一個8路模擬輸入混合器。通過實驗箱原理圖,讓學生清楚知道是采用哪一路A/D。A/D接口涉及的寄存器主要是兩個ADCCON 和ADCDAT0。A/D采集程序設計的一般步驟是啟動AD、選擇通道、等待轉換結束、獲取轉換結果四個步驟,這個部分的內容是學生必須深刻理解的一個知識點。
(7)基于HD7279A的七段數碼管和鍵盤的控制[5]
鍵盤和數碼管接口控制芯片HD7279的應用對于電子專業的學生是一個經典電路應用,此款芯片最多可以同時接8個數碼管和64個按鍵。學生要通過實驗箱原理圖看懂S3C2410和HD7279的連接方式(4線:CS、CLK、DATA、KEY)。通過HD7279的Datasheet,掌握HD7279的典型應用電路。程序設計首先通過GPIO仿真出HD7279的控制時序圖,然后才能操作HD7279的寄存器,可以讓學生寫部分測試程序,包括閃爍、左移等操作。
(8)基本輸入輸出接口
本小節內容主要是讓學生掌握S3C2410和外圍芯片74LS244&74LS243輸入輸出控制。通過74LS244接收按鍵狀態,然后輸出至74LS243的LED來顯示。通過原理圖要知道這些芯片的片選地址,同時讓學生要體會到這些芯片都是掛載在總線上的。
這些教學內容是脫離操作系統的Hardware,通過這部分知識的學習可以掌握ARM硬件的架構和軟件的啟動過程、運行過程,真正理解ARM芯片級的應用。
2.3S3C2410 LINUX系統教學內容設計
在熟悉ARM的硬件資源后,本部分內容主要是基于ARM的Linux系統,學生要熟悉Linux基本命令操作。這部分內容是難點,學生要掌握交叉編譯環境的建立、BootLoader&Kernel&FS這三部分源碼的編譯、鏡像文件的形成和鏡像文件的下載、驅動程序的設計、應用程序的設計,該部分內容大概需要26課時左右。
(1)Linux基本命令的操作,熟悉VMware的安裝,并導入Linux虛擬機,在Linux終端下面讓學生練習一些基本的Shell命令,包括CP、RM、Tar、Chmod、Mount等命令。讓學生初步了解Linux的環境和命令操作。
(2)Bootloader-vivi的編譯、下載鏡像文件、vivi模式下命令的輸入。這部分的內容首先要在虛擬機上安裝S3C2410的交叉編譯工具鏈,然后在官網下載vivi的源碼,通過編譯器完成編譯,并通過串口調試工具或者JLINK燒錄鏡像文件到ARM開發板上面。
(3)內核和文件系統的編譯、下載。這部分內容首先要下載官網的源碼,然后經過裁剪、移植后變成可以在開放板上運行的Linux。由于移植內核所涉及的內容較多,且也較復雜,一般也不必太過關心,網絡上有專門的非官方組織在完善該事情。學生所做的移植也偏重于應用。內核的編譯通過make dep、make clean、make zImage生成鏡像文件。在宿主機架設NFS服務器,然后在ARM開發板通過mount命令把內核鏡像和文件系統加載到開發板上面,通過網絡燒寫軟件imagewrite更新內核和root文件系統到ARM開發板。
(4)設備驅動程序是Linux內核和硬件之間的接口。通過填充file_operations的各個域,并編寫子函數來完成設備驅動程序的設計。
(5)應用程序開發首先設計完成簡單的hello.c編輯、makefile的生成、編譯、動態加載運行或者加入文件系統運行。其次結合裸機的按鍵驅動模塊,完成按鍵輸出到串口的應用程序設計。
《嵌入式系統》課程是一門實踐性較強的課程,通過建立不同層次的孤立知識點的聯系,提高理論內容和實踐項目的貼合度,讓學生充分體會到做嵌入式項目的樂趣。本文構建的《嵌入式系統》課程架構在實際教學中富有成效,取得了良好的教學效果,使很多學生能夠掌握嵌入式項目基本開發,大大提高學生嵌入式系統設計的開發能力。
參考文獻:
[1]白華,張誠,高華. CDIO模式在《嵌入式系統》教學中的應用探討[J].教育教學論壇,2013(50):67-68.
[2]徐英慧,馬忠梅,王磊,王琳. ARM9嵌入式系統設計-基于S3C2410與Linux(第3版)[M].北京:北京航空航天大學出版社,2015.5.
[3]王琳等.嵌入式系統專業中Linux操作系統教學研究與設計[J].計算機教育,2014(24):77-81.
[4]杜春雷. ARM體系結構與編程(第2版)[M].北京:清華大學出版社,2015,8.
[5]葉克江.鍵盤顯示專業器件HD7279的接口設計[J].電子設計工程,2009,17(3):122-125.
Architecture Design of Embedded System Course of Electronic Information Engineering Specialty for Application-Oriented Colleges and Universities
WU Yong-hua1,ZUO Rui-juan2
(1. Fujian Jiangxia University,Fuzhou 350007;2.Fujian Normal University,Fuzhou 350007)
Abstract:
Keywords:
《嵌入式系統》課程是一門軟硬結合的課程。結合應用型本科電子專業特點,提出該課程的分層次分內容的三層課程架構設計,充分考慮該專業學生軟硬件能力,結合每次實驗的原理圖、寄存器、代碼三個內容,使學生能扎實理解并掌握嵌入式課程的基礎設計并進行二次項目開發。
嵌入式;原理圖;寄存器;軟硬結合;應用型
基金項目:
福建省教育廳A類(No.JA15105)
文章編號:1007-1423(2016)13-0029-04
DOI:10.3969/j.issn.1007-1423.2016.13.008
作者簡介:
武永華,男,講師,工程師,碩士研究生研究方向為嵌入式系統開發
左瑞娟,女,講師,碩士研究生,研究方向為模式識別、人工智能、嵌入式系統
收稿日期:2016-02-02修稿日期:2016-04-06
Embedded System course is one course of hardware-software. Combines with characteristics of electronic information engineering specialty,and proposes three layers structure design of level-division and content-division for this course. Also considers student capability of software and hardware for this specialty,combines with three contents of schematic diagram,register,code for every experiment,and this method lets student master base design of Embedded System course and also easily makes secondary project development.
Embedded;Schematic Diagram;Register;Hardware-Software;Application-Oriented