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