嵌入式平台(精选十篇)
嵌入式平台 篇1
嵌入式系统一般被定义为以应用为中心, 以计算机技术为基础、软硬件可裁剪, 功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。最早期嵌入式系统主要被应用于工业、航空航天等专业领域上。如今嵌入式系统被广泛应用到各个行业以及我们生活的各个方面。而且我们可以预见, 随着后PC时代来临, 嵌入式系统必将发挥更加重要的作用。
针对嵌入式系统应用趋势, 本科院校的IT类专业基本上都开设嵌入式系统方向的课程。高职院校与本科院校相比, 在教学时间和学生能力上都有的劣势。因此, 如在高职院校计算机类专业进行嵌入式系统教学, 必须要选择一条适合高职特点的技术路线。
一、技术路线选择
从嵌入式系统的定义可见嵌入式系统不是一个独立的学科, 而是一个综合学科, 尤其是涉及软件与硬件的结合。一个完整的嵌入式系统主要由嵌入式微处理器为核心的硬件平台、嵌入式操作系统、嵌入式应用软件系统等三部分组成。嵌入式微处理器典型代表主要有ARM、X86、MIPS等系列产品。ARM系列在消费电子、无线设备等领域得到了广泛应用。X86系列兼容Intel通用计算机处理器指令系统, 在工业控制和通信领域得到了大量应用。MIPS则广泛应用于机顶盒、游戏机等领域。嵌入式操作系统主要有Linux (或基于Linux内核) 、Windows CE、u C/OS II、VxWorks、Nucleus等系列, 其中毫无疑问Linux系列占据了嵌入式操作系统最大的份额。
在嵌入式系统教学中, 由于嵌入式硬件系统的专用性和复杂性, 主要通过购买教学设备厂商提供的教学硬件平台。而这些教学平台基本都是基于ARM系列的微处理器。基于ARM处理器的嵌入式实验平台的学习, 涉及的知识面还比较多, 比如ARM体系结构、ARM指令系统、汇编语言、交叉编译和C/汇编语言的混合编译等。对于高职计算机类专业, 如果不是专门的嵌入式方向, 选择ARM系列硬件系统进行教学, 无论是教学时间还是知识结构上都不太合适。而基于X86的微处理器与现有PC通用的CPU相兼容。所以, 我们在进行技术路线选择时没有选择ARM系列, 而是选择了X86系列的微处理器。对于嵌入式应用软件系统, 可以通过嵌入式软件开发或者应用集成两种方式实现。也是基于选择X86系列微处理器相同因素的考虑, 我们在嵌入式应用软件系统的技术路线上选择了应用集成这种方式。
综上所述, 我们确定用于高职计算机类专业进行嵌入式系统教学的基于X86平台的嵌入式Linux实验平台的技术路线为:采用基于X86平台的嵌入式瘦终端, 依据这个终端设备对通用的Linux系统进行内核裁剪并定制相应的文件系统, 从而构建一个以U盘为载体, 能在嵌入式瘦终端上引导运行的嵌入式Linux系统;最后再在这个平台上集成相应的应用。具体过程如图1所示。
二、Linux系统内核裁剪
正如嵌入式系统的定义所言, 系统的可裁剪是它一个重要特点。Linux系统的裁剪通常可以通过两种方式完成。一种途径是从零开始, 根据需求逐步搭建Linux系统。另一种途径是从一台开发主机上完整的Linux系统拷贝复制内核和必要的文件构建一个小系统。本实验平台采用后一种方式实现。源Linux系统采用Cent OS 5.8版本进行安装。安装过程中通过软件包定制, 没有选择图形界面, 选择了系统的基本、开发库、开发工具集、编辑器、系统工具集、网络服务功能等6个软件包组进行安装。
完成目标主机的源Linux系统安装后, 进入实验平台搭建的第一阶段:Linux内核裁剪。操作系统内核提供了操作系统的基本功能, 如进程调度、内存管理、设备驱动、文件系统、网络功能等。通常情况下, 通过Linux发行版本安装的Linux系统, 其内核都是通用内核。通用内核要考虑设备的普适性, 所以都比较大并且功能比较全。如本实验安装的源Linux系统, 其内核版本为2.6.18-308.e15, 压缩后的大小约为190M。但嵌入式系统都是专用系统, 一般都需要经过内核裁剪, 把不需要的功能移除。内核裁剪后可以带来非常多好处, 比如系统更简单、效率更高、更加稳定等。Linux内核裁剪主要经过以下几个步骤:
STEP 1:下载源代码。下载Linux内核源代码, 并在开发主机的中解压。在实验平台中, 我们选择了跟源Linux系统相近的内核版本2.6.18。
STEP 2:配置内核。配置内核通过命令“make config”, 然后再选择内核需要的功能模块。以版本2.6.18为例, Linux内核共有24大类功能模块。在搭建实验平台的教学中, 内核裁剪主要集中在处理器类型和特性、硬件驱动、设备驱动、文件系统、网络等模块中。具体裁剪可以根据目标终端的硬件决定。通过Linux内核裁剪, 可以让学生对嵌入式系统的可裁剪性有了更具体的认识。
STEP 3:内核编译。内核编译主要通过命令“make;make moduels_install”实现。编译成功的内核保存在arch/i386/boot中。
STEP 4:内核安装。内核安装通过命令“make install”完成。命令成功执行完成后, 将在/boot目录下生成新的内核、initrd和System.map等文件。
三、文件系统定制
完成内核裁剪和编译后, 我们进入搭建实验平台的第二阶段:文件系统定制。如果对新系统的空间大小有严格限制, 通常需要利用Busybox来构建新系统的文件系统。实验平台对存储空间大小没有严格限制, 所以我们通过拷贝的方式, 直接构建一个与源Linux系统类似的文件系统。只是它是需要运行的应用程序、库、配置文件的较小的集合, 并且保存在独立的U盘中。步骤如下:
STEP 1:分区。在源Linux主机上挂载U盘, 把U盘分成两个区, 都用Ext3文件系统进行格式化。其中一个分区大小约为50M, 用作新Linux系统的引导分区;另一个分区作为新Linux系统根分区。最后把这个两个分区挂载到源Linux系统中。
STEP 2:创建引导目录。拷贝源Linux系统/boot目录编译后的内核、initrd、System.map、menu.lst、stage1、stage2等文件到U盘上用作引导分区目录中。
STEP 3:创建应用程序目录。在U盘用作根分区的目录中创建bin、sbin、usr/bin、usr/sbin等目录, 并拷贝源Linux系统中/bin、/sbin、/usr/bin、/usr/sbin中文件到U盘对应目录中。可以根据自己的实际需要选择必要的命令文件。
STEP 4:创建设备目录。在U盘用作根分区的目录中建立dev目录, 并拷贝源Linux系统/dev目录文件。源Linux系统中设备文件较多, 尤其是同种类型的设备文件有多个, 可以根据实际需要减少同种类型的设备文件, 例如硬盘、tty等。
STEP 5:配置目录。在U盘用作根分区的目录中建立etc目录, 并拷贝源Linux系统/etc目录文件。可以根据实际需要, 只拷贝必要的配置文件。
STEP 6:创建库文件目录。在U盘用作根分区的目录中创建lib、usr/lib、usr/share等目录, 并拷贝源Linux系统中/lib、/usr/lib、/usr/share中文件到U盘对应目录中。系统正常运行必须有相应的库文件, 可以使用ldd命令检查支持之前拷贝的命令所需要的库文件。
STEP 7:创建其他必要的目录。在U盘用作根分区的目录中创建home、media、proc、root、var、var/log、var/run等目录。
四、系统引导及应用集成
以完成文件系统定制的U盘作为载体的新Linux系统还不能引导, 因为U盘还不是一个引导盘。基于X86平台的瘦终端与普通PC机类似, 系统引导加载由BIOS和位于硬盘主引导记录 (MBR) 的OS Bootloader组成, BIOS负责硬件上电后的自检和初始化等工作, 然后再读取MBR中的Bootloader程序并将其装入内存, 由Bootloader程序装载操作系统内核, 再把控制权移交给操作系统内核, 从而完成 (下转第39页) 了操作系统的引导。在实验平台中, 我们采用的Bootloader程序为GRUB。通过在U盘上安装GRUB, 从而使得这个U盘成为引导盘, 完成新Linux系统的引导。主要的步骤如下:
STEP 1:卸载源Linux系统的/boot, 把U盘用作引导的分区挂载目录/boot上。
STEP 2:安装GRUP到U盘中。通过命令“grupinstall/dev/sda”完成此操作。
STEP 3:生成GRUP的配置文件。通过命令“grub-mkconfig-o/boot/grub/grub.cfg”完成此操作。
STEP 4:产生U盘上的MBR。通过命令“grubsetup/dev/sda”完成此操作。
STEP 5:更新U盘上作为根分区的文件etc/fstab。把根“/”对应的分区更新为“/dev/sda2”;再把“/boot”对应的分区更新为“/dev/sda1”。
通过上述步骤, 我们已经可以把U盘上Linux系统正常引导运行, 成功搭建了实验平台。利用实验平台, 我们可以搭建专门的应用。比如, 在源Linux系统上完成iptables软件的安装和配置, 把源Linux系统上的iptables拷贝到U盘上, 让iptables把这台瘦终端成为小型的专用路由器设备。
五、小结
通过这个嵌入式Linux实验平台的搭建, 首先可以让高职计算机类学生对嵌入式系统组成有了一个形象、具体的认识;同时, 在实验平台搭建过程中, 也让学生嵌入式系统软件尤其是嵌入式操作系统有了更深刻的了解。实验平台的搭建为高职计算机类学生进入嵌入式系统领域进一步深入实践和学习打下了一定的基础。利用这个实验平台, 也可以自己集成相应的应用, 构建一个可用的嵌入式专用系统, 提高学生的学习兴趣和热情。
参考文献
[1]腾春桃等.嵌入式Linux文件系统的研究与应用[J].微计算机信息, 2008 (11-2) .
[2]马学文等.嵌入式系统中Bootloader的设计与实现[J].计算机工程, 2005 (4) .
[3]高松.Linux剪切方法研究[J].软件导刊, 2006 (1) .
[4]杨学俊等.基于X86平台的嵌入式Linux系统[J].电脑编程技巧与维护, 2011, (14) .
嵌入式平台 篇2
摘要: 介绍基于ARM的嵌入式Linux系统平台的系统硬件系统构架,软件系统的组成和主要功能模块的实现。由于本系统采用的S3C2440 ARM9芯片具有较高性能和丰富的外围接口资源,因此具有控制能力强,硬件结构简单,方便功能扩展等优点,在控制系统中有较高的实用价值。
关键词: 嵌入式系统;Linux;S3C2440
中图分类号:TP3文献标识码:A文章编号:1671-7597(2010)0610166-01
0 引言
随着计算机技术的发展,嵌入式系统已成为计算机领域的一个重要组成部分。由于嵌入式系统应用的场合日趋复杂,只使用嵌入式控制器控制将难以满足要求,所以嵌入式操作系统得到了飞速的发展。
本文拟采用RISC体系结构的ARM处理器扩展外设及存储器等作为硬件平台;采用功能强大,易于移植的嵌入式Linux作为系统软件平台便于有效管理内存、实现多任务编程,是对市面上较多以8位、16位机为主控CPU的控制器的发展进步。嵌入式Linux系统的特点
Linux是一套类Unix的操作系统,具有Unix系统的程序接口和操作方式,也继承了Unix稳定和高效率的特点。目前内核已发展到2.6版本。
Linux内核遵循开放系统互连(OSI:OpenSystem Interconnect)国际标准,凡遵循该标准开发的硬件和软件,都能彼此兼容,方便程序移植到其它系统平台。其次,Linux具有良好的用户界面。传统用户界面是基于文本的命令行界面,有很强的程序设计能力,系统调用是给用户提供编程时使用的界面,用户可以在编程时直接使用系统提供的系统调用命令。完善的内置网络是Linux的一大特点,Linux在通信和网络功能方面优于其他操作系统,为用户提供了完善的、强大的网络功能,这一点也是继承了UNIX的优良传统。嵌入式Linux系统硬件架构及开发平台
本文采用的硬件平台是基于ARM9构架的嵌入式芯片S3C2440A,主频533MHz,支持Linux,Wince等操作系统。此外,外接了64M RAM,64M Flash,以太网控制芯片CS8900A。外围接口配有以太网口、RS232,USB等以便为建立交叉开发环境做好通讯、调试等方面的准备;配置LCD,触摸屏等以便实现人机交互系统。
硬件设计分为系统电路和功能电路两部分,系统电路为S3C2440A运行操作系统提供最小系统;功能电路提供各种接口实现控制器功能需求。
系统电路主要包括:电源电路、复位电路、时钟电路、存储器扩展和JTAG接口。为了流畅运行操作系统,本文在存储器扩展部分选用2M NOR Flash存储启动代码和操作系统,64M NAND Flash存储文件系统和应用程序代码。前者选用AMD公司的AM29LV160DB(1Mb×16),后者用三星的K9F1208U0A(64Mb×8)。
功能电路主要包括:液晶、触摸屏电路、以太网接口电路、USB Host
接口电路等。主要提供人机交互系统,网络链接,usb设备链接的功能。嵌入式Linux系统软件的设计
在开发系统前,必须安装Linux操作系统。然后在宿主机即PC机上建立交叉开发环境,安装交叉编译器cross_2.95.3.tar.bz2。然后编译ARM Linux 内核,在Linux的终端下,先进入ARM Linux内核源代码的目录下,执行make menuconfig命令就会出来内核配置主界面。在配置内核的时候可以静态的把CS8900A芯片、LCD、触摸屏以及U盘支持的驱动加入内核。保存对内核的设置后退出,然后在命令行下输入:
#make dep 建立整个内核程序间的依赖关系
#make zImage编译内核为zImage模式
编译完成后,在arch/arm/boot 目录下将生成ARM Linux 内核映像文件zImage。这就是要下载到硬件系统的内核映像文件。此内核包含了上述的以太网、LCD等模块,为下面设计提供了必需的系统软件功能。上位机软件的具体实现功能:通过以太网口可以实现远程控制,LCD、触摸屏提供人机交互界面,通过USB接口实现U盘读取数据等。
在应用程序开发上,系统的软件模块主要实现U盘读写、键盘和触摸屏控制、液晶屏图形驱动显示、断电数据保护、内存管理和串口通讯,以太网通讯等。操作系统的移植以及扩展,辅助开发平台上已有完备的软件平台,无须做过多修改就可移植到我们的平台上。可以将各功能模块编制成独立的任务,通过操作系统提供的API,有效的调度任务,实现任务之间的同步与通信,更好的完成工作。以下便是各功能的简单介绍和具体实现过程。网络系统的设计
TCP和UDP是TCP/IP协议中的两个传输层协议,它们使用IP路由功能把数据送到目的地。TCP提供的是面向连接的、可靠的数据流传输,而UDP提供的是非面向连接的、不可靠的数据流传输,对数据不进行重传和确认。当要求传输的数据完整、可控、可靠时,应该选择TCP协议。当强调传输的实时性而不是完整性时,例如传输音视频信号时,应选择UDP协议。
CS8900A是CIRRUS LOGIC公司生产的16位以太网控制器,芯片内嵌片内RAM,10BASE-T收发滤波器,直接ISA总线接口。该芯片的突出特点是使用灵活,其物理层接口、数据传输模式和工作模式等都能根据需要而动态调整,通过内部寄存器的设置来适应不同的应用环境。发送过程中,首先添加以太网帧头(包括先导字段和帧开始标志),然后生成CRC校验码,最后将此数据帧发送到以太网上。接受时,他将从以太网收到的数据帧在经过解码、去掉帧头和地址检验等步骤后缓存在片内。通过CRC校验后,它会根据初始化配置情况,通知主机CS8900A收到了数据帧,最后用上面介绍的某种传输模式传到主机的存储区中。液晶显示系统设计
本设计采用Linux为显示设备提供的帧缓冲(framebuffer)接口,把显存抽象后的一种设备,他允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作。这种操作是抽象的,统一的。用户不必关心物理显存的位置、换页机制等等具体细节。这些都是由Framebuffer设备驱动来完成的。结束语
解决方案采用先进的基于ARM的32位先进处理器,并移植扩展好的嵌入式实时操作系统构成我们的开发平台,提出了一种新的思路,做出了大胆的尝试,相信随着工作的进一步深化、进展,定能取得另人满意的控制效果。
参考文献:
利用图形化平台开发多核嵌入式系统 篇3
近几年来,处理器的速度遭遇到了瓶颈。在过去40年里摩尔定律表明,每隔18到24个月半导体芯片中晶体管的数量就会增加一倍,而芯片性能也随之线性增长。过去,芯片生产厂商通过增加处理器的时钟速度来提高芯片的性能,如从100MHz到200MHz,再到最近的几GHz。但是在今天,由于功耗和散热的限制,提高时钟速度来增加性能的方法是行不通的了。芯片厂商开始转向另一种全新的芯片构架,就是使单个芯片具有多个处理器器核心。使用多核处理器,程序员们可以完成比使用单核心更多的任务。
嵌入式系统不可避免的也同样会遇到在功耗和散热方面的问题,与PC设计领域的同行一样,嵌入式系统工程师也开始考虑转向多核处理器,以求获得处理能力、功耗和产品体积等方面的潜在优势。Intel嵌入式和通信集团总经理Doug Davis指出,在高端通信和医疗成像等计算密集型应用领域,嵌入式系统客户们已经纷纷要求芯片厂商提供具有更长生命周期的多核器件。Intel不久前宣称,将面向嵌入式计算市场提供四核处理器。一些数码产品厂商亦指出,他们公司转向多核是因为“需要更强的处理能力和多线程”。
对于嵌入式系统而言,多核技术可以提供更高的处理器性能、更有效的电源利用率,并且占用更小的物理空间,因而具有许多单核处理器无法具备的优势。MIPS科技公司亚太区副总裁MarkPittman指出,在嵌入式产品的市场上,许多应用可以从多线程流水线执行当中获益,整个系统的性能,由此提高的百分比从60%到300%不等。
多核、多线程需要全新的编程方法
要想充分发挥多核以及多处理器解决方案的潜能,仅仅依靠强有力的芯片是不够的,还需要采用新的编程方法。微软公司的软件设计师HerbSutter说过,对于那些期望最终用户简单地将计算机升级到更快的处理器,或期望立即看到软件程序性能提升的开发者而言,“免费午餐结束了”。简而言之,在相当长的一段时间里,软件性能可以轻易地得益于处理器的性能提升,但是现在情况不同了。
利用多核处理器的编程应用是一个巨大的编程挑战,这是广为接受的。比尔盖茨有这样一段话:“要想充分利用并行工作的处理器的威力,软件必须能够处理并发性问题。但正如任何一位编写过多线程代码的开发者告诉你的那样,这是编程领域最艰巨的任务之一。”
多核处理器编程,尤其是多线程编程中存在好几个难点:首先是并行的思考方式,比如要分辨出哪些任务是可以同时执行的,这并不是一件容易的事情。
其次是线程的创建和管理。开发人员把任务划分成多个并行步骤之后,就要通过线程的方式来实现。多线程编程是相当困难的,很多传统的编程语言都需要一组新的函数或结构来创建、同步、加解锁线程,这意味着工作量的增加。
与此同时,开发人员还需要考虑并行代码段之间哪些资源是不能共享的,比如文件、内存、硬件等等,否则会导致资源的冲突和竞争,使得并行线程因等待资源而暂停。此外,如何对复杂的多线程编程进行调试,以及如何在多核的实时系统中保持确定性,都是值得考虑的问题。
通过图形化平台开发多核嵌入式系统
由于多线程编程的复杂性,很多计算机方面的专家都在进行探索,希望让编译器来帮助开发人员处理并行性问题。如果没有这种编译系统。开发人员必须自己来处理并行编程。双核处理器的多线程编程已经是相当的复杂,如果以后发展到80个核,其复杂度将令开发人员无法应付。对于学习计算机编程或软件工程的开发人员来说,或许文本编程的并行编程机制并不足以难倒他们,可是对于其他领域的专业人员,如果他们并不擅长编程,又要使用多核处理器带来的高性能,那么图形化的开发环境LabVIEW可能是他们的理想之选。
LabVIEW是一种图形化数据流式编程语言,在嵌入式系统中实现图形化,已经成为大势所趋。现在市场所需的是一种完全的图形化编程语言,提供足够的灵活性和功能,以满足更广泛应用的需求。因此,图形化系统设计的关键因素是图形化编程。
LabVIEW是一个基于数据流的图形化开发平台,它提供了直观、符合工程师思维习惯的图形化编程方式和用户界面。在LabVIEW中,用户解决工程问题就像是在设计他们所熟悉的流程图一样。现代多核处理器使得LabVIEW成为一种更合适的编程工具选择,因为它有着并行化表示和执行任务的能力。
LabVlEW本质上是一种并行结构的编程语言。基于LabVIEW的数据流特性,如果连线中存在着分支,或者是框图中有着并行序列,那么后台的LabVIEW执行器将自动地实现并行化运行。当我们在程序框图中通过连线的分岔创建另一个程序分支时,就可能产生另一个线程。如果我们创建了多个循环,那相对应的也就创建了数个新的执行线程。在LabVIEW中,多个并行循环会自动分配成多个线程并分配到多个处理核上,因而LabVIEW用户无需对代码做任何改动,也不需要花时间学习新的编程方式,即可利用多核处理器的性能优势。
LabVIEW提升多核应用程序的性能,从单核到双核计算机,理论上讲,获得的性能应该是原来的两倍。但是,与这个极限的接近程度取决于用户应用程序并行化运行的程度。LabVIEW程序员们可以很方便的以并行方式来表示他们的解决方案。在多核处理器上,我们可以方便地实现应用程序的性能改进,因为LabVIEW动态地分配每一个线程。事实上,用户不需要创建特殊的代码以支持多线程,而是通过最少的编程调整,并行应用便可以获益于多核处理器。对于普通的LabVIEW应用程序而言,如果不考虑多核编程技巧,在不改写代码的情况下,与最初的基准程序相比,可以获得25%到35%的性能提升。
其中,LabVlEW代码分支简化了两个分析任务,一个滤波器操作和一个快速傅立叶变换(FFT),使它们可以在双核机器上并行化执行。它首先在单核的模式下(关掉其中的一个核)运行,然后在双核的模式下运行。因为这两项任务都是计算量很高的,利用任务并行化获得的性能改进为原来的1.8倍。
LabVIEW支持嵌入式实时系统,前面大部分讨论都是针对如何平衡多核、多线程编程的复杂性,从而提高程序的性能和吞吐量。对于要求更加严格的嵌入式实时系统,这些考虑同样适用。在典型的实时系统中,通常有一段代码对执行时间有严格要求,必须以指定速率持续而可靠地运行。同时也有一些对执行时间没有严格要求的代码段,比如用户界面的数据传输、数据存储等等。显然,对于执行时间有严格要求的代码或循环,应用程序必须对它们特别关照,保证没有冲突等问题。
表面上看来,这个要求对于多核系统是一件非常简单的事情。只要将对于执行时间有严格要求的代码与其他代码隔离,分配到独占的处理器核上,就可以保证它不受影响地运行。但是,许多实时或嵌入式操作系统并不支持在多个处理核之间的线程负载均衡,这是因为在实时和嵌入式领域的工具往往更关注性能和确定性,而减缓了对于多核的支持。
Intel定义了用户需要评估的软件四层次来确定多核系统的可用程度。如果所用的应用程序库和设备驱动不是为多核而设计的,或者操作系统不能够在多个处理核上进行负载均衡,那么并行化程序在多核系统上是不能够运行得更快的。
操作系统,作为软件层次的底层,许多实时的操作系统(RTOS)厂商现在还不支持在多个处理器核间进行自动的线程负载均衡。但是,为了让多核处理器在嵌入式实时系统中发挥出性能优势,在实时或嵌入式操作系统中必须支持多核处理器的任务分配。
LabVIEW的最新版本将针对多核处理器的自动线程负载平衡功能引入到实时系统之中。
如果需要更进一步的控制或微调实时程序的性能,在LabVIEW中,可以使用定时循环结构将各部分代码分配到指定的处理器核上。这意味着开发人员可以把执行时间有严格要求的代码直接映射到专用的处理器核,从而保证这部分代码不会被中断,保持其实时性。
结语
嵌入式系统可信平台模块研究 篇4
1 可信平台模块研究的时代背景
1.1 可信计算是现代计算研究领域中的重要内容
随着人类时代与科技的巨大发展, 按需计算、普适计算及自主计算等计算形式方法都为人们的生产与生活发展做出了巨大的贡献。然而, 这些计算都需要一个在远程运转但又具有安全鉴别性能的软件方法。可信计算则是其他一切计算的运作基础, 它的目标之一则是可以提供这种远程运作并且具有安全识别的软件方法。总之, 可信计算技术本质即是此:促使信息系统的运作计算及交易内容具备安全、准确、可靠、可信并且受保护, 具有隐私性。这些本质内容共同作用, 是其他计算技术高效运作的基础保障。于是, 正因可信计算的优越性, 使其的研究在当前的跨国公司、高校学院等研究机构中成为了重要的研究领域, 并有一举成为人们日常使用技术的趋势。
1.2 信息安全性提出时代的挑战
随着人类高新技术的不断发展, 当今社会逐渐走向了信息化时代。而另一方面, 信息技术给人类带来实惠的同时也加剧了信息安全的危险。信息安全技术的研究也逐渐成为了人们关注的重点之一。关于信息安全技术的发展也在不断地变化之中, 由先前的非对称计算技术延伸到密码保护的技术发展, 最后到今天的可信技术的研究阶段。在我国新时期的今天, 面对工业化与信息化并向进军的时代背景下, 及时研究并推动信息安全领域的发展具有深远的时代意义。
2 嵌入式系统可信平台模块
从上文可知, 可信平台模块对于提升信息系统安全性的水平具有重要的时代意义与现实价值。但是, 现有的可信平台模块并不能有效满足嵌入式系统环境的安全性需要。于是, 针对于此, 设计适合嵌入式系统特殊环境状态下的新型嵌入式系统可信平台模块, 即ETPM。ETPM设计基于传统的TPM, 进行了一定的改进, 增加了备份恢复、总线仲裁模块及对称密码引擎。下文主要对该模块进行阐述。
2.1 备份恢复模块
源于可信是在安全和可靠的基础上的理论思想, ETPM加入了备份恢复模块, 使得可信计算平台的总体可靠性及安全性得到了大大的提升。当系统发现被非法修改之后会自动进行检测并加以修复, 预防了信息被篡改。同时, ETPM加入了备份恢复模块还增加了计算平台的抗篡改和持续工作能力, 相较于旧有的技术, 大大改进了抗外界干扰的能力, 并为系统的备份储存器增添了安全受保护的储蓄环境。
ETPM的备份恢复示意图如下:
2.2 总线仲裁模块
在本设计的系统中, ETPM位于系统核心的地位。总线仲裁模块可以对于外部储存器的总线控制权进行总线仲裁。同时, 总线仲裁模块还可以对嵌入式系统环境进行总体的控制。在上述的功能之下, ETPM的总线仲裁模块具有系统仲裁与系统控制的两大功能。
结语
嵌入式平台 篇5
公司简介:
注册时间:2003年3月24日 经济性质:合资 从事领域:电子信息
资产状况:注册资金100万人民币 人员状况:12人 股本结构: 中方:方沛宇 60万元 杨海英 10万元
外方:今村博宣 20万元 日本力扬株式会社 10万元 项目情况:
我们采用独自的技术彻底改造了其Linux内核,使其成为一种完全意义上的实时操作系统。dynaLinux具有以下特点:(1)导入了基于OSPM/ACPI的动态电源管理机构,可以根据CPU的使用状态动态控制耗电量。(2)高速的boot机制。(3)坚固的安定性。(4)支持无MMU的CPU。
应用领域主要是面向:信息家电、PDA、手机、车载终端、GPS 等 国内外市场分析:
Linux操作系统在嵌入式系统中的应用近来成为一种趋势。据有关部门预测到2005年嵌入式系统中Linux的份额将占50%以上。但基于分时系统而架构的Linux存在许多先天的不足,故现有的嵌入式Linux还不能称为完全意义上的实时。我们采用独自的技术彻底改造了其Linux内核,使其成为一种完全意义上的实时操作系统。鉴于dynaLinux的优势,本公司被被富士通指定为支持其FR-V CPU的Linux提供商和全球技术总支持。融资和技术转让方案:
总项目投资:100万人民币 已完成投资状况:50万人民币 项目进展阶段:已完成Dyna-Linux(v 1.0)的开发 融资或转让方式:投资或融资 联系方式:
嵌入式平台 篇6
关键词:嵌入式软硬件;ARM;教学平台
中图分类号:TP319文献标识码:A文章编号:1007-9599 (2011) 06-0000-01
Design of Multi-platform Embedded Software/Hardware System on ARM
Li Huaizhou,Zhao Xuegong,Liu Shi
(School of Optoelectronic Information,University of Electronic Science&Technology,Chengdu610054,China)
Abstract:A design of embedded hardware teaching platform based on ARM is realized in the paper.After setting up software development environment,some lab projects related to the platform are designed.Multiple ARM processors can be compatible with the platform.It offers a solution contributes to improve students' innovation ability.
Keywords:Embedded software and hardware;ARM;Teaching platform
随着嵌入式行业的迅猛发展,社会上对嵌入式方向的研究人才的需求也大幅度增加。为此,本文设计了一种兼容多款ARM9的嵌入式教学实验平台。学生可通过切换不同的CPU板完成对基于ARM的嵌入式系统的全面深入学习。
一、实验系统硬件平台总体设计
本系统需要设计的是一个支持多平台的嵌入式硬件平台,我们在硬件设计时采用子母板的结构,不同的ARM芯片电路分别设计在较小的子板上,而共用外设电路设计在母板上,子板与母板间通过金手指接口连接。本系统设计了三个不同的CPU子板:S3C2440子板,AT92SAM9261子板和LSZCP320子板。同时设计一个能够兼容三个子板的母板。具体的硬件规划布局如图1所示。
二、实验系统软件平台设计
(一)嵌入式软件开发环境的建立
嵌入式系统开发模式为交叉开发模式:在主机上编辑、编译软件,在目标板上运行、验证程序。本系统搭建的交叉编译环境,主机为PC,目标板即为实验教学平台,交叉编译工具为arm-linux编译器。
(二)引导程序的加载
嵌入式系统中,Bootloader完成两项工作:首先,对嵌入式平台做一些简单的初始化工作;其次,加载操作系统内核,并将控制权交给操作系统。Bootloader的实现非常依赖于具体硬件,不同体系结构需求的Bootloader不同,所以需要针对不同的嵌入式系统进行Bootloader的一些移植。
(三)Linux内核移植
Linux内核文件数目将近2万,它们分别位于顶层目录下的17个子目录下:arch,block,drivers等,每个文件目录下都有相应的Makefile文件,它决定了内核中哪些文件被编译,如何编译这些文件以及怎么连接这些文件的规则。
Linux内核配置选项多达上千个,初学者要了解每个配置选项的作用很困难。所以通常都是在默认的配置文件基础上进行修改。例如本系统中对S3C2440子板采用的配置文件为/arch/arm/configs/smdk2410_defconfig。执行命令:make menuconfig,即可对内核进行重新配置。完成后执行命令:make uImage即在arch/arm/boot目录下生成uImage文件。
(四)构建Linux根文件系统
本系统针对Nand Flash设备采用的是yaffs的嵌入式文件系统。文件系统从基本目录开始创建,配置启动过程所需的文件,并且在/etc目录下建立配置文件inittab,确定init进程在启动与关机时的工作特性。该文件系统应用BusyBox来编译,制作yaffs文件映像。最后下载到Nand Flash存储器中。
三、开设的综合实验内容
本实验平台采用母板加子板的设计思想,可满足学生自主开发的需求。学生也可根据自己的要求选择外围硬件设备,完成不同的综合实验。本系统可开设的一些实验有:
1.多线程程序设计;2.串口通信设计;3.TCP程序设计;4.字符设备驱动程序入门实验;5.按键驱动程序设计;6.SD卡驱动分析与移植;7.LCD驱动分析与移植;8.嵌入式MP3播放器实验;9.远程视频监控实验;10.图像运动检测实验。
四、结束语
本文探讨了一种兼容多款ARM9处理器的嵌入式教学实验平台完整性设计,包括系统硬件平台的设计,嵌入式交叉开发环境的建立,Bootloader移植,Linux操作系统内核移植,根文件系统制作以及相关课程实验设计。经过测试与验证,设计的嵌入式平台达到了预期的效果,实现了一个可用于实验和开发的嵌入式平台,对提高学生的动手能力和创新能力具有重要的意义。
参考文献:
[1]杨水清,张剑,施云飞.ARM嵌入式Linux系统开发技术详解[M].北京:电子工业出版社,2010
[2]韦东山.嵌入式Linux应用开发完全手册[M].北京:人民邮电出版社,2008
[3]王洪辉.嵌入式系统Linux内核开发实战平台指南[M].北京:电子工业出版社,2009
[作者简介]李怀周(1986-),河南新乡人,在读硕士研究生,专业:电路与系统,研究方向:Linux嵌入式系统;赵学功(1986-),河南商丘人,在读硕士研究生,专业:电路与系统,研究方向:复杂电路系统;刘士(1986-),安徽亳州人,在读硕士研究生,专业:电路与系统,研究方向:Linux嵌入式系统。
平台无关的嵌入式GUI的设计 篇7
在现在日益信息化的社会中, 计算机与网络已经渗透到我们日常生活的每一个方面, 而嵌入式系统, 正是这个渗透过程的主要推动力量。嵌入式GUI (Graphic User Interface) 为嵌入式产品提供了一种人机交互的方式, 使嵌入式产品的可视化操作越来越简单、形象。目前市场上基于各种平台的嵌入式产品越来越多, 嵌入式GUI的功能也在朝着复杂化和多样化的方向发展。另一方面由于嵌入式系统的硬件特性, 嵌入式GUI应该具备非常好的移植性, 平台无关的嵌入式GUI以其良好的移植性既给嵌入式应用软件的开发提供了非常有利的条件, 同时也满足了市场的需求。
1 平台无关嵌入式GUI的技术特点
1.1 平台无关性
嵌入式应用的范围非常广泛, 从工业控制到大众化产品 (手机、PDA、mp3、mp4等) 再到航空器件等等, 这些应用不同的嵌入式设备要求嵌入式系统的底层平台也必然有所差异。为了能使嵌入式GUI应用到各种嵌入式平台中, 在GUI设计时需要使之能够隔离硬件和操作系统相关的信息, 并将其抽象为一个统一的硬件和操作系统相关规范, 此规范定义了一组不依赖于任何硬件和操作系统的接口。这组接口是GUI以及GUI以上设计的基础之一, 即“平台抽象层”。平台抽象层位于硬件设备和软件之间, 用来实现两者之间的信息交互, 在移植GUI时只需移植这组接口即可, 其他部分无须改动。通过平台抽象层隔离了具体的物理硬件和各种操作系统, 从而实现了平台无关性。
1.2 Client/Server模式
一般可采用的嵌入式GUI的运行模式有两种:类XGUI和非XGUI。非XGUI一般是单进程多线程, 所有的数据操作都是在同一内存空间, 当一个线程出了问题整个系统都会崩溃, 这样的GUI稳定性很差。类XGUI采用多客户单服务的机制, 系统健壮性很好。所以本设计采用XWindow的客户服务机制 (Client/Server) 的类XGUI模式。
2 平台无关嵌入式GUI的设计结构
平台无关的嵌入式GUI的设计结构分三层, 如图1所示。最底层是与嵌入式平台交互的平台抽象层, 中间层是GUI核心层, 最上层是为应用程序提供基本API的应用程序接口层。结构设计采用分层思想, 力求层次之间的相对独立, 任一层的改动能够保证它对上层的接口不变, 即上层不受下层变化的影响。在这样的层次结构中, 最底层和最高层都可以根据具体需要发生改变, 因此应该为这两层提供充分的变动空间, 而中间层则应是独立不变的。
2.1 平台抽象层
在嵌入式GUI的最底层是平台抽象层, 主要包括:操作系统抽象层、硬件输入抽象层、图形输出抽象层。
操作系统抽象层:隔离具体的操作系统。当GUI用到与操作系统相关的功能时, 不需要考虑底层是什么操作系统, 只需要操作系统抽象层提供的与操作系统相关的统一接口。
硬件输入抽象层:主要用来实现硬件输入功能。硬件输入抽象层为触描屏、键盘等设备的输入提供了一组统一的接口, 这组接口负责收集输入设备的输入信息并进行分类管理然后通知上层。
图形输出抽象层:主要实现图形输出功能。此层主要是和显示设备交互, 把GUI需要显示的数据发送给硬件设备显示出来。基于linux的嵌入式系统一般都提供framebuffer的支持, 这样就可以建立在framebuffer的基础上来设计自己的图形输出抽象层。一般来说, 在嵌入式系统中图形数据输出只需要控制显存的读写操作, 所以可以在图形输出抽象层建立一份和显存同样大小的内存映射, 在应用程序绘制图形时先在这份内存映射上操作, 需要显示的时候再把这份内存映射直接写入显存由驱动控制显示出来。
为了使此GUI系统能方便地移植到各种嵌入式系统中, 平台抽象层全部用C语言编写。
2.2 GUI核心层
GUI是为嵌入式系统提供一个友好的人机交互界面, 其主要功能体现在GUI核心层。GUI核心层需要完成的功能有:窗口管理、消息机制和事件驱动、定时器管理、事件管理、图形设备接口、内存管理、资源管理。各种功能简述如下:
窗口管理:大多数嵌入式设备对界面需求都比较高, 要求有多级窗口。在此类窗口管理的设计中, 一个应用程序应包括三级窗口, 即主窗口、子窗口和控件。三级窗口构成一个树状的关系, 主窗口可能包含多个子窗口的同时, 也可能包含多个控件, 一个子窗口可能包含多个控件, 如图2所示。
定时器管理:根据系统时钟为应用程序提供计时信息提示。
消息机制和事件驱动:在GUI系统启动时会创建一个独立的线程来监视键盘、触屏事件, 然后将这些事件转化为系统自定义的消息类型, 再把消息发送到相应的应用程序中去。收到消息的应用程序再把消息发送到相应的窗口或控件中去。
图形设备接口:主要是完成绘制点、线、多边形、填充多边形等基本的操作。这些操作完全与硬件无关, 所有的图形都是在内存中完成绘制, 然后通过GAL层映射到硬件显存上并在屏幕上显示出来。但是如果需要硬件相关的特殊作图效果, 此层也可以调用硬件提供的相关功能函数 (经平台抽象层包装后的接口) 。
内存管理:在应用程序中频繁动态地申请和释放内存时会造成大量的内存碎片, 从而可能导致以后即使有足够的内存也会申请内存失败。为了避免此类事情的发生, 在GUI初始化之初就申请一块连续的共享内存, 用链表把此块内存管理起来, 当遇到内存申请时首先在共享内存中申请, 而不需要用malloc从全局内存申请, 当共享内存不够时再用malloc从全局内存中申请。从共享内存申请的空间用完后返回共享内存继续供下次内存分配使用, 用malloc申请的内存用free释放掉即可。
资源管理:资源是指GUI中所使用到的图片、字体库等。一般的GUI把图片以文件的方式存储, 当需要用到某个图片的时候就把某个图片打开来分析图片数据, 将分析后的结果在屏幕上显示出来, 然后再关闭文件。在这个过程中打开文件、分析文件数据、关闭文件都耗费了大量的时间, 影响了图片显示的速度和效果。如果在GUI中预先把所有需要用到的图片数据分析好存储在一个文件中, 在GUI初始化的时候打开这个文件, 这样在需要用到相关图片数据时只需要从此文件中读取即可, 在最后GUI退出时关闭此文件。这样大大提高了GUI的工作效率。字体作为GUI系统支持的一部分, GUI提供了统一的接口用来实现对汉字、英文、数字、符号的输出, 在文本输出时GUI会自动识别输出字符串中每个要输出的单位的类型 (汉字、英文、数字和符号) , 然后再调用不同的字体库进行输出。在此GUI系统中主要提供两个类型的字体库:一个是简体中文汉字库, 另一个是英文、数字、符号库。每种字体库都可提供不同大小的字体。
2.3 应用程序接口层
此层提供各种GUI对象 (窗口、控件) 的应用编程接口以及作图接口, 所有的接口以C++封装类的方式提供, 不仅可以提高代码的可重用性, 还可以很方便地对已有的窗口或控件类型进行扩展。
3 平台无关的嵌入式GUI运行流程
平台无关的嵌入式GUI的运行模式是基于类XGUI的Client/Server模式。在Client/Server模式的Server端, 先完成Server的初始化 (设备的初始化、资源装载、客户进程的启动等) , 然后开始监听键盘、触屏事件及客户程序的请求, 在处理完这些事件后, Server会把最后的处理结果发给相应的Client端或反应在硬件设备上。在Client端, 先完成Client端的初始化 (完成Client端与Server端的连接等) 后进入自己的消息循环, 不断从消息队列取消息 (这些消息都是来自Server端) , 然后用自己的接口对这些消息进行处理。整个运行过程的流程如图3所示。
由图3可以看出, GUI把收集设备事件和图形的输出的任务都交给了服务器端来负责, 而不是全部由客户端来操作, 这样大大减轻了客户程序的负荷, 使GUI的运行效率得到了提高。
4 结束语
作为一种解决不同嵌入式平台间进行移植的复杂性问题, 平台无关的嵌入式GUI设计思想在国内外已经受到越来越多的重视。该思想为嵌入式GUI的跨平台移植提供了极大的便利, 在一定程度上也缩短了嵌入式软件的开发周期。其层次清晰的设计结构, 使熟悉图形应用程序的用户可以很快地在该系统上开发自己的应用软件。
摘要:随着目前嵌入式产品的增多和产品更新换代速度的加快, 市场对嵌入式平台的多样性和嵌入式软件开发周期的要求也越来越高。提出了一种基于分层思想的平台无关嵌入式GUI的设计方案, 不仅为嵌入式GUI跨平台移植带来了很大的方便, 而且能大大缩短嵌入式软件的开发周期。
关键词:嵌入式平台,GUI,软件开发周期
参考文献
[1]Ernest Pazera.Focus On SDL[M].USA:Premier Press, 2003.
[2]倪继利.Qt及linux操作系统窗口设计[M].北京:电子工业出版社, 2006.
[3]夏林, 张光显, 张丽娟.基于linux操作系统的嵌入式GUI及其设计改进[J].现代电子技术, 2004 (21) .
[4]魏永明.MiniGUI技术白皮书[EB/OL].http://www.minigui.org, 2004.
嵌入式系统平台下开发工具浅析 篇8
嵌入式系统依托微电子技术、操作系统等相关技术的快速发展,目前已经渗透到日常生活、工业生产、通信、交通运输工具等众多领域,极大地推动了信息社会的构建和发展。嵌入式系统技术涵盖了计算机、电子与通信、自动控制等众多领域,已经成为相关领域研究、应用和开发专业技术人员必须掌握的重要技术之一。
2. 嵌入式系统
嵌入式系统一般指非PC系统,有计算机功能但又不称之为计算机的设备或器材。它是以应用为中心,软硬件可裁减的,适应应用系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。简单地说,嵌入式系统集系统的应用软件与硬件于一体,类似于PC中BIOS的工作方式,具有软件代码小、高度自动化、响应速度快等特点,特别适合于要求实时和多任务的体系。嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软件系统等组成,它是可独立工作的“器件”。
嵌入式技术已经无处不在,从随身携带的mp3、语言复读机、手机、PDA到家庭之中的智能电视、智能冰箱、机顶盒,再到工业生产、娱乐中的机器人,无不采用嵌入式技术。它是一个复杂的高技术系统,要在短时间内开发出所需功能的产品是很不容易的,而市场竞争则要求产品能够快速上市,需要有容易掌握和使用的开发工具平台。
3. 嵌入式系统开发工具
嵌入式应用从以前的简单控制发展到今天,已经有很多非常复杂、非常高端的应用。随着越来越多的中国工程师开始32位应用的设计和开发,工具对他们设计开发的成功所起的决定性作用也在提高。应用越来越复杂,工具的选择也越来越重要。现在市场上有些工具是免费的,也有很多商业工具。无论是免费的还是商业的,工具的好坏往往会影响整个工程的最终结果。在选择工具时,主要需要注意以下几个方面:编译器的性能和稳定性、代码覆盖、仿真(不仅是对CPU的仿真,还有对其它硬件和设备的仿真)。
嵌入式系统开发工具的发展已经有二十多年的历史,目前开放性和开放源码成为一股强大的潮流,推动嵌入式系统设计技术向前发展,传统的技术已不能适应这一潮流。最新的发展趋势是,使用Eclipse开放源码集成化开发环境(IDE)平台,采用插件技术,在这样的平台基础上扩展许多开发工具套件。越来越多的嵌入式系统软件供应商将Eclipse平台作为自身工具的基础,推出个性化的开发工具套件,除提供标准的编译器、编辑器、调试器,还提供增强的操作系统内核级调试手段和高级的系统分析工具,如内存泄漏检测、系统性能监控等。
3.1 Eclipse平台的开发工具
2001年11月IBM将新一代开发工具项目Eclipse开源,并建立了Eclipse社区。Eclipse是替代IBM VisualAge for Java的下一代IDE开发环境,但其目标不仅是成为专门开发Java程序的IDE环境,而是用户可以根据Eclipse的体系结构,通过开发插件,扩展到任何语言的开发,甚至成为图片绘制的工具。
Eclipse最有魅力的地方就是其插件体系结构。Eclipse平台类似PC机的主板,插件类似于PC机的扩展卡。由于Eclipse这种开发的积木式体系结构,使其发展得非常迅猛。很多行业软件提供商,例如IBM、Intel、Sybase、Borland、BEA、WindRiver等公司都成为了Eclipse会员;Eclipse下载量已经超过3 000万人次,遍布120个国家;50个著名IT企业已经提供了超过600个各种插件,有了C、Java、COBOL、Perl、Python、XML等语言开发插件,还有建模、数据库、GUI等开发插件,甚至图形编辑的插件;在J2EE开发方面,Eclipse更是以90%的速度增长。
嵌入式系统开发往往需要多种工具配合,如果采用Eclipse平台,各种工具都以插件的方式出现,则开发人员非常容易定制自己的开发工具集。从编辑、建模、编译、仿真、调试、测试工具到操作系统定制、版本管理、项目管理工具都可以无缝集成,构建成一个界面风格完全统一的开发工具集合。
目前,嵌入式工具提供商已经开始提供大量的嵌入式开发Eclipse插件。例如,ARM公司的RVDS 3.2模块就有很大部分是Eclipse插件;MIPS公司的开发环境Sourecery G++基于GNU工具链和Eclipse IDE;WindRiver公司的WindRiver Workbench 2.0则完全基于Eclipse平台,该IDE同时支持Vx Works、Linux和其它专用操作系统;很多芯片厂商例如ADl、TI、Xilinx等公司都开始提供各种针对自已芯片的Eclipse插件工具;著名的CPLD/FPGA开发工具商Altera推出的Nios II IDE也是基于Eclipse平台的;而Nokia也推出了称为Nokia Widget的Eclipse插件,用于开发Nokia手机上的应用程序。另外,国内嵌入式工具公司Embest也推出了完全基于Eclipse的ADl处理器开发工具BDT。总之,在整个嵌入式系统开发的领域中,从硬件FPGA的设计工具到软件的编译工具、应用层开发工具已经都有了相应的Eclipse插件,而且这一趋势正在迅猛扩展。预计,在未来的2~3年内中国的嵌入式开发工程师也将开始普遍使用基于Eclipse平台的开发工具,定制适合自身的开发工具,进行更加复杂的嵌入式系统开发。
3.2 RealView
RealView MDK微控制器开发工具RealView是ARM公司的开发工具品牌,RealView MDK是ARM新推出的嵌入式微控制器软件开发工具。它集成了业界领先的μVision IDE开发平台和RealView编译工具RVCT,良好的性能使它成为ARM开发工具中佼佼者。
目前RealView开发工具套件3.1可跨跃所有开发平台,如周期精确模型、快速虚拟原型环境及FPGA部署和测试芯片,在所有的产品开发阶段针对所有的ARM架构提供兼容的调试接口。RealView ICE 3.1与RealView开发工具套件3.1同时使用,运行控制单元及其RealView追踪模块,目前可为ARM CoreSight调试和追踪技术提供广泛的支持。如今,开发者可通过单个追踪断口为多个追踪流部署CoreSight追踪系统。还支持CoreSight串行线调试接口,可帮助芯片设计者将调试所需引脚数量降至2个。此外,开源Eclipse集成开发环境目前已整合在RealView开发工具套件中,结合了Eclipse卓越的源代码开发工具及plug-in架构,以及ARM业界一流的编译和调试技术。RealView开发工具套件的现有用户不久将发现可自动、理想地为指定的ARM处理器和开发板部署工具的、基于Eclipse的新项目向导。进一步讲,新套件还包含了Intrinsics对ARM DSP指令集扩展、ETSI功能及TI C55x DSP的支持,意味着开发者可用C intrinsics取代assembly语言来编写信号处理运行程序。编译器可自动完成注册分布与调度。
3.3 建模技术
建模技术在嵌入式系统需求捕获、系统分析、设计、实现和验证领域的更加广泛的应用,是在嵌入式系统开发工具领域,技术发展的最新趋势。
系统分析设计方面的建模工具,在未来几年内,将成为增长最快的嵌入式开发工具之一。IBM Rational是系统分析设计建模工具,作为我们随需应变的开发工具的重要方面之一,实现了IBM Rational统一过程较好实践的关键原则之一—提升抽象层次。IBM Rational的系统分析设计建模工具是基于Eclipse界面环境,采用UML2.0,并能支持Sys ML的Rational System Developer,以及为系统工程,包括嵌入式系统开发人员提供的系统工程最佳实践RUP-SE,和经过实践验证的模型驱动系统开发框架MDSD。同时,围绕着Eclipse,提供高度集成的开发环境,包括需求管理、配置和变更管理、文档管理、方法和流程指导,以及满足需要遵循相关法律和规定(如GJB5000)等要求的集成开发解决方案。嵌入式系统需要实现的功能越来越复杂,提高问题理解的抽象层次,并保持各个层次之间严格的追踪关系,是解决复杂问题分析设计的根本方法。现在的开发团队和产品设计方式,需要应对一个快速变化的环境。这种变化既来源于用户需求的变化,又来自于底层软硬件实现技术快速的变化。分析和设计方式要具有对变化目标的高适应性,各个模型抽象层次功能的封装和复用是根本。从系统的角度,帮助嵌入式系统开发的用户实现软硬件协同分析和设计,实现模型级别的早期验证。
4. 结论
目前在嵌入式应用的开发过程中,工具所起的作用越来越大。如何帮助工程师完成负责的系统设计,成功地实现多种内核在同一个系统中的协同工作,是嵌入式系统工具必须达到的目标。可以说,是工具在帮助实现应用。因此,我们一定要在嵌入式应用的开发前选择一款合适的开发工具,才能做到事半功倍。
参考文献
[1]王江宁.嵌入式技术在微波设备中的应用研究[D].上海:华东师范大学,2006.
[2]於志文,周兴社.基于嵌入软构件的开发技术研究[J].成都:计算机应用研究,2003,04:45-56.
一种嵌入式网络管理平台设计 篇9
1 平台整体结构
嵌入式网络管理平台主要由网络管理终端、嵌入式网关和各级被管设备组成, 如图1所示。各级网管终端和嵌入式网关通过IP网络相连接, 不同通信总线上的被管设备通过嵌入式网关间接接入到IP网络。
2 平台的硬件设计
2.1 嵌入式网管访问模式
由于在实际网络中, 存在大量的使用各种协议的设备, 要想对这些设备进行管理, 必须要实现IP协议与这些协议之间的转换, 实现这一转换的就是嵌入式网关。本方案中, 采用专用的嵌入式计算机作为网关, 根据实际需要外扩各种通信接口, 在硬件平台上运行嵌入式实时操作系统 (RT-Linux) , 并实现嵌入式IP协议, 即thin TCP/IP, 在其上运行嵌入式websever, 可以支持多个嵌入式设备同时连入IP网络。因此以专用嵌入式计算机作为网关, 具有外型小巧、成本低廉和实时性强等特点。
2.2 嵌入式网关整体结构
嵌入式网关可分为四部分, 即硬件层、中间层、操作系统层和应用层。
硬件层, 主要由ARM9处理器、电源模块、复位监控电路、时钟模块、存储器模块、通信接口电路、音频视频接口电路、AD转换电路和调试下载接口电路等组成, 是系统功能实现的基础。在设计上, 采用“核心板 (6层设计) +底版 (4层设计) ”模式, 支持双网口、CAN总线、RS485总线、无线网卡、蓝牙, 具有稳定适用的VGA/TV输出。中间层, 也称硬件抽象层或板级支持包, 是一个介于操作系统和底层硬件之间的软件层次, 主要由系统的启动加载程序Boootloader和硬件驱动程序两部分组成操作系统层包括基本模块和扩展模块。基本模块指嵌入式Linux内核, 扩展模块由文件系统、网络协议和图形用户接口组成。应用层由基于操作系统层开发的应用程序组成, 主要实现管理信息的显示、报警提示以及对非TCP/IP协议总线上设备的控制管理等。
3 平台的软件设计
3.1 Zenoss网络管理软件
Zenoss是一个开源的网络和系统监控软件, 它对网络状态和网络设备的监控、及各种设备所运行的应用程序通过一个独立的控制台完成。功能包括自动的配置变化跟踪, IT系统故障自动补救以及其它对IT系统管理的重要功能;它基本上都是Python写的, 提供了服务器、网络设备、OS和应用的事件管理、可用管理、和性能管理;能运行于Linux、FreeBSD和Mac OS X上, 也可以作为一个Zenoss虚拟应用运行在VMplayer里。可以使用SNMP、SSH或者Telnet的传输协议为装置建模。SNMP建模, 提供最完整的模型信息, 当SNMP代理无法报告关键信息的时候使用ssh/Telnet增强模型。利用Zenoss的事件和错误管理系统, 可协助管理人员提高对各类事件和告警的管理效率。
3.2 基于Web的嵌入式网络设备管理模型
本系统将传统的SNMP网络管理、基于Web的网络管理和嵌入式技术有机结合起来, 提出一种基于Web的嵌入式网络管理模型 (Web-based Embedded Device Network Management, WBEDNM) , 它不只提供对传统的基于SNMP的网络管理的支持, 还允许通过Web浏览器对大量的非IP网路设备进行远程的访问和控制。
要使用标准的浏览器通过IP网络方便地访问现场设备, 必须给它们嵌入RTOS、TCP/IP协议栈和Web Server, 其解决的主要是非IP网络设备的网络互联和管理的问题。同时要支持传统的基于SNMP的网络管理, 必须将Agent嵌入到被管设备中, 考虑到SNMP Agent的通用性, 可以采用Java来开发Agent, 这就要求嵌入Java虚拟机 (Java Virtual Machine, JVM) 。综合上述, WBEDNM模型是以JVM、EWS和ERTOS (自带有thin TCP/IP协议栈) 为基础构建而成的, 带有SNMP协议, 使设备具有网络管理功能。
3.3 嵌入式设备的网络化
在传统的各种设备控制系统中, 不同类型的设备采用不同的网络协议, 如RS232、RS485、CAN等等, 由于这些通信协议与TCP/IP协议时不兼容的, 也就造成了这些设备不能直接接入IP网络, 进而与IP网络上的管理站不能相互通信, 管理者也无法对这些设备进行有效的监控和管理。
嵌入式Web技术的出现在很大程度上解决了上述问题, 尤其是它与控制技术的融合, 对于对多种设备的网络化控制起到了极大的促进作用。在实际操作中看, 只要在这些设备上实现TCP/IP协议即可解决设备的入网问题。但是, 由于所使用设备性能的局限性, 不可能把标准TCP/IP协议在某些设备中加以完整实现。因此, 只能对TCP/IP协议作简化处理, 也就是为thin TCP/IP协议。当前, 嵌入式实时操作系统的快速发展及其广泛应用, 为thin TCP/IP协议在嵌入式设备上的移植提供了有力的支持, 从而也为各种嵌入式设备网络化提供了可行的技术手段和方法。
摘要:针对当前网络化发展的形式, 提出一种新的嵌入式网络管理平台设计方案。硬件上, 采用基于独立网关模式体系结构, 利用高性能的嵌入式处理器, 实现了平台的关键组成部分——嵌入式网关;软件上, 以Zenoss网络管理软件为基础, 采用基于Web管理模型, 并对网络上其他嵌入式设备进行了网络化。该平台基于先进的嵌入式技术, 具有小型化、智能化和可扩展性强的优点。
嵌入式平台 篇10
在很多单机应用的中小型业务系统中都会用数据库来存储数据和进行业务逻辑处理, 特别在嵌入式应用数据库时, 都会依据业务需求、开发技术和软件部署环境选择合适数据库产品。在选择数据库产品上, 大型商业数据库 (如:Oracle、SQL Server、DB2等) 开发和部署成本高、难维护, 不适合中小型业务系统单机应用和部署, 一般都作为大型业务系统的数据库服务器部署, 不能够单机嵌入式应用。而小型数据库产品 (如:Derby、Sqllite、Mysql、Access、Msde、Firebird等) 在跨操作系统应用、SQL标准支持、易部署性、嵌入式应用、开源性和性能上都有各自的应用缺点。相比来讲, Firebird作为一个跨平台的关系数据库系统, 能够运行在Windows、Linux和Unix主流操作系统上, 提供了大部分SQL-99的标准功能。Firebird数据库无论在单用户嵌入式数据库应用, 还是作为多用户C/S模式下的数据库服务器运行, 以及无缝地从嵌入式数据库到多用户企业级应用过渡都能胜任, 而且Firebird数据库具有开源性、低成本、易维护、跨平台、易部署和在线备份等特点, 甚至可以作为跨系统的数据交换载体。Firebird数据库为单机中小型系统的嵌入式数据库应用提供支持。
1 Firebird嵌入式数据库
嵌入式数据库具有其独特的运行模式, 嵌入式数据库直接在应用程序进程中运行, 没有通常的客户机服务器间的通讯开销, 提供高效快捷的数据存储和轻量级的数据库应用, 甚至无须独立运行的数据库引擎, 由程序直接调用相应的API去实现对数据的存取操作, 在运行时需要较少的内存。嵌入式运行模式允许嵌入式数据库通过SQL来管理应用程序数据, 提供零配置运行模式, 并且资源占用非常少, 嵌入式数据库是一种具备了基本数据库特性的数据文件。Firebird嵌入式数据库模式应用时, 最小开发和部署只需要不足2M的fbembed.dll, 数据库文件可以动态创建。
1.1 Firebird数据库简介
Firebird来自于Borland公司的开源版数据库Interbase 6.0, 用C和C++开发, Firebird使用Mozilla Public License v.1.1许可证发行。Firebird 是一个跨平台的关系数据库系统, 目前有1.0版、1.5版和2.0版三种数据库版本程序, 并提供有对应的嵌入式数据库版本, 2.0版本提供了最新数据库特性和SQL标准支持。
1.2 嵌入式应用所支持的关键特性
1) 存储过程
支持存储过程。可以在存储过程中利用SQL语句来高效率地处理数据, 实现业务逻辑在数据库内部实现。
2) 触发器
支持触发器。每一个表可以有多个并发的行级触发器, 可以在插入前, 插入后, 更新前, 更新后, 删除前, 删除后进行触发。可以在触发器中写入PSQL语句, firebird支持统一触发器, 即可以在一个触发器中, 一次性管理插入、更新、删除操作。
3) 视图
支持视图。
4) 事务
支持事务。
5) 扩展函数
我们可以使用C语言, C++, DELPHI写UDF (用户定义函数库) , 用UDF扩展数据库功能。
6) 字符集
Firebird实现了很多国际标准的字符集, 包括支持 GB2312 和Unicode。
7) SQL标准兼容 Firebird
实现了全部SQL92所要求的功能, 实现了SQL99最常用的的要求, 支持主键、约束、外键、索引, 以及所有通用的数据类型。
8) 在线备份和恢复
嵌入式应用模式下, 支持数据库在线备份和恢复功能。
9) xcopy部署
嵌入式应用模式下, 支持xcopy部署。
2 .NET嵌入式应用设计和实现
本文利用VS.NET2008开发环境、.NET Framework 2开发平台、Firebird ADO.NET Data Provider、Firebird 1.5 Embedded Server for Windows设计和开发Firebird嵌入式应用程序。
2.1 嵌入式应用设计
Firebird嵌入式单机应用时, 一般定位于中小型业务处理系统, 所以不宜采用复杂的C/S分层架构, 采用简化的2层或3层C/S架构。本文推荐的嵌入式应用模式为:应用程序的用户界面应只负责业务数据的界面展现, 数据库不仅要承担数据存储和查询, 业务逻辑和业务规则也要由数据库的表、视图、存储过程来等数据库对象来实现, 以减少应用程序代码开发量, 充分利用Firebird数据库提供的特性, 提高业务数据处理性能和程序的可维护性。
2.2 Firebird .NET数据访问对象设计和实现
以满足嵌入式应用程序数据库访问的通用性、简化数据访问复杂性和提供数据访问扩展性为目的, 通用的Firebird数据库访问抽象、设计和实现就成为嵌入式应用的关键, 设计Firebird数据库嵌入式数据访问的.NET对象FbSqlDAL类, FbSqlDAL类的类关系设计如图1所示, 由于文章篇幅所限, FbSqlDAL类的详细实现代码不再描述。
FbSqlDAL类设计说明:
(1) 字段 m_ConnectionString数据库连接字符串。
(2) 属性 ConnectionString数据库连接字符串。
(3) 方法 public DataSet Select (string selectSql) 执行select sql查询, 并返回结果集。
public DataSet ExecuteSelectProcedure (string storedProcedureName, List<FbParameter> dbParameters) 执行指定参数的存储过程, 处理业务逻辑, 并返回结果集。
public void ExecuteNonQueryProcedure (string storedProcedureName, List<FbParameter> dbParameters) 执行指定参数的存储过程处理业务逻辑, 不返回结果集。
public void InsertTableData (string tablename, DataTable sourceTable, ArrayList execSqlBefor, ArrayList execSqlAfter) 把指定的表数据插入数据库指定的表内, 并可以在插入表数据前和数据后执行指定的sql语句, 用于表数据的业务处理。
2.3 动态创建嵌入式数据库实现
用Firebird进行嵌入式开发.NET应用程序时, 用嵌入式数据库的API动态库fbembed.dll和.NET平台的Firebird ADO.NET Provider动态库FirebirdSql.Data.FirebirdClient.dll随同业务应用程序一起部署, 数据库文件动态创建, 也可以把数据库发布文件一同应用程序部署, 动态创建嵌入式业务数据库.NET实现如下:
(1) 依据数据库脚本文件动态创建嵌入式数据库的.NET函数代码
(2) 数据库脚本文件动态创建嵌入式数据库示例Sql代码
依据Firebird的Sql语法, 可以在脚本文件中加入域、视图、存储过程、自动化序列、异常、表、唯一约束、主键、外键、索引和触发器等数据库对象执行语句, 也可以添加表数据的insert、update、delete执行语句, 脚本文件就可以动态创建嵌入式业务应用数据库。
2.4 嵌入式应用在线备份和恢复实现
Firebird嵌入式数据库支持在线备份和恢复, 为备份数据和恢复数据场景提供支持。在.NET平台上备份和恢复代码实现如下。
(1) 备份
(2) 恢复
2.5 嵌入式应用部署
在.NET平台上开发Firebird嵌入式应用程序部署时, 支持Xcopy部署。依据应用方式有两种常用部署模式, 部署如下:
(1) 最小化应用部署
最小化部署为fbembed.dll和FirebirdSql.Data.FirebirdClient.dll动态库随同业务应用程序一起部署, 其部署示例模式如下:
(2) 需要扩展函数支持的部署
如果需要Firebird扩展函数支持时, 其部署示例模式如下:
3 结 论
Firebird嵌入式数据库设计和开发模式已经应用到“河北省预算项目库管理系统”单位版, 用于预算单位的预算项目数据的采集、存储和业务逻辑处理。在应用程序中, 充分利用了Firebird嵌入式数据库易部署、免维护、支持ANSI SQL标准和在线备份等数据库特性, 为应用程序提供了很好的嵌入式关系数据库支撑。
参考文献
[1]杨浩, 杨铁男.C#高级编程[M].北京:清华大学出版社, 2002.
[2]李建忠..NET框架程序设计[M].修订版.北京:清华大学出版社, 2003.
[3]http://www.firebirdsql.org.
相关文章:
小区物业8月份工作计划(6篇)01-18
2025年小区物业管理工作计划 五月份物业管理工作计划(6篇)01-18
最新2月份工作计划 小区物业2月份工作计划(5篇)01-18
嵌入式论文题目01-18
最新小区物业工作计划 3月份物业工作计划实用(五篇)01-18
项目嵌入式01-18
物业1月份工作计划(四篇)01-18
嵌入式考试题目01-18
小区物业月份工作计划(汇总10篇)01-18