《嵌入式设备驱动开发精解》——1.1 嵌入式系统介绍

本节书摘来异步社区《嵌入式Linux应用开发彻底手册》一书中的第1章,第1.1节,做者:韦东山,更多章节内容能够访问云栖社区“异步社区”公众号查看编程

1.1 嵌入式系统介绍

嵌入式Linux应用开发彻底手册markdown

1.1.1 嵌入式系统的定义和特色

1.嵌入式系统的定义
嵌入式系统的定义为:以应用为中心、以计算机技术为基础、软硬件可裁剪、适用于应用系统,对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。它的主要特色是嵌入、专用。网络

从20世纪70年代起,微型机以小型、价廉、高速数值计算等特色迅速走向市场,它所具有的智能化水平在工业控制领域发挥了做用,常被组装成各类形状,“嵌入”到一个对象体系中,进行某类智能化的控制。这样一来,计算机便失去了原来的形态与“通用”的功能,为区别于通用计算机系统,将这类为了某个“专用”的目的,而“嵌入”到对象体系中的计算机系统,称为嵌入式计算机系统,简称嵌入式系统。异步

含有嵌入式系统的设备称为嵌入式设备,这在生活中随处可见:电子表、手机、MP3播放器、摇控器等,涵盖了生产、工业控制、通讯、网络、消费电子、汽车电子、军工等领域。从通俗、广义的角度来讲,除电脑、超级计算机等具有比较强大计算能力及系统资源(好比内存、存储器等)的电子系统以外,凡具有计算能力的设备均可称为嵌入式设备。随着技术的进步,嵌入式设备的性能愈来愈高,一个相对高级的PDA的性能并不弱于通常的电脑。函数

2.嵌入式系统的特色
嵌入式设备常应用于“特定”场合,与“通用的”我的电脑相比,具有如下特色。性能

(1)软件、硬件可裁剪。spa

将市面上的手机拆开,会发现虽然它们的功能是类似的,可是所用芯片多种多样,所用的操做系统也有多种,操做界面更是变幻无穷,操做的便利性各有千秋。这不一样于我的电脑,CPU除了INTEL就是AMD公司的,操做系统多用Windows。功能、成本、开发效率等条件决定了嵌入式设备的选材多样化,软件、硬件可裁剪,即当不须要某项功能时,能够去除相关的软硬件。操作系统

(2)对功能、可靠性、成本、体积、功耗严格要求。设计

功能、可靠性、功耗这3点是软件开发人员最关注的地方。仍以手机为例,当选定硬件平台以后,处理器的性能已经被限定了,怎样使得手机的操做更人性化、菜单响应更快捷、具有更多更好的功能,这彻底取决于软件。须要驱动程序和应用程序配合,最大程度地发挥硬件的性能。对象

也许读者见过这类手机,它的屏幕老是通过很长时间才熄灭,这使得它的电池很快耗光,只要在编写软件时进行改进,就可能成倍地延长电池的使用时间。一个优秀的嵌入式系统,对硬件性能的“压榨”、对软件的细致调节,已经到了精益求益的地步。有时候甚至为了节省几秒的启时间而大动脑筋,调整程序的启动顺序让耗时的程序稍后运行、改变程序的存储方式以便更快地加载等,甚至经过显示一个进度条让用户以为时间没那么长。

1.1.2 嵌入式技术的发展历史

嵌入式技术在20世纪70年代起源于微型机,今后以后,通用计算机与嵌入式计算机就走上了两条不一样的道路。通用计算机系统的技术要求是高速、海量的数值计算;技术发展方向是总线速度的无限提高,存储容量的无限扩大。 而嵌入式计算机系统的技术要求则是对象的智能化控制能力;技术发展方向是与对象系统密切相关的嵌入性能、控制能力与控制的可靠性。

嵌入式技术的发展突飞猛进,经历了单片机(SCM)、微控制器(MCU)、系统级芯片(SoC)3个阶段。

1.SCM(Single Chip Microcomputer)
又称单片微型计算机,简称单片机,随着大规模集成电路的出现及其发展,计算机的CPU、RAM、ROM、定时数器和多种I/O接口集成在一片芯片上,造成芯片级的计算机。

这个阶段主要是“寻求”单片形态嵌入式系统的最佳体系结构,也是从这个阶段起,嵌入式计算机技术与通用计算机技术走上两条不一样的道路。

2.MCU(Micro Controller Unit)
MCU即微控制器阶段的特征是:“知足”各种嵌入式应用,根据对象系统要求扩展各类外围电路与接口电路,突显其对象的智能化控制能力。它所涉及的领域都与对象系统相关,所以,发展MCU的重任不可避免地落在电气、电子技术厂家的身上。

实际上,MCU、SCM之间的概念在平常工做中并不严格区分,不少时候一律以“单片机”称呼。随着可以运行更复杂软件(好比操做系统)的SoC的出现,“单片机”一般是指不运行操做系统、功能相对单一的嵌入式系统,但这不是绝对的,好比8051上就能够运行RTX51实时操做系统,它的大小只有6kB,相比于嵌入式Linux、Windows CE等操做系统而言比较简单。

3.SoC(System on a Chip)
随着设计与制造技术的发展,集成电路设计从晶体管的集成发展到逻辑门的集成,如今又发展到IP的集成,即SoC(System on a Chip)设计技术。SoC能够有效地下降电子/信息系统产品的开发成本,缩短开发周期,提升产品的竞争力,是将来工业界将采用的最主要的产品开发方式。

虽然SoC一词多年前就已出现,但到底什么是SoC则有各类不一样的说法。在通过了多年的争论后,专家们就SoC的定义达成了一致意见。这个定义虽然不是很是严格,但明确地代表了SoC的特征。

① 实现复杂系统功能的VLSI;

② 采用超深亚微米工艺技术;

③ 使用一个以上嵌入式CPU/数字信号处理器(DSP);

④ 外部能够对芯片进行编程;

⑤ 主要采用第三方IP进行设计。

从上述SoC的特征来看,SoC中包含了微处理器/微控制器、存储器以及其余专用功能逻辑,但并非包含了微处理器、存储器以及其余专用功能逻辑的芯片就是SoC,8051就集成了微处理器、存储器时部件,它不属于SoC。SoC技术被普遍认同的根本缘由,并不在于SoC能够集成多少个晶体管,而在于SoC能够用较短期设计出来,这是SoC的主要价值所在——缩短产品的上市周期。

所以,SoC更合理的定义为:SoC是在一个芯片上因为普遍使用预约制模块IP(Intellectual Property)而得以快速开发的集成电路。

本书介绍的S3C2410/S3C2440就属于SoC,它们集成了处理器、内存管理单元(MMU)、NAND Flash控制器等部件,而处理器是基于ARM公司的IP设计的。

嵌入式软件随着硬件的发展,也发生了很大的变化。在SCM、MCU阶段,嵌入式软件的编写一般由相关行业的电气、电子技术专家编写,计算机专业队伍并无真正进入单片机应用领域。所以,电子技术应用工程师以本身习惯性的电子技术应用模式从事单片机的应用开发。这种应用模式最重要的特色是:软、硬件的底层性和随意性;对象系统专业技术的密切相关性;缺乏计算机工程设计方法。

随着嵌入式处理器性能的快速提升,网络、通讯、多媒体技术得以发展,不少嵌入式设备都具有收发邮件、编写文档、视听等功能,计算机专业人士开始进入嵌入式领域。这造成了明显的技术特色:基于操做系统、以网络、通讯为主的“非嵌入式底层”应用——除要完成的功能比较特殊、性能比较苛刻外,嵌入式应用软件的开发已经与普通软件开发没有差异。实际上,不少基于操做系统的嵌入式应用程序就是先在PC上模拟验证,最后才移入嵌入式设备的。

以一个简单的例子加以说明:之前基于单片机编写的软件,一般是在main函数中定义一个无限循环,而后在里面查询各种输入事件,并做出相应处理,它直接操做硬件;而基于SoC的软件可能是在操做系统上面运行,经过驱动程序操做硬件,这使得软件开发以分工的形式进行。