嵌入式系统名字看起来高大上,不少人学了很久也没搞清楚,笔者以前也总是范范学习,没有认真思考,所以今天来对这一块的基础知识根据个人理解做一个总结:
一:嵌入式系统:从名字上来看就是把一个计算机嵌入到一个对象体系中去,技术要求就是实现对对象的智能化控制!
二:嵌入式系统的基本组成:
(1)以嵌入式微处理器为核心的硬件平台:
1,微处理器:MCU,MPU,DSP,soc或者它们的组合
1.CPU(Central Processing Unit),是一台计算机的运算核心和控制核心。CPU由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。差不多所有的CPU的运作原理可分为四个阶段:提取(Fetch)、解码(Decode)、执行(Execute)和写回(Writeback)。 CPU从存储器或高 速缓冲存储器中取出指令,放入指令寄存器,并对指令译码,并执行指令。所谓的计算机的可编程性主要是指对CPU的编程。 2.MPU (Micro Processor Unit),叫微处理器(不是微控制器),通常代表一个功能强大的CPU(暂且理解为增强版的CPU吧),但不是为任何已有的特定计算目的而设计的芯片。这种芯片往往是个人计算机和高端工作站的核心CPU。最常见的微处理器是Motorola的68K系列和Intel的X86系列。 3.MCU(Micro Control Unit),叫微控制器,是指随着大规模集成电路的出现及其发展,将计算机的CPU、RAM、ROM、定时计数器和多种I/O接口集成在一片芯片上,形成芯片级的芯片,比如51,avr这些芯片,内部除了CPU外还有RAM,ROM,可以直接加简单的外围器件(电阻,电容)就可以运行代码了,而MPU如x86,arm这些就不能直接放代码了,它只不过是增强版的CPU,所以得添加RAM,ROM。 4.SOC(System on Chip),指的是片上系统,MCU只是芯片级的芯片,而SOC是系统级的芯片,它既MCU(51,avr)那样有内置RAM,ROM同时又像MPU(arm)那样强大的不单单是放简单的代码,可以放系统级的代码,也就是说可以运行操作系统(将就认为是MCU集成化与MPU强处理力各优点二合一)。
5.SOPC(System On a Programmable Chip)可编程片上系统,上面4点的硬件配置是固化的,就是说51单片机就是51单片机,不能变为avr,而avr就是avr不是51单片机,他们的硬件是一次性掩膜成型的,能改的就是软件配置,说白点就是改代码,本来是跑流水灯的,改下代码,变成数码管,而SOPC则是硬件配置,软件配置都可以修改,软件配置跟上面一样,没什么好说的,至于硬件,是可以自己构建的也就是说这个芯片是自己构造出来的,这颗芯片我们叫“白片”,什么芯片都不是,把硬件配置信息下载进去了,他就是相应的芯片了,可以让他变成51,也可以是avr,甚至arm,同时SOPC是在SOC基础上来的,所以他也是系统级的芯片,所以记得当把他变成arm时还得加外围ROM,RAM之类的,不然就是MPU了。
2,存储器单元
3,可编程逻辑与胶合逻辑
4,专用ASIC
5,模拟与接口电路
6,电源与时钟电路。
(2)嵌入式系统的软件平台:板级支持包(厂家给定),设备驱动程序(设置片内各个功能模块,激发功能),多任务实时操作系统(可以称为软件平台或者系统控制模块),应用程序
上图几乎是所嵌入式系统的软件框架,从图中可以看出,硬件抽象层,把应用程序和硬件隔开,起到了桥梁的作用!
思考:在LINUXD的开发中,内核总是通过系统调用(接口)和外部函数调用,这其中的道理是想通;,老师说过研究内核的最好的办法就是编写驱动函数,因为驱动是内核的直接使用者!好了,不扯了
三 嵌入式的分类:
(1)嵌入式微处理器:基础是通用计算机的CPU,包括AM186/88,PowerPC,ARM.ADSP系列等
(2)嵌入式微控制器:又称为单片机(MCU),将整个计算机系统集中到一块芯片中。
(3)嵌入式DSP处理器
一:DSP处理器经过单片化,EMC改造,增加片上外设称为嵌入式DSP处理器
二:在通用单片机或者SoC中增加DSP协处理器。
(4)嵌入式片上系统:在一个板上实现一个复杂的系统,嵌入一些处
理器核
就是嵌入式片上系统(SoC),各种处理器的额内核将作为SOC的标准库:
四:RTOS:实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,并控制所有实时任务协调一致运行的操作系统。提供及时响应和高可靠性是其主要特点。RTOS是嵌入式应用软件的基本开发平台。RTOS是嵌入子目标代码中的软件,用户的其它应用程序都建立在RTOS之上,RTO还是一个可靠性和可信度很高的实时多任务内核,将CPU时间,中断,I/O,定时器等资源都包括起来,留给用户一个标准的API,根据各个任务的优先级,合理在不同任务之间分配CPU资源。