ARM嵌入式系统分析

2024-08-29

ARM嵌入式系统分析(共12篇)

ARM嵌入式系统分析 篇1

用户选用ARM处理器开发嵌入式系统时, 选择合适的开发工具可以加快开发进度, 节省开发成本。因此一套含有编辑软件、编译软件、汇编软件、链接软件、调试软件、工程管理及函数库的集成开发环境 (IDE) 一般来说是必不可少的, 至于嵌入式实时操作系统、评估板等其他开发工具则可以根据应用软件规模和开发计划选用。

一、ARM嵌入式开发工具

ARM应用软件的开发工具根据功能的不同, 分别有编译软件、汇编软件、链接软件、调试软件、嵌入式实时操作系统、函数库、评估板、JTAG仿真器、在线仿真器等, 目前世界上约有四十多家公司提供以上不同类别的产品。

ARM SDT可在Windows95、98、NT以及Solaris 2.5/2.6、HP-UX 10上运行, 支持最高到ARM9 (含ARM9) 的所有ARM处理器芯片的开发, 包括Strong ARM。ADS对汇编、C/C++、java支持的均很好, 是目前最成熟的ARM开发工具。很多ARM开发软件 (例如Keil) 也是借用的ADS的编译器。ADS在2006年版本已经发布到2.2。但国内大部分开发者使用的均是1.2版本。Real View MDK开发工具源自德国Keil公司, 被全球超过10万的嵌入式开发工程师验证和使用, 是ARM公司目前最新推出的针对各种嵌入式处理器的软件开发工具。Real View MDK集成了业内最领先的技术, 包括µVision3集成开发环境与Real View编译器。支持ARM7、ARM9和最新的Cortex-M3核处理器, 自动配置启动代码, 集成Flash烧写模块, 强大的Simulation设备模拟, 性能分析等功能, 与ARM之前的工具包ADS等相比, Real View编译器的最新版本可将性能改善超过20%。

JEENI仿真器支持ARM/THUMB指令, 支持汇编/高级语言调试。用户应用程序通过JEENI仿真器下载到目标RAM中。通过JEENI仿真器, 用户可以观察/修改ARM7的寄存器和存储器的内容, 用户可以在所下载的程序上设置断点, 用户可以以汇编/高级语言单步执行程序, 也可以全速运行程序, 用户可以观察高级语言变量的数据结构及内容并对变量的内容在线修改。

JEENI内部使用了一片带有高速缓存的ARM处理器, 支持对调试操作的快速响应, 比如:单步、读写存储器、读写寄存器和下载应用程序到目标板。JEENI的这种结构, 允许以太网接口在处理器执行JTAG指令的同时访问存储器。这种设计极大的提高了下载速度。JEENI仿真器能够很好地与SDT2.5工具连接, 用户可使用SDT的编译器和调试界面。JEENI对那些正在使用ARM Black ICE Embedded ICE JTAG接口的用户来说是即插即用的替代品。JEEN可用于ARM SDT 2.11a或SDT 2.5, 另外大多数第三方的调试器也都支持JEENI。

二、Real View MDK优点

启动代码和系统硬件结合紧密, 必须用汇编语言编写, 因而成为许多工程师难以跨越多门槛。Real View MDK的µVision3工具可以帮您自动生成完善的启动代码, 并提供图形化的窗口, 随您轻松修改。无论对于初学者还是有经验的开发工程师, 都能大大节省时间, 提高开发效率。Real View MDK的设备模拟器可以仿真整个目标硬件, 包括快速指令集仿真、外部信号和I/O仿真、中断过程仿真、片内所有外围设备仿真等。开发工程师在无硬件的情况下即可开始软件开发和调试, 使软硬件开发同步进行, 大大缩短开发周期。而一般的ARM开发工具仅提供指令集模拟器, 只能支持ARM内核模拟调试。

Real View MDK的Real View编译器与ADS 1.2比较:

代码密度:比ADS 1.2编译的代码尺寸小10%;代码性能:比ADS1.2编译的代码性能高20%。Real View MDK无需寻求第三方编程软件与硬件支持, 通过配套的ULINK2仿真器与Flash编程工具, 轻松实现CPU片内FLASH、外扩FLASH烧写, 并支持用户自行添加FLASH编程算法;而且能支持FLASH整片删除、扇区删除、编程前自动删除以及编程后自动校验等功能, 轻松方便。

三、ARM嵌入式造作系统

操作系统是一管理电脑硬件与软件资源的程序, 同时也是计算机系统的内核与基石。操作系统是一个庞大的管理控制程序, 大致包括5个方面的管理功能:进程与处理机管理、作业管理、存储管理、设备管理、文件管理。目前微机上常见的操作系统有DOS、OS/2、UNIX、XENIX、LINUX、Windows、Netware等。

μC/OS-II是一种基于优先级的抢占式多任务实时操作系统, 包含了实时内核、任务管理、时间管理、任务间通信同步和内存管理等功能。它可以使各个任务独立工作, 互不干涉, 很容易实现准时而且无误执行, 使实时应用程序的设计和扩展变得容易, 使应用程序的设计过程大为减化。Vx Works提供了一个快速灵活的与ANSI C兼容的I/O系统, 包括UNIX标准的Basic I/O (creat () , remove () , open () , close () , read () , write () , and ioctl () .) , Buffer I/O (fopen () , fclose () , fread () , fwrite () , getc () , putc () ) 以及POSIX标准的异步I/O。Vx Works包括以下驱动程序:网络驱动、管道驱动、RAM盘驱动、SCSI驱动、键盘驱动、显示驱动、磁盘驱动、并口驱动等。

摘要:ARM是微处理器行业的一家知名企业, 设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。文章总结了各种具有性能高、成本低和能耗省的技术, 列举了适用领域, 比如嵌入控制、消费/教育类多媒体、DSP和移动式应用等。

关键词:嵌入式系统,ARM软件开发

参考文献

[1]王学龙:嵌入式ARM系统设计与应用[M].北京:清华大学出版社, 2007

[2]邢国良等:基于ARM的实时操作系统的分析与研究[J].小型徽型计算机系统, 2006.

ARM嵌入式系统分析 篇2

摘要:基于ARM 内核的嵌入式系统在远程监控报警系统中的设计实现与应用。核心部分主要包 括 ARM 嵌入式平台设计及 μC-OS 嵌入式实时操作系统移植;人机交互界面 μCGUI 的设计与实现;远程通讯及自动报警等;系统的设计还考虑到了扩展性和通用性以及与其他监控设备无缝连接等问题。

关键词: ARM;μC/OS-II;μCGUI;远程监控 引言

监控系统现已成为现代化生产、生活中不可缺少的重要组成部分。目前,监控系列产品 种类繁多,大部分广泛应用于交通、医院、银行、家居、学校等安防领域。

随着嵌入式系统的出现,尤其是基于 ARM 内核芯片的嵌入式系统的出现,使得监控系统的应用领域更为广泛。本文设计的远程监控报警系统除了作为安防功能外,还可以应用于以下领域:通讯领域:远程通讯、视频会议和视频点播、证券、远程教育等。医疗领域:病房监护、远程诊断等。工业领域:远程设备诊断、维护、维修,远程生产监控等。家用领域:家用电器远程维护;电、气、火等重大事故自动报警等。

系统设计

2.1系统组成

本文设计的远程监控系统主要由中心控制器、数据终端、传感器模块、通讯模块、接口模块等几部分组成。系统组成图(如图 1)。

2.2中心控制器 系统核心负责数据采集判断处理。为了提高系统工作效率,这里使用的是三星公司的 S3C2410芯片作为处理器。S3C2410 芯片是一款高性价比的 ARM 芯片,非常适合作手机、PDA 等手持设备。主要特性包括: ARM920T 内核,最高工作频率 203MHz,LCD 控制器:可直接驱动真彩液晶屏,最高支持 2048×1024 真彩液晶屏,2 个 USB Host端口,1 个USB Device端口,支持 Nand flash 启动模式,SD 卡接口,UART、IIC、SPI、IIS 等多种类 型串行接口,4 通道DMA。

本文的监控系统的 CPU 核心部分使用的是标准的 SO-DIMM200 金手指接口,便于后期维护和升级。如果该监控系统的使用环境较为苛刻,可以将 CPU替换为S3C2440芯片。S3C2440完全兼容S3C2410全部特性(注意:芯片引脚不完全兼容)。与S3C2410芯片相比,S3C2440的性能更为优越:最高工作频率可达500MHz,内部集成CMOS摄像头接口,但价格较昂贵。

图1 监控系统组成框图

2.3数据终端 数据终端的主要功能是对监控数据进行分析、处理,及时将数据汇报给监控人员。同时,监控人员可以根据现场情况,使用数据终端对监控的设备进行远程控制。数据终端最大优势 就是安全、可靠、便于携带。一般情况下为了节约成本,可以将手机、PDA 等移动通讯设备作为数据终端使用。但是如果作为对高危环境或精密仪器的监控系统,数据终端需要专业定制。这里使用的是中心控制器的作为数据终端,即中心控制器既作为数据采集发送中心,也可数据接收处理中心使用。

2.4通讯模块

通讯模块主要负责远程数据通讯。带有 RS232/485、GPRS、CDMA 等一种或多种通讯 方式。需要根据现场环境和用户需要进行定制。通讯模块与控制器通过接口总线连接,连接 方式为 TTL/RS232/RS485 等。

2.5传感器模块

传感器模块的主要功能是感知外部环境,对外部环境进行实时监测。由人体红外传感器、振动传感器、超声波传感器、可燃气体传感器、温度传感器、湿度传感器等一种或多种传感 器组成。可根据现场监测环境不同进行定制。

2.6接口模块

接口模块主要作为系统扩展功能使用,将控制器的 A/D 转换、I2C、SPI 等多种接口进行 外部扩展。接口模块没有特定的功能,但可以根据需要与其他设备连接,例如可以与工业仪 器仪表或设备连接,实时对仪器或设备进行监控。

接口模块虽然不是监控系统的主要部分,但是对于整个系统来说却是不可缺少。因为本文的监控系统主要考虑到了系统的可扩展性和与其它系统无缝连接。通过接口模块可以很方 便的对监控系统进行升级,并且可以实现与其他系统或设备的无缝连接。这也是本系统区优 于其他监控系统的主要功能。软件设计

3.1工作软件

系统的软件设计较为复杂,这里只给出了整个工作软件流程(如图 2)。

图2 软件流程图

3.2操作系统移植

S3C2410 芯片支持多种嵌入式操作系统,如 WINCE、uCLinux 等。但考虑到监控系统 的实时性要求,这里使用的是 μC/OS-II 嵌入式实时操作系统。μC/OS-II 是一个源码公开、可移植、可固化、可裁剪、占先式的实时多任务操作系统。其绝大部分源码是用 ANSI C 写的。整个嵌入式系统分为两大层:硬件层和软件层。这里主要研究软件层的架构。软件层主要分为四个部分:实时操作系统内核,与处理器相关部分,与应用程序相关部分,用户的应用程序。移植 μC/OS-II 系统需要修改的文件有:应用程序相关文件: OS_CFG.H INCLUDE.H; 处理器相关文件: OS_CPU.H、OS_CPU_A.ASM、OS_CPU_C.C。

3.2.1 与处理器相关的代码

这是移植中最关键的部分。内核将应用系统和底层硬件有机的结合成一个实时系统,要 使同一个内核能适用于不同的硬件体系,就需要在内核和硬件之间有一个中间层,这就是与 处理器相关的代码。处理器不同。这部分代码也不同。我们在移植时需要自己移植这部分代 码。

a)OS_CPU.H

包括了用#define 定义的与处理器相关的常量,宏和类型定义,有系统数据类型定义,栈 增长方向定义,关中断和开中断定义,系统软中断的定义等等。

b)OS_CPU_A.ASM

这部分需要对处理器的寄存器进行操作,所以必须用汇编语言来编写。包括四个子函数: OSStartHighRdy(),OSCtxSw(),OSIntCtxSw(),OSTickISR()。OSStartHighRdy()在多任务系统启动函数 OSStart()中调用。完成的功能是:设置系统运行标志位 OSRunning = TRUE;将就绪表中最高优先级任务的栈指针 Load 到 SP 中,并强制中断返回。这样就绪的最高优先级任务就如同从中断里返回到运行态一样,使得整个系统得以运转。OSCtxSw()在任务级任 务切换函数中调用的。任务级切换是通过 SWI 或者 TRAP 人为制造的中断来实现的。ISR 的向 量地址必须指向 OSCtxSw()。这一中断完成的功能:保存任务的环境变量(主要是寄存器的值, 通过入栈来实现),将当前 SP 存入任务 TCB 中,载入就绪最高优先级任务的 SP,恢复就绪最高优先级任务的环境变量,中断返回。这样就完成了任务级的切换。OSIntCtxSw()在退出中断 服务函数 OSIntExit()中调用,实现中断级任务切换.由于是在中断里调用,所以处理器的寄存器入栈工作已经做完,就不用作这部分工作了。具体完成的任务;调整栈指针(因为调用函数会使任务栈结构与系统任务切换时堆栈标准结构不一致),保存当前任务 SP,载入就绪 最高优先级任务的 SP,恢复就绪最高优先级任务的环境变量,中断返回。这样就完成了中断级任务切换。OSTickISR()系统时钟节拍中断服务函数,这是一个周期性中断,为内核提供

时钟节拍。频率越高系统负荷越重。其周期的大小决定了内核所能给应用系统提供的最小时 间间隔服务。一般只限于 ms 级(跟 MCU 有关),对于要求更加苛刻的任务需要用户自己建立中断来解决.该函数具体内容:保存寄存器(如果硬件自动完成就可以省略),调 OSIntEnter(),调用 OSTimeTick(),调用 OSIntExit(),恢复寄存器,中断返回。

c)OS_CPU_C.C

该文件中共定义了 6 个函数,但是最重要的是 OSTaskStkInit().其他都是对系统内核的扩展 时用的.OSTaskStkInit()是在用户建立任务时系统内部自己调用的,对用户任务的堆栈进行初始化。使建立好的进入就绪态任务的堆栈与系统发生中断并且将环境变量保存完毕时 的栈结构一致。这样就可以用中断返回指令使就绪的任务运行起来。

3.2.2与应用相关的代码

这部分包括两个文件:OS_CFG.H, INCLUDES.H。用户根据自己的应用系统来定制合适 的内核服务功能。OS_CFG.H 来配置内核,用户根据需要对内核进行定制,留下需要的部分,去掉不需要的部分,设置系统的基本情况。比如系统可提供的最大任务数量,是否定制邮箱服务,是否需要系统提供任务挂起功能,是否提供任务优先级动态改变功能等等。INCLUDES.H 系统头文件,整个实时系统程序所需要的文件,包括了内核和用户的头文件。

3.3用户图形接口

虽然 μC/OS-II 操作系统具有很高的实时性,但不像 WINCE、uCLinux 等操作系统那样 有良好的图形界面支持。所以,在使用液晶和触摸屏的情况下需要移植用户图形接口程序。这里使用的是 μC/GUI。μC/GUI 是一个软件模块集合,通过该模块可以在我们的嵌入式产品 中加入用户图形接口(GUI)。μC/GUI 具有很高的执行效率,并且与处理器和 LCD 控制器相 独立。该模块可以工作在单任务或者多任务环境,可以支持不同大小的显示方式。

通过 μC/GUI 我们可以很方便的在液晶屏绘制图形和界面。如果需要多种字体支持,必 须自己将相应的字体字库加入到 μC/GUI 中。为了避免出现乱码,尽量使用 GB2312 国标字库。

3.4关于字库的兼容性问题

我们国内通常使用的汉字字库是 GB 码,但国际上使用的是 UNICODE 码,所以如果数据终端使用的是手机、PDA 等移动通信设备,那么在数据发送前必须进行字码转换,即 GB 码 转换为 UNICODE 码或者 UNICODE 码转换为 GB 码。由于 GB 码与 UNICODE 码在排列组合上没有任何规律,所以通常字码转换的方法就是 查表法。

4结束语

基于 ARM9 嵌入式系统的远程监控系统与以往的监控系统不同,高性能的处理器芯片大大提高了系统的性能。使监控系统能够工作在比较恶劣的环境中。并且在设计上充分考虑到了系统的可扩展性和兼容性问题,实现了本系统与其他系统的无缝连接。以满足不同工作环 境的需要。

ARM嵌入式系统分析 篇3

关键词:ARM;嵌入式;系统;硬件设计

随着互联网技术的迅猛发展,对各个产业都产生了深远的影响。尤其是对现代化通讯技术的影响更是深远。嵌入式系统在信息技术处理得到了很好的应用,并在通信技术上取得了长足发展,嵌入式系统越来越引起业内的关注,使专家学者对其进行深入的研究,它的重要性慢慢的让更多的人所认识,并逐渐引起关注。在今后一段时间内,其功能会越来越丰富,实用性也会越来越强,最终发展成为以数字为导向的技术,数据处理、数据管理、数据等系统。嵌入式系统随着计算机技术的发展而演变出来的,它的核心是围绕计算机技术基础展开的,应用才是最核心的内容,系统的硬件有可裁剪性,系统的软件也有其可裁剪性,可以满足专用计算机系统的要求,进而其功能、成本、功能以及体积等方面的要求也就自然而然的得到了满足。嵌入式系统最突出的优势是什么呢?这也是很多研究者深入挖掘的一个问题,它的人性化设计使其最大的特点,一切都是从用户的现实需求出发,裁剪对系统的硬件及软件发挥着重要的作用,在满足条件的基础上,有效的提升集成度,对今后发展系统的智能化、网络化有着很大的意义。

一、嵌入式系统原理综述

基于ARM视域下的嵌入式系统有其自身的独特性,它以计算机系统为依托,开发相应的特色的功能,满足市场的需要,嵌入式系统的构成是有很多的因素构成的,它基本上包含软硬件两个部分,硬件包括硬件系统设备平台,软件包括ARM操作系统以及嵌入式的应用软件。嵌入式的系统不是一个孤立硬件或软件的系统,它能够集硬件与软件为一体,并且在双方互不干扰的情况下独立完成工作的效果,与其他系统的相关的硬件系统尤其相似性,如硬件系统中有的设备平台,这与一般的计算机处理器有着同样的功效,储存器和处理器这两种输入和输出的设备在ARM系统与一般的计算机系统都是有的,这些共同构成了嵌入式系统的基本硬件。

基于ARM的嵌入式系统在实际应用中与一般的计算机系统也有其不同之处,它的容量和信息储存处理非常的简单,摒弃了之前繁杂的计算,最后也不能有效的进行输出。嵌入式的操作系统是先进的系统,在系统信息处理中占据主体地位,嵌入式系统的信息处理的主要方向是什么,功能调整控制的主要方向是什么,嵌入式系统操纵进入了人们的眼帘,并能展示出来其有效性。嵌入式的操作系统是以嵌入式的系统软件为核心,并进行相应的处理,最终实现嵌入式系统应用,在一定程度上完善嵌入式系统的开发。

它有着以下两个主要特点。(1)系统精简。嵌入式的系统融合了先进的计算机技术,并吸取了电子行业的经验,并将其现成的技术贯穿到了该系统里面,实现了扬长避短的效果,进而实现了前所未有的高效高能的集成系统,这种系统在现有的市场中也形成了一个良性的发展模式,并采取兼收并包的措施,积极的建立起在相应的行业中,不断吸收先进的经验来完善自身。(2)针对性强。定向设计是最近这几年流行的词汇,这个词在该领域也是有其深远的意义。嵌入式系统其实就是定向设计,在使用上更具有针对性,也突出了其专业性。嵌入式系统以客户的需求进行相应的定向设计与开发,当客户的需求满足的时候,必然会提升自身的性能,它在体量上就与以往的系统发生了很大的变化,它的集成能力就是非常大的,有利于集成系统的丰富和发展。

二、基于ARM的嵌入式系统硬件的整体设计与细节内容研究

对于数控系统的整体方案设计过程来说,该项设计内容不是孤立存在的,而是要从整体的数控系统出发,能够符合整体数控操作系统的要求,把这个方案设计的更加完美,才能称之为完善的设计方案。数控装置实质我们要剖析清楚,把计算机技术的支撑做牢,搭建操作控制硬件平台。在对传统的数控系统构造更新改造的基础上,基于ARM的嵌入式数控系统硬件平台就发生了很大的变化,其功能有了较大的改善,为实际生产工作带来了诸多便利。

现阶段,我国专家学者对于数控系统内容的探究一直在继续,因其对社会生产实践具有极大的研究价值。随着电子计算机技术的应用,网络信息技术的迅猛发展,嵌入式数控系统的硬件设计内容也在逐年更新换代,并进行了多次的改革,使得升级后的硬件系统发生了质的飞跃,更能够符合现代工农业生产对技术领域的要求。

(一)处理器设置。基于ARM视域下的嵌入式系统硬件有其独特性,尤其是在处理器上更是有着非同的反响,其自身特有的优势是很多处理器无法抗衡的,它的处理器有很多的优点,不仅在体积上有其灵活性,在资源的消耗上也有它的独特性,属于低耗能的能源,同时还有较好的性能,保护系统也是独一无二的。所以ARM的嵌入式处理器的优势是显而易见的,它的应用性在网络产品中运用得十分广泛。处理器是硬件系统的大门,是非常重要的一个环节,它是系统运行的核心,针对处理器的设计要注重性能、质量以及保护,要摒弃繁杂的成分,不断提升处理器的运用效率,从而实现整个系统的高效使用。

(二)外围接口设置。嵌入式的硬件系统需要选择合理的配件,各个硬件之间的连接和组合都要做到优化,从而让个配件之间的配合取得良好的效,能够有效地提升运作质量和效率。外围接口的设计要注重巧妙和灵活,尽量小化,要符合嵌入式的特点。通过设计较为精简的外围接口,可以有效地保证硬件系统运行的稳定性和持续性。针对嵌入式系统最好的外围接口设计要能够完美地将处理器和接口连接在一起,达到无缝的效果。外围的电路要尽量精简,不仅能够有效地节省成本,还能够适当地压缩硬件系统的体积。

(三)针对性设计。基于ARM的嵌入式硬件系统特点,要根据实际需求来进行设计,不同的用户有着不同的需求,不同 的项目需要不同的设计需求。嵌入式系统设计为最关键,其他的各项设计都是起辅助作用,围绕这个最关键的嵌入式系统展开并继续的。因为嵌入式硬件系统有着自身的特点,它的使用周期长,所以要考虑系统软件的设计,对硬件的升级也要有所考虑,从而实现整体系统的正常运营,并且合理的迎合实际需要。在正式的系统设计投入运用前,我们也要考虑相关的因素,需要调试现行试验程序的配置,在有限的时间内进行必要的模拟运行,通过不断的调试来不断系统,进而满足用户和项目的实际需求,使其更好地为系统运行提供服务。

(四)软硬件协作处理设计。嵌入式的硬件系统运行要有软硬件的相互协作才能实现其最大的价值。该系统需要有对应的软件来配套,硬件也不能马虎,对硬件要进行周密的设计,在设计的基础上进行详细的分析。嵌入式在设计过程中需要软件硬件的通力协作,刚开始的设计就要考虑到软硬件的在某种程度上的划分,根据某种程度上的划分,对软件硬件的功能用固定区域来进行限制,使部分的功能发挥最大的作用,进而实现整体效果的优化,让整体的功能和效益得到最大价值的发挥。

结束语:通过对数控系统的运作机理进行研究,并结合国内外在实践过程中常用的数控系统硬件结构的设计内容,提出了基于ARM的嵌入式数据控制系统硬件平台的设计方案。该设计能够将ARM、FPGA低功率的特征发挥出来,采用低功率的设备及器件组合,构建了低功耗的硬件系统电路。总之,该系统设计的内容符合当前工业生产所需达到的标准,具备一定的实践价值。

参考文献:

[1] 蔡建平. 关于嵌入式应用开发技术[J]. 单片机与嵌入式系统应用. 2001(03)

ARM嵌入式系统分析 篇4

嵌入式系统的引导过程,就是指从CPU上电或复位的时刻起,直到操作系统内核开始执行的全过程。引导过程的最终目的是为操作系统的运行准备好硬件和软件环境。在PC机中,CPU上电或复位以后,首先由BIOS检测系统各项硬件资源,然后由引导设备的主引导扇区中的引导程序加载操作系统,再跳转到操作系统入口处,将控制权交给操作系统,然后执行操作系统。而在嵌入式系统中没有专门的BIOS,所以以上的功能通常都由引导装载程序(Bootloader)来完成。Bootloader是用于初始化CPU及其他目标板上硬件设备,为嵌入式操作系统内核提供硬件信息,并装载和引导嵌入式操作系统内核的固件,它是CPU上电或复位以后执行的第一段代码,在嵌入式系统的开发过程中起着非常重要的作用。

1 常用Bootloader简介

1)ARMboot

ARMboot是一个为基于ARM系列微处理器的嵌入式系统所设计的开放源码项目,目前已经与PPCBoot合并成新的项目U-Boot。

ARMboot专用于支持ARM7,ARM9,Strong ARM,XScale等ARM系列的微处理器。

ARMboot支持多种类型的Flash存储器,可通过bootp、dhcp、tftp等协议从网络下载映像文件,并且支持PCMCIA和CF等存储卡引导系统。

2)U-Boot

U-Boot全称为Universal Bootloader,是一个遵循GPL的开放源码项目,由PPCBoot以及ARMboot等发展而来。

U-Boot支持的处理器包括Power PC、MIPS、ARM和x86 等不同体系结构的多种系列。U-Boot与Linux的关系非常紧密,一部分源代码也来自于Linux源码,为Linux内核的引导提供了特别的支持。

3)Blob

Blob全称为Boot Loader OBject,最初是专门为使用Strong⁃ARM系列中SA-1100处理器的LART板所设计的,现在已经移植到多种平台上。

Blob的主要功能包括初始化硬件(CPU,存储器,中断控制器,串口等),引导Linux内核以及为Linux内核提供虚拟盘(Ramdisk)支持,下载Linux内核或Ramdisk到目标板上,烧写Flash存储器,确定存储器布局,向Linux内核传递命令行等。

4)vivi

vivi是由韩国MIZI公司为ARM系列处理器设计的一个Bootloader,支持SA-1110,S3C2400,S3C2410,PXA250 等处理器,目前仅支持通过串口与主机通信。

vivi易于增加对新处理器和新目标板的支持,易于移植设备驱动,支持多种MTD驱动,可以下载测试代码到RAM中执行。

2 Bootloader的典型结构

虽然Bootloader的种类很多,但是其基本结构框架都是比较相似的。由于Bootloader需要对系统硬件进行检测和初始化设置,其中的很多代码都直接对CPU和其他硬件设备进行操作,因此Bootloader依赖于CPU的体系结构和目标板具体的硬件配置,所以大多数的Bootloader都分为stage1和stage2两个部分。

2.1 stage1部分

stage1部分主要包括依赖于CPU体系结构和目标板上具体硬件配置的那部分代码,通常用汇编语言来实现,这样可以使代码短小精悍,执行速度最快。这部分的主要功能如下:

2.1.1 初始化硬件

Bootloader第一步要完成的工作就是对目标板硬件的初始化,主要包括禁止看门狗,禁止中断,设置CPU和总线时钟频率,初始化LED数码管和串口等。根据AMBA总线协议,CPU的时钟频率FCLK、AHB总线(Advanced High-performance Bus)的时钟频率HCLK和APB总线(Advanced Peripheral Bus)的时钟频率PCLK可以配置成倍比关系。AHB总线是高速总线,一般用来连接内存等高速设备,APB总线是低速总线,一般用来连接串口,通用I/O口等低速设备。通常FCLK : HCLK : PCLK的比例为1 : 2 : 4,即如果CPU时钟频率为200MHz,则AHB总线时钟频率为100MHz,APB总线时钟频率为50MHz。

2.1.2 加载并执行stage2

为了获得更快的执行速度,以及便于存放变量和堆栈,通常需要把Bootloader的stage2部分加载到RAM空间中执行。由于stage2 通常是C语言代码,因此在分配空间时,除了考虑stage2 程序映像的大小外,还必须考虑所需堆栈空间的大小。为了确保所分配的地址空间的确是可读写的RAM空间,还必须对其进行检测。然后将stage2代码从Flash上拷贝到RAM空间中,并设置堆栈指针SP,由于堆栈是向下生长的,因此通常把SP设置为stage2 的RAM空间的最顶端。接着修改PC寄存器的值为stage2 的入口地址,从而开始执行stage2 部分。Boot⁃loader通常用一小段汇编代码作为stage2 的入口点,然后在这段汇编代码中用跳转指令跳到main() 函数的起始地址处执行。

2.2 stage2部分

stage2部分主要包括和CPU体系结构以及目标板上其他硬件配置无关的那部分代码,也包括一些复杂硬件的初始化代码,通常用C语言来实现,这样可以实现更复杂的功能,并且保证了代码的可读性和可移植性。这部分的主要功能如下:

2.2.1 检测内存映射

所谓内存映射(Memory Map),就是指在整个RAM地址空间中有哪些地址范围被分配用来寻址真正的RAM单元。在嵌入式系统中通常只将整个RAM地址空间中的一部分映射到实际的RAM单元上,因此stage2必须首先检测系统的内存映射情况,为内核映像和根文件系统映像的加载做好准备。

2.2.2 加载内核映像和根文件系统映像

根据嵌入式系统的具体配置,将操作系统的内核映像和根文件系统映像从Flash存储器中读取到RAM空间中的相应地址。

2.2.3 启动内核

在启动Linux内核之前,可以通过设置内核启动参数,向内核提供一些内核自己不能检测出的硬件信息,或者覆盖内核检测出的信息,可以通过标记列表(tagged list)或命令行参数(command line)的形式来传递启动参数。Bootloader启动Linux内核的方法通常是直接跳转到内核的第一条指令处。这样就将控制权交给了操作系统,从而完成了整个引导过程。

3 Bootloader的移植过程

嵌入式Linux系统的引导过程比较复杂,和系统硬件及操作系统内核都有着密切的关系,自己重新编写Bootloader难度较大。所以,通常都是选择一个最接近要求的现有Bootloader程序,然后根据需要进行修改后再应用到目标板中,这就是Bootloader的移植。

由于Bootloader依赖于CPU的体系结构和目标板具体的硬件配置,因此对于两块不同的嵌入式目标板而言,即使它们使用的是同一种CPU,要想让运行在一块板子上的Bootloader程序也能运行在另一块板子上,通常也需要对Bootloader进行移植。

Bootloder的移植过程包括以下步骤:

1)选择参考板

根据目标板的具体硬件配置,选择一个与目标板采用同一种或者同一系列的CPU,其他硬件配置也最接近的参考板。

2)确定Bootloader的存放地址

Bootloader是CPU上电或复位以后执行的第一段代码,所以Bootloader的存放地址必须和CPU硬件复位向量所指向的地址相一致。在基于ARM系列的嵌入式Linux系统中,通常将Bootloader放在地址0x0处。

3)修改相关文件

对参考板的Bootloader程序进行修改,需要修改的文件包括stage1 的汇编语言文件(如vivi中的head.S文件或U-Boot中的start.S文件等)和stage2 中与硬件配置(如Flash,串口等)有关的C语言文件。

4)烧写Bootloader并调试

使用Flash烧写程序将Bootloader烧写到Flash中,烧写完成后,重启目标板,使用超级终端(Windows下)或minicom(Linux下)通过串口查看Bootloader的启动信息,或者进入命令行状态调试。

4 总结

Bootloader初始化和检测系统硬件,然后加载和运行操作系统内核,这些工作为整个嵌入式Linux系统的顺利运行,准备好了硬件和软件的环境。因此,对Bootloader的研究和应用在嵌入式系统开发中有着非常重要的作用。

摘要:引导装载程序(Bootloader)是嵌入式系统CPU上电或复位以后执行的第一段代码,在嵌入式系统的开发过程中起着重要的作用。该文分析了引导装载程序的功能与结构,并介绍了其移植过程。

关键词:嵌入式系统,引导装载程序,ARM,Linux

参考文献

[1]ARMboot[EB/OL].(2002-08).http://sourceforge.net/projects/armboot.

[2]U-boot[EB/OL].(2002-08).http://sourceforge.net/projects/u-boot.

[3]Blob[EB/OL].(2002-01).http://sourceforge.net/projects/blob.

ARM嵌入式系统分析 篇5

科技改变生活,科技为人类带来了更舒适更方便的解决方案,智能家居是现代化科技的体现,智能家居也正是在应人们需求下而产生的。

本设计的内容是设计一个基于ARM的智能家居远程监控系统。整个硬件控制系统有以下模块:控制主机STM32F103VET6、无线短信收发模块GPRS(远程监控的主要模块)、用于显示的LCD1602液晶显示屏(显示测量出来的温湿度值)、测量外部环境温湿度的温湿度传感器DHT11,异步电机28BYJ-48(模拟控制窗帘收放用到的控制器)、蜂鸣器(报警用)、LED灯(模拟室内各种灯)、继电器(模拟室内各种电器的控制开关)。

温湿度传感器测量出来的温湿度数值通过LCD1602来显示,当超过设定的阈值将通过GPRS模块发送警报短信到指定的手机上,同时也可以由手机发送特定短信到GPRS上控制LED灯的亮灭、控制28BJY-48步进电机的正反转、读取当前室内的温湿度并发送回手机上,实现远程监控的。关键词 智能家居;远程监控;GPRS;ARM Abstract Technology has changed life, science and technology has brought to mankind more comfortable and more convenient solution, smart home is a manifestation of modern technology, smart home is also in demand should be generated by people.The content of this thesis is to design a remote monitoring system of smart home based on ARM.The entire hardware control system has the following modules: the host controller STM32F103VET6, wireless SMS transceiver module GPRS(the main module of the remote monitoring), LCD display(to display the temperature and humidity measured values), temperature and humidity sensor,DHT11, be used to measure the external environment temperature and humidity, asynchronous motor 28BYJ-48(analog controller curtain used), a buzzer(alarm), LED light(simulated indoor lamps), a relay(control switch simulation of indoor each kind of electric appliance).The temperature and humidity value measured by the temperature and humidity sensor and displayed by LCD1602, when more than a set threshold an alarm SMS will be sent by GPRS module to the designated mobile phone, but also can be caused by the mobile phone to send a specific message to the GPRS to control LED light, 28BJY-48 stepper motor reversible, read the current indoor temperature and humidity and sent back to the mobile phone.Keywords smart home;remote monitoring;GPRS;ARM II

目 录

摘要.......................................................................................................................I Abstract...............................................................................................................II 第1章 绪论........................................................................................................1 1.1 课题背景..................................................................................................1 1.2国外的发展动态.......................................................................................1 1.3 国内的发展动态......................................................................................2 1.4 本文各章主要安排..................................................................................2 第2章 各个硬件模块的说明............................................................................3 2.1 主控模块..................................................................................................3 2.1.1 STM32的系统架构............................................................................3 2.1.2 STM32F103VET6的内部资源..........................................................4 2.2短信收发模块GPRS................................................................................7 2.3温湿度测量模块.......................................................................................8 2.3.1 DHT11的引脚说明............................................................................8 2.3.2 DHT11的工作原理............................................................................9 2.4 温湿度液晶显示模块LCD1602............................................................11 2.4.1 LCD1602的管脚说明......................................................................12 2.4.2 LCD1602的特性..............................................................................12 2.4.3 LCD1602的基本指令......................................................................12 2.5 收放窗帘模块步进电机28BJY-48.......................................................14 2.5.1 步进电机的工作原理......................................................................14 2.5.2 步进电机的引脚接线......................................................................14 2.6 本章小结................................................................................................15 第3章 硬件系统的设计..................................................................................16 3.1 直流稳压电源的设计............................................................................16 3.2 STM32最小系统的设计........................................................................17 3.2.1电源的供电方案...............................................................................17 3.2.2 晶振电路..........................................................................................17 3.2.3 复位电路..........................................................................................18 III 3.2.4 串口驱动电路...................................................................................18 3.3 步进电机、继电器驱动电路设计.........................................................19 3.4 本章小结.................................................................................................20

第4章 软件程序的设计...................................................................................21 4.1 主函数及TIM2中断服务函数设计......................................................21 4.1.1 主函数及TIM2中断服务函数程序代码........................................21 4.1.2 主函数及TIM2中断服务函数程序流程图....................................23 4.2 GPRS来信中断处理函数设计...............................................................24 来信中断处理函数程序代码.................................................24 4.2.2 GPRS来信中断处理流程图.............................................................26 4.3 GPRS的AT指令....................................................................................27 4.3.1 本设计中用到的AT指令................................................................27 4.3.2 PDU编码...........................................................................................27 4.3.3 AT指令的使用程序设计..................................................................29 4.4本章小结..................................................................................................31 结论.....................................................................................................................32 参考文献.............................................................................................................33 致谢.....................................................................................................................35 附录一 整个硬件系统电路图...........................................................................36 附录二 开题报告说明.......................................................................................37 附录三 文献综述...............................................................................................38 附录四 中期报告...............................................................................................39 附录五 外文文献及其翻译...............................................................................40 附录六 完整的程序代码...................................................................................41 4.2.1 GPRS IV 第1章 绪论 第1章 绪论 1.1 课题背景

随着科技的提高,经济的发展,人们的物质生活水平的提高,对家居环境的要求也越来越高,作为家居智能化的核心部分——智能家居控制系统也越发显得重要。智能家居控制器可以为系统提供智能控制方案,使住户的控制更便捷,更高效,更能为家庭的日常活动节约不必要的能耗[1]。而且在现在这个注重绿色环保的世界里,智能的为住户控制好空气的湿度、温度等,检查分析空气成分,让住户安心入住。家居智能化控制的开发和建设是未来国家、经济发展的必然趋势。在科学技术日新月异的今天,智能家居产品也在不断发展寻求突破,用智能的方式缓和、解决社会矛盾,这是本课题的目的及意义所在。1.2国外的发展动态

1984年,世界上第一座智能建筑在美国的康涅迪格州建成,这座意义不一般的智能建筑是对一座旧式大楼在一定程度上的改造而完成的。它只是采用计算机系统对大楼的照明、空调、电梯等设备进行监控,并提供情报资料、语音通信、电子邮件等方面的信息服务。2000年,新加坡大约有5000户家庭采用了这种家庭智能家居化系统,而与此同时,美国采用这种智能家居化系统的用户已高达4万户。目前,在国外的家庭智能化系统技术己经越来越成熟,预计今后,越来越多的新房将会安装具有一定的“智能家居化”功能的系统。于此同时,由于科学技术的发展日益标准化,这些新型智能家居系统将会比世界首富比尔.盖茨耗资六千万美元的高端智能家居别墅便宜得多。

在家居智能化系统研发方面,美国及一些西方国家一直处于领先地位。近年来,以摩托罗拉公司及美国微软公司等为首的一些国外知名企业,先后加入到智能家居系统的研发中。比如:摩托罗拉公司开发出来的“居所之门”、微软公司开发出来的“梦幻之家”、IBM公司开发出来的“家庭主任”等都以日趋成稳的技术霸占家居市场。此外,亚洲国家日本、韩国、新加坡等国 的领头大企业也纷纷致力于家居智能化的研发,对家居市场更是跃跃欲试。1.3 国内的发展动态

1990年后,我国的智能家居化住宅小区日益兴起。我国的智能家居化住宅建筑最早起于广州、深圳和上海等沿海发达城市,并慢慢地向内陆发展。在1997年香港回归时,上海的中皇广场在建设部“97跨世纪住宅小区案竞赛活动”中被建设部科技委员会评为全国首家“智能住宅示范工程”,从此揭开了我国智能家居住宅小区发展的序幕。1999年,建设部住宅产业化办公室、建设部勘察设计司联合组织实施了全国住宅小区智能化技术示范工程,这也标志着我国的智能家居进入了一个新阶段。随着信息化技术日益普,国家经贸委领头成立了家庭信息网络技术委员会,同时信息网络技术体系研究及产品开发已经被列为了国家技术创新的重点专项计划。根据建设部的要求,截止今年,大中城市中50%的住宅要实现智能化[2]。

我国的智能家居建设相对于国外起步比较晚,尚未形成一定的国家标准。国内各大硬、软件企业机构正在积极的研发更为符合市场的智能家居化产品,以解决我国当前智能化设备使用复杂、产品价格昂贵及实用性差等缺点,而技术创新能力也逐渐向国际先进水平靠拢,这样智能家居的未来值得我们期待[3-4]。1.4 本文各章主要安排

本文第二章主要介绍了智能家居控制系统中用到的各个硬件模块,有主控模块STM32F103VET6、GPRS短信收发模块GTM900-B、温湿度测量传感器DHT11、液晶显示屏LCD1602、步进电机28BYJ-48。

第三章主要介绍了硬件系统的设计,重点描述各个功能模块电路图的设计及其功能。

第四章主要介绍了控制系统软件程序的设计,主要有主函数及TIM2中断处理函数的程序设计,GPRS来信中断处理函数的设计以及GPRS的AT指令的PDU编码过程。其中给出了主要程序代码及其程序流程图。第2章 各个硬件模块的说明 第2章 各个硬件模块的说明 2.1 主控模块

本设计整个系统的主控芯片选择的具有ARM内核Cortex-M3的STM32F103VET6。该芯片属于增强型的32位高性能微控制器,具有100引脚和高达512K字节的闪存存储器。2.1.1 STM32的系统架构

STM32VET6的系统架构包含4个驱动单元:Cortex-M3内核Dcode总线、系统总线、通用DMA1和通用DMA2;4个被动单元:内部闪存存储器Flash、内部数据存储器SRAM、FSMC和AHB到APB的桥。这些单元都是通过一个多级的AHB总线构架相互连接的,如图2-1所示。

ICode: 该总线将闪存指令接口与ARM的Cortex-M3内核的指令总线相连接。指令预取在此总线上完成。

DCode: 该总线将闪存存储器的数据接口和Cortex-M3内核的数据总线相连接(常量加载和调试访问)。

系统总线: 此总线连接Cortex-M3内核的系统总线到总线矩阵,总线矩阵协调着DMA与内核之间的访问。

DMA总线: 此总线将DMA的AHB主控接口与总线矩阵相联,总线矩阵协调着CPU的DCode和DMA到 内部闪存存储器Flash、内部数据存储器SRAM和外设的访问。

总线矩阵: 该矩阵协调DMA主控总线与内核系统总线间的访问与仲裁,仲裁采用轮换算法。总线矩阵包含4个驱动部件和4个被动部件。AHB外设通过总线矩阵与系统总线相连,允许DMA访问。

AHB/APB桥(APB): 两个AHB/APB桥在AHB和2个APB总线间提供同步连接。APB1操作速度限于36MHz,APB2操作于全速(最高72MHz)。有关连接到每个桥的不同外设的地址映射。在每一次复位以后,所有除SRAM和FLITF以外的外设都被关闭,在使用一个外设之前,必须设置寄存器RCC_AHBENR来打开该外设的时钟 3

图2-1 STM32系统架构

2.1.2 STM32F103VET6的内部资源

STM32F103VET6的引脚图如图2-2所示。

(1)内核:ARM的32位Cortex-M3微处理器;最高达72MHZ频率,Cortex-M3内部的数据路径是32位的,寄存器是32位的,存储器接口也是32位的。Cortex-M3采用了哈佛结构,拥有独立的Dcode总线和Icode总线,可以让数据访问和取指并行不悖,这样数据访问就不再占用Icode总线,从而提升了工作性能。为实现这个特性,Cortex-M3内部含有好几条总线接口,每条都为自己的应用场合而优化过,并且它们可以并行工作。第2章 各个硬件模块的说明 图2-2 STM32F103VET6引脚图

(2)存储器:512KB的闪存程序存储器;64K字节的静态数据存储器 5

SRAM,它可以以字节、半字(16位)或全字(32位)访问。(3)时钟和电源管理:

(a)三种不同的时钟源可被用来驱动系统时钟(SYSCLK):1)HSI振荡器时钟;2)HSE振荡器时钟;3)PLL时钟。

(b)STM32的工作电压(VDD)为2.0~3.6V,通过内置的电压调节器提供所需的1.8V电源;

(c)独立的A/D转换器供电和参考电压;

(d)一个完整的上电复位(POR)和掉电复位(PDR)电路;(e)可有3种不同工作模式的电压调节器;(f)可编程电压监测器(PVD)。

(4)通用和复用功能I/O(GPIO和AFIO):5组多功能双向5V兼容的通用I/O端口;可使用复用功能重新映射到其他一些引脚上。

(5)DMA控制器:支持定时器、ADC、SPI、IIC和USART等外设。(6)嵌套向量中断控制器:

(a)有68个可屏蔽中断通道(不包含16个Cortex™-M3的中断线);(b)16个可编程的优先等级(使用了4位中断优先级);(c)低延迟的异常和中断处理;(d)电源管理控制;

(e)系统控制寄存器的实现。

(7)模拟/数字转换(ADC):12位的ADC是一种逐次逼近型模拟数字转换器,它有多达18个通道,可测量16个外部和2个内部信号源。

(8)定时器:2个高级控制定时器(TIM1、TIM8);(a)4个通用定时器(TIM2、TIM3、TIM4、TIM5);(b)2个基本定时器(TIM6、TIM7);

(c)一个实时时钟、两个看门狗定时器和一个系统滴答定时器(Systick)。

ARM嵌入式系统分析 篇6

当前,嵌入式的技术应用越来越广发,从航天科技到民用产品,嵌入式产品的身影无处不在,而这些嵌入式产品的核心——处理器决定了产品的市场和性能。在32位嵌入式处理器市场中,ARM处理器占有很大份额。ARM不仅是一个公司、一种技术也是一种经营理念,即由ARM公司提供核心技术,只出售芯片中的IP授权,采取了别具一格的“Chipless模式”(无芯片的芯片企业),不参与生产,而是由合作厂商去生产具体的芯片和产品。

现在由于存储空间等原因,在嵌入式芯片上编程有较大的困难,选取合适的平台就显得很重要。由于Linux是开放源码的操作系统,吸引着全世界的程序员参与到发展和完善的工作中来,所以Linux保持了稳定而且卓越的性能。由于源代码可以修改、移植,Linux在嵌入式领域中的应用也越来越广。选用Linux作为平台,可以根据具体需要自由裁减源码,打造适合目标平台的环境,编写最有效率的应用程序。

可以预见,ARM与Linux在未来已经越来越壮大,在嵌入式产品市场上会占有越来越大的份额。在这种形式下,学习和研究ARM非常有必要,所以在这里介绍一下关于基于Linux系统的ARM9嵌入式系统设计的基础理论。

首先进行一下ARM开发环境的简介:

根据功能的不同,ARM应用软件的开发工具可分为编辑软件、编译软件、汇编软件、链接软件、调试软件、嵌入式实时操作系统、函数库、评估板、JTAG仿真器、在线仿真器等。因此,一套含有编辑软件、编译软件、汇编软件、链接软件、调试软件、嵌入式实时操作系统及函数库的集成开发环境一般来说是必不可少的。至于嵌入式实时操作系统、评估板等其他开发工具则可以根据应用软件规模和开发计划选用。使用集成开发环境开发基于ARM的应用软件时,其中涉及的编辑、编译、汇编、链接等工作可全部在PC机上完成,调试工作则需要配合其他的模块或产品完成。目前进行ARM嵌入式系统开发常见的开发工具主要有Real View MDK、IAR EWARM、ADS1.2、WinARM等。

RealView MDK开发工具是ARM公司目前最新推出的针对各种嵌入式处理器的软件开发工具。RealView MDK集成了业内最领先的技术,支持所有基于ARM的设备,能够自动配置启动代码,集成了flash烧写模块,还具有强大的仿真模拟、性能分析等功能。

IAR Embedded Workbench for ARM是IAR System公司为ARM微处理器开发的一个集成开发环境。比较其他的ARM开发环境,IAR EWARM具有入门容易、使用方便和代码紧凑等特点。IAR EWARM中包含一个全软件的模拟程序,用户不需要任何硬件支持就可以模拟各种ARM内核、外部设备甚至中断的软件运行环境。由于ADS集成开发环境已经不再更新,因此无法支持新推出的微控制器芯片,而IAR EWARM在持续的更新环境中,因此IAR EWARM将成为越来越多的人进行嵌入式系统开发的首选开发环境。

基于ARM芯片的应用系统,多数为复杂的片上系统。在该复杂系统中,多数硬件模块都是可配置的,配置工作需要由软件预先完成。因此在用户的应用程序运行之前,需要专门的一段代码来完成系统基本的初始化工作。由于此类代码直接面对处理器内核和硬件控制器进行编程,所以一般使用汇编语言实现,这里我们称之为硬件启动程序。

在应用系统的程序设计中,如果所有的编程工作都由汇编语言来完成,其工作量巨大,并且不容易移植。由于ARM处理器的运算速度高,存储器的存取速度和存储量也很高,因此大部分编程工作可以使用c语言来实现。由此可见,c语言在ARM编程中具有非常重要的地位。

其次介绍一下ARM9嵌入式系统开发的过程:

第一,嵌入式软件开发的特点。学习嵌入式开发的过程,首先要了解嵌入式开发的特点。嵌入式系统与通用计算机在以下几个方面的差别比较明显:

一是人机交互界面,这是最大的区别,因为嵌入式系统很可能就不存在键盘,显示器等在计算机中常见的实现人机交互的设备,它所完成的事情也只能是不同的传感器的变化情况,并且按照事先规定好的过程仪式完成相应的处理任务;二是功能是有限的,嵌入式系统只能反复执行设计时已经定制好的并且在开发完成后不再变化的功能任务;三是时间的关键性和稳定性,大部分的嵌入式系统因为功能要求实时响应并且受到工作环境的影响很大,需要选择合理的硬件和保护措施,保证系统的稳定性可以正常运行。

除此之外,还要了解嵌入式软件开发具有的自身特点:

一是需要交叉的开发环境;二是引入设计方法;三是固化的程序;四是开发的难度很大。

第二,嵌入式软件开发的流程。嵌入式软件的开发因为它的开发难度大等自身特点,需要将硬件、软件、人力资源等集中起来,并进行适当的组合以实现目标应用对功能和性能的要求,而且实时性和功能一样重要。这就使嵌入式开发关注的方面更广,精准度更高。嵌入式软件开发的每个阶段都体现着嵌入式开发的特点。

一是需求分析阶段;二是设计阶段;三是生成代码阶段;四是固化阶段。

第三,嵌入式系统的调试。在进行嵌入式软件开发过程中,可以选择不同的调试方式,但应根据实际的开发需求和实际的条件进行选择,有以下几种主要的调试方式。

一是源程序模拟器方式;二是监控器方式;三是仿真器方式。

嵌入式系统的调试方法被分成不同的层次,就调试方法而言,分为硬件调试和软件调试两种。在使用硬件调试的时候,可以获得比软件调试功能更强大的调试性能,但是有的时候会价格昂贵,需要合适的开发工具。软件调试可以分为操作系统的内核调试和应用程序的调试,前者的操作比较困难,因为操作系统内核不方便增加一个调试器程序,而后者相对比较简单。

在这里我们只是对ARM9嵌入式系统做一个基础理论的讲解。嵌入式技术正在飞速发展,并期待着各种行业的深入渗透。我国具有雄厚的制造业基础,与传统的制造业结合,嵌入式系统有着巨大的市场空间。同时,基于嵌入式的应用可技术创新,将推动新产品、新产业的诞生。在新的高科技浪潮来临之际,我国正全力迎接机遇和挑战,嵌入式领域方兴未艾,Linux也越来越成熟,我们需要掌握更新的知识,实现自我价值,为祖国贡献力量!

参考文献:

[1]马忠梅,马广云,徐颖慧,等. ARM嵌入式处理器结构与应用基础(2版)[M].北京:北京航空航天大学出版社,2007.

[2]马忠梅,李善平,等. ARM&Linux嵌入式系统教程(3版)[M].北京:北京航空航天大学出版社,2014.

作者简介:刘阳(1993—),男,辽宁盘锦人,沈阳理工大学学生。

龙潜(1995—),男,江苏连云港人,沈阳理工大学学生。

ARM嵌入式系统分析 篇7

1 基于ARM嵌入式系统的综述

1.1 ARM

什么是ARM架构?它是一个32位元精简指令集中处理器结构, 在这个架构作用下的产品主要的特点有功耗低、成本廉价[1], 一般有RISC处理器以及与之相关的技术和软件等, 在现代社会中被广泛应用于多媒体、DSP以及嵌入式控制等相关领域中。因为它自身具有十分明显的节能效果, 因此, ARM处理器在移动通讯领域应用十分广泛, 这与其设计目标——耗电低的特性是相一致的。

1.2 嵌入式系统

嵌入式系统包含有软件和硬件两大部分, 前者有ARM操作系统;后者包括硬件系统的设备平台。从其自身结构的构成来讲, 主要包括存储器、处理器、输入输出软件等部分, 其中处理器是核心组成部件, 发挥着关键性的作用。虽然现在这方面的处理器类型有很多, 但是就其自身的应用效果来说, 嵌入式处理器还是具有高性能、能耗低优势的[2], 那么除了处理器外, 另一个重要的部分就是存储器了, 对于它来说, 它需要和处理器保持一致, 就单单功能发挥方面来说, 存储器的稳定性和容量大小需要特别关注, 剩下的其他外围设备在进行选择时只需要从实际需求来定就可以了。

2 基于ARM嵌入式系统的整体内容和内容设计分析

我国对于这方面的研究工作一直处于不断的发展中, 随着网络计算机技术的普及, 嵌入式系统的设计内容也在逐渐变化改进, 越来越符合现代生产的需求。

2.1 处理器方面的设计分析

ARM基础上的嵌入式系统在硬件上有明显的独特性, 它自身所具有的优势特点是很多现有处理器无法比拟的, 它不仅在体积大小上有很强的灵活性, 而且也不会浪费资源, 性能作用十分良好, 在实际应用中是十分明显的[2]。处理器作为硬件系统的重要环节, 它的地位是核心位置, 那么依据于处理器设计的要求, 就要重点关注它的性能、质量以及保护, 精简成分, 促进处理器运作效率的提高, 从而保证系统使用的高效完美。

2.2 外围接口的设计分析

对于嵌入式系统的硬件来说, 在进行设计时要选择适合的配件, 并且保证各个配件之间的衔接和组合都是完美合理的, 这样可以有效确保其整体运作质量的提高。对于外围接口的设计来说, 要保证灵活和巧妙, 尽可能的保证小巧化, 与嵌入式系统的自身特点相吻合, 精简的外围接口设计, 可以大大提升硬件系统运作的安全性和稳定性, 对于嵌入式系统最佳的外围接口设计来说, 还需要确保处理器和接口顺利连接在一起, 不能出现漏缝, 外围部分的电路设置也要尽可能的精简化, 减少不必要的设备, 这样不仅可以压缩体积, 还可以节约成本。

2.3 针对性的设计分析

ARM基础上的嵌入式系统由其自身的特点, 在设计时要严格按照实际所需, 针对于用户需求的差异来进行针对性设计。嵌入式系统的使用周期一般都很长, 因此, 在对系统软件进行设计的同时还要兼顾到硬件方面的要求, 以确保最后整体系统的运作良好, 满足实际需求。在整体系统实现正常运作时, 还需要对其他相关影响因素进行考虑分析, 对现行试验程序的配置进行合理的调试[2], 并在规定的时间内采取一系列必要的模拟运行, 这样在对系统不断的调试下来达到项目的实际需求, 使其更好的为系统运行发挥作用价值。

2.4 软件与硬件配合处理的设计分析

在嵌入式系统运作中, 它的硬件运行需要有相关软件的相互配合协作来完成, 使其可以发挥最大的价值作用[3]。设计人员在对嵌入式系统进行设计的过程中, 要把握硬件和软件两方面的基本要求, 保持两者可以有效协作, 共同发挥作用, 在设计之初就要考虑到软件和硬件在某种程度上的合理划分, 在这种程度上的划分基础上, 再对软件和硬件的基本功能采用一个固定的区域来进行一个限制, 限制的目的也是为了保证部分的功能作用可以最大程度的发挥, 这样也就可以实现整体效果的进一步优化完善, 从而确保了整体功能和效益的最大化体现, 而这对于嵌入式系统的整体运作也是十分关键和有利的。

3 结语

计算机技术和网络技术的不断发展, 给移动通讯行业注入了新的活力。基于ARM嵌入式系统的整体和内容设计来讲, 它的设计方案合理性可以完整的体现出系统所具有的独特优势特点, 能够最大程度的满足当前社会生产发展的实际需求, 在设计的过程中, 还要对各个环节有全面的分析研究, 确保各个环节的有效衔接, 从而确保设计工作的科学合理。

摘要:计算机技术和网络技术的迅速发展, 促进了现代通讯技术的革新和完善, 嵌入式系统所发挥的重要性越来越受到人们的重视。它是建立在计算机技术基础上的一种应用系统, 具有集成度高、体积小以及功耗低等的优点, 它在系统的智能化水平方面具有十分重要的现实意义。本文从ARM角度对嵌入式系统的整体以及内容设计进行了简单阐述。

关键词:ARM,嵌入式系统,内容设计

参考文献

[1]刘芳宇.基于ARM嵌入式系统的设计及其应用[J].计算机光盘软件与应用, 2012, (09) :173-174.

[2]白文哲.基于ARM的嵌入式系统硬件设计研究[J].企业导报, 2015, (07) :87-88.

ARM嵌入式系统分析 篇8

关键词:ARM9,嵌入式操作系统,调度算法

0 引言

嵌入式系统[1,2,3]朝着嵌入式网络的方向发展,从根本上改变了其结构。本课题将进行结构设计创新,ARM芯片的接口扩展设计尽可能达到小型化,整个设计成型设备能以ARM芯片为核心进行数据的处理与交换,全系统数据交换采用内部总线。这样的数据处理方式和程序扩展会有很大的好处,能更好地应用于移动终端、新型家电和远程监控等小型化产品中,可以预见这类应用将有一个质的改变。

而这种改变,目前市场只是在3G手机中得到应用,但手机终端在操作系统方面更多地是考虑提供一个3G业务应用平台。本课题在系统设计方面将做大量的操作系统剪裁,通信控制程序本身就是操作系统,这样可以大大节省Nand Flash等硬件资源,并可根据用户的特点进行设备的定制与扩展,这将有利于在汽车制造和工业控制领域中发挥作用。

在操作系统中的通信功能,信息处理与资源共享是计算机发展的最大诱因。因此通信功能在各个系统中都有使用,但各个通信的协议方式大都是各有特点的内部协议。本研究中可将TCP/IP的协议栈包含在系统程序中,并且可在链路层对特定的通信协议进行转换,能迅速与不同系统进行互联互通,使得本系统以嵌入式以太网的形式涉足于工业控制、建筑物自动化建设中。

1 调度算法[4,5,6,7,8,9,10,11,12]

调度算法是指在有限的处理单元上对具有某些已知特征的任务集执行顺序的设计。在嵌入式实时系统中,任务的执行要面对两种限制:时间限制和资源限制。实时任务要求系统有良好的响应时间以满足截止时间,在嵌入式系统中只有有限的RAM和CPU等资源,所以调度的好坏在很大程度上决定了系统的性能。

1.1 RMS调度算法

RMS算法是在1973年由C.L.Liu和J.Layland提出的。该算法是基于统计任务执行频率的一种任务调度方法。RMS算法将最高优先级赋予最高执行频率的任务,以单调的顺序对余下的任务分配优先级。分析中,RMS算法作了以下假设:

(1)所有任务都是周期性的;

(2)任务间不需要同步,没有共亨资源,没有任务间数据交换等问题;

(3)CPU必须总是执行优先级最高且处于就绪态的任务,即须用可剥夺型内核调度法。

由于采用抢占式的凋度方式,高优先级的任务就绪后立即抢占正在运行的较低优先级的任务。设系统中有n项不同的任务,由于RMS算法要求调度的独立的周期性任务总能满足其截止时间,即要求系统中的所有任务必须满足硬实时条件,于是有下列不等式成立:

式(1)中:Vk为任务k最长执行时间,Tk是任务k的执行周期,即任务k所需的CPU时间利用率。当系统中的任务数n趋于无穷大时,s(n)的值为Ln2,即0.693。于是,若要使所有的任务都满足硬实时要求,则有:

亦即所有有时间限制的任务的总CPU时间利用率应低于70%。其实,系统设计中,使CPU的时间利用率达到100%并不好。如果那样,程序就没有修改的余地了,也无法增加新的功能。实际情况下,CPU的时间利用率应在60%-70%以下。RMS算法的优点是灵活性强、开销小、可调度件测试简单。但在某些情况下,执行频率最高的任务并非最重要的任务。

1.2 EDF调度算法

抢占式EDF调度算法是一种动态优先级驱动的调度算法,其中分配给每个任务的优先级根据它们当前对最终截止时问的要求而定。当前请求的截止时间最近的任务具有最高的优先级,而请求截止时间最远的任务被分配最低优先级。这个算法能够保证在出现某个任务的截止时问不能满足之前,不存在处理器的空闲时间。C.L.Liu和J.Layland证明了对于一个具有n个任务的集合,截止时间驱动的调度算法的可行条件为:

任务的最长响应时间Tr是可测的,须满足Tr小于截止时间,任务才能被调度。对于Tr可用下式表达:

式(4)中:Tnn_i为任务i的执行时间;Tlok_i为任务i的闭锁时间;Tspd_i为任务i的调度开销时间;Trdy_i为任务j再次就绪的时间;max{T/Trdy_i}·Tnn_j为低优先级任务i被高优先级任务j剥夺后,高优先级任务占用的总时间。

抢占式EDF调度算法最大的优势在于,当系统的负载相对较低时非常有效,对于任何给定的任务集,只要处理器的利用率不超过100%,就能够保证它的可调度性。EDF的劣势在于不能解决过载问题,当系统负载较重时,可能引起大量任务错过截止时间,导致CPU的时间大量花费在调度上,这时系统的性能很低。

1.3 改进调度算法

在嵌入式实时系统中资源非常有限,所以开销要尽可能减小;而RMS和EDF调度算法的问题就在于它们的开销———运行开销和调度开销。本文以ARM9为例,结合Linux的调度算法,对ARM9内核的任务调度算法进行改进,使其成为抢占式与时间片轮转调度相结合的调度算法,而系统的开销并无多大改变。

以嵌入式通信控制系统中常用的数据采集任务为例,可将ARM9就绪表中的8个进程设为数据采集专用的进程。对于这8个进程,采用时间片轮转的任务调度算法,在TCB控制块中增加一项变量counter作为任务调度的权值。如果就绪队列中有优先级比这8个进程高的任务,则无条件让出CPU使用权,系统执行任务切换程序。如果当前就绪队列中优先级最高的进程属于数据采集专用的8个进程之一,则顺序遍历所有就绪的数据采集专用进程,计算其时间片counter的值,取出时间片最大的进程运行。若遇到时间片大小相同的进程,则取出优先级高的进程运行。改进后的任务调度算法如下:

#define TASK_COUNTER 30

#define OSPRIO_ACQ 5

Void OSMYSCHED(){

#if OS_CRITICAL_METHOD==3

OS_CPU_SR cpu_sr;

#endif

INT32 x,y,z,w;

OS_ENTER_CRITICAL();

//进入临界区,关中断

if(y!=OSPRIO_ACQ)

OSPRIOHIGHRDY=(INT32)((y<<3)+x);

else{

w=0;

z=OSRDYTBL[y];

while(z){

if((OSTCBPRIOTBL)[(INT32)((y<<3)+z)]->counter>w)

w=OSTCBPRIOTBL[(INT32)((y<<3)+2)]->counter;

OSPRIOHIGHRDY=(INT32)((y<<3)+z);

Z=OSUNMAPTBL[z];

}

}

if(w==0){

z=OSRDYTBL[y];

while(z){

OSTCBPRIOTBL[((y<<3)+z)]->counter

=TASK_COUNTER;//重新计算

z=OSUNMAPTBL[z];

}

OSPRIORDY=(INT32)((y<<3)+x);

}

If(OSPRIORDY!=OSPRIOCUR){

OSTCBRDY=OSTCBPRIOTBL[OSPRIORDY];

OS_EXIT_CRITICAL();//退出临界区,开中断

RMS算法和EDF算法能够保证在出现某个任务的最终期限不能满足之前,不存在处理器的空闲时间。因为EDF算法最大的优势之一在于,对于任何给定的任务集,只要处理器的利用率低于100%,任务的可调度性就能够保证。EDF算法还有两个特点:第一,任务调度基于最终截止时间,能够最大限度地保证实时性;第二,资源利用率高。改进的RMS算法和EDF算法将完整地继承这些优点。当然,改进的算法本身会占用一定的系统资源,但这不与RMS算法和EDF算法的优点相矛盾,也是在实现过程中难以避免的合理消耗。

2 结束语

嵌入式操作系统的性能优劣该如何评价,至今没有一个通行的标准,如果直接从任务的完成结果来衡量则不够量化。嵌入式操作系统的特殊性决定了对其评价的复杂性,因其应用广泛且类型各异,这就很难用单一的指标来衡量。而且多数嵌入式操作系统都是经过剪裁或定制为完成某个特定需求而研制甚至其应用成本都是考量因素之一,要想“量化”且尽可能全面的评定一个嵌入式操作系统的优劣,首先要看哪些因素影响着嵌入式操作,即哪些因素是最值得关注的。以下三个因素最为关键,第一,响应时间;第二,“任务死期”;第三,任务运行顺序。确立了以上三个标准,系统性能评价便有了依据,考察改进EDF算法的实时性也有了参考。一个系统的最快响应时间决定了该系统的“灵敏”程度,对于很多嵌入式操作系统来说,这往往是第一需要关注的。传统的任务调度方法,如优先级抢占算法,虽然能最大限度地发挥系统的速度,但当优先级反转现象发生时,其速度优势就会彻底丧失。而改进EDF算法的最快响应时间就是PS算法的周期系统的,是可以预期并保证的。对于不同的系统,最小时间片还可以进行调整,以满足不同的需要。任务“死期”则更是优先级抢占方法所不能满足的,甚至包括上面提到的两种“协议”也无法满足。而改进EDF算法则能从根本上满足该需求。任务顺序对于系统运行的影响还是比较小,改进EDF算法同样能有效地给予保证。可以看出,改进的任务调度算法首先具有“可量化性”。这样便可在系统应用或研发的开始做到防患于未然,或根据需要做合理的调整,确保有的放矢,以全面均衡地满足影响实时性的相关因素。其次,改进的RMS算法和EDF算法本身的特点决定了其对系统资源的高利用率,系统资源利用率高,就可以充分发挥系统性能,提高系统处理任务的吞吐量,缩短任务全部完成所需时间,从宏观上看,就是提升了系统整体的实时性。

参考文献

[1]Burchard A,Liebeherr J,Oh YF,Son SH.New strategies for assigning real-time tasks tomultiprocessor systems.IEEE Trans.on Computers,1995.44(12):1429-1442.

[2]Liu C L,Layland J W.Scheduling algorithms for multiprogramming in a hard real time environment[J].Journal of the ACM(S0004-5411).1973:47-61.

[3]Amd C.Heursch.Preemption concept,Rhealstone Benchmark and scheduler analysis of Linux Real-Time&Embedded Computing Confeernce,Milan,2001November:27-28.

[4]B.Andersson,J.Jonsson.Fixed-prlority preemptive multiProcessor scheduling:To partition or not to Partition.In:Proc.of the lnternational Conferenceon Real-Time Computing Systems and Applications.Cheju Island.Korea.2000:337-346.

[5]Bini E,Buttazzo GC,Buttazzo G.The space of rate monotonic schedulability.In:Proc.of the23rd IEEE Real-Time Systems Symp.(RTSS2002).Austin Texas:IEEE Computer Society Press,2002:169-180.

[6]J P Lehoczky,L Sha,J K Stronsnider.Enhanced aperiodic responsiveness in hard real-time environments.In:Proc of the8th IEEE Real-Time System Symposium San Jose,California:IEEE Computer Society Press,1987:210-217.

[7]Too-Seng Tia,Jane W-S Liu,M Shankar.Aperiodic request scheduling in fixed-priority preemptive scheduling Department of Computer Science,University of Illinois at Urbanar-Champaign,Tech Rep:UIUCDCSR,1994:1840-1859.

[8]Abeni L,Buttazzo G.Integrating multimedia applications in Hard Real-Time Systems.In:Proceedings of the19th IEEE Real-Time Systems Symposium.Los Alamitos.CA:IEEE Computer Society Press.1998:34-35.

[9]C L Liu,J W Layland1Scheduling algorithms for multiprogramming in a hard real-time environment Journal of the Association for Computing Machinery,1973.20(1):46-61.

[10]J P Lehoczky,L Sha,Y Ding.The rate monotonic scheduling algorithm:Exact characterization and average case behavior.In:Proc of the10th IEEE Real-Time System Symposium.Santa Monica,California:IEEE Computer Society Press.1989:116-171.

[11]A K Mok.Fundamenta.design problems of distributed systems for the hard real-time environment[PhD dissertation].Massachusetts Institute of Technology.1983.

基于ARM的嵌入式系统设计 篇9

1 系统总体概述

1.1 系统结构

本系统由ARM板、ADU3600板、显示器、母板等组成。

1.2 ARM处理器特点

ARM(Advanced RISC Machine)微处理器体系结构目前被公认为是嵌入式应用领域领先的32位嵌入式RISC微处理器结构,采用32位地址和数据总线,其地址空间达到了232=4GB[2],具有功耗低、性价比高和代码密度高等特点;大量使用寄存器,多数数据操作都在寄存器中完成,指令执行速度更快;寻址方式灵活简单,执行效率高。

1.3 ADU3600板特性

克服了惯性定向产品精度随时间和温度漂移的缺陷,用载波测量技术和快速求解整周模糊度技术,解算出两个GPS接收机天线处位置和两天线相位中心连线与真北之间的夹角。

2 系统硬件设计

2.1 数据接收电路

选用的GPS天线为零相位测量型天线,馈线与天线在阻抗、增益、放大倍数等方面与标配的天线有很好地匹配。

前天线:用天线馈线一端连接接口,另一端连接GPS前天线(前进方向)。

后天线:用天线馈线一端连接接口,另一端连接GPS后天线(后退方向)。

GPS后天线相位中心到GPS前天线相位中心的连线我们称为基线。基线与真北间的夹角我们称为方位角。基线越长定向精度就越高,通常基线长度增加一倍,定向精度也会提高一倍。应尽可能将两个天线安装间距拉长,这样可提高定向精度。

2.2 数据处理电路

接收板通过两条GPS天线接收到数据后,进行第一次数据处理、分类、打包等,然后通过串口把处理后的数据经由母板传送给主板,主板接收到数据后,进行第二次数据处理、分类、打包等一系列工作,最后通过显示屏把相应的数据进行显示,并同时通过串口经由母板把数据发送给外设。

2.3 接口电路

(1) 显示接口

液晶显示器(LCD)具有耗电省、体积小等特点,被广泛应用于嵌入式系统中。LCD显示器就是通过给不同的液晶单元供电,控制其光线的通过与否,从而达到显示的目的。

(2) 串行接口

本系统采用的RS-232C是由美国电子工业协会EIA制定并采用的一种串行通信接口标准,已经发展成为一种国际通用的串行通信接口标准。

3 系统软件设计

嵌入式软件可以分为三大类:系统软件、应用软件和支撑软件。系统软件控制和管理嵌入式系统资源,为嵌入式应用提供支持的各种软件,如设备驱动程序、嵌入式操作系统等;应用软件是嵌入式系统中的上层软件,它定义了嵌入式设备的主要功能和用途,并负责与用户进行交互;支撑软件是辅助软件开发的工具软件,如交叉编译器、在线仿真工具等。本系统中的系统软件和应用软件是运行在嵌入式设备上,支撑软件运行在普通PC机上。

3.1 板级支持包

设备驱动层也叫板级支持包(Board Support Package,BSP),它包含了嵌入式系统中所有与硬件相关的代码,并向上提供一个虚拟的硬件平台使操作系统运行其上。它包括引导加载程序Bootloader和设备驱动程序。Bootloader是在操作系统内核运行之前运行的一小段程序,通过这段程序,我们可以初始化硬件设备、建立内存空间的映射图、从而将系统的软硬件环境设置到一个合适的状态,以便为最终调用操作系统内核做好准备;设备驱动程序就是一组库函数,用来对硬件进行初始化和管理。并向上层软件提供良好的访问接口。

3.2 嵌入式操作系统(Embedded Operating System,EOS)

本系统采用的VxWorks是美国WindRiver System公司开发的一款嵌入式实时操作系统,具有良好的可靠性和卓越的实时性,是目前嵌入式系统领域中使用最广泛、市场占有率最高的商业系统。它基于微内核的体系结构,采用GNU类型的编译和调试器,多数API函数都是专有的。

3.3 集成开发环境

Tornado是WindRiver公司推出的一个集成开发环境[2]。

3.4应用软件

本系统程序采用标准C语言编写,在Tornado集成开发环境中调试,通过串口或网络通信线路传输并装载到ARM板中,最终脱离宿主机在ARM板中单独运行。

4 系统性能指标

(1) 定位误差不大于30 m,定向误差不大于0.06°;

(2) 定位定向不超过2 min;

(3) 阳光下可读的EL显示器;

(4) 总功率不超过10 W;

(5) 包装箱体积不大于410 mm×322 mm×216 mm,质量不大于20 kg;

(6) 适合于-40 ℃~50 ℃工作,适合于-55 ℃~60 ℃储存。

5 结束语

本系统在综合考虑硬件平台、嵌入式处理器、外围设备、接口电路的基础上进行硬件设计,经测试达到硬件的稳定性和可靠性要求;软件设计中嵌入式平台、操作系统、编程语言、集成开发环境的选择上充分考虑了系统的实时性和可扩展性。

摘要:依据开发周期中软、硬件的划分,介绍系统在ARM处理器强大功能的基础之上,运算、处理、显示ADU3600板收集到的数据的过程;在详细阐述系统综合性能指标的基础上展现了产品应用的广阔前景。

关键词:ARM,ADU3600,处理数据

参考文献

[1]李忠民,杨刚,顾亦然,等.ARM嵌入式VxWorks实践教程[M].北京:北京航空航天大学出版社,2006.

ARM嵌入式系统分析 篇10

根据公式 (1) 进行计算, 这样就可求得负载的功率。在测量负载的电流和负载两端的压降时所采用的方法可以归结为两大类:直接测量和间接测量。

直接测量, 就是利用电流表、电压表或万用表等仪器进行测量, 从而读出电流值和电压值, 最后通过计算得出功率的数值。

间接测量, 就是在负载端的电流或电压不方便或不能直接用万用表等仪器进行测量时, 通过一些其他方法间接的测量出负载端的电流和压降。初次之外, 还可以采用耦合的方法, 利用电磁感应来测量电流和压降。

1 嵌入式系统与嵌入式处理器

1.1 嵌入式系统

嵌入式系统是以应用为中心, 以计算机技术为基础, 软件硬件可裁剪, 适应应用系统对功能、可靠性、成本、体积以及功耗严格要求的专用计算机系统。嵌入式系统是设计完成复杂功能的硬件和软件, 并使其紧密耦合在一起的计算机系统。术语“嵌入式”反映了这些系统通常是更大系统中的一个完整的部分, 成为嵌入的系统。嵌入的系统中可以共存多个嵌入式系统。

某些情况下, 嵌入式系统在功能上是独立的系统。例如, 网络路由器是独立的嵌入式系统, 它由特殊的通信处理器、内存、许多网络访问接口 (称为网络端口) 以及实现包的路由算法的特殊软件组成。换句话说, 网络路由器是一个独立的嵌入式系统, 路由包从一个端口到另一个端口实现程序化的路由算法。

1.2 ARM7TDMI-S处理器

ARM7TDMI是目前低端的ARM核, 具有广泛的应用, 其最显著的应用为数字移动电话。

ARM7TDMI-S处理器是ARM通用32位微处理器家族的成员之一, 它使用流水线来增加处理器指令流的速度, 这样可使几个操作同时进行, 并使处理核存储系统连续操作, 能提供0.9MIPS/Mhz的指令速度执行。流水线使用3级, 因此指令分为3个阶段执行。

(1) 取指。

(2) 译码。

(3) 执行。

在正常操作过程中, 在执行一条指令的同时, 对下一条指令进行译码, 并将第3条指令从存储器中取出。

3阶流水线如图1所示。

注:程序计数器 (PC) 指向被取指的指令, 而不是指向正在执行的指令。

2 信号功率测量的方法

2.1 功率测量的原理

功率是指物体单位时间内做的功。也就是说, 功率是一个表征物体做功快慢的物理量。求功率的基本工式:功率=功/时间 (其中, P (功率) , W (功) , T (时间) ) 。对于信号功率的测量, 采用了“真有效值/直流 (TRMS/DC) 转换检测功率法”。

对于直接测量信号功率不是很方便且有一定难度, 因此我们需要避免直接测量。根据功率的计算公式:P=U·I, 我们可以通过测取信号的电流有效值和电压有效值, 然后将两者相乘就可得到信号的功率有效值了。

所谓真有效值即为“真正有效值”之意, 英文缩写为“TRMS”, 有的文献也称为真均方根值, 交流电压的有效值的表达式为:

近似公式为:

由以上两式可得出, 对输入电压依次进行“取绝对值→平方/除法→取平均值”运算, 也能得到交流电压的有效值。

同理, 我们也可得出电流的有效值。

真有效值仪表的的核心器件是TRMS/DC转换器。现在市场上这类单片的集成芯片很多, 真有效值仪表普遍使用了这类集成电路。单片集成电路具有集成度高、功能完善, 外围元件少, 电路连接简单、电性能指标容易保证等诸多优点, 这类芯片能准确、实时测量各种电压波形的有效值, 无须考虑波形参数和失真, 这些性能是平均值仪表无法比拟的。

因此, 测试过程中, 有效值检波电路的核心部件就采用芯片AD536AJQ。

2.2 硬件部分

功率测量系统要求能够测量多种连续信号的功率, 且要求达到较高的精度, 因此本系统采用了“真有效值/直流 (TRMS/DC) 转换检测功率法”。本系统选用有效值转换芯片AD536AJQ作为系统的功能核心;嵌入式微处理器LPC2142功能强大且廉价易得, 完全胜任系统的主控芯片。另外, 选用了一个12864的液晶屏作为人机交互界面。

最终设计的硬件电路系统框图如图2所示。

由电路系统框图可知, Philips公司的嵌入式微处理器LPC2142为整个系统的控制核心。当系统通电开始工作后, 首先, 信号经过放大电路放大, 之后进入以AD536AJQ为核心的有效值检波电路进行有效值检波;接着在一按键的控制下, LPC2142中的AD开始工作, 采集检波后的数据, 并根据公式 (1) 和 (2) 进行计算, 最终信号的电压、电流和功率被LPC2142测量出, 最终送到液晶屏LCM128645ZK上进行显示。本系统中, 由PHILIPS公司生产的嵌入式微处理器LPC2142作为控制和处理核心。

2.3 软件部分

此系统使用的ARM芯片为Philips公司的LPC2142, 因而, 软件的设计主要针对LPC2142来进行, 系统的软件流程图如图3所示。

可见, 系统软件的设计可以分为两部分。

(1) 启动代码设计。

(2) 系统功能程序的设计。

其中, 启动代码是芯片复位后进入C语言的main () 函数之前执行的代码, 主要是为运行C语言程序提供基本的运行环境, 如初始化存储器系统等, 本系统使用的启动代码由厂商提供。

2.3.1系统功能程序的设计

由于系统包含多个功能模块, 所以功能软件也可以分为多个模块进行设计, 其中LPC2142为核心控制模块。图4为主程序的流程图。

3 系统测试结果

在本次论文过程中, 系统的硬件和软件得到不断的修改与完善, 在最终调试成功之后, 针系统所需实现的功能, 进行了一些实际测量实验, 对系统的性能进行了测试, 具体测试结如表3-1所示。

第一组SIN信号, 频率10kHz, AMP5~3V

第二组SQ信号, 频率10kHz, AMP5~3V

第三组TRI信号, 频率10kHz, AMP5~3V

第四组RMAP+信号, 频率10kHz, AMP5~3V

第五组CW信号, 频率12.4k Hz~15.2k Hz, AMP为1V

实验证明该装置可以测量连续信号的电压有效值, 电流有效值以及功率的有效值, 是测量精度较为理想的功率测量仪。

参考文献

[1]周立功, 等.ARM嵌入式系统基础教程[M].北京:北京航空航天大学出版社, 2005.

[2]周立功, 张华, 等.深入浅出ARM7—LPC213x/214x (上册) [M].北京:北京航空航天大学出版社, 2006.

[3]谭浩强.C程序设计 (第3版) [M].北京:清华大学出版社, 2005.

ARM嵌入式系统分析 篇11

关键词:嵌入式以太网;硬件接口电路;驱动程序;LwIP

中图分类号:TP393.11文献标识码:A文章编号:1007-9599 (2011) 15-0000-02

Design of Embedded EthernetInterface Based on ARM&LwIP

Xiang Yuanming1,Hu Jiansheng2

(1.PLA 94064 army,Xianyang713706,China;2.Armed Police Engineering College,Xi'an710077,China)

Abstract:This paper gives a design and principle of embedded Ethernet interface.Using the microprocessor S3C44B0X with ARM7TDMI kernel and the Ethernet controller RTL8019AS to design the hardware interface,it specifies the interface circuit diagram,the driver program and the transplant of LwIP to the S3C44B0X,and it also gives the the flow chart of the communication function.Through the debugging of software and hardware,it has realized the transmission of embedded Ethernet data.It can be applied in the medium or miniature embedded network.meeting the need of data collection and autocontrol.

Keywords:Embedded-Ethernet;Hardware-interface;Driver-program;LwIP

一、引言

以太网由于它的普遍性及低廉的接口价格,因而已经作为一种最通用的网络广泛地应用于生产生活中。嵌入式设备在价格、体积及实时性等许多方面,是通用计算机无法比拟的。实现嵌入式以太网接口,可适用于各种嵌入式应用场合。

二、接口电路设计

S3C44B0X通过RTL8019的I/O口,对其相关寄存器进行配置。在通信时,S3C44B0X与RTL8019AS的收发缓存器的数据交换由远程DMA控制,而RTL81019AS收发缓存器与以太网总线之间的数据交换由它的本地DMA控制。RTL8019AS通过中断的方式通知S3C44B0X数据收发的结果和状态,S3C44B0X通查询中断状态寄存器的值,作出相应处理。RTL8019AS使用免跳线方式,I/O和中断由外接的EEPROM93C46里的内容决定。8019的AEN与S3C44B0X的nGCS2连,所以对应S3C44B0X的存储器的起始地址0x0600—0000;RTL8019的基址地址由其引脚IOS0、IOS1、IOS2、IOS3 8019决定。

S3C 44B0X的nOE、nWE分别与RTL8019AS的IORB、IOWB相连,控制数据的读和写操作,低电平有效。RTL8019使用中断0,对应S3C44B0的外部中断1。S3C44B0X的地址总线A1~A20、数据总线D0~D15分别与RTL8019AS的地址总线SA0~SA19、数据总线SD0~SD15相连,实现地址的选择和数据传输。

三、驱动程序设计

(一)RTL8019AS的初始化

RTL8019AS初始化是根据RTL8019AS的使用手册,编写初始化函数-void ethernetif_init(struct netif*netif),完成相关工作模式的寄存器设置,分配和初接收和发送缓冲区,初始化网卡接收地址。步骤如下:首先复位RTL8019AS;然后选中Page0设置数据配置寄存器为16位,清除远程DMA计数器,设置接受缓冲区区间,设置接受和发送配置寄存器,清除中断寄存器,屏蔽所有中断,设置寄存器BNRY;选中Page1初始化物理地址和组播地址,设置寄存器CURR;选中Page0开启RTL8019AS的所有中断。

(二)数据的传输和发送

数据的传输和发送由本地DMA传输和与远程DMA传输两部分完成,其中,前者大部分工作由RTL8019AS自动完成,我们要做的是设置收发缓冲区的大小及指针变量,这些工作在RTL8019AS的初始化时已完成,因此我们在编写数据收发函数时,只需对远端DAM口的进行相关操作,这里,由于篇幅关系,我们仅介绍接受数据函数void ethernetif_input(struct netif*netif)。(发送数据函数-void ethernetif_output(struct netif*netif)省略。)

void ethernetif_input(struct netif*netif) //netif是一个指向网络接口结构体类型的指针

{RTL8019_R00=0x21; //选择寄存器页面0,首先终止远程DMA;

RTL8019_R07=0x40;//允许内部中断的产生//

RTL8019t_R0a=(*netif).len;//设置要通过远程DMA接收数据包的长度//

//通过以下两条语句设置远程DAM的起始地址,这里选择0x0040//

RTL8019t_R08=0x00;RTL8019t_R09=0x40;

RTL8019_R00(page0)=0x0a; //对DAM端口进行访问;

While((*netif).len--)do{(*netif).data++=RTL8019_10;}

(三)中断处理

这里,我们采用中断和查询相结合的方式,来决定是否发送和接收数据。编写中断处理函数-void ethernetif_isr(void),通过对RTL8019AS中断寄存器(ISR)的访问,来判断是何种中断,并作出相应的响应。若ISR(0)=1,表明RTL8019AS已正确接收数据,此时调用ethernetif_input();若IST(1)=1,表明RTL8019AS已成功发送数据,此时调用void time_delay(),延时下一个等待中断的到来,或等待应用层继续发送请求。对于ISR其余各中断位,我们不关心,因此通过对中断屏蔽寄存器IMR相应位置1,将它们屏蔽。

四、lwIP在S3C44B0X上的移植

LwIP是瑞士计算机科学院的AdamDunkels等开发的一套用于嵌入式系统的开放源代码的TCP/IP协议栈[3]。它一般只需要几十KB的RAM和40KB左右的ROM,适合在嵌入式系统中使用。在使用和移植的过程中可根据传输数据的不同需求进行删减和增补。LwIP协议栈把所有和硬件,编译器相关的部分独立出来,放在/src/arch下面。将LwIP移植到ARM7TDMI内核的SamsungS3C44B0X上就是修改这个目录下的文件,其他的文件则根据需要做相应的修改[4]。

(1)与CPU或编译器相关的include文件。/src/arch/include/arch目录下cc.h、cpu.h、perf.h中有一些与CPU或编译器相关的定义,数据长度,字的高低位顺序等。

(2)对于在无嵌入式操作系统的应用而言,只需在sys_arch.c中实现如下三部分函数:sys_sem_t信号,sys_mbox_t消息和sys_arch_timeout等待超时函数。

(3)网络设备驱动程序。LwIP的网络驱动有一定的模型,/src/netif/ethernetif.c文件即为驱动的模板。在移植时,将第3部分介绍的初始化函数、接受函数驱动程序、发送函数和中断处理函数添加到模板中即可。

五、結束语

本设计已成功地进行以太网数据传输。由于S3C44B0X出众的性价比,及丰富的外围接口,通过扩展相应的外围电路,本设计可以应用到嵌入式仪器仪表、工业数据采集网络、自动化控制等许多领域。

参考文献:

[1]S3C44B0X User's Manual.Samsung,2000

[2]RTL8019AS用户手册[Z].RealtekSemi conductor Co.Ltd,2000

[3]LwIP sourcecode.AdamDunkel

基于ARM的可信嵌入式系统设计 篇12

可信计算是近年来信息安全领域中的被广泛关注的一个概念,现在人们提出的可信计算一般的基本思路是:首先,在计算机系统中建立唯一的物理安全信任根部件,之后可以根据该信任根建立一条认证和信任链,进行逐级认证,逐级信任,从而可以把信任关系推广到整个计算机系统[1]。TCG(Trusted Computing Group)是制定可信计算平台标准的工业组织,其前身是1999年由Compaq、HP、IBM、Intel和Microsoft牵头组织的TCPA(Trusted Computing Platform Alliance),组织的目标是推动在计算和通信系统中使用基于硬件安全模块支持下的可信计算平台,以提高整体的安全性;目前拥有成员190家,大部分是全球各大洲的计算机主力厂商。TCG制定了TPM(Trusted Platform Moude)的标准,现在的大多数安全芯片都是基于此规范制造的,而且因为其硬件安全防护的优越性,正逐渐成为计算机系统的标准配置。

1 可信计算原理

可信计算平台是在计算系统中实现可信计算的核心部分,对整个系统的安全可信提供支撑服务。可信计算密码支撑平台是可信计算平台的重要组成部分,提供数字签名、消息加密、身份认证、内部资源的授权访问、直接匿名访问机制、信任链的建立和完整性测量、证书和密钥管理等服务,为平台的身份可信性、完整性和数据保密性提供密码支持[2]。可信计算平台的主要部分可以分为两个部分——可信计算模块TCM和可信软件栈(Trusted Software Stack,TSS),其功能架构如图1所示。

其中,TCM的通常实现为可信计算平台中的硬件部分,为可信计算平台提供密码运算功能,一般拥有受硬件保护的存储空间,TCM一般位于计算机系统的最底层,在加电的时候与整个计算机系统一起启动。TSS是可信计算平台内部的安全服务组件,为整个可信计算平台外部提供访问TPM的API软件接口。

2 系统设计

当前嵌入式系统上可信计算的相关研究成果主要有以下这些:

(1)ARM公司的Trust Zone技术:属于系统范围的安全方法,针对高性能计算平台上的大量应用,包括安全支付、数字版权管理(DRM)和基于Web的服务。Trust Zone技术与CortexTM-A处理器紧密集成,并通过AMBAR AXITM总线和特定Trust Zone系统IP块在系统中进行扩展。

(2)TMP(trusted mobile platform):可信计算组织TCG于2007年6月正式确定了可信移动平台TMP(trusted mobile platform)的规范,主要目的是为适应移动设备特点,在移动平台(手机、PDA等设备)上构建可信计算架构,为高端的移动设备提供安全保证[3]。

2.1 ARM Trust Zone技术

Trust Zone技术的主要目标是支持用户构建可编程环境,以保护信息的机密性和完整性遭受到特定攻击。如图2所示,ARM采用了以下方式确保系统安全:使用硬件的方法隔离So C硬件和软件资源,使它们分别独立位于两个不同的区域(用于安全子系统的安全区域以及用于存储其他所有内容的普通区域)中。在支持Trust Zone的AMBA3 AXITM总线中,处理器的硬件逻辑可使普通区域的资源无法访问任何位于安全区域资源,借此在这两个区域之间建立一个强大的安全边界。将敏感资源放入安全区域以及在安全处理器内核中运行核心软件,可大大减少整个系统中潜在的攻击,甚至包括那些难以察觉和防护的攻击(例如通过在硬件中隔离安全敏感的外设———手机键盘或触摸屏,避免输入的密码泄露)。

另外,在一些ARM处理器内核中Trust Zone硬件架构已实现了额外的扩展,单个物理处理器内核能够以时间片的方式安全有效地同时从普通区域和安全区域执行代码。这样,便无需使用专用安全处理器内核,从而节省了芯片面积和功耗,并且允许高性能安全软件与普通区域操作环境一起运行。

使用此安全架构,在普通区域和安全区域进行切换时,ARM使用了监视模式的方法。物理处理器中任何从普通区域进入监视模式的机制都会被控制,并且这些机制始终被视为监视模式软件的中断或异常。对要监视的内容可由安全监视调用SMC指令进行触发,或由硬件异常机制直接触发。也可对IRQ、FIQ、外部数据中断和外部预取中止异常进行配置,以便当特定条件满足时,处理器自动切换到监视模式。

2.2 TPM可信平台模块

可信平台中有一个用于密码运算的可信平台模块TPM(trusted platformmodule),它是整个系统的可信根,是信任链的源头,也是整个可信机制的核心。TPM实际上是一个含有密码运算部件和存储部件的小型片上系统,具备专用的运算处理器、随机数产生器、独立的内存空间、永久性存储空间和独立的总线输入输出系统[4]。使用符合标准规定的密码算法,对外提供非对称密钥生成运算、非对称算法加解密运算、杂凑函数运算、数字签名运算和随机数产生运算[5]。TCG规范中定义的TPM组成结构如图3所示。可信嵌入式系统引入了TPM,由TPM芯片控制完成嵌入式可信计算的核心算法,再由安全软件调用TPM计算出的结果来判断相应的系统可信度,控制嵌入式系统从一开始的上电启动到运行的全过程。

2.3 基于Trust Zone及TPM的可信嵌入式系统设计

Trust Zone技术集成于ARM芯片内,具成低、面积小、可编程等优点,但由于其普通区域和安全区域是否可以安全切换取决于其上运行的操作系统安全性,所以无法满足高强可信环境;而基于TPM构建的可信计算机系统,从一开机上电就可以对所有的资源进行信任检测,从而保证了整个系统的安全,但其安全可信的程度很大程度上决定于TPM芯片的强壮度和可靠性。两种技术的特点可以在构建可信系统时同时采用,使用时可以相互补益,从而建立一个强大的安全可信计算机系统。设计的可信嵌入式系统结构如图4所示。

如图4所示,设计的可信嵌入式系统采用了支持Trust Zone技术的ARM芯片作为CPU,并挂接了FPGA,作为控制除RAM和显示设备外其他外围设备的控制器。这样做的优点是:(1)系统可以根据具体的需求,进行灵活的功能扩展,对未来系统的改动带来便利。(2)可以在FPGA构建处理模块,针对复杂的运算设计固定的电路,加速数据的处理,同时可以减轻CPU的处理压力,提升系统性能。(3)针对外设对CPU提供统一的设备接口,屏蔽各种外设的物理差异,更方便地进行编程。(4)增大处理带宽,FPGA可以缓存各个设备的数据,为CPU计算处理提供物理支持并可以动态调节。

TPM模块与Boot ROM连接至FPGA,当系统加电时随Bott ROM同时开始工作,并对启动的第一段程序进行哈希校验,对比TPM的哈希值与得到的值,如果一致则信任;否则引起异常。接着,会验证第二阶段的引导程序,直至到操作系统安全启动。当操作系统启动后,运行的应用程序的安全由Trust Zone和TPM共同确保;当应用程序刚刚从存储中取出时,TPM即要对其进行信任校验,通过则交由Trust Zone进行处理,进入普通区域运行,如果需要切换到安全区域则需要进行安全检查通过后才能顺利运行。

3 结语

随着云计算、物联网等信息技术的兴起,嵌入式系统必将更加广泛地应用于消费电子、网络通信、政府办公、工业控制、军队国防等领域。针对信息敏感的应用,设计可以安全可信运行的嵌入式系统已经是当前嵌入式系统发展迫切需求解决的问题。就当前的嵌入式系统结构,设计了一种高可信、可扩展、应用灵活的可信嵌入式系统,为可信嵌入式系统的构建提供一种思路。

参考文献

[1]Joe Grand.Practical Secure Hardware Design for Embedded Sy-stems[C]Proceedings of Embedded System Conference.2004:124-126.

[2]沈昌祥,张焕国,冯登国,等.信息安全综述[J].中国科学E辑:信息科学,2007,37(2):129-150.

[3]林小茶,李光.基于嵌入式技术的信任根研究[J].计算机工程与应用,2007,43(16):165-168.

[4]TPM_Main_part1_Design_Principles_Specification_Version_1.2[EB/OL].https://www.trustedcomputinggroup.org/Specs/TPM/,2008.

上一篇:固定资产业务下一篇:计算机网络系统安全性