您好,  [请登录] [QQ登录]  [支付宝登录[免费注册]

商品分类

分享到: 百度搜藏 搜狐微博 新浪微博 腾讯微博 QQ收藏 人人网 Facebook Twitter

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

发布日期:2011-04-19

    择要 先容以Philips LPC3180微控制器为内核的嵌入式软硬件平台计划;对体系计划的硬件部分和软件部分举行细致的阐发,并针对LPC3180芯片特性偏重讨论了其软件体系构建以及体系启动流程。实行结果表明,LPC3180嵌入式体系平台连合片内硬件浮点运算单位,具有高性能的浮点运算处理惩罚本领,可餍足巨大的嵌入式应用场合的请求。 
   关键词 LPC3180 ARM9 软硬件平台 

    嵌入式应用体系计划包括硬件平台和软件平台两部分。前者因此嵌入衰落控制器/微处理惩罚器为内核的硬件体系;后者则是围绕嵌入式操纵体系构建的软件体系。两者在计划上是密不可分的,并且必要在计划之间举行衡量优化,根据实际应用举行外扩和裁剪。 

    基于ARM926EJS内核的LPC3180内部集成了丰富的外设资源,为嵌入式体系构建提供了很大的计划空间。本文连合笔者开辟LPC3180嵌入式平台的实际经历,将详细先容该体系的实现、布局构成和实行结果。
      
1  LPC3180芯片特性先容 
    LPC3180是Philips公司新推出的一款ARM9微控制器。它采取90nm工艺技能,片内集成ARM9EJS处理惩罚器内核,具有高谋略性能、低功耗的特性,这使得在很多对功耗敏感的嵌入式应用场合中仍能利用高性能的ARM9微控制器。LPC3180内核正常事变电压为1.2V,在低功耗模式下可降至0.9 V;同时,LPC3180作为一款新型的32位微控制器,其新特性还包括: 

◆  片内集成向量浮点(VFP)协处理惩罚器。LPC3180的浮点运算单位有3条独立的流水线,支持并行单精度或双精度浮点加/减、乘/除以及乘累积运算,完全兼容IEEE754标准,实用于高速浮点运算场合。 
◆ 片内集成USB OTG控制模块,同时支持与便携USB主配置或USB外设相连,可用于与PDA、读卡器和打印机等配置直接相连,而无需PC机参与。 
◆ LPC3180采取多层的AHB总线体系,为各个主模块提供独立的总线,包括CPU的指令总线和数据总线、2套DMA控制器数据总线以及1套USB控制器数据总线。
        
    LPC3180的内部架构如图1所示。


                                                   图1  LPC3180内部架构
        
    LPC3180的其他特性包括: 内部集成MLC/SLCNAND控制器、SDR/DDR SDRAM控制器、SD卡接口,UART、SPI、I2C外围通讯模块,以及高速/毫秒定时器、RTC、看门狗定时器、10位ADC等其他成果模块。
      
2  硬件平台计划 
     以LPC3180为内核的硬件平台计划框架如图2所示。


                                           图2  LPC3180硬件平台计划框图 

(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  NAND Flash接口连接图
      
3.2  USB接口模块 
    LPC3180内部集成USB控制模块,但不包括USB物理层,体系通过外接USB收发模块ISP1301实现USB的物理层接口。图4是USB接口连接图。LPC3180内部通过AHB从配置总线配置USB控制器,可事变在全速(12 Mb/s)和低速(1.5 Mb/s)两种模式下。


                                                图4  USB接口连接图
     
 4  软件体系计划 
     软件体系构成包括体系引导步伐Bootloader,嵌入式操纵体系以及上层应用步伐。此中Bootloader是运行于操纵体系之前的引导步伐,重要任务是完成体系启动之前须要的硬件初始化和操纵体系加载;操纵体系是整个嵌入式平台的内核步伐,重要成果是高效地办理和分派底层硬件资源,并为上层应用步伐提供与硬件细节无关的体系调用接口。
        
    软件体系计划必须与硬件平台精密连合。LPC3180采取NAND Flash作为整个体系的步伐存储地区,在体系启动时通过片上ROM的bootstrap步伐,从NAND Flash加载并实行外部引导步伐来实现整个体系的启动步调。因此,整个软件体系采取了图5所示的计划布局。


                                            图5  软件体系布局框图
     
(1)  体系引导步伐Bootloader
     由于启动进程起首从片内的bootstrap步伐开始,因此体系采取二级Bootloader计划,包括第一级Sibl和第二级Uboot。

     此中Sibl是bootstrap加载并实行的第一个引导步伐,在步伐大小上受到bootstrap加载的限定,因此计划上只管即便做到了小型化和成果埋头。它除了完成最根本的硬件初始化以外,重要成果是实现其他步伐(包括Uboot)从NAND Flash的加载,完成下一级Bootloader运行之前的内存地点空间散布。
        
     第二级Bootloader采取成果强大的sourceforge开源软件Uboot。Uboot的重要成果是完成嵌入式操纵体系启动前的底层硬件初始化,并为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


                                               图6  体系启动进程内存空间散布图
        
③   完成Sibl加载后,内存空间散布如图6所示,体系进入启动流程的第三阶段U-boot。U-boot完成Linux内核镜像的解压缩和操纵体系启动前的初始化,终极跳入内核入口地点,完成对Linux的引导。
      
6  体系性能阐发 
    体系构建提供了一个完备的LPC3180嵌入式软硬件平台,下面对LPC3180浮点运算本领举行测试和阐发。测试要领是利用一个浮点运算麋集的算法,用ADS编译器分别编译使能硬件VFP和软浮点运算两个版本的测试步伐,并在差别的CPU时钟频率下比较运行时间,结果如表1所列。 

   阐发实行数据,可以得出结论:VFP协处理惩罚器在雷同时钟频率下,进步了5倍左右的浮点运算性能。因此,LPC3180平台连合VFP协处理惩罚器,可以或许实现巨大的浮点运算麋集算法。在微控制器中集成硬件浮点运算单位,这使得微控制器的数据处理惩罚本领大大进步,可以或许胜任多数的数字信号处理惩罚应用。

       表1  浮点运算结果



结语 
      本文先容了以LPC3180微控制器为内核的嵌入式软硬件平台的计划与实现,并测试、验证了LPC3180的浮点运算性能。该平台对付LPC3180的应用开辟具有鉴戒意义。如今LPC3180在医疗东西、产业控制、POS机、数字信号处理惩罚等范畴有着遍及的应用。
      
参考文献 
[1]  LPC3180 User Manual. http://standardics.philips.com. 
[2]  ISP1301 User Manual. http://semiconductors.philips.com.