基于ARM控制器LPC2214的嵌入式系統(tǒng)研究與開發(fā)
基于ARM控制器LPC2214的嵌入式系統(tǒng)研究與開發(fā)
張勝茂
(華東師范大學軟件學院 上?!?00062)
摘 要:本文首先分析了ARM體系結(jié)構(gòu),重點介紹了LPC2214的組成并舉了應用實例,然后分析了μC/OS-II的移植,最后說明了LPC2214的調(diào)試。
關鍵詞:ARM;μC/OS-II;嵌入式系統(tǒng);LPC2214
Researching and Exploiting Embedded System Based on ARM Controller LPC2214
本文于2005年3月9日收到。張勝茂:碩士生,主要研究方向:嵌入式系統(tǒng)研究與開發(fā)。
1 嵌入式系統(tǒng)與ARM
嵌入式系統(tǒng)以應用為中心、以計算機技術為基礎,軟硬件可裁剪、適應應用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統(tǒng)。
ARM(Advanced RSIC Machines)是一家出售芯片設計技術授權的公司,目前其設計的ARM微處理器占據(jù)了32位RISC(Reduced Instruction Set Computing)微處理器75%以上的市場份額。
2 ARM體系結(jié)構(gòu)
ARM已經(jīng)從V3發(fā)展到V6。目前流行的ARM芯片內(nèi)核有ARM7TDMI、StrongARM、ARM720T、ARM9TDMI、ARM922T、ARM940T、ARM946T、ARM966T、ARM10TDMI等。Philips LPC2214(以下簡稱LPC2214) 是基于ARM7TDMI-S的高性能32位RISC微控制器,屬于V4T版本。
2.1 ARM處理器內(nèi)核
現(xiàn)代的VLS技術把附加的系統(tǒng)部件與內(nèi)核集成在同一芯片中。其中,內(nèi)核是最為密集和復雜的部件,是確定一個新系統(tǒng)時選擇的關鍵。LPC2214的內(nèi)核是ARM7TDMI(圖1)的可綜合版本(軟核)。字母意義分別是:T-高密度16位的Thumb指令擴展、D-支持片上調(diào)試、M-短時間64位乘法指令、I-EmbededICE觀察點硬件。
2.2 ARM 微控制器
嵌入式微控制器(單片機)就是將整個計算機集成到一塊芯片中。各廠商購買ARM公司的核心授權后,擴展與各自領域相關的片內(nèi)外圍電路,并集成在芯片中,使基于ARM處理器核的芯片多元化。設計者應盡可能采用片內(nèi)外圍電路完成所需的功能,來簡化系統(tǒng)設計,提高系統(tǒng)可靠性。LPC2214微控制器(如圖2)通過AHB 到VPB 的橋?qū)PB總線與AHB 總線相連,片內(nèi)外設(中斷控制器除外)連接在VPB總線上。LPC2214具有:多個串行接口,2 個16C550 工業(yè)標準UART、高速I2C 接口(400 kHz)、2 個SPI 接口;8路10 位A/D 轉(zhuǎn)換器(0~3V測量范圍),轉(zhuǎn)換時間可低至2.44uS;2個32 位定時器(帶4 路捕獲和4 路比較通道);PWM 單元(6 路輸出);實時時鐘和看門狗;112個通用I/O 口(可承受5V 電壓);2 個低功耗模式,空閑和掉電;片上集成高速閃存。
稅控收款機是一種帶有計稅功能的電子收款機,它內(nèi)部裝有自動記錄但不能更改和抹掉的計稅存儲器。稅控收款機由以下幾部分組成:中文顯示系統(tǒng)、中文打印系統(tǒng)、專用稅控處理系統(tǒng)、外圍設備驅(qū)動、電源、帶物理安全保證的機箱。稅控機制由以IC卡為基礎的發(fā)行、管理、申報、維護、經(jīng)營等系統(tǒng)組成。有關數(shù)據(jù)由稅務部門用專用IC卡讀出,以便稽查。
此系統(tǒng)充分合理地利用了其片內(nèi)實時時鐘、外部存儲器接口、UART等其它外設接口。片上閃存作為用戶程序的存儲空間,其高速零等待特性保證系統(tǒng)的實時運行。其片上程序保護機制,防止代碼被任意更改和復制。整個系統(tǒng)的設計結(jié)構(gòu)簡潔,極具競爭優(yōu)勢。
3 系統(tǒng)移植
ARM芯片獲得了許多實時操作系統(tǒng)(Real Time Operating System)供應商的支持,比較知名的有:Windows CE、Linux、pSOS、VxWorks Nucleus、OSE、eCOS、μC/OS-II等,我們將在稅控收款機系統(tǒng)上移植μC/OS-II。
3.1 μC/OS-II移植
LPC2214的ARM7TDMI-S內(nèi)核用ARM ADS作為編譯器移植μC/OS-II。包括以下內(nèi)容:①設置OS_CPU.H頭文件中與處理器和編譯器相關的代碼如:整數(shù)、浮點數(shù)、堆棧等數(shù)據(jù)類型定義,打開或者關閉中斷函數(shù)設置,定義堆棧增長方向,任務切換的執(zhí)行代碼。②用C語言在OS_CPU_C.C文件中編寫6個操作系統(tǒng)相關函數(shù):任務堆棧初始化函數(shù)OSTaskStkInit( ),μC/OS-II在執(zhí)行某些操作時調(diào)用的用戶函數(shù):OSTaskCreateHook( )、OSTaskDelHook( )、OSTaskSwHook( )、OSTaskStatHook( )、OSTimeTickHook( )③在OS_CPU.ASM文件中用匯編語言編寫四個與處理器相關的函數(shù):運行優(yōu)先級最高的就緒任務OSStartHighRdy( )、任務級的任務切換函數(shù)OSCtxSw( )、中斷級的任務切換函數(shù)OSIntCtxSw( )、中斷服務函數(shù)OSTickISR( )。這里介紹的是通用方法,在具體的項目中還有很多工作要作。
3.2 建立完整的嵌入式實時系統(tǒng)
μC/OS-II提供的僅僅是一個任務調(diào)度的內(nèi)核,要想實現(xiàn)一個以LPC2214為主控單元,應用于稅控收款機的嵌入式實時多任務操作系統(tǒng),還需相當多的擴展工作。主要包括:
?、俳⑽募到y(tǒng)相關的API函數(shù):如初始化文件函數(shù)InitOSFile( )、通過文件緩沖區(qū)讀寫數(shù)據(jù)函數(shù)ReadOSFile( )和WriteOSFile( )、打開和關閉文件函數(shù)OpenOSFile( )和CloseOSFile( )。
?、跒橥獠吭O備建立驅(qū)動程序并規(guī)范相應的API函數(shù)。外設驅(qū)動程序可以對系統(tǒng)提供訪問外圍設備接口,把操作系統(tǒng)和外圍設備分離開來。當外圍設備改變的時候,只需更換相應的驅(qū)動程序,不必修改操作系統(tǒng)的內(nèi)核以及運行在操作系統(tǒng)的軟件。如:液晶驅(qū)動、鍵盤驅(qū)動、UART接口驅(qū)動等。
?、蹌?chuàng)建圖表用戶接口GUI函數(shù),實現(xiàn)Unicode字庫的顯示及相關函數(shù)。
?、芟到y(tǒng)的消息隊列。消息相關函數(shù)在各個任務之間、用戶應用程序之間以及用戶應用程序和系統(tǒng)的各個任務之間通常是通過消息來傳遞信息和同步的。
?、荻惪厥湛顧C軟件設計采用模塊化思想,其用戶程序的開發(fā)大體分為如下部分:主程序、自檢診斷模塊、IC卡讀寫模塊、UART通訊模塊、開票模塊、液晶顯示和按鍵等人機接口模塊。
4 ARM體系中的調(diào)試
調(diào)試階段在整個系統(tǒng)開發(fā)過程中所占的比重越來越大,因此擁有高效、強大的調(diào)試系統(tǒng)可以大大減少開發(fā)時間,加快產(chǎn)品面市時間,減輕系統(tǒng)開發(fā)工作量。ARM體系結(jié)構(gòu)包含了完善的調(diào)試手段,下面僅介紹基于JTAG的ICE類型調(diào)試的原理。
4.1 基于JTAG的ICE類型調(diào)試
基于JTAG的調(diào)試系統(tǒng)結(jié)構(gòu)(圖4)包括:位于主機上的調(diào)試器、目標系統(tǒng)、主機和目標系統(tǒng)之間進行分析和轉(zhuǎn)換的模塊。JTAG調(diào)試是邊界掃描方式,LPC2214微核電路部件的每個I/O引腳包含一個電路元件,此元件的接口連接到JTAG二進制位移位寄存器上進行測試,這樣每個引腳都被JTAG采樣或監(jiān)聽。ARM7TDMI(圖2)的TAP控制器通過JTAG接口控制各個硬件掃描鏈,掃描鏈0可以訪問所有外圍部件;掃描鏈1是掃描鏈0的一部分,它可以訪問數(shù)據(jù)總線和控制總線BREAKPT;掃描鏈2主要用于訪問Embedded ICE邏輯部件中的各寄存器。ARM7TDMI調(diào)試接口建立在IEEE1149-1190標準之上,該標準定義了訪問芯片的5個引腳串行通訊協(xié)議,可以通過5個引腳訪問芯片內(nèi)部,從而可以進行調(diào)試和測試。JTAG調(diào)試過程:①設置程序斷點、數(shù)據(jù)斷點或相應外部請求,以便進入調(diào)試狀態(tài);②當程序運行到斷點指令時,處理器進入調(diào)試狀態(tài),此時斷點指令還沒執(zhí)行;③在調(diào)試狀態(tài)用戶執(zhí)行所需的調(diào)試能,如停止目標程序執(zhí)行、查看目標內(nèi)核狀態(tài)、查看和修改存儲器的內(nèi)容等。
5.結(jié)束語
本文通過對嵌入式實時操作系統(tǒng)μC/OS-II中的關鍵技術及ARM體系組結(jié)構(gòu)和調(diào)試的分析,結(jié)合LPC2214的硬件結(jié)構(gòu)和運行環(huán)境,說明了μC/OS-II的移植、PLPC2214的應用和調(diào)試。
參考文獻:
1,Jean J. Labrosse 著,邵貝貝等譯,μC/OS-Ⅱ__源碼公開的嵌入式實時操作系統(tǒng).北京:中國電力出版社,2001.
2,周立功 等編著,ARM微控制器基礎與實戰(zhàn).北京:北京航空航天大學出版社,2003-11.
評論