嵌入式系统设计读书笔记.docx
- 文档编号:3944871
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:53
- 大小:972.35KB
嵌入式系统设计读书笔记.docx
《嵌入式系统设计读书笔记.docx》由会员分享,可在线阅读,更多相关《嵌入式系统设计读书笔记.docx(53页珍藏版)》请在冰豆网上搜索。
嵌入式系统设计读书笔记
嵌入式系统设计读书笔记
第一章嵌入式系统基础知识
1.1嵌入式系统定义及组成
1.1.1嵌入式系统的定义
1.可以说除了桌面计算机和服务器外所有计算设备都属于嵌入式系统,例如从便携式音乐播放器到航天飞机上的实时系统控制都属于嵌入式。
2.简单地通过速度和成本来定义嵌入式系统是困难的,但对于大批量的产品而言,成本常常对系统设计起决定作用。
3.通常,一个嵌入式系统的很多部分相对系统主要功能来说需要较低的性能,因此嵌入式系统和通用PC相比,能够使用一个满足辅助功能的合适的CPU,从而简化了系统设计,降低了成本。
例如,数字电视的机顶盒需要处理每秒以百万兆位计的连续数据,但这些数据处理大部分是由定制的硬件来实现的,如解析、管理和编解码多个频道的数字影像。
4.对于大批量的嵌入式系统,降低成本就成为最主要的问题,这些系统通常只具有几个芯片:
一个高度集成的CPU,一个定制的芯片用于控制其他所有的功能,还有一个存储芯片。
5.对于小批量的嵌入式应用,为了降低开发成本,常常使用PC体系结构,通过限制程序的执行时间或用一个实时操作系统来替换原先的操作系统。
这种情况下,可以使用一个或多个高性能的CPU来替换特殊用途的硬件。
6.嵌入式系统软件通常运行在有限的硬件资源上:
没有硬盘、操作系统、键盘或屏幕。
软件一般都没有文件系统,如果有的话,也会采用Flash驱动器。
如果有人机交互接口的话,也是一个小键盘或液晶显示器。
7.嵌入式系统是以应用为中心、以计算机技术为基础,软件、硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
8.嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。
事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。
1.1.2嵌入式系统发展概述
1.发展历史:
世界上第一个应用的嵌入式系统可以追溯到20世纪60年代中期的阿波罗(AGC,ApolloGuidanceComputer)导航计算机系统.
从单片机的出现到今天各种嵌入式微处理器、微控制器的广泛应用,嵌入式系统少说也有了30多年的历史。
纵观嵌入式系统的发展历程,大致经历了以下4个阶段。
1)无操作系统阶段
最初应用是基于单片机的,大多以可编程控制器的形式出现,具有监测、设备指示等功能,通常应用于各类工业控制和飞机、导弹等武器装备中,一般没有操作系统支持,只能通过汇编语言对系统进行直接控制,运行结束后再清除内存。
这些装置仅仅使用8位CPU芯片来执行一些单线程的程序,还谈不上“系统”的概念。
特点:
系统结构功能单一,处理效率较低,存储容量较小,几乎没有用户接口,但价格低廉,在工控领域广泛应用。
2)简单操作系统阶段
20世纪80年代,随着微电子工艺水平的提高,集成电路(IntegratedCircuit,IC)制造商开始把嵌入式应用中所需要的微处理器、I/O接口、串行接口及RAM、ROM等部件集成到一片VLSI(大规模集成电路VeryLargeScaleIntegratedcircuites)中。
特点:
出现了大量具有高可靠性、低功耗的嵌入式CPU,操作系统虽然还比较简单,但已初步具有了一定的兼容性和扩展性,内核精巧且效率高,主要用来控制系统负载及监控应用程序的运行。
3)实时操作系统阶段
20世纪90年代,在分布控制、柔性制造、数字化通信和信息家电等巨大需求的牵引下,面向实时信号处理算法的数字信号处理器(DSP,DigitalSignalProcessor)产品则向着高速度、高精度、低功耗的方向发展。
随着硬件实时性要求的提高,嵌入式系统软件规模不断扩大,逐渐形成了实时多任务操作系统(Real-timeOperationSystem,RTOS)
特点:
此时的嵌入式操作系统已经具备了文件和目录管理、设备管理、多任务、网络、图形用户界面(GraphicUserInterface,GUI)等功能,并提供了大量的应用程序接口(ApplicationProgrammingInterface,API),从而使应用软件的开发变得更加简单。
4)面向Internet阶段
随着Internet的进一步发展,以及Internet技术与信息家电、工业控制技术等的结合日益紧密,嵌入式设备与Internet的结合是嵌入式系统未来的发展趋势。
2.嵌入式系统的发展趋势
PalmOS掌上电脑操作系统
SOC片上系统(SystemOnChip)
IP核(知识产权核IntellectualPropertyCore,IPCore),是指具有知识产权的、功能具体、接口规范、可在多个集成电路设计中重复使用的功能模块,是实现SOC的基本构件。
IP核对应描述功能行为的不同分为三类,即软核(SoftIPCore)、完成结构描述的固核(FirmIPCore)和基于物理藐视并经过工艺验证的硬核(HardIPCore)。
HDL(HardwareDescriptionLanguage),是硬件描述语言。
顾名思义,硬件描述语言就是指对硬件电路进行行为描述、寄存器传输描述或者结构化描述的一种新兴语言。
RTL寄存器传输(RegisterTransferLevel)
EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
EDA技术的出现,极大地提高了电路设计的效率和可靠性,减轻了设计者的劳动强度。
软核,通常以硬件描述语言HDL文本形式提交给用户,它经过RTL级设计优化和功能验证,但其中不含有任何物理信息,用户可以综合出正确的门电路级设计网表,并可以进行后续设计,具有很大的灵活性,借助于EDA综合工具可以很容易地与其他外部逻辑电路合成一体,根据不同半导体工艺,设计成具有不同性能的器件。
缺点是缺乏对时序、面积和功耗的预见性,而且IP软核以源代码的形式提供,IP知识产权不易保护。
硬核,基于半导体工艺的物理设计,经过工艺验证,具有可保证的性能,由于无需RTL级文件,更易于实现IP保护,缺点是灵活性和可移植性差。
固核,介于软核和硬核之间,除了完成软核所有的设计外,还完成了门级电路综合和时序仿真等设计环节,一般以门级电路网表的形式提供给用户。
IC设计中采用IP复用可以缩短产品的开发周期,提高产品的可靠性。
为了保护IP核的开发者与使用者,同时建立良好的IP核技术基础,全球各界已筹备了许多策略联盟,如EDA联盟、RAPID联盟、VCX联盟与VSIA联盟等,来积极推动IP核的开发、应用及推广。
其中EDA联盟主要由提供继承电路自动化设计的公司所组成,主要以如何更好的EDA软件工具为主,也处理一部分IP核使用标准的问题。
VSIA联盟针对IP核的定义、开发、授权及测试等建立了一个公共的共性规范。
1.1.3嵌入式系统的组成
1.一个嵌入式系统一般都由嵌入式计算机系统和执行装置组成,嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。
执行装置也称为被控对象,如SONY智能机器狗上面集成了多个微小型控制电机和多种传感器。
2.硬件层,包含嵌入式微处理器、存储器(SDRAM、ROM、Flash等)、通用设备接口和I/O接口(A/D、D/A、I/O等)。
在一片嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块,其中操作系统和应用程序都可以固化在ROM中。
1)嵌入式微处理器
它将通用CPU中许多由板卡完成的任务集成到芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。
嵌入式微处理器的体系结构可以采用冯.诺依曼体系结构或哈佛体系结构;指令系统可以选用精简指令系统(ReducedInstructionSetComputer,RISC)和复杂指令集系统CISC(ComplexInstructionSetComputer,CISC)
CISC计算机具有大量的指令和寻址方式,但大多数程序只使用少量的指令就能够运行;
RISC计算机在通道中只包含最有用的指令,确保数据通道快速执行每一条指令,从而提高了执行效率并使CPU硬件结构设计变得更为简单。
据不完全统计,目前全世界嵌入式微处理器已经超过1000多种,体系结构有30多个,其中主流的体系有ARM、MIPS、PowerPC、X86和SH等,但和全球PC市场不同,没有一种嵌入式微处理器可以主导市场,仅以32位产品而言,就有100种以上的嵌入式微处理器。
2)嵌入式存储器
嵌入式系统的存储器包括Cache、主存、辅助存储器。
Cache是一种容量小,速度块的存储器阵列,它位于主存和嵌入式微处理器内核之间,存放的是最近一段时间微处理器使用最多的程序代码和数据。
在需要进行数据读取操作时,微处理器尽可能的从Cache中读取数据,而不是从主存中读取,大大改善系统的性能,提高微处理器和主存之间的数据传输速率,使实时性增强。
一般中高档的嵌入式微处理器会把Cache集成进去。
主存是嵌入式微处理器能直接访问的寄存器,用来存放系统和用户的程序及数据。
它可以位于微处理器的内部和外部,一般片内存储器容量小,速度快,片外存储器容量大。
常用作主存的存储器有:
ROM类:
NORFlash、EPROM和PROM等
RAM类:
SRAM、DRAM和SDRAM等
ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。
ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据
其中NORFlash凭借可擦写次数多、存储速度快、存储容量大、价格便宜优点广泛应用
辅助存储器,用来存放大数据量的程序代码或信息,容量大,但读取速度与主存相比就慢得多,用来长期保存用户的信息
常用外存有:
硬盘、NANDFlash、CF卡、MMC、SD卡等。
3)通用设备和I/O接口
嵌入式系统与外界交互,需要一定的接口。
目前常用的接口有A/D(模/数转换接口)、D/A(数/模转换接口)、I/O接口有RS-232接口(串行通信接口)、Ethernet(以太网接口)、USB(通用串行总线接口)、音频接口、VGA视频输出接口、I2C(现场总线)、SPI(串行外围设备接口)和IrDA(红外线接口)等
3.中间层
中间层也称为硬件抽象层(HardwareAbstractLayer,HAL)或板级支持包(BoardSupportPackage,BSP),它使系统的底层驱动程序与硬件无关,上层软件开发人员无需关心底层硬件的具体情况,根据BSP层提供的接口即可进行开发。
该层一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置等功能。
两个特点:
1)硬件相关性,BSP需要为操作系统提供操作和控制具体硬件的方法。
2)操作系统相关性,不同的操作系统具有各自的软件层次结构,因此,不同的操作系统具有特定的硬件接口形式。
设计一个完整的BSP需要完成两部分工作:
嵌入式系统的硬件初始化以及BSP功能,
设计硬件相关的设备驱动。
嵌入式系统的硬件初始化,分为三个环节,按照自底向上,从硬件到软件的次序依次为:
片级初始化(设置寄存器,从上电默认状态设置成系统所要求的工作状态)、板级初始化(设置处理器外的其他硬件初始化,设置某些软件的数据结构和参数,为随后系统级初始化和应用程序运行建立硬件和软件环境)和系统初始化(以软件为主,主要进行操作系统的初始化,BSP交出控制权给操作系统,让其完成余下的工作,包含加载和初始化与硬件无关的设备驱动程序,建立系统内存区,创建应用程序环境,并将控制权交给应用程序)。
设计硬件相关的设备驱动,尽管BSP中包含硬件相关的设备驱动程序,在系统初始化过程中由BSP将它们与操作系统中通用的设备驱动程序关联起来,并在随后的应用中由通用的设备驱动程序调用。
4.系统软件层,由实时多任务操作系统(Real-timeOperationSystem,RTOS)、文件系统、图形用户接口(GraohicUserInterface,GUI)、网络系统及通用组件模块组成。
1)嵌入式操作系统
EOS(EmbeddedOperatingSystem)除了具备一般操作系统最基本的功能,如任务调度、同步机制、中断处理、文件处理等外,还有以下特点:
可裁剪,支持开放性和可伸缩性的体系结构。
强实时性
统一的接口,提供设备统一的驱动接口
操作方便、简单、提供友好的图形GUI和图形界面,易学易用
强大的网络功能,支持TCP/IP及其他协议
强稳定性,若交互性,嵌入式系统一旦开始运行就不需要用户过多的参与。
固化代码,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的ROM中。
良好的移植性
2)文件系统
主要提供文件存储、检索和更新等功能,一般不提供保护和加密等安全机制,它以系统调用和命令方式提供文件的各种操作,主要有:
设置、修改对文件和目录的存取权限
提供建立、修改、改变和删除目录等的服务
提供创建、打开、读写、关闭和撤销文件等服务。
此外,还有以下特点:
兼容性,嵌入式文件系统通常支持集中标准的文件系统,如FAT32、JFFS2、YAFFS等
实时文件系统,一般采用连续的方式存储文件。
可裁剪、可配置,选择所需的存储介质,配置可同时打开的最大文件数等
支持多种存储设备。
3)GUI图形用户接口
极大地方便了非专业用户的使用,人们从此不再需要死记硬背大量的命令,取而代之的是可以通过窗口、菜单、按键等方式方便地进行操作。
而嵌入式GUI又与PC机上的GUI有着明显的不同,嵌入式系统的GUI具有几方面要求:
轻型、占用资源少、高性能、便于移植、可配置等特点。
4)应用软件层
由基于实时系统开发的应用程序组成,用来实现对被控对象的控制功能能,功能层是面向被控对象和用户的,为方便操作,往往需要提供一个友好的人机界面。
1.1.4实时系统
1.实时系统与通用系统不同的是,通用系统一般追求的是系统的平均响应时间和用户使用系统的方便,而实时系统主要考虑的是系统在最坏情况下的系统行为。
2.实时系统(Real-timeOperatingSystem,RTOS)能够在指定或者确定的时间内完成系统功能和对外部或内部、同步或异步时间做出响应的系统。
3.实时系统特点
1)时间约束性
2)可预测性,除了要求硬件延迟的可预测性以外,还要求软件系统的可需侧性,包括应用程序的响应时间是可预测的,以及操作系统的可预测性,即调度函数等开销是有界的。
3)可靠性
4)与外部环境的交互作用性,计算机子系统一般是控制系统,它必须在规定的时间内对外部请求做出反应,外部物理环境往往被控子系统,两者相互作用构成完整的实时系统,大多数控制子系统必须连续运转以保证子系统的正常工作或准备对任何异常行为采取动作。
4.实时系统调度
给定一组实时任务和系统资源,确定每个任务何时何地执行的整个过程就是调度。
在非实时系统中,调度主要目的是缩短系统平均响应时间,提高系统资源利用率,或优化某一项指标,在实时系统中,调度的目的是要尽可能地保证每个任务满足它们的时间约束,及时对外部强求做出响应。
抢占式调度,高优先级任务一旦准备就绪,可在任何时候抢占低优先级任务的执行。
而非抢占式调度指不允许任务在执行期间被中断。
优点是上下文切换少,缺点是有效资源利用率低,可调度性不好。
静态表驱动策略(像列车时刻表,调度器根据表启动相应的任务),调度器功能被弱化,只具有分派器的功能。
优先级驱动策略,又分为静态优先级调度策略和动态优先级调度策略。
5.实时系统分类
强实时,航天、核工业等关键领域,否则造成生命财产损失和生态渤海等。
弱实时,虽然提出了时间要求,但实时任务偶尔违反这种需求不会造成严重影响。
6.实时任务分类
在实时系统中,一个应用通常由一组任务构成,每个任务完成应用中的一部分功能,组合后为用户提供特定的服务,根据任务的周期性,分为3类:
周期任务、偶发任务、非周期任务(随机到达系统的任务)。
如果一个任务未能在截止期限前完成,那么称该任务超时,以超时影响又分4类:
强实时任务,如果不能及时完成,会对系统造成不可估量的损失;
准实时任务,允许任务超时,若超时,则该任务计算结果没有任何意义。
弱实时任务,允许超时,但超时后的计算结果仍有一些意义,但随着超时时间的增加而下降。
弱-强实时任务,允许周期任务的一些任务超时,但这些超时任务实例的分布应满足一定的规律性,这种要求称为超时分布约束,若不满足约束,则系统动态失效。
7.目前很多实时系统遵循Posix实时扩展的工业标准,如RT-Linux等。
实时系统一般分为:
小而快速的专用内核,如uC/OS;通用操作系统的实时扩展,如RTLinux,基于组件的内核,如OS-Kit、Coyote、2K、MMLite等,基于QoS(实时系统服务质量)的内核等。
8.实时系统的反应模型体现出它的通用结构模型,即一般由三类任务组成:
数据采集管理任务、数据处理任务、执行机构管理任务,一般的流程是数据采集任务实现传感器数据的采集,数据处理任务处理采集的数据,并把加工后的数据送到执行机构执行。
1.2微处理器体系结构
1.2.1冯.诺依曼与哈佛结构
1.2.1.1冯.诺依曼结构
1.也称普林斯顿结构,将程序指令存储器和数据存储器合并在以夫妻的存储器结构,即程序和数据共用一个存储空间,程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,采用单一的地址及数据总线,程序指令和数据的宽度想呕吐能够。
处理器执行指令时,先从存储器读取指令解码,再取操作数执行运算,高速运算时,在传输通道会出现瓶颈效应
2.冯.诺依曼结构的计算机由CPU和存储器构成,程序计算器(PC)是CPU内部指示指令和数据存放位置的寄存器。
CPU通过程序计数器提供的地址信息,对存储器进行寻址,找到所需要的指令或数据,然后对指令进行译码,最后执行指令规定的操作。
3.目前使用冯.诺依曼结构的CPU和微控制器有很多,其中包括英特尔公司的8086及其他CPU,ARM公司的ARM7、MIPS公司的MIPS处理器。
1.2.1.2哈佛结构
1.哈佛结构将程序指令存储和数据存储分开的存储器结构,是一种并行体系结构,主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址、独立访问。
与两个存储器相对应的是系统中的4套总线:
程序的数据总线和地址总线,数据的数据总线与地址总线。
这种分离的程序总线和数据总线可允许在一个机器周期内溶蚀获得指令字(来自程序存储器)和操作数(来自数据存储器),从而提高执行速率,又由于程序和数据存储器在两个分开的物理空间中,因此取指和执行能完全重叠。
2.哈佛结构CPU通常具有较高的执行效率,目前使用哈佛结构的CPU和微控制器有很多,除了所有的DSP处理器,还有摩托罗拉的MC68系列、Zilog公司的Z8系列、ATMEL公司的AVR系列和ARM公司的ARM9、ARM10和ARM11等。
1.2.2CISC与RISC
1.2.2.1复杂指令集计算机CISC
1.ComplexInstructionSetComputer,早期的计算机部件非常昂贵,主频低,运算速度慢,为了提高运算速度,人们不得不将越来越多的复杂指令加入到指令系统中,逐渐形成了复杂指令集计算机体系。
为了在有限的指令长度内实现更多的指令,人们又设计了操作码扩展,先决条件是减少地址码,于是设计师又发明了各种寻址方式,如基址寻址、相对寻址等,以最大限度地压缩地址码产度,为操作码留出空间,Intel公司的X86系列CPU是典型的CISC体系结构,这些复杂指令减少了程序设计语言和机器语言之间的语意差别,而且简化了编译器结构
2.为了支持复杂指令集,CISC通常包括一个复杂的数据通路和一个微程序控制器(一个微程序存储器、一个微程序计数器(MicroPC)、地址选择逻辑构成)。
微程序存储器中的每一个字都表示一个控制字,并且包含了一个时钟周期内所有数据通路控制信号的值,,这就意味着控制字的每一位表示一个数据通路控制线的值。
每个处理器指令都由一系列的控制字组成。
3.当从内存中取出这样的一条指令时,首先把它放在指令寄存器中,然后地址选择逻辑根据它来确定微程序存储器中相应的控制字顺序起始地址。
当把该起始地址放到MicroPC中后,就从微程序内存中找到相应的控制字,并利用它在数据通路中把数据从一个寄存器传送到另一个寄存器。
由于MicroPC中的地址并发递增来指向下个控制字,因此对于序列中每个控制器都会重复一遍这个步骤,最终执行完最后一个控制字时,就从内存中取出一条新的指令,整个过程重复进行。
4.由此可见,控制字的数量及时钟周期的数目对于每一条指令都可以是不同的,因此,CISC中很难实现指令流水操作。
由于指令流水和短的时钟周期都是快速执行程序的必要条件,所以CISC体系结构对于高效处理器而言不太合适。
5.CISC体系结构计算机存在的问题
1)指令的2/8规律,大概有20%的比较简单的指令被反复使用,使用量约占整个程序的80%。
2)VLSI制造工艺要求CPU控制逻辑的规整性,而CISC处理器,为实现大量复杂的指令,控制逻辑极不规整,给VLSI工艺造成很大困难。
此外,70年代后期开始,大量使用DRAM做主存储器,使主存与控制存储器的速度相当,从而使许多简单指令没必要用微程序来实现。
而复杂的指令,用微程序实现和用简单指令组成的子程序实现已经没有多大区别。
3)为实现复杂的指令,不仅增加了硬件的复杂程序,而且使指令的执行周期大大加长,据统计,一般CISC处理器的指令平均执行周期都在4以上,有些在10以上,如Intel公司的8088.
1.2.2.2精简指令集计算机RISC
1.RISC的产生,1975年IBM公司开始研究指令系统的合理性问题,并于1979年研制出一种用于电话交换系统的32位小型计算机IBM801,它有120条指令,工作速度为10MIPS,这是世界上第一台采用RISC思想的计算机。
2.RISC发展,1983年后,一些中、小型公司开始推出RISC产品,由于其具有高性价比,已成为当今计算机发展不可逆转的趋势。
一些发展较早的大公司还有考虑其他因素,因为两套指令不兼容,因此它们在CISC上开发的大量软件如何转到RISC平台上是首先要考虑的,而且这些操作系统的专用性很强,又比较复杂,给软件移植带来很大的麻烦,而SUN微系统公司,因其以UNIX操作系统作为基础,软件移植比较容易,因此工作重点很快从CISC转移到RISC。
3.在CISC市场上占有率最高的Intel公司和Motorola公司也进军RISC领域,IBM公司、Motorola公司和Apple公司联合发展PowerPC芯片,HP公司和Intel公司联合开发代号为Merced的微处理器。
4.RISC处理器的数据通路通常由一个大的寄存器文件(包含程序计算中所有的操作数和结果)和一个ALU组成,通过Load指令将数据放到寄存器文件,通过Store指令将其放回到内存。
当RISC执行一序列指令时,指令管道首先将指令放到指令寄存器中,然后将该指令解码并取出寄存器文件中的操作数,最
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 设计 读书笔记
![提示](https://static.bdocx.com/images/bang_tan.gif)