ARM嵌入式平台

2024-06-04

ARM嵌入式平台(精选12篇)

ARM嵌入式平台 篇1

一、引言

视频图像信息应用于很多领域, 去除视频图像中的冗余信息仅保留视频图像中的有用信息在实际运用中意义重大, 比如监控系统、可视电话等;本文是基于快速DCT变换实现视频压缩的。

一般来说, 嵌入式系统资源都很有限, 通常的flash只有32M, 无法存储大容量的视频图像信息, 即使外接扩充介质 (SD卡、U盘等) 依然无法弥补传输时的带宽限制。通过嵌入式系统开发课程的学习, 了解到在ARM平台上采集的视频, 通过压缩后便于在互联网上传输、保存。参加到大学生创新性实验计划项目中, 通过相关的开发与研究, 可以熟练地掌握嵌入式系统下视频压缩软件的开发流程, 以及对其中涉及到的相关技术有较为深入的理解。

二、YUV、RGB视频格式

由于目前主流的视频文件格式都是经过压缩的, 所以本项目选择的压缩视频图像格式是:YUV444、YUV2、UYVY、YUV420、RGB24;以下是视频流的格式与预处理分析:

三、视频图像灰度化处理

1、提取灰度值的原理:

视频流灰度值的提取完全是依赖于视频流自身的特性来实现的。对于彩色视频流无论是RGB24还是YUV其帧与帧之间的R、G、B值或Y、U、V值都是相互叠加存储的, 有的甚至是像素点与像素点之间的信息值叠加, 要提取视频图像的内容 (即Y值) 要从视频流的原格式着手;比如RGB24。

RGB24是按照 (B, G, R) 顺序存储的, 再根据公式:Y=0.299R+0.587G+0.114B求得Y值, 而YUV格式会更简单只要舍弃UV色度信息即可。

2、提取灰度值的基本步骤:

打开输入、输出视频文件→视频类型判断→读取视频信息每帧获取 (依据宽高、视频格式) →YUV (或RGB) 提取 (或转换) Y值→处理后的图像按帧存储→关闭输入、输出视频文件。

3、视频灰度化压缩效率分析:

以丢失彩色区的信息达到的压缩比并不高, 压缩比值在2:3~1:4之间, 而且压缩后的视频大小受到原视频格式的限制, 视频图像的宽 (width) 高 (height) 不仅决定了原视频的大小也决定了压缩后的视频大小, 压缩方法伸缩性、灵活性都很小。这种简单的视频图像压缩处理对于嵌入式系统来说意义不是很大, 要设计一个压缩率更高的压缩算法实现视频高效率的压缩。

四、Dct变换压缩

DCT其实质是不能压缩视频图像, 但是经过DCT变换和相关处理之后就可实现视频图像的高效率压缩。

1、DCT详解:

DCT是一种实数域变换, 其变换核为余弦函数, 计算速度快[3]。DCT除了具有一般的正交变换性质外, 它的变换阵的基向量能很好地描述图像信号的相关特征。因此, 图像信号的变换中, DCT变换被认为是一种准最佳变换。DCT变换在图像压缩中有很多应用, 它是JPEG、MPEG等数据压缩标准的重要数学基础。在JPEG压缩算法中, 先将输入图像划分为8×8或16×16的图像块, 对每个图像块作DCT变换, 然后舍弃高频的系数, 并对余下的系数进行量化以进一步减少数据量;最后使用无失真编码来完成压缩任务。解压缩时首先对每个图像块做DCT反变换, 然后将图像拼接成一副完整的图像。归结为:

a.正向离散余弦变换 (DCT) ;

b.量化 (quantization) ;

c.Z字形编码 (Zigzag scan) ;

d.使用差分脉冲编码调制 (differential pulse code modulation, DPCM) 对直流系数进行编码;

e.使用行程长度编码 (run-length encoding, RLE) 对交流系数进行编码;

f.熵编码 (entropy coding) ;

g.组成位数据流[4]。

出于对嵌入式ARM机性能的考虑, 本项目对原压缩过程进行了简化处理。具体步骤如下:

a.分块;

b.采用快速dct变换;

c.量化;

d.Z形扫描;

e.边界处理;

f.输出保存。

2、dct变换压缩的实现:

2.1 Dct变换压缩流程:

2.2分块

如何将视频数据分成8*8的矩阵块, 由于视频流的存储顺序是逐行的而分块的话要跨越8行。处理方法:每取一块重新定位到文件头, 通过fseek定位到 (count*width*height+i*width*Len+j*Len) +4每一块的块首位置;之后各行取块的对应行。

2.3 DCT变换

例如有一个8x8的矩阵数据如图4-2:

将该矩阵dct8x8 () 函数处理后如图4-3:

显然由上图可知, 此时能量已集中到了左上角。

2.4量化

通过调用函数demux () 除以一个量化矩阵、并调用函数dtochar () 将double型转换成char型,

这张表是根据心理时间阀制作的, 对8bit的亮度的图像处理效果不错[5], 量化表是控制视频图像压缩比的关键。这部分除去了一些高频量, 损失了很高的细节。量化后见图4-4:

由图4-4可见, 经过量化操作后, 能量更加集中了。

2.5 Z行扫描

量化处理的数据都是线性存放的, 要将二维转换成一维, 按表4-2整理64个char型数据:

2.6边界处理

将z形扫描后的一维char数组全为0的第一个0值置为EOB, lencut () 函数返回边界处理后非0值的个数。边界处理后见矩阵图4-5

这样处理后加上边界值EOB, 仅7个非0值。2.7写入输出文件

以上处理后的数据写入输出文件包括EOB, 其后为0的数据都舍弃。为了使其在解压播放的过程中更简便, 本软件在信息保存上也做了相应的处理, 自定义了文件头信息:

视频宽 (2B) :width

视频高 (2B) :height

存储结构如图4-5:

3、视频dct转换压缩效率分析:

经dct变换压缩后视频, 压缩比可以到1:10, 但是效果与仅灰度化处理相差无几, 对于获知视频的具体内容没有影响。对比效果如图4-6

五、结束语

本设计是基于XScale270平台, 采用嵌入式Linux操作系统 (2..4.18内核) , 使用QT软件进行程序开发。作为大学生创新性实验项目, 通过设计并实现一个相对完整的视频图像压缩系统, 在学到许多实际技能的同时, 也意识到自身理论的不足。例如, 要实现更高的压缩比, 如何改进算法?要减少压缩所花的时间, 如何优化代码等等。

摘要:现在视频监控系统被应用到很多领域, 目前视频监控中传输的都是视频流, 而对于大多数的安防系统来说, 它所需要了解的并不是具体的图像, 而是图像所包含的内容信息。将监控摄像采集到的视频信息压缩成利于传输的更小文件。本文介绍的方案, 是在PAX27X的ARM平台上, 结合了视频流存储特点与DCT变换在信息压缩领域的运用技术, 设计实现了一个基于嵌入式Linux系统的消除帧内冗余的单色视频压缩软件。

关键词:视频,嵌入式系统,DCT,单色

参考文献

[1]谢凤英, 赵丹培.Visual C++数字图像处理[M].北京:电子工业出版社, 2009

[2]黄艺, 解读色彩学上常用颜色空间的不同表示[EB/OL].http://oabbs.zol.com.cn/1/27_34.html, 2010.2.9

[3]唐俊.DCT在彩色图像有损RLE压缩中的应用研究[EB/OL].http://se.csai.cn/Monograph/200801071154561021.htm

[4]陶胜.JPEG图像文件格式分析及显示[J].电脑编辑维护手册, 2001 (7)

[5] (David S.Taubman, Michael W.Marcellin.JPEG2000 Image Compression Fundamentals, Standards and Practice[M].北京:电子工业出版社, 2004

ARM嵌入式平台 篇2

班级 卓越1301姓名***

通过这段时间的学习使我学到了很多知识,并且了解到ARM的应用以及对开发板的应用,为以后的学习奠定了一定的基础。

嵌入式系统一般定义为以应用为中心、以计算机技术为基础,软硬件可裁剪,应用系统对功能、可靠性、成本、体积、功耗和应用环境有特殊要求的专用计算机系统。是将应用程序、操作系统和计算机硬件集成在一起的系统这是从技术角度。从系统角度上是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。

广义上讲,凡是带有微处理器的专用软硬件系统都可称为嵌入式系统。如各类单片机和DSP系统。这些系统在完成较为单一的专业功能时具有简洁高效的特点。但由于他们没有操作系统,管理系统硬件核软件的能力有限,在实现复杂多任务功能时,往往困难重重,甚至无法实现。从狭义上讲,我们更加强调那些使用嵌入式微处理器构成独立系统,具有自己操作系统,具有特定功能,用于特定场合的嵌入式系统。

嵌入式的应用也比较广泛涉及军事国防、工业控制、消费电子和网络。在家用方面更是数字电视、信息家电、智能玩具、手持通讯、存储设备的核心。

在ARM指令集中了解到ARM的寻址方式以及它的的特性,具有高效、快速的特点,还有Thumb指令集具有灵活、小巧的特点。

在这次实训中做了两个项目,一个是LED灯,实现LED灯的点亮是比较简单的,通过查找手册可以很快的了解到要使用的寄存器和方法,另一个项目是DS18B20这个比较复杂,除了要掌握对寄存器的使用,还要对了解对串口的初始化,读写字节等等。

感谢这次实训,通过这次的实训项目,使我大体了解制作项目的步骤,了解了嵌入式技术的掌握是需要一个过程的。实事求是的说,嵌入式技术的全面掌握是有相当难度的,通过积累和动手总会有收获的,从实验中也明白了一个大的项目并不是一个人可以完成的,团队协作很重要。

姓名:***

年级:卓越1301

嵌入式处理器MIPS和ARM 篇3

嵌入式系统的核心部件是各种类型的嵌入式处理器,就是与通用计算机的微处理器相对应的CPU。目前,几乎每个IT硬件厂商都推出了自己的嵌入式处理器。

所有的嵌入式处理器都是基于一定的架构的,即IP核(IntellectualProperty,知识产权),生产处理器的厂家很多,但拥有IP核的屈指可数。嵌入式系统的架构有专有架构和标准架构之分,在MCU(微控制器)产品上,像瑞萨(Renesas)、飞思卡尔(Freescale)、NEC等都拥有自己的专有IP核,而其他嵌入式处理器都是基于标准架构。

标准的嵌入式系统架构有两大体系,RISC(ReducedInstructionSetComputer,精简指令集计算机)处理器和CISC(ComplexInstructionSetComputer,复杂指令集计算机)处理器体系。目前占主要地位的是所谓RISC处理器。RISC体系的阵营非常广泛,如ARM、MIPS、PowerPC、ARC、Tensilica等等,都是属于RISC处理器的范畴。

本文主要从以下几个方面来介绍ARM和MIPS这两个处理器。

流水线结构:MIPS是RISC体系结构中最精巧的一种处理器,占用更小的芯片面积;并且MIPS使用编译器来解决“分支延迟槽”和“负载延迟槽”这两个问题。因为MIPS最初的设计思想就是使用简单的RISC硬体,然后依靠编译器及其他软体技术,来达成RISC的完整概念。

ARM有桶形移位器(barrel shifter),一方面它可以提高数学逻辑运算速度,为编写高效率的汇编语言程序提供了条件;另一方面它也增加了硬件的复杂性。所以和可以完成同样功能的加法/移位寄存器相比,效率更高,但是也占用更多的芯片面积。

指令结构:MIPS具有32位和64位两种架构的指令集,MIPS是开放式的架构,用户可以在开发的内核中加入自己的指令。在MIPSIV加入条件跳转指令,以便提高流水线结构的执行效率。

ARM只有32位架构的指令集,ARM11局部是64位架构的指令集。在每一条ARM指令中都有4位的条件码,在这一点上ARM很像x86。由于ARM有地址递增/递减访问模式,所以有相应得多次自动递增/递减加载/存储数据的指令。

寄存器:MIPS内核中有32个寄存器$0—$31,$0不管存入什么数据,永远返回零,通过mfc0、mtc0指令控制。这种结构设计上的先天优势,决定了在同等性能表现下,MIPS的芯片面积和功耗会更小。

ARM有16个寄存器R0—R15,与协处理器之间交换数据通过MRC、MCR指令来实现。

地址空间:在MIPS中有缓存区地址空间和非缓存区地址空间。ARM通过启用/禁用缓存操作来开启/禁用缓存区。

功能:MIPS是64位的,具备浮点数的运算能力,而ARM支持浮点运算是有限的,通常不包括在内,因为他是一个32位架构的处理器。

ARM基本统一采用JTAG接口进行仿真调试,开放性和通用性好,开发板和仿真器的开发简便,而MIPS使用EJTAG工具。Debug工具一般两种都支持。

性能:MIPS起源于高性能工作站和服务器的设计,而ARM的初衷是针对低端移动系统开发的基本内核。

应用:MIPS:在数字电视、数字机顶盒、DVD/蓝光播放器、数码相机和宽带客户端等领域MIPS架构处理器应用比例大约为50%;大部分宽带路由器与无线接入点都采用了MIPS架构处理器;采用MIPS处理器的索尼PSP的成功说明MIPS在逐渐兴起的电子书领域也是一个突破口。

ARM:占据了高端微控制器的大部分市场份额;大部分无线通讯设备采用了ARM技术;采用ARM技术的ADSL芯片随着宽带技术的推广正逐步获得竞争优势;目前流行的数字音频播放器、数字机顶盒和游戏机中广泛采用;数码相机和打印机中绝大部分采用ARM技术,手机中的32位SIM智能卡也采用了ARM技术。

通过比较了解,虽然ARM和MIPS处理器同样是属于RISC体系,但是在指令集设计、处理单元的结构上等都各有不同,因此彼此完全不能兼容,在特定平台上所开发的软件无法直接为另一硬件平台所用,而必须经过重新编译。

那么,嵌入式处理器要想得到用户特别是中国工程师的认可,那它必须能够形成完整的设计链是至关重要,因为这样才能达到内核开发平台性能和价格的最佳平衡,符合用户的需求;另外,在消费电子产品迅速窜红的今天,帮助开发者缩短设计周期和上市时间无疑是在这一领域寻找更多商机的内核供应商们的竞争利器。实现这两点,开放性以及开发工具的广泛性和易用性就是成功的关键。

如今,ARM公司除了自身推出的硬件开发工具(Multi-ICE/RealView ICE)和软件开发环境(ADS1.2/RDS、ARMCC),在全球和中国已凝聚了众多第三方或代理商争相推出性价比出色但用法统一的评估板和仿真器,而支持ARM内核的集成开发环境(IDE)、编译器、RTOS、软件仿真器、启动/驱动代码产品也是层出不穷,可以说一条完整的设计链已经形成,进入一种良性循环。

同时,ARM芯片的授权模式在中国开展得比较早,获得ARM 授权的芯片厂商基本统一采用JTAG接口进行仿真调试,开放性和通用性好,开发板和仿真器的开发简便,因而第三方支持广泛,对最终用户来说也易于使用。

此外,ARM的下一代走向多内核结构,而MIPS公司的下一代核心则转向硬件多线程功能(multithreading)。从现在的发展来看,多内核占上风。因此,在中国嵌入式芯片领域最受欢迎的是32位的ARM芯片。

ARM嵌入式平台 篇4

关键词:ARM嵌入式平台,WinCE操作系统,TQ2440开发板,系统移植

1 ARM及开发板硬件平台

ARM是对一类RISC微处理器的通称。目前,ARM微处理器已遍及工业控制、消费类电子产品、通信系统、网络系统及无线系统等各类电子市场。S3C2440A,是一种低价格、低功耗、高性能小型ARM微控制器,其杰出的特点是CPU为一个16/32位ARM920T的RISC处理器。采用S3C2440A作为中央处理器的开发板很多,该文采用天嵌科技公司生产的TQ2440开发板为硬件平台,其主频达到400 Hz外部存储器为64 MB,带有2个5线异步串行口、2个USB1.1接口和2个网口(10 M,100 M各一),为下载烧录操作系统提供了便利。

2 WinCE实时嵌入式操作系统[2]

Windows Embedded CE是一个硬实时操作系统,它提供可靠的内核服务来支持低延时、确定性、实时性的嵌入式系统设计。CE具有一个实时系统的以下特征:可抢占的多线程;优先线程调度;优先级反向预防;可预测的线程同步。

实时系统分为硬实时系统和软实时系统。软实时系统可以超过其限定的时间响应,允许偶尔超过时间界限,但仍可以保证系统性能处于合理的、可接受的水平。硬实时系统则不会超过任何限定的时间响应。当硬实时系统不满足其限定的响应时间时,可能会导致严重的系统故障。

3 Windows环境设置

ARM和WinCE操作系统的结合,提供了统一的、可裁减的、具有伸缩性的低功耗高性能嵌入式系统平台[3]。要把WinCE移植到ARM中,要先对Windows进行相关设置。

3.1 超级终端的设置

在对开发板进行开发时,需要知道开发板的实时状态,这就需要一个对等的通讯,TQ2440开发板与PC串口的交互需要一个终端程序,该文使用的是Windows XP自带的超级终端,如图1所示。

当在以下的操作中,出现:“默认Telnet程序”和“位置信息”对话框时,可根据实际需要进行适当的设置。在“连接描述”中,输入建立的超级终端的名字,当需要选择与开发板连接的接口时,选择COM1(要与后继设置保持一致)物理端口。对出现的“COM1属性”对话框进行如图2所示设置。

在文件中保存超级终端的设置,到此开发板与PC可以通过超级终端进行信息交换。

3.2 DNW软件的设置

DNW跟对等交互的超级终端不同,它是单向的,只能由PC把文件传输给开发板,采用USB协议。双击DNW软件打开对话框界面,点击“Configuration”菜单中的“Options”选项,设置“URAT/USB Options”如图3所示:

通过这样的设置,当计算机往开发板下载文件时,PC把准备写入串行设备的数据先放在UART(Universal Asynchronous Receiver/Transmitter)的临时寄存器中,再通过FIFO(First Input First Output)最终写入到开发板中。

3.3 安装GIVEIO驱动

当要使用Jtag软件SJF2440.exe烧写u-boot时,这需要安装驱动把并口虚拟成IO口,考虑到健壮性,最好使用SPP模式或者是EPP模式。

1)复制文件“giveio.sys”到目录“WINDOWsystem32drivers”下;

2)从控制面板的“添加硬件”进入安装引导;

3)在硬件列表中找到“端口(COM和LPT)”选项,然后继续;

4)在“添加硬件向导”对话框中,“厂商”一栏中,选择“标准端口类型”,

“型号”选择“Communications Port”;

5)找到“GIVEIO”目录,打开文件“giveio.inf”;

6)回到驱动设备安装界面,选择设备“giveio”;

7)按照对话框“添加硬件向导”中的提示,完成驱动的安装。

3.4 安装USB下载驱动

在PC与TQ2440进行USB通信时,需要安装其驱动,安装步骤如下:

1)打开超级终端,接上开发板的串口线和电源线,按住PC键盘的空格键,打开开发板电源,在超级终端上,会进入u-boot的控制台下,如图4所示:

插上USB电缆,PC会自动弹出“找到新的硬件向导”,选择“是,仅这一次(Y)”,然后继续。

2)执行操作:“从列表或指定位置安装(高级)”到“在这些位置上搜索最佳驱动程序”,在浏览文件夹中找到“USB驱动”,然后安装向导开始搜索硬件设备,在出现的对话框中选择“SEC SOC Test Board”选项。

3)在浏览选项中找到“secbulk.sys”文件,双击,开始安装USB下载驱动。检验是否安装成功的标志是打开DNW软件,看其状体,若在标题栏中出现:[USB:OK],则说明USB下载驱动安装成功.

4 Win CE内核的制定

Platform Builder是微软公司发布的一款用于定制Windows CE操作系统的集成开发环境。开发人员可以使用这个集成开发环境完成嵌入式操作系统的定制、编译和调试,并且还可以在这个集成开发环境中进行应用软件、驱动程序的开发等。

4.1 Platform Build 5.0的设置和安装

1)首先安装Framework net 1.0,找到安装程序dotnetfx.exe,在“Microsoft Windows CE 5.0–Setup Type”对话框中选择“Custom(Tools and OS)”,让CPU支持产生的镜像文件。软件的安装尽量放在缺省目录下。

2)对于TQ2440系列开发板,要注意“ARMV4I”的设置,如图5所示:

3)按照对话框的提示,选择“install”和“next”等操作,完成PB的安装。

4.2 编译需要的工程文件

1)在设置好“Workspace Name And Location”后,进入“Board Support Package”配置单中,选择“SANSUNG SMDK2440:ARMV4I”选项;

2)在“Design Template”配置选项中,选择“Mobile Handheld”;

3)在“Applications&Media”配置单中,选择需要的配置,如图6所示:同时,在“Networking&Communications”中,选择缺省设置;

4)工程建立完成后,选择菜单项“Platform”中的“Settings”,在出现的对话框“Platform Settings”中,选择“Locale”,选择对中文的支持,在“Build Options”选项中,不选择“Enable CE Target Control Support”和“Enable KITL”,其他选项选择缺省值,如图7所示:

5)加入MFC组件,依次打开“Catalog→Core OS→Windows CE devices→

Applications and Services Development”,然后选择“Add to Platform”;

6)加入USB键盘鼠标支持特性,依次打开“Catalog→Core OS→Windows CE devices→Core OS Service→USB Host Support→USB Human Input Device(HID)Class Driver”,选择“Add to Platform”,还要选择子项“USB HID Keyboard and Mouse”,同样要执行操作“Add to Platform”;

7)添加文件系统的支持,为了保存注册表,需添加上文件系统对HIVE的支持,对此,首先要添加的是对FAT文件系统的支持,再添加“Storage Manager Control Panel Applet”,然后添加对HIVE的支持,如图8所示:

8)添加对ROM和RAM的支持,如图9所示:

9)修改网络信息,包括IP地址、DNS和网关地址,修改“platform.reg”注册表的值;还要添加输入法和字库等支持,最后进行编译。

10)编译完成后,生成“NK.bin”和“NK.nb0”两个wince镜像内核文件,它位于"..RelDirsmdk2440_ARMV4I_Release"目录下。最后把压缩的NK.bin烧录到开发板中,完成wince的移植。

5 结束语

WinCE系统移植是嵌入式系统开发的重要环节,是进行后续功能开发的软件平台,其移植过程是十分复杂的,需要对WinCE系统本身的结构和文件之间的调用非常清楚,还要求对所依托的硬件足够熟悉,该文在TQ2440开发板上对操作系统内核的移植进行分析论述最终成功进行移植为下一步的系统开发建立基础[4]。

参考文献

[1]陈连坤.嵌入式系统的设计与开发[M].北京:清华大学出版社,2005.

[2]Samuel Phung,张冬松,陈芳园.Windows CE6.0嵌入式高级编程[M].北京:清华大学出版社,2009.

[3]杨宁,王立德,王苏敬,丁国君.基于ARM&WinCE的车载智能显示终端的开发[J].机车电传动,2010(1).

ARM嵌入式平台 篇5

摘要:本文是作者关于嵌入式系统一些基本问题的思考和总结。主要是从嵌入式处理器与硬件、ARM处理器的优势、嵌入式软件、嵌入式系统教学等方面进行了一些梳理,谈了一些个人的观点。引言由于各种新型微处理器的出现和应用的不断深化,嵌入式系统在后PC时代得到了空前的发展。随着时间的推移和技术的进步,在工业控制和新兴的手持式应用等领域,用户体验成为产品成功的关键因素之一,越来越多的产品需要良好的用户界面、互联功能以及 摘要: 本文是作者关于嵌入式系统一些基本问题的思考和总结。主要是从嵌入式处理器与硬件、ARM处理器的优势、嵌入式软件、嵌入式系统教学等方面进行了一些梳理,谈了一些个人的观点。引言

由于各种新型微处理器的出现和应用的不断深化,嵌入式系统在后PC时代得到了空前的发展。随着时间的推移和技术的进步,在工业控制和新兴的手持式应用等领域,用户体验成为产品成功的关键因素之一,越来越多的产品需要良好的用户界面、互联功能以及较强的数据处理能力,这对嵌入式处理器硬件、软件、教学等提出了新的要求。1 嵌入式处理器与硬件

在处理器方面,目前大量的中、低端嵌入式应用,主要使用8/16位单片机。在国内,由于历史的原因,主要是以MCS51核为主的许多不同型号单片机,主要厂商有Atmel、Philips、Winbond、宏晶等。还有一些近几年发展较快的新型单片机,如PIC、AVR、MSP430系列等。这些单片机各有特点,但从目前的发展角度来看,单片机针对特定应用领域的个性化发展愈发明显,典型的例子就是TI公司的MSP430系列16位单片机、ST公司的STM8L系列8位单片机和STM32L系列32位超低功耗单片机。

在嵌入式中的高端应用领域,像工业控制、POS机、网络设备、图像处理、手机、PDA等,目前主要使用ARM、MIPS、PowerPC、DSP等16~64位处理器,以32位处理器为主。各种类型的处理器都有其一定的应用针对性。例如,DSP对数字信号处理技术中用到的常用运算、算法做了优化设计,主要用于实时信号处理领域,如实时音视频处理、电机控制等。MIPS处理器性能很好,但功耗较大,适合于有交流电源供电的固定应用,如固定的网络设备、机顶盒等。ARM处理器性能高,功耗低,适合于用电池供电的便携、手持式设备。由于近几年便携、手持式嵌入式应用的高速发展,ARM处理器的增长速度和市场占有率也快速提升,成为目前32位应用中的主力产品。由于嵌入式应用系统的广泛性,嵌入式系统的硬件设计涉及的知识面很广,从模拟到数字、低频到高频、小信号到大功率,以及复杂的时序逻辑设计和PCB设计,还要考虑软硬件资源的合理分配,不仅要有广而扎实的理论基础,更需要丰富的实践经验。只有对大大小小各种应用系统反复实战演练,了解新技术、新器件,使用过多种多样的处理器和模拟/数字器件,才能逐步积累,聚沙成塔,对一个新的应用系统给出快速、合理的硬件方案与设计。2 ARM处理器的优势

对于如今大量出现的32位嵌入式应用,以笔者之见,ARM处理器的优势主要有以下几个方面。

2.1 高性能、低功耗、低价格

把ARM处理器的性能拿来和一些著名的通用处理器(如Pentium)相比是不合适的,因为他们各自针对的应用需求是不同的。Pentium处理器采用多条指令流水线的超标量结构,追求通用应用目标下的超强性能,功耗大,可以用散热器加风扇散热。ARM针对嵌入式应用,在满足性能要求的前提下,力求最低的功率消耗。ARM结构的优点是能兼顾到性能、功耗、代码密度、价格等几个方面,而且做得比较均衡。在性能/功耗比(MIPS/W)方面,ARM处理器具有业界领先的性能。基于ARM核的芯片价格也很低,目前ARM CortexM的芯片价格可低至10元人民币左右。2.2 丰富的可选择芯片

ARM只是一个核,ARM公司自己不生产芯片,采用授权方式给半导体生产商。目前,全球几乎所有的半导体厂家都向ARM公司购买了各种ARM核,配上多种不同的控制器(如LCD控制器、SDRAM控制器、DMA控制器等)和外设、接口,生产各种基于ARM核的芯片。目前,基于ARM核的各种处理器型号有好几百种,在国内市场上,常见的有ST、TI、NXP、Atmel、Samsung、OKI、Sharp、Hynix、Crystal等厂家的芯片。用户可以根据各自的应用需求,从性能、功能等方面考察,在许多具体型号中选择最合适的芯片来设计自己的应用系统。由于ARM核采用向上兼容的指令系统,用户开发的软件可以非常方便地移植到更高的ARM平台。

2.3 广泛的第三方支持

以如今的技术,设计一个处理器并非难事,但要使这个处理器得到大家认可,并取得市场成功却是非常困难的,其中涉及许多技术与非技术的因素和环节,还包括时机、运气。因为现在许多产品的开发,不是一个简单的处理器加几百条指令、语句就可以解决的。要用到32位处理器,一般都要有编译器、高效的开发工具(仿真器及调试环境)、操作系统、协议栈等,这些东西都不是一个芯片生产商可以解决的,而需要许多第三方的支持。这就像一粒种子,需要土壤、空气、水等环境才能发芽、成长。这也是我们的一些“中国芯”该反思之处。ARM通过近20年的培育、发展,得到了广泛的第三方合作伙伴支持。目前,除通用编译器GCC,ARM有自己的高效编译、调试环境(MDK、Keil),全球约有50家以上的实时操作系统(RTOS)软件厂商和30家以上的EDA工具制造商,还有很多高效率的实时跟踪调试工具的厂商,对ARM提供了很好的支持。用户采用ARM处理器开发产品,既可以获得广泛的支持,也便于和同行交流,加快开发进度,缩短产品的上市时间。2.4 完整的产品线和发展规划

ARM核根据不同应用需求对处理器的性能要求,有一个从ARM7、ARM9到ARM10、ARM11,以及新定义的CortexM/R/A系列完整的产品线。前几年应用较多的主要是基于V4架构的ARM7TDMI、ARM720T、ARM920T核的一些处理器芯片,如NXP的LPC2000系列、ST的STR7/9系列、Atmel 的AT91系列和Samsung的S3C系列。近两年,ARM Cortex系列以更好的性能、更低的价格得到快速推广,典型的就是基于CortexM3的STM32系列。

ARM CortexM/R/A系列分别针对不同的应用领域。M系列主要面向传统微控制器(MCU/单片机)应用,这类应用面很广,要求处理器有丰富的外设,并且各方面比较均衡;R系列强调实时性,主要用于实时控制,如汽车引擎;A系列面向高性能、低功耗应用系统,如智能手机。选用ARM处理器进行开发,技术积累性较强,生命周期长,设计重用度高,不易被淘汰。用户在选择ARM处理器时,可以针对应用需求,从大量的ARM芯片中选用满足性能、功能要求的产品,以获得较好的性价比。3 ARM嵌入式系统的软件

由于嵌入式系统的差异性很大,对不同的应用需求,必须选择不同的软件设计方法、开发平台和系统工具。

对于一些不需要复杂图形用户界面、通信协议和复杂文件操作(如同时打开多个文件)的应用,如果选用CortexM3核的处理器就已可以满足要求,任务数不多,任务之间的关系也不复杂,则不一定需要移植复杂的操作系统。这样一方面可以降低系统硬件开销,也可以获得更好的实时性和执行速度。不过,这样的软件开发方法需要开发人员有较好的程序设计思想,对所用器件有深入的了解,并掌握其编程控制方法。若引入一个简单的操作系统,如μC/OS,可以简化程序结构,但开发者最好熟悉其内核结构,并有使用经验,否则可能会需要更多的系统开发、调试时间。

如果选择了带存储器管理单元(MMU)的ARM处理器(如ARM920T、CortexA8等),这种应用系统根据应用、实时性、开发环境等因素,移植一个功能较强的操作系统一般情况下会比较合适,如Linux、WinCE,甚至新的Android等。这种系统的开发难度主要是在OS的移植以及硬件驱动程序的开发上。当这二步工作完成后,主要的软件开发工作已和在PC机上开发没有多大区别,可以按照一般的软件工程方法来进行,要注意的只是与ARM硬件平台相关的软件优化问题。由于嵌入式系统硬件资源的有限性,嵌入式软件与其他应用软件的主要区别,在于嵌入式软件要有较高的效率,包括执行速度和存储空间,尽管这二者经常是相互矛盾的。目前一般要求更多的是速度优化。要编写出高效的ARM程序,需要开发人员熟悉ARM的体系结构,包括内核结构、指令系统、Cache与存储器结构等,还要有好的程序设计思想,以及对一些常用函数、算法的深刻理解。这个过程也是ARM系统开发从低级到高级的进阶之路。

目前,由于应用系统越来越复杂,嵌入式软件的移植性和重用性也得到了人们的高度重视,因为它直接影响到嵌入式软件的开发效率和质量。选择一种通用的开发环境和高级编程语言,使开发的嵌入式软件可以方便地移植到不同的硬件平台,是实现软件重用的基础。目前在ARM嵌入式系统开发中,ARM RealView、Keil以及IAR的EWARM是较好的开发平台,C/C++语言是应用最广泛的编程语言,并具有广泛的库函数、程序支持,在今后很长一段时间内,仍将在嵌入式系统应用领域中占重要地位。4 嵌入式系统的教学

ARM嵌入式平台 篇6

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

中图分类号:TP302.7 文献标识码:A 文章编号:1674-7712 (2014) 16-0000-01

计算机技术的创新与发展、微处理器工艺的改进以及社会信息化程度的加深,嵌入式系统已经被广泛的应用于我国当代社会当中。近年来,我国工业规模不断壮大,先进的工业设备被运用到当代工业的生产经营活动中,将嵌入式系统应用到工业的生产经营的设备当中,有效的提高了工业的生产效率。在我国传统的嵌入式系统中,大多都是单个程序实现整个控制逻辑,这种嵌入式系统已经不能满足我国当代社会发展的需要了,为此对嵌入式系统进行优化设计有着重大意义。

一、ARM的概述

ARM(Advanced RISC Machines),是一種微处理器,是一个32位精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。由于节能的特点,ARM处理器非常适用于移动通信领域,符合其主要设计目标为低成本、高性能、低耗电的特性。ARM处理器有着体积小、低功耗、低成本、高性能等优势,在嵌入式系统中支持Thumb(16位)/ARM(32位)双指令集,同时能很好的兼容8位/16位器件,其指令执行速度快,大多数数据操作都可以在寄存器中完成。

二、嵌入式系统的概述

嵌入式系统是用来控制或者监视机器、装置、工厂等大规模设备的系统。嵌入式系统以应用为中心、以计算机技术为基础、软硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统[1]。嵌入式系统的核心是由一个或几个预先编程好以用来执行少数几项任务的微处理器或者单片机组成。嵌入式系统的系统内核小,系统精简。在嵌入式系统中的软件系统和硬件系统的结合是非常紧密的。一个嵌入式系统装置一般都由嵌入式计算机系统和执行装置组成,嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。

三、ARM下的嵌入式软硬件系统的设计分析

(一)硬件方案的设计

嵌入式硬件系统中主要包括嵌入式微处理器、存储器、通用设备接口和I/O接。在一片嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块。其中操作系统和应用程序都可以固化在存储器中。

1.嵌入式微处理器的设计

嵌入式微处理器是嵌入式系统硬件层的核心,嵌入式微处理器与通用CPU最大的不同在于嵌入式微处理器大多工作在为特定用户群所专用设计的系统中,它将通用CPU许多由板卡完成的任务集成在ARM芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。在进行微处理器选择的时候,首先要确定ARM是否自带MMU(memory management unit)功能,因为有些嵌入式系统需要自带MMU功能的ARM芯片。其次要控制好ARM芯片的成本以及芯片的处理速度。芯片的处理速度可以根据ARM芯片系统中的始终频率来进行控制。ARM芯片的成本是影响嵌入式平台运作成功与否的一个重要因素,

2.存储器的设计

嵌入式系统的正常运行需要依靠存储器来提供保障,在嵌入式系统中利用存储器可以存放和执行代码。存储器主要包含cache、主存和辅助存储器。针对主存,首先要考虑的是其处理速度问题,为了保障嵌入式系统的运作效率,一般选用处理速度比较快的主存,例如SDRAM,其次就是要考虑价格问题,只有价格低,性能好的主存才能保障系统运行的效率。辅助存储器是用来存放大数据的程序代码以及信息,例如MMC,这种辅助存储器的价格低廉,储存空间大,在嵌入式系统中,可以有效的满足系统的要求。

3.通用设备接口

嵌入式系统在与外界交互的过程中需要一定形式的通用设备接口来完成,例如I/O,外设通过ARM芯片外其他设备的连接来实现微处理器的输入以及输出功能。通用设备接口要根据具体的嵌入式系统来进行选择。

(二)软件方案的设计

1.系统软件层的设计

在嵌入式软件系统中主要由文件系统和操作系统两个部分。嵌入式操作系统(Embedded Operation System,EOS)是一种用途广泛的系统软件,嵌入式操作系统负责嵌入系统的全部软、硬件资源的分配、任务调制、控制、协调并发活动,它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能[2]。文件系统主要是负责文件的存储、检索等功能。通过以口令的形式设置好文件名、文件存储目录,同时还要设置好文件的修改、重命名的方法和路径。

2.应用软件的设计

应用软件层是在嵌入式操作系统的基础上,调用操作系统为上层提供的接口进行软件开发,以便满足系统运作的需求。应用软件层除了要满足现代嵌入式系统在准确性、安全性以及稳定性方面的需求,同时还要尽可能的减少资源的消耗,优化资源配置,降低软件开发的成本。

3.图形用户接口

当用户在使用嵌入式系统进行操作的时候,为了方便用户的需求,在图形用户接口中要统一接口,提供各种设备驱动接口。同时,嵌入式用户接口还要满足系统可靠性、可移植性、可配置的需求。

四、结束语

随着信息化、智能化、网络化的发展,嵌入式系统技术也获得了较大的发展空间。嵌入式系统作为一种先进技术的产物,代表着先进生产力发展的需求,其在我国社会发展过程中有着不可替代的作用。针对我国当前ARM下的嵌入式系统,主要是针对软硬件系统的设计来保障系统的正常运行,对嵌入式系统进行开发和探讨有着十分重要的意义。

参考文献:

[1]陆鑫.可编程软硬件系统的综合设计[D].上海交通大学,2008(06).

[2]胡振国.基于ARM的嵌入式软硬件系统设计与实现[D].电子科技大学,2010(04).

ARM嵌入式平台 篇7

1 嵌入式开发软件平台搭建

嵌入式软件开发一般遵循“宿主机一目标板”的开发模式。其中核心内容主要是宿主机交叉编译环境[2]以及TFTP和NFS环境的搭建。在本文给出的实验示例中,宿主机上安装的是目前比较流行的RHEL 6版本。

1.1 宿主机交叉编译环境的搭建

因为成本原因,嵌入式系统的资源往往是有限的,因此直接在嵌入式系统的硬件平台上编写软件比较困难。这时候就需要交叉编译。所谓交叉编译就是在某个主机平台上(比如PC上)用交叉编译器编译出可在其他平台上(比如ARM上)运行的代码的过程。嵌入式系统交叉编译环境如图1所示。

下面就介绍如何搭建宿主机交叉编译环境。本文在测试时使用的交叉编译器版本为arm-linux-gcc-3.4.1.tgz,硬件方面使用的是上海双实科技提供的基于S3C2440的开发板。

安装交叉编译器arm-linux-gcc-3.4.1.tgz步骤如下:(通过U盘拷贝到系统中,并放置根目录下)

添加下面一句

1.2 TFTP的搭建

TFTP是一种传输文件的简单协议,它没有FTP协议那么多特征,不支持目录列表及用户认证[3],但是实现快捷,被广泛应用于嵌入式开发领域。TFTP也是基于传统的C/S模式进行工作,TFTP开发环境的构建分为宿主机端的tftp-server支持以及目标板的tftp-client支持。

1.2.1 构建宿主机tftp开发环境

1)首先利用配置好的本地yum源安装tftp服务软件包

2)修改配置文件

在RHEL 6系统中TFTP服务默认情况下是禁用的,所以要修改/etc/xinetd.d/tftp文件来开启服务。操作如下:

将配置选项disable=yes改为disable=no,保存退出

3)重新启动tftp-server

1.2.2 构建目标板tftp开发环境

一般来说,目标板都能够支持tftp-client,所以嵌入式目标板tftp环境一般就不需要再配置了。在目标板可以通过类似命令tftp–r a.c–g 211.65.180.1下载文件。

1.3 NFS开发环境的搭建

tftp服务只在需要下载或传输文件至开发板时使用。在应用程序开发环节,通常都要

搭建好NFS环境[4]。NFS是系统间进行文件共享的一种网络协议,在NFS的应用结构中有服务器和客户机两种角色,NFS客户端通过挂载NFS文件系统的方式访问NFS服务器中输出的共享目录。因此,NFS方式比ftp方式有着更高的执行效率。

1.3.1 宿主机NFS开发环境的建立

1)安装NFS服务器

2)关闭服务器端防火墙

3)配置NFS服务器

在宿主机端以root的身份登录。使用vi编辑器编辑/etc/exports文件,该文件中默认内容为空,可以添加如下内容:

添加的内容表示允许IP为211.65.180.1的计算机以读写的权限来访问共享目录/home/share。

4)启动RPC服务(在RHEL6中用rpcbind服务代替之前的portmap服务)

5)启动NFS服务器

1.3.2 目标机NFS开发环境的建立

目标板如果不支持NFS,则需要重新编译内核,添加相应的选项。

1)配置内核支持NFS客户端

将内核源代码拷贝到相关目录下,然后输入命令make menuconfig,在出现的图形界面中选择Load an Alternate Configuration File菜单载入配置文件,添加内核对NFS的支持,然后保存退出,用命令make u Image编译内核,将生成的u Image重新下载到目标板启动即可。

2)目标板对NFS共享目录的挂栽

2 结束语

本文对构建基于ARM的嵌入式Linux软件开发环境进行了探究。作者在宿主机上安装了内核较新的Linux企业版本RHEL 6,着重研究了交叉编译环境的建立,TFTP和NFS的配置,从实验结果来看,提供了一种可靠性较高的方法。

摘要:嵌入式软件开发是当前热门技术,而构建嵌入式软件开发环境是进行嵌入式软件开发的基础。该文对如何搭建基于ARM的嵌入式Linux软件开发平台进行了探究。根据软件开发的一般流程,从交叉编译环境的建立,到TFTP和NFS的配置,都进行了详细的论述,并通过实验证明了平台的可用性。

关键词:嵌入式系统,ARM,Linux,交叉编译

参考文献

[1]苟军年.ARM-Linux嵌入式软件开发平台的搭建.计算机时代[J].2010(11):53-55.

[2]张欢庆,高丽,宋承祥.基于ARM的嵌入式Linux交叉编译环境的研究与实现[J].计算机与数字工程,2012,40(2):151-153.

[3]李怀刚,邱建新.网络安装Linux的技术原理分析及实现[J].计算机应用与软件,2006,23(9):110-112.

ARM嵌入式平台 篇8

二进制翻译也是一种编译技术,它与传统编译器的差别在于其编译处理对象不同。传统编译器处理的是某一种高级语言,经过编译处理生成某种机器的目标代码。

二进制翻译是一种直接翻译可执行二进制程序的技术,能够把一种处理器上的二进制程序翻译到另外一种处理器上执行[1]。它使得不同处理器之间的二进制程序可以很容易的相互移植,扩大了硬件/软件的适用范围,有助于打破处理器和支持软件之间的相互扼制的局面。二进制翻译技术的优点为:不需要重编译源码就可以实现软件从旧平台到新平台的移植;快速为新机器提供软件,包括移植操作系统和编译器;充分利用新机器的特性优化代码;减少培训费用,因为使用的是相同的软件,所以不必在新平台上重新培训员工;降低了多平台软件的费用。

1 SoC架构设计

1.1 处理器的确定

通用处理器与硬件逻辑是SoC设计的主流架构。在一些需要大量数据处理的应用中,这样的架构并不能满足要求。实际上,由于不同的任务在很大程度上互相独立运行,可以将具有内在执行并行性的任务分解为紧密联系的子任务,不同的内核可以执行不同的子任务,多核架构在1个周期内可以执行多个指令。这种并行处理使得整个系统的性能与使用单核处理器串行处理相同任务相比,有了很大改进。另外,多核架构设计可以复用现有的单核处理器作为处理器核心,从而可以缩短设计和验证周期,节省开发成本,符合SoC设计的基本思路。多核架构是未来SoC发展的一个趋势[2]。

该设计采用双核架构,采用当代流行的处理能力较好的ARM处理器ARM7TDMI-S和ARM926EJ-S, ARM内核最大的优势在于高速度、低功耗[3]。

ARM7TDMI-S具有3级流水线结构,支持Windows CE,Linux等操作系统。ARM926EJ-S是ARM公司在2000年推出的功能最强大的ARM9处理器,实现5级流水,它与外部通信接口为双AHB总线结构,即指令AHB总线和数据AHB总线[4]。该设计中ARMTDMI-S主要负责控制、操作系统平台和任务的调度。ARM926EJ-S则主要负责各种任务的执行。

1.2 使用的总线标准

由于SoC 中集成了大量的IP 核,设计的关键在于如何实现各IP 模块之间的互连。目前,SoC 中IP 核的互连一般采用总线结构,通过消息通信。

采用ARM公司的AHB与APB为片上总线。AMBA总线体系结构是当前SoC体系设计结构设计的开放标准,由于AMBA被越来越多的公司采用,已迅速成为SoC结构和IP库开发的标准[5,6]。

在具体实现时,采用AHB加APB的两级总线结构。AHB用来支持高速设备,支持多主从设备。多个主设备之间通过仲裁机制保证优先级,从设备通过地址译码机制被选中,并响应主设备发起的总线事务。APB用支持基于寄存器访问的低速设备。AHB与APB两条总线通过总线桥连接在一起,实现两条总线之间的协议转换。图1为SoC的系统结构框图。

1.3 各IP在系统中的功能

除了两个处理器外,SoC中各IP核功能如下:

翻译模块:实现将X86指令翻译成为ARM指令的功能。

SMI:外部存储与微处理器之间的桥梁,支持ROM作为系统的非易失性存储介质,支持片外SRAM作为系统的外围高速存储。

中断控制器:用来支持系统内部与外部的中断控制,如中断电平/边沿触发、中断电平极性与中断使能等。

Internal Memory:片内SRAM,大小为1 KB,但可以通过修改Verilog的描述来改变其大小。

Default Slave:用于当master访问未定义的地址空间时,给出一个应答信号。

Retry Slave:是一个可以产生重试回应及等待命令的slave范例,若需要类似的模组,可以利用它来完成。

Watchdog:保证系统安全的监控模块,软件需在预定的时间内访问相应的寄存器,否则硬件将产生内部信号自动复位。

GPIO控制器:用来支持扩展外设,拓宽SoC的使用范围。

Remap&Pause:主要分成两个处理单元,前者负责控管地址是否重新对应的机制,后者负责管理系统的省电模式。

Timer:定时器,支持捕获、Matchout输出、外部时钟驱动。

2 X86到ARM二进制翻译模块

该设计使用的翻译模块通过编写Verilog HDL实现,能将部分X86指令翻译成ARM指令,实现了某些X86应用程序到ARM架构的移植。图2为解码器内部结构图。

该翻译模块首先从ROM中取出X86指令,翻译成ARM指令后存入RAM中,所有指令翻译完成后,翻译模块产生一个终端,使处理器执行RAM中的指令。即所有指令先翻译完成,处理器才执行,该翻译过程属于静态二进制翻译[7]。其中Decoder是整个解码模块的核心,负责翻译指令。Decoder模块采用有限状态机控制数据通路的方式实现,根据指令的功能和寻址方式进行状态分类,然后输出ARM指令。例如,把寄存器寻址的算术指令可分为一类:

ADD EAX,EBX

SUB EAX,EBX

因为这些指令的寻址方式一样,功能近似,只是操作码不一样,可以归并为一个状态,在某一状态内建立映射关系翻译成为ARM 指令。

考虑到AHB总线可能处于比较忙碌的状态,对于X86指令和翻译出的ARM指令分别设置2个FIFO。FIFO1和FIFO2各自有2个存储器,其中一个存储指令,另一个存储与指令对应的地址。对FIFO进行操作会同时对指令和地址进行操作,以保持指令和地址的对应。

此外,ARM核需要向解码模块发送信号,通过设置Communicate模块中的寄存器控制指令译码器的工作:

设置X86指令的起始地址;设置X86指令的终止地址;设置ARM指令的初始存放地址;设置ARM指令复杂指令段的初始地址;设置使指令解码器开始工作的标志寄存器,高电平表示工作;判断指令解码是否结束,结束后向ARM核发送中断;ARM核接收中断信号后,将标志寄存器置低,翻译模块结束本次工作。

本文的SoC系统中没有使用DMA对X86指令和ARM指令进行存取,而是由翻译模块主动进行读和写。因而有2个Master总线接口,通过AHB11 interface读取X86指令,由AHB21 interface将ARM指令写入RAM中。Communicate模块与总线的通信接口为Slave口,用于接收ARM核发送的4个地址,一旦接收到这4个地址,翻译模块中的startflag信号置高,表示开始工作。

3 片上总线结构

在ARM SoC体系结构中,有Master和Slave这两个重要的概念。Master是ARM SoC体系结构中的主单元,他可以向总线发出请求并且对传输进行初始化,例如对存储器进行读/写操作,典型的Master可以是CPU,DSP,DMA。Slave是ARM SoC体系结构中的从单元,典型的Slave为片上或者片外存储器,它们都有自己惟一的地址范围。Master发起读/写操作时,在初始化中会给出读/写操作的地址,而地址译码器则根据这个地址决定哪个Slave被Master选中,然后相应的Slave做出相应[8]。

在AHB系统中,若有2个Master常需要Access Bus,则系统的Performance必定会下降。为了解决这个问题。ARM提出了Multi-layer AHB,其基本构想是2个Master走不同的Bus去访问Slave,如果访问的Slave不同,则两个Master可以同步的进行Transfer。若彼此访问一个Slave,则根据优先级去判断要先处理谁的Transfer[9]。

该总线结构使用了Multi-layer bus switch (BusMatrix)模块。AHB BusMatrix的设计可以分为3个部分:输入级、译码级和输出级。图3为该设计所使用的结构,其中,输入和输出的个数可以根据系统的Master和Slave灵活调整。

可以看出,每个Layer都有一个译码器来决定Master要访问哪一个Slave,通过多路选择器实Master和Slave之间的Transfer。每个Slave口都有自己的仲裁器,该仲裁器使用固定优先级,最高优先级的Layer可以优先访问对应的Slave。

随着系统中Master和Slave的增多,Busmatrix模块的复杂度也会明显增加,如果按照系统所有的Master和Slave的个数来确定输入/输出口的个数,Busmatrix将会非常复杂,因此对系统结构进行优化变得非常必要。根据系统工作情况可以发现,翻译模块的Slave端口仅被ARM7核访问,即向翻译模块存取指令所需的地址,控制其工作,该Slave可以看作是ARM7核私有的,而不被其他Master访问。

有些Slave只有在特殊情况下才被访问,因此可以将多个Slave看作一个Slave挂在BusMatrix上。优化后的SoC硬件架构如图4所示。

4 结 语

这里给出了一种具有X86到ARM二进制翻译和执行功能的SoC系统。利用Multi-layer bus switch (BusMatrix)模块实现Multi-layer总线结构,在多个核不访问同一个Slave时,可以同时执行各自功能,有效提高系统的性能,且该总线结构的可扩展性强。同时根据系统工作的特点,对总线结构进行了优化,减小了总线的复杂度。

摘要:二进制翻译技术是代码移植技术中的一种重要技术。针对二进制翻译的应用,提出在ARM嵌入式平台下实现X86 to ARM二进制翻译系统。通过对ARM嵌入式平台的研究,介绍二进制翻译模块的功能,着重论述SoC架构的设计,并分析Multi-layer总线结构的特点及优化。该SoC系统实现了将部分X86指令翻译为ARM指令并由ARM处理器执行目标代码的功能。该设计为在硬件上实现二进制翻译提供了参考。

关键词:ARM,嵌入式,二进制翻译,SoC

参考文献

[1]Cifuentes C,Malhotra V.Binary Translation:Static,Dyna-mic,Retargetable[A].Proceedings International Conferenceon Software Maintenance[C].Monterey,CA,IEEE-CSPress,1996:340-349.

[2]郭炜,郭筝,谢憬.SoC设计方法与实现[M].北京:电子工业出版社,2007.

[3]季昱,林俊超,宋飞.ARM嵌入式应用系统开发典型实例[M].北京:中国电力出版社,2005.

[4]ARM Limited.ARM926EJ-S(r0p4/r0p5)Technical Refe-rence Manual[Z].2004.

[5]何伟.基于平台的SoC设计技术研究[J].合肥工业大学学报,2007,30(6):727-731.

[6]汪健.SoC设计的关键技术[J].集成电路通讯,2006,24(1):1-10.

[7]马湘宁.二进制翻译关键技术研究[D].北京:中国科学院研究生院,2006.

[8]何震,马秦生,张俊新.SoC体系结构中AMBA总线的系统级设计[J].微型机与应用,2003,22(10):21-23,44.

基于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

一、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

ARM嵌入式平台 篇11

关键词:Flash存储器;μC/OS-II;嵌入式文件系统

中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)16-31081-03

The Design of aFacility Embedded File System Based on ARM7TDMI

ZHANG Yan-wei,WEI Yin-ku

(Air Defense Command College of the PLA,Zhengzhou 450052,China)

Abstract:According to the features of flash memory,a embedded file system is presented,which fits for a lot of open source real—time operation system.At first we introduce the naturalization,which based on lot of open source real—time operation system μC/OS-II .and then ,we introduce an facility file system.the last we educe the conclusion from testing:The instrument indicate that the embedded file system is simple,highly dependable and efficient

Key words:Flash memory;μC/OS-II;embedded system

随着电子技术的不断发展,嵌入式计算机系统凭借其特有的功能和资源占用量少的特点,在各个领域得到了越来越多的应用。在越来越多的场合中要求存储器的容量不断的扩大,然而在这种情况下若没有文件系统支持,数据的存储就难以管理,故使用文件系统是嵌入式技术发展的必然趋势。

1 嵌入式操作系统选择

目前流行的嵌入式操作系统可以分为两类:一类是从运行在个人电脑上的操作系统向下移植到嵌入式系统中,形成的嵌入式操作系统,如微软公司的Windows CE及其新版本,SUN 公司的Java操作系统,朗讯科技公司的Inferno,嵌入式Linux等。这类系统经过个人电脑或高性能计算机等产品的长期运行考验,技术日趋成熟,其相关的标准和软件开发方式已被用户普遍接受,同时积累了丰富的开发工具和应用软件资源。另一类是实时操作系统,如WindRiver 公司的VxWorks,ISI的pSOS,QNX系统软件公司的QNX,ATI的Nucleus,μC/OS-II,中国科学院凯思集团的Hopen 嵌入式操作系统等,这类产品在操作系统的结构和实现上都针对所面向的应用领域,对实时性高可靠性等进行了精巧的设计,而且提供了独立而完备的系统开发和测试工具,较多地应用在军用产品和工业控制等领域中。这些种类繁多的操作系统中,μC/OS-II和μcLinux为公开源代码操作系统,目前得到了较多的认可,但相对于μcLinux系统,μC/OS-II具有体积小、高实时性的特点,因此设计使用时选择了嵌入实时操作系统μC/OS-II。

2 μC/OS-II的移植

2.1移植μC/OS-II的综合考虑

μC/OS-II是一个通用的嵌入式实时操作系统,具有很好的可移植性。大部分μC/OS-II的代码是用C语言编写的,但是仍有一部分代码是与处理器相关的。系统移植需要考虑CPU细节以及所用编译环境,虽然有各种成功移植的范例,但在LPC2210处理器上移植的范例并不多见。本人在借鉴他人移植代码基础上,实现了μC/OS-II在本次应用硬件系统上的移植。本节介绍使用ADS1.2编译器,把μC/OS-II 2.52移植到LPC2210处理器为CPU的具体实现。

然而任何操作系统的移植都有相当一部分工作是和所用处理器的体系结构密切相关的,因此在做具体的移植工作之前,需要先了解该处理器的体系结构在移植过程中要注意的特性。

(1)处理器模式:LPC2210是一款ARM7TDMI核的微处理器,同所有ARM7TDMI核芯片一样,该处理器工作在7种模式下,其中管理、终止、未定义、中断和快速中断模式都和相应的异常对应,能作为任务使用的模式只有系统态和用户态,比较这两种模式,区别在于系统态可使用特权指,但ARM7TDMI处理器没有存储管理器件MMU,所有代码运行在同一存储空间,各任务堆栈之间并没有保护隔离机制,这样并不能给多任务带来保护,同时系统模式可直接操作程序状态寄存器,这能给开关中断带来方便,权衡利弊,系统任务工作模式选择系统态。

(2)程序状态寄存器:程序状态寄存器CPSR(Current Program Status Register),它的[0--4]位用来表示CPU Mode,每一种处理器异常模式,都有一个对应的SPSR(Saved Program Status Register)寄存器,用来保存进入异常模式前的CPSR。SPSR的作用就是当CPU从异常模式退出时,通过一条简单的汇编指令就能够恢复进入异常模式前的CPSR,该值保存在当前异常模式的SPSR中。非异常模式的 usr和sys模式下没有 SPSR,只有 CPSR。不能显式地指定把 CPSR 保存到某个异常模式下的 SPSR,而必须是变更到该异常模式后由CPU自动完成,不能硬性赋值,因为该模式下SPSR在其他模式下不可见。需要注意的是程序状态寄存器只能在特权模式下修改,通常调用SWI软件中断指令,切换到管理模式后进行修改。

(3)软件中断:软件中断由执行SWI指令产生。在其他模式中调用SWI指令,可使CPU工作模式切换到管理模式,可用于用户模式下的程序调用特权操作指令,可使用该机制实现开关中断等系统功能调用。

(4)上下文切换:ARM处理器执行的CPU上下文,涉及共37个寄存器,其中31个是通用寄存器,包括一个程序计数器PC,另外6个分别是CPSR和五种异常模式程序状态保存寄存器。

(5)堆栈生长方向:μC/OS-II使用结构常量OS_STK_GROWTH

定义堆栈增长方向,这一常量允许两种方向,分别是向上和向下增长,虽然ARM支持了两种方式,但ADS1.2编译器只支持满递减的堆栈方式。

2.2 μC/OS-II系统文件结构

在移植过程中把整个系统代码分为三大部分(共15个文件):一是μC/OS-II核心代码部分,包括10个C程序文件和1个头文件,主要实现了系统调用、任务管理、内存管理、任务间通信等系统功能,这部分代码与处理器无关,在移植过程中无须处理;二是应用程序配置相关部分,包括系统配置相关的两个头文件,对其中相关C语言定义开关的使能或禁能可实现系统的剪裁;三是处理器相关代码部分,包括三个文件,系统移植代码集中在这里。μC/OS-II系统文件结构如图1。

图1 μC/OS-II系统文件结构

2.3移植μC/OS-II

2.3.1 OS_CPU.H的移植

该文件涉及处理器和编译器相关的数据类型定义以及处理器相关的宏定义。根据ADS1.2编译器特性,可以定义数据类型BOOLEAN、INT8U、INT8S等,定义代码见程序清单略。

与处理器相关的宏主要是进入临界区的OS_ENTER_CRITICAL和退出临界区的OS_EXIT_CRITICAL,这里开关中断方式采用方式2,两个开关宏定义为直接操作CPSR寄存器。另外定义OS_TASK_SW()和_OSStartHighRdy()为软件中断函数来为系统提供底层驱动。用软中断作为操作系统的底层接口就需要在C语言中使用SWI指令。在ADS中,有一个关键字__swi,用它声明一个不存在的函数,则调用这个函数救灾调用这个函数的地方插入一条SWI指令,并且可以指定功能号,同时,这个函数也可以由参数和返回值,其传递规则与一般函数一样。相关宏定义见程序清单略。

2.3.2 OS_CPU_C.C的移植

按μC/OS-II要求在OS_CPU_C.C中,需要编写10个C函数,其中9个为钩子函数,在移植过程中简单地把这几个函数处理为空函数了,主要的移植工作在OSTaskStkInit()函数上。分析该函数功能为初始化任务的栈结构,并使所有的寄存器都保存在堆栈中。实现过程中,注意SPSR初始为系统模式并使能中断,具体实现见代码清单略

2.3.3OS_CPU_A.S的移植

在OS_CPU_A.S中,编写3个汇编语言函数,OS_TASK_SW(),__OSStartHighRdy()和OSTICKISR(),并编写了软件中断服务程序。在调用软中断之后,处理器切换到ARM指令和管理模式下工作。在执行软件中断服务函数之前,要提取中断号,这些通过软件中断服务程序完成,具体实现见代码清单略。

任务切换发生在当前任务调用OS_TASK_SW函数主动交出CPU控制权和发生中断时调用OSIntCtxSw函数时,虽然这两个函数执行的条件不同,但是它们的功能相同,实现中让这两个函数公用了一个任务切换代码,其中OS_TASK_SW是通过软件中断0完成的,具体实现见代码清单略。

系统多任务环境由函数OSStart()启动,用户在调用该函数之前,必须已经建立了一个或更多任务。OSStart()最终调用函数OSStartHighRdy()运行多任务启动前优先级最高的任务,而它最终是调用__OSStartHighRdy实现的,其代码见程序清单略。

函数OSTickISR为系统时钟节拍中断函数,这需要使用处理器的定时器和定时中断,为达到集中地初始化硬件的目的,此函数放在了启动代码文件中,实现见程序清单略。

3 简易文件系统设计

3.1文件系统设计方案

用以存储文件数据的设备就是文件系统设备,文件系统设备向文件系统提供数据的物理存储服务。文件系统通过设备驱动程序对文件系统设备进行操作。本设计选择NandFlash存储器作为存储文件数据的设备,U盘就是USB接口大容量FLASH存储盘,它是一种新型移动存储设备,以体积小、速度高、抗震动、通用性强的特点倍受青睐。

通过设计U盘读写协议栈,微处理器已经能够对U盘的某一特定扇区读写。为了让系统写入U盘的数据直接被Windows系统所识别,还需要设计一个符合FAT格式的文件系统。为此我们再来分析需求:一是符合FAT文件系统格式;二是实现数据输入,数据结构不大于80字节;三是能对需要存储数据进行保存。根据对实际需求的分析,基于面向应用,满足应用要求的思路,最后确定文件系统方案为:在Windows NT系统环境下格式化U盘,同时建立一个名为“Hanglu.dat”的文件,通过该文件在嵌入式系统与PC机的Window系统交互,该文件格式固定为数据结构数组文件。根据以上方案,实际研究过程中我设计了一个较为简易的文件系统,该文件系统格式与FAT兼容,实现了嵌入式终端写入的文件能够被Windows系统直接作为文件读写,同时Windows系统上对文件写入的数据也能被嵌入式终端识别。之所以说是一个简易的文件系统,是因为该系统是高度面向本次应用的,而没有提供通用接口,它只默认对一个固定文件名为“Hanglu.dat”的文件进行读写操作,没有实现文件创建及删除功能,不能对文件名进行修改,也不能对通用文件进行操作。

3.2文件系统初始化

文件系统初始化是该系统的核心所在,文件操作的准备工作都在该过程中完成。系统初始化首先获取U盘信息,然后通过比对查询的方法在FDT目录表中查找“Hanglu.txt”目录项,根据目录项中“首簇”值再到FAT区追踪簇链到最后一个,然后根据该值在这一簇中查找EOF所在扇区,并把该扇区数据读到系统RAM中以备读写文件的需要。该过程中比较有特色的是,构建了一个扇区指针数据结构,该数据结构的三个指针成员分别指向“Hanglu.txt”文件末簇指针在文件分配表中、目录项在目录分配表以及EOF的扇区号,这就为后面的文件操作提供了极大的方便。图2为文件系统初始化流程图。

图2 文件系统初始化流程图

获取U盘信息主要包括U盘每扇区字节数、每簇扇区数、FAT开始扇区号、FAT表个数、根目录占扇区数、逻辑盘(卷)总共扇区数、FAT表占用扇区数、根目录开始扇区号以及数据区开始扇区号等数据。U盘在格式化后,把这些信息保存在U盘引导区中,读取U盘引导区可获得以上所列的大部分数据,还有些数据通过计算就可获得。获取U盘信息程序见清单略。

3.3文件读写

系统经初始化后,数据文件的最后一部分数据以读到了系统RAM中,读输入的数据只需要分析出该数据即可。在此不再过多描述。

追加方式写“Hanglu.dat”文件首先判断数据是否小于初始化获取的EOF指针所指簇空间,因为FAT文件系统规定文件存储的最小单位为簇,所以在当前簇空间不足时,需要先遍历文件分配区分配一个空闲的簇空间,并把剩余的数据写入其中。

4 结论

本设计是根据具体需求和项目指标对源代码开放的实时嵌入式操作系统 μC/OS-II进行了有针对性的移植,并在上基础上提出了适合本设计要求的镜文件系统。经实验测试该文件系统运行良好,性能稳定,可靠性强。下一步的工作扩充设备驱动程序库,使之支持更多各式各样的外部设备。

参考文献:

[1]ARM 公司.ARM7TDMI-S Reference Book[M].

[2]Philip公司.UM_LPC2114_2124_2212_2214_2 Datasheet[M].

[3]Andrew N Sloss.ARM嵌入式系统开发—软件设计与优化[M].北京:航空航天大学出版社,2005.

[4]Wayne Wolf.嵌入式计算系统设计原理[M].北京:机械工业出版社,2002.

[5]张宁.等.基于MSP430和CF卡的FAT16文件系统设计[J].长春理工大学学报,第29卷第1期.

[6]刘忆辉.MM36SB020中一个类FAT16文件系统实现[J].2005年全国单片机与嵌入式系统学术交流会论文集.

[7]Jean JLabrosse.著.邵贝贝.等译.嵌入式实时操作系统uC/OS-II(第2版)[M].北京航空航天大学出版社,2005.

基于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.

上一篇:整体护理管理下一篇:以案例为基础的学习