1 / 30

嵌入式系统产品 设计开发之基本要点

嵌入式系统产品 设计开发之基本要点. 08. 问题. 嵌入式系统开发技术取得迅速发展。不仅表现在从事嵌入式系统开发研究的人员队伍日益壮大,嵌入式处理器和实时操作系统的性能增强和产品升级换代,更重要的体现在嵌入式技术应用范围的急剧扩大。 嵌入式系统拥有巨大的市场空间,这是因为同 PC 系统相比,嵌入式系统更有自身的特征。

Download Presentation

嵌入式系统产品 设计开发之基本要点

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 嵌入式系统产品设计开发之基本要点 08

  2. 问题 • 嵌入式系统开发技术取得迅速发展。不仅表现在从事嵌入式系统开发研究的人员队伍日益壮大,嵌入式处理器和实时操作系统的性能增强和产品升级换代,更重要的体现在嵌入式技术应用范围的急剧扩大。 • 嵌入式系统拥有巨大的市场空间,这是因为同PC系统相比,嵌入式系统更有自身的特征。 • 在PC领域,虽有AMD系列处理器和Linux操作系统的市场冲击,但是Windows+Intel体系架构仍占主导;可是嵌入式系统本身是一个相当分散的工业市场,典型特征是面向用户、面向产品、面向应用的,市场应用是嵌入式系统设计开发的导向和前提,当前的嵌入式市场中不存在垄断的局面。 • 嵌入式系统包含硬件和软件两部分:硬件架构上以嵌入式处理器为中心,配置存储器、I/O设备、通信模块等必要的外设;软件部分以软件开发平台为核心,向上提供应用编程接口(API),向下屏蔽具体硬件特性的板级支持软件包BSP。嵌入式系统中软件和硬件紧密配合/协调工作,完成系统预定的功能。 • 对于不同的市场应用类型,嵌入式系统开发中的嵌入式处理器、实时操作系统、仿真器、调试器以及研发队伍的技术水平和知识结构等要素的选择和配置是至关重要的。

  3. 嵌入式处理器 • 嵌入式系统的功能软件集成于硬件系统之中,系统的应用软件与硬件一体化。 • 在嵌入式系统的硬件设备中,嵌入处理器是整个系统的核心部件,其性能的好坏直接决定整个系统的运行效果。 • 嵌入式系统开发面向具体应用,不同领域的应用市场需要不同款式和性能指标的处理器,在嵌入式处理器市场中,中低端的4位、8位和16位处理器依然存在,高性能的32位处理器也有很多产品。 • 嵌入式处理器以及包含部分外围电路的微控制器产品也进入市场,片上系统SoC(System on Chip)产品开始出现。这些产品丰富了嵌入式处理器品种,同时方便了工程技术人员进行嵌入式系统的技术开发和扩大嵌入式产品的应用领域。

  4. 如何选择 • 1. 研究具体的嵌入式系统应用需求,获取应用系统的性能指标。具体的应用需求决定嵌入式处理器的性能选型。 • 在工业控制等特殊领域,系统分析师不仅需要和市场人员、上级主管面谈,而且要到工作现场获取第一手信息,收集充分的资料。需求分析后,确认产品具备的基本功能和性能指标:系统处理的数据量大小和处理实时性要求、系统正常运行时的工作环境、系统运行过程中可能遇到的突发事件、系统的尺寸大小和功耗指标等。 • 2. 分析研究市场上各款嵌入式处理器的性能指标,如功耗、体积、成本、可靠性、速度、处理能力、电磁兼容性等。

  5. 嵌入式处理器选择的基本原则 • 选择满足具体功能性和非功能性指标需求的、市场应用反应良好的、硬件配置最少的嵌入式处理器。 • 简单的智能仪器仪表设计考虑使用4位或者8位低档单片机 • 数字信号处理密切相关的选用TI公司TMX320x系列的DSP芯片 • 如果产品偏重于通信功能,可以考虑Motorola公司的嵌入式处理器68系列 • 如果产品功能比较齐全,可选用高性能嵌入式处理器ARM芯片系列 • 除了上述的产品性能需求因素,选择嵌入式处理器时也要考虑研发人员对处理器的熟悉程度。 • 不同公司开发的嵌入式处理器差别较大,从一类处理器转移到另一类处理器的难度比同一系列不同处理器间的技术迁移转移难度大得多,工作量及风险也多得多。

  6. 实时操作系统 • 以嵌入式处理器为中心建立的硬件平台需要(嵌入式)实时操作系统RTOS(Real Time Operating System)的软件支持。 • RTOS与一般商用多任务OS(如Unix、Windows以及Linux等)有共同的一面,也有不同的一面。 • 商用多任务OS主要目的是方便用户资源管理和追求系统资源的最大利用率 • RTOS重点追求实时性、可确定性、可靠性,也包括有限资源的管理。 • RTOS内核一般都很小,在几KB~十几KB之间。流行的RTOS基本上都支持基于优先级的抢占式调度策略和时间片轮转,具有微内核结构,有标准组件可供选用,支持虚拟存储技术和存储保护机制。

  7. RTOS的选择有三种方案 • 根据应用需要和公司技术实力,考虑自主开发研究(国内手机厂商宁波波导公司部分款式的手机操作系统就是自主开发的) • 充分考虑系统需求和流行RTOS的性能指标及性价比选择商用RTOS,如WinCE、VxWorks等 • 考虑嵌入式Linux(RT_Linux),RT_Linux是开放源代码的免费自由软件,互联网技术论坛较多,具备较好的裁减性以支持不同的应用范畴。

  8. 当前全球范围内商用RTOS多达200多种,应用领域的多样性使得市场反应较好的也有十几种,如VxWorks、pSOS、Nucleus、QNX、WinCE以及中科院研制的Hopen等。当前全球范围内商用RTOS多达200多种,应用领域的多样性使得市场反应较好的也有十几种,如VxWorks、pSOS、Nucleus、QNX、WinCE以及中科院研制的Hopen等。 • 这些RTOS核心软件差异微妙而且难以比较,选择时重点考虑它们的性能评价指标,主要包括调度算法、RTOS自身内存开销、内存管理模式、最大中断禁止时间和最大任务切换时间。也包括RTOS的购买成本和提供的技术支持等相关因素。 • 针对实时性要求较高的应用,需要重点考虑RTOS的最大中断禁止时间和最大任务切换时间。这两个参数越小越好。减小这两个参数值,除选用较高工作主频的嵌入式处理器外,还和RTOS本身任务调度和中断处理机制密切相关。 • 通常选择RTOS时,还要考虑系统功能方面支持何种处理器硬件平台,何种API,是否支持核心态/用户态、是否支持内存管理单元MMU、可移植性、调试支持、标准支持等。 • 如果开发网络应用,还需要考虑该RTOS是否支持TCP/IP的网络组件和I/O服务等。 • 如果开发游戏和娱乐市场,要着重研究该RTOS对多媒体的支持能力。 • 市场应用需求的多样性,使得RTOS本身应该支持用户自定制能力,根据应用需要在微内核的基础上选用标准组件。

  9. 关于嵌入式系统选型 • 一般而言,在选择嵌入式操作系统时,可以遵循以下原则: • 市场进入时间 • 可移植性 • 可利用资源 • 系统定制能力 • 成本控制 • 中文内核支持

  10. 市场进入时间 • 制定产品时间表与选择操作系统有关系,实际产品和一般演示是不同的。 • 目前是Windows程序员可能是人力资源最丰富的。现成资源最多的也就可能是WinCE。使用WinCE能够很快进入市场。 • 因为WinCE+X86做产品实际上是在做减法,去掉你不要的功能,能很快出产品,但伴随的可能是成本高,核心竞争力差。 • 某些高效的操作系统可能由于编程人员缺乏,或由于这方面的技术积累不够,影响开发进度。

  11. 可移植性 • 即考虑操作系统相关性。 • 当进行嵌入式软件开发时,可移植性是要重点考虑的问题。 • 良好的软件移植性应该比较好,可以在不同平台、不同系统上运行,跟操作系统无关。 • 软件的通用性和软件的性能通常是矛盾的。即通用以损失某些特定情况下的优化性能为代价。 • 设想开发一个嵌入式浏览器而仅能在某一特定环境下应用。反过来说,当产品与平台和操作系统紧密结合时,往往你产品的特色就蕴含其中。

  12. 可利用资源 • 产品开发不同于学术课题研究,它是以快速、低成本、高质量的推出适合用户需求的产品为目的的。 • 集中精力研发出产品的特色,其他功能尽量由操作系统附加或采用第三方产品,因此操作系统的可利用资源对于选型是一个重要参考条件。 • Linux和WinCE都有大量的资源可以利用,这是他们被看好的重要原因。 • 其它实时操作系统由于比较封闭,开发时可以利用的资源比较少,因此多数功能需要自己独立开发。从而影响开发进度。 • 近来的市场需求显示,越来越多的嵌入式系统,均要求提供全功能的Web浏览器。而这要求有一个高性能、高可靠的GUI的支持

  13. 系统定制能力 • 信息产品不同于传统PC的Wintel结构的单纯性,用户的需求是千差万别的,硬件平台也都不一样,所以对系统的定制能力提出了要求。 • 要分析产品是否对系统底层有改动的需求,这种改动是否伴生着产品特色? • Linux由于其源代码开放的天生魅力,在定制能力方面具有优势。 • 随着WinCE3.0原码的开放,以及微软在嵌入式领域力度的加强,其定制能力会有所提升。

  14. 成本控制 • 成本是所有产品不得不考虑的问题。操作系统的选择会对成本有影响; • Linux免费,WinCE 等商业系统需要支付许可证使用费,但这都不是问题。 • 成本是需要综合权衡以后进行考虑的;重要的是选择某一系统可能会对其它一系列的因素产生影响,如对硬件设备的选型、人员投入、以及公司管理层与其它合作伙伴的共同开发之间的沟通等许多方面的影响。

  15. 中文内核支持 • 国内产品需要对中文的支持。由于操作系统多数是采用西文方式,是否支持双字节编码方式,是否遵循GBK,GB18030等各种国家标准,是否支持中文输入与处理,是否提供第三方中文输入接口是针对国内用户的嵌入式产品的必需考虑的重要因素。 • 利用家电行业的硬件解决方案(绝大部分是非x86的)加以改进,加上嵌入式操作系统,再加上应用软件。这是所谓家电PC化的做法,这种做法的优势是成本低,特色突出,缺点是产品研发周期长,难度大(需要深入了解硬件和操作系统)。如果选择这种做法,Linux是一个好选择,它让你能够深入到系统底层,如果你愿意并且有能力。

  16. Windows CE 是从整体上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统。它的模块化设计允许它对于从掌上电脑到专用的工业控制器的用户电子设备进行定制。基本内核需要至少200K。 • VxWorks 是目前嵌入式系统领域中使用最广泛、市场占有率最高的系统。它支持多种处理器,如x86, i960, Sun, Sparc, MC68xxx, MIPS RX000, POWER PC等等。大多数的VxWorks API是专有的,采用GNU的编译和调试器。 • pSOS 这个系统是一个模块化、高性能的实时操作系统,专为嵌入式微处理器设计,提供一个完全多任务环境,在定制的或是商业化的硬件上提供高性能和高可靠性。可以让开发者根据操作系统的功能和内存需求定制成每一个应用所需的系统。开发者可以利用它来实现从简单的单个独立设备到复杂的、网络化的多处理器系统。 • QNX 是一个实时的、可扩充的操作系统,它部分遵循POSIX相关标准。它提供了一个很小的微内核以及可选的配合进程。内核仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间运行。所有其它OS服务都实现为协作的用户进程,因此QNX内核非常小巧(大约为12Kb)而且运行速度极快。可以使用户根据实际的需求,将系统配置成微小的嵌入式操作系统或是包括几百个处理器的超级虚拟机操作系统。

  17. Palm OS 3Com公司的PalmOS在PDA市场上占有很大的市场份额,它有开放的操作系统应用程序接口(API),开发商可以根据需要自行开发所需要的应用程序。 • OS-9是为微处理器的关键实时任务而设计的操作系统,广泛应用于高科技产品中,包括消费电子产品、工业自动化、无线通讯产品、医疗仪器、数字电视/多媒体设备。它提供了很好的安全性和容错性。与其他的嵌入式系统相比,它的灵活性和可升级性非常突出。 • LynxOS是一个分布式、嵌入式、可规模扩展的实时操作系统,它遵循POSIX.1a/1b/1c标准。支持线程概念,提供256个全局用户线程优先级;提供一些传统的、非实时系统的服务特征;包括基于调用需求的虚拟内存,一个基于Motif的用户图形界面,与工业标准兼容的网络系统以及应用开发工具。 • 目前,世面上有很多商业性嵌入式系统。但是这些专用商业化操作系统大都价格昂贵;而且由于各自的源代码不公开,使得每个系统上的应用软件与其它系统都无法兼容。在嵌入式这个IT产业的新的关键领域,Linux操作系统适时地出现在各嵌入式厂商面前,由于Linux自身诸多优势吸引了许多开发商。它的出现无疑为发展嵌入式系统提供了一个极有吸引力的机会

  18. 仿真器和调试器 • 调试是嵌入式系统开发过程的重要环节。嵌入式系统开发调试和一般PC系统开发调试有较大差别。 • 在一般PC系统开发中,调试器和被调试程序是运行在相同的硬件和软件平台上的两个进程,调试器进程通过操作系统专门提供的调试接口控制和访问被调试进程。 • 在嵌入式系统中,调试器是运行在桌面操作系统上的应用程序,被调试程序是运行在基于特定硬件平台的操作系统,两个程序间需要实时通信。 • 嵌入式系统调试时,主机上运行的集成开发调试工具(调试器)通过仿真器和目标机相连。 • 仿真器处理宿主机和目标机之间所有的通信,这个通信口可以是串口、并行口或者高速以太网接口。仿真器通过JTAG口和目标机相连。

  19. 嵌入式系统开发调试方法 • 快速原型仿真法 用于硬件设备尚未完成时,直接在宿主机上对应用程序运行进行仿真分析。在此过程中系统不直接和硬件打交道,由开发调试软件内部某一特定软件模块模拟硬件CPU系统执行过程,并可同时将仿真异常反馈给开发者进行错误定位和修改。 • 实时在线调试法 在具体的目标机平台上调试应用程序,系统在调试状态下的执行情况和实际运行模式完全一样,这种方式更有利于开发者实时对系统硬件和软件故障进行定位和修改,提高产品开发速度。

  20. 调试器是运行在主机上的集成开发环境,一般需要集编辑、汇编、编译、链接和调试环境于一体,支持汇编语言、C/C++语言,基于图形用户界面(GUI),支持用户观察或修改嵌入式处理器的寄存器和存储器配置、数据变量的类型和数值,堆栈和寄存器的使用,支持程序断点设置,单步、断点或者全速运行等特性。调试器是运行在主机上的集成开发环境,一般需要集编辑、汇编、编译、链接和调试环境于一体,支持汇编语言、C/C++语言,基于图形用户界面(GUI),支持用户观察或修改嵌入式处理器的寄存器和存储器配置、数据变量的类型和数值,堆栈和寄存器的使用,支持程序断点设置,单步、断点或者全速运行等特性。 • 应用需求的多样性导致市场上仿真器和调试器较多。 • 根据经验,一般好的仿真器和调试器,虽然价格偏高,但是售后服务好;如选用ARM系列的嵌入式处理器时,可以购买Multi-ICE仿真器,并附加ARM250集成开发调试环境等。

  21. 研发队伍的技术水平和结构 • 嵌入式系统设计开发还需要考虑开发队伍的技术水平和结构比例。 • 民用产品开发中,产品能够在预计的时间内进入市场赢得效益,其整个技术范围内新技术比例至多能达到20%,超过这个界限,预计的时间期限可能会出现较大偏差。 • 从高层规划人员的角度:20%以内的新技术,公司可以集中力量,投入足够多的人力、物力和财力进行突破性研究,正常情况下可以达到满意效果。如果新技术超出20%这个范围,恐怕心有余而力不足

  22. 公司运作以市场作为向导,是市场赋予它们生命。公司看重市场,付出的劳动有市场回报才能正常运转。公司在开发过程中一般都尽量避免风险,而且整个开发过程中始终将风险分析作为重要的参考因素。公司一般都选择保守的开发模式,基于当前研发人员的技术实力和已经达到的技术储备,在许多种备选方案的技术论证过程,充分分析成本收益、风险大小、投入资源、研发人员的技术水平等因素,全面考虑,权衡利弊,尽量选用可靠的,风险小的设计方案。公司运作以市场作为向导,是市场赋予它们生命。公司看重市场,付出的劳动有市场回报才能正常运转。公司在开发过程中一般都尽量避免风险,而且整个开发过程中始终将风险分析作为重要的参考因素。公司一般都选择保守的开发模式,基于当前研发人员的技术实力和已经达到的技术储备,在许多种备选方案的技术论证过程,充分分析成本收益、风险大小、投入资源、研发人员的技术水平等因素,全面考虑,权衡利弊,尽量选用可靠的,风险小的设计方案。 • 在项目开发中,分配研发人员时不仅要确保任务在给定时间期限内完成的成功性,而且也要体现在锻炼培养后继人才方面。任何项目的开发,依据需求分析后,经过概要设计和详细设计,都会形成模块化结构,其工作难度也有一定的层次性。公司在选派项目人员时,需要合理的人员结构安排,现在一般公认的人才结构比例是1:3:7。在项目开发中,除了研发人员的技术水平和结构比例外,小组内部的科学化管理决策也是很重要的环节。

  23. 应用实例 • 某产品的基本功能包括: • 个人数字助理——科学计算器、英汉互译辞典、电话号码簿、记事日程表等; • 交通信息——列车时刻表的车次查询和车站查询、民航时刻表的航班查询等; • 寻呼信息——接收个人和公共寻呼信息,个人寻呼内容实时语音合成并播放,寻呼方式更新列车和民航时刻表数据等。

  24. 分析 • 分析产品功能结构并结合产品的基本功能,可以获得产品对嵌入式处理器的性能要求: • 高速嵌入式处理器处理列车和民航时刻表查询 • 个人寻呼内容的实时语音合成并播放等 • 处理器外围需要自带语音录放电路完成语音录入和播放 • 串行口和红外通信口进行数据通信 • LCD接口电路提供用户输入接口 • 需要电源管理模块完成便携式电子产品的低功耗设计

  25. 选用ARM公司的嵌入式微控制器 • 内含的32位微处理器ARM720T,提供18MHz、36MHz、54MHz和72MHz工作主频,而且允许用户在应用程序中对控制寄存器编程切换处理器工作频率,这种切换频率的工作方式,不仅满足了不同的应用需求,而且降低了系统的功耗。 • EP7211提供了SRAM和Flash存储芯片接口,2个RS232口(1个自带红外信号收发模块),支持G_729.a标准的语音录放Codec模块,有LCD接口和电源管理部分,支持低电压监测等。在休眠状态下, • EP7211支持中断唤醒功能,唤醒时间是唤醒频率的2~3个周期,芯片提供8kHz的唤醒频率,使得在休眠状态下系统收到寻呼前导信号时能够及时唤醒。

  26. 从产品功能和程序流程的角度分析,系统基本上是单任务顺序处理,但要具备实时对寻呼中断的响应能力。RTOS的选择有两个方案:从产品功能和程序流程的角度分析,系统基本上是单任务顺序处理,但要具备实时对寻呼中断的响应能力。RTOS的选择有两个方案: • 使用已经购买的用在油田测井系统SL3000型产品的商用Nucleus • 使用自主版专门面向嵌入式应用系统的XGW软件开发平台; XGW软件开发平台功能强大,模块化设计,扩展性强;支持多种点阵和矢量字体;完善的中英文处理接口;支持汉王手写识别和拼音输入法等。XGW开发平台成本费用相对较低。 • 选择EP7211嵌入式处理器和XGW开发平台,还因为二者在“GPS汽车导航系统”项目中可以获得成功应用。

  27. 关于集成开发调试环境: • 购买ARM公司的ARM250,它基于GUI用户接口,一体化的编辑、汇编、编译、连接和调试多窗口工作环境,支持单步跟踪、断点设置和内存查看等;同时,ARM250开发调试界面和Microsoft 的VC6++集成环境相似,有助于研发人员快速熟悉和掌握。 •   选用Multi_ICE仿真器: • 支持在线仿真调试,通过并行口连接主机,支持程序编译链接后的程序代码快速加载,加快了代码调试进度。 • 分析产品的技术风险: • 对开发小组而言,只有寻呼系统是比较成熟的新技术,且工作频率高达155MHz,需要重点解决和其它功能模块的电磁兼容性,要投入较多的人力资源进行重点突破。关于嵌入式处理器EP7211和XGW软件开发平台等,研发人员都有一定的技术积累和经验。

  28. 系统开发设计两套技术调试方案: • 基于内存SRAM模式 • 基于闪存Flash模式 • 在内存SRAM模式中,系统加电冷启动时,系统完成相关硬件初始化任务后执行一段代码,将系统编译连接生成的二进制可执行代码从Flash存储空间完全拷贝到SRAM内存空间中,整个应用程序调试完全在内存空间执行。此方案加快了应用程序的调试步伐,加快产品开发进度。 • 在SRAM内存模式调试完应用程序的基础上,执行闪存Flash调试,系统启动后将中断服务程序ISR和少量的内核代码拷贝到SRAM后在SRAM中执行,其它应用程序在Flash中执行。Flash模式同SRAM模式相比,主要是修改系统启动代码段,应用程序代码完全保持一致。Flash模式减少了SRAM资源需求、降低了产品开发成本,但是运行速度较SRAM模式慢。

  29. 小 结 • 嵌入式系统开发中嵌入式处理器、嵌入式操作系统、调试器、仿真器以及研发人员的技术水平和结构比例等组成要素的选择原则,并且使用一个具体的实例来进一步分析说明。需要指出的是,这些要素之间不是彼此独立,而是紧密相关,可能还会在某些方面相互冲突。

  30. That’s all • Huang gaoang

More Related