《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于ARM控制器LPC2214的嵌入式系統(tǒng)研究與開(kāi)發(fā)
基于ARM控制器LPC2214的嵌入式系統(tǒng)研究與開(kāi)發(fā)
摘要: 嵌入式系統(tǒng)以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ)。ARM(Advanced RSIC Machines)是一家出售芯片設(shè)計(jì)技術(shù)授權(quán)的公司,目前其設(shè)計(jì)的ARM微處理器占據(jù)了32位RISC(Reduced Instruction Set Computing)微處理器75%以上的市場(chǎng)份額。
Abstract:
Key words :

       1  嵌入式系統(tǒng)與ARM

       嵌入式系統(tǒng)以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ)。ARM(Advanced RSIC Machines)是一家出售芯片設(shè)計(jì)技術(shù)授權(quán)的公司,目前其設(shè)計(jì)的ARM微處理器占據(jù)了32位RISC(Reduced Instruction Set Computing)微處理器75%以上的市場(chǎng)份額。

       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(以下簡(jiǎn)稱LPC2214) 是基于ARM7TDMI-S的高性能32位RISC微控制器,屬于V4T版本。

 

      2.1  ARM處理器內(nèi)核

       現(xiàn)代的VLS技術(shù)把附加的系統(tǒng)部件與內(nèi)核集成在同一芯片中。其中,內(nèi)核是最為密集和復(fù)雜的部件,是確定一個(gè)新系統(tǒng)時(shí)選擇的關(guān)鍵。LPC2214的內(nèi)核是ARM7TDMI(圖1)的可綜合版本(軟核)。字母意義分別是:T-高密度16位的Thumb指令擴(kuò)展、D-支持片上調(diào)試、M-短時(shí)間64位乘法指令、I-EmbededICE觀察點(diǎn)硬件。


 

LPC2214的內(nèi)核是ARM7TDMI

                                                                        圖   1

       2.2  ARM 微控制器

      
嵌入式微控制器(單片機(jī))就是將整個(gè)計(jì)算機(jī)集成到一塊芯片中。各廠商購(gòu)買(mǎi)ARM公司的核心授權(quán)后,擴(kuò)展與各自領(lǐng)域相關(guān)的片內(nèi)外圍電路,并集成在芯片中,使基于ARM處理器核的芯片多元化。設(shè)計(jì)者應(yīng)盡可能采用片內(nèi)外圍電路完成所需的功能,來(lái)簡(jiǎn)化系統(tǒng)設(shè)計(jì),提高系統(tǒng)可靠性。LPC2214微控制器(如圖2)通過(guò)AHB 到VPB 的橋?qū)PB總線與AHB 總線相連,片內(nèi)外設(shè)(中斷控制器除外)連接在VPB總線上。LPC2214具有:多個(gè)串行接口,2 個(gè)16C550 工業(yè)標(biāo)準(zhǔn)UART、高速I(mǎi)2C 接口(400 kHz)、2 個(gè)SPI 接口;8路10 位A/D 轉(zhuǎn)換器(0~3V測(cè)量范圍),轉(zhuǎn)換時(shí)間可低至2.44uS;2個(gè)32 位定時(shí)器(帶4 路捕獲和4 路比較通道);PWM 單元(6 路輸出);實(shí)時(shí)時(shí)鐘和看門(mén)狗;112個(gè)通用I/O 口(可承受5V 電壓);2 個(gè)低功耗模式,空閑和掉電;片上集成高速閃存。

LPC2214微控制器

                                                                  圖   2

       稅控收款機(jī)是一種帶有計(jì)稅功能的電子收款機(jī),它內(nèi)部裝有自動(dòng)記錄但不能更改和抹掉的計(jì)稅存儲(chǔ)器。稅控收款機(jī)由以下幾部分組成:中文顯示系統(tǒng)、中文打印系統(tǒng)、專(zhuān)用稅控處理系統(tǒng)、外圍設(shè)備驅(qū)動(dòng)、電源、帶物理安全保證的機(jī)箱。稅控機(jī)制由以IC卡為基礎(chǔ)的發(fā)行、管理、申報(bào)、維護(hù)、經(jīng)營(yíng)等系統(tǒng)組成。有關(guān)數(shù)據(jù)由稅務(wù)部門(mén)用專(zhuān)用IC卡讀出,以便稽查。

       此系統(tǒng)充分合理地利用了其片內(nèi)實(shí)時(shí)時(shí)鐘、外部存儲(chǔ)器接口、UART等其它外設(shè)接口。片上閃存作為用戶程序的存儲(chǔ)空間,其高速零等待特性保證系統(tǒng)的實(shí)時(shí)運(yùn)行。其片上程序保護(hù)機(jī)制,防止代碼被任意更改和復(fù)制。整個(gè)系統(tǒng)的設(shè)計(jì)結(jié)構(gòu)簡(jiǎn)潔,極具競(jìng)爭(zhēng)優(yōu)勢(shì)。


       3  系統(tǒng)移植

       ARM芯片獲得了許多實(shí)時(shí)操作系統(tǒng)(Real Time Operating System)供應(yīng)商的支持,比較知名的有:Windows CE、Linux、pSOS、VxWorks Nucleus、OSE、eCOS、μC/OS-II等,我們將在稅控收款機(jī)系統(tǒng)上移植μC/OS-II。

       3.1  μC/OS-II移植

      
LPC2214的ARM7TDMI-S內(nèi)核用ARM ADS作為編譯器移植μC/OS-II。包括以下內(nèi)容:

       ① 設(shè)置OS_CPU.H頭文件中與處理器和編譯器相關(guān)的代碼如:整數(shù)、浮點(diǎn)數(shù)、堆棧等數(shù)據(jù)類(lèi)型定義,打開(kāi)或者關(guān)閉中斷函數(shù)設(shè)置,定義堆棧增長(zhǎng)方向,任務(wù)切換的執(zhí)行代碼。

       ② 用C語(yǔ)言在OS_CPU_C.C文件中編寫(xiě)6個(gè)操作系統(tǒng)相關(guān)函數(shù):任務(wù)堆棧初始化函數(shù)OSTaskStkInit( ),μC/OS-II在執(zhí)行某些操作時(shí)調(diào)用的用戶函數(shù):OSTaskCreateHook( )、OSTaskDelHook( )、OSTaskSwHook( )、OSTaskStatHook( )、OSTimeTickHook( )

       ③ 在OS_CPU.ASM文件中用匯編語(yǔ)言編寫(xiě)四個(gè)與處理器相關(guān)的函數(shù):運(yùn)行優(yōu)先級(jí)最高的就緒任務(wù)OSStartHighRdy( )、任務(wù)級(jí)的任務(wù)切換函數(shù)OSCtxSw( )、中斷級(jí)的任務(wù)切換函數(shù)OSIntCtxSw( )、中斷服務(wù)函數(shù)OSTickISR( )。這里介紹的是通用方法,在具體的項(xiàng)目中還有很多工作要作。

       3.2  建立完整的嵌入式實(shí)時(shí)系統(tǒng)

       μC/OS-II提供的僅僅是一個(gè)任務(wù)調(diào)度的內(nèi)核,要想實(shí)現(xiàn)一個(gè)以LPC2214為主控單元,應(yīng)用于稅控收款機(jī)的嵌入式實(shí)時(shí)多任務(wù)操作系統(tǒng),還需相當(dāng)多的擴(kuò)展工作。主要包括:

       ① 建立文件系統(tǒng)相關(guān)的API函數(shù):如初始化文件函數(shù)InitOSFile( )、通過(guò)文件緩沖區(qū)讀寫(xiě)數(shù)據(jù)函數(shù)ReadOSFile( )和WriteOSFile( )、打開(kāi)和關(guān)閉文件函數(shù)OpenOSFile( )和CloseOSFile( )。

       ② 為外部設(shè)備建立驅(qū)動(dòng)程序并規(guī)范相應(yīng)的API函數(shù)。外設(shè)驅(qū)動(dòng)程序可以對(duì)系統(tǒng)提供訪問(wèn)外圍設(shè)備接口,把操作系統(tǒng)和外圍設(shè)備分離開(kāi)來(lái)。當(dāng)外圍設(shè)備改變的時(shí)候,只需更換相應(yīng)的驅(qū)動(dòng)程序,不必修改操作系統(tǒng)的內(nèi)核以及運(yùn)行在操作系統(tǒng)的軟件。如:液晶驅(qū)動(dòng)、鍵盤(pán)驅(qū)動(dòng)、UART接口驅(qū)動(dòng)等。

       ③ 創(chuàng)建圖表用戶接口GUI函數(shù),實(shí)現(xiàn)Unicode字庫(kù)的顯示及相關(guān)函數(shù)。

       ④ 系統(tǒng)的消息隊(duì)列。消息相關(guān)函數(shù)在各個(gè)任務(wù)之間、用戶應(yīng)用程序之間以及用戶應(yīng)用程序和系統(tǒng)的各個(gè)任務(wù)之間通常是通過(guò)消息來(lái)傳遞信息和同步的。

       ⑤ 稅控收款機(jī)軟件設(shè)計(jì)采用模塊化思想,其用戶程序的開(kāi)發(fā)大體分為如下部分:主程序、自檢診斷模塊、IC卡讀寫(xiě)模塊、UART通訊模塊、開(kāi)票模塊、液晶顯示和按鍵等人機(jī)接口模塊。

 

框圖

                                                                圖   3


       4 ARM體系中的調(diào)試

       調(diào)試階段在整個(gè)系統(tǒng)開(kāi)發(fā)過(guò)程中所占的比重越來(lái)越大,因此擁有高效、強(qiáng)大的調(diào)試系統(tǒng)可以大大減少開(kāi)發(fā)時(shí)間,加快產(chǎn)品面市時(shí)間,減輕系統(tǒng)開(kāi)發(fā)工作量。ARM體系結(jié)構(gòu)包含了完善的調(diào)試手段,下面僅介紹基于JTAG的ICE類(lèi)型調(diào)試的原理。

       4.1 基于JTAG的ICE類(lèi)型調(diào)試

 

       基于JTAG的調(diào)試系統(tǒng)結(jié)構(gòu)(圖4)包括:位于主機(jī)上的調(diào)試器、目標(biāo)系統(tǒng)、主機(jī)和目標(biāo)系統(tǒng)之間進(jìn)行分析和轉(zhuǎn)換的模塊。JTAG調(diào)試是邊界掃描方式,LPC2214微核電路部件的每個(gè)I/O引腳包含一個(gè)電路元件,此元件的接口連接到JTAG二進(jìn)制位移位寄存器上進(jìn)行測(cè)試,這樣每個(gè)引腳都被JTAG采樣或監(jiān)聽(tīng)。ARM7TDMI(圖2)的TAP控制器通過(guò)JTAG接口控制各個(gè)硬件掃描鏈,掃描鏈0可以訪問(wèn)所有外圍部件;掃描鏈1是掃描鏈0的一部分,它可以訪問(wèn)數(shù)據(jù)總線和控制總線BREAKPT;掃描鏈2主要用于訪問(wèn)Embedded ICE邏輯部件中的各寄存器。ARM7TDMI調(diào)試接口建立在IEEE1149-1190標(biāo)準(zhǔn)之上,該標(biāo)準(zhǔn)定義了訪問(wèn)芯片的5個(gè)引腳串行通訊協(xié)議,可以通過(guò)5個(gè)引腳訪問(wèn)芯片內(nèi)部,從而可以進(jìn)行調(diào)試和測(cè)試。JTAG調(diào)試過(guò)程:

       ① 設(shè)置程序斷點(diǎn)、數(shù)據(jù)斷點(diǎn)或相應(yīng)外部請(qǐng)求,以便進(jìn)入調(diào)試狀態(tài);

       ② 當(dāng)程序運(yùn)行到斷點(diǎn)指令時(shí),處理器進(jìn)入調(diào)試狀態(tài),此時(shí)斷點(diǎn)指令還沒(méi)執(zhí)行;

       ③ 在調(diào)試狀態(tài)用戶執(zhí)行所需的調(diào)試能,如停止目標(biāo)程序執(zhí)行、查看目標(biāo)內(nèi)核狀態(tài)、查看和修改存儲(chǔ)器的內(nèi)容等。

基于JTAG的調(diào)試系統(tǒng)結(jié)構(gòu)

                                                                           圖   4

       5.結(jié)束語(yǔ) 

        
本文通過(guò)對(duì)嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-II中的關(guān)鍵技術(shù)及ARM體系組結(jié)構(gòu)和調(diào)試的分析,結(jié)合LPC2214的硬件結(jié)構(gòu)和運(yùn)行環(huán)境,說(shuō)明了μC/OS-II的移植、PLPC2214的應(yīng)用和調(diào)試。

 

參考文獻(xiàn):
1,Jean J. Labrosse 著,邵貝貝等譯,μC/OS-Ⅱ__源碼公開(kāi)的嵌入式實(shí)時(shí)操作系統(tǒng).北京:中國(guó)電力出版社,2001.
2,周立功 等編著,ARM微控制器基礎(chǔ)與實(shí)戰(zhàn).北京:北京航空航天大學(xué)出版社,2003-11.

 
此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。