王 丹,張海濤(.中國(guó)電子科技集團(tuán)公司第四十七研究所,沈陽 003;.中國(guó)人民解放軍95979部隊(duì),沈陽 0045)
?
基于LPC2294處理器的嵌入式演示系統(tǒng)設(shè)計(jì)
王 丹1,張海濤2
(1.中國(guó)電子科技集團(tuán)公司第四十七研究所,沈陽110032;2.中國(guó)人民解放軍95979部隊(duì),沈陽110045)
摘 要:隨著嵌入式技術(shù)迅速發(fā)展,基于ARM的嵌入式技術(shù)應(yīng)用越來越廣泛,研究基于ARM的嵌入式系統(tǒng)已成為一個(gè)熱點(diǎn)。LPC2294是一款以ARM7TDMI-S為內(nèi)核的處理器,片上集成了豐富的接口電路,廣泛應(yīng)用于工業(yè)控制、醫(yī)療系統(tǒng)、訪問控制、POS機(jī)、通信網(wǎng)關(guān)、協(xié)議轉(zhuǎn)換器等。設(shè)計(jì)一個(gè)基于LPC2294處理器的嵌入式演示系統(tǒng),首先介紹該芯片的基本功能,然后闡述了基于該芯片的嵌入式演示系統(tǒng)的硬件設(shè)計(jì),包括電源、時(shí)鐘、JTAG及其他接口電路設(shè)計(jì),最后描述了該演示系統(tǒng)的軟件實(shí)現(xiàn),包括啟動(dòng)代碼和應(yīng)用程序設(shè)計(jì)。
關(guān)鍵詞:嵌入式系統(tǒng);LPC2294處理器;ARM處理器;硬件設(shè)計(jì);軟件設(shè)計(jì)
嵌入式系統(tǒng)是基于嵌入式處理器,由硬件和軟件組成的專用系統(tǒng),按照嵌入式處理器的不同,嵌入式系統(tǒng)可以分為基于單片機(jī)的嵌入式系統(tǒng)、基于FPGA的嵌入式系統(tǒng)、基于ARM的嵌入式系統(tǒng)等。本文設(shè)計(jì)的演示系統(tǒng)是基于ARM的嵌入式系統(tǒng),核心芯片是LPC2294[1],是NXP公司生產(chǎn)的一款基于ARM7TDMI-S[2]的32位MCU。
LPC2294支持實(shí)時(shí)仿真和嵌入式跟蹤,片上集成256KB高速Flash,16KB SRAM,多個(gè)通用GPIO口,外部存儲(chǔ)器控制器,2個(gè)通用定時(shí)器,1個(gè)看門狗定時(shí)器,1個(gè)RTC,8通道10位A/D,4個(gè)CAN控制器,2個(gè)UART接口,2個(gè)SPI接口,1個(gè)I2C接口,多個(gè)PWM通道及外部中斷。
LPC2294芯片包括豐富的外圍接口,很適合構(gòu)建一個(gè)低功耗高性能的嵌入式演示系統(tǒng)[3-4],其硬件結(jié)構(gòu)框圖如圖1所示。
圖1 硬件系統(tǒng)結(jié)構(gòu)框圖
3.1電源設(shè)計(jì)
LPC2294芯片需要雙電源供電,內(nèi)核電源1.8V,I/O電源3.3V。演示板外接電源供電5V,通過電壓轉(zhuǎn)換芯片LM1117-3.3/SOT223將5V電壓轉(zhuǎn)為3.3V電壓,用于I/O供電,電壓轉(zhuǎn)換芯片LM1117-1.8/SOT223將3.3V電壓轉(zhuǎn)為1.8V電壓,用于內(nèi)核供電。
3.2時(shí)鐘設(shè)計(jì)
該芯片最大工作時(shí)鐘為60MHz,選取的外部晶振頻率為14.7456MHz,芯片內(nèi)部PLL四倍頻后提供給ARM7內(nèi)核作為工作時(shí)鐘。通過VPB分頻器四分頻后作為APB總線上的外設(shè)時(shí)鐘。
3.3JTAG接口設(shè)計(jì)
JTAG接口電路用來實(shí)現(xiàn)芯片的調(diào)試下載功能,演示版通過20針的JTAG接口連接到PC機(jī)上。
3.4GPIO設(shè)計(jì)
GPIO最典型簡(jiǎn)單的應(yīng)用是外接LED和按鍵,GPIO輸出高低電平可以控制LED燈的亮滅,按鍵可以給GPIO輸入高低電平,實(shí)現(xiàn)GPIO輸入功能的演示。
3.5UART設(shè)計(jì)設(shè)計(jì)
芯片內(nèi)置兩個(gè)串口控制器,為了與PC主機(jī)進(jìn)行通信,需要MAX3232芯片進(jìn)行電平轉(zhuǎn)換,其電路連接如圖2所示。
3.6CAN接口設(shè)計(jì)
該芯片上集成了四個(gè)CAN控制器,為了在CAN總線上進(jìn)行數(shù)據(jù)傳輸,需要外接PCA82C250T芯片,將數(shù)字信號(hào)轉(zhuǎn)換為差分信號(hào),其電路連接如圖3所示。
圖2 串口連接
圖3 CAN接口連接
3.7EMC接口設(shè)計(jì)
LPC2294芯片內(nèi)部集成了一個(gè)外部存儲(chǔ)器控制器EMC,用來進(jìn)行外部存儲(chǔ)器擴(kuò)展,該演示系統(tǒng)通過EMC接口連接一塊SRAM芯片IS61LV51216-12T,其電路連接如圖4所示,一塊Nor Flash芯片SST39VF1601,其電路連接如圖5所示。
圖4 SRAM連接
圖5 Nor Flash連接
3.8I2C接口設(shè)計(jì)
該芯片包括一個(gè)I2C接口,通過該接口連接一塊EEPROM芯片AT24C02,其連接如圖6所示。
圖6 I2C接口連接
3.9SPI接口設(shè)計(jì)
該芯片的SPI接口與74HC595芯片連接,74HC595芯片實(shí)現(xiàn)串并轉(zhuǎn)換,驅(qū)動(dòng)1個(gè)七段數(shù)碼管顯示,電路連接如圖7所示。
圖7 SPI接口連接
3.10A/D應(yīng)用設(shè)計(jì)
該芯片包括有8路10位A/D,演示系統(tǒng)中將可調(diào)電阻連接到其中的A/D通道上,通過調(diào)節(jié)可調(diào)電阻,改變A/D的輸入電壓,實(shí)現(xiàn)模擬信號(hào)轉(zhuǎn)為數(shù)字信號(hào)。
3.11PWM控制蜂鳴器
PWM輸出端與蜂鳴器輸入端連接,通過脈沖控制蜂鳴器鳴笛。
3.12硬件演示板
硬件演示板經(jīng)過原理圖設(shè)計(jì)、PCB版圖設(shè)計(jì)、PCB制板、焊接、調(diào)試等工作后,最后實(shí)現(xiàn)該演示系統(tǒng)的硬件演示板,其實(shí)物如圖8所示。
圖8 硬件演示板實(shí)物圖
4.1ARM軟件開發(fā)環(huán)境
4.1.1 軟件程序編譯、鏈接
該演示系統(tǒng)軟件開發(fā)環(huán)境使用的是ARM公司的集成開發(fā)軟件ADS[7](ARM Developer Suite)。ADS由命令行開發(fā)工具、ARM實(shí)時(shí)庫、GUI開發(fā)環(huán)境(Code Warrior和AXD)、實(shí)用程序等組成。CodeWarrior集成開發(fā)環(huán)境(IDE)為管理和開發(fā)提供了簡(jiǎn)單多樣化的圖形用戶界面。ADS的CodeWarrior IDE為演示系統(tǒng)的軟件開發(fā)提供了ARM匯編語言、C語言的程序匯編、編譯、鏈接平臺(tái)。
4.1.2 軟件程序調(diào)試
軟件調(diào)試是軟件開發(fā)的關(guān)鍵環(huán)節(jié),軟件開發(fā)的主要時(shí)間和精力都用于代碼調(diào)試,整個(gè)演示系統(tǒng)的調(diào)試包括PC機(jī)、仿真器、演示板三個(gè)部分。PC機(jī)上運(yùn)行調(diào)試工具AXD,仿真器為Multi-ICE[8](Multi-processor in-circuit emulator),演示板上運(yùn)行軟件程序,三者之間的連接關(guān)系如圖9所示。
圖9 調(diào)試環(huán)境示意圖
該項(xiàng)目采用的調(diào)試手段如下:
(1)使用AXD軟件調(diào)試
(2)通過LED或串口顯示調(diào)試
4.1.3 軟件程序下載
LPC2294片內(nèi)集成了256KB的Flash存儲(chǔ)器,可以存放代碼,而大容量代碼則存放在外部Nor Flash中。ADS編譯鏈接后生成可執(zhí)行文件*.axf文件,通過ADS提供的fromELF工具,將ARM的可執(zhí)行文件轉(zhuǎn)換成*.hex或者*.bin格式的映射文件。然后通過Flash downloader工具把映像文件下載到LPC2294的內(nèi)部Flash或演示板上的Nor Flash存儲(chǔ)器中。
4.2演示系統(tǒng)軟件實(shí)現(xiàn)
演示系統(tǒng)的軟件實(shí)現(xiàn)包括兩個(gè)部分:?jiǎn)?dòng)代碼和應(yīng)用程序。
4.2.1 啟動(dòng)代碼
啟動(dòng)代碼是整個(gè)系統(tǒng)上電后執(zhí)行的第一段軟件代碼,主要完成硬件初始化,為軟件運(yùn)行準(zhǔn)備好硬件環(huán)境。由于啟動(dòng)代碼直接面向處理器內(nèi)核和硬件控制器進(jìn)行編程,該部分代碼的設(shè)計(jì)由匯編完成。在該演示系統(tǒng)中,啟動(dòng)代碼完成以下工作:
(1)建立中斷異常向量表
異常中斷向量表是用來存放異常處理程序的入口地址。處理器一旦發(fā)生中斷,將自動(dòng)跳轉(zhuǎn)到0x0地址開始的異常中斷向量表中的某個(gè)位置(依據(jù)中斷類型)讀取指令然后運(yùn)行。該演示系統(tǒng)的中斷向量表定義如下:
Reset
LDR PC,ResetAddr
LDR PC,UndefinedAddr
LDR PC,SWI_Addr
LDR PC,PrefetchAddr
LDR PC,DataAbortAddr
DCD 0xb9205f80
LDR PC,[PC,#-0xff0]
LDR PC,F(xiàn)IQ_Addr
為了滿足該芯片有效用戶代碼的判斷標(biāo)準(zhǔn),0x00000014地址應(yīng)該存放剩余中斷向量校驗(yàn)和的補(bǔ)碼,使所有向量的校驗(yàn)和為0,只有滿足該條件,LPC2294芯片才認(rèn)為該代碼是有效的,這是該芯片的特性,并不適合所有的ARM芯片。
(2)初始化堆棧
ARM7內(nèi)核支持6種操作模式:User Mode、FIQ Mode、IRQ Mode、Supervisor Mode、Abort Mode、Undefined Mode。啟動(dòng)代碼需要為每種模式建立堆棧,這需要初始化每個(gè)模式的堆棧指針。
(3)復(fù)制RW到RAM,將Zi段清零
(4)跳轉(zhuǎn)到C語言程序,執(zhí)行演示程序主代碼。
4.2.2 演示程序開發(fā)
啟動(dòng)代碼對(duì)系統(tǒng)的軟硬件環(huán)境進(jìn)行基本的初始化工作,在此基礎(chǔ)上,演示程序分別對(duì)各個(gè)功能模塊進(jìn)行初始化,包括模塊驅(qū)動(dòng)、外圍接口電路驅(qū)動(dòng)、特定應(yīng)用場(chǎng)景的功能實(shí)現(xiàn),最后進(jìn)行匯總形成一套完整的演示程序。該演示系統(tǒng)實(shí)現(xiàn)的功能如下:
(1)LED顯示
(2)按鍵控制GPIO輸入,或產(chǎn)生外部中斷
(3)SPI接口控制七段數(shù)碼管顯示
(4)PWM控制蜂鳴器
(5)通過I2C接口讀寫EEPROM
(6)通過UART接口與PC機(jī)進(jìn)行串口通信
(7)CAN接口之間進(jìn)行通信
(8)RTC對(duì)時(shí)間進(jìn)行測(cè)量,并定期產(chǎn)生中斷,串口顯示實(shí)時(shí)時(shí)鐘
(9)Timer定時(shí)產(chǎn)生中斷,串口打印顯示中斷次數(shù)
(10)看門狗產(chǎn)生復(fù)位
(11)通過EMC接口控制SRAM,Nor Flash工作
(12)可調(diào)電阻控制A/D輸入電壓,并由串口顯示轉(zhuǎn)換的數(shù)字信號(hào)
LPC2294是一款低功耗、高可靠性的嵌入式處理器,具有廣泛的應(yīng)用場(chǎng)景。本文在深入了解LPC2294功能的基礎(chǔ)上,設(shè)計(jì)了一個(gè)基于該處理器的嵌入式演示系統(tǒng),詳細(xì)闡述了該系統(tǒng)的軟硬件實(shí)現(xiàn)過程,文中的硬件平臺(tái)和軟件代碼都通過了功能測(cè)試。此外該系統(tǒng)還具有一定的軟件升級(jí)性,可以移植Linux、WinCE、uC/OS-II、VxWorks、Andrio等嵌入式操作系統(tǒng)。
參考文獻(xiàn):
[1]NXP Semiconductors.LPC21xx and LPC22xx User manual[DB/OL].Rev.4,2 May 2012.www.nxp.com.
[2]Advanced RISC Machines Ltd.ARM 7TDMI Data Sheet [DB/OL].1995.www.arm.com.
[3]郝新軼.基于ARM的嵌入式系統(tǒng)設(shè)計(jì)[D].長(zhǎng)春:吉林大學(xué),2002.HAO Xin-tie.Design of Embedded System Based on ARM[D].ChangChun:JiLin University,2002.
[4]鄭佃好.基于S3C2440的嵌入式系統(tǒng)及VGA輸出設(shè)計(jì)[D].成都:電子科技大學(xué),2009.ZHENG Dian-hao.Design of Embedded System Based on S3C2440 and VGA Output[D].Chengdu:University of Electronic Science and technology,2009.
[5]周立功.ARM嵌入式系統(tǒng)基礎(chǔ)教程(第2版)[M].北京:北京航空航天大學(xué)出版社,2008.ZHOU Li-gong.ARM Embedded System Essentials(Second Edition)[M].BeiJing:BeiJing University of Aeronautics and Astronautics Press,2008.
[6]杜春雷.ARM體系結(jié)構(gòu)與編程[M].北京:清華大學(xué)出版社,2003.DU Chun-lei.ARM architecture and programming[M].BeiJing:Tsinghua University Press,2003.
[7]Advanced RISC Machines Ltd.ARM Developer Suite Version 1.2[DB/OL].2000.www.arm.com.
[8]Advanced RISC Machines Ltd.Multi-ICE Version 2.2 User Guide[DB/OL].2000.www.arm.com.
Design of Embedded Demo System Based on Processor LPC2294
Wang Dan1,Zhang Haitao2
(1.The 47th Research Institute of China Electronics Technology Group Corporation,Shenyang 110032,China;2.Army 95979 of Chinese People’s Liberation Army,Shenyang 110045,China)
Abstract:With the rapid development of embedded technology,the ARM-embedded system is used widely.The research on ARM-embedded system becomes one of the most popular directions.LPC2294,based on ARM7TDMI-S,is a processor and integrated with rich interface circuits,which is very well suited for industrial control,medical systems,access control,point-of-sale,communication gateways,protocol converters and embedded soft modems as well as many other general-purpose applications.In this paper,it designs an embedded Demo system based on the processor LPC2294.It firstly introduces the basic function of this chip;secondly describes the hardware design of the embedded demo system based on the chip,including power,clock,JTAG and other interface circuits;lastly presents the software design,including the start code and application program.
Key words:Embedded system;LPC2294 processor;ARM processor;Hardware design;Software design
DOI:10.3969/j.issn.1002-2279.2016.02.002
中圖分類號(hào):TN492
文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):1002-2279(2016)02-0004-04
作者簡(jiǎn)介:王丹(1982-),女,遼寧省錦州市義縣人,工程師,碩士,主研方向:嵌入式微處理器設(shè)計(jì)、驗(yàn)證。
收稿日期:2015-05-14