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