嵌入式系统(Embedded System),一般指非桌面计算机系统(即非PC、服务器、大中小型机等),有计算机功能且可以“嵌入”到专用设备并发挥专用功能的计算机设备或器材。它是以应用为中心,软硬件可裁减的,适应应用系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。简单地说,这种计算机通过和设备的电气连接,并通过在计算机上运行的专用程序对接口进行通讯和控制,使设备成为智能化的设备,比如:基于网络的工业控制器、带彩色显示的智能终端等。
嵌入式系统主要由嵌入式处理器为核心的硬件系统、嵌入式操作系统及应用软件系统等组成,它是可独立工作的“器件”。
1、嵌入式处理器为核心的硬件系统
嵌入式系统硬件的核心是嵌入式微处理器。嵌入式微处理器一般具备 3个特点: (1) 对实时和多任务有很强的支持能力,能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时操作系统的执行时间减少到最低限度; (2) 强大的外围通用接口扩展功能,可以迅速地扩展出通用的硬件接口并实现通讯和控制;(3) 嵌入式微处理器的功耗必须控制在较小的合理范围,尤其是用于便携式的无线及移动的计算和通信设备中靠电池供电的嵌入式系统更是如此。
在传统的划分中,很多人士把诸如8051等8位或16位单片机也归入嵌入式系统。理由是单片机可以“嵌入”设备且可以通过编程进行通讯和控制,符合嵌入式系统的功能定义。但是随着计算机技术的发展,对设备的通讯和控制也逐渐复杂,单片机由于一般不带操作系统,或仅仅使用一些初级的操作系统,往往只能实现简单的控制,对于诸如文件系统、通讯协议栈、以及GUI这些复杂的应用往往无能为力。在很多新的划分中,往往把不能支持嵌入式操作系统的单片机排除在嵌入式系统之外。
目前常见的嵌入式处理器目前主要有X86系列(如Am186/188、RDC1610C、386EX等)、 Power PC系列、68000系列、MIPS系列、ARM系列(包括ARM7、ARM9、ARM11系列)等。其中X86系列由于和PC体系软硬件兼容,基于传统,很多工业控制场合都广泛使用;而ARM系列,特别是ARM9系列,由于其成熟可靠的体系结构、日益低廉的成本、广泛配套的软件体系,在近年来发展迅猛,俨然有形成主流嵌入式体系之势。
光有核心处理器,是不能够构成一个嵌入式系统的硬件结构的。在处理器核心的基础上进行外围电路扩展,扩展出存储器、总线、串口、网络乃至IO等,这样才能形成一个完整的可以对外界进行通讯和控制的计算机体系。随着IT业分工的细化,设计生产这样一个完整的嵌入式系统硬件单元不再是由整机设备厂商自己来完成,而是由一些专业化的嵌入式计算机公司来提供,这些公司将这些必要的硬件集成在一张电路板上,就形成了一个要素、接口功能完备的嵌入式单板计算机。如英创公司X86系列的以RDC1610C为处理器核心的ETR232i嵌入式主板,以及ARM9系列的以EP9315为处理器核心的EM9000嵌入式主板、以AT91SAM9260为核心的EM9260嵌入式主板等,就是这样的单板计算机的典型;针对用户的应用,这样的嵌入式主板充分考虑了用户在各种场合需要使用的存储空间、接口、成本等各方面的因素,较好地实现了性价比的平衡,成为了终端整机用户的良好选择。
2、嵌入式操作系统
在传统的划分方式下,嵌入式操作系统可以分为两类,一类是面向控制、通信等领域的实时操作系统,如 WindRiver 公司的 VxWorks 、 ISI 的 pSOS 、 QNX 系统软件公司的 QNX 、 ATI 的 Nucleus 等;另一类是非实时操作系统,如Windows CE、Linux,这类产品很多面向消费电子产品,如PDA 、移动电话、机顶盒、电子书等。但是随着嵌入式产品市场的快速发展,以及嵌入式处理器的处理速度和能力大大提高,Windows CE、Linux等过去所谓的非实时操作系统,在实时性方面都进行了重大改进,如Windows CE5.0,驱动程序对硬件中断的响应延时已小于50us,同时保留了Windows系统一贯良好的开发环境和界面以及低廉的开发成本,这些因素使Windows CE和Linux这样的所谓非实时操作系统已经被工业控制、通信等等行业广泛采用,得到蓬勃的发展。这里,需要特殊提到的就是传统的单任务操作系统DOS,由于传统工控机长期使用DOS的原因,在很多工业控制场合,DOS依然在广泛使用和运行,因此,很多X86的嵌入式单板计算机依然运行DOS操作系统。
还是以英创公司的嵌入式单板计算机为例,X86系列嵌入式主板采用传统的DOS操作系统,并采用BC进行在线开发和调试;而ARM9系列主板,采用Windows CE操作系统,采用微软的优秀开发工具eVC或VS2005进行开发调试。
3、应用软件系统
嵌入式系统的应用软件,是指采用相关软件开发工具,针对客户需要嵌入式系统实现的通讯或控制需求,进行开发编译后,在相关硬件平台和嵌入式操作系统上运行的应用软件。
应用软件在针对最终用户的需求,往往需要实现如下全部或部分功能:
(1) 接口通讯:包括以太网络通讯、串口通讯、CAN接口通讯、GPRS/CDMA无线通讯等等
(2) 接口控制:如IO控制、总线控制等等
(3) 数据采集和处理:数据从哪里来,存储到哪里,如何处理,传输到哪里等等
(4) 图形用户界面GUI:结果如何以图形或文字界面显示给用户,并接受用户的指令
而用户在设计应用软件,所面临的最大难题是往往要面对诸如协议栈、图形底层处理、硬件接口控制等等诸多难题,如果从头做起,无论是技术复杂性和所需要花费的时间和资金成本,都是难以承受的。所以很多嵌入式整体方案提供商,如英创公司,不仅提供嵌入式系统硬件已经预装好的操作系统,还提供全方位的底层驱动函数,如可以运行在DOS上的商业化TCP/IP协议栈、CAN通讯协议、总线控制函数等等,这样,客户只需要关注其应用软件本身,可以快速地完成产品开发形成最终产品。
这里需要特别推荐一下基于ARM9 + WinCE平台的应用软件开发。由于Windows CE系统与桌面PC使用的Windows系统内部的一致性,使其可以使用eVC和VS2005这样的优秀软件平台进行应用开发,任何使用过微软软件进行开发的工程师都可以轻松上手;使用可视化设计界面(如MFC),可以轻松实现GUI界面,而诸如串口通讯、以太网通讯这样的功能可以直接使用封装好的类或者函数实现。还是以英创的产品为例,对其开发不仅可以使用Windows丰富的函数和功能,而且对于特殊的接口,如ISA、DIO、CAN,英创同样提供相关的底层静态或动态链接库,直接进行调用,就可以实现通讯和控制。
相信,随着计算机技术的进一步飞速发展,更多更好功能更全的嵌入式系统产品会出现在市场上,产生更多新概念的数字产品,从而影响到我们的生活。