楊萬華 付承彪 陳 豪 冷莉華
(曲靖師范學院 計算機科學與工程學院,云南 曲靖 655011)
近年來,嵌入式系統(tǒng)依托于物聯(lián)網(wǎng)技術(shù)[1],是發(fā)展很快的信息領(lǐng)域之一,也是國家信息產(chǎn)業(yè)的一個重要發(fā)展方向。為突出學生的實踐和創(chuàng)新能力訓練,以培養(yǎng)有特色的高素質(zhì)的工程研究應用型人才為目標,加強實踐教學環(huán)節(jié)中綜合性和設(shè)計性實驗,進行此綜合實驗設(shè)計。
嵌入式系統(tǒng)課程是一門軟硬結(jié)合、偏向于實踐與應用的技術(shù)課程,對學生的專業(yè)拓展和綜合性實驗技能的培養(yǎng)具有重要的作用。尤其是嵌入式Linux 系統(tǒng)由于具有開源、網(wǎng)絡功能強大、內(nèi)核穩(wěn)定高效等特性[2],在產(chǎn)品開發(fā)周期、產(chǎn)品的功能可擴展性、開發(fā)時的人力投入等方面都具有顯著的優(yōu)勢,因此應用廣泛。隨著物聯(lián)網(wǎng)的趨熱,作為物聯(lián)網(wǎng)的底層技術(shù)之一的嵌入式智能技術(shù)將具有巨大的市場前景。
而在高校教學中,對于嵌入式技術(shù)這類強調(diào)實踐性的學科,實驗對于培養(yǎng)學生的實際操作能力和解決問題的能力是至關(guān)重要的嵌入式系統(tǒng)課程具有很強的滲透性,與其他專業(yè)課程相比,嵌入式系統(tǒng)課程具有獨特的特點:該課程對學生的專業(yè)知識有較高的要求,課程具有交叉性,并且對學生的動手能力和系統(tǒng)思考解決問題的能力要求較高。
通過實驗,使學生掌握嵌入式系統(tǒng)程序設(shè)計方面的基本概念和技能[3],嵌入式軟件設(shè)計的一般方法和流程,系統(tǒng)引導、內(nèi)核配置與編譯、嵌入式文件系統(tǒng)操作、嵌入式網(wǎng)絡編程等知識,使學生能夠達到實際開發(fā)能力的目的,適應于社會的需要。
本綜合設(shè)計實驗,以開源的Linux 操作系統(tǒng)為基礎(chǔ),進行綜合的藍牙通信實驗。第一步是進行目標機引導程序、內(nèi)核和文件系統(tǒng)的燒寫。
在本實驗中采用vivi 引導程序,完成引導程序的燒寫。以源程序的形式提供給學生一個分析研究的例子,展示內(nèi)核的配置、內(nèi)核鏡像的編譯過程以及內(nèi)核的測試,并使用串口完成內(nèi)核的燒寫。另外一個就是文件系統(tǒng)的燒寫,本實驗選用cramfs 作為根文件系統(tǒng),由于它只是一個只讀文件系統(tǒng),為了得到可讀寫文件系統(tǒng),用戶文件系統(tǒng)使用YAFFS 格式。用戶文件系統(tǒng)掛載于根文件系統(tǒng)下的/mnt/yaffs 目錄。yaffs 是專為嵌入式系統(tǒng)使用NAND Flash 而設(shè)計的一種日志型文件系統(tǒng)。
第二步是搭建嵌入式交叉開發(fā)環(huán)境。在一臺PC 機(宿主機)上安裝Linux 操作系統(tǒng)以及交叉開發(fā)工具,編輯、編譯目標板的Linux 引導程序、內(nèi)核、文件系統(tǒng)以及應用程序,然后把結(jié)果下載到目標機。通常這種在主機環(huán)境下開發(fā),在目標板上運行的開發(fā)模式稱為交叉開發(fā)。由于主機與目標板是兩個獨立的個體,要想在它們之間傳輸數(shù)據(jù),就必須先建立某種數(shù)據(jù)連接,才能實現(xiàn)通信、文件傳輸?shù)裙δ?。通常,在目標板和主機之間可以使用串口、以太網(wǎng)接口、USB 接口和JTAG 接口等連接方式。
在此學習一般的嵌入式開發(fā)流程,以及開發(fā)環(huán)境中的軟件和硬件的安裝與調(diào)試。目的是了解嵌入式交叉編譯的相關(guān)知識,以及能夠搭建嵌入式Linux 系統(tǒng)的開發(fā)環(huán)境。本實驗是在Windows 系統(tǒng)上面使用Vmware 虛擬機安裝一個Linux Redhat 9.0 進行實驗。
要實現(xiàn)Windows 主機和Linux 主機之間的通信,可以通過搭建Samba 服務器或者Ftp 服務器實現(xiàn)。在完成嵌入式Linux 操作系統(tǒng)的啟動之后,可以通過搭建NFS 服務器,完成Linux 主機到嵌入式目標機之間的通信。
由于實驗的最終目的是能夠?qū)崿F(xiàn)藍牙無線通信,藍牙模塊作為一個硬件,要能使其工作,必須先給嵌入式操作系統(tǒng)安裝相應的驅(qū)動程序。此時,需要重新回到內(nèi)核程序中,給其配置藍牙模塊驅(qū)動,并且讓其以模塊的方式編譯出內(nèi)核藍牙驅(qū)動模塊。在此,讓學生熟悉驅(qū)動程序編寫的基本過程,掌握模塊驅(qū)動程序設(shè)計的基本流程。在分析和提取出藍牙驅(qū)動模塊之后,通過交叉開發(fā)環(huán)境,下載驅(qū)動模塊到目標機,并且安裝到嵌入式設(shè)備中。
藍牙通信主要是面向網(wǎng)絡中各類數(shù)據(jù)及語音設(shè)備,使用無線微波的方式將它們連成一個微網(wǎng),多個微網(wǎng)之間也可以互連,從而方便快速地實現(xiàn)各類設(shè)備之間的通信。其目的使學生掌握藍牙設(shè)備通信原理,以及Linux 嵌入式開發(fā)平臺上藍牙設(shè)備的使用。掌握基本的應用程序設(shè)計方法與流程,為后續(xù)的應用程序的設(shè)計打基礎(chǔ)。
本實驗使開發(fā)板上的藍牙適配器能夠和Windows 主機中的藍牙適配器建立連接,并且能在嵌入式設(shè)備中啟動一個FTP 服務器,能夠提供無線數(shù)據(jù)傳輸功能。本實驗通過另外一臺PC 機安裝一個藍牙模塊,啟動藍牙功能,查找嵌入式設(shè)備上的藍牙設(shè)備并與其進行連接,然后登陸嵌入式設(shè)備上面的FTP 服務器完成數(shù)據(jù)的通信。
本實驗按照從簡單到復雜的實驗過程依次實現(xiàn),在簡單的基礎(chǔ)實驗的基礎(chǔ)上,掌握基本的嵌入式開發(fā)技能,再完成最后的無線通信綜合實驗。
本文首先概述了嵌入式技術(shù),然后在分析嵌入式系統(tǒng)實驗課程的基礎(chǔ)上,給出了一個基于藍牙通信的綜合性設(shè)計實驗。
[1]舒展.嵌入式系統(tǒng)綜述[J].現(xiàn)代計算機(專業(yè)版),2011,05:44-46.
[2]周紅波,詹芹.嵌入式系統(tǒng)實驗教學模式探討與實施[J].硅谷,2010,11:88.
[3]許先斌,熊慧君,李洲,楊芬,劉煒.基于ARM9 的嵌入式Linux 開發(fā)流程的研究[J].微計算機信息,2006,11:87-89+250.