打印

嵌入式系统介绍

[复制链接]
1605|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lindoug|  楼主 | 2020-6-19 10:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
嵌入式系统介绍
对于嵌入式初学者或者是专门做嵌入式软件开发工程师职位的猎头来说,刚入手的时候可能会对嵌入式一头雾水,网上的介绍也不够系统,专业术语又太多,下面我就给大家来理一理嵌入式软件工程师的前生今世,帮助大家更好了解嵌入式行业。
一、嵌入式定义
嵌入式系统是一种专用的计算机系统,,用于控制、监视或者辅助操作机器和设备的装置。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。
嵌入式是硬件和软件的综合体,国内对嵌入式软件工程师的定义是:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
嵌入式设计是企业电子产品设计的重要组成,目前国内外中小型企业内部都建立了自己的嵌入式开发团队。团队所需的人员职位构成包括:(1)系统设计工程师 (2)硬件工程师 (3)底层驱动工程师(4)Linux系统工程师 (5)应用设计工程师等。
二、嵌入式详细介绍
一个嵌入式系统装置一般都由嵌入式计算机系统和执行装置组成,
嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、驱动层(中间层)、系统软件层和应用软件层组成。下面的介绍也将紧紧围绕着这四个层次展开说明。
执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。执行装置可以很简单,如手机上的一个微小型的电机,当手机处于震动接收状态时打开;也可以很复杂,如SONY智能机器狗,上面集成了多个微小型控制电机和多种传感器,从而可以执行各种复杂的动作和感受各种状态信息。
下面金字塔中出现的中间件比较少见,它不是嵌入式系统的必须,一般指的是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。专门做中间件的嵌入式软件工程师也比较少见。


嵌入式芯片
嵌入式系统层次
中间件
受控器件:
1.消费电子:mp3、手机、电梯、汽车...
2.智能家电:数字电视、微波炉、数码相机、空调...
3.网络设备:交换机、路由器...
4.医疗仪器:..各种医疗器械...
5.航天设备:卫星、航天飞机、月球探测仪...
6.工业控制:控制主机,智能监控...
7.汽车电子:车联网
8.安防监控:交通监控
计算机系统:包括硬件和软件系统、且软、硬件均可裁剪,但必须有最小系统要求。
三、职位区分
(一)硬件层次
硬件工程师
开发一些与硬件关系最密切的最底层软件,如BootLoader、Board Support Package(像PC的BIOS一样,往下驱动硬件,往上支持操作系统),最初级的硬件驱动程序等
相关专业:电子工程、通信工程
(二)软件层次
底层的驱动内核工程师(嵌入式驱动工程师)
根据芯片具体情况把操作系统(如Linux)移植到上面,同时编写必要的驱动程序,改写相应的内核代码
嵌入式应用程序工程师类:
Linux嵌入式开发工程师:
要求:精通Linux系统、Shell编程、Linux开发环境、C语言、ARM硬件平台、数据结构、Linux内核、驱动程序等
(三)综合
嵌入式系统设计工程师
(四)职业发展路径
嵌入式软件开发工程师——嵌入式系统开发工程师/嵌入式系统测试工程师——产品研发经理/IT项目经理
四、硬件层次
嵌入式芯片


(一)嵌入式芯片
首先来说说硬件层次,嵌入式系统(系统层次)搭建的基础是嵌入式芯片,不同的嵌入式芯片也往往决定了硬件的性能,能搭建什么样的嵌入式系统以及能实现什么样的功能。
嵌入式芯片:包括了SOC,FPGA,CPLD
SOC:Systems on Chips系统级芯片(顾名思义,能够跑操作系统的)
MCU:Microcontroller Unit单片机(包括了CPU,ROM,RAM,外接设备(外设)的输入输出接口)
MPU:Microprocessor Unit微处理器
CPU:Central Processing Unit中央处理器
SOC放到下一节讲
CPLD
CPLD(Complex Programmable Logic Device)复杂可编程逻辑器件,是从PAL和GAL器件发展出来的器件,相对而言规模大,结构复杂,属于大规模集成电路范围。是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统。
FPGA
FPGA(Field-Programmable
Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA和CPLD都是可编程逻辑器件芯片,用于电路设计,特点是使用灵活,通常是为了满足客户定制化而又小批量的需求。
(二)SOC系统级芯片
SoC的定义多种多样,由于其内涵丰富、应用范围广,很难给出准确定义。SOC是我们介绍的重点。一般说来,SoC称为系统级芯片,也有称片上系统,意指它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。同时它又是一种技术,用以实现从确定系统功能开始,到软/硬件划分,并完成设计的整个过程。
对于手机行业来说,手机soc通常集成了很多手机上最关键的部件,比如CPU、GPU、内存、也就说虽然它在主板上的存在是一个芯片,但是它里边可是由很多部件封装组成的。比如通常我们所说的高通801,Tegra 4,A6等等都只是系统部件打包封装(SoC)后的总称。然而各家的打包封装的内容则不尽相同,原因也不尽相同。
比如高通的SoC集成度往往是较高的,有AP/CPU(Krait),GPU(Adreno),RAM(运行内存),Modem(通信模块),ISP(图像处理),DSP(数字信号处理),Codec(编码器)等等等等。



对于除手机之外的嵌入式来说,我们简单理解为集成了各种芯片的集成电路即可。
(三)MCUMicrocontroller Unit单片机
MCU属于SOC中的一部分,单片机可理解为跑程序的微型电脑,麻雀虽小五脏俱全,所写的代码相当于程序。它集成了内处理器(CPU)、存储器(RAM、ROM)、计数器、以及I/O端口为一体的一块集成芯片。在此硬件电路基础上,将要处理的数据、计算方法、步骤、操作命令编制成程序,存放于MCU内部或外部存储器中,MCU在运行时能自动地、连续地从存储器中取出并执行。



MCU微控制单元(MicrocontrollerUnit)单片机
(四)MPU微处理器
根据处理对象的不同分类:
l用作处理通用数据时,叫作中央处理器(Central Processing Unit, CPU)这也是最为人所知的应用(如:Intel Pentium CPU);
l专用于作图像数据处理的,叫作图形处理器(Graphics Processing Unit, GPU)(如Nvidia GeForce 6150 GPU);
l用于音频数据处理的,叫作音频处理器(Audio Processing Unit, APU)(如Creative emu10k1 APU)等等
l专门用于数字信号处理的叫做数字信号处理器(Digital Signal Processing,DSP),如知名的SHARC
这里对DSP做一些补充说明
DSP数字信号处理器:如SHARC(在DSP领域占据主导地位)
lSHARC:32位浮点数字信号处理器(即DSP)SHARC是美国ADI公司推出的32位浮点数字信号处理器(即DSP)系列产品的名字。
l特点:
在浮点DSP市场占据主导地位,拥有出色的内核和存储器性能,以及优异的I/O吞吐能力
l主要应用领域:
高级实时音频和工业应用
安全与监控
汽车电子
相关公司:德州仪器TI,ADI(亚德诺半导体技术有限公司,产品SHARC)
(五)CPU中央处理器
CPU是嵌入式芯片的核心,因此当我们对嵌入式芯片做分类时,常常以CPU作为标准。
一、核心参数
CPU频率MHZ
存储容量RAM
外设类型和个数:如SPI,I2C,UART,USB,DMA,CAN
二、CPU的种类
1.计算机的CPU。
Intel公司和AMD公司
2.手机平板智能电视的CPU
高通Qualcomm,联发科MTK,三星电子【提供的是芯片整体解决方案】【高通的代表产品是骁龙处理器】,华为海思【如麒麟935,用于华为的手机】



CPU
3.嵌入式的CPU
(1)IP公司
ARM公司【IP公司,知识产权公司,提供技术支持,Intellectual
property】
MIPS公司
(2)芯片厂商


芯片厂商
五、驱动层
驱动层一般是用来驱动外围设备的,外设和外设驱动有很多,这里讲讲一些常用的,有
SPI:
SPI是串行外设接口(Serial
Peripheral Interface)的缩写。SPI,是一种高速的,全双工,同步的通信总线。
I2C:
I2C(Inter-Integrated Circuit)总线是由PHILIPS公司开发的两线式串行通信总线。
UART:
通用异步收发传输器(Universal
Asynchronous Receiver/Transmitter),通常称作UART,是一种异步收发传输器,是电脑硬件的一部分。在嵌入式设计中,UART用来主机与辅助设备通信,如汽车音响与外接AP之间的通信,与PC机通信包括与监控调试器和其它器件,如EEPROM通信
USB
CAN:
控制器局域网。
SD卡
加速度计、陀螺仪及气压计传感器
六、系统层
系统层即操作系统OS(operating systems)



常见操作系统说明
Linux
linux是嵌入式开发使用的主流系统,包括了uClinux和openWRT
uClinux
uclinux表示micro-control linux.即“微控制器领域中的Linux系统”,是Lineo公司的主打产品,同时也是开放源码的嵌入式Linux的典范之作。uCLinux主要是针对目标处理器没有存储管理单元MMU(Memory Management Unit)的嵌入式系统而设计的。它已经被成功地移植到了很多平台上。由于没有MMU,其多任务的实现需要一定技巧。
uClinux是嵌入式Linux领域非常重要的分支,已成功应用于路由器、机顶盒、PDA等领域,与标准Linux在内存管理方面有着本质的区别。[1]
uCLinux是一种优秀的嵌入式Linux版本,是micro-Conrol-Linux的缩写。它秉承了标准Linux的优良特性, 经过各方面的小型化改造,形成了一个高度优化的、代码紧凑的嵌入式Linux。虽然它的体积很小,却仍然保留了Linux的大多数的优点:稳定、良好的移植性、优秀的网络功能、对各种文件系统完备的支持和标准丰富的API。它专为嵌入式系统做了许多小型化的工作,目前已支持多款CPU。 其编译后目标文件可控制在几百KB数量级,并已经被成功地移植到很多平台上。
openWRT
OpenWrt可以被描述为一个嵌入式的Linux发行版,(主流路由器固件有dd-wrt,tomato,openwrt三类)而不是试图建立一个单一的、静态的系统。OpenWrt的包管理提供了一个完全可写的文件系统,从应用程序供应商提供的选择和配置,并允许您自定义的设备,以适应任何应用程序。
对于开发人员,OpenWrt是使用框架来构建应用程序,而无需建立一个完整的固件来支持;对于用户来说,这意味着其拥有完全定制的能力,可以用前所未有的方式使用该设备。
Wince
Wince在嵌入式应用领域仅次于linux。Windows Embedded Compact(即Windows CE)是微软公司嵌入式、移动计算平台的基础,它是一个开放的、可升级的32位嵌入式操作系统
uCosII(也写作uc/os)
μC/OS-II由Micrium公司提供,是一个可移植、可固化的、可裁剪的、占先式多任务实时内核,它适用于多种微C统源代码开放、整洁、一致,注释详尽,适合系统开发。操作系统。
VxWorks
VxWorks是美国Wind River System公司(以下简称风河公司 ,即WRS公司)推出的一个实时操作系统。Tornado是WRS公司推出的一套实时操作系统开发环境,类似MicrosoftVisual C,但是提供了更丰富的调试、仿真环境和工具。




使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

468

主题

472

帖子

19

粉丝