新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > ARM9微控制器LPC3180的软硬件平台设计

ARM9微控制器LPC3180的软硬件平台设计

——
作者:北京航空航天大学 柏俊杰 赵琦飞利浦半导体部 王朋朋 时间:2007-01-26 来源:《单片机与嵌入式系统应用》 收藏

嵌入式应用系统设计包括硬件平台和软件平台两部分。前者是以嵌入式微控制器/微处理器为核心的硬件系统;后者则是围绕嵌入式操作系统构建的软件系统。两者在设计上是密不可分的,并且需要在设计之间进行权衡优化,根据实际应用进行外扩和裁剪。

本文引用地址:https://www.eepw.com.cn/article/21423.htm

基于arm926ejs内核的lpc3180内部集成了丰富的外设资源,为嵌入式系统构建提供了很大的设计空间。本文结合笔者开发lpc3180嵌入式平台的实际经验,将具体介绍该系统的实现、结构组成和实验结果。

1 lpc3180芯片特性介绍

lpc3180是philips公司新推出的一款arm9微控制器。它采用90 nm工艺技术,片内集成arm9ejs处理器内核,具有高计算性能、低功耗的特性,这使得在很多对功耗敏感的嵌入式应用场合中仍能使用高性能的arm9微控制器。lpc3180内核正常工作电压为1.2 v,在低功耗模式下可降至0.9 v;同时,lpc3180作为一款新型的32位微控制器,其新特性还包括:

◆ 片内集成向量浮点(vfp)协处理器。lpc3180的浮点运算单元有3条独立的流水线,支持并行单精度或双精度浮点加/减、乘/除以及乘累积运算,完全兼容ieee754标准,适用于高速浮点运算场合。  

◆ 片内集成usb otg控制模块,同时支持与便携usb主设备或usb外设相连,可用于与pda、读卡器和打印机等设备直接相连,而无需pc机介入。  

◆ lpc3180采用多层的ahb总线系统,为各个主模块提供独立的总线,包括cpu的指令总线和数据总线、2套dma控制器数据总线以及1套usb控制器数据总线。

lpc3180的内部架构如图1

lpc3180的其他特性包括: 内部集成mlc/slcnand控制器、sdr/ddr sdram控制器、sd卡接口,uart、spi、i2c外围通信模块,以及高速/毫秒定时器、rtc、看门狗定时器、10位adc等其他功能模块。

2 硬件平台设计

以lpc3180为核心的硬件平台设计框架如图2所示。

(1) 存储器系统

nand flash存储器。通过lpc3180内部集成的mlc/slc nand控制器直接外接多级或单级nand flash器件。本系统选用st nand256r3a,其32 mb存储空间可满足存放系统引导程序、嵌入式操作系统内核和文件系统的大小要求。

sdram存储器。系统选用2片16位micron sdram,并联构建32位sdram存储器系统。32 mb sdram空间,可满足嵌入式操作系统以及上层应用程序的运行要求。

sd卡插槽。系统通过lpc3180内部集成的sd卡接口,提供sd卡插槽,可用于sd存储卡外扩,作为外部存储空间。

(2) 外围通信接口

uart接口。lpc3180内部集成了标准uart模块和高速uart模块,符合550工业标准。系统外扩了uart1/7、uart2和uart5,用于实现基本的串行通信功能;同时,uart5可用于系统启动时的外部程序下载。

usb接口。lpc3180内部集成了usb host、usb device以及usb otg控制器,通过外部usb收发模块philips isp1301外扩usb host接口a、usb device接口b以及usb otg接口ab。

(3) 其他外围模块

系统通过i2c接口外扩了一个简易的字符型lcd显示模块,用于应用程序运行结果显示;同时,为了简化硬件系统设计,系统的以太网模块通过usb host接口a以软件方式实现外扩。

3 系统关键模块设计

3.1 nand flash存储器模块

lpc3180内部集成了mlc/slc nand控制器,通过外部引脚可直接外接多级或单级nand flash器件,如图3所示。需要注意的是mlc和slc nand控制器通过引脚复用,使用相同的接口与nand flash相连,且同一时刻只允许开启其中一个控制器,因此在系统上电后必须通过配置flash_ctrl寄存器选择要使用的nand控制器。在闲置状态时,也可通过写寄存器关闭nand控制器,以降低功耗。nand flash存储器模块是整个系统主要的静态数据存储空间,用于存储系统启动过程中的加载程序,因此在lpc3180系统设计中是必不可少的。

3.2 usb接口模块

lpc3180内部集成usb控制模块,但不包括usb物理层,系统通过外接usb收发模块isp1301实现usb的物理层接口。图4是usb接口连接图。lpc3180内部通过ahb从设备总线配置usb控制器,可工作在全速(12 mb/s)和低速(1.5 mb/s)两种模式下。

4 软件系统设计

软件系统组成包括系统引导程序bootloader,嵌入式操作系统以及上层应用程序。其中bootloader是运行于操作系统之前的引导程序,主要任务是完成系统启动之前必要的硬件初始化和操作系统加载;操作系统是整个嵌入式平台的核心程序,主要功能是高效地管理和分配底层硬件资源,并为上层应用程序提供与硬件细节无关的系统调用接口。

软件系统设计必须与硬件平台紧密结合。lpc3180采用nand flash作为整个系统的程序存储区域,在系统启动时通过片上rom的bootstrap程序,从nand flash加载并执行外部引导程序来实现整个系统的启动步骤。因此,整个软件系统采取了图5所示的设计结构。

(1) 系统引导程序bootloader

由于启动过程首先从片内的bootstrap程序开始,因此系统采取二级bootloader设计,包括第一级sibl和第二级u?boot。

其中sibl是bootstrap加载并执行的第一个引导程序,在程序大小上受到bootstrap加载的限制,因此设计上尽量做到了小型化和功能专一。它除了完成最基本的硬件初始化以外,主要功能是实现其他程序(包括u?boot)从nand flash的加载,完成下一级bootloader运行之前的内存地址空间分布。

第二级bootloader采用功能强大的sourceforge开源软件uboot。uboot的主要功能是完成嵌入式操作系统启动前的底层硬件初始化,并为linux内核提供启动参数,最终引导操作系统linux内核启动。另外,为了实现程序镜像文件编程写入nand flash,u?boot嵌入了一个nand子系统,通过u?boot的用户命令行实现对nand flash的读/写操作,可将程序镜像写入nand flash指定的地址空间。

(2) 嵌入式操作系统

lpc3180内部集成了arm926ejs处理器内核,带存储器管理单元mmu,支持多数主流嵌入式操作系统。系统通过编写板级支持代码,移植了linux2.6.10作为平台操作系统,利用稳定的linux2.6内核实现任务调度、进程管理、内存管理等功能,同时,针对linux的可配置性,对内核进行裁剪和硬件驱动代码添加,系统实现了一个小型但功能强大的内核程序,适应了嵌入式系统存储资源相对紧缺的状况。 5 系统启动流程分析

由上面的软件结构组成分析可知,整个系统启动流程分为3个步骤:

① 系统上电后,首先从片上rom固化的bootstrap程序执行。bootstrap用于完成外部引导程序下载并跳入执行。bootstrap运行过程首先读输入引脚gpio_01。如果gpio_01置为高,则从nand flash下载程序引导系统启动;如果置为低,则依次检测usb接口和uart5接口,通过外部连接下载引导程序。系统通过设置gpio_io跳线来控制bootstrap启动过程,本例将gpio_01置为高,从nand flash下载程序。  ② 系统启动的第二阶段是运行bootstrap下载的引导程序sibl。sibl完成系统必要的初始化后,从nand flash加载镜像程序到指定的sdram空间。镜像程序在起始位置添加了64字节的头信息,用于sibl识别和加载,头信息数据结构如下:

struct image_header {  uint32_tih_magic;/*镜像头信息同步字,sibl通过该字识别程序*/  uint32_tih_hcrc;/*镜像头信息crc校验码*/  uint32_tih_time;/*存储镜像创建时间*/  uint32_tih_size;/*镜像数据大小*/  uint32_tih_load;/*镜像加载地址*/  uint32_tih_ep;/*镜像入口地址*/  uint32_tih_dcrc;/*镜像数据crc校验码*/  uint8_tih_os;/*操作系统信息*/  uint8_tih_arch;/*cpu体系结构类型*/  uint8_tih_type;/*镜像类型*/  uint8_tih_comp;/*压缩类型*/  uint8_tih_name[32];/*镜像名称*/}

sibl从nand flash起始地址开始搜索。如果读到镜像同步字ih_magic,则识别镜像程序,并根据偏移地址读取程序大小ih_size和加载地址ih_load,将程序加载到指定的sdram空间;加载完成后根据crc校验码ih_dcrc对sdram数据进行crc检测;最后根据镜像类型ih_type判断镜像是否可执行,若可执行,则跳入镜像入口地址ih_ep,否则sibl继续搜索nand flash镜像程序。

镜像程序使用u-boot提供的工具mkimage添加头信息,命令格式如下:

mkimage-a arch-o os-t type-c comp-a addr-e ep-n name-d data_file image

③ 完成sibl加载后,内存空间分布如图6所示,系统进入启动流程的第三阶段u-boot。u-boot完成linux内核镜像的解压缩和操作系统启动前的初始化,最终跳入内核入口地址,完成对linux的引导。

6 系统性能分析

系统构建提供了一个完整的lpc3180嵌入式软硬件平台,下面对lpc3180浮点运算能力进行测试和分析。测试方法是使用一个浮点运算密集的算法,用ads编译器分别编译使能硬件vfp和软浮点运算两个版本的测试程序,并在不同的cpu时钟频率下比较运行时间,结果如表1所列。

分析实验数据,可以得出结论: vfp协处理器在相同时钟频率下,提高了5倍左右的浮点运算性能。因此,lpc3180平台结合vfp协处理器,能够实现复杂的浮点运算密集算法。在微控制器中集成硬件浮点运算单元,这使得微控制器的数据处理能力大大提高,能够胜任多数的数字信号处理应用。

结语

本文介绍了以lpc3180微控制器为核心的嵌入式软硬件平台的设计与实现,并测试、验证了lpc3180的浮点运算性能。该平台对于lpc3180的应用开发具有借鉴意义。目前lpc3180在医疗器械、工业控制、pos机、数字信号处理等领域有着广泛的应用。


pos机相关文章:pos机原理




关键词:

评论


相关推荐

技术专区

关闭