莊志惠
(廣東技術(shù)師范學(xué)院 自動(dòng)化學(xué)院,廣東 廣州 510665)
基于ARM的嵌入式技術(shù)課程實(shí)驗(yàn)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
莊志惠
(廣東技術(shù)師范學(xué)院 自動(dòng)化學(xué)院,廣東 廣州 510665)
文章研究的內(nèi)容是建立一種基于ARM7核心處理器和操作系統(tǒng)μC/OS-II的嵌入式技術(shù)課程實(shí)驗(yàn)系統(tǒng),為嵌入式系統(tǒng)的后續(xù)硬件軟件的開(kāi)發(fā)打下基礎(chǔ)。對(duì)嵌入式技術(shù)課程實(shí)驗(yàn)教學(xué)系統(tǒng)硬件軟件的功能設(shè)計(jì)與實(shí)現(xiàn)及對(duì)實(shí)驗(yàn)項(xiàng)目的設(shè)置,經(jīng)過(guò)反復(fù)的實(shí)驗(yàn)測(cè)試,初步運(yùn)行表明,嵌入式系統(tǒng)實(shí)驗(yàn)教學(xué)平臺(tái)受到認(rèn)可。
嵌入式系統(tǒng);μC/OS-II操作系統(tǒng);Bootloader;ARM;實(shí)驗(yàn)系統(tǒng)
嵌入式系統(tǒng)技術(shù)是集電子、通信、計(jì)算機(jī)和自動(dòng)控制等多學(xué)科的知識(shí)與技術(shù)于一體,加上計(jì)算機(jī)技術(shù)、微電子等技術(shù)的迅速發(fā)展,嵌入式系統(tǒng)正在社會(huì)各行各業(yè)得到廣泛的應(yīng)用,從事嵌入式技術(shù)開(kāi)發(fā)和研究和人員隊(duì)伍日益壯大。嵌入式技術(shù)特別是在高等院校,成為對(duì)新技術(shù)研究和開(kāi)發(fā)最活躍群體。為了普及嵌入式技術(shù)知識(shí),更好地培養(yǎng)嵌入式技術(shù)系統(tǒng)開(kāi)發(fā)專業(yè)人才,解決當(dāng)前嵌入式系統(tǒng)技術(shù)工程師較少的問(wèn)題,設(shè)計(jì)出合適的基于ARM的嵌入式技術(shù)課程教學(xué)實(shí)驗(yàn)系統(tǒng)成為當(dāng)務(wù)之急。因此,本文根據(jù)學(xué)校教學(xué)實(shí)驗(yàn)的現(xiàn)狀及二次開(kāi)發(fā)的雙重需求,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于教學(xué)兼二次開(kāi)發(fā)的嵌入式技術(shù)課程教學(xué)實(shí)驗(yàn)系統(tǒng)。
設(shè)計(jì)的基于ARM的嵌入式技術(shù)課程實(shí)驗(yàn)系統(tǒng),可以為學(xué)生學(xué)習(xí)嵌入式技術(shù)課程提供完善的案例,滿足當(dāng)前嵌入式技術(shù)課程的實(shí)驗(yàn)教學(xué)的需要。本文主要對(duì)當(dāng)前ARM的嵌入式技術(shù)課程實(shí)驗(yàn)系統(tǒng)的現(xiàn)狀和發(fā)展趨勢(shì),設(shè)計(jì)出一款基于ARM的嵌入式技術(shù)課程實(shí)驗(yàn)教學(xué)系統(tǒng),并對(duì)Bootloader的移植、μC/OS-II操作系統(tǒng)內(nèi)核應(yīng)用、UDP通訊、MiniGUI及多路數(shù)據(jù)采集的實(shí)現(xiàn)。
1.1 硬件平臺(tái)構(gòu)建實(shí)現(xiàn)
本文研究的硬件是基于Samsung S3C44B0X微處理器(ARM7)為核心的主板,其接口非常豐富,可滿足嵌入式技術(shù)系統(tǒng)硬件的需要,特別是在嵌入式技術(shù)課程教學(xué)實(shí)驗(yàn)系統(tǒng)的應(yīng)用。系統(tǒng)采用主頻可高達(dá)66MHz的Samsung S3C44B0X作為處理器芯片,其內(nèi)部集成了各類系統(tǒng)接口,從而在最大程度上降低系統(tǒng)開(kāi)發(fā)時(shí)間及成本,減少外圍器件的使用。硬件平臺(tái)架構(gòu)實(shí)現(xiàn)如圖1所示。硬件平臺(tái)構(gòu)建的主要包括以下3個(gè)模塊:(1)最小系統(tǒng):電源電路、晶振電路、復(fù)位電路和存儲(chǔ)系統(tǒng);(2)人機(jī)對(duì)話:觸摸屏、液晶顯示及音頻模塊;(3)通信模塊:串行接口、JTAG調(diào)試接口、USB模塊和Internet模塊。
圖1 硬件平臺(tái)架構(gòu)
1.2 軟件平臺(tái)設(shè)計(jì)實(shí)現(xiàn)
嵌入式系統(tǒng)的軟件構(gòu)建,其兩大難點(diǎn)之一就是操作系統(tǒng)的移植。主要包括:(1)Bootloader的設(shè)計(jì);(2)μC/OS-II的移植;(3)根文件系統(tǒng)的開(kāi)發(fā)。
1.2.1 Bootloader的設(shè)計(jì)
ARM系統(tǒng)軟件開(kāi)發(fā)用采用ADS1.2來(lái)完成Bootloader程序的設(shè)計(jì)。Bootloader程序設(shè)計(jì)分為兩部分,(1)用匯編語(yǔ)言來(lái)實(shí)現(xiàn):與S3C44B0X硬件初始化相關(guān)的任務(wù)及程序編寫(xiě),包括屏蔽中斷、存儲(chǔ)器系統(tǒng)(NOR FLASH,RAM,PSRAM)初始化,堆棧初始化、目標(biāo)板等;(2)用C語(yǔ)言來(lái)實(shí)現(xiàn):完成支持串行通信協(xié)議(即串口初始化),支持網(wǎng)絡(luò)通信協(xié)議(網(wǎng)絡(luò)控制初始化),把μC/OS-II的內(nèi)核映像文件及根文件系統(tǒng)映像文件引導(dǎo)到RAM中運(yùn)行的任務(wù)。Bootloader程序流程如圖2所示。
1.2.2 μC/OS-II的移植
移植的文件分為兩類:(1)STARTUP目錄下的系統(tǒng)初始化、配置等文件;(2)μC/OS-II的全部源碼。編寫(xiě)多任務(wù)程序來(lái)測(cè)試移植是否成功。確保μC/OS-II可以正常運(yùn)行,除上述的移植工作外,其硬件初始化和配置文件也必須移植,而配置文件中必須包含時(shí)鐘、中斷處理、串口通信等功能函數(shù)。在主程序中編寫(xiě)應(yīng)用程序的基本框架,應(yīng)包含系統(tǒng)初始化和多任務(wù)的創(chuàng)建、啟動(dòng)等。
圖2 Bootloader程序流程
1.2.3 根文件系統(tǒng)的開(kāi)發(fā)
本系統(tǒng)所需要的根文件系統(tǒng)與μC/OS-II系統(tǒng)的根文件系統(tǒng)相似,它要盡可能精簡(jiǎn),僅包括系統(tǒng)運(yùn)行所必需的應(yīng)用程序、庫(kù)及相關(guān)文件的最小集合。根據(jù)需要,ARM下的嵌入式根文件系統(tǒng)主要內(nèi)容有:(1)實(shí)用程序;(2)庫(kù)文件;(3)設(shè)備文件;(4)配置文件。而根文件系統(tǒng)的開(kāi)發(fā)應(yīng)用,主要是對(duì)JFFS2類型根文件系統(tǒng)映像方法的編寫(xiě)。
本文所設(shè)計(jì)的嵌入式技術(shù)課程教學(xué)實(shí)驗(yàn)系統(tǒng)主要是針對(duì)本科生的嵌入式系統(tǒng)課程的學(xué)習(xí),對(duì)該系統(tǒng)設(shè)置相關(guān)實(shí)驗(yàn),通過(guò)實(shí)驗(yàn)應(yīng)用來(lái)著重說(shuō)明在μC/OS-II上擴(kuò)展的嵌入式技術(shù)實(shí)驗(yàn)系統(tǒng)的部分功能,對(duì)嵌入式技術(shù)實(shí)驗(yàn)教學(xué)的內(nèi)容進(jìn)行設(shè)計(jì)。選取有代表性的實(shí)驗(yàn)進(jìn)行加以說(shuō)明,最后給出綜合實(shí)驗(yàn),并建立綜合的應(yīng)用程序。以下將設(shè)置的實(shí)驗(yàn)內(nèi)容作詳細(xì)說(shuō)明。
2.1 鍵盤(pán)及數(shù)碼管控制實(shí)驗(yàn)
鍵盤(pán)和數(shù)碼管是實(shí)驗(yàn)教學(xué)中最常見(jiàn)的模塊,學(xué)生通過(guò)對(duì)鍵盤(pán)和數(shù)碼管的操作,作為加深對(duì)硬件的了解及學(xué)習(xí)硬件的控制方法,為后續(xù)實(shí)驗(yàn)打下良好的基礎(chǔ)。系統(tǒng)中的鍵盤(pán)和數(shù)碼管模塊是通過(guò)ARM的I2C接口外接數(shù)碼管和ZLG7290鍵盤(pán)控制器來(lái)實(shí)現(xiàn),通過(guò)本實(shí)驗(yàn)學(xué)生能掌握I2C總線協(xié)議標(biāo)準(zhǔn)以及通過(guò)I2C總線對(duì)外接芯片進(jìn)行操作的方法。對(duì)鍵盤(pán)及數(shù)碼管驅(qū)動(dòng)用C語(yǔ)言編寫(xiě)實(shí)現(xiàn)。
2.2 音頻控制實(shí)驗(yàn)
本實(shí)驗(yàn)主要對(duì)Samsung S3C44B0X自帶的IIS音頻的應(yīng)用、DMA數(shù)據(jù)傳輸方式應(yīng)用。
2.3 繪圖控制實(shí)驗(yàn)
本實(shí)驗(yàn)主要是應(yīng)用系統(tǒng)繪制API函數(shù),認(rèn)識(shí)繪圖設(shè)備上下文在多任務(wù)操作系統(tǒng)中的應(yīng)用。掌握繪圖設(shè)備上下文(DC)在屏幕上繪制圖形(一個(gè)圓和一個(gè)圓角矩形)。掌握繪制動(dòng)畫(huà)防止閃爍的基本方法,實(shí)現(xiàn)無(wú)閃爍動(dòng)畫(huà)。而在μC/ OS-II系統(tǒng)下,繪圖必須通過(guò)使用繪圖設(shè)備上下文來(lái)實(shí)現(xiàn)。
2.4 系統(tǒng)消息循環(huán)實(shí)驗(yàn)
本實(shí)驗(yàn)應(yīng)用消息隊(duì)列接收鍵盤(pán)任務(wù)發(fā)出的按鍵信息,把對(duì)應(yīng)按鍵的信息顯示在液晶屏及PC機(jī)終端。而在多任操作系統(tǒng)中,任務(wù)之間的通信是通過(guò)發(fā)送消息來(lái)實(shí)現(xiàn)。消息隊(duì)列是操作系統(tǒng)μC/OS-II的一種通信方式,它可以使一個(gè)任務(wù)或是中斷響應(yīng)程序向另一個(gè)任務(wù)發(fā)送以指針?lè)绞蕉x的變量。
操作系統(tǒng)μC/OS-II提供了若干對(duì)消息隊(duì)列的函數(shù),在將μC/OS-II移植到本ARM嵌入式開(kāi)發(fā)系統(tǒng)時(shí),對(duì)消息隊(duì)列相關(guān)函數(shù)移植又作了提高,使得對(duì)消息隊(duì)列的應(yīng)用更加簡(jiǎn)單容易。
2.5 文件應(yīng)用實(shí)驗(yàn)
本實(shí)驗(yàn)在操作系統(tǒng)μC/OS-II移植到ARM嵌入式技術(shù)課程實(shí)驗(yàn)系統(tǒng)時(shí),參考FAT16格式為該系統(tǒng)擴(kuò)展了一個(gè)簡(jiǎn)單易行的文件系統(tǒng),從而該操作系統(tǒng)功能變得更加強(qiáng)大,也符合當(dāng)前的嵌入式教學(xué)系統(tǒng)開(kāi)發(fā)的需要。嵌入式教學(xué)系統(tǒng)的硬件中的NAND FLASH存儲(chǔ)芯片作為嵌入式設(shè)備的固態(tài)數(shù)據(jù)存儲(chǔ)器,其存儲(chǔ)功能由文件系統(tǒng)管理。
2.6 UDP通信實(shí)驗(yàn)
在這里主要對(duì)UDP通信的原理,掌握Socket的軟件編寫(xiě)流程。Socket接口是TCP/IP協(xié)議的API,其編寫(xiě)包括:Socket建立、配置Socket、建立連接、傳輸數(shù)據(jù)、結(jié)束傳輸?shù)炔襟E。本實(shí)驗(yàn)通過(guò)觸摸屏畫(huà)圖,并在液晶屏上顯示;通過(guò)網(wǎng)絡(luò)數(shù)據(jù)傳輸,并在計(jì)算機(jī)上顯示,其屏幕上的圖形由計(jì)算機(jī)控制來(lái)清除。
2.7 MiniGUI實(shí)驗(yàn)
本實(shí)驗(yàn)主要是了解MiniGUI的基本結(jié)構(gòu)、并學(xué)會(huì)系統(tǒng)配置、編譯安裝,最后用HelloWorld實(shí)例進(jìn)行測(cè)試。
2.8 多通道數(shù)據(jù)采集實(shí)驗(yàn)
本實(shí)驗(yàn)是對(duì)每路的A/D轉(zhuǎn)換結(jié)果進(jìn)行監(jiān)視,在液晶屏上用條形圖的長(zhǎng)短來(lái)表示,直觀地顯示每路模擬輸入電壓的大小。實(shí)驗(yàn)要采用多任務(wù)編程方法。通過(guò)文本框給每路A/D設(shè)置上限,當(dāng)某路輸入超出上限值,條形圖中超出的部分將以閃動(dòng)的方式顯示。
通過(guò)本文的研究,嵌入式技術(shù)課程實(shí)驗(yàn)教學(xué)系統(tǒng)達(dá)到了預(yù)期的設(shè)計(jì)效果,學(xué)生通過(guò)相應(yīng)的實(shí)驗(yàn)操作逐漸過(guò)渡到課題設(shè)計(jì),學(xué)生在后續(xù)期的項(xiàng)目開(kāi)發(fā),會(huì)有更多的選擇,也將提高學(xué)生的學(xué)習(xí)興趣,從而實(shí)現(xiàn)了一個(gè)可用于實(shí)驗(yàn)和開(kāi)發(fā)的嵌入式平臺(tái)。
[1]周立功,王祖麟,陳明計(jì),等.ARM嵌入式系統(tǒng)基礎(chǔ)教程[M].北京:北京航空航天大學(xué)出版社,2005.
[2]鄭靈翔.嵌入式系統(tǒng)設(shè)計(jì)與應(yīng)用開(kāi)發(fā)[M].北京:北京航空航天大學(xué)出版社,2006.
[3]田澤.嵌入式系統(tǒng)開(kāi)發(fā)與應(yīng)用教程[M].北京:北京航空航天大學(xué)出版社,2005.
[4]邵貝貝.嵌入式實(shí)時(shí)操作系統(tǒng)uC/OS-II [M].2版.北京:北京航空航天大學(xué)出版社,2003.
[5]黃燕平.uC/OS ARM移植要點(diǎn)詳解 [M].北京:北京航空航天大學(xué)出版社,2005.
[6]韓媛媛.嵌入式系統(tǒng)開(kāi)發(fā)技術(shù)課程的教學(xué)研究與實(shí)踐[J].中外企業(yè)家,2016(29):174.
[7]楊澤林,何莉,陳亮文.ARM嵌入式系統(tǒng)課程教學(xué)輔助系統(tǒng)的設(shè)計(jì)與應(yīng)用[J].計(jì)算機(jī)時(shí)代,2017(3):40-43.
[8]陳豹.嵌入式系統(tǒng)課程教學(xué)方法實(shí)踐與探索[J].吉林省教育學(xué)院學(xué)報(bào),2015(1):77-78.
[9]ZIKUN T.ARM Developer Suite[Z].Vesrion1.2.Advanced RISC Machines Ltd., 2000.
[10]SAMSUNG Corporation.S3C44B0X RISC Microprocessor Data Sheet[EB/OL].(2017-01-10)[2017-08-10].http://www.alldatasheet. com/view.jsp?Searchword=S3C44B0X01.
Design and implementation of experimental system of embedded technology course based on ARM
Zhuang Zhihui
(Automation School of Guangdong Polytechnic Normal University, Guangzhou 510665, China)
The content of this paper is to build an embedded technology course experiment system based on ARM7 core processor and operating system μC/OS-II, which lays the foundation for the development of following hardware and software of embedded system. The design and implementation of the hardware and software functions of the experimental teaching system of embedded technology course experienced repeated experimental tests, the initial operation shows that experimental teaching platform of embedded system is recognized.
embedded system; μC/OS-II operating system; Bootloader; ARM; experimental system
莊志惠(1980— ),男,廣東揭西,碩士,實(shí)驗(yàn)師;研究方向:計(jì)算機(jī)控制技術(shù),電氣新技術(shù)。