王 丹,张海涛(.中国电子科技集团公司第四十七研究所,沈阳 003;.中国人民解放军95979部队,沈阳 0045)
基于LPC2294处理器的嵌入式演示系统设计
王 丹1,张海涛2
(1.中国电子科技集团公司第四十七研究所,沈阳110032;2.中国人民解放军95979部队,沈阳110045)
摘 要:随着嵌入式技术迅速发展,基于ARM的嵌入式技术应用越来越广泛,研究基于ARM的嵌入式系统已成为一个热点。LPC2294是一款以ARM7TDMI-S为内核的处理器,片上集成了丰富的接口电路,广泛应用于工业控制、医疗系统、访问控制、POS机、通信网关、协议转换器等。设计一个基于LPC2294处理器的嵌入式演示系统,首先介绍该芯片的基本功能,然后阐述了基于该芯片的嵌入式演示系统的硬件设计,包括电源、时钟、JTAG及其他接口电路设计,最后描述了该演示系统的软件实现,包括启动代码和应用程序设计。
关键词:嵌入式系统;LPC2294处理器;ARM处理器;硬件设计;软件设计
嵌入式系统是基于嵌入式处理器,由硬件和软件组成的专用系统,按照嵌入式处理器的不同,嵌入式系统可以分为基于单片机的嵌入式系统、基于FPGA的嵌入式系统、基于ARM的嵌入式系统等。本文设计的演示系统是基于ARM的嵌入式系统,核心芯片是LPC2294[1],是NXP公司生产的一款基于ARM7TDMI-S[2]的32位MCU。
LPC2294支持实时仿真和嵌入式跟踪,片上集成256KB高速Flash,16KB SRAM,多个通用GPIO口,外部存储器控制器,2个通用定时器,1个看门狗定时器,1个RTC,8通道10位A/D,4个CAN控制器,2个UART接口,2个SPI接口,1个I2C接口,多个PWM通道及外部中断。
LPC2294芯片包括丰富的外围接口,很适合构建一个低功耗高性能的嵌入式演示系统[3-4],其硬件结构框图如图1所示。
图1 硬件系统结构框图
3.1电源设计
LPC2294芯片需要双电源供电,内核电源1.8V,I/O电源3.3V。演示板外接电源供电5V,通过电压转换芯片LM1117-3.3/SOT223将5V电压转为3.3V电压,用于I/O供电,电压转换芯片LM1117-1.8/SOT223将3.3V电压转为1.8V电压,用于内核供电。
3.2时钟设计
该芯片最大工作时钟为60MHz,选取的外部晶振频率为14.7456MHz,芯片内部PLL四倍频后提供给ARM7内核作为工作时钟。通过VPB分频器四分频后作为APB总线上的外设时钟。
3.3JTAG接口设计
JTAG接口电路用来实现芯片的调试下载功能,演示版通过20针的JTAG接口连接到PC机上。
3.4GPIO设计
GPIO最典型简单的应用是外接LED和按键,GPIO输出高低电平可以控制LED灯的亮灭,按键可以给GPIO输入高低电平,实现GPIO输入功能的演示。
3.5UART设计设计
芯片内置两个串口控制器,为了与PC主机进行通信,需要MAX3232芯片进行电平转换,其电路连接如图2所示。
3.6CAN接口设计
该芯片上集成了四个CAN控制器,为了在CAN总线上进行数据传输,需要外接PCA82C250T芯片,将数字信号转换为差分信号,其电路连接如图3所示。
图2 串口连接
图3 CAN接口连接
3.7EMC接口设计
LPC2294芯片内部集成了一个外部存储器控制器EMC,用来进行外部存储器扩展,该演示系统通过EMC接口连接一块SRAM芯片IS61LV51216-12T,其电路连接如图4所示,一块Nor Flash芯片SST39VF1601,其电路连接如图5所示。
图4 SRAM连接
图5 Nor Flash连接
3.8I2C接口设计
该芯片包括一个I2C接口,通过该接口连接一块EEPROM芯片AT24C02,其连接如图6所示。
图6 I2C接口连接
3.9SPI接口设计
该芯片的SPI接口与74HC595芯片连接,74HC595芯片实现串并转换,驱动1个七段数码管显示,电路连接如图7所示。
图7 SPI接口连接
3.10A/D应用设计
该芯片包括有8路10位A/D,演示系统中将可调电阻连接到其中的A/D通道上,通过调节可调电阻,改变A/D的输入电压,实现模拟信号转为数字信号。
3.11PWM控制蜂鸣器
PWM输出端与蜂鸣器输入端连接,通过脉冲控制蜂鸣器鸣笛。
3.12硬件演示板
硬件演示板经过原理图设计、PCB版图设计、PCB制板、焊接、调试等工作后,最后实现该演示系统的硬件演示板,其实物如图8所示。
图8 硬件演示板实物图
4.1ARM软件开发环境
4.1.1 软件程序编译、链接
该演示系统软件开发环境使用的是ARM公司的集成开发软件ADS[7](ARM Developer Suite)。ADS由命令行开发工具、ARM实时库、GUI开发环境(Code Warrior和AXD)、实用程序等组成。CodeWarrior集成开发环境(IDE)为管理和开发提供了简单多样化的图形用户界面。ADS的CodeWarrior IDE为演示系统的软件开发提供了ARM汇编语言、C语言的程序汇编、编译、链接平台。
4.1.2 软件程序调试
软件调试是软件开发的关键环节,软件开发的主要时间和精力都用于代码调试,整个演示系统的调试包括PC机、仿真器、演示板三个部分。PC机上运行调试工具AXD,仿真器为Multi-ICE[8](Multi-processor in-circuit emulator),演示板上运行软件程序,三者之间的连接关系如图9所示。
图9 调试环境示意图
该项目采用的调试手段如下:
(1)使用AXD软件调试
(2)通过LED或串口显示调试
4.1.3 软件程序下载
LPC2294片内集成了256KB的Flash存储器,可以存放代码,而大容量代码则存放在外部Nor Flash中。ADS编译链接后生成可执行文件*.axf文件,通过ADS提供的fromELF工具,将ARM的可执行文件转换成*.hex或者*.bin格式的映射文件。然后通过Flash downloader工具把映像文件下载到LPC2294的内部Flash或演示板上的Nor Flash存储器中。
4.2演示系统软件实现
演示系统的软件实现包括两个部分:启动代码和应用程序。
4.2.1 启动代码
启动代码是整个系统上电后执行的第一段软件代码,主要完成硬件初始化,为软件运行准备好硬件环境。由于启动代码直接面向处理器内核和硬件控制器进行编程,该部分代码的设计由汇编完成。在该演示系统中,启动代码完成以下工作:
(1)建立中断异常向量表
异常中断向量表是用来存放异常处理程序的入口地址。处理器一旦发生中断,将自动跳转到0x0地址开始的异常中断向量表中的某个位置(依据中断类型)读取指令然后运行。该演示系统的中断向量表定义如下:
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,FIQ_Addr
为了满足该芯片有效用户代码的判断标准,0x00000014地址应该存放剩余中断向量校验和的补码,使所有向量的校验和为0,只有满足该条件,LPC2294芯片才认为该代码是有效的,这是该芯片的特性,并不适合所有的ARM芯片。
(2)初始化堆栈
ARM7内核支持6种操作模式:User Mode、FIQ Mode、IRQ Mode、Supervisor Mode、Abort Mode、Undefined Mode。启动代码需要为每种模式建立堆栈,这需要初始化每个模式的堆栈指针。
(3)复制RW到RAM,将Zi段清零
(4)跳转到C语言程序,执行演示程序主代码。
4.2.2 演示程序开发
启动代码对系统的软硬件环境进行基本的初始化工作,在此基础上,演示程序分别对各个功能模块进行初始化,包括模块驱动、外围接口电路驱动、特定应用场景的功能实现,最后进行汇总形成一套完整的演示程序。该演示系统实现的功能如下:
(1)LED显示
(2)按键控制GPIO输入,或产生外部中断
(3)SPI接口控制七段数码管显示
(4)PWM控制蜂鸣器
(5)通过I2C接口读写EEPROM
(6)通过UART接口与PC机进行串口通信
(7)CAN接口之间进行通信
(8)RTC对时间进行测量,并定期产生中断,串口显示实时时钟
(9)Timer定时产生中断,串口打印显示中断次数
(10)看门狗产生复位
(11)通过EMC接口控制SRAM,Nor Flash工作
(12)可调电阻控制A/D输入电压,并由串口显示转换的数字信号
LPC2294是一款低功耗、高可靠性的嵌入式处理器,具有广泛的应用场景。本文在深入了解LPC2294功能的基础上,设计了一个基于该处理器的嵌入式演示系统,详细阐述了该系统的软硬件实现过程,文中的硬件平台和软件代码都通过了功能测试。此外该系统还具有一定的软件升级性,可以移植Linux、WinCE、uC/OS-II、VxWorks、Andrio等嵌入式操作系统。
参考文献:
[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的嵌入式系统设计[D].长春:吉林大学,2002.HAO Xin-tie.Design of Embedded System Based on ARM[D].ChangChun:JiLin University,2002.
[4]郑佃好.基于S3C2440的嵌入式系统及VGA输出设计[D].成都:电子科技大学,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嵌入式系统基础教程(第2版)[M].北京:北京航空航天大学出版社,2008.ZHOU Li-gong.ARM Embedded System Essentials(Second Edition)[M].BeiJing:BeiJing University of Aeronautics and Astronautics Press,2008.
[6]杜春雷.ARM体系结构与编程[M].北京:清华大学出版社,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
中图分类号:TN492
文献标识码:B
文章编号:1002-2279(2016)02-0004-04
作者简介:王丹(1982-),女,辽宁省锦州市义县人,工程师,硕士,主研方向:嵌入式微处理器设计、验证。
收稿日期:2015-05-14