汽车电子控制组件设计业者为何不再运用微控制器与微处理器,而纷纷改用可编程逻辑组件(PLD)这是由于面对小巧的ECU规格、极大的温差、对品质与可靠度极高的要求、以及追求低廉的成本等条件,因此现今汽车设计需要具备弹性、可升级以及容易测试等特性。可编程逻辑组件是微处理器与微控制器的理想替代方案,因为它提供真正设计相关性以及平行处理的能力。
业界向来都选择微控制器与微处理器来处理针对仪表、车门模块以及其它电子油门控制器中的控制功能。持续累积的设计经验以及以往开发的程序代码,这两项主要因素促使业者不断地运用这两种组件。
现今的趋势是将软件划分成许多逻辑功能区块,符合ECU的规格限制。但这些功能区块必须等到编译并针对特定组件进行设计后,才有办法从程序代码中看出实时运作的问题。即使这些功能是独立进行开发,但在已预先定义先后顺序的结构中,仍依照顺序来运作。
业者甚至无法立即观察出时序问题。在功能仿真环境中无法找出讯号中断冲突,因为业者的作法是仅测试他们认为能运作的部份,且几乎不可能测试不确定的状态或是实时错误状况。在讯号中断时才激活的功能,必须在系统激活并在实时模式下运作时,才能真正进行测试。在这个阶段虽然能找出更多的错误,但必须等到产品真正开始实地运作后,才能开始执行与测试各种能想象到的中断状态。因此只能希望这不会是个重大错误,并且能在下次定期保养时以软件更新的方式修复这些错误。
功能的相互关联
若采用可编程逻辑组件,业者可以像使用微处理器或微控制器一样建置独立功能区块的方式来开发系统。但有别于micro code程序代码,这些功能是完全独立的,建置在硬件上,而非软件,以实时模式运作,且较不会受重大错误或中断状态所影响。
无论在任何状况下,每项功能皆能独立运作,且每次都能达到预定目标。另一方面的优点是能在着手制造硬件之前仿真各种状况,让发生不符要求的运作及作业、或是执行顺序不符的风险能大幅降低。
以设计仪表为例,当驾驶人按下开关时,该仪表必须立即显示指示灯号、对指示转速计状态的CAN封包作出响应、并立即向驾驶人显示煞车系统失灵的警告。以上这些作业都可能在一瞬间同时发生。
在软件建构的系统中,这些作业必须依照先后顺序来执行。工程师必须对错误讯息指派优先级,但哪项作业该在何时执行以及执行的顺序,则取决于中断讯号何时传至微处理器。
在PLD系统中,这些功能都以平行模式执行,当讯号传到组件时就会立即显示。对于需要高稳定度实时处理非中断讯息的应用而言,FPGA与CPLD所具备的平行处理能力带来极大的优势。
《图一 利用CPLD搭配微控制器,提供更多的I/O以连结多个LED指示灯号》

电路板层级功能
随着设计日趋复杂,愈来愈多的外围功能都交由8位微控制器负责,然而这种控制器却不见得有足够的I/O资源。这项问题有许多解决方法,包括改用较昂贵的16位微控制器。另一种方法是将整个设计分割成一个低成本8位微控制器以及低成本CPLD(复杂可编程逻辑组件)。
以下便是一个例子。某系统内含多个ADC输入端,根据输入的资料对多个步进马达(例如仪表指针)进行控制与定位,同时根据其它I/O进行LED控制以及开关输入的作业。低成本微控制器适合支持序列讯号的处理,但本身的I/O资源有限,在作为芯片外部组件的接口时往往捉襟见肘。
CPLD可透过一个简易的序列总线作为微控制器的连结接口,针对需要被控制的组件提供低成本的输入与输出接口。虽然这种方法可能提高电路板组件的数量,但加总一个8位微控制器与CPLD的成本还是低于使用一个16位微处理器的费用。
这种方法亦能让电路板透过CPLD来适应许多客户的组态,以连结许多被控制的组件。许多可编程逻辑组件大厂皆出产相关的CPLD产品,帮助设计业者降低设计难度、同时该类组件也仅需极低的耗电。
(图一)为一个典型的例子,说明如何利用CPLD来搭配一个微控制器,提供更多的I/O以连结多个LED指示灯号,并提供I/O来控制多个马达。这个范例的CPLD亦提供简单的PWM功能以及ADC接口,辅助马达控制的功能,以使用低成本的基本型微控制器来取代PWM。
接口与桥接
随着ASSP与微控制器厂商支持愈来愈多的总线协议,业者面临愈来愈严重的接口转换问题,需要低成本且容易使用的解决方案。藉由提供成本最低的方法将一种总线协议转换成另一种,CPLD组件能作为许多应用的桥接接口,其中包括电压位准转换(3.3V输入转换成1.8V输出)、总线转换应用(将某种专利语言转换成业界标准语言)、 序列至平行以及平行至序列的总线转换、以及DDR内存接口。
《图二 DDR内存接口以及运用CPLD转换位准》
(图二)显示如何运用CPLD以连结高速内存;并同时展示了一个CPLD应用在不同电压之间进行位准转换的实例。
结论
由于要面对小巧的ECU规格、极大的温差、对品质与可靠度极高的要求、以及追求低廉的成本等条件,因此汽车设计向来是极具挑战性的环境。现今的设计需要具备弹性、可升级以及容易测试等特性。
可编程逻辑组件是微处理器与微控制器的理想替代方案,因为它提供真正设计相关性以及平行处理的能力。在微控制器用完I/O或处理资源时,或着仅需要内存接口或转换电压时,CPLD便能发挥极大的效用。 |