王 超
(文山學(xué)院 人工智能學(xué)院,云南 文山 663099)
嵌入式技術(shù)在工業(yè)和生活中得到了越來越廣泛的應(yīng)用,為了適應(yīng)技術(shù)的發(fā)展和社會(huì)的需求,滿足為社會(huì)培養(yǎng)創(chuàng)新型人才的需要,高校通信類和電子類專業(yè)開設(shè)嵌入式技術(shù)相關(guān)課程及實(shí)驗(yàn)逐漸成為趨勢[1-3]。但由于嵌入式技術(shù)課程內(nèi)容比較廣泛,需要考慮的因素較多,學(xué)生往往很難將所學(xué)內(nèi)容有效的結(jié)合起來完成功能完整實(shí)驗(yàn)項(xiàng)目。因此,在課程中設(shè)置合理的實(shí)驗(yàn),并將各方面的知識結(jié)合起來進(jìn)行演示,有助于幫助學(xué)生理解所學(xué)內(nèi)容,有利于提高學(xué)生綜合應(yīng)用知識的能力和動(dòng)手能力,有利于培養(yǎng)學(xué)生的創(chuàng)新性思維能力,同時(shí),對嵌入式技術(shù)實(shí)驗(yàn)教學(xué)提供了一定的參考[4-5]。
本文采用北京博創(chuàng)科技公司開發(fā)的ARM9教學(xué)科研平臺,處理器為三星公司生產(chǎn)的s3c2410,結(jié)合Linux操作系統(tǒng)和Qt/Embedded開發(fā)嵌入式系統(tǒng)實(shí)驗(yàn)室實(shí)驗(yàn)演示系統(tǒng),將嵌入式課程中軟硬件知識和良好的GUI界面有效結(jié)合起來,使學(xué)生通過觀看和分析演示系統(tǒng)更好地掌握嵌入式技術(shù)開發(fā)的全過程,并在此基礎(chǔ)上進(jìn)行加入的設(shè)計(jì)性和創(chuàng)新性實(shí)驗(yàn),滿足一般高校對嵌入式技術(shù)教學(xué)的需要,具有一定的理論研究價(jià)值和實(shí)用價(jià)值。
系統(tǒng)充分考慮硬件平臺的資源和教學(xué)大綱的要求,實(shí)驗(yàn)難度由簡單到復(fù)雜,層次分明,主要分為三個(gè)部分:基礎(chǔ)控制實(shí)驗(yàn),擴(kuò)展控制系統(tǒng),綜合性/設(shè)計(jì)性實(shí)驗(yàn),并且可以在此實(shí)驗(yàn)系統(tǒng)的基礎(chǔ)上進(jìn)行二次開發(fā),可以有效地將學(xué)生的畢業(yè)設(shè)計(jì)和教師的科研項(xiàng)目融入系統(tǒng)當(dāng)中,方便對系統(tǒng)的擴(kuò)充和完善?;A(chǔ)控制實(shí)驗(yàn)完成對實(shí)驗(yàn)箱硬件資源的控制,旨在讓學(xué)生掌握常見外設(shè)驅(qū)動(dòng)的編寫和調(diào)用;擴(kuò)展控制實(shí)驗(yàn)主要完成外接硬件資源的控制,主要對無線模塊,溫濕度模塊等進(jìn)行開發(fā)和調(diào)用,進(jìn)一步讓學(xué)生掌握嵌入式系統(tǒng)開發(fā)技術(shù),培養(yǎng)學(xué)生的創(chuàng)新性思維。綜合性/設(shè)計(jì)性實(shí)驗(yàn)旨在培養(yǎng)學(xué)生二次開發(fā)的能力,實(shí)現(xiàn)一個(gè)具備功能完整豐富的ARM嵌入式應(yīng)用系統(tǒng),旨在培養(yǎng)學(xué)生的創(chuàng)新能力和實(shí)踐能力[6]。系統(tǒng)的總體設(shè)計(jì)結(jié)構(gòu)如圖1所示:
圖1 系統(tǒng)總體結(jié)構(gòu)
軟件平臺的構(gòu)建的大致分為以下幾個(gè)部分:
(1)搭建嵌入式交叉開發(fā)環(huán)境。
(2)移植Bootloader。 嵌入式Linux引導(dǎo)過程要通過Bootloader來完成,通常包括兩個(gè)方面,一方面用來進(jìn)行設(shè)備初始化,另一方面用來啟動(dòng)內(nèi)核。
(3)移植Linux內(nèi)核,Linux內(nèi)核的移植需要對內(nèi)核來進(jìn)行裁剪,建立根文件系統(tǒng)。
(4)進(jìn)行Qt/Embedded的在ARM平臺上的移植。該過程比較復(fù)雜,大致要經(jīng)過X86和目標(biāo)平臺的配置和安裝、tslib觸摸屏和應(yīng)用層之間的適配并進(jìn)行校準(zhǔn)以及Qt-creator集成開發(fā)環(huán)境的安裝及配置[7]。
(5)編寫相應(yīng)的驅(qū)動(dòng)程序,實(shí)現(xiàn)在對硬件的調(diào)用。
(6)利用Qt語言編寫相應(yīng)程序,嵌入式實(shí)驗(yàn)室的演示系統(tǒng)。軟件平臺的總體框圖如圖2所示下:
圖2 系統(tǒng)軟件總體框圖
本文所設(shè)計(jì)演示系統(tǒng),主要完成嵌入式實(shí)驗(yàn)的演示,實(shí)現(xiàn)了以下幾個(gè)方面的功能:
(1)設(shè)計(jì)了眾多的UI界面;
(2)可調(diào)用虛擬鍵盤來進(jìn)行登錄操作;
(3)實(shí)現(xiàn)了較多的實(shí)驗(yàn)項(xiàng)目供學(xué)生選擇使用;
(4)可以在多界面之間自由切換;
(5)提供了豐富的實(shí)驗(yàn)項(xiàng)目。
具體的實(shí)現(xiàn)流程如圖3所示:
圖3 程序運(yùn)行流程圖
嵌入式實(shí)驗(yàn)系統(tǒng)主要完成了以下功能模塊,登錄界面模塊、基礎(chǔ)控制實(shí)驗(yàn)?zāi)K、擴(kuò)展實(shí)驗(yàn)?zāi)K、綜合、設(shè)計(jì)性實(shí)驗(yàn)?zāi)K,每個(gè)模塊的具體功能實(shí)現(xiàn)如下:
選擇界面模塊:通過登錄界面用來實(shí)現(xiàn)該演示系統(tǒng)的登錄操作,利用Qt中mousePressEvent()事件調(diào)用修改好的syszuxpinyin虛擬鍵盤來輸入帳號和密碼,利用emit來實(shí)驗(yàn)不同窗口間消息的傳遞,并加入數(shù)據(jù)庫以便對學(xué)生進(jìn)行有效的管理。登錄成功后進(jìn)入實(shí)驗(yàn)選擇界面,可以選擇對應(yīng)的實(shí)驗(yàn)?zāi)K查看具體的演示功能和效果。
基礎(chǔ)控制實(shí)驗(yàn)?zāi)K:主要完成對實(shí)驗(yàn)箱的外圍硬件的控制實(shí)驗(yàn),旨在讓學(xué)生了解嵌入式系統(tǒng)中對硬件的基本控制原理、相應(yīng)的功能以及基本的實(shí)現(xiàn)流程。在基礎(chǔ)控制實(shí)驗(yàn)?zāi)K中設(shè)計(jì)了LED燈、點(diǎn)陣屏、蜂鳴器、LCD、網(wǎng)卡等9個(gè)對實(shí)驗(yàn)箱硬件模塊的基本的控制實(shí)驗(yàn),并且還預(yù)留了一定的空間可以對實(shí)驗(yàn)內(nèi)容進(jìn)一步的擴(kuò)展。在實(shí)驗(yàn)中需要編寫和開發(fā)各實(shí)驗(yàn)?zāi)K對應(yīng)的驅(qū)動(dòng)程序,并加載到內(nèi)核中以便于調(diào)用,實(shí)現(xiàn)完成后可以退出并返回選擇界面。
擴(kuò)展性實(shí)驗(yàn)?zāi)K:實(shí)驗(yàn)箱外圍有各種不同接口,可以連接多種設(shè)備以實(shí)現(xiàn)不同的功能,同時(shí)方便學(xué)生進(jìn)行擴(kuò)展,學(xué)生通過擴(kuò)展實(shí)驗(yàn)對外圍功能模塊的擴(kuò)展和調(diào)用有進(jìn)一步的認(rèn)識和理解,從而為后面更復(fù)雜的系統(tǒng)奠定良好的基礎(chǔ)。擴(kuò)展性實(shí)驗(yàn)主要實(shí)現(xiàn)了對包括了GPS、 WIFI、RFID、攝像頭等需要外接擴(kuò)展模塊的控制實(shí)驗(yàn)。該部分實(shí)驗(yàn)需要掌握不同模塊的實(shí)現(xiàn)方法、協(xié)議以及接口函數(shù),有的還需要進(jìn)行一定的移植處理,以實(shí)現(xiàn)模塊對應(yīng)的功能。
綜合設(shè)計(jì)性實(shí)驗(yàn)?zāi)K:為了充分鍛煉學(xué)生綜合應(yīng)用知識的能力和創(chuàng)新能力,開發(fā)了一定的綜合性和設(shè)計(jì)性實(shí)驗(yàn)來加入到實(shí)驗(yàn)演示系統(tǒng)當(dāng)中。主要包括藍(lán)牙自動(dòng)傳輸控制系統(tǒng)、嵌入式視頻監(jiān)控系統(tǒng)、基于Zigbee網(wǎng)絡(luò)的智能家居監(jiān)控系統(tǒng)、基于WEB和GPRS的智能家居遠(yuǎn)程監(jiān)控系統(tǒng)、GPS衛(wèi)星定位系統(tǒng)等,并且預(yù)留一定的空間,為學(xué)生在自學(xué)和畢業(yè)設(shè)計(jì)過程中開發(fā)的一些好的項(xiàng)目能夠加入到該系統(tǒng)中來進(jìn)行擴(kuò)充。以藍(lán)牙自動(dòng)傳輸實(shí)驗(yàn)為例,藍(lán)牙自動(dòng)傳輸控制系統(tǒng)實(shí)現(xiàn),需要在ARM平臺上完成藍(lán)牙協(xié)議的移植工作。自動(dòng)發(fā)送是整個(gè)系統(tǒng)的核心功能。設(shè)置所要發(fā)送文件,點(diǎn)擊發(fā)送按鈕, 系統(tǒng)會(huì)自動(dòng)搜索附近的藍(lán)牙設(shè)備,搜索到藍(lán)牙設(shè)備后會(huì)自動(dòng)與之進(jìn)行連接, 待搜索到的藍(lán)牙設(shè)備同意服務(wù)請求后,系統(tǒng)會(huì)將文件自動(dòng)地發(fā)送給搜索到的藍(lán)牙設(shè)備。點(diǎn)擊退出按鈕, 系統(tǒng)會(huì)自動(dòng)停止并退出該系統(tǒng)。重新進(jìn)入系統(tǒng)后設(shè)定文件點(diǎn)擊發(fā)送后,系統(tǒng)將會(huì)進(jìn)行新一輪的搜索,并發(fā)送文件。從而實(shí)現(xiàn)藍(lán)牙的自動(dòng)傳輸文件的功能,該系統(tǒng)可以有效運(yùn)用到廣告的推送,文件的傳輸?shù)确矫妫哂幸欢ǖ膶?shí)用價(jià)值。
本文以實(shí)驗(yàn)教學(xué)的需求為出發(fā)點(diǎn),應(yīng)用目前較為成熟和流行的嵌入式技術(shù),充分發(fā)揮ARM9實(shí)驗(yàn)科研教學(xué)平臺外圍控制接口的功能,對外圍數(shù)據(jù)通信接口和GPIO接口進(jìn)行了擴(kuò)展,采用ARM+linux+Qt/Embedded的設(shè)計(jì)方案,將硬件、操作、界面設(shè)計(jì)有效的結(jié)合起來,完成了功能完善的實(shí)驗(yàn)系統(tǒng),并將該實(shí)驗(yàn)系統(tǒng)應(yīng)用于日常的教學(xué)當(dāng)中,對學(xué)生的學(xué)習(xí)和理解該門課程提供了極大的幫助,并且為學(xué)生進(jìn)行二次開發(fā)完成更加完善的應(yīng)用系統(tǒng)提供了借鑒,具有一定的實(shí)用價(jià)值和教學(xué)意義。