|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
. F* }7 W; H+ A引言 + D8 A6 p }+ F6 L; E. Z0 P5 ^+ w. P
6 i1 Q# u/ |7 Q5 {6 w在计算机、互联网和通信技术高速发展的同时,嵌入式系统开发技术也取得迅速发展。这不仅表现在从事嵌入式系统开发研究的人员队伍日益壮大,嵌入式处理器和实时操作系统的性能增强和产品升级换代,更重要的体现在嵌入式技术应用范围的急剧扩大。
$ r5 H# x1 L; v* E
1 I4 P* z/ N2 F' l! n) w1 o$ }' B嵌入式系统拥有巨大的市场空间,我国应该抓住机遇,与时俱进,奋起直追,在嵌入式系统领域赶超世界先进水平。要达到这个目标,具有一定的现实可行性,这是因为同PC机系统相比,嵌入式系统更有自身的特征。在PC领域,虽有AMD系列处理器和Linux操作系统的市场冲击,但是Win_Tel(Windows+Intel)体系架构仍占主导地位;可是,嵌入式系统本身是一个相当分散的工业,典型特征是面向用户、面向产品、面向应用的,市场应用才是嵌入式系统开发的导向和前提,在当前的嵌入式市场中不存在垄断的局面。 4 K1 V+ f4 o5 l2 {: w
. {4 L5 s) D" l0 A( a嵌入式系统包含硬件和软件两部分:硬件架构上以嵌入式处理器为中心,配置存储器、I/O设备、通信模块等必要的外设;软件部分以软件开发平台为核心,向上提供应用编程接口(API),向下屏蔽具体硬件特性的板级支持包BSP。嵌入式系统中,软件和硬件紧密配合,协调工作,共同完成系统预定的功能。
5 X: S6 |- _! B& E- s7 }
; C; K+ u/ ]0 [, @) @: j对于不同的市场应用类型,嵌入式系统开发中的嵌入式处理器、实时操作系统、仿真器、调试器以及开发队伍的技术水平和结构比例等要素的选择是至关重要的。本文参考一些嵌入式系统开发的资料,结合具体的工程实践经验,系统总结了进行嵌入式系统开发时,如何全面考虑各开发要素并进行选择,最后结合一个具体实例进行详细阐述。 0 c2 r( c$ N4 b6 u
# U5 V' g' g& V5 I9 D1 b
1 嵌入式处理器
' T& E7 N3 r0 r* n' z" E$ T! L/ R; K+ d2 k
嵌入式系统的功能软件集成于硬件系统之中,系统的应用软件与硬件一体化。在嵌入式系统的硬件设备中,嵌入处理器是整个系统的核心部件,其性能的好坏直接决定整个系统的运行效果。
* H8 l% K! H/ M; p1 n/ y) n; Z# F- S) m5 O
PC机销售市场中,随着通用CPU技术的突破和工作频率的倍增,旧款低档CPU早已经不见踪迹。嵌入式系统开发面向具体应用,不同领域的应用市场需要不同款式和性能指标的处理器来开发,于是在嵌入式处理器市场中,中低端的4位、8位和16位处理器依然存在,高性能的32位处理器也有很多产品。随着超大规模集成电路技术和微电子技术发展,包含嵌入式处理器以及部分外围电路的微控制器产品也进入市场,片上系统SoC(System on Chip)产品也开始出现。这些产品的上市,不仅丰富了嵌入式处理器产品,而且也更加方便了工程技术人员进行嵌入式系统的技术开发和扩大嵌入式产品的应用领域。 0 J8 z; Y' S$ H8 s3 }
9 d% E* h! t0 J3 N, N由于嵌入式系统应用需求的多样性,市场上基于RISC结构的嵌入式处理器提供商也日渐增多。统计数字表明,1999年底市场销售额排在前三位的公司分别是ARM、Motorola和MIPS,其中ARM公司的芯片销售量达1.5亿个,市场份额超过50%。 4 W) a0 ^' M3 z i, V
& \- G/ B+ W6 k& X- `
面对这样的嵌入式处理器市场,开发设计人员应该如何选择呢?这里有两个前提条件。
- S( G' [0 p' L6 }4 h0 l5 |3 O5 A: U/ h# `. y# `, V* T2 P
一是深入研究具体的嵌入式系统应用需求,充分的应用需求分析后获取应用系统的性能指标。面向应用是嵌入式系统的特色,具体的应用需求决定着嵌入式处理器的性能选型。在工业控制等特殊领域,系统需求分析员不仅需要和工作人员、上级主管亲自面谈,而且要到工作现场获取第一手信息,收集充分的资料。应用需求分析后,需要定义产品具备的基本功能和性能指标,如系统处理的数据量大小和处理实时性要求、系统正常运行时的工作环境、系统运行过程中可能遇到的突发事件、系统的尺寸大小和功耗指标等。
9 [) w" v/ p" C# C, x* N9 Q' m( H7 b
第二个前提条件是,分析研究市场上各大厂商提供的各款嵌入式处理器的性能指标,如功耗、体积、成本、可靠性、速度、处理能力、电磁兼容性等。这些参数也是各个半导体芯片厂商之间竞争的热点。 & `3 ^1 O& b! {1 v! l1 K0 ]) W
& ` B5 o$ Y& U
开发人员通过应用需求分析获取了产品的功能性和非功能性指标,研究了市场上嵌入式处理器的性能参数后,能够对嵌入式处理器作出较好的选择。嵌入式处理器选择的基本原则是满足具体功能性和非功能性指标需求的、市场应用反应良好的、硬件配置最少的嵌入式处理器。如简单的智能仪器仪表设计考虑使用4位或者8位低档单片机8051;和数字信号处理密切相关的选用TI公司的TMX320x系列的DSP(数字信号处理)芯片;如果产品偏重于通信功能,考虑Motorola公司的嵌入式处理器68K系列;如果产品功能比较齐全,可选用嵌入式处理器领域的后起之秀ARM公司的高性能嵌入式处理器ARM芯片系列等。
E/ t% B3 Z: v1 E, _8 P6 V
% p+ x; V9 h+ g除了上述的产品性能需求因素,选择嵌入式处理器时也需要考虑开发人员对此系列处理器的熟悉程度。因为不同公司开发的嵌入式处理器差别较大,从一类处理器转移到另一类处理器的难度比同一系列不同处理器间的转移难度大得多,风险多得多。 4 j4 H4 R; t8 H, C' L+ }! t
6 p+ Q v+ L7 f
2 实时操作系统
( K; V& `6 k$ m+ O# m. L; l1 _% _1 X) F6 m# l) J
以嵌入式处理器为中心,开发人员搭建好硬件电路时仅提供了裸机运行平台,要使整个系统有限的硬件资源充分利用起来,还需要(嵌入式)实时操作系统RTOS(Real Time Operating System)的软件支持。
4 G K9 ^. R8 g3 _
/ e. t# N) d8 e2 Z% \3 w# VRTOS与一般商用多任务OS(如Unix、Windows以及Linux等)有共同的一面,也有不同的一面。商用多任务OS主要目的是方便用户管理计算机资源和追求系统资源的最大利用率;而RTOS重点追求的是实时性、可确定性、可靠性,当然也包括有限资源的管理。一般RTOS内核都很小,在几KB~十几KB之间。流行的RTOS基本上都支持基于优先级的抢占式调度策略和时间片轮转,具有微内核结构,有标准组件可供选用,支持虚拟存储技术和存储保护机制。
! \9 [# z! z% v
4 e Y$ A+ P* a) K$ h) `. Z, R Z由于具体嵌入式应用的功能需求差异以及不同RTOS间不同的性能指标,RTOS的选择有三种方案:一是根据应用需要和公司技术实力,考虑自主开发研究(国内手机厂商宁波波导公司部分款式的手机操作系统就是自主开发的);二是充分考虑系统需求和流行RTOS的性能指标及性价比选择商用RTOS,如WinCE、VxWorks等;三是考虑嵌入式Linux(RT_Linux),RT_Linux是开放源代码的免费自由软件,互联网技术论坛较多,具备较好的裁减性以支持不同的应用范畴。
% S2 a; U7 i, I* ]% Q3 s: A' s u' o* @
当前全球范围内商用RTOS多达200多种,应用领域的多样性使得市场反应较好的也将近有十几种,如VxWorks、pSOS、Nucleus、QNX、WinCE以及中科院软件研究中心研制的Hopen等。这些不同名称的RTOS,核心软件差异微妙而且难以琢磨,选择时重点是考虑它们的性能评价指标,主要包括调度算法、RTOS本身内存开销、RTOS内存管理模式、最大中断禁止时间和最大任务切换时间。当然,也包括RTOS的购买成本和提供的技术支持等相关因素。针对实时性要求较高的应用,需要重点考虑RTOS的最大中断禁止时间和最大任务切换时间。这两个参数越小越好。减小这两个参数值,除了选用较高工作主频的嵌入式处理器外,还和RTOS本身任务调度和中断处理机制密切相关。
# H* a1 K4 M2 d) n8 T6 r+ I6 e' j) @$ _4 d
选择RTOS时,通常还要考虑系统功能方面支持何种处理器硬件平台,何种API,是否支持核心态用户态、是否支持内存管理单元MMU、可移植性、调试支持、标准支持等。如果开发网络应用,还需要考虑该RTOS是否支持TCP/IP的网络组件和I/O服务等。如果开发游戏和娱乐市场,要着重研究该RTOS对多媒体的支持能力。市场应用需求的多样性,使得RTOS本身应该支持用户自定制能力,根据应用需要在微内核的基础上选用标准组件。 & a6 n: K) v! Y1 s. A
/ B _; h( O8 }8 r: G# K" w" o: Q% y/ H/ [3 仿真器和调试器
4 y$ i7 A+ _; I: W
6 m8 \9 K9 e+ @) [4 u2 H: f调试是嵌入式系统开发过程的重要环节。嵌入式系统开发调试和一般PC系统开发调试有较大差别。在一般PC机系统开发中,调试器和被调试程序是运行在相同的硬件和软件平台上的两个进程,调试器进程通过操作系统专门提供的调试接口控制和访问被调试进程。而在嵌入式系统中,调试器是运行在桌面操作系统上的应用程序,被调试程序是运行在基于特定硬件平台的操作系统,两个程序间需要实时通信。 0 q1 x6 F3 f5 D3 t4 h
& X' x5 P, `9 c5 j! i( p0 x( p0 y# n嵌入式系统调试时,主机上运行的集成开发调试工具(调试器)通过仿真器和目标机相连。仿真器处理宿主机和目标机之间所有的通信,这个通信口可以是串口、并行口或者高速以太网接口。仿真器通过JTAG口和目标机相连。0 M8 }; H/ @. p! o) z$ V' Q
|
|