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