油海東
青島農(nóng)業(yè)大學(xué)理學(xué)與信息學(xué)院 山東青島 266109
基于ARM-Linux的嵌入式系統(tǒng)開(kāi)發(fā)平臺(tái)教學(xué)實(shí)驗(yàn)研究
油海東
青島農(nóng)業(yè)大學(xué)理學(xué)與信息學(xué)院 山東青島 266109
對(duì)基于ARM-Linux開(kāi)發(fā)平臺(tái)的嵌入式系統(tǒng)教學(xué)實(shí)驗(yàn)進(jìn)行了研究,提出了開(kāi)設(shè)實(shí)驗(yàn)的兩種方案并進(jìn)行了對(duì)比分析。在相關(guān)實(shí)驗(yàn)的基礎(chǔ)上,提出了一種遠(yuǎn)程溫度控制系統(tǒng)。
ARM-Linux;嵌入式系統(tǒng);實(shí)驗(yàn)教學(xué)
Abstract: Teaching experiment research of embedded system development platform based on ARM-Linux has been done. Two experiment schemes are presented and analyzed comparatively. A remote temperature control system is presented based the experiment.
Key words: ARM-Linux; embedded system; experiment teaching
隨著物聯(lián)網(wǎng)、云計(jì)算等概念的提出,相關(guān)產(chǎn)業(yè)正在以一股不可阻擋的勢(shì)頭迅猛發(fā)展,嵌入式技術(shù)正是其最核心最關(guān)鍵的技術(shù)之一。2011年發(fā)布的《中國(guó)嵌入式開(kāi)發(fā)人員調(diào)查報(bào)告》[1],對(duì)國(guó)內(nèi)的嵌入式行業(yè)從嵌入式工程個(gè)人情況、嵌入式行業(yè)公司的基本情況、嵌入式工程師對(duì)職業(yè)生涯的看法、嵌入式工程師對(duì)參加培訓(xùn)的看法等幾個(gè)方面進(jìn)行了調(diào)查研究,結(jié)果表明,嵌入式公司行業(yè)分布廣泛,嵌入式工程師具有很高的自我滿(mǎn)意度,而且有相當(dāng)多的嵌入式工程師是新參加工作的大學(xué)畢業(yè)生。嵌入式行業(yè)不僅可以吸收大量的大學(xué)畢業(yè)生,而且從事嵌入式行業(yè)的開(kāi)發(fā)人員也對(duì)自己所從事的行業(yè)具有較高的行業(yè)幸福感。作為向社會(huì)輸送人才的各大高校,也緊跟IT技術(shù)發(fā)展潮流,面向市場(chǎng)需求,相繼開(kāi)設(shè)了嵌入式系統(tǒng)開(kāi)發(fā)課程,并積極引導(dǎo)學(xué)生參加各種形式的嵌入式設(shè)計(jì)大賽等活動(dòng),提高學(xué)生的綜合能力,提升學(xué)生的培養(yǎng)質(zhì)量,增強(qiáng)學(xué)生的就業(yè)競(jìng)爭(zhēng)力。
從多年的嵌入式系統(tǒng)開(kāi)發(fā)教學(xué)效果來(lái)看,該課程入門(mén)難、上手慢、實(shí)踐性強(qiáng),需要綜合知識(shí)面廣。要掌握嵌入式系統(tǒng)開(kāi)發(fā)技術(shù),需要大量的實(shí)踐練習(xí),因此,實(shí)驗(yàn)教學(xué)是非常重要的一環(huán)。
嵌入式系統(tǒng)開(kāi)發(fā)平臺(tái)有多種類(lèi)型[2],我校使用的平臺(tái)可以選用S3C44B0或S3C2410處理器。由于S3C44B0不支持MMU功能,因此如果選用S3C44B0作為處理器,相應(yīng)的嵌入式操作系統(tǒng)則應(yīng)選擇uClinux;如果選擇S3C2410處理器,則應(yīng)選用Linux作為嵌入式操作系統(tǒng)來(lái)搭配使用。由于S3C44B0+uClinux平臺(tái)功能相對(duì)簡(jiǎn)單,因此本文所涉及的實(shí)驗(yàn)全部基于S3C2410+Linux平臺(tái)。
嵌入式系統(tǒng)開(kāi)發(fā)平臺(tái)結(jié)構(gòu)框圖如圖1所示。使用CPU擴(kuò)展接口,可以更換使用S3C44B0或S3C2410處理器。該平臺(tái)提供的硬件資源豐富,包括64 M SDRAM,4 M Nor Flash,32 M Nand Flash,標(biāo)配320×240 CSTN 5.7英寸LCD,多個(gè)LED指示燈,8個(gè)8段數(shù)碼管,8路10BIT的ADC,提供觸摸屏接口電路,5×4鍵盤(pán),直流電機(jī),步進(jìn)電機(jī)模塊,具有采用擴(kuò)展子板形式的GPRS模塊電路和GPS模塊電路等,同時(shí),該平臺(tái)也提供了豐富的接口,包括10 M以太網(wǎng)接口,USB接口電路,2個(gè)RS232串行口,IIS音頻信號(hào)接口,2個(gè)CAN接口,1個(gè)IDE硬盤(pán)接口,1個(gè)PCI擴(kuò)展插槽和1個(gè)PS2接口,CF存儲(chǔ)卡接口,SD卡接口等。同時(shí),開(kāi)發(fā)平臺(tái)還提供JTAG接口,支持JTAG仿真技術(shù),支持ADS,STD和IDE等集成開(kāi)發(fā)環(huán)境?;谪S富的硬件資源和接口,可以開(kāi)設(shè)各種類(lèi)型的嵌入式實(shí)驗(yàn)。
圖1 嵌入式系統(tǒng)開(kāi)發(fā)平臺(tái)
要想在嵌入式開(kāi)發(fā)平臺(tái)上運(yùn)行Linux操作系統(tǒng),首先要把Linux裁剪、壓縮,去掉一些使用不到的功能,以便符合硬件平臺(tái)的要求。然后移植BootLoader,BootLoader是一段負(fù)責(zé)引導(dǎo)Linux操作系統(tǒng)啟動(dòng)的程序,在嵌入式系統(tǒng)開(kāi)發(fā)中具有重要的作用。BootLoader一般分為兩段,第一段一般采用ARM匯編程序編寫(xiě),主要負(fù)責(zé)硬件初始化、設(shè)置堆棧等工作,然后跳轉(zhuǎn)到第二段程序入口點(diǎn);第二段程序一般采用C語(yǔ)言編寫(xiě),主要負(fù)責(zé)檢測(cè)系統(tǒng)內(nèi)存映射,將壓縮的Linux Kernel映像文件從Flash拷貝到RAM并解壓,為L(zhǎng)inux Kernel內(nèi)核設(shè)置啟動(dòng)參數(shù),最后調(diào)用內(nèi)核,完成Linux啟動(dòng)。BootLoader有很多種,如VIVI,UBOOT,ARMBOOT,BLOB等,我們采用VIVI作為開(kāi)發(fā)平臺(tái)的BootLoader。
嵌入式系統(tǒng)開(kāi)發(fā)采用交叉編譯模式,所謂交叉編譯模式是指在主機(jī)上進(jìn)行程序的編寫(xiě)、編譯、調(diào)制,而在開(kāi)發(fā)平臺(tái)上運(yùn)行的模式。交叉編譯模式如圖2所示。主機(jī)上安裝編譯工具對(duì)源程序進(jìn)行交叉編譯,生成的可執(zhí)行程序,通過(guò)主機(jī)和目標(biāo)板之間的JTAG接口、串口、Ethernet接口或者USB接口下載到目標(biāo)板,然后啟動(dòng)執(zhí)行。
圖2 交叉編譯模式
嵌入式開(kāi)發(fā)平臺(tái)具有豐富的硬件資源和接口電路,因此可開(kāi)設(shè)的實(shí)驗(yàn)非常豐富,形式多種多樣[3,4],在文獻(xiàn)[3][4]中列舉出的實(shí)驗(yàn)共計(jì)48個(gè),面對(duì)數(shù)量如此多的實(shí)驗(yàn),在教學(xué)課時(shí)、教學(xué)設(shè)備有限的條件下,不可能一一開(kāi)設(shè),因此如何選擇實(shí)驗(yàn),以便讓學(xué)生能夠快速有效地掌握嵌入式系統(tǒng)開(kāi)發(fā)技術(shù)是非常重要的問(wèn)題?;谘驖u進(jìn)、由簡(jiǎn)單到復(fù)雜的原則,同時(shí)兼顧初學(xué)者的接受能力,我們提出兩種嵌入式實(shí)驗(yàn)的開(kāi)設(shè)順序,實(shí)踐表明,這兩種方案都具有很好的實(shí)驗(yàn)教學(xué)效果。
2.1 第一種方案
第一方案所開(kāi)設(shè)的實(shí)驗(yàn)分為三大部分:第一部分為ARM相關(guān)的基礎(chǔ)實(shí)驗(yàn)(6個(gè));第二部分為與Linux相關(guān)的實(shí)驗(yàn)(7個(gè));第三部分為綜合應(yīng)用實(shí)驗(yàn)(1個(gè))。共計(jì)14個(gè)實(shí)驗(yàn)(見(jiàn)表1)。
表1 第一種方案開(kāi)設(shè)的實(shí)驗(yàn)
14 遠(yuǎn)程溫度控制系統(tǒng)設(shè)計(jì) √溫度傳感器使用通用I/O采集溫度數(shù)據(jù),如果高于設(shè)定值,則一方面通過(guò)CGI程序以文件的形式保存在本地,另一方面通過(guò)開(kāi)發(fā)板上的GPRS模塊,通過(guò)移動(dòng)通信網(wǎng)絡(luò)發(fā)送到指定手機(jī)
我們把開(kāi)設(shè)的實(shí)驗(yàn)分成了基礎(chǔ)、綜合和應(yīng)用三個(gè)級(jí)別。在第一種方案中,基礎(chǔ)實(shí)驗(yàn)為8個(gè),綜合實(shí)驗(yàn)為5個(gè),應(yīng)用實(shí)驗(yàn)為1個(gè),符合寬基礎(chǔ)的教學(xué)要求。通過(guò)大量的基礎(chǔ)實(shí)驗(yàn)訓(xùn)練,使學(xué)生掌握嵌入式開(kāi)發(fā)的基本技術(shù)之后,再通過(guò)綜合型和應(yīng)用型的訓(xùn)練,提高使用嵌入式技術(shù)解決問(wèn)題的能力。
2.2 第二種方案
第二種方案所開(kāi)設(shè)的實(shí)驗(yàn)也分為三大部分,其中第一部分為ARM基礎(chǔ)實(shí)驗(yàn)(4個(gè));第二部分為L(zhǎng)inux相關(guān)實(shí)驗(yàn)(7個(gè));第三部分為綜合應(yīng)用型實(shí)驗(yàn)(1個(gè)),共計(jì)12個(gè)實(shí)驗(yàn),第二種方案所開(kāi)設(shè)的12個(gè)實(shí)驗(yàn)見(jiàn)表2。
表2 第二種方案開(kāi)設(shè)的實(shí)驗(yàn)
比較方案一和方案二開(kāi)設(shè)的實(shí)驗(yàn),可以看出,兩種方案有所側(cè)重。其中方案一比較注重基礎(chǔ),方案一提供的基礎(chǔ)實(shí)驗(yàn)共8個(gè),同時(shí)偏重對(duì)整個(gè)嵌入式系統(tǒng)的整體了解,方案一中的實(shí)驗(yàn)8,10,11都是了解整個(gè)嵌入式系統(tǒng)架構(gòu)所必須開(kāi)設(shè)的。而方案二更加注重應(yīng)用,從實(shí)驗(yàn)5到實(shí)驗(yàn)11,都是嵌入式應(yīng)用程序的開(kāi)發(fā)實(shí)驗(yàn)。通過(guò)實(shí)行不同的方案,既可以對(duì)整個(gè)嵌入式系統(tǒng)開(kāi)發(fā)架構(gòu)有所了解,同時(shí)也能夠從事實(shí)用的嵌入式應(yīng)用開(kāi)發(fā),多年的教學(xué)效果表明,采用這樣的實(shí)驗(yàn)方案,取得了很好的教學(xué)效果。
以方案一和方案二中的應(yīng)用型實(shí)驗(yàn)“遠(yuǎn)程溫度控制系統(tǒng)設(shè)計(jì)”為基礎(chǔ),我們?cè)O(shè)計(jì)了一種遠(yuǎn)程溫度控制系統(tǒng),參加了2010年“博創(chuàng)杯全國(guó)嵌入式設(shè)計(jì)大賽”,獲得了山東省二等獎(jiǎng)。該溫控系統(tǒng)的結(jié)構(gòu)圖如圖3所示。
圖3 遠(yuǎn)程溫度控制系統(tǒng)
該遠(yuǎn)程溫度控制系統(tǒng)主要包括溫度傳感器、嵌入式開(kāi)發(fā)平臺(tái)和主機(jī)。溫度傳感器使用通用I/O端口與開(kāi)發(fā)平臺(tái)連接,GRPS模塊使用串口與開(kāi)發(fā)平臺(tái)連接,主機(jī)使用串口與開(kāi)發(fā)平臺(tái)連接,用來(lái)調(diào)試、下載程序。溫度傳感器檢測(cè)的溫度數(shù)值通過(guò)通用I/O端口發(fā)送給開(kāi)發(fā)平臺(tái)上的接收程序,程序接收溫度數(shù)值后判斷是否大于或者小于某個(gè)設(shè)定值,如果大于或者小于設(shè)定值,則通過(guò)GPRS模塊發(fā)送到遠(yuǎn)程手機(jī),同時(shí),對(duì)于傳感器每次發(fā)送過(guò)來(lái)的溫度數(shù)值,都以文件的形式保存在本地,嵌入式開(kāi)發(fā)平臺(tái)上部署了嵌入式Web服務(wù)器和CGI程序,這樣在主機(jī)就可以通過(guò)Ethernet接口來(lái)訪問(wèn)以文件形式保存在開(kāi)發(fā)板上的溫度值。在該方案中,我們基于方案一中的實(shí)驗(yàn)11,開(kāi)發(fā)了通用I/O端口驅(qū)動(dòng)程序;基于方案一的實(shí)驗(yàn)11和方案二的實(shí)驗(yàn)11,開(kāi)發(fā)了嵌入式Web服務(wù)器及CGI程序;基于方案二的實(shí)驗(yàn)8,開(kāi)發(fā)了GRPS模塊和開(kāi)發(fā)平臺(tái)的串口通信程序;基于方案二的實(shí)驗(yàn)6和7開(kāi)發(fā)了相關(guān)的應(yīng)用程序。通過(guò)該系統(tǒng)的實(shí)施過(guò)程和最后的得獎(jiǎng)情況來(lái)看,我們所提出的嵌入式開(kāi)發(fā)平臺(tái)教學(xué)實(shí)驗(yàn)的方案一和方案二是合理可行的,對(duì)于提高學(xué)生嵌入式系統(tǒng)開(kāi)發(fā)技術(shù)水平,提高就業(yè)競(jìng)爭(zhēng)力具有很好的作用。
嵌入式系統(tǒng)開(kāi)發(fā)平臺(tái)及其教學(xué)實(shí)驗(yàn)方案,是針對(duì)目前高校嵌入式系統(tǒng)開(kāi)發(fā)課程的實(shí)驗(yàn)教學(xué)實(shí)際而提出的。方案一側(cè)重宏觀整體掌握嵌入式系統(tǒng)開(kāi)發(fā)架構(gòu),方案二則注重嵌入式應(yīng)用,并且基于方案一和方案二所開(kāi)設(shè)的實(shí)驗(yàn),設(shè)計(jì)了一種遠(yuǎn)程溫度控制系統(tǒng),并獲得了“博創(chuàng)杯全國(guó)大學(xué)生嵌入式設(shè)計(jì)大賽”山東賽區(qū)二等獎(jiǎng)。結(jié)果表明,該實(shí)驗(yàn)方案科學(xué)合理,能夠滿(mǎn)足不同層次學(xué)生的需求,對(duì)高校嵌入式系統(tǒng)開(kāi)發(fā)實(shí)驗(yàn)課具有較好的指導(dǎo)意義。
[1] 中國(guó)嵌入式開(kāi)發(fā)從業(yè)人員調(diào)查報(bào)[EB/OL].http://www.farsight. com.cn/subject/report2010-2011.htm.[2011-05-03]
[2] 朱麗霞.基于ARM-Linux的嵌入式實(shí)驗(yàn)教學(xué)平臺(tái)構(gòu)建[J].中國(guó)現(xiàn)代教育裝備,2010,23:42-43.
[3] 深圳英蓓特公司.EudkitIII S3C2410實(shí)驗(yàn)教程[Z].2008
[4] 深圳英蓓特公司.EudkitIII S3C2410 Linux實(shí)驗(yàn)教程[Z].2008.
Teaching experiment research of embedded system development platform based on ARM-Linux
You Haidong
Qingdao agricultural university, Qingdao, 266109, China
2011-12-24
油海東,在讀博士研究生,講師。