PDA、掌中型计算机、移动电话......等,这些时下流行的消费性电子产品,以及路由器、网关、防火墙、网络电话(VoIP)......等网络产品,还有信息家电(IA)产品、储存装置等等都属于嵌入式系统产品,开发和设计它们是有别于个人计算机的,其中最大的差别就是「差异化(differentiation)」。嵌入式系统产品不只是在软硬件的技术标准或规格上可自成一个市场,更在设计方法上,除基本原则(baseline)和限制条件相同外,各说纷纭。只要在规格上或设计上做一点点小小的更改,就能独树一格,使市场不断地被区隔开来,让差异化营销、甚至「小虾米对抗大白鲨」的现象变成可能。
相信大家小时候都曾经玩过拼图或积木的游戏。拼图是原先就设定好的一个图案,尝试各种可能,将此图案重新组合起来。积木则是任凭我们的想象力,利用许多大小不同的积木,将我们内心所想的图形堆砌出来。因此,使用同一组的积木可以堆砌出大象、猩猩、企鹅......等不同的动物。相反的,同一组拼图却只能拼出一个图形来,这是拼图与积木的最大不同。就思考方法而言,积木是比较抽象的、讲理论的;而拼图是比较具像的、讲实务的。那我们在开发嵌入式系统产品时,到底应该采用拼图或积木型的思考方法呢?
其答案,应该会依照业者的不同经营方式而不一样。例如:OEM厂商应该会比较喜欢采用拼图法,因为它很务实,目标产品明确;软韧体、芯片设计业者可能就比较喜欢采用积木法,因为它很有想象空间、设计时很具弹性。不过,毕竟国内的嵌入式系统产品的开发业者,大多数是属于OEM制造商,所以,就国内环境而言,与积木法相比,拼图法应该是大多数人常用的方法。
国内业者使用拼图法去开发嵌入式系统产品(亦即从事ODM)时,经常会遇到两个重大的限制条件:客户要求降低成本、设计人才难寻或难养成。因此,业者通常会:(1)使用便宜的材料、组件、组件;(2)要求供货商提供「全段加工(turnkey)」的解决方案。为了降低成本、提高效率,这本是无可厚非的,但是这里隐藏着一个大问题,经常被国内业者所疏忽,那就是:不同材料、组件、组件的兼容(compatible)、共存(coexistence)、相互作业(interoperable)的问题。大多数人认为这些问题好像只会在无线电网络产品中才会发生,其实它们也会在有线电网络或非网络类产品中产生的。
就硬件而言,这些问题包含:时序(timing)、供电、绝缘、讯号干扰、阻抗匹配......等;就韧体而言,则包含:处理器是否有支持所需的缓存器、内存的规划是否合理、系统启动程序(boot code)是否能和硬件配合、驱动程序是否能和硬件与操作系统(O.S.)紧密配合......等;就软件而言,则包含:不同通讯协议层是否兼容、操作系统是否有支持各种不同的通讯协议和应用软件......等。总之,若事先未能对这些问题做谨慎的评估与准备,则在开发进行期间,势必会非常艰困的,甚至会因为没有经验而「瞎子摸象」,不知所措的。
(作者为电子业资深系统设计工作者,联络方式:su2b08@saturn.seed.net.tw)