一个完整的嵌入式产品设计一般需要涉及到很多方面的工作,包含硬件设计、系统BSP包移植、驱动移植、中间协议层及组件、GUI图形界面以及终端的应用程序。
如此多的环节如果全部由一家公司独立完成,势必在时间、研发团队、费用上需要做出巨大的投入,这显然已经和市场对产品要求的快速上市以及高性价比相矛盾。
那么如何才能使整个产品符合市场的这两点要求呢?资深嵌入式技术经理阳坤根据自己多年在嵌入式领域工作的经验提出了个人的看法,他认为社会的分工合作带来了巨大的生产力,同样嵌入式产品的设计不可能由一家公司独立完成,而一款好的嵌入式产品需要生态链中其他经验丰富,专业的公司来分工合作共同完成。目前很多大公司的存在是因为他们在某一领域的专业而不是全能,所以目前来说,一个完整的嵌入式产品的设计工作往往分成几个部分来实现分工协作。
第一部分:用户应用程序及GUI图形界面 应用程序是一个范围最广、最为灵活的概念,各行各业有各自不同的特色和要求,这就需要应用程序的开发者对相应的行业有深入的理解。这一部分的执行者往往是项目需求的发起方和产品的整合方。他们往往拥有某一应用的核心技术同时有自己的行业客户群体,但是他们在硬件设计及平台设计方面没有相关的经验和能力或者因为其他原因不愿意在这方面做太多投入。多数嵌入式操作系统中GUI图形界面都不是操作系统必须的组件而是作为上层应用图形库的方式由用户来选择和移植,如Linux操作系统的用户可以选择QT或GTK等作为其图形库。
第二部分:中间协议层及组件。 这一部分一般包括一些系统基础应用程序、协议栈以及如音视频解码器这样的中间组件组成。这一类的专业性往往比较强,其相关技术掌握在一些专业的商业公司手中或由开源组织免费发布。对于商业公司提供的技术往往需要通过付费来获取使用权,或者付费定制的方式获取,这些商业公司及组织我们一般称其为第三方。
第三部分:硬件设计、系统BSP包移植、驱动移植等。 中央处理器(英文简称CPU),是数字自动化时代的核心,而嵌入式产品就是为了实现数字化和自动化的设备,可见CPU对于嵌入式产品的重要性。项目需求的发起方和产品的整合方往往只懂得用户应用程序的开发,对于复杂的CPU如何支持他们的程序却一窍不通,这就需要另外一些人——嵌入式硬件平台供应商。
嵌入式硬件平台供应商就是完成这第三部分工作的分工者,这一部分的工作是整个产品的基础,是业界常说的底层。如果底层没有做到位,那么整个系统的可靠性将无从谈起,现在我们就第三部分的两个方面了解底层。
硬件设计 由于现在CPU运行主频越来越高,内存也从频率较低的SDRAM一直上升到高速的DDR3。这就使得设计不能再以单片机年代的集总参数的电路方式来实现,很多时候必须要以分布参数的方式来设计。我们需要重点考虑的因素包括:电源的完整性、信号的完整性以及EMC,以确保设计出来的硬件能够稳定地高负荷运行。电源方面从器件选型、滤波方式到PCB电源层的分布都要做认真的分析和规划。信号方面我们通过信号上升沿与信号频率的关系来判断该信号是否属于高速信号。在处理高速信号的时候我们要注意信号回路的参考平面,保证其有完整地回路。比如时下火热的社区板:基于飞思卡尔i.MX 6 系列处理器的评估板,以及基于TI AM335X的评估板等等。这类板采用了如Cortex-A8 或Cortex-A9这样的高端处理器,在CPU性能提升的同时,为了满足更高的吞吐率也升级到了DDR3内存,硬件升级也给我们的设计带来了前所未有的挑战。设计这一部分的时候我们需要从系统平均、满载及峰值耗电量等方面来充分考虑电源供电负载能力,并从参考电压的选取以及DDR信号在PCB走线时关键信号线的阻抗、以及关键信号组的走线长度处理等方面来确保系统不会在长时间的大负荷数据吞吐运算时因为某些信号质量或时序上余量不足造成系统不稳定。诚然这些设计经验不是一蹴而就的,是需要通过长时间的项目实践和理论知识的结合而积累起来的,这也是评判一个公司的这方面的开发能力的标准之一。
系统BSP包及驱动的移植 方面首先需要工程师对操作系统的架构要非常了解,操作系统下对硬件的操作相对于单片机上俗称的裸机代码有几个明显的区别。第一、操作系统会将对硬件的操作抽象成具体的驱动层和应用层而不是裸机的直接操作寄存器的方式。第二、操作系统在驱动层面上往往会把一类驱动按分层的思想细分为“针对某一类子系统的核心代码、控制器代码和设备代码”,使驱动能够在不同的控制器和设备间灵活的扩展。第三、由于多任务的存在所以又必须要考虑并发和互斥等等因素。这些特点使得驱动的控制方式不再直观易懂。
在嵌入式产品设计的分工合作中,项目需求的发起方和产品的整合方往往会完成用户应用程序部分,他们是各个行业中的资深专家,但是在硬件设计及平台设计方面没有相关的经验和能力或者因为其他原因不愿意在这方面做太多投入,往往他们都会找硬件平台供应商提供这方面的技术支持。硬件平台供应商完成分工中的硬件设计、系统BSP包移植、驱动移植,由于硬件设计、系统BSP包移植、驱动移植有密切联系,需要同一个厂商完成,这就需要厂商有强大的研发技术团队,另外产品的整合方常常对他们需求的硬件平台有尺寸功能等特殊要求,这还要求嵌入式硬件平台供应商有专门的定制服务技术团队支持。在国内基于ARM的硬件平台厂商中,很少有满足上面要求的同时,又能供应种类众多功能多样的处理器硬件平台,其中,英蓓特在此方面已有14年以上的开发经验,并与Freescale、TI、Atmel、ARM、ST等世界知名芯片厂商达成战略合作伙伴,为众多嵌入式产品厂商提供硬件平台和定制服务解决方案。
|