随着社会的日益信息化,计算机和网络已经全面渗透到日常生活的每一个角落。对于我们每个人来说,需要的已经不在仅仅是那种放在桌上处理文档,进行工作管理和生产控制的计算机“机器”。任何一个普通人都可能拥有从小到大的各种使用嵌入式技术的电子产品,小到MP3等微型数字化产品,大到网络家电、智能家电等。
目前国内一个普遍被认同的定义是:以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、工号严格要求的专用计算机系统。 从20实际70年代单片机的出现到今天各式各样的嵌入式微处理器、微控制器的大规模应用,嵌入式系统已经有了近30年的发展历史。作为一个系统,往往是硬件和软件双螺旋式交替发展的支撑下主讲趋于稳定和成熟,嵌入式系统也不例外。嵌入式系统最初的应用是基于单片机的。20世纪70年代单片机的出现,使得汽车、家电、工业机器、通信装置以及成千上万种产品可以通过内嵌电子装置来获得更佳的使用性能,更容易使用,更快、更便宜。这些装置已经初步具备了嵌入式的应用特点,但是这时的应用只是使用8位的芯片,执行一些单线程的程序,还谈不上“系统”的概念。
从80年代早期开始,嵌入式系统的程序员开始用商业级的“操作系统”编写嵌入式应用软件,这使得开发人员可以进一步缩短开发周期,降低开发成本并提高开发效率。
90年代以后,随着对实时性要求的提高,软件规模不断上升,实时内核主讲发展为实时多任务操作系统(RTOS),并作为一种软件平台逐步成为目前国际嵌入式系统的主流。
我们可以从以下几个方面来理解国内对嵌入式系统的定义:
嵌入式系统是面向用户、面向产品、面向应用的,它必须与具体应用相结合才会具有生命力,才更具有优势。也就是说嵌入式系统是与应用紧密结合的,它具有很强的专用性,必须结合实际系统需求进行合理的裁剪利用。
嵌入式系统是将先进的计算机技术、半导体技术和电子技术以及各个行业的具体应用相结合后的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的只是继承系统。所以,介入嵌入式系统行业,必须有一个正确的定位。
1.嵌入式系统必须根据应用需求可对软硬件进行裁剪,满足应用系统的功能、可靠性、成本、体积等要求,所以,如果能简历相对通用的软硬件基础,然后在其上开发处适应各种需要的系统,是一个比较好发展模式。
2.嵌入式系统是将先进的计算机技术、半导体技术和电子技术以及各个行业的具体应用相结合后的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的只是继承系统。所以,介入嵌入式系统行业,必须有一个正确的定位。
3.嵌入式系统必须根据应用需求可对软硬件进行裁剪,满足应用系统的功能、可靠性、成本、体积等要求,所以,如果能简历相对通用的软硬件基础,然后在其上开发处适应各种需要的系统,是一个比较好发展模式。
一般而言,嵌入式系统的架构可以分成四个部分:处理器、存储器、输入输出(I/O)和软件,由于多数嵌入式设备的应用软件和操作系统都是紧密结合的,在这里对其不加区分,这也是嵌入式系统和Windows系统的最大区别。
由于嵌入式系统由硬件和软件两大部分组成,所以其分类也可以从硬件和软件进行划分。
嵌入式系统的硬件,主要体现在嵌入式处理器的分类,笔者通过MCU、DSP、MPU、Soc四者的辨析来带领大家了解不同处理器的特点
MCU(MicroControllerUnit,MCU):微控制器的典型代表是单片机,单片机芯片内部集成ROM/EROM、RAM、总线、总线逻辑、定时/计数器、看门狗、I/O、串行口、脉宽调制输出、A/D、D/A、Flash、EEPROM等各种必要功能和外设 。微控制器的最大特点是单片化,体积大大减小,从而是功耗和成本下降、可靠性提高。微控制器是目前嵌入式系统工业的主流。微控制器的片上外设一般比较丰富,适合于控制,因此称为微控制器。
DSP(Digital Signal Processor, DSP):DSP处理器是专门用于信号处理方面的处理器,其在系统结构和指令算法方面进行了特殊设计,具有很高的编译效率和指令执行速度。在数字滤波、FFT、频谱分析等各种仪器上DSP获得了大规模的应用。
MPU(Micro Processor Unit, MPU): 嵌入式微处理器是由通用计算机中的CPU演变来的。它的特征是具有32位以上的处理器,具有较高的性能。但与计算机处理器不同的是,在实际嵌入式应用中,只保留和嵌入式应用紧密相关的功能硬件,去除其它的冗余功能部分,这样就以最低的功耗和资源实现嵌入式应用的特殊要求。
SOC(System On Chip, SOC):片上系统 SOC是追求产品系统最大包容的集成器件,SOC最大的特点是成功实现了软硬件无缝结合,直接在处理器片内操作系统的代码模块。
嵌入式系统的软件,主要可以根据操作系统的类型划分。
目前嵌入式系统的软件主要有两大类:实时系统和分时系统。其中实时系统又分为两类:硬实时系统和软实时系统。
实时嵌入式系统是为执行特定功能而设计的,可以严格地按时序执行功能。其最大的特征就是程序的执行具有确定性。在实时系统中,如果系统在指定的时间内未能实现某个确定的任务,会导致系统的全面失败,则系统被称为硬实时系统。
综上,我们对嵌入式系统有了一个基本的了解,知道了一个嵌入式系统的基本组成,那么一个嵌入式系统是怎样实现的呢?
第一步,根据用户需求选择处理器设计硬件平台然后选择合适的嵌入式操作系统,然后在操作系统上进行应用程序的开发,应用程序的测试,整个系统的测试最终嵌入式系统开发结束进入使用。在应用嵌入式系统给开发的过程中,因为对应于每一个处理器的硬件平台都是通用的、固定的、成熟的。所以,在开发过程中减少了硬件系统错误的引用机会,同时,因为操作系统屏蔽掉了底层硬件的很多复杂信息,使得开发者通过操作系统提供的API函数就可以完成大部分工作,大大地讲话了开发过程,提高了系统的稳定性。嵌入式系统的开发可以说是吧开发者从反复进行硬件平台的设计过程中解放出来,从而可以把主要精力放在编写特定的应用程序上。这个过程更类似于在特定的应用程序上。这个过程更类似于在系统机上的某个操作系统上的开发应用程序。
作为一个初入嵌入式开发行业的新人,开发工作大多在在操作系统上开发应用程序,操作系统是由C语言开发的,我们如果想使用操作系统提供的API函数进行开发工作,那就必须掌握C语言。在后续的开发过程中,为了完成功能模块,可以体会到不同硬件平台和不同操作系统的差异,接触的硬件平台多了之后我们就可以尝试根据用户需求和应用的场景设计一些小型的嵌入式系统,实现基本功能后可以继续加入功耗、成本的考量做进一步的迭代优化。