还剩16页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
·16··16·基于ARM嵌入式系统接口技术·17··17·第1章嵌入式系统导论蒃袀节莃螁衿羁膅蚇袈肄莁薃袇膆膄葿袆袆荿莅羅羈膂蚄羄肀莇薀羄节膀薆羃羂蒆蒂羂肄艿螀羁膇蒄蚆羀艿芇薂聿罿蒂蒈蚆肁芅莄蚅膃蒁蚃蚄袃芃虿蚃肅蕿薅蚂膈莂蒁蚁芀膄蝿蚁羀莀蚅蚀肂膃薁蝿膄莈蒇螈袄膁莃螇羆莇螂螆膈艿蚈螆芁蒅薄螅羀芈蒀螄肃蒃莆螃膅芆蚅袂袅蒁薁袁羇芄蒇袀腿蒀蒃袀节莃螁衿羁膅蚇袈肄莁薃袇膆膄葿袆袆荿莅羅羈膂蚄羄肀莇薀羄节膀薆羃羂蒆蒂羂肄艿螀羁膇蒄蚆羀艿芇薂聿罿蒂蒈蚆肁芅莄蚅膃蒁蚃蚄袃芃虿蚃肅蕿薅蚂膈莂蒁蚁芀膄蝿蚁羀莀蚅蚀肂膃薁蝿膄莈蒇螈袄膁莃螇羆莇螂螆膈艿蚈螆芁蒅薄螅羀芈蒀螄肃蒃莆螃膅芆蚅袂袅蒁薁袁羇芄蒇袀腿蒀蒃袀节莃螁衿羁膅蚇袈肄莁薃袇膆膄葿袆袆荿莅羅羈膂蚄羄肀莇薀羄节膀薆羃羂蒆蒂羂肄艿螀羁膇蒄蚆羀艿芇薂聿罿蒂蒈蚆肁芅莄蚅膃蒁蚃蚄袃芃虿蚃肅蕿薅蚂膈莂蒁蚁芀膄蝿蚁羀莀蚅蚀肂膃薁蝿膄莈蒇螈袄膁莃螇羆莇螂螆膈艿蚈螆芁蒅薄螅羀芈蒀螄肃蒃莆螃膅芆蚅袂袅蒁薁袁羇芄蒇袀腿蒀蒃袀节莃螁衿羁膅蚇袈肄莁薃袇膆膄葿袆袆荿莅羅羈膂蚄羄肀莇薀羄节膀薆羃羂第1章嵌入式系统导论随着社会信息化的日益加强,计算机和网络已经全面渗透到日常生活的每一个角落对于每个人来说,需要的已经不仅仅是那种放在桌面上处理文档、进行工作管理和生产控制的计算机“机器”任何一个普通人都可能拥有大小不一的、形状各异的、使用嵌入式技术的电子产品,小到MP
3、PDA等微型数字化产品,大到网络家电、智能家电、车载电子设备等目前,各种各样的新型嵌入式系统设备在应用数量上已经远远超过了通用计算机在工业和服务领域中,使用嵌入式技术的数字机床、智能工具、工业机器人和服务机器人正在逐渐改变着传统的工业生产和服务方式本章主要内容嵌入式系统的概念嵌入式系统的特点、分类及应用领域主流嵌入式微处理器和嵌入式操作系统嵌入式系统设计方法
1.1概述
1.
1.1什么是嵌入式系统1.嵌入式系统的定义借用英国的电气工程师学会(IEE)的一个定义(http://___.iee.org/policy/areas/y2k/w
43.cfm)嵌入式系统是“控制、监视或者辅助设备、机器和车间运行的装置”2.嵌入式系统的特性嵌入式系统具备下列特性
(1)通常只执行特定功能,这一点与一般桌上型办公设备或数据库系统有很大区别
(2)以微型计算机与周边器件构成核心,其规模可在大范围内变化,如从8051芯片到x86芯片
(3)要求严格的时序和稳定性,这是因为在机器控制的大型系统中,程序运行稍有差错则可能使得整个系统失去控制,甚至造成灾害
(4)全自动操作循环嵌入式系统是计算机软件与硬件的综合体,它以应用为中心,以计算机技术为基础,软硬件可裁剪,从而能够适应实际应用中对功能、可靠性、成本、体积和功耗等严格要求的专用计算机系统嵌入式计算机在应用数量上远远超过了各种通用计算机一台通用计算机的外部设备中就包含了5~10个嵌入式微处理器,键盘、鼠标、软驱、硬盘、显示卡、显示器、调制解调器、网卡、声卡、打印机、扫描仪、数码相机和U__集线器等均是由嵌入式处理器进行控制的
1.
1.2嵌入式系统的特点及分类1.嵌入式系统的特点
(1)系统内核小由于嵌入式系统一般是应用于小型电子装置的,系统资源相对有限,所以内核较传统的操作系统要小得多如ENEA公司的OSE分布式系统,内核只有5KB,而Windows的内核则要大得多
(2)专用性强嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧密,一般要针对硬件进行系统的移植,即使在同一品牌、同一系列的产品中也需要根据系统硬件的变化和增减不断进行修改同时,针对不同的任务,往往需要对系统进行较大修改程序的编译下载要和系统相结合,这种修改和通用软件的“升级”是完全不同的两个概念
(3)系统精简嵌入式系统一般没有系统软件和应用软件的明显区分,不要求其功能的设计及实现过于复杂,这样一方面有利于控制系统成本,同时也有利于实现系统安全
(4)高实时性的操作系统软件是嵌入式软件的基本要求,而且软件要求固化存储,以提高速度软件代码要求具有高质量和高可靠性
(5)嵌入式软件__要想走向标准化,就必须使用多任务的操作系统嵌入式系统的应用程序可以没有操作系统而直接在芯片上运行;但是为了合理地调度多任务,利用系统资源、系统函数以及专家库函数接口,用户必须自行选配RTOS(Real Time OperatingSystem)__平台,这样才能保证程序执行的实时性、可靠性,并减少__时间,保障软件质量
(6)嵌入式系统__需要专门的__工具和环境由于嵌入式系统本身不具备自主__能力,即使设计完成以后,用户通常也不能对其中的程序功能进行修改,因此必须有一套__工具和环境才能进行__,这些工具和环境一般基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合__示波器等__时往往有主机和目标机的概念,主机用于程序的__,目标机作为最后的执行机,__时需要两者交替结合进行2.嵌入式系统的分类由于嵌入式系统由硬件和软件两大部分组成,所以其分类也可以从硬件和软件进行划分
(1)嵌入式系统硬件从硬件方面来讲,嵌入式系统的核心部件是嵌入式处理器据不完全统计,全世界嵌入式处理器的品种数量已经超过1000多种,流行体系结构有30多个,其中8051体系占大多数生产8051单片机的半导体厂家有20多个,共350多种衍生产品,仅PHILIPS公司就有近100种目前嵌入式处理器的寻址空间为64~256MB,处理速度为
0.1~2000MIPS近年来嵌入式微处理器的主要发展方向是小体积、高性能、低功耗专业分工也越来越明显,出现了专业的IP核(In____ectualPropertyCore,知识产权核)供应商,如ARM和MIPS等,它们提供__、高性能的嵌入式微处理器内核,由各个半导体厂商生产面向各个应用领域的芯片一般可以将嵌入式处理器分成4类,即嵌入式微处理器(MicroPro__ssorUnit,MPU)、嵌入式微控制器(MicroControllerUnit,MCU)、嵌入式DSP处理器(DigitalSignalPro__ssor,DSP)和嵌入式片上系统(SystemOnChip,SOC),如图1-1所示图1-1嵌入式硬件系统分类
(2)嵌入式系统软件嵌入式系统软件一般由嵌入式操作系统和应用软件组成操作系统是连接计算机硬件与应用程序的系统程序操作系统有两个基本功能一是使计算机硬件便于使用,二是高效__和正确地使用计算机的资源操作系统有4个主要任务进程管理、进程间通信与同步、内存管理和I/O资源管理目前,嵌入式系统软件主要有两大类,即实时系统和分时系统,如图1-2所示图1-2嵌入式软件系统分类实时操作系统是指具有实时性,能支持实时控制系统工作的操作系统实时操作系统的首要任务是调度一切可利用的资源完成实时控制任务,其次才是着眼于提高计算机系统的使用效率,其重要特点是通过任务调度来使重要__在规定的时间内作出正确的响应实时操作系统与分时操作系统有着明显的区别具体地说,对于分时操作系统,软件的执行在时间上的要求并不严格,时间上的延误或者时序上的错误,一般不会造成灾难性的后果而对于实时操作系统,主要任务是对__进行实时的处理,虽然__可能在无法预知的时刻到达,但是软件必须在__随机发生时,在严格的时限内作出响应(系统的响应时间)即使是系统处在尖峰负荷下也应如此,系统时间响应的超时就意味着致命的失败另外,实时操作系统的重要特点是具有系统的可确定性,即系统能对运行的最好和最坏情况作出精确的估计Stankovic给出了实时系统的定义,“实时系统是这样一种系统,即系统执行的正确性不仅取决于计算的逻辑结果,而且还取决于结果的产生时间”实时系统又可以分为硬实时系统和软实时系统硬实时和软实时的区别在于对外界的__作出反应的时间硬实时系统必须对__作出及时的反应,绝对不能错过__处理的时限在硬实时系统中如果出现了没有及时反应的情况就意味着巨大的损失和灾难比如说__飞机的控制系统如果出现故障,后果将不堪想象软实时系统是指如果在系统负荷较重时,允许发生错过时限而且不会造成太大的危害的情况如液晶屏刷新允许有短暂的延迟硬实时系统和软实时系统实现的区别主要是在选择调度算法上对于软实时系统,选择基于优先级调度的算法足以满足软实时系统的需求,而且可以提供高速的响应和大的系统吞吐量;而对硬实时系统来说,需要使用的算法就应该是调度方式简单,反应速度快的实时调度算法3.嵌入式系统的应用嵌入式系统主要应用于以下几个大的方面
(1)国防武器设备如导弹瞄准、雷达识别和电子对抗设备等
(2)通信信息设备如路由器、程控交换机、____和调制解调器等
(3)过程控制即对生产过程中各种动作流程的控制,这种控制是在对被控对象和环境进行不断观测的基础上作出及时反应的,如流水线控制和金属__控制等
(4)智能仪器如网络分析仪、示波器和医疗仪器等
(5)消费产品各式各样的信息家电产品,如数字电视和微波炉等
(6)生物微电子技术这是当今嵌入式技术的前沿应用,有着广阔的市场空间
1.2嵌入式微处理器和嵌入式操作系统
1.
2.1嵌入式微处理器嵌入式微处理器有许多种流行的处理器核,芯片生产厂家一般都基于这些处理器核生产不同型号的芯片本节将主要介绍以下几种嵌入式处理器的架构以及典型芯片制造商生产的芯片型号1.ARM/StrongARMARM(Advan__dRISC__chines)公司是全球领先的16/32位RISC(精简指令集计算机)微处理器知识产权设计供应商ARM公司通过转让高性能、低成本、低功耗的RISC微处理器、__和系统芯片设计技术给合作伙伴,使他们能用这些技术来生产各具特色的芯片ARM已成为__通信、手持设备和多媒体数字设备嵌入式解决方案的RISC标准ARM处理器有三大特点体积小、低功耗、低成本而高性能,16/32位双指令集,全球的合作伙伴众多2.MIPSMIPS(Micropro__ssorwithoutInterlockedPipelineStages)是一种处理器内核标准,它是由MIPS技术公司__的MIPS技术公司是一家设计制造高性能、高档次的嵌入式32位和64位处理器的厂商,在RISC处理器方面占有重要地位2000年,MIPS公司发布了针对MIPS324Kc的新版本以及未来64位MIPS6420Kc处理器内核MIPS技术公司既__MIPS处理器结构,又自己生产基于MIPS的32位/64位芯片为了使用户更加方便地应用MIPS处理器,MIPS公司推出了一套集成的__工具,称为MIPSIDF(IntegratedDevelopmentFramework),特别适用于嵌入式系统的__3.PowerPCPowerPC架构的特点是可伸缩性好,方便灵活PowerPC处理器品种很多,既有通用的处理器,又有嵌入式控制器和内核,应用范围非常广泛,从高端的工作站、服务器到桌面计算机系统,从消费类电子产品到大型通信设备等各个方面目前PowerPC__微处理器与嵌入式微处理器的主频从25MHz到700MHz不等,它们的能量消耗、大小、整合程度和__差异悬殊,主要产品模块有主频350~700MHzPowerPC750CX和750CXe以及主频400MHz的PowerPC440GP等嵌入式的PowerPC405(主频最高为266MHz)和PowerPC440(主频最高为550MHz)处理器内核可以用于各种集成的系统芯片(SOC)设备上,在__、金融和其他许多行业具有广泛的应用4.x86x86系列处理器对读者来说应该是最熟悉的,它起源于Intel架构的8080,后来发展到
286、___和___,直到现在的Pentium
4、Athlon和AMD的64位处理器Hammer从嵌入式市场来看,___DX是当时和ARM、68K、MIPS和SuperH齐名的五大嵌入式处理器之一,8080是第一款主流的处理器今天的Pentium和当初的8080使用相同的指令集,这有利也有弊,利是可以保持兼容性,至少10年前写的程序在现在的机器上还能运行;弊是限制了CPU性能的提高5.68K/ColdFireMotorola68000(68K)是出现得比较早的一款嵌入式处理器,68K采用的是CISC(复杂指令集计算机)结构,与现在的PC指令集保持了二进制兼容CISC是个人电脑CPU常用的,Intel、AMD和VIA都采用了CISC指令集,只有Apple电脑中的Power PC使用了RISC架构最初使用CISC指令集是有道理的,因为CISC指令数量少,执行效率更高,而且当时的CPU时钟频率不同,没有牵涉到现在的超标量和超流水线的问题RISC是精简指令集,每条指令长度都一样,有利于简化译码结构,减少处理器的晶体管数量,这对于嵌入式处理器来说是很重要的1994年,Motorola公司又推出了基于RISC结构的68K/ColdFire系统微处理器目前基于该架构的嵌入式微处理器主要有MCF5272,它基于第二代ColdFireV2核心,在66MHz下操作速度为63Dhrystone
2.1MIPS,是迄今最高的V2性能
1.
2.2嵌入式操作系统国外和国内常用的实时操作系统有以下几种1.国外著名的实时操作系统国外实时操作系统已经从简单走向成熟,有代表性的产品主要有VxWorks、QNX、PalmOS和Windows__等,它占据了机顶盒和PDA等绝大部分市场其实,实时操作系统并不是一个新生的事物,从20世纪80年代起,国际上就有一些IT__和公司开始进行商用嵌入式系统和专用操作系统的研发
(1)VxWorksVxWorks操作系统是美国WindRiver公司于1983年设计__的一种实时操作系统VxWorks拥有良好的持续发展能力、高性能的内核以及良好的用户__环境,在实时操作系统领域占据一席之地它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、__和__等高精尖技术及实时性要求极高的领域中,如卫星通信、军事演习、导弹制导和飞机导航等在美国的F-
16、FA-18战斗机、B-2隐形轰炸机和爱国者导弹上,甚至1997年4月在火星表面登陆的火星探测器上也使用了VxWorks它是目前嵌入式系统领域中使用最广泛、市场占有率最高的系统它支持多种处理器,如x
86、i
960、SunSparc、MotorolaMC68xxx、MIPSRX
000、PowerPC、StrongARM和ARM等大多数的VxWorksAPI是专有的
(2)QNXQNX是一个实时的、可扩充的操作系统它部分遵循POSIX相关标准,如POSIX.1b实时扩展它提供了一个很小的微内核以及一些可选的配合进程其内核仅提供进程调度、进程间通信、底层网络通信和中断处理4种服务,其进程在__的地址空间中运行所有其他操作系统服务都实现为协作的用户进程,因此QNX内核非常小巧(QNX
4.x大约为12KB),而且运行速度极快这个灵活的结构可以使用户根据实际的需求,将系统配置成微小的嵌入式操作系统或包括几百个处理器的超级虚拟机操作系统
(3)Palm OS3Com公司的Palm OS在掌上电脑和PDA市场上占有很大的市场份额它有开放的操作系统应用程序接口(API),__商可以根据需要自行__所需的应用程序目前共有3500多个应用程序可以运行在PalmPilot上,其中大部分应用程序均为其他厂商和个人所__,从而使PalmPilot的功能得以不断增多这些软件包括计算器、各种游戏、电子宠物和地理信息等在__环境方面,可以在Windows95/98/NT以及__cintosh下__Palm Pilot DesktopPalm Pilot可以与流行的PC平台上的应用程序(如Word和Ex__l等)进行数据交换
(4)Windows__MicrosoftWindows__是从整体上为资源有限平台设计的多线程、完整优先权和多任务的操作系统它的模块化设计允许它对从掌上电脑到专用的工业控制器用户电子设备进行定制操作系统的基本内核至少需要200KB的ROM空间
(5)LynxOSLynxReal-timeSystems的LynxOS是一个分布式、嵌入式、可规模扩展的实时操作系统,它遵循POSIX.1a、POSIX.1b和POSIX.1c标准LynxOS支持线程概念,提供256个全局用户线程优先级;另外还提供一些传统的、非实时系统的服务特征,包括基于调用需求的虚拟内存、一个基于Motif的用户图形界面、与工业标准兼容的网络系统以及应用__工具
(6)嵌入式Linux随着Linux的迅速发展,嵌入式Linux现在已经有许多版本,包括强实时的嵌入式Linux(如新墨西哥工学院的RT-Linux和堪萨斯大学的KURT-Linux)和一般的嵌入式Linux版本(如μCLinux和PocketLinux等)其中,RT-Linux通过把通常的Linux任务优先级设为最低,而所有的实时任务的优先级都高于它,以达到既兼容通常的Linux任务又保证强实时性能的目的而μCLinux是针对没有MMU的处理器而设计的它不能使用处理器的虚拟内存管理技术,它对内存的访问是直接的,所有程序中访问的地址都是实际的物理地址它专为嵌入式系统做了许多小型化的工作由于嵌入式系统越来越追求数字化、网络化和智能化,因此原来在某些设备或领域中占主导地位的软件系统越来越难以为继,因为要达到上述要求,整个系统必须是开放的,提供标准的API,并且能够方便地与众多第三方的软硬件沟通Linux主要特点如下
①Linux是开放源码的,不存在黑箱技术,遍布全球的众多Linux爱好者又是Linux__的强大技术后盾
②Linux的内核小、功能强大、运行稳定、系统健壮、效率高
③Linux易于定制裁剪,在__上极具竞争力
④Linux不仅支持x86CPU,还可以支持其他数十种CPU芯片
⑤有大量的且不断增加的__工具,这些工具为嵌入式系统的__提供了良好的__环境
⑥Linux沿用了UNIX的发展方式,遵循国际标准,可以方便地获得众多第三方软硬件厂商的支持
⑦Linux内核的结构在网络方面是非常完整的,它提供了对以太网、快速以太网、千兆以太网、无线网络、令牌网、光纤网和卫星网等多种联网方式的全面支持
⑧在图像处理、文件管理及多任务支持等诸多方面,Linux的表现也都非常出色,它不仅可以充当嵌入式系统的__平台,本身也是嵌入式系统应用__的好工具
(7)μC/OSμC/OS是源码公开的实时嵌入式操作系统,μC/OS-II的主要特点如下
①公开源代码,系统透明,很容易就能把操作系统移植到各个不同的硬件平台上
②可移植性强,μC/OS-II绝大部分源码是用ANSIC写的,可移植性(Portable)较强而与微处理器硬件相关的那部分是用汇编语言写的,已经压到最低限度,使μC/OS-II便于移植到其他微处理器上
③可固化,μC/OS-II是为嵌入式应用而设计的,这就意味着,只要__者有固化(RO__ble)手段(C编译、连接、下载和固化),μC/OS-II即可嵌入到__者的产品中成为产品的一部分
④可裁剪,通过条件编译可以只使用μC/OS-II中应用程序需要的那些系统服务程序,以减少产品中的μC/OS-II所需的存储器空间(RAM和ROM)
⑤占先式,μC/OS-II完全是占先式(Preemptive)的实时内核,这意味着μC/OS-II总是运行就绪条件下优先级最高的任务大多数商业内核也是占先式的,μC/OS-II在性能上和它们类似
⑥实时多任务,μC/OS-II不支持时间片轮转调度法(Round-roblinSche____ng)该调度法适用于调度优先级平等的任务
⑦可确定性,全部μC/OS-II的函数调用与服务的执行时间具有可确定性由于μC/OS-II仅是一个实时内核,这就意味着它不像其他实时操作系统那样,它提供给用户的只是一些API函数接口,有很多工作往往需要用户自己去完成把μC/OS-II移植到目标硬件平台上也只是系统设计工作的开始,后面还需要针对实际的应用需求对μC/OS-II进行功能扩展,包括底层的硬件驱动、文件系统和用户图形接口(GUI)等,从而建立一个实用的RTOS2.国内著名的实时操作系统国内的实时操作系统研究__有两种类型一类是中国自主__的实时操作系统,如电子科技大学嵌入式实时教研室和科银公司联合研制__的实时操作系统Delta OS(道系统)、凯思公司的HopenOS(女娲计划)、中科院北京软件工程研制中心__的CASSPDA以及浙江大学自行研制__的嵌入式操作系统HBOS等;另一类是基于国外操作系统二次__完成的,这类操作系统大多是专用系统,在此就不进行介绍了
(1)Delta OSDelta OS是电子科技大学嵌入式实时教研室和科银公司(专门从事嵌入式__)联合研制__的全中文的嵌入式操作系统,提供强实时和嵌入式多任务的内核,任务响应时间快速、确定,不随任务负载大小而改变,绝大部分的代码由C语言编写,具有很好的移植性它适用于内存要求较大、可靠性要求较高的嵌入式系统,主要包括嵌入式实时内核DeltaCORE、嵌入式TCP/IP组件DeltaNET、嵌入式文件系统DeltaFILE以及嵌入式图形接口DeltaGUI等同时,它还提供了一整套的嵌入式__套件LamdaTOOL,是国内嵌入式领域内不可多得的一整套嵌入式__应用解决方案,已成功应用于通信、网络和信息家电等多个应用领域
(2)HopenOSHopenOS是凯思集团自主研制__的实时操作系统,由一个体积很小的内核及一些可以根据需要进行定制的系统模块组成其核心HopenKernel的规模一般为10KB左右,占用空间小,并具有实时、多任务、多线程的系统特征
(3)EEOSEEOS是中科院计算所____的开放源码的实时操作系统该实时操作系统重点支持p-J__a,要求一方面小型化,一方面能重用Linux的驱动和其他模块中科院计算所将在2~3年内持续加大投资,以期将其扩展成能力强、功能完善且稳定、可靠的嵌入式操作系统平台EEOS包含E2实时操作系统、E2工具链及E2仿真__环境的完整环境
(4)HBOSHBOS系统是浙江大学自主研制__的全中文实时操作系统它具有实时、多任务等特征,能提供浏览器、网络通信和图形窗口等服务;可供进行一定的定制或二次__;能为应用软件__提供API接口支持;可用于信息家电、智能设备和仪器仪表等领域__应用在HBOS系统平台下,已经成功地__出机顶盒和数据采集等系统3.操作系统选择表1-1为几种国内流行的嵌入式操作系统的比较表1-1几种国内流行的嵌入式操作系统的比较类型性能PalmOSWindows__
3.0嵌入式Linux大小核心几十千字节,整个嵌入式环境也不大核心为占500KB的ROM和250KB的RAM整个Windows__操作系统包括硬件抽象层(HAL,HardwareAbstractionLayer)、Windows__Kernel、User、GDI、文件系统和数据库,大约共
1.5MB核心从几十KB到500KB,整个嵌入式环境最小在100KB左右,并且以后还将更小可__定制可以方便地__定制用户__定制不方便,受Microsoft公司限制较多用户可以方便地__定制,可___地卸装用户模块,不受任何限制互操作性可操作性强互操作性较强,Windows__可通过OEM的许可协议用于其他设备互操作性很强实用性比较好比较好很好适用的应用领域应用领域较广,特别适用于掌上电脑的__应用领域较广,Windows__是为新一代非传统的PC设备而设计的,这些设备包括掌上电脑、手提电脑以及车载电脑由于Linux内核结构及功能等原因,嵌入式Linux应用领域非常广泛,特别适用于进行信息家电的__
1.3嵌入式系统设计过程本节主要介绍嵌入式系统设计的一般过程和嵌入式系统设计的主要步骤在此将采用自顶向下的方法,从对系统最抽象的描述开始,一步一步地推进到细节内容如图1-3所示的设计过程中,首先从系统需求开始,然后是规格说明,在这一步中对用户需求进行更加细致的描述,但是规格说明只对系统如何工作进行了描述,这些描述并不涉及它的组成系统内部的详细构造要在__系统的体系结构时才能展现出来,这一阶段以大的构件为单位给出了系统的结构一旦知道了需要的构件,就可以设计这些构件,包括软件模块和任何所需要的专用硬件模块在这些构件的基础上,可以构造出所需要的完整系统图1-3设计过程的主要抽象层次但是从设计过程的这些步骤中只可以观察到嵌入式系统全貌的一个轴线,还需要考虑如下一些设计的重要因素
(1)生产成本
(2)性能(总体的速度和时限)
(3)功耗
(4)用户界面另外还必须考虑在系统设计的每一步骤中所要完成的任务,在设计过程的每一步骤中再添加以下细节
(1)必须在设计的每一个阶段对设计进行分析,以决定如何才能满足规格说明要求
(2)必须不断地细化设计,添加细节
(3)必须不断地核实设计,保证它依然满足所有的系统目标,如成本、速度等
1.
3.1需求分析显然,在设计一个系统之前,必须清楚在设计什么在设计的最初阶段截取这些信息,以此来设计系统的体系结构和构件这一阶段的任务通常通过两个过程来实现,首先,从客户那里收集系统的非形式描述(这叫做需求);然后,对需求进行提炼,得到系统的规格说明,这些规格说明中包含了进行系统体系结构设计所需要的足够信息1.需求与规格说明区分需求和规格说明是必要的,因为在客户关于所需系统的描述和体系结构系统设计师所需的信息之间存在极大的差距嵌入式系统的客户通常不是嵌入式系统的设计人员,甚至也不是最终产品的设计人员,他们对嵌入式系统的理解是建立在他们想象的与系统之间交互的基础上的,对系统可能有一些不切实际的期望,或者是使用他们自己的话而不是专业术语来表达其需求将客户的描述转化为系统设计者的描述的结构化方法就是从客户的需求中获取一组一致性的需求,然后整理成正式的规格说明通常,需求包括功能部分和非功能部分当然,必须从中获取系统的基本功能,但是,只有功能的描述是不够的非功能需求包括以下几点
(1)性能系统的处理速度通常是该系统的实用性和最终成本的主要决定因素正如已经注意到的,性能是软件性能度量(如执行一个用户级函数的大致时间和必须完成的一个特定操作的硬时限)的组合
(2)__产品最终的成本或者销售__也是一个主要的考虑因素产品的成本包含两个主要部分一是生产成本,包括__构件以及组装它们的花费;二是不可再生的工程成本(NRE),包括人力成本以及设计系统的其他花费
(3)系统的尺寸和重量最终产品的物理特性会因为使用的领域不同而大不相同一台控制装配线的工业控制系统通常装配在一个标准尺寸的柜子里,它对重量没有什么约束,但是手持设备对系统的尺寸和重量就有很严格的限制
(4)功耗对于那些靠电池来供电的系统以及其他一些电器来说,电源是十分重要的电源问题在需求阶段以电池寿命的方式提出,因为顾客通常不能够以瓦为单位描述允许的功率2.确认需求确认这一系列的需求不仅需要理解什么是用户需要的,而且需要理解他们是如何表达这些需求的精炼系统需求至少是精炼用户界面部分的方法是建立一个模型这个模型可以使用已存数据来模拟功能,并且可以在个人电脑或工作站上运行但是它应该让用户了解系统是如何使用的以及用户如何和它进行交互通常,设备的非功能模型可以让用户了解系统的特性,如系统的尺寸和重量3.简单的需求表格对一个大系统进行需求分析是一项复杂而费时的工作,但是,取得相对少量的、格式清晰、简单的信息是理解系统需求的一个好的开始表1-2展示了一个需求表格的样本,这个表格在某项工程的开始时填写在考虑系统基本特征时可以将这个表格作为检查表表1-2需求表格样本名称目的输入输出功能性能生产成本功耗物理尺寸和重量
(1)名称这一项十分简单,但却十分有用给该项工程取一个名字不仅在和别人讨论这个工程时更加方便,也可以使设计的目的更加明确
(2)目的这一项可以是简单的一到两行的关于系统要满足的需求的描述,如果不能用一两句话来描述所设计的系统的主要特性,说明还不是十分了解这个系统
(3)输入/输出这两项内容比较复杂,系统的输入/输出包含了大量细节
①数据类型它可以是模拟电__、数字数据和机械输入
②数据特性它可以表达周期性到达的数据的特性,可以是数字音频__或用户的输入以及每个数据元素的位数
③输入/输出设备的类型它可以是按键、模/数转换器或视频显示器
(4)功能这一项是关于系统所做工作的更加详细的描述从输入到输出进行分析是提出功能的一种好方法当系统接收到输入时,它执行哪些动作?用户通过界面输入的数据如何对该功能产生影响?不同功能之间是如何相互作用的?
(5)性能许多嵌入式系统都要花费一定的时间来控制物理设备,或是处理从外界输入的数据在大部分情况下,这些计算必须在一定的时间内处理完,对性能的要求必须尽早地明确,因为这些要求在执行过程中需要认真考虑,以便随时检查系统是否达到了这些要求
(6)生产成本这中间主要包含了硬件构件的花费如果不能确定将要花费在硬件构件上的费用的确切数目,那么起码要对最终产品的__有一个粗略的了解因为__最终影响了系统的体系结构一台将要以10美元出售的设备的内部结构和一台打算以100美元出售的机器的内部结构肯定是不同的
(7)功耗对系统的功耗用户可能只有一个粗略的了解但是,没有关于这方面的信息是不行的通常,决定系统是靠电池供电还是通过墙上的插座供电是系统设计过程中的一个重大问题靠电池供电的系统必须认真地对功耗问题进行考虑
(8)物理尺寸和重量对系统的物理尺寸和重量有一定的了解有助于系统体系结构的设计一台台式机在对构件的选择上比佩带式录音机要宽松得多对一个大系统进行更加深入的需求分析可以使用与表1-2类似的表格作为更长的需求文档在介绍完关于这个表格之后,更长的需求文档包括上面提到的每一项的细节例如,前面用一句话描述的每个单个的特征可能在规格说明中被详细描述为一节4.需求的内部一致性在写完需求分析以后,应该对它们的内部一致性进行以下检查是否忘记了给某个功能指定输入或输出?是否考虑了系统运行的所有方式?是否把一些不切实际的要求放到了一个电池供电、低成本的机器中了?为了练习如何获得系统需求,示例1-1创建了GPS__地图系统的需求【例1-1】GPS__地图的需求分析__地图是一种手持设备,该设备是为用户显示其当前所处位置周围的地形的一张地图;地图的内容随着用户以及该设备所处的位置的改变而改变__地图从GPS上得到其位置信息,GPS是一个卫星导航系统__地图的显示如图1-4所示图1-4GPS__地图下面是一些GPS__地图用户需求的最初清单
(1)功能性本系统主要针对高速公路上开车的用户或类似用户,而不是需要使用更专用的数据库和功能的航海或__人员系统应展示可在标准地形图数据库中得到的主要道路和其他陆地标志
(2)用户界面屏幕至少应该有400×600像素分辨率该设备的控制按钮不应多于3个按下按钮时菜单系统应在屏幕上弹出,允许用户系统控制作出选择
(3)性能地图应该平滑滚动加电后,显示在1s内出现,系统应可以核查其位置并在15s内显示当前地图
(4)成本单个设备售价(零售价)不高于500美元
(5)便携性设备物理尺寸和重量应非常适于放在手掌中
(6)功耗使用4节AA电池至少可以连续运行8小时注意上述许多需求并不是按工程单位规定的,例如,物理尺寸是相对于手而不是用厘米标出的虽然这些需求必须最终转换成可以被设计者使用的某种东西,但是保持某种顾客想要的记录将有助于解决设计期间后期出现的有关规格说明的问题基于上述讨论,为__地图系统编写一份需求表格,如表1-3所示表1-3需求表格名称GPS__地图目的为驾驶者提供的用户级__地图输入一个电源按钮,两个控制按钮输出逆光LCD,显示分辨率为400×600像素功能使用5种___的GPS系统;3种用户可选的分辨率,总是显示当前的经纬度性能
0.25s内即可更新一次屏幕生产成本100美元功耗100mW物理尺寸和重量不大于2×16in2,12盎司(约340g)表1-3加上了设计人员所要使用的某些用工程术语表述的需求例如,它提供了设备的实际尺寸生产成本与销售__有关,通过使用简单的经验法则可以得到销售价4~5倍于所售商品的成本(所有构件的成本之和)
1.
3.2规格说明规格说明更精确一些,可以起到客户和生产者之间的合同的作用正因为如此,规格说明必须精确编写,以便精确地反映客户的需求,并且作为设计时必须明确遵循的要求规格说明应该足够明晰,以便别人可以验证它是否符合系统需求并且完全满足客户的期望它也不能有歧义,设计者应知道什么是他们需要构造的设计者可能碰到各种不同类型的由于不明确的规格说明而导致的问题如果在某个特定状况下某些特性的行为在规格说明中不明确,那么设计者可能实现错误的功能如果规格说明的全局特征是错的或者是不完整的,那么由该规格说明建造的整个系统体系结构可能就不符合现实的要求GPS系统的规格说明应包括下列若干构件
(1)从GPS卫星接收到的数据
(2)地图数据
(3)用户界面
(4)必须执行的满足客户需求的操作
(5)保持系统运行所需的后备动作,如操纵GPS接收机
1.
3.3体系结构设计规格说明不讲系统如何做,而只是讲系统做什么描述系统如何实现指定的功能是体系结构的目的体系结构是系统整体结构的一个计划,而后用于设计搭建整个体系结构的构件体系结构的创建是许多设计者认为的设计的第一阶段为了理解体系结构描述是什么,先来看一下例1-1__地图样例的体系结构图1-5以框图形式展示了例1-1的系统体系结构,这些框图展示了它的主要操作和其间的数据流框图仍很抽象,还没有规定运行在CPU上的软件执行什么操作以及专用硬件完成什么等不过,为描述如何实现在规格说明中规定的功能框图还要做许多事情,例如,可以清楚地看到需要搜索地形图数据库和绘制显示的结果已经选择分离了一些功能以便并行地完成这些工作,如从搜索数据库分离出绘制功能可以有助于更平滑地更新屏幕只有在设计了一个并未偏向于太多实现细节的初始体系结构之后,才可能把系统框图细分成两部分框图一部分针对硬件,另一部分针对软件这两部分细化过的框图如图1-6所示硬件框图清楚地展示了有一个CPU,周围有存储器和I/O设备,尤其是已选择使用两种存储器,一种是针对像素显示的帧缓冲器,另一种是CPU使用的通用程序/数据存储器软件框图基本上与系统框图一致,但是增加了一个计时器,控制何时读取用户界面上的按钮,并在屏幕上绘制数据为了得到一个真正完整的体系结构描述,需要更多细节,如软件框图中的单元在硬件框图的什么地方执行、何时操作准时执行等图1-5__地图框图(a)硬件体系结构(b)软件体系结构图1-6__地图系统的硬件和软件体系结构体系结构描述必须同时满足功能上和非功能上的需求不仅所需求的功能要体现,而且必须符合成本、速度、功率和其他非功能上的约束应先从系统体系结构开始,逐步把这一结构细化为硬件和软件体系结构是确保系统符合所有规格说明的一种好方法,集中考虑系统框图中的功能元素,然后在建造硬件和软件体系结构时考虑非功能约束如何知道硬件和软件体系结构实际上符合速度和成本等方面的限制呢?必须有某种方式估算框图中的构件,如__地图系统中的搜索和绘制功能的特性精确估算源于经验,既应有一般的设计经验也应有类似系统的特定经验不过,有时建造一个简化的模型有助于作出更精确的估算在体系结构建造阶段所有非功能约束的合理估算是至关重要的,因为基于有问题的数据的决策在设计的最后阶段会显现出来,用来表明设计实际上不符合规格说明
1.
3.4设计硬件构件和软件构件体系结构描述告诉设计者需要什么样的构件构件设计使构件与体系结构和规格说明一致构件通常既包括硬件,如现场可编程门阵列(FPGA)和电路板等,又包括软件模块一些构件是现成的,例如,CPU在任何情况下都是一个标准构件,同样,还有存储器芯片和很多其他构件在__地图中,GPS___虽然是预先设计的标准构件,但也是专用构件利用标准软件模块可以访问标准地形数据库这些数据库的数据不仅使用预定义的格式,而且被高度地压缩以节省存储空间在这些访问函数中使用标准软件不仅能节约设计时间,而且也较快地实现了数据解压缩这样的专用函数有时,设计者必须自己设计一些构件,即使使用标准集成电路,也必须设计连接它们的印刷线路板同时,很有可能要做大量定制编程当然,建立嵌入式软件模块时,设计者必须用自己的专业技能确保系统实时性良好并且在允许的范围内不占用更多的存储空间__地图软件例子中的电能消耗特别重要,这就要求要非常小心地读写存储器以减小功耗,例如,由于存储器访问是主要的功耗来源,所以存储器事务必须精心安排以避免多次读取同样的数据
1.
3.5系统集成只有建立构件后才能将它们合并得到一个能运转的系统,当然这个阶段不仅是把所有的东西插在一起在系统集成中通常可以发现错误,而好的计划能帮助设计者快速找到这些错误按阶段架构系统并且正确运行选好的测试,经常能更容易地找到这些错误如果每次只对一部分模块排错,很可能更容易发现和识别简单的错误只有在早期修正这些简单的错误,才能发现那些只有在系统高负荷时才能确定的、比较复杂或是含混的错误设计者必须确保在体系结构和各构件设计阶段尽可能容易地按阶段组装系统并相对__地测试系统功能因为嵌入式系统使用的调试工具比在桌面系统中可找到的工具有限得多,因此,要在系统集成时发现问题,需要详细地观察系统以准确确定错误
1.
3.6系统测试应对设计好的系统进行测试,看其是否满足规格说明书中给定的功能要求针对系统的复杂程度不同,有一些常用的系统设计方法,如瀑布设计方法、自顶向下的设计方法、自下向上的设计方法、螺旋设计方法、逐步细化设计方法和并行设计方法等根据设计对象复杂程度的不同,可以灵活地选择不同的系统设计方法
1.4小结本章主要介绍了嵌入式系统的概念、嵌入式系统的特点及分类、嵌入式系统的主要应用领域、主流嵌入式微处理器、主流嵌入式实时操作系统以及嵌入式系统设计方法,希望读者能够通过对本章的阅读,对以上知识做到初步掌握,为学习以后章节的知识打好基础
1.5习题1.简述嵌入式系统的定义2.嵌入式系统有哪些特点?3.嵌入式系统是如何分类的?4.简述嵌入式处理器以及嵌入式实时操作系统的种类和特点5.如何选择嵌入式处理器和嵌入式操作系统?6.简述嵌入式系统的设计过程蚈螄芅莇蒁肃芄葿螇罿芃薂薀袅节芁螅螁衿莄薈蚇羈蒆螃羆羇膆薆袂羆芈螂袈羅蒀蚄螄羄薃蒇肂羃节蚃羈羃莅蒆袄羂蒇蚁螀肁膇蒄蚆肀艿虿羅聿莁蒂羁肈薄螈袇肇芃薀螃肇莅螆虿肆蒈蕿羇肅膇螄袃膄芀薇蝿膃莂螂蚅膂薄薅肄膁芄莈羀膁莆蚄袆膀葿蒆螂腿膈蚂蚈膈芁蒅羇芇莃蚀袂芆蒅蒃螈芅膅蚈螄芅莇蒁肃芄葿螇罿芃薂薀袅节芁螅螁衿莄薈蚇羈蒆螃羆羇膆薆袂羆芈螂袈羅蒀蚄螄羄薃蒇肂羃节蚃羈羃莅蒆袄羂蒇蚁螀肁膇蒄蚆肀艿虿羅聿莁蒂羁肈薄螈袇肇芃薀螃肇莅螆虿肆蒈蕿羇肅膇螄袃膄芀薇蝿膃莂螂蚅膂薄薅肄膁芄莈羀膁莆蚄袆膀葿蒆螂腿膈蚂蚈膈芁蒅羇芇莃蚀袂芆蒅蒃螈芅膅蚈螄芅莇蒁肃芄葿螇罿芃薂薀袅节芁螅螁衿莄薈蚇羈蒆螃羆羇膆薆袂羆芈螂袈羅蒀蚄螄羄薃蒇肂羃节蚃羈羃莅蒆袄羂蒇蚁螀肁膇蒄蚆肀艿虿羅聿莁蒂羁肈薄螈袇肇芃薀螃肇莅螆虿肆蒈蕿羇肅膇螄袃膄芀薇蝿膃莂螂蚅膂薄薅肄膁芄莈羀膁莆蚄袆膀葿蒆螂腿膈蚂蚈膈芁蒅羇芇莃蚀袂芆蒅蒃螈芅膅蚈螄芅莇蒁肃芄葿螇罿芃薂薀袅节芁螅螁衿莄薈蚇羈蒆螃羆羇膆薆袂羆芈螂袈羅。