嵌入式系统组成
一个嵌入式系统装置一般都由嵌入式计算机系统和执行装置组成,嵌入式计算机系统是整个嵌入式系统的核心,由硬体层、中间层、系统软体层和套用软体层组成。执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。执行装置可以很简单,如手机上的一个微小型的电机,当手机处于震动接收状态时打开;也可以很複杂,如SONY 智慧型机器狗,上面集成了多个微小型控制电机和多种感测器,从而可以执行各种複杂的动作和感受各种状态信息。硬体层
硬体层中包含嵌入式微处理器、存储器(SDRAM、ROM、Flash等)、通用设备接口和I/O接口(A/D、D/A、I/O等)。在一片嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模组。其中作业系统和应用程式都可以固化在ROM中。
(1)嵌入式微处理器
嵌入式系统硬体层的核心是嵌入式微处理器,嵌入式微处理器与通用CPU最大的不同在于嵌入式微处理器大多工作在为特定用户群所专用设计的系统中,它将通用CPU许多由板卡完成的任务集成在晶片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。
嵌入式微处理器的体系结构可以採用冯·诺依曼体系或哈佛体系结构;指令系统可以选用精简指令系统(Reduced Instruction Set Computer,RISC)和複杂指令系统CISC(Complex Instruction Set Computer,CISC)。RISC计算机在通道中只包含最有用的指令,确保数据通道快速执行每一条指令,从而提高了执行效率并使CPU硬体结构设计变得更为简单。
嵌入式微处理器有各种不同的体系,即使在同一体系中也可能具有不同的时钟频率和数据汇流排宽度,或集成了不同的外设和接口。据不完全统计,全世界嵌入式微处理器已经超过1000多种,体系结构有30多个系列,其中主流的体系有ARM、MIPS、PowerPC、X86和SH等。但与全球PC市场不同的是,没有一种嵌入式微处理器可以主导市场,仅以32位的产品而言,就有100种以上的嵌入式微处理器。嵌入式微处理器的选择是根据具体的套用而决定的。
(2)存储器
嵌入式系统需要存储器来存放和执行代码。嵌入式系统的存储器包含Cache、主存和辅助存储器。
1、Cache
Cache是一种容量小、速度快的存储器阵列它位于主存和嵌入式微处理器核心之间,存放的是一段时间微处理器使用最多的程式代码和数据。在需要进行数据读取操作时,微处理器儘可能的从Cache中读取数据,而不是从主存中读取,这样就大大改善了系统的性能,提高了微处理器和主存之间的数据传输速率。Cache的主要目标就是:减小存储器(如主存和辅助存储器)给微处理器核心造成的存储器访问瓶颈,使处理速度更快,实时性更强。
在嵌入式系统中Cache全部集成在嵌入式微处理器内,可分为数据Cache、指令Cache或混合Cache,Cache的大小依不同处理器而定。一般中高档的嵌入式微处理器才会把Cache集成进去。
2、主存
主存是嵌入式微处理器能直接访问的暂存器,用来存放系统和用户的程式及数据。它可以位于微处理器的内部或外部,其容量为256KB~1GB,根据具体的套用而定,一般片记忆体储器容量小,速度快,片外存储器容量大。
常用作主存的存储器有:
ROM类:NOR Flash、EPROM和PROM等。
RAM类:SRAM、DRAM和SDRAM等。
其中NOR Flash 凭藉其可擦写次数多、存储速度快、存储容量大、价格便宜等优点,在嵌入式领域内得到了广泛套用。
3、辅助存储器
辅助存储器用来存放大数据量的程式代码或信息,它的容量大、但读取速度与主存相比就慢的很多,用来长期保存用户的信息。
嵌入式系统中常用的外存有:硬碟、NAND Flash、CF卡、MMC和SD卡等。
(3)通用设备接口和I/O接口
嵌入式系统和外界互动需要一定形式的通用设备接口,如A/D、D/A、I/O等,外设通过和片外其他设备的或感测器的连线来实现微处理器的输入/输出功能。每个外设通常都只有单一的功能,它可以在晶片外也可以内置晶片中。外设的种类很多,可从一个简单的串列通信设备到非常複杂的802.11无线设备。
嵌入式系统中常用的通用设备接口有A/D(模/数转换接口)、D/A(数/模转换接口),I/O接口有RS-232接口(串列通信接口)、Ethernet(乙太网接口)、USB(通用串列汇流排接口)、音频接口、VGA视频输出接口、I2C(现场汇流排)、SPI(串列外围设备接口)和IrDA(红外线接口)等。
中间层
硬体层与软体层之间为中间层,也称为硬体抽象层(Hardware Abstract Layer,HAL)或板级支持包(Board Support Package,BSP),它将系统上层软体与底层硬体分离开来,使系统的底层驱动程式与硬体无关,上层软体开发人员无需关心底层硬体的具体情况,根据BSP 层提供的接口即可进行开发。该层一般包含相关底层硬体的初始化、数据的输入/输出操作和硬体设备的配置功能。BSP具有以下两个特点。
硬体相关性:因为嵌入式实时系统的硬体环境具有套用相关性,而作为上层软 件与硬体平台之间的接口,BSP需要为作业系统提供操作和控制具体硬体的方法。
作业系统相关性:不同的作业系统具有各自的软体层次结构,因此,不同的作业系统具有特定的硬体接口形式。
实际上,BSP是一个介于作业系统和底层硬体之间的软体层次,包括了系统中大部分与硬体联繫紧密的软体模组。设计一个完整的BSP需要完成两部分工作:嵌入式系统的硬体初始化以及BSP功能,设计硬体相关的设备驱动。
系统特点
1)可裁剪性。支持开放性和可伸缩性的体系结构。
2)强实时性。EOS实时性一般较强,可用于各种设备控制中。
3)统一的接口。提供设备统一的驱动接口。
4)操作方便、简单、提供友好的图形GUI和图形界面,追求易学易用。
提供强大的网路功能,支持TCP/IP协定及其他协定,提供TCP/UDP/IP/PPP协定支持及统一的MAC访问层接口,为各种移动计算设备预留接口。
5)强稳定性,弱互动性。嵌入式系统一旦开始运行就不需要用户过多的干预、这就要负责系统管理的EOS具有较强的稳定性。嵌入式作业系统的用户接口一般不提供操作命令,它通过系统的调用命令向用户程式提供服务。
6)固化代码。在嵌入式系统中,嵌入式作业系统和套用软体被固化在嵌入式系统计算机的ROM中。
7)更好的硬体适应性,也就是良好的移植性。
8)嵌入式系统和具体套用有机地结合在一起,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。
解决方案
基于嵌入式系统的RFID手持机系统方案
在基于嵌入式系统的RFID 手持机系统设计中,以微处理器LPC2142 为主控制器,根据系统的需求外扩了SRAM、Flash、SD 卡、键盘、LCD 显示、声响提示进行数据处理、数据存储、人机互动以及出错报警提示,通过USB 接口可以与主机进行数据通信,背光模组可以为LCD 和键盘提供背光,电压检测模组通过核心处理器的A/D 转换器进行电池电压的检测,从而间接检测出电池的剩余电量,RF 模组能够进行读写器与标籤之间射频信号的收发,通过JTAG 接口可以进行程式的调试与下载。电源部分可以为系统中需要电源的各个模组提供电源,这是本文设计的重点内容。
嵌入式智慧型平台在医疗仪器行业的套用方案
“EVOC”嵌入式智慧型平台在医疗仪器行业的套用。系统一般由多台监护仪和一台中央护士工作站组成,监护仪採用“EVOC”104-1541CLDN型全功能嵌入式工业主机板为核心操作平台。该主机板仅有手掌的一半大小,板上集成了超低功耗的NS GX 300MHz CPU处理晶片、 SDRAM、CRT/LCD控制、10/100Mbps网路接口、Compact Flash、IDE、FDD、两串一併、二个USB、一个115Kbps IrDA红外接口、1~255秒可程式看门狗定时器、PS2 键盘和滑鼠,支持国内医疗行业最通用的PC/104接口,系统通过该接口扩展的用户板完成包括血压、血氧、体温、呼吸等一系列感测探测器的信号採集,进行实时处理,最后结果可经由多种形式输出。该平台支持高精度LCD和VGA两种显示模式,在板视频最大解析度可达1024*768,支持通用的热敏列印接口,并可通过标準串口与中央护士工作站相互通讯。在平台作业系统的选择方面,我们给予客户更多的自由度,打破了传统多参数仪仅支持单一DOS作业系统的局限,以提供更加灵活广泛的套用模式。
系统初始化
系统初始化过程可以分为3个主要环节,按照自底向上、从硬体到软体的次序依次为:片级初始化、板级初始化和系统级初始化。片级
完成嵌入式微处理器的初始化,包括设定嵌入式微处理器的核心暂存器和控制暂存器、嵌入式微处理器核心工作模式和嵌入式微处理器的局部汇流排模式等。片级初始化把嵌入式微处理器从上电时的默认状态逐步设定成系统所要求的工作状态。这是一个纯硬体的初始化过程。
板级
完成嵌入式微处理器以外的其他硬体设备的初始化。另外,还需设定某些软体的数据结构和参数,为随后的系统级初始化和应用程式的运行建立硬体和软体环境。这是一个同时包含软硬体两部分在内的初始化过程。
系统
该初始化过程以软体初始化为主,主要进行作业系统的初始化。BSP将对嵌入式微处理器的控制权转交给嵌入式作业系统,由作业系统完成余下的初始化操作,包含载入和初始化与硬体无关的设备驱动程式,建立系统记忆体区,载入并初始化其他系统软体模组,如网路系统、档案系统等。最后,作业系统创建应用程式环境,并将控制权交给应用程式的入口。
系统软体
系统软体层由实时多任务作业系统(Real-time Operation System,RTOS)、档案系统、图形用户接口(Graphic User Interface,GUI)、网路系统及通用组件模组组成。RTOS是嵌入式套用软体的基础和开发平台。
EOS
嵌入式作业系统(Embedded Operation System,EOS)是一种用途广泛的系统软体,过去它主要套用于工业控制和国防系统领域。EOS负责嵌入系统的全部软、硬体资源的分配、任务调度,控制、协调并发活动。它必须体现其所在系统的特徵,能够通过装卸某些模组来达到系统所要求的功能。已推出一些套用比较成功的EOS产品系列。随着Internet技术的发展、信息家电的普及套用及EOS的微型化和专业化,EOS开始从单一的弱功能向高专业化的强功能方向发展。嵌入式作业系统在系统实时高效性、硬体的相关依赖性、软体固化以及套用的专用性等方面具有较为突出的特点。EOS是相对于一般作业系统而言的,它除具有了一般作业系统最基本的功能,还有以下功能:如任务调度、同步机制、中断处理、档案处理等。
档案系统
通用作业系统的档案系统通常具有以下功能:
提供用户对档案操作的命令。
提供用户已分享档案的机制。
管理档案的存储介质。
提供档案的存取控制机制,保障档案及档案系统的安全性。
提供档案及档案系统的备份和恢复功能。
提供对档案的加密和解密功能。
嵌入式档案系统比较简单,主要提供档案存储、检索和更新等功能,一般不提供保护和加密等安全机制。它以系统调用和命令方式提供档案的各种操作,主要有:
设定、修改对档案和目录的存取许可权。
提供建立、修改、改变和删除目录等服务。
提供创建、打开、读写、关闭和撤销档案等服务。
档案系统的特点:
1)兼容性。嵌入式档案系统通常支持几种标準的档案系统,如FAT32、JFFS2、YAFFS等。
2)实时档案系统。除支持标準的档案系统外,为提高实时性,有些嵌入式档案系统还支持自定义的实时档案系统,这些档案系统一般採用连续的方式存储档案。
3)可裁剪、可配置。根据嵌入式系统的要求选择所需的档案系统,选择所需的存储介质,配置可同时打开的最大档案数等。
4)支持多种存储设备。嵌入式系统的外存形式多样了,嵌入式档案系统需方便的挂接不同存储设备的驱动程式,具有灵活的设备管理能力。同时根据不同外部存储器的特点,嵌入式档案系统还需要考虑其性能、寿命等因素,发挥不同外存的优势,提高存储设备的可靠性和使用性。
图形接口
GUI的广泛套用是当今计算机发展的重大成就之一,他极大地方便了非专业用户的使用人们从此不再需要死记硬背大量的命令,取而代之的是可用用通过视窗、选单、按键等方式来方便地进行操作。而嵌入式GUI具有下面几个方面的基本要求:轻型、占用资源少、高性能、高可靠性、便于移植、可配置等特点。
嵌入式系统中的图形界面,一般採用下面的几种方法实现:
针对特定的图形设备输出接口,自行开发相关的功能函式。
购买针对特定嵌入式系统的图形中间软体包。
採用源码开放的嵌入式GUI系统。
使用独立软体开发商提供的嵌入式GUI产品。
套用软体层
套用软体层是由基于实时系统开发的应用程式组成,用来实现对被控对象的控制功能。功能层是要面对被控对象和用户,为方便用户操作,往往需要提供一个友好的人机界面。
对于一些複杂的系统,在系统设计的初期阶段就要对系统的需求进行分析,确定系统的功能,然后将系统的功能映射到整个系统的硬体、软体和执行装置的设计过程中,称为系统的功能实现。
发展前景
嵌入式系统是软硬结合的东西,搞嵌入式开发的人有两类。
一类是学电子工程、通信工程等偏硬体专业出身的人,他们主要是搞硬体设计,有时要开发一些与硬体关係最密切的最底层软体,如BootLoader、Board Support Package(像PC的BIOS一样,往下驱动硬体,往上支持作业系统),最初级的硬体驱动程式等。他们的优势是对硬体原理非常清楚,不足是他们更擅长定义各种硬体接口,但对複杂软体系统往往力不从心(例如嵌入式作业系统原理和複杂套用软体等)。
另一类是学软体、计算机专业出身的人,主要从事嵌入式作业系统和套用软体的开发。如果这类人对硬体原理和接口有较好的掌握,也完全可以写BSP和硬体驱动程式。嵌入式硬体设计完后,各种功能就全靠软体来实现了,嵌入式设备的增值很大程度上取决于嵌入式软体,这占了嵌入式系统的最主要工作(有很多公司将硬体设计包给了专门的硬体公司,稍複杂的硬体都交给台湾省或国外公司设计,国内的硬体设计力量很弱,很多嵌入式公司自己只负责开发软体,因为公司都知道,嵌入式产品的差异很大程度在软体上,在软体方面是最有“花头“可做的),所以软体研发人员完全不用担心在嵌入式市场上的无用武之地,越是智慧型设备越是複杂系统,软体越起关键作用,而且这是趋势。
嵌入式领域较新,发展非常快,很多软硬体技术出现的时间都不太长(如ARM处理器、嵌入式作业系统、LINUX作业系统),大多数人没有条件接触或进入嵌入式行业,更谈不上能有机会接受专业人士的指导。因此,踏进这个行业的难度比较大,嵌入式人才稀缺,身价自然也水涨船高。
权威部门统计,我国嵌入式人才缺口每年50万人左右。根据前程无忧网发布的调查报告,嵌入式软体开发是未来几年最热门和最受欢迎的职业之一,具有10年工作经验的高级嵌入式工程师年薪在30万元左右。即使是初级的嵌入式软体开发人员,平均月薪也达到了3000—5000元,中高级的嵌入式工程师月薪平均超过10000元。 做软体实际上有高下之分,开发语言从机器语言、彙编到C、C++,再到红透半边天的Java、C#等,该学哪种呢?为什么有些开发者工资低,而有些开发者千金难求?为什么3年的Java高级程式设计师薪水仅仅8k-10k,而一个Linux底层C语言程式设计师两年经验就敢要10k的薪水?
还是门槛,比如月薪15k的Linux嵌入式开发职位,门槛就有 Linux系统、Shell编程、Linux开发环境、C语言、ARM硬体平台、数据结构、Linux核心、驱动程式等,粗略数数就有8道关口,他需要非常熟悉整个的计算机体系,能做出实际的产品,而Java的开发者却仅仅是会使用名叫Java的语言工具,始终高高飘在众多层次之上,开发项目非常快,甚至可以不知道OSI模型,很可能自始至终都是软体蓝领。
嵌入式开发本身也有高下之分,至少包含嵌入式应用程式工程师和底层的驱动核心工程师两种。前者同样是使用现成工具进行简单劳动,比如使用J2ME开发小游戏或者进行一些界面开发,而后者是根据晶片具体情况把作业系统(如Linux)移植到上面,同时编写必要的驱动程式,改写相应的核心代码。很显然后者是一个公司真正的技术核心。而技术核心的工资很可能是其他开发者的数倍。
嵌入式开发突出强制和项目,学习不仅仅是学习几项技术,而是构建你的知识体系。比如学习嵌入式开发,就要从基础Linux,C语言,数据结构开始,到ARM,彙编,Linux核心、驱动等,更重要的是更多的项目练习,设计至少5个项目,多达10000行强制核心代码的编写可以让你真正获得知识。为进入外企或者出国做準备。未来的几年内,随着信息化,智慧型化,网路化的发展,嵌入式系统技术也将获得广阔的发展空间。美国着名未来学家尼葛洛庞帝99年1月访华时预言,4~5年后嵌入式智慧型(电脑) 工具将是PC和网际网路之后最伟大的发明。我国着名嵌入式系统专家沈绪榜院士98年11月在武汉全国第11次微机学术交流会上发表的《计算机的发展与技术》一文中,对未来10年以嵌入式晶片为基础的计算机工业进行了科学的阐述和展望。1999年世界电子产品产值已超过12000亿美元,2000年达到13000亿美元,预计2005年,销售额将达18000亿美元。一些先进的PDA在显示萤幕上已实现汉字写入、短讯息语音发布,日用範围也将日益广阔。对于企业专用解决方案,如物流管理、条码扫描、移动信息採集等,这种小型手持嵌入式系统将发挥巨大的作用。自动控制领域,不仅可以用于ATM机,自动售货机,工业控制等专用设备,和移动通讯设备结合、GPS、娱乐相结合,嵌入式系统同样可以发挥巨大的作用。
经济型快闪记忆体将会成为嵌入式市场的一个方向。
附录
嵌入式相关专业术语:
Embedded Control Channel:嵌入式控制通道。
Embedded Document Architecture:嵌入式档案架构。
Embedded Linking and Control:嵌入式链路及控制。
Embedded Micro Internetworking Technology:嵌入式微型网际网路技术。
Embedded System Area Network:嵌入式系统域网。
Embedded System Conference:嵌入式系统会议。
Novell Embedded Systems Technology Novell:嵌入式系统技术。
Rapid Object-Oriented Process for Embedded Systems:嵌入式快速面向对象过程。
embedded Java:嵌入式Java。
embedded Web server:嵌入式网路伺服器。
embedded controller:嵌入式控制器。
embedded servo system:嵌入式伺服系统。
embedded software:嵌入式软体。
embedded test:嵌入式测试。
controller, embedded:嵌入式控制器。
Java embedded server Java:嵌入式Java伺服器。
















