评论66
楼主 2008/10/3 17:48:59
楼主 2008/10/3 22:23:04
OMRON所有的电缆制作图
楼主 2008/10/3 22:25:09
智能交通信号灯管理系统 |
一、交通信号灯管理系统概述 交通职能部门能及时了解道路交通运行情况、制定控制方案;控制信号灯来达到平衡交通压力;充分利用交通监控系统的技术手段来保证每条道路的畅通,使路网整体通行能力达到最大。 二、交通信号灯管理的历史 以前的交通信号灯管理系统由于信号灯单独分开、控制信号灯还要到交通现场控制、全市区的交通情况得不到及时反馈,缺少全局的交通信号平衡管理的能力,从而导致交通的效率日益低下。 由于许多市里面的红绿灯大多为数年前建设,当时城市初步发展阶段,无论是人流量还是车流量都较少。而近几年来,中心城市发展迅猛,人流、车流量猛增,原有的红绿灯设置已逐渐不能满足需求,所以部分路口红绿灯存在一定程度上的不合理问题。另外由于车辆的迅速增加,每年以高速的递增,由此给道路管理特别是红绿灯设置问题带来了影响。许多交通负责人都认识到:鉴于红绿灯问题日益突出,交通部门要着手对全区的红绿灯进行整体研究,摸底调查,全面分析,定期对各路口红绿灯进行检查。根据道路车辆流量流向分析,以保证主向交通顺畅。 随着社会经济的发展,出现了交通阻塞,交通事故发生频率高,交通环境污染,交通治安混乱等一系列问题,严重影响着当前社会经济的发展和人民的生活,而同时交通设施的建设存在普遍滞后的状况,解决这些问题是当前所需,也是刻不容缓的。 这时智能交通信号管理系统在此发挥了重大的作用 三、智能交通信号灯管理的优势 ·全面图形监视、智能控制(带GIS分析) ·实时图形监视、实时调整控制信号灯 ·图形实现组态容易、简单、扩展性好、兼容性好 ·软件界面友好,操作简洁、方便 ·图形文字属性兼备、实时性强 ·安全措施齐全,系统稳定、可靠 ·可靠性高,容错能力强 ·软件兼容性好,联网能力强 ·全面的抗病毒保安能力 ·数据处理可靠、高效,数据结构完整 ·历史数据保存与事后分析 ·扩展性强:可以加入交通GIS、视频监控等功能 ·根据流量来控制交通信号配时,分析交通行为,通过交通诱导屏进行交通诱导,有效地缓解城市的交通拥堵,最大限度地避免上下班高峰期大面积交通堵塞的发生。 四、智能交通信号灯系统的组成 五、Visul Graph可以快速开发信号灯图形监控 VG图形在以下系统的作用: Visul Graph图形引擎使开发智能交通信号管理系统的开发变得简单,从许多用户的反映,可以节省80%的开发时间、可以节省成本50%。使系统的图形显示在监控、GIS方面具备专家级品质。 Visual Graph专门处理交互图形,支持GIS功能,与具体业务无关,她提供了十分丰富规范的交互事件和图形控制命令,内置结构简单开放的脚本语言,使程序员能够专心编写后台系统等与图形无关的部分,体系结构十分清晰。 Visul Graph图形引擎,包含编辑与运行状态,可以任意操纵与控制图形变化,实现各种交通符号仿真与交通道路GIS信息编辑。混合编程:不仅其他程序可以操控Visual Graph的一切,而且Visual Graph的脚本可以调用其他语言的程序,也可以调用DLL,任意扩充内部函数,扩展功能。 VG图形显示+智能逻辑+VG图形对信号灯控制+VG图形监控+监控数据存储=智能交通信号灯管理系统 用户只要专心于交通信号的智能逻辑关系与数据存储,其他的图形控制与图形显示交给Visul Graph图形引擎来处理;那么一个专家级的智能系统就出来了。(转载自北京图王) |
楼主 2008/10/3 22:44:45
液力耦合器的节能应用与选型
经计算可知: 0.9 < 1.655 < 2.6 及 0.9 < 1.613 < 2.6 ,所选液力耦合器型号能满足要求。
3.1.2 冷却器选择计算
液力耦合器在调速过程中存在的转差损失(及其它损失)将转化为热量使工作油温度升高。限矩型和普通型液力耦合器都设计有自冷能力而不必担心,但对于调速型液力耦合器因转差损失(发热)大必须配置冷却系统,使升温的工作油进入冷却器降温后再回到耦合器工作腔,构成冷却循环。
可按下式计算冷却器散热面积:
楼主 2008/10/4 8:34:42
多数Linux系统是在PC平台上运行,然而Linux作为嵌入式系统也是非常稳定的。本文描绘了一个嵌入式系统的概览,并展示嵌入式系统产品是如何使用Linux的。
嵌入式系统比摩西还老的故事
电脑用于控制设备或嵌入系统的历史几乎电脑自身的历史一样长。在通讯领域,六十年代晚期,电脑被用于电子电话交换机,称为“存储程序控制”系统。“电脑”这词那时并不普遍,存储程序指内存装有程序和例程信息。存储控制逻辑,而不是将其固化在硬件中,在当时确实是突破性的。今天,我们认为它本来就应如此。
那时的电脑是为每一个应用而定制的,按今天的标准,它们是一些不正常的、由奇怪的特殊指令和I/O设备集成在一部电脑中。
微处理器通过提供构建大系统模块的小型、低成本、CPU引擎改变了这一切。它提出了外设通过总线联接的固定硬件架构及称为编程的一般编程模型。
软件也随着硬件提出。最初,编写和测试软件只有简单的编程开发工具。每个项目实际运行的软件通常来自于草稿的修改。编程常用汇编语言或宏语言,因为编译器常常有缺陷和缺乏完善的调试工具。软件构建模块和标准化库只是到了七十年代才流行起来的概念。
嵌入式系统的商品化操作系统在1970年代后期才出现,许多是用汇编语言写成的,并且只能用于特定的微处理器,当微处理器被淘汰时,它的操作系统除非为新处理器重写,否则也要被淘汰。今天,许多这类早期的系统成了些模糊的记忆;还有谁记得MTOS吗?当C语言出现时,操作系统编写的效率、稳定性、可移植性都提高了很多。这一点在管理上立刻表现出来,它为微处理器被淘汰时保护软件投资带来了希望。对于市场来说这是一个好消息。用C语言写成的操作系统今天越来越普遍。一般来说,可重复使用的软件已经占主导并越做越好。
在八十年代早期,我最喜欢的操作系统是Wendon操作系统,大约150美元就可以得到一个C源码库。它是一个包,你可以通过选择部件建立自己的操作系统,类似在菜单上点菜。例如,你可以在库清单上点工作排程安排和内存管理方案。 很多嵌入式系统的商品化操作系统是在八十年代出现的。这一热潮持续到现在,今天,有很多可行的商品化操作系统可供选择。一些大佬出现了,如VxWorks, pSOS, Neculeus和Windows CE.
许多嵌入式系统根本没有操作系统,只有循环控制。对于一些简单设备这是足够的,但是随着系统越来越复杂,操作系统就很必要了或软件变得不可思议的复杂。不幸的是,有些复杂得可怕的嵌入式系统只因为设计者坚持不要操作系统才那么复杂。
渐渐地,更多嵌入式系统需要与各类网络联接,因此需要网络功能。即便是酒店的门把手也嵌入了微处理器与网络相联。 对于仅仅是编码控制循环的嵌入式系统,增加网络功能将导致系统复杂程度提高以致要求操作系统。
除了商品化操作系统,还有大量专用操作系统。其中大部分来自于草案,如CISCO的IOS;还有是从其他操作系统中派生出来的。例如,许多操作系统是从同一版本的Berkeley Unix系统派生,因为它有完整的网络功能。其他是基于主要操作系统的如KA9Q来自Phil Karn。
Linux作为嵌入式系统是一个带有很多优势的新成员。它对许多CPU和硬件平台都是可移植的、稳定、功能强大、易于开发。
工具包突破ICE的障碍
开发嵌入式系统的关键的是可用的工具包。像任何工作一样,好的工具使得工作更快更好。开发的不同阶段需要不同的工具。
传统上,首先用于开发嵌入式系统工具是内部电路仿真器(ICE),它是一个相对昂贵的部件,用于植入微处理器与总线之间的电路中,允许使用者监视和控制微处理器所有信号的进出。这有点难做,因为它是异体,可能会引起不稳定。但是它提供了总线工作的清晰状况,免了许多对硬件软件底层工作状况的猜测。
过去,一些工作依赖ICE为主要调试工具,用于整个开发过程。但是,一旦初始化软件对串口支持良好的话,多数的调试可以不用ICE而用其他方法进行。较新的嵌入式系统利用非常清晰的微处理器设计。有时,相应工作初始码已经有了能够快速获得串口工作。这意味着没有ICE人们也能够方便地工作。省去ICE降低了开发的成本。一旦串口开始工作,它可以支持各种专业开发工具。
Linux是基于GNU的C编译器,作为GNU工具链的一部分,与gdb源调试器一起工作。它提供了开发嵌入式Linux系统的所有软件工具。这有些典型的、用于在新硬件上开发嵌入式Linux系统的调试工具。
1. 写入或植入引导码
2. 向串口打印字符串的编码,如“Hello World”(事实上我更喜欢“Watson,Come hre I need you”,电话上常用的第一个词。)
3. 将gdb目标码植入工作串口,这可与另一台运行gdb程序的Linux主机系统对话。只要简单地告诉gdb通过串口调试程序。它通过串口与测试机的gdb目标码对话,你可以进行C源代码调试,也可以用这个功能将更多的码载入RAM或Flash Memory中。
4. 利用gdb让硬件和软件初始化码在Linux内核启动时工作。
5. 一旦Linux内核启动,串口成为Linux控制口并可用于后续开发。利用kgdb,内核调试版的gdb,这步常常不作要求,如果你与网络联接,如10BaseT,下一步你可能要启动它。
6. 如果在你的目标硬件上运行了完整的Linux内核,你可以调试你的应用进程。利用其他的gdb或覆盖gdb的图形如xgdb。
什么是实时系统?
嵌入式系统常常被错误地分为实时系统,尽管多数系统一般并不要求实时功能。实时是一个相对的词,纯化论者常常严格地定义实时为对一事件以预定的方式在极短的时间如微秒作出响应渐渐地,在如此短暂时间间隔内的严格实时功能在专用DSP芯片或ASIC上实现了。只有在设计低层硬件FIFO、分散/聚集DMA引擎和定制硬件时才会有这样的要求。
许多设计人员因为对真实的要求设有清晰的理解而对实时的要求焦虑不安。对于大多数的系统,在一至五微秒的近似实时响应已经足够。同样软需求也是可以接受的。如 Windows 98 已经崩溃的中断必须在4毫秒内(±98%)内、或20毫秒(±0)内进行处理。
这种软要求是比较容易满足的,包括环境转换时间、中断等待时间、任务优先级和排序。环境转换时间曾是操作系统的一个热门话题。总之,多数CPU这些要求处理得很好,而且CPU的速度现在已经快了很多,这个问题也就不重要了。
严格的实时要求通常由中断例程或其他内核环境驱动程序功能处理,以确保稳定的表现,等待时间,一旦请求出现要求服务的时间很大程度上取决于中断的优先及其他能暂时掩盖中断的软件。
中断必须进行处理和管理以确保时间要求能符合,如同许多其他的操作系统。在IntelX86处理器中,这工作很容易由Linux实时扩展处理。这是提供了一个以后台任务方式运行Linux的中断处理调度。关键的中断响应不必通知Linux。因此可以得到许多对于关键时钟的控制。在实时控制级和时间限制宽松的基本Linux级之间提供接口,这提供了与其他嵌入式操作系统相似的实时框架。因此,实时关键代码是隔开的、并“设计”成满足要求的。代码处理的结果是以更一般的方法也许只在应用任务级。
嵌入式系统定义
一个观点是如果一个应用没有用户界面,它必须是嵌入式的,因为用户不能直接与之交互。当然这是简单化的。一个电梯控制的电脑被认为是嵌入式的:按键选择楼层指示灯显示电梯的停层。对于联网的嵌入式系统,如果系统包含监视和控制的网络浏览器,这种界限就更加模糊了。更好些的定义注重系统的集中的功能和主要的目的。
因为Linux提供了完成嵌入功能的基本的内核和你所需要的所有用户界面,它是多面的。它能处理嵌入式任务和用户界面。将Linux看作是连续的统一体,从一个具有内存管理、任务切换和时间服务及其他的分拆的、微内核到完整的服务器,支持所有的文件系统和网络服务。
一个小型的嵌入式Linux系统只需要下面三个基本元素:
引导工具
Linux微内核,由内存管理、进程管理和事务处理构成
初始化进程
如果要让它能干点什么且继续保持小型化,还得加上:
硬件驱动程序
提供所需功能的一个或更多应用程序。
再增加功能,或许需要这些
一个文件系统(也许在ROM或RAM中)
TCP/IP网络堆栈
存储半过渡数据和交换用的磁盘。
硬件平台
选择最好的硬件是一个复杂的工作、充满了公司其他项目的政治、偏见、传统,缺乏完整或精确的信息。 成本经常是关键的议题。当考虑成本时、确信你在考虑产品的整个成本、不仅是CPU。有时快的、便宜的CPU一旦加上总线逻辑和时延使之与外设一起工作,能变成一个昂贵的狗的产品。如果你在寻找软件,首先是硬件已经有产品了。如果你是系统设计者,由你决定制定实时的预算及硬件的工作是否满意。
现实中需要多快的CPU来完成一项工作,然后放大三倍。奇怪,CPU理论上的速度竟与现实中一样,别忘了应用程序将会充分利用cache。
想象总线的速度需要多快,如果有其他总线如PCI总线,包括进来。慢的总线或产生DMA阻塞的总线会降低CPU的速度造成拥挤。 有集成设备的CPU是好的,因为只须调试很少的设备,并且支持通用CPU的驱动程序通常都很容易获得。在我的项目中,芯片与外设的联接经常出问题或不满足我们所需的兼容性。因为外设是集成的,不要认为这会便宜。
将10斤重的Linux塞入只能装5斤的袋中。
对于Linux一个共同的认识是它用于嵌入式系统简直是神奇极了。这可能不大对,典型的PC上的Linux对PC用户来说功能有多。
对初学者而言,可以将内核与任务分开,标准的Linux内核通常驻留在内存中,每一个应用程序都是从磁盘运到内存上执行。当程序结束后,它所占用的内存就被释放,程序就被下载了。
在一个嵌入式系统里,可能没有磁盘。有两种途径可以消除对磁盘的依赖,这要看系统的复杂性和硬件的设计。
在一个简单的系统里,当系统启动后,内核和所有的应用程序都在内存里。这就是大多数传统的嵌入式系统工作模式,它同样可以被Linux支持。
有了Linux,就有了第二种可能性。因为Linux已经有能力“加载”和“卸载”程序,一个嵌入式系统就可以利用它来节省内存。试想一个典型的包括一个大概8MB到16MB的Flash
Memory和8MB内存的系统。Flash Memory可以作为一个文件系统。Flash Memory驱动程序用来连接Flash
Memory和文件系统。作为替代,可使用Flash Disk。这Flash部件用软件仿真磁盘。其中一个例是M-Systems的DiskOnChip,可以达到160MB。(http://www.m-systems.com)。所有的程序都以文件形式存储在Flash文件中,需要时可以装入内存。这种动态的、“根据需要加载”的能力是支持其它一系列功能的重要特征:
它使初始化代码在系统引导后被释放。Linux同样有很多内核外运行的公用程序。这些通常程序在初始化时运行一次,以后就不再运行。而且,这些公用程序可以用它们相互共有的方式,一个接一个按顺序运行。这样,相同内存空间可以被反复使用以“召入”每一个程序,就象系统引导一样。这的确可以节省内存,特别是那些配置一次以后就不再更改的网络堆栈 如果Linux可加载模块的功能包括在内核里,驱动程序和应用程序就都可以被加载。它可以检查硬件环境并且为硬件装上相应的软件。这就消除了用一个程序占用许多Flash
Memory来处理多种硬件的复杂性。
软件的升级更模块化。你可以在系统运行的时候在Flash上升级应用程序和可加载驱动程序。
配置信息和运行时间参数可以作为数据文件储存在Flash上。
非虚拟内存
标准Linux的另一个待征是虚拟内存的能力。正是这种神奇的特征使应用程序员可以狂热的编写代码而不计后果,不管程序有多大。程序溢出到了磁盘交换区。在没有磁盘的嵌入式系统里,通常不能这么做。
在嵌入式系统里不需要这种强大的功能。实际上,你可能不希望它在实时的关键系统里,因为它会带来无法控制的时间因素。这个软件必须设计得更加精悍,以适合市面上物理内存,就象其它嵌入式系统一样。
注意由于CPU的原因,通常在Linux中保存虚拟内存代码是明智的,因为将它清除很费事。而且还有另外一个原因是它支持共享文本,这样就可以使许多程序共享一个软件。没有这个,每一个程序都要有它自己的库,就象printf一样。
虚拟内存的调入功能可以被关掉,只要将交换空间的大小设置为零。然后,如果你写的程序比实际的内存大,系统就会当作你的运行用尽了交换空间来处理;这个程序将不会运行,或者malloc将会失灵。
在许多CPU上,虚拟内存提供的内存管理可以将不同程序分开,防止它们写到其它地址的空间上。这在嵌入式系统上通常不可能,因为它只支持一个简单、扁平的地址空间。Linux的这种功能有助于其发展。它减少了胡乱的编写程序造成系统崩溃的可能性。许多嵌入式系统基于效率方面的原因有意识使用程序间可以共享的“全局”数据。这也可以通过Linux共享内存功能来支持,共享的只是指定的内存部分。
文件系统
许多嵌入式系统没有磁盘或者文件系统。Linux不需要它们也能运行。如前所述,应用程序任务可以和内核一起编写,并且在引导时作为一个影像加载。对于简单的系统来说,这就够了。然而,它缺乏前面所说的灵活性。
实际上,许多商业性嵌入式系统,提供文件系统作为选项。许多或者是专用的文件系统或者是MS-DOS-Compatible文件系统。Linux提供MS-DOS-Compatible文件系统,同时还有其它多种选择。之所以提供其它选择是因为它们更加强大而且具有容错功能。Linux还具有检查和维护的功能,商业性供应商往往不提供这些。这对于Flash系统来说尤其重要,因为它是通过网络更新的。如果系统在升级过程中失去了能力,那它就没有用了。维护的功能通常可以解决这类问题。
文件系统可以被放在传统的磁盘驱动器、Flash Memory或其它这类的介质上。而且,用于暂时保存文件,一个小RAM盘就足够了。Flash Memories被分割成块。这些块中也许包括一个含有当CPU启动时运行的最初的软件的引导块。这可能包括Linux 引导代码。剩余的Flash可以用作文件系统。Linux的内核可以通过引导代码从Flash复制到RAM,或者还有一个选择,内核可以被存储在Flash的一个独立部分,并且直接从那里执行。
另外对于一些系统来说还有一个有趣的选择,那就是将一个便宜的CD-ROM包含在内。这比Flash Memory 便宜,而且通过交换CD-ROM支持简单的升级。有了这个,Linux 只要从 CD-ROM上引导,并且象从硬盘上一样从CD-ROM上获得所有的程序。
最后,对于联网的嵌入式系统来说,Linux 支持NFS(Network File System)。这为实现联网系统的许多增值功能打开了大门。第一,它允许通过网络上加载应用程序。这是控制软件修改的基础,因为每一个嵌入式系统的软件都可以在一个普通的服务器上加载。它在运行的时候也可以用来输入或输出大量的数据、配置和状态信息。这对用户监督和控制来说是一个非常强大的功能。举例来说,嵌入式系统可以建立一个小的RAM磁盘,包含的文件中有与当前状态信息同步的内容。其它系统可以简单的把这个RAM磁盘设置为基于网络的远程磁盘,并且空中存取状态文件。这就允许另一个机器上的Web服务器通过简单的CGI Script存取状态信息。在其它电脑上运行的其它应用程序包可以很容易的存取数据。对更复杂的监控,应用程序包如Matlab(http://www.mathworks.com/products/matlab/),可以用来在操作员的PC或工作站的提供系统运行的图形展示。
引导LILO和BIOS在哪里
当一个微处理器第一次启动的时候,它开始在预先设置的地址上执行指令。通常在那里有一些只读内存,包括初始化或引导代码。在PC上,这是BIOS。它执行了一些低水平的CPU初始化和其它硬件的配置。BIOS继续辨认哪个磁盘里有操作系统,把操作系统复制到RAM并且转向它。实际上,这非常复杂,但对我们的目标来说也非常重要。在PC上运行的Linux依靠PC的BIOS来提供这些配置和OS加载功能。
在一个嵌入式系统里经常没有这种BIOS。这样你就要提供同等的启动代码。幸运的是,嵌入式系统并不需要PC BIOS引导程序那样的灵活性,因为它通常只需要处理一个硬件的配置。这个代码更简单也更枯燥。它只是一指令清单,将固定的数字塞到硬件寄存器中去。然而,这是关键的代码,因为这些数值要与你的硬件相符而且要按照特定的顺序进行。所以在大多数情况下,一个最小的通电自检模块,可以检查内存的正常运行、让LED闪烁,并且驱动其它必须的硬件以使主Linux OS启动和运行。这些启动代码完全根据硬件决定,不可随意移动。
幸运的是,许多系统都有为核心微处理器和内存所定制的菜单式硬件设计。典型的是,芯片制造商有一个样本主板,可以用来作为设计的参考或多或少与新设计相同。通常这些菜单式设计的启动代码是可以获得的,它可以根据你的需要轻易的修改。在少数情况下,启动代码需要重新编写。 为了测试这些代码,你可以使用一个包含‘模拟内存’的电路内置模拟器,它可以代替目标内存。你把代码装到模拟器上并通过模拟器调试。如果这样不行,你可以跳过这一步,但这样就要一个更长的调试周期。
这个代码最终要在较为稳定的内存上运行,通常是Flash或EPROM芯片。你需要使用一些方法将代码放在芯片上。怎么做,要根据“目标”硬件和工具来定。
一种流行的方法是把Flash或EPROM芯片插入EPROM或Flash烧制器。这将把你的程序“烧”(存)入芯片。然后,把芯片插入你的目标板的插座,打开电源。这个方法需要板上配有插座,但有些设备是不能配插座的。 另一个方法是通过一个JTAG界面。一些芯片有JTAG界面可以用来对芯片进行编程。这是最方便的方法。芯片可以永远被焊在主板上,一个小电缆从板上的JTAG连接器,通常是一个PC卡,联到JTAG界面。下面是PC运行JTAG界面所需的一些惯用程序。这个设备还可以用来小量生产。
健壮性比政治家的承诺更可靠。
在PC硬件上运行时,Linux是非常可靠和稳定的,特别是和现在流行的一些操作系统相比。嵌入式内核本身有多稳定呢?对大多数微处理器来说,Linux非常好。移植到新微处理器家族的Linux内核运行起来与本微处理器一样稳定。它经常被移植到一个或多个特定的主板上。这些板包括特定的外围设备和CPU。
幸运的是,许多代码是与处理器的,所以移植集中在差异上。其中大多数是在内存管理和中断控制领域。一旦成功移植,它们就非常稳定。前面我们讨论过,引导策略广泛依赖于硬件要求,而且你必须有计划地做一些定制的工作。
设备驱动程序更加混乱:有些稳定有些不稳定。而且选择很有限;一旦你离开了通用的PC平台,你需要自己编写。幸运的是,周围有许多驱动程序,你可能可以找到一个与你的需求相近的修改一下。这种驱动程序界面已定义好。许多类的驱动程序都非常相近,所以把磁盘、网络或一系列的端口驱动程序从一个设备移植到另一个设备上通常并不难。我发现许多驱动程序都写得很好,很容易理解,但你还是要准备一本关于内核结构的书在手头。 依我的经验,Linux至少和我用过的著名的商业性操作系统一样稳定。总之,这些操作系统和Linux的问题在于对工作过程微秒之处的误解,而不在于代码的难度或基本的设计错误。任何操作系统都有很多争论不休的故事,这里不需要重复。Linux的优势在于源代码是公开、注释清晰和文档齐全的。这样,你就可以控制和处理所出现的任何问题。
伴随着基本内核和驱动程序,还有其它问题。如果系统有一个硬盘,那么文件系统的可靠性就成问题。我们有用磁盘进行Linux系统设计超过两年的经验。这些系统几乎从未正常关闭过。电源随时都可能被中断。感觉非常好,使用的是标准(EXT2)文件系统。标准Linux初始化脚本运行fsck程序,它在检查和清除不稳定的inodes方面非常有效。将默认的每隔30秒运行更新程序改为每隔5或10秒运行是比较明智的。这样缩短了数据在进入磁盘之前,待在高速缓冲存储器内的时间,降低了丢失数据的可能性。
如何发展
嵌入式Linux的确有它的缺陷。比如,虽然它并不比某些商业竞争对手差多少,但它的确是个贪婪的存储器。这可以通过减少一些不必要的功能来弥补,但这可能会花很长的时间,而且如果不仔细的话,还可能带来很大的困扰。
许多Linux的应用程序都要用到虚拟内存,在许多嵌入式系统中,是没有价值的,所以不要以为一个没有磁盘的嵌入式系统可以运行任何Linux应用程序。
内核调试工具都不怎么好,特别是在较底层的。kgdb可以使错误定位非常容易,你只要重新启动。不幸的是,打印语句更麻烦。
然而,对我来说最糟糕的是心理上的问题。Linux非常的灵活。嵌入式系统总的来说却不灵活;而且它们完全是为最有效实现预定功能而严格设计的。现在的趋势是保持灵活性、保持总体目标功能、尽量少做修改。这个目标是崇高的,但是,所付出的代价将是针对具体的工作做出巨大的调整。保持灵活性将导致额外的工作,带着额外的软件包,而且有时还要降低性能。一个反复出现的例子就是配置。考虑在一个网络界面配置IP地址,这通常是通过从启动script上运行ifconfig程序来完成的。这是一个28K的程序,从配置文件上调用数据,可以用几行代码代替,初始化合适的结构。然而,即使这非常合理,但它仍然有害,因为它用一种从未使用过的方法扭曲了软件。
Linux在嵌入式系统中的应用是可行的。它有用、可靠。它的发展成本和替代者一致。
发表于中国工控网
楼主 2008/10/4 8:35:48
一、引言
“仿真”一词译自英文Simulation[1],另一个曾用的译名是“模拟”。1961年G.W.Morgenthler[1]首次对仿真一词作了技术性的解释,认为“仿真”是指在实际系统尚不存在的情况下,对系统或活动本质的复现。而计算机仿真(Computer Simulation)[2]又称计算机模拟(Computer Analogy)[3]或计算机实验。文章来源于《中国传动网》
所谓计算机仿真[4]是指在实体尚不存在、或者不易在实体上进行实验的情况下,先通过对考察对象进行建模,用数学方程式表达出其物理特性,然后编制计算机程序,并通过计算机运算出考察对象在系统参数以及内外环境条件改变的情况下,其主要参数如何变化,从而达到全面了解和掌握考察对象特性的目的。文章来源于《中国传动网》
计算机仿真技术是作为分析和研究系统运行行为、揭示系统动态过程和运动规律的一种重要手段和方法。近年来,随着系统科学研究的深入、控制理论、计算技术、计算机科学与技术的发展,计算机仿真技术已发展成一门新的学科。信息处理技术的突飞猛进,更使得仿真技术得到迅速发展。
二、计算机仿真的特点
1、模型参数任意调整
模型参数可根据要求通过计算机程序随时进行调整,修改或补充,使人们能够掌握各种可能的仿真结果,为进一步完善研究方案提供了极大的方便。文章来源于《中国传动网》
2、系统模型快速求解
借助于先进的计算机系统,人们在较短时间内就能知道仿真运算的结果(数据或图像),从而为人们的实践活动提供强有力的指导。这是通常的数学模型方法所无法实现的。
3、运算结果准确可靠
只要系统模型、仿真模型和仿真程序是科学合理的,那么计算机的运算结果一定准确无误(除非机器有故障)。因此,人们可毫无顾虑地应用计算机仿真的结果。文章来源于《中国传动网》
4、实物仿真形象直观
把仿真模型、计算机系统和物理模型及实物联结在一起的实物仿真(有些还同时是实时仿真),形象十分直观,状态也很逼真。因而在一些工程技术领域如宇宙航行、核电站控制等发挥了独特的作用。
三、计算机仿真的步骤
我们要对一个系统或对象实施计算机仿真,首先必须把握对象的基本特征,抓住主要的因素、引入必要的参量、提出合理的假设、进行科学的抽象、分析各参量间的相互关系、选择恰当的数学工具,然后在此基础上建立相应的数学模型。文章来源于《中国传动网》
1、建模
建模就是建立一个特定对象的有限边界的数学模型,是进行系统仿真的第一步,也是十分重要的一步。建模首先要考虑可用的信息源有以下四类:
(1)对于特定对象进行仿真研究所预定的目标和边界;
(2)先验知识,包括已被验证的定理、定律、理论和模型;
(3)数据,通过对系统的观测而获得的数据;
(4)特定领域专家的经验。
对于不同的系统,其信息源的水平是不一致的,物理系统的先验知识比较成熟、丰富,数据的获取可以通过实验方法得到,其信息源的质量和可信度高。而对于生物、社会、生态环境等复杂系统,它们的先验知识不成熟,无法对系统进行实验,数据的质量和可信度低,这类系统常被称为病态系统。针对信息源的不同水平,发展了不同的建模方法[5]。
(1)演绎法:主要是运用系统先验知识,通过数学的逻辑演绎来建模,常用于物理系统、工程系统的建模。
(2)归纳法:主要从观测系统变量和数据出发,经过对观测数据的处理、统计归纳,推导出与系统行为相一致的模型。常用于内部结构不清楚的系统,即常说的黑箱系统的建模。
(3)综合集成法:强调对一切可用信息源的利用和集成。包括先验知识、观测数据和专家经验。定性和定量的,形式化和非形式化的,理论和经验的,精确和模糊的,都通过计算机进行集成和处理加以利用。综合集成法主要用于具有病态特征的复杂系统。由于人类对于复杂系统的认识不可能一次完成,综合集成法强调建模是一个过程,是一个持续无止境的活动的集合。建模结果只能产生一个认识阶段上的相对模型,而不能产生终极模型。
建模活动的结果,存在一个模型的可置信度问题,需要研究对所建模型的校核、验证和确认。这方面的技术称为VV&A(Verification,Validation and Accreditation)[6]技术。3.2 模型的程序化[7]
模型的程序化包括两个方面的内容,即设计仿真算法及编制仿真程序。传统的模型程序化活动是一个十分繁琐和复杂的工作。由于大量算法的研究成果及软件技术的进步,目前对于某些特定领域,已能提供面向对象、可交互操作、具有自动编程能力和算法库的商品化产品。
发表于中国工控网嵌入式系统论坛 》
楼主 2008/10/4 8:36:56
每个人都知道什么是PC,但很多人不明白什么是嵌入式系统和嵌入式微处理器。与PC制造者不一样,嵌入式系统的工程师不得不自己设计自己的系统。与全球PC市场不同,没有一种微处理器和微处理器公司可以主导嵌入式系统,仅以32位的CPU而言,就有100种以上嵌入式微处理器。那么,在设计手持电话、传真机、机器人、打印机和网络路由器等应用产品时,应如何选择嵌入式微处理器呢?
仅有一种答案,那就是选择是多样化的。因为嵌入式系统设计的差异性极大,这就是有100种微处理器存在的原因。
在某种情况下,性能极为重要,而在另一种情况下,低功耗又成为最关键的因素。另外,一些设计者会考虑支持软件、代码的大小以及多种渠道的资源和过去的经验。那么,哪些因素是设计者最为关心的?
调查上市的CPU供应商
某些公司如Motorola、Intel很有名气,而有一些小的公司如QED(Santa Clara.CA)虽然名气很小,但也生产很优秀的微处理器。另外,有一些公司,如ARM、MIPS等,只设计而并不生产CPU,他们把生产权授予世界各地的半导体制造商。
一些半导体厂商生产的CPU不单纯以传统的封装形式出售,而是以一种软件模型库方式向用户供应ASIC设计。
截至1997年底,所有各种形式的32位嵌入式微处理器的销售额超过1.8亿美元,如果加上PC、苹果机和工作站,那么,几乎每一位生活在美国的人都拥有一颗32位微处理器。Motorola传统的68K结构仍是32位CPU的主流,虽然它起源于80年代初,但在1997年依然销售了8000万个,并基本上是传统680xx芯片(00、20、40K),另外就是683xx(60、02、32、28K)以及Coldfire。
68K嵌入式微处理器最大的挑战者是MIPS的授权制造商。众所周知,MIPS属于SGI公司,而MIPS主要做嵌入式系统,SGI工作站只是MIPS芯片销售额的1;紧跟在MIPS后的另一个RISC芯片制造商是Hitachi的SH,SH主要在远东销售(日本最多),北美则很少有人使用。
ARM是另外一种近年来在嵌入式系统有影响力的微处理器制造商,ARM的设计非常适合于小的电源供电系统。Apple在Newton手持计算机中使用ARM,另外有几款数字无线电话也在使用ARM。
除MIPS、SH和ARM之外,就数PowerPC和X86了。这两款微处理器在桌面系统用量极大,但在嵌入式系统中的影响却不够大。1997年,Intel、AMD及其他X86兼容厂商共生产了900万个X86嵌入式CPU。实际上,在嵌入式X86CPU方面,AMD的工作远比Intel多,如AMD186/188系统和AMD基于386、486Elan系统(把整个PC基成在单个芯片上)。
选择高性能的处理器
如果你的设计是面向高性能的应用,那么建议你考虑某些新的处理器,其价格极为低廉,如IBM和Motorola的PowerPC。以前Intel的i960是销售极好的RISC高性能芯片,但是最近几年却遇到强劲的对手,让位于MIPS、SH以及后起之星ARM。
另一种趋势就是越来越多的人在磁盘控制器、数码相机、手持电话、调制解调器等方面使用DSP。采用DSP的好处是可以大大减少系统内CPU的数目,提高效率,并使编程简单,但是毕竟DSP不能完全替代CPU的功能。目前已经有公司宣布推出复合型的微处理器,如Motorola的M.Core(一种新一代的16/32位微处理器),它将跨越CPU与DSP。据悉,TI、
Siemens也在开发相似的产品。
IntelPentium无疑是一种高性能处理器,但由于其体积大、散热差等原因,除客户使用OEM板外,在用户自己设计的系统中则较少使用。
选择低功耗的处理器
嵌入式微处理器最大并且增长最快的市场是手持设备、电子记事本、PDA、手机、GPS导航器等消费类电子产品,这些产品中选购的微处理器除了要有很高的性能外,还要有极低的功率消耗。
许多CPU生产厂家已经进入了这个领域。今天,用户可以买到一颗嵌入式的微处理器,其速度像笔记本中的Pentium一样快,而它仅使用普通电池供电,并且价格不足50美元。
典型的例子有NEC、日立为HPC、PalmPC而设计的VR4111和SH7707。Digital的Strong ARM1100,在一个极小的200MHz主频封装中集成了彩色LCD控制器、PCMCIA接口、触屏接口等6个接口(含USB、IRDA),而批量的价格也在40美元以内。
选择专用的集成化的处理器
嵌入式微处理器与通用的微处理器最大的不同就是嵌入式微处理器多数工作在用户自己设计的系统中。为了满足日益高速增长的各类嵌入式系统设计的需求,CPU厂商设计了许多兼有16/32位微处理器并集成了许多外围功能的CPU。根据笔者的经验,这里列举几种在国内外被广为采用的通信用集成化微处理器范例。
Motorola68360是一个32位内核(CPU32+)的集成通信用CPU,除了内建的常规的DMA、DRAM控制、时钟、片选、异步串口、中断等常规微处理器功能外,它最大的特点是集成了一个通信系统,内含4路同步协议的协议通道,可以支持HDLC、T1/E1、ISDN等通信协议。
68360还可编程,提供一个10M以太网接口,方便嵌入式系统与网络管理计算机系统的连接。围绕着这类应用,Motorola还有68302――一个16位的通信用协议处理器和高档的860系列――PowerPCRISC内置的通信处理器。值得注意的是,AMD公司最近宣布了一种186CC的通信用处理器,内置采用国人熟悉的X86内核和四路HDLC,适合于ISDN路由、通信接入等
系统。
结论
对于嵌入式系统的设计者,更多更好的嵌入式微处理器将不断出现。综合考虑系统的性能、功耗、价格、供货保证、开发工具的配备以及工程师过去对这种处理器的经验和软件的支持等因素,决定用户使用哪一种处理器。嵌入式处理器的选择不是一成不变的,伴随着技术的发展,速度快、价格低、功能强的嵌入式处理器一定是你下一个项目的选择。
发表于中国工控网
楼主 2008/10/4 8:39:15
1. 嵌入式系统:一般意义下定义的嵌入式系统由四部分组成。
由CPU为核心的硬件环境:包括储存器、通讯接口(如串口、网络等)、基本输入输出、专用硬件等等。
操作系统:提供基本的储存器管理,文件系统,对多任务操作系统,还应包括任务调度,任务间通讯,任务对硬件事件的即时响应机制等等。
开发工具:用于生成应用程序的软件工具,通常是由C/C++编译,连接为特点的集成开发环境;开发工具中另一重要组成部分是具有源码调试能力的调试工具。
应用程序:用户根据应用需求编写的在目标机上运行的程序。
2. X86嵌入式系统的构成
X86嵌入式系统是指以x86系列CPU为核心的嵌入式系统,目前x86系列的嵌入式系统大致分成两个部分,一是以Pentium为代表的高端硬件环境,一是以386为代表的低端硬件平台。
高端x86平台一般采用WINDOWS作为操作系统,开发工具使用WINDOWS环境的开发工具。实质上高端的X86嵌入式系统就是专用PC机。
低端x86平台大多采用DOS或其他RTOS作为目标板的操作系统。由于x86平台容易作到与PC兼容,因此开发工具同样可利用PC上的现行工具。嵌入式系统是面向专项应用的,对成本非常敏感,特别是批量系统更是如此。以386CPU为代表的低端x86平台以它优良的性价比在工业自动化、智能终端、网络协议转换、设备上网等众多领域得到了广泛应用。
由于PC兼容性的发展模式,经过近20年的发展,已为我们提供了大量优秀而廉价的开发工具。充分利用这一优势,是从简单的单片机系统进入更为丰富多彩的嵌入式系统的最佳途径。
3. 面向应用的386EX嵌入式平台及其市场竞争优势
众所周知,开发一款高性价比且使用稳定可靠的嵌入式系统是一项极具挑战的工作。市场竞争的激烈,又要求嵌入式系统的开发者专注于应用需求的解决,并尽可能的缩短产品的入市时间。在嵌入式系统产品的开发方面,象单片机开发一样的低门槛、低风险对于广大中小企业来说是致关重要的。
英创公司的嵌入式网络模块正是针对上述需求而推出的低端x86嵌入式平台类产品系列。其中CPU采用Intel386EX 32位嵌入式微处理器,在保持与PC机软件兼容的前提下,针对嵌入式系统应用特点,对其硬件体系进行了有效裁剪改造,突出了作为智能化设备以及网络通讯的特点。
操作系统方面,对大多单一应用可采用DOS;对需要实时任务响应的应用,则在DOS上引导VRTX多任务实时操作系统的办法来满足应用需求。在这样一种操作系统构架下,就可统一的采用BC3.1的集成开发环境IDE作为用户应用程序的开发工具,而调试则采用BC3.1的Turbo Debugger。
针对嵌入式系统对网络通讯日益广泛的需求,作为英创嵌入式网络模块,还为应用程序配备了完整的TCP/IP协议库,进一步地还为互连网方面的应用(如FTP、Web Server等)提供全面支持。这样一来,广大嵌入式应用开发者,就可充分利用已有的资源,把开发本身的成本降到最底,而把宝贵的资金投入到产品之中。
总之,低成本、低风险进入嵌入式系统应用开发,快速完成产品开发并推入市场是英创公司嵌入式网络模块的最大特色。
4. 应用案例
用NetBox扩展多个串口,作为工业自动化领域通讯管理机或协议转换器。
用NetBox作为智能终端的核心平台。
在NetBox上构建Web Server,用标准浏览器实现设备的网络化控制。
用ETR232构建无盘工作站。
用NB104实现压缩图象传输。
发表于中国工控网
楼主 2008/10/4 8:40:45
1.1 嵌入式系统简介
1.1.1 何为嵌入式系统
嵌入式系统本身是一个相对模糊的定义。目前嵌入式系统已经渗透到我们生活中的每个角落,工业、服务业、消费电子……,而恰恰由于这种范围的扩大,使得“嵌入式系统”更加难于明确定义。
举个简单例子:一个手持的mp3是否可以叫做是嵌入式系统呢?答案肯定是“是”。另外一个PC104的微型工业控制计算机你会认为它是嵌入式系统吗?当然,也是,工业控制是嵌入式系统技术的一个典型应用领域。然而比较两者,你也许会发现二者几乎完全不同,除了其中都嵌入有微处理器。那是否可以说嵌入着微处理器的设备就是嵌入式系统?那鼠标中也有单片机,能叫嵌入式系统嘛?
那到底什么是嵌入式系统?莫非嵌入式系统只是一个难以定义的抽象概念?
1.嵌入式系统的历史
虽然嵌入式系统是近几年才风靡起来的,但是这个概念并非新近才出现。从20世纪七十年代单片机的出现到今天各式各样的嵌入式微处理器,微控制器的大规模应用,嵌入式系统已经有了近30年的发展历史。
作为一个系统,往往是在硬件和软件交替发展的双螺旋的支撑下逐渐趋于稳定和成熟,嵌入式系统也不例外。
嵌入式系统的出现最初是基于单片机的。70年代单片机的出现,使得汽车、家电、工业机器、通信装置以及成千上万种产品可以通过内嵌电子装置来获得更佳的使用性能:更容易使用、更快、更便宜。这些装置已经初步具备了嵌入式的应用特点,但是这时的应用只是使用8位的芯片,执行一些单线程的程序,还谈不上“系统”的概念。
提示:最早的单片机是Intel公司的 8048,它出现在1976年。Motorola同时推出了68HC05,Zilog公司推出了Z80系列,这些早期的单片机均含有256字节的RAM、4K的ROM、4 个8位并口、1个全双工串行口、两个16位定 时 器。之后在80年代初,Intel又进一步完善了8048,在它的基础上研制成功了8051,这在单片机的历史上是值得纪念的一页,迄今为止,51系列的单片机仍然是最为成功的单片机芯片,在各种产品中有着非常广泛的应用。
从80年代早期开始,嵌入式系统的程序员开始用商业级的“操作系统”编写嵌入式应用软件,这使得可以获取更短的开发周期,更低的开发资金和更高的开发效率,“嵌入式系统”真正出现了。确切点说,这个时候的操作系统是一个实时核,这个实时核包含了许多传统操作系统的特征,包括任务管理、任务间通讯、同步与相互排斥、中断支持、内存管理等功能。其中比较著名的有Ready System 公司的VRTX、Integrated System Incorporation (ISI)的PSOS和IMG的VxWorks、QNX公司的QNX 等。这些嵌入式操作系统都具有嵌入式的典型特点:它们均采用占先式的调度,响应的时间很短,任务执行的时间可以确定;系统内核很小,具有可裁剪,可扩充和可移植性,可以移植到各种处理器上;较强的实时和可靠性,适合嵌入式应用。这些嵌入式实时多任务操作系统的出现,使得应用开发人员得以从小范围的开发解放出来,同时也促使嵌入式有了更为广阔的应用空间。
90年代以后,随着对实时性要求的提高,软件规模不断上升,实时核逐渐发展为实时多任务操作系统(RTOS),并作为一种软件平台逐步成为目前国际嵌入式系统的主流。这时候更多的公司看到了嵌入式系统的广阔发展前景,开始大力发展自己的嵌入式操作系统。除了上面的几家老牌公司以外,还出现了Palm OS,WinCE,嵌入式Linux,Lynx,Nucleux,以及国内的Hopen,Delta Os等嵌入式操作系统。随着嵌入式技术的发展前景日益广阔,相信会有更多的嵌入式操作系统软件出现。
2.嵌入式系统的定义
根据IEEE(国际电机工程师协会)的定义,嵌入式系统是“控制、监视或者辅助装置、机器和设备运行的装置”(原文为devices used to control, monitor, or assist the operation of equipment, machinery or plants)。这主要是从应用上加以定义的,从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。
不过上述定义并不能充分体现出嵌入式系统的精髓,目前国内一个普遍被认同的定义是:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
这个定义上,可从几方面来理解嵌入式系统:
◆嵌入式系统是面向用户、面向产品、面向应用的,它必须与具体应用相结合才会具有生命力、才更具有优势。因此可以这样理解上述三个面向的含义,即嵌入式系统是与应用紧密结合的,它具有很强的专用性,必须结合实际系统需求进行合理的裁减利用。
◆嵌入式系统是将先进的计算机技术、半导体技术和电子技术和各个行业的具体应用相结合后的产物,这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。所以,介入嵌入式系统行业,必须有一个正确的定位。例如Palm之所以在PDA领域占有70%以上的市场,就是因为其立足于个人电子消费品,着重发展图形界面和多任务管理;而风河的Vxworks之所以在火星车上得以应用,则是因为其高实时性和高可靠性。
◆嵌入式系统必须根据应用需求对软硬件进行裁剪,满足应用系统的功能、可靠性、成本、体积等要求。所以,如果能建立相对通用的软硬件基础,然后在其上开发出适应各种需要的系统,是一个比较好的发展模式。目前的嵌入式系统的核心往往是一个只有几K到几十K微内核,需要根据实际的使用进行功能扩展或者裁减,但是由于微内核的存在,使得这种扩展能够非常顺利的进行。
实际上,嵌入式系统本身是一个外延极广的名词,凡是与产品结合在一起的具有嵌入式特点的控制系统都可以叫嵌入式系统,而且有时很难以给它下一个准确的定义。现在人们讲嵌入式系统时,某种程度上指近些年比较热的具有操作系统的嵌入式系统,本文在进行分析和展望时,也沿用这一观点。
一般而言,嵌入式系统的构架可以分成四个部分:处理器、存储器、输入输出(I/O)和软件(由于多数嵌入式设备的应用软件和操作系统都是紧密结合的,在这里我们对其不加区分,这也是嵌入式系统和Windows系统的最大区别)。
3. 嵌入式系统中的一些重要概念
嵌入式系统中有许多非常重要的概念:
◆嵌入式处理器:
嵌入式系统的核心,是控制、辅助系统运行的硬件单元。范围极其广阔,从最初的4位处理器,目前仍在大规模应用的8位单片机,到最新的受到广泛青睐的32位,64位嵌入式CPU。
◆实时操作系统(Real Time Operating System):
嵌入式系统目前最主要的组成部分。根据操作系统的工作特性,实时是指物理进程的真实时间。实时操作系统具有实时性,能从硬件方面支持实时控制系统工作的操作系统。其中实时性是第一要求,需要调度一切可利用的资源完成实时控制任务,其次才着眼于提高计算机系统的使用效率,重要特点是要满足对时间的限制和要求。
◆分时操作系统:
对于分时操作系统,软件的执行在时间上的要求,并不严格,时间上的错误,一般不会造成灾难性的后果。目前分时系统的强项在于多任务的管理,而实时操作系统的重要特点是具有系统的可确定性,即系统能对运行情况的最好和最坏等的情况能做出精确的估计。
◆多任务操作系统:
系统支持多任务管理和任务间的同步和通信,传统的单片机系统和DOS系统等对多任务支持的功能很弱,而目前的Windows是典型的多任务操作系统。在嵌入式应用领域中,多任务是一个普遍的要求。
◆实时操作系统中的重要概念:
系统响应时间(System response time):系统发出处理要求到系统给出应答信号的时间。
任务换道时间(Context-switching time):任务之间切换而使用的时间。
中断延迟(Interrupt latency):计算机接收到中断信号到操作系统作出响应,并完成换道转入中断服务程序的时间。
◆实时操作系统的工作状态:
实时系统中的任务有四种状态:运行(Executing),就绪(Ready),挂起(Suspended),冬眠(Dormant)。
运行:获得CPU控制权。
就绪:进入任务等待队列,通过调度转为运行状态。
挂起:任务发生阻塞,移出任务等待队列,等待系统实时事件的发生而唤醒,从而转为就绪或运行。
冬眠:任务完成或错误等原因被清除的任务,也可以认为是系统中不存在的任务。
任何时刻系统中只能有一个任务在运行状态,各任务按级别通过时间片分别获得对CPU的访问权。
1.1.2 嵌入式系统的特点
这些年来掀起了嵌入式系统应用热潮的原因只要有几个方面:一是芯片技术的发展,使得单个芯片具有更强的处理能力,而且使集成多种接口已经成为可能,众多芯片生产厂商已经将注意力集中在这方面。另一方面的原因就是应用的需要,由于对产品可靠性、成本、更新换代要求的提高,使得嵌入式系统逐渐从纯硬件实现和使用通用计算机实现的应用中脱颖而出,成为近年来令人关注的焦点。
从上面的定义,我们可以看出嵌入式系统的几个重要特征:
1.系统内核小。由于嵌入式系统一般是应用于小型电子装置的,系统资源相对有限,所以内核较之传统的操作系统要小得多。比如Enea公司的OSE分布式系统,内核只有5K,而Windows的内核?简直没有可比性。
2.专用性强。嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧密,一般要针对硬件进行系统的移植,即使在同一品牌、同一系列的产品中也需要根据系统硬件的变化和增减不断进行修改。同时针对不同的任务,往往需要对系统进行较大更改,程序的编译下载要和系统相结合,这种修改和通用软件的“升级”是完全两个概念。
3.系统精简。嵌入式系统一般没有系统软件和应用软件的明显区分,不要求其功能设计及实现上过于复杂,这样一方面利于控制系统成本,同时也利于实现系统安全。
4.高实时性的系统软件(OS)是嵌入式软件的基本要求。而且软件要求固态存储,以提高速度;软件代码要求高质量和高可靠性。
5.嵌入式软件开发要想走向标准化,就必须使用多任务的操作系统。嵌入式系统的应用程序可以没有操作系统直接在芯片上运行;但是为了合理地调度多任务、利用系统资源、系统函数以及和专家库函数接口,用户必须自行选配RTOS(Real-Time Operating System)开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。
6.嵌入式系统开发需要开发工具和环境。由于其本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发,这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。开发时往往有主机和目标机的概念,主机用于程序的开发,目标机作为最后的执行机,开发时需要交替结合进行。
1.1.3 嵌入式系统的分类
由于嵌入式系统由硬件和软件两大部分组成,所以其分类也可以从硬件和软件进行划分。
从硬件方面来讲,各式各样的嵌入式处理器是嵌入式系统硬件中的最核心的部分,而目前世界上具有嵌入式功能特点的处理器已经超过1000种,流行体系结构包括MCU,MPU等30多个系列。鉴于嵌入式系统广阔的发展前景,很多半导体制造商都大规模生产嵌入式处理器,并且公司自主设计处理器也已经成为了未来嵌入式领域的一大趋势,其中从单片机、DSP到FPGA有着各式各样的品种,速度越来越快,性能越来越强,价格也越来越低。目前嵌入式处理器的寻址空间可以从64kB到16MB,处理速度最快可以达到2000 MIPS,封装从8个引脚到144个引脚不等。
根据其现状,嵌入式处理器可以分成下面几类:
◆嵌入式微处理器(Micro Processor Unit,MPU)
嵌入式微处理器是由通用计算机中的CPU演变而来的。它的特征是具有32位以上的处理器,具有较高的性能,当然其价格也相应较高。但与计算机处理器不同的是,在实际嵌入式应用中,只保留和嵌入式应用紧密相关的功能硬件,去除其他的冗余功能部分,这样就以最低的功耗和资源实现嵌入式应用的特殊要求。和工业控制计算机相比,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点。目前主要的嵌入式处理器类型有Am186/88、386EX、SC-400、Power PC、68000、MIPS、ARM/ StrongARM系列等。
其中Arm/StrongArm是专为手持设备开发的嵌入式微处理器,属于中档的价位。
◆嵌入式微控制器(Microcontroller Unit, MCU)
嵌入式微控制器的典型代表是单片机,从70年代末单片机出现到今天,虽然已经经过了20多年的历史,但这种8位的电子器件目前在嵌入式设备中仍然有着极其广泛的应用。单片机芯片内部集成ROM/EPROM、RAM、总线、总线逻辑、定时/计数器、看门狗、I/O、串行口、脉宽调制输出、A/D、D/A、Flash RAM、EEPROM等各种必要功能和外设。和嵌入式微处理器相比,微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下降、可靠性提高。微控制器是目前嵌入式系统工业的主流。微控制器的片上外设资源一般比较丰富,适合于控制,因此称微控制器。
由于MCU低廉的价格,优良的功能,所以拥有的品种和数量最多,比较有代表性的包括8051、MCS-251、MCS-96/196/296、P51XA、C166/167、68K系列以及 MCU 8XC930/931、C540、C541,并且有支持I2C、CAN-Bus、LCD及众多专用MCU和兼容系列。目前MCU占嵌入式系统约70%的市场份额。近来Atmel出产的Avr单片机由于其集成了FPGA等器件,所以具有很高的性价比,势必将推动单片机获得更高的发展。
◆嵌入式DSP处理器(Embedded Digital Signal Processor, EDSP)
DSP处理器是专门用于信号处理方面的处理器,其在系统结构和指令算法方面进行了特殊设计,具有很高的编译效率和指令的执行速度。在数字滤波、FFT、谱分析等各种仪器上DSP获得了大规模的应用。
DSP的理论算法在70年代就已经出现,但是由于专门的DSP处理器还未出现,所以这种理论算法只能通过MPU等由分立元件实现。MPU较低的处理速度无法满足DSP的算法要求,其应用领域仅仅局限于一些尖端的高科技领域。随着大规模集成电路技术发展,1982年世界上诞生了首枚DSP芯片。其运算速度比MPU快了几十倍,在语音合成和编码解码器中得到了广泛应用。至80年代中期,随着CMOS技术的进步与发展,第二代基于CMOS工艺的DSP芯片应运而生,其存储容量和运算速度都得到成倍提高,成为语音处理、图像硬件处理技术的基础。到80年代后期,DSP的运算速度进一步提高,应用领域也从上述范围扩大到了通信和计算机方面。90年代后,DSP发展到了第五代产品,集成度更高,使用范围也更加广阔。
目前最为广泛应用的是TI的TMS320C2000/C5000系列,另外如Intel的MCS-296和Siemens的TriCore也有各自的应用范围。
◆嵌入式片上系统(System On Chip)
SoC追求产品系统最大包容的集成器件,是目前嵌入式应用领域的热门话题之一。SOC最大的特点是成功实现了软硬件无缝结合,直接在处理器片内嵌入操作系统的代码模块。而且SOC具有极高的综合性,在一个硅片内部运用VHDL等硬件描述语言,实现一个复杂的系统。用户不需要再像传统的系统设计一样,绘制庞大复杂的电路板,一点点的连接焊制,只需要使用精确的语言,综合时序设计直接在器件库中调用各种通用处理器的标准,然后通过仿真之后就可以直接交付芯片厂商进行生产。由于绝大部分系统构件都是在系统内部,整个系统就特别简洁,不仅减小了系统的体积和功耗,而且提高了系统的可靠性,提高了设计生产效率。
由于SOC往往是专用的,所以大部分都不为用户所知,比较典型的SOC产品是Philips的Smart XA。少数通用系列如Siemens的TriCore,Motorola的M-Core,某些ARM系列器件,Echelon和Motorola联合研制的Neuron芯片等。
预计不久的将来,一些大的芯片公司将通过推出成熟的、能占领多数市场的SOC芯片,一举击退竞争者。SOC芯片也将在声音、图像、影视、网络及系统逻辑等应用领域中发挥重要作用。
从软件方面划分,主要可以依据操作系统的类型。目前嵌入式系统的软件主要有两大类:实时系统和分时系统。其中实时系统又分为两类:硬实时系统和软实时系统。
实时嵌入系统是为执行特定功能而设计的,可以严格的按时序执行功能。其最大的特征就是程序的执行具有确定性。在实时系统中,如果系统在指定的时间内未能实现某个确定的任务,会导致系统的全面失败,则系统被称为硬实时系统。而在软实时系统中,虽然响应时间同样重要,但是超时却不会导致致命错误。一个硬实时系统往往在硬件上需要添加专门用于时间和优先级管理的控制芯片,而软实时系统则主要在软件方面通过编程实现时限的管理。比如Windows CE就是一个多任务分时系统,而Ucos-II则是典型的实时操作系统。
当然,除了上述分类之外,还有许多其他分类方法,比如从应用方面分为工业应用和消费电子等,在这里就不一一累述了。
1.2嵌入式系统的应用领域
嵌入式系统技术具有非常广阔的应用前景,其应用领域可以包括:
1.工业控制:
基于嵌入式芯片的工业自动化设备将获得长足的发展,目前已经有大量的8、16、32 位嵌入式微控制器在应用中,网络化是提高生产效率和产品质量、减少人力资源主要途径,如工业过程控制、数字机床、电力系统、电网安全、电网设备监测、石油化工系统。就传统的工业控制产品而言,低端型采用的往往是8位单片机。但是随着技术的发展,32位、64位的处理器逐渐成为工业控制设备的核心,在未来几年内必将获得长足的发展。
2.交通管理:
在车辆导航、流量控制、信息监测与汽车服务方面,嵌入式系统技术已经获得了广泛的应用,内嵌GPS模块,GSM模块的移动定位终端已经在各种运输行业获得了成功的使用。目前GPS设备已经从尖端产品进入了普通百姓的家庭,只需要几千元,就可以随时随地找到你的位置。
3.信息家电:
这将称为嵌入式系统最大的应用领域,冰箱、空调等的网络化、智能化将引领人们的生活步入一个崭新的空间。即使你不在家里,也可以通过电话线、网络进行远程控制。在这些设备中,嵌入式系统将大有用武之地。
4.家庭智能管理系统:
水、电、煤气表的远程自动抄表,安全防火、防盗系统,其中嵌有的专用控制芯片将代替传统的人工检查,并实现更高,更准确和更安全的性能。目前在服务领域,如远程点菜器等已经体现了嵌入式系统的优势。
5.POS网络及电子商务:
公共交通无接触智能卡(Contactless Smartcard, CSC)发行系统,公共电话卡发行系统,自动售货机,各种智能ATM终端将全面走入人们的生活,到时手持一卡就可以行遍天下。
6.环境工程与自然:
水文资料实时监测,防洪体系及水土质量监测、堤坝安全,地震监测网,实时气象信息网,水源和空气污染监测。在很多环境恶劣,地况复杂的地区,嵌入式系统将实现无人监测。
7.机器人:
嵌入式芯片的发展将使机器人在微型化,高智能方面优势更加明显,同时会大幅度降低机器人的价格,使其在工业领域和服务领域获得更广泛的应用。
这些应用中,可以着重于在控制方面的应用。就远程家电控制而言,除了开发出支持TCP/IP的嵌入式系统之外,家电产品控制协议也需要制订和统一,这需要家电生产厂家来做。同样的道理,所有基于网络的远程控制器件都需要与嵌入式系统之间实现接口,然后再由嵌入式系统来控制并通过网络实现控制。所以,开发和探讨嵌入式系统有着十分重要的意义。
1.3 嵌入式系统在机电产品方面的应用
相对于其他的领域,机电产品可以说是嵌入式系统应用最典型最广泛的领域之一。从最初的单片机到现在的工控机、SOC在各种机电产品中均有着巨大的市场。
工业设备是机电产品中最大的一类,在目前的工业控制设备中,工控机的使用非常广泛,这些工控机一般采用的是工业级的处理器和各种设备,其中以X86的MPU最多。工控的要求往往较高,需要各种各样的设备接口,除了进行实时控制,还须将设备状态,传感器的信息等在显示屏上实时显示。这些要求8位的单片机是无法满足的,以前多数使用16位的处理器,随着处理器快速的发展,目前32位、64位的处理器逐渐替代了16位处理器,进一步提升了系统性能。采用PC104总线的系统,体积小,稳定可靠,受到了很多用户的青睐。不过这些工控机采用的往往是DOS或者Windows系统,虽然具有嵌入式的特点,却不能称作纯粹的嵌入式系统。另外在工业控制器和设备控制器方面,则是各种嵌入式处理器的天下。这些控制器往往采用16位以上的处理器,各种MCU,Arm、Mips、68K系列的处理器在控制器中占据核心地位。这些处理器上提供了丰富的接口总线资源,可以通过它们实现数据采集,数据处理,通讯以及显示(显示一般是连接LED或者LCD)。最近飞利浦和ARM共同推出32位RISC嵌入式控制器,适用于工业控制,采用最先进的0.18微米CMOS嵌入式闪存处理技术,操作电压可以低至1.2伏,它还能降低25%到30%的制造成本,在工业领域中对最终用户而言是一套极具成本效益的解决方案。美国TERN工业控制器基于Am188/186ES、i386EX、NEC V25、Am586(Elan SC520),采用了SUPERTASK实时多任务内核,可应用于便携设备、无线控制设备、数据采集设备、工业控制与工业自动化设备以及其它需要控制处理的设备。
家电行业是嵌入式应用的另一大行业,我们传统的电视,电冰箱当然其中也嵌有处理器,但是这些处理器只是在控制方面应用。而现在只有按钮、开关的电器显然已经不能满足人们的日常需求,具有用户界面,能远程控制,智能管理的电器是未来的发展趋势。据IDG发布的统计数据表明,未来信息家电将会成长五至十倍。中国的传统家电厂商向信息家电过渡时,首先面临的挑战是核心操作系统软件开发工作。硬件方面,进行智能信息控制并不是很高的要求,目前绝大多数嵌入式处理器都可以满足硬件要求,真正的难点是如何使软件操作系统容量小、稳定性高且易于开发。Linux核心可以起到很好的桥梁作用,作为一个跨平台的操作系统,它可以支持二三十种CPU ,而目前已有众多家电业的芯片都开始做Linux的平台移植工作。1999年就登录中国的微软“维纳斯”计划给了国人一个数字家庭的概念,引导各大家电厂商纷纷投入到这场革命中来,虽然最终未能获得成功,却使信息家电深入人心。如今各大厂商仍然在努力推出适用于新一代家电应用的芯片,英特尔公司已专为信息家电业研发了名为StrongARM的ARM CPU系列,这一系列CPU本身不象X86CPU需要整合不同的芯片组,它在一颗芯片中可以包括你所需要的各项功能,即硬件系统实现了SOC的概念。美商网虎公司已将全球最小的嵌入式操作系统——QUARK成功移植到StrongARM系列芯片上,这是第一次把Linux、图形界面和一些程序进行完整移植(QUARK的内核只有143K),它将为信息家电提供功能强大的核心操作系统。相信在不久的将来,数字智能家庭必将来到我们身边。
机器人技术的发展从来就是与嵌入式系统的发展紧密联系在一起的。最早的机器人技术是50年代MIT提出的数控技术,当时使用的还远未达到芯片水平,只是简单的与非门逻辑电路。之后由于处理器和智能控制理论的发展缓慢从50年代到70年代初期,机器人技术一直未能获得充分的发展。70年代中期之后,由于智能理论的发展和MCU出现,机器人逐渐成为研究热点,并且获得了长足的发展。近来由于嵌入式处理器的高度发展,机器人从硬件到软件也呈现了新的发展趋势。例如火星车就是一个典型例子,这个价值10亿美金的技术高密集移动机器人,采用的是美国风河公司的Vxworks嵌入式操作系统,可以在不与地球联系的情况下自主工作。1997年美国发射的“索杰纳”火星车带有机械手,可以采集火星上的各种地况,并且通过摄像头把火星上的图像发回地面指挥中心。这台火星车在火星上自主工作了3个月,充分体现了Vxworks系统的高可靠性。以索尼的机器狗为代表的智能机器宠物,可以仅仅使用8位的AVR,51单片机或者16位的DSP来控制舵机,进行图像处理,就能制造出那些人见人爱的玩具,让我们不能不惊叹嵌入式处理器强大的功能。近来32位处理器,Windows CE等32位嵌入式操作系统的盛行,使得操控一个机器人只需要在手持PDA上获取远程机器人的信息,并且通过无线通讯控制机器人的运行,与传统的采用工控机相比,要轻巧便捷的多。随着嵌入式控制器越来越微型化、功能化,微型机器人、特种机器人等也将获得更大的发展机遇。
1.4 嵌入式系统的发展现状和发展趋势
1.4.1 嵌入式系统的发展现状
随着信息化,智能化,网络化的发展,嵌入式系统技术也将获得广阔的发展空间。美国著名未来学家尼葛洛庞帝99年1月访华时预言,4~5年后嵌入式智能(电脑) 工具将是PC和因特网之后最伟大的发明。我国著名嵌入式系统专家沈绪榜院士98年11月在武汉全国第11次微机学术交流会上发表的《计算机的发展与技术》一文中,对未来10年以嵌入式芯片为基础的计算机工业进行了科学的阐述和展望。1999年世界电子产品产值已超过12000亿美元,2000年达到13000亿美元,预计2005年,销售额将达18000亿美元。
进入20世纪90年代,嵌入式技术全面展开,目前已成为通信和消费类产品的共同发展方向。在通信领域,数字技术正在全面取代模拟技术。在广播电视领域,美国已开始由模拟电视向数字电视转变,欧洲的DVB(数字电视广播)技术已在全球大多数国家推广。数字音频广播(DAB)也已进入商品化试播阶段。而软件、集成电路和新型元器件在产业发展中的作用日益重要。所有上述产品中,都离不开嵌入式系统技术。象前途无可计量的维纳斯计划生产机顶盒,核心技术就是采用32位以上芯片级的嵌入式技术。在个人领域中,嵌入式产品将主要是个人商用,作为个人移动的数据处理和通讯软件。由于嵌入式设备具有自然的人机交互界面,GUI屏幕为中心的多媒体界面给人很大的亲和力。手写文字输入、语音拨号上网、收发电子邮件以及彩色图形、图像已取得初步成效。
目前一些先进的PDA在显示屏幕上已实现汉字写入、短消息语音发布,日用范围也将日益广阔。对于企业专用解决方案,如物流管理、条码扫描、移动信息采集等,这种小型手持嵌入式系统将发挥巨大的作用。自动控制领域,不仅可以用于ATM机,自动售货机,工业控制等专用设备,和移动通讯设备结合、GPS、娱乐相结合,嵌入式系统同样可以发挥巨大的作用。近期长虹推出的ADSL产品,结合网络,控制,信息,这种智能化,网络化将是家电发展的新趋势。
硬件方面,不仅有各大公司的微处理器芯片,还有用于学习和研发的各种配套开发包。目前低层系统和硬件平台经过若干年的研究,已经相对比较成熟,实现各种功能的芯片应有尽有。而且巨大的市场需求给我们提供了学习研发的资金和技术力量。
从软件方面讲,也有相当部分的成熟软件系统。国外商品化的嵌入式实时操作系统,已进入我国市场的有WindRiver、Microsoft、QNX和Nuclear等产品。我国自主开发的嵌入式系统软件产品如科银(CoreTek)公司的嵌入式软件开发平台DeltaSystem,中科院推出的Hopen嵌入式操作系统(虽然还不够完善)。同时由于是研究热点,所以我们可以在网上找到各种各样的免费资源,从各大厂商的开发文档,到各种驱动,程序源代码,甚至很多厂商还提供微处理器的样片。这对于我们从事这方面的研发,无疑是个资源宝库。对于软件设计来说,不管是上手还是进一步开发,都相对来说比较容易。这就使得很多生手能够比较快的进入研究状态,利于发挥大家的积极创造性。
今天嵌入式系统带来的工业年产值已超过了1万亿美元,1997年来自美国嵌入式系统大会(Embedded System Conference)的报告指出,未来5年仅基于嵌入式计算机系统的全数字电视产品,就将在美国产生一个每年1500亿美元的新市场。美国汽车大王福特公司的高级经理也曾宣称,“福特出售的‘计算能力’已超过了IBM”,由此可以想见嵌入式计算机工业的规模和广度。1998年11月在美国加州举行的嵌入式系统大会上,基于RTOS的Embedded Internet成为一个技术新热点。在国内,“维纳斯计划”和“女锅计划”一度闹得沸沸扬扬,机顶盒、信息加电这两年更成了IT热点,而实际上这些都是嵌入式系统在特定环境下的一个特定应用。据调查,目前国际上已有两百多种嵌入式操作系统,而各种各样的开发工具、应用于嵌入式开发的仪器设备更是不可胜数。在国内,虽然嵌入式应用、开发很广,但该领域却几乎还是空白,只有三两家公司和极少数人员在从事这方面工作。由此可见,嵌入式系统技术发展的空间真是无比广大。
1.4.2未来嵌入式系统的发展趋势
信息时代,数字时代使得嵌入式产品获得了巨大的发展契机,为嵌入式市场展现了美好的前景,同时也对嵌入式生产厂商提出了新的挑战,从中我们可以看出未来嵌入式系统的几大发展趋势:
1.嵌入式开发是一项系统工程,因此要求嵌入式系统厂商不仅要提供嵌入式软硬件系统本身,同时还需要提供强大的硬件开发工具和软件包支持。
目前很多厂商已经充分考虑到这一点,在主推系统的同时,将开发环境也作为重点推广。比如三星在推广Arm7,Arm9芯片的同时还提供开发板和版及支持包(BSP),而WindowCE在主推系统时也提供Embedded VC++作为开发工具,还有Vxworks的Tonado开发环境,DeltaOS的Limda编译环境等等都是这一趋势的典型体现。当然,这也是市场竞争的结果。
2.网络化、信息化的要求随着因特网技术的成熟、带宽的提高日益提高,使得以往单一功能的设备如电话、手机、冰箱、微波炉等功能不再单一,结构更加复杂。
这就要求芯片设计厂商在芯片上集成更多的功能,为了满足应用功能的升级,设计师们一方面采用更强大的嵌入式处理器如32位、64位RISC芯片或信号处理器DSP增强处理能力,同时增加功能接口,如USB,扩展总线类型,如CAN BUS,加强对多媒体、图形等的处理,逐步实施片上系统(SOC)的概念。软件方面采用实时多任务编程技术和交叉开发工具技术来控制功能复杂性,简化应用程序设计、保障软件质量和缩短开发周期。如HP
3.网络互联成为必然趋势。
未来的嵌入式设备为了适应网络发展的要求,必然要求硬件上提供各种网络通信接口。传统的单片机对于网络支持不足,而新一代的嵌入式处理器已经开始内嵌网络接口,除了支持TCP/IP协议,还有的支持IEEE1394、USB、CAN、Bluetooth或IrDA通信接口中的一种或者几种,同时也需要提供相应的通信组网协议软件和物理层驱动软件。软件方面系统系统内核支持网络模块,甚至可以在设备上嵌入Web浏览器,真正实现随时随地用各种设备上网。
4.精简系统内核、算法,降低功耗和软硬件成本。
未来的嵌入式产品是软硬件紧密结合的设备,为了减低功耗和成本,需要设计者尽量精简系统内核,只保留和系统功能紧密相关的软硬件,利用最低的资源实现最适当的功能,这就要求设计者选用最佳的编程模型和不断改进算法,优化编译器性能。因此,既要软件人员有丰富的硬件知识,又需要发展先进嵌入式软件技术,如Java、Web和WAP等。
5.提供友好的多媒体人机界面
嵌入式设备能与用户亲密接触,最重要的因素就是它能提供非常友好的用户界面。图像界面,灵活的控制方式,使得人们感觉嵌入式设备就象是一个熟悉的老朋友。这方面的要求使得嵌入式软件设计者要在图形界面,多媒体技术上痛下苦功。手写文字输入、语音拨号上网、收发电子邮件以及彩色图形、图像都会使使用者获得自由的感受。目前一些先进的PDA在显示屏幕上已实现汉字写入、短消息语音发布,但一般的嵌入式设备距离这个要求还有很长的路要走。
发表于中国工控网
楼主 2008/10/4 9:45:12