|
引 言
在电脑,互联网和通信技术高速发展的同时,嵌入式系统开发技术也取得迅速发展.这不仅表现在从事嵌入式系统开发研究的人员队伍日益壮大,嵌入式处理器和即时操作系统的性能增强和产品升级换代,更重要的体现在嵌入式技术应用范围的急剧扩大.
嵌入式系统拥有巨大的市场空间,我国应该抓住机遇,与时俱进,奋起直追,在嵌入式系统领域赶超世界先进水平.要达到这个目标,具有一定的现实可行性,这是因为同pc机系统相比,嵌入式系统更有自身的特徵.在pc领域,虽有amd系列处理器和linux作业系统的市场冲击,但是win_tel (windows+intel)体系架构仍占主导地位;可是,嵌入式系统本身是一个相当分散的工业,典型特徵是面向用户,面向产品,面向应用的,市场应用才是嵌入式系统开发的导向和前提,在当前的嵌入式市场中不存在垄断的局面.
嵌入式系统包含硬体和软体两部分:硬体架构上以嵌入式处理器为中心,配置记忆体,i/o设备,通信模组等必要的外设;软体部分以软体发展平台为核心,向上提供应用编程介面(api),向下遮罩具体硬体特性的板级支援包bsp.嵌入式系统中,软体和硬体紧密配合,协调工作,共同完成系统预定的功能.
对於不同的市场应用类型,嵌入式系统开发中的嵌入式处理器,即时操作系统,模拟器,调试器以及开发队伍的技术水平和结构比例等要素的选择是至关重要的.本文参考一些嵌入式系统开发的资料,结合具体的工程实践经验,系统总结了进行嵌入式系统开发时,如何全面考虑各开发要素并进行选择,最後结合一个具体实例进行详细阐述.
1 嵌入式处理器
嵌入式系统的功能软体集成於硬体系统之中,系统的应用软体与硬体一体化.在嵌入式系统的硬体设备中,嵌入处理器是整个系统的核心部件,其性能的好坏直接决定整个系统的运行效果.
pc机销售市场中,随著通用cpu技术的突破和工作频率的倍增,旧款低档cpu早已经不见踪迹.嵌入式系统开发面向具体应用,不同领域的应用市场需要不同款式和性能指标的处理器来开发,於是在嵌入式处理器市场中,中低端的4位,8位和16位处理器依然存在,高性能的 32位处理器也有很多产品.随著超大型积体电路技术和微电子技术发展,包含嵌入式处理器以及部分周边电路的微控制器产品也进入市场,片上系统soc (system on chip)产品也开始出现.这些产品的上市,不仅丰富了嵌入式处理器产品,而且也更加方便了工程技术人员进行嵌入式系统的技术开发和扩大嵌入式产品的应用领域.
由於嵌入式系统应用需求的多样性,市场上基於risc结构的嵌入式处理器提供商也日渐增多.统计数字表明,1999年底市场销售额排在前三位的公司分别是arm,motorola和mips,其中arm公司的晶片销售量达1.5亿个,市场份额超过50%.
面对这样的嵌入式处理器市场,开发设计人员应该如何选择呢?这褃有两个前提条件.
一是深入研究具体的嵌入式系统应用需求,充分的应用需求分析後获取应用系统的性能指标.面向应用是嵌入式系统的特色,具体的应用需求决定著嵌入式处理器的性能选型.在工业控制等特殊领域,系统需求分析员不仅需要和工作人员,上级主管亲自面谈,而且要到工作现场获取第一手资讯,收集充分的资料.应用需求分析後,需要定义产品具备的基本功能和性能指标,如系统处理的资料量大小和处理即时性要求,系统正常运行时的工作环境,系统运行过程中可能遇到的突发事件,系统的尺寸大小和功耗指标等.
第二个前提条件是,分析研究市场上各大厂商提供的各款嵌入式处理器的性能指标,如功耗,体积,成本,可靠性,速度,处理能力,电磁相容性等.这些参数也是各个半导体晶片厂商之间竞争的热点.
开发人员通过应用需求分析获取了产品的功能性和非功能性指标,研究了市场上嵌入式处理器的性能参数後,能够对嵌入式处理器作出较好的选择.嵌入式处理器选择的基本原则是满足具体功能性和非功能性指标需求的,市场应用反应良好的,硬体配置最少的嵌入式处理器.如简单的智慧型仪器器仪表设计考虑使用4位或者8 位低档单片机8051;和数位信号处理密切相关的选用ti公司的tmx320x系列的dsp(数位信号处理)晶片;如果产品偏重於通信功能,考虑 motorola公司的嵌入式处理器68k系列;如果产品功能比较齐全,可选用嵌入式处理器领域的後起之秀arm公司的高性能嵌入式处理器arm晶片系列等.
除了上述的产品性能需求因素,选择嵌入式处理器时也需要考虑开发人员对此系列处理器的熟悉程度.因为不同公司开发的嵌入式处理器差别较大,从一类处理器转移到另一类处理器的难度比同一系列不同处理器间的转移难度大得多,风险多得多.
2 即时操作系统
以嵌入式处理器为中心,开发人员搭建好硬体电路时仅提供了裸机运行平台,要使整个系统有限的硬体资源充分利用起来,还需要(嵌入式)即时操作系统rtos(real time operating system)的软体支援.
rtos与一般商用多工os(如unix,windows以及linux等)有共同的一面,也有不同的一面.商用多工os主要目的是方便用户管理电脑资源和追求系统资源的最大利用率;而rtos重点追求的是即时性,可确定性,可靠性,当然也包括有限资源的管理.一般rtos内核都很小,在几kb~十几kb 之间.流行的rtos基本上都支援基於优先顺序的抢占式调度策略和时间片轮转,具有微内核结构,有标准元件可供选用,支援虚拟存储技术和存储保护机制.
由於具体嵌入式应用的功能需求差异以及不同rtos间不同的性能指标,rtos的选择有三种方案:一是根据应用需要和公司技术实力,考虑自主开发研究(国内手机厂商宁波波导公司部分款式的手机作业系统就是自主开发的);二是充分考虑系统需求和流行rtos的性能指标及性价比选择商用rtos,如 wince,vxworks等;三是考虑嵌入式linux(rt_linux),rt_linux是开放源代码的免费自由软体,互联网技术论坛较多,具备较好的裁减性以支援不同的应用范畴.
当前全球范围内商用rtos多达200多种,应用领域的多样性使得市场反应较好的也将近有十几种,如vxworks,psos,nucleus,qnx, wince以及中科院软体研究中心研制的hopen等.这些不同名称的rtos,核心软体差异微妙而且难以琢磨,选择时重点是考虑它们的性能评价指标,主要包括调度演算法,rtos本身记忆体开销,rtos记忆体管理模式,最大中断禁止时间和最大任务切换时间.当然,也包括rtos的购买成本和提供的技术支援等相关因素.针对即时性要求较高的应用,需要重点考虑rtos的最大中断禁止时间和最大任务切换时间.这两个参数越小越好.减小这两个参数值,除了选用较高工作主频的嵌入式处理器外,还和rtos本身任务调度和中断处理机制密切相关.
选择rtos时,通常还要考虑系统功能方面支援何种处理器硬体平台,何种api,是否支援核心态用户态,是否支援记忆体管理单元mmu,可携性,调试支援,标准支援等.如果开发网路应用,还需要考虑该rtos是否支援tcp/ip的网路元件和i/o服务等.如果开发游戏和娱乐市场,要著重研究该rtos 对多媒体的支援能力.市场应用需求的多样性,使得rtos本身应该支援用户自定制能力,根据应用需要在微内核的基础上选用标准元件.
3 模拟器和调试器
调试是嵌入式系统开发过程的重要环节.嵌入式系统开发调试和一般pc系统开发调试有较大差别.在一般pc机系统开发中,调试器和被调试程式是运行在相同的硬体和软体平台上的两个进程,调试器进程通过作业系统专门提供的调试介面控制和访问被调试进程.而在嵌入式系统中,调试器是运行在桌面作业系统上的应用程式,被调试程式是运行在基於特定硬体平台的作业系统,两个程式间需要即时通信.
嵌入式系统调试时,主机上运行的集成开发调试工具(调试器)通过模拟器和目的机相连.模拟器处理宿主机和目的机之间所有的通信,这个通信口可以是串口,并行口或者高速乙太网介面.模拟器通过jtag口和目的机相连.三者间的关系如图1所示.
嵌入式系统开发调试方法有快速原型仿真法和即时线上调试法.快速原型仿真法用於硬体设备尚未完成时,直接在宿主机上对应用程式运行进行仿真分析.在此过程中系统不直接和硬体打交道,由开发调试软体内部某一特定软体模组类比硬体cpu系统执行过程,并可同时将仿真异常反馈给开发者进行错误定位和修改.即时线上调试法在具体的目的机平台上调试应用程式,系统在调试状态下的执行情况和实际运行模式完全一样,这种方式更有利於开发者即时对系统硬体和软体故障进行定位和修改,提高产品开发速度.
选用的调试器是运行在主机上的集成开发环境,一般需要集编辑,汇编,编译,链结和调试环境於一体,支持低级组合语言,c和c++语言,基於友好的图形用户介面(gui),支援用户观察或修改嵌入式处理器的寄存器和记忆体配置,资料变数的类型和数值,堆叠和寄存器的使用,支援程式中断点设置,单步,中断点或者全速运行等特性.
应用需求的多样性导致市场上模拟器和调试器的提供商也较多,windriver公司的tornado是一个很好的开发调试工具.根据实践经验,一般配套选择规模较大,信誉较好公司的模拟器和调试器,虽然价格偏高,但是这些公司技术实力强,售後服务好,调试器和模拟器开发结合紧密.如果在开发调试过程遇到技术障碍,可以通过电话或者电子邮件方式及时获取技术支援.如选用arm系列的嵌入式处理器时,可以购买multi-ice模拟器,并附加arm250集成开发调试环境等.
4 开发队伍的技术水平和结构比例
嵌入式系统开发中选择好了嵌入式处理器,rtos,模拟器和调试器等设备外,还需要考虑开发队伍的技术水平和结构比例.经验丰富的开发小组都深有体会:民用产品开发中,产品能够在预计的时间内进入市场赢得效益,其整个技术范围内新技术比例至多只能达到20%,超过这个界限,估算的时间期限可能会出现较大偏差.从高层规划人员的角度分析:20%以内的新技术,公司可以集中力量,投入足够多的人力,物力和财力进行突破性研究,正常情况下可以达到满意效果.如果新技术超出20% 这个范围,恐怕心有馀而力不足.
公司运作以市场作为向导,是市场赋予它们生命.公司看重市场,付出的劳动有市场回报才能正常运转.公司在开发过程中一般都尽量避免风险,而且整个开发过程中始终将风险分析作为重要的参考因素.公司一般都选择保守的开发模式,基於当前开发人员的技术实力和已经达到的技术储备,在许多种备选方案的技术论证过程,充分分析成本收益,风险大小,投入资源,开发人员的技术水平等因素,全面考虑,权衡利弊,尽量选用可靠的,风险小的设计方案.
在专案开发中,分配开发人员时不仅要确保任务在给定时间期限内完成的成功性,而且也要体现在锻炼培养後继人才方面.任何专案的开发,依据需求分析後,经过概要设计和详细设计,都会形成模组化结构,其工作难度也有一定的层次性.这样,公司在选派专案人员时,需要合理的人员结构安排,现在一般公认的人才结构比例是1(博士或同等学历):3(硕士或同等学历):7(学士,大专或同等学历).在专案开发中,除了开发人员的技术水平和结构比例外,小组内部的民主化, 科学化管理决策也是很重要的环节.
5 应用实例解析
在详细讨论了嵌入式系统开发中的几个关键因素後,下面具体阐述这些因素在工作中的具体体现.图2是个人数位助理pda和寻呼机二合一的掌上型电子产品结构图.
该产品的基本功能包括:
① 个人数位助理——科学计算器,英汉互译辞典,电话号码簿,记事日程表等;
② 交通资讯——列车时刻表的车次查询和车站查询,民航时刻表的航班查询等;
③ 寻呼资讯——接收个人和公共寻呼资讯,个人寻呼内容即时语音合成并播放,寻呼方式更新列车和民航时刻表资料等.
分析产品功能结构图并结合产品的基本功能,可以获得产品对嵌入式处理器的性能要求:高速嵌入式处理器处理列车和民航时刻表查询,个人寻呼内容的即时语音合成并播放等.处理器周边需要自带语音录放电路完成语音录入和播放,串列口和红外通信口进行资料通信,lcd介面电路提供用户输入介面,也需要电源管理模组完成携带型电子产品的低功耗设计.
选用arm公司的嵌入式微控制器ep7211:内含的32位元微处理器arm720t,提供18mhz,36mhz,54mhz和72mhz工作主频,而且允许用户在应用程式中对控制寄存器编程切换处理器工作频率,这种切换频率的工作方式,不仅满足了不同的应用需求,而且降低了系统的功耗.ep7211提供了sram和flash存储晶片介面,2个rs232口(1个自带红外信号收发模组),支援g_729.a标准的语音录放codec模组,有lcd介面和电源管理部分,支援低电压监测等.在休眠状态下,ep7211支援中断唤醒功能,唤醒时间是唤醒频率的2~3个周期,晶片提供8khz的唤醒频率,使得在休眠状态下系统收到寻呼前导信号时能够及时唤醒.
选定了ep7211後就应选择rtos了.从产品功能和程式流程的角度分析,系统基本上是单任务顺序处理,但要具备即时对寻呼中断的回应能力.rtos的选择有两个方案:一是使用已经购买的用在油田测井系统sl3000型产品的商用nucleus,二是使用自主开发的,专门面向嵌入式应用系统的xgw软体发展平台.
xgw软体发展平台功能强大,模组化设计,扩展性强;支援多种点阵和向量字体;完善的中英文处理介面;支援汉王手写识别和拼音输入法等.xgw开发平台是自主研发的,软体产品升级和故障排除比较容易,产品成本费用相对较低.选择ep7211嵌入式处理器和xgw开发平台,还因为二者在"gps汽车导航系统 "专案中获得了成功应用.
关於集成开发调试环境,我们购买了arm公司的arm250.它基於gui用户介面,一体化的编辑,汇编,编译,连接和调试多视窗工作环境,支援单步跟踪,中断点设置和记忆体查看等;同时,arm250开发调试介面和microsoft 的vc6++集成环境相似,有助於开发人员快速熟悉和掌握.选用multi_ice模拟器,支援线上仿真调试,通过并行口连接主机,支援程式编译链结後的程式码快速载入,加快了代码调试进度.
详细分析了产品的技术风险,对开发小组而言,只有寻呼系统是比较成熟的新技术,且工作频率高达155mhz,需要重点解决和其他功能模组的电磁相容性,要投入较多的人力资源进行重点突破.关於嵌入式处理器ep7211和自主研发的xgw软体发展平台等,开发人员都有一定的技术积累和丰富的工作经验.
在系统开发中,设计了两套技术调试方案:一是基於记忆体sram模式,二是基於快闪记忆体flash模式.在记忆体sram模式中,系统加电冷启动时,系统完成相关硬体初始化任务後执行一段代码,将系统编译连接生成的二进位可执行代码从flash存储空间完全拷贝到sram记忆体空间中,整个应用程式调试完全在记忆体空间执行.此种方案极大加快了庞大应用程式的调试步伐,加快产品开发进度.二是在sram记忆体模式调试完应用程式的基础上,执行快闪记忆体 flash调试,系统启动後将中断服务程式isr和少量的内核代码拷贝到sram後在sram中执行,其他应用程式在flash中执行.flash模式同 sram模式相比,主要是修改系统启动代码段,应用程式码完全保持一致.flash模式减少了宝贵的sram资源需求,降低了产品开发成本,但是运行速度较sram模式慢.
6 小 结
本文详细阐述了在嵌入式系统开发中嵌入式处理器,嵌入式作业系统,调试器,模拟器以及开发人员的技术水平和结构比例等组成要素的选择原则,并且使用一个具体的实例来进一步分析说明.需要指出的是,这些要素之间不是彼此独立,而是紧密相关,可能还会在某些方面相互冲突. |
|