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识别和加载,头信息数据结构如下:
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机、数字信号处理等领域有着广泛的应用。

固态氧传感器的四大优点
英特尔发布CPU微代码更新,防止攻击者窃取敏感数据
减肥坚持不下去?试试这款芯片吧
承泰科技是如何突破国外厂商毫米波雷达市场垄断的?
西门子变频器F-015故障解决方法
ARM9微控制器的软硬件平台设计
工业低频RFID应用:半导体RFID读卡器端口说明
DIY一个简单的触摸延时电路
多根单芯电缆的详细说明
基于HD-SDI标准接口的高清摄像机的特点及应用
食亨CEO王泰舟获评SaaS行业杰出人物,助推数智经营变革
任天堂改变看法,计划发布第一款VR产品
三星伸手“刘海屏”?未来智能手机都一样
对射式微波雷达探测器行业品牌讲解
DDR5内存和DDR4有啥不同
Hercules安全微控制器平台产品的介绍(2)
5G建设提速有什么现象
印制电路板有哪些作用
ivviV3怎么样 整体外观设计中规中矩不过NFC等特色功能还是相当实用的
使用超声波模块+HC-SR04模块的超声波测距