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

发布者:gamma14最新更新时间:2013-10-26 来源: eefocus关键字: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硬件平台设计框图[page]

(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 软件系统结构框图[page]

(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识别和加载,头信息数据结构如下:

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 系统启动过程内存空间分布图

6 系统性能分析

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

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

结语

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

关键字:ARM9  微控制器  软硬件平台 引用地址:ARM9微控制器的软硬件平台设计

上一篇:嵌入式网络收音机的ARM实现
下一篇:基于ARM和WinSock的多人对战游戏平台设计

推荐阅读最新更新时间:2024-03-16 13:29

将电池供电型微控制器系统耗电减到最少
今日的便携式产品设计对所用的电池会有些相互冲突的要求,例如更丰富的产品功能会增加耗电,使用者也希望电池使用时间更长,但不断缩小的产品体积和成本限制却使电池容量无法增加,因此节省电力就成为最重要的考虑。传统设计为了将耗电减到最少,通常都尽可能减少电流消耗;但其实电池的蓄电量是电压、电流和时间的乘积,要有效提升整个系统的电源效率,就必须同时考虑这三项变量。微控制器系统若以电池做为电源,这些电池又能由使用者更换,则可采用专为因应这些变量而设计的微控制器,因为这些微控制器可通过芯片内置电压转换等功能和传统低耗电操作模式来解决前述问题。 电池特性 多数低端和中端便携式产品都会使用可替换的电池或充电电池,这些电池还能由使用者
[单片机]
将电池供电型<font color='red'>微控制器</font>系统耗电减到最少
单片机演奏音乐实验
利用单片机演奏音乐大概是单片机爱好者感兴趣的问题之一。这里我们用网站提供的实验板来做这个实验,并且了解单片机演奏音乐的基本原理,和相关的源程序。 AT89C51单片机的P2.5口控制一个8550的三极管,三极管控制电磁蜂鸣器的电源通断。 我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单处机某个口线的高电平或低电平,则在该口线上就能产生一定频率的矩形波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调。 例如,要产生200HZ的音频信号,200HZ音频的变化周期为1/200秒,即5ms。这样,当P2.5的高电平或低电平的持续时间为2.5ms时就能发出
[单片机]
51单片机-液晶屏代码单独文件
同样我们创建好“lcd.c”和“lcd.h”,然后添加进工程文件中。“lcd.c”的代码集合了所有宋老师为我们写好的各种常用函数。 1.lcd.c的代码 #include reg52.h #include lcd.h /* 等待液晶准备好 */ void LcdWaitReady() { unsigned char sta; LCD1602_DB = 0xFF; LCD1602_RS = 0; LCD1602_RW = 1; do { LCD1602_E = 1; sta = LCD1602_DB;//读取状态字 LCD1602_E = 0; } while
[单片机]
51<font color='red'>单片机</font>-液晶屏代码单独文件
内“芯”强大,飞思卡尔MCU三大核心竞争优势谁与争锋
近日,飞思卡尔半导体微控制器业务拓展经理孙东为我们全面展示了飞思卡尔在马达控制市场的超强阵容产品线。借用一位听众的原话“飞思卡尔果然很强!如此丰富的产品线,无论如何,我们总能找到那款适合自己的马达控制方案”。没错,只有内心的强大,才是真正的强大。有鉴于此,笔者对2013年才从德州仪器过来,加入到飞思卡尔团队的孙东经理进行专访,深入剖析飞思卡尔芯片内“芯”强大的过人之处。 携三大核心竞争优势,谁与争锋? “加入飞思卡尔,我对整个团队很有信心。因为从产品定义到市场团队、销售团队等都是拥有丰富经验的团队。我相信在胜利的团队中,是没有失败者的。”孙东经理如是说,“从最切身的感触来说,相比其他竞争对手而言,飞思卡尔拥有最具竞争力的三
[单片机]
沁恒股份8位增强型USB单片机CH547概述
概 述 CH547是一款兼容MCS51的增强型E8051内核单片机,79%的指令是单字节单周期指令,运行速度快,内置60KB Flash-ROM,1K+256B RAM。 CH547 内嵌USB控制器和USB收发器支持USB-Device 设备模式,支持 USB 2.0 全速 12Mbps 或者低速 1.5Mbps,支持最大 64 字节数据包,内置 FIFO,支持 DMA。 CH547提供丰富的接口资源,包括4组异步串口、4路PWM和12通道电容触摸按键,其它包括1路主从SPI,12路12位ADC,支持电压比较;内置3组定时器和1路信号捕捉;支持最多44个GPIO。 系统框图 特 点 》增强型E8051内核CPU,速度比标
[单片机]
沁恒股份8位增强型USB<font color='red'>单片机</font>CH547概述
基于单片机控制的电动车锂电池组设计
   摘 要: 针对目前电动车锂电池组所用的保护电路大多都由分立原件构成,存在控制精度不够高、技术指标低、不能有效保护锂电池组等特点,提出一种基于单片机的电动车36 V锂电池组保护电路设计方案。利用高性能、低功耗的ATmega16L 单片机作为检测和控制核心,用由MC34063构成的DC /DC变换控制电路为整个保护电路提供稳压电源,辅以LM60测温、MOS管IRF530N作充放电控制开关,实现对整个电池组和单个电池的状态监控和保护功能,达到延长电池使用寿命的目的。   随着电动自行车的逐渐普及,电动自行车的主要能源---锂电池也成为众人关心的焦点。 锂电池与镍镉、镍氢电池不太一样,因其能量密度高,对充放电要求很高。 当过充、过
[汽车电子]
基于<font color='red'>单片机</font>控制的电动车锂电池组设计
PC机与单片机串行通信中实现命令批处理
    摘要: 介绍PC机与MCS-51单片机通信批处理命令的实现思想、方法、通信协议和C51程序平台。为PC机与单片机间串行通信程序设计提供一种方法上的新思路。     关键词: 批处理 MCS-51单片机 通信协议 在PC机与MCS-51单片机之间进行串行通信时,基本是一对一的,即用PC机向单片机每发1条命令,就等待单片机的1条返回信息。这样可能把大量时间浪费在PC机与单片机的通信过程中了。为此笔者经过实践,设计出可以批处理执行PC机发给单片机的命令,就像DOS操作系统中的批处理命令一样,可连续批处理信息,结果当然提高了系统速度。文中提供了部分平台式C51软件源代码,以供大家参考。 1 通信协议
[工业控制]
基于STM32单片机的电子称设计
摘要 电子秤是将检测与转换技术、计算机技术、信息处理、数字技术等技术综合一体的现代新型称重仪器。它与我们日常生活紧密结合息息相关。 电子称主要以单片机作为中心控制单元,通过称重传感器进行模数转换单元,在配以键盘、显示电路及强大软件来组成。电子称不但计量准确、快速方便,更重要的自动称重、数字显示,对人们生活的影响越来越大,广受欢迎。 本系统的设计主要从硬件电路设计,软件编程调试,实物焊接调试三部分进行详细阐述。硬件电路主要是基于单片机为核心的控制单元实现数据的处理,采用压力传感器对数据进行采集,电子秤专用24位AD转换芯片HX711对传感器采集到的模拟量进行AD转换,转换后的数据送到单片机进行处理显示,数据显示由LCD160
[单片机]
基于STM32<font color='red'>单片机</font>的电子称设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved