第l草就入式系统的介绍17 品(PSs2)来说,无疑是一个真正成功的的嵌入式产品,不但在全世界都创下极高的销售率, 而且还不断的推出各式各样相关搭配的软件与硬件,尤其PS2木身设计已经考虑到各类型的 扩充接口,不但可以看DVD电影,还可以上网,如果配合上专用的硬盘装置,甚至可以储 存各种资料,加上各种亲和的输入与输出设备,连小朋友都会使用,如果说PS2是游戏机之 王,可以说一点也不为过。其他的产品,如MP3播放机等影音设备,也是占了极重要的角色 这证明了未来娱乐设备的发展,会越来越重要。 最后就是沟通人际,通过各式各样的信息家电的辅助,可以更方便的与他人取得联系与 沟通,不论是在个人或是企业上,都具有相当的影响力,这一点我们可以从移动电话高幅度 的成长中得到印证。特别是个人化的信息家电,如何将个人社会面的基本需求化为商机,将 是赋予信息家电新生命的关键之一。 13入门必学 继桌上型电脑之后,最重要的I科技产业莫过于嵌入式系统了,其实嵌入式系统领域牵 涉广泛,从硬件的芯片设计、电路与外围设备,到软件、韧件( firmware)系统整合,以及 各式各样的应用程序与服务提供,都是整个嵌入式系统领域包含的范畴。在跨入这个领域之 前,我们必须要了解到系统整合将是整个联入式系统里最重要的技术与观念。相较于以往的 桌上型电脑软件程序开发来说,有着极大的不同,在桌上型电脑软件的发展来说,我们的程 序是在一个通用型电脑上发展,同时操作系统与中央处理器清一色都是走 Wintel架构,我们 可以不用真正了解硬件操作与操作系统的情况下任意使用各类资源,同时我们都假设用户均 为有相当经验的PC操作者,在个相当成熟的基础上所发展的应用程序是相当方便而且快 速的。 但是在嵌入式系统里,开发程序相当不容易,我们必须借由各式各样的辅助工具与仪器 考虑各种不同平台的差异,修正多样化外围存取的程序,并且要求达到稳定,操作容易等条 件。光是一个平台差异,就足够整个硏发团队耗上好几个月的时间,因此整个系统的规划与 整合成为嵌入式系统工程师必须建立的重要观念。 开发嵌入式软件,必须要了解嵌入式系统既是软件又兼具硬件的属性,需要软件人力资 源的投入,更需要硬件平台来实现其具体的功能,它甚至比操作系统本身的开发更需要硬件 的背景知识,以往这类型软件的开发都是由硬件厂商自行包办,但是面对未来的趋势,光靠 硬件厂商旗下一小部分的软件人才,可能无法发挥,因此未来提供有关嵌入式系统软件解决 方案的厂商将会越来越多。 我们可以从微软利用 Wince对嵌入式领域的全面布局中可以看出端倪,微软公司对后 PC时代的布局手法相当全面,从网站、有线电视、通信到电子商务各领域无一不与,但是 目前嵌入式系统领域还在百家争呜的阶段,后势究竞如何?目前尚未明朗,而 Palm Computing 之 Palm os的发展与结合三大手机业者之 Symbian EPOC技术更是微软公司的劲敌,加上Sum 爪哇(Java)技术的发展及 Linux之发展,可以想像未来是一个非常热闹的局面,令人倍加 期待。 面对这样的局势.不断的充安白我,将会产业人员面对下波最重要的一件事,进入 嵌入式系统所必须具备的能力有哪些,笔者将一一为读者们分析
I8就入式系统开发圣经 监控设备 移动电话 智能型商店 PD 智能型大楼 家电 网络人工智能用户界而 智能型住宅 m时系线管理烈序功能扩充 相机/摄像机 感测器 处理 系统 门卫系 嵌入式系统 视听设备 医疗设备 汽机车 工厂生产线 声音辨识 系统 智能机器人 其他 图1-18嵌入式系统的应用与组成 131系统整合能力 由于嵌入式系统属于计算机系统的一支,因此基础的计算机架构、组织与操作系统是为 必学的基础学问,在软件技术上,进阶的学问包括即时操作系统、数字信号处理与人工智能; 硬件技术上则是电子电路学与集成电路设计等学问。 由于不同平台,不同外围,加上不同应用,使得嵌入式系统产品变得相当独特,我们无 法为了某一种特殊应用的产品从头开始摸索,这时候,系统的规划变得非常重要,如何挑选 合适的平台以配合产品最终的应用,如何有效率的开发产品,以缩短研发制造过程,如何整 合各式各样的外围以及研发团队中每个人的心血,成为嵌入式产品最大的门槛。 greening 医疗设备 系统设计 程序编写 图119典型的系统设计流程 从1999年的台北国际信息展中我们发现一个重要信息:后PC时代嵌入式的软件与操作 系统绝对不像过去是微软的独占事业,取而代之的将是一个百家争鸣的春秋时代来临。所以在 这嵌入式系统的战场上,各个厂商所迫切面对的问题,就是必须针对于软件技术的层面加以提 升,并积极投入相关的开发领域,方能在这竞争激烈的市场上占有优势。目前对于系统整合人 才的训练比较不足,比较偏重于单一方向的养成。一个有经验的系统整合人员也必须经历许多
章入式系统的介绍19 案例方能独挑大梁。一个好的系统规划与整合,将可以大幅减少摸索与研发的时间,并加速 imeo- market的时间,因此系统整合能力是对于整个嵌入式系统产业中最重要的一环。 目标市场 项目设计 价格附加 人力需求 产品价值 支术等级 开发工时 客户需求 竞争优势 定价 设备成本 市场潜力 目标利润 原料成本 图120嵌入式系统代理设计定价方式 既然要达到 time-to- maket的要求,产品发展可能会遭遇的问题包括了 ■针对不同的CPU与O设备需开发不同的模块来对应。 如何设计出具有智能的人机界面,可以让用户输入其所想要的功能。 除了具有处理器、软件、以及某种型态的输入/输出外,嵌入式系统的其他硬件通常 是独一无二的。每一种系统必须达成的需求迥然不同,这些需求会影响产品发展时 所做出的妥协与各种客观条件的权衡。 人力需求 开发界面人性化 开发工时 品设计 快速模块化 设备成本 高兼容性 原料成本 全程设计 生命周期 服务保证 标市场 产品价值 目标利润 市场潜力 图121产品发展考虑项目 这些问题的解决也考验了一个团队的能力,身为团队的一份子,不断的吸收学习新知, 解决困境,并共同激发团队创意,让产品顺利推展,将是一个重要的课题,也是身为工程师 的责任
20蛾入式系我开发圣经 多户小订单分析 术及成本分析 工时、人力、技术等级 提出估价单 资源需求、附加价值 估价 制订合约 接单 研发小组 产品原型 奖励或检讨 吝户要求」产品原型 修改 管理鄙门 结案 产品满意度 评估分析 图122产品开发与规划 132程序语言能力 不论系统设计规划的有多好,如果没有良好的人才去实现,那整体还会是归为一种空谈 在嵌入式系统中,所需要的人才相当广泛,不过就狭义的观点来看,我们需要的程序设计师 必须要会下列几种语言 ■汇编语言 ■CC++ a 除了专业的系统整合与规划师及专业背景人才之外,在嵌入式系统中最需要的程序设计 人员有三种,第一种是应用程序编写人员,第二种是驱动程序编写人员,第三种是系统移植 整合编写人员。整个研发过程中,还需要了解硬件及除错的人员。虽然本书整个架构是写给 软件从业人员,但是对于硬件特性,我们还是需要了解一番。 很不幸,在嵌入式系统中,程序设计人员必须不断的与系统核心及外围硬件打交道,偏偏 这是在软件产业中最困难的一种,大部分的软件程序人员对于硬件了解不够深入,有时候找出 问题的解决方案花费非常久的时间。要和硬件沟通,汇编语言与C语言能力成为嵌入式系统程 序人员的必备能力,目前可以很方便的直接存取初级硬件的语言莫过于这两种,事实上很多时 候,我们为了简化程序代码的操作与空间,直接使用汇编语言和C是最简单快速的方法,就算 是使用Java来编写程序,其虚拟机( Virtual machine)部分也都是使用C语言来实现,因此在 系统核心与驱动程序的阶段,非常需要懂得这两种语言而且操控自如的程序设计师 在嵌入式系统开发中,最常碰到的两大问题就是“客制化”与“除错”。就现今的嵌入
第1入式系纯的介绍21 式系统开发工具而言,因为产品实在太多样化了,很少能够用同一个开发工具套用在不同的 目标平台。因此设计人员必须自行利用些说明文件的指令信息,自行修改一些开发工具的 设置,这部分还必须要硬件设计互相搭配,以达到客制化的需求,当然如果要达到客制化, 客户就是最大的,除了工程上的问题之外,还必须不断的与客户沟通。 而嵌入式系统开发时,除错的难度比一般的PC的应用软件除错的难度高,因为目标平 台的多样性是最主要的因素。因此要如何让用户在除错时快速的抓到bug所在,这也是嵌入 式系统开发设计时所应该要考虑的重点。 如果我们并不直接和系统内部与硬件打交道,而是通过其所包装出来的应用程序界面 (AP)来编写应用程序的话,限制就不那么严重,例如在Palm的发展环境里,有一种特别 利用VB来设计程序的工具,再自动转为Palm应用程序的格式,可以让不懂C语言程序的 设计人员也可以设计Pam的程序。 在目前嵌入式系统产品众多的情况下,要发展适合于各种不同平台的应用程序,实在是 一种耗时费力的做法,因此越来越多人逐渐采用Java来实现应用程序部分,可以免除因为硬 件处理器、应用程序界面或是外围装置的差异,造成辛苦写好的程序无法在其他平台上使用 这都要归功于虚拟机的帮助,让整个嵌入式系统领域的应用程序设计人员带来一个很好的发 展平台。不过日前所见的虚拟机执行Java应用程序的速度都非常缓慢,不过相信过不了多久 就会有令人诧异的改善。 1.33市场应用导向 因为嵌入式系统不一定要具有极高的效率,反而重视低成本、高整合以及嵌入式操作系 统,因此硬件芯片与电子线路设计人员的需求不如系统整合人员、韧件开发人员与应用软件 设计人员来得殷勤,一般来说,IA系统芯片通常都把CPU、Io外围、bus、 bridge等整合 成一个芯片,甚至将网络控制器及多媒体DSP处理器也放进来,走向单系统单片机的趋势 因为SoC高度整合的效果,使得整个硬件线路的PCB设计变得比较单纯,所以整个研 发重点转向为面向韧件与软件,其中除了高级的应用程序以便配合特殊应用(例如股票机上 面的股票分析系统)之外,还兴起了种称为中间软件( middleware)的方向,何谓中间软 件?根据ovum研究报告指出,中间软件泛指在操作系统与应用程序之间的各种软件,包括 通信协议、安全机制、各类软件引擎等,许多中间软件都蕴含相当的专业知识与技术,并通 过应用程序界面让应用程序能够很方便地使用这些功能。 Runtime API 2 API3 Translation services API supporl services Core services 图1-23Owum中间软件模型