数字信号控制器:单片机和数字信号处理器领域的佼佼者
大多数汽车控制和监视操作都需要大量的数学运算。例如,在引擎预热阶段,空气流量(MAF)传感器和引擎转速计(以每分钟转数(RPM)表示)的输出数据会被MCU采样,然后需要根据测得的数值,计算出要求喷射到每个汽缸的燃油量,公式如下:
F=MAF/(K*N*RPM/120)
其中,K是给定润滑剂温度下的理想(常数)空气-燃油比,N是汽缸的数量。
上面的计算不仅涉及精确的乘法和除法,还必须对要射入的燃油量进行重复计算以适应快速变化的引擎工作条件。因此,当废气含氧量(EGO)传感器已预热充分,能够测量废气的质量时,必须持续监视EGO传感器的输出数据,以调节燃油喷射速率,从而获得最佳的引擎性能并减少废气的排放量。
计算密集型操作的其他实例还有:
a)对来自各种传感器的数据进行有限冲激响应(FIR)或无限冲激响应(IIR)滤波,以消除噪声。应用实例:引擎爆震检测、熄火检测或在持续监视燃油液位时消除油料晃动的影响。
b)进行快速傅立叶变换(FFT)对数据进行分析,以在后续的处理阶段使用频谱。应用实例:主动振动控制或排气噪声消除。
c)根据传感器输入数据的数量级,对其进行定标,以及归一化和线性化处理。
d)比例-积分(PI)或比例-积分-微分(PID)控制算法。应用实例:导航控制。
图1描绘了一个简化的引擎控制系统,它本身就是汽车中各种处理器所执行任务的一部分。
车厢噪声消除、引擎爆震检测及防翻滚和稳定性控制等舒适、诊断和安全功能都需要更强的信号处理能力,这就要求使用自适应滤波等数学密集型算法。
进行这样的计算要求所使用的处理器具有非常高速的数学运算功能。8位的MCU或一般的16位MCU架构完全不具备这样的功能,而对成本的考虑又常常会使昂贵的32位MCU无法在这样的场合得到使用。一个专门针对重复性数学处理进行优化的特殊处理器架构——16位数字信号处理器(DSP)可用来执行这样的密集型任务。
但就DSP本身(没有处理控制任务的相关MCU)来说,它并不是非常适合在汽车系统等动态环境中使用。主要有以下几个原因:
a)DSP不具有灵活的中断结构。
b)DSP无法对位(如各个I/O引脚的状态)进行十分高效的操作。
c)DSP在很大程度上需要依赖片外存储器和外设。
d)很少有低引脚数的DSP器件,因而不适合在空间受限的模块中使用。
因此,可执行大量汽车功能的理想单芯片架构平台将是16位数字信号控制器(DSC),比如Microchip的dsPIC30F系列器件。DSC是一款创新的混合型“片上系统”(SoC)架构,它无缝地组合了16位MCU的控制特性和大量的DSP功能。
一方面,DSC架构尤其适合类似于下述的典型控制操作:
a)定期提供中断服务,例如,获取对汽车速度和转向角度的定期采样以计算防抱死制动系统(ABS)所需的制动压力。
b)从多个传感器和控制输入捕捉数据,例如,同时测量汽车速度、加速度、车身和车轮的相对运动,以及转向角度,从而确定主动悬架控制系统的制动水平。
c)向执行机构发送数据和控制脉冲,例如,发送占空比可变的PWM信号以合适的周期开关燃油喷射器或点火电路。
d)与分布式系统中的其他控制器模块共享数据,例如,各种子系统周期性地发送状态数据到诊断模块或用户显示面板。
另一方面,DSC的CPU支持功能强大的一套DSP指令和灵活的寻址模式,因此能快速完成一系列精确的算术与逻辑运算。
DSC的主要特性
典型的DSC架构具备一些CPU和外设的特性,因而适用于众多汽车应用。在这一部分,我们将探讨这些特性中最具优势的特性,它们是考虑使用DSC架构时,最令人关注的特性。
增强的CPU功能
16位DSC最强有力的功能可能就要属其强大的数学处理能力。一个真正的DSC包含两个40位累加器,可用来存储两个独立的16位×16位乘法运算的结果。
大多数信号处理算法以及许多一般数学计算,都包含有动态乘积和的计算。诸如MAC(乘-累加)等特殊指令能够在一个指令周期内,求得两个16位数的乘积,将结果添加到累加器,然后从RAM预取一对数据值。因为有两个累加器,这种架构还能在回写数据到一个累加器的同时在另一个累加器中执行计算。
40位宽的累加器允许数据暂时溢出(当在累加器中累加大量数值时,这种情况时有发生!)。此外,DSC的CPU还可选择将值保持在一个允许的范围内,这个范围由一种称为饱和的机制确定,在回写数据到RAM时,这种机制还将对数据进行舍入和调整。DSC还拥有MCU通常不具备的特性,那就是DSC有能力解析小数形式的数据而不总是将数据看作整数,这一特性有助于小数的算术运算。
除了上述特性以外,DSC架构还具有多种数据寻址模式,能够有效地传送数据、支持循环缓冲区和位反转寻址,以及零开销循环。很明显,DSC提供了一款非常有效且用户友好的CPU架构。DSC是处理和分析传感器数据、执行与控制各种执行机构相关的计算以及监视汽车系统性能的理想之选。
灵活的中断结构
DSC架构的中断结构具有极高的灵活性。通常,支持大量的可独立选择和设定优先级的中断源和向量(对于包含多个传感器和执行机构的应用非常有用!)。中断延时具有高度的确定性,便于系统开发人员进行设计。
运行时自编程(RTSP)
大多数汽车应用需要对常量进行存储,这些常量可用于根据环境条件、传感器的种类和预先测得的偏移量校准传感器的输出数据。后处理算法也会使用到常量,比如滤波系数、活塞尺寸和目标空气-燃油比等预先确定的系统特性参数,以及误差门限值。若在RAM中存储这些常量会浪费数据存储器的容量。DSC器件通常有闪存程序存储器和闪存数据EEPROM,这些存储器可用来可靠而高效地存储和访问这些常量。在具有闪存的DSC中,用户程序甚至可以根据环境、数据或工作条件的变化实时修改这些常量。在许多系统中,还有可能使用控制器局域网(CAN)等串行通信通道,使用自举程序算法来重新编写代码段或常量。
在线串行编程(ICSP™)
闪存DSC允许用户使用一种称为“在线串行编程(In-Circuit Serial Programming™)”的方法在现场方便地升级应用程序固件。这允许在不同的汽车子系统和不同的工作/环境条件下重复使用同一个控制器,此外还允许修正软件漏洞、校准传感器,以及在保证开销和延时最少的情况下,使功能得到增强。
高分辨率模数转换器(ADC)
传感器在许多汽车子系统中的广泛使用促使具有足够速度和分辨率的片上ADC成为迫切需要,以便允许对输入量的快速微小变化进行测量。在闭环工作中尤其重要,比如要采样进气歧管压力以确定点火的精确时机,从而产生最佳的转矩。分辨率小于12位或非线性误差大于1个最低有效位(LSB)的ADC无法满足多数汽车功能的需要。在某些子系统中,采样速度是考虑的重点,尤其是在气囊控制等对安全要求严格的功能中。在其他情况下,主要考虑的可能是同时测量不同物理量的能力。例如,主动悬架系统可能需要同时获取对汽车速度、加速度、车身/车轮相对运动和转向角度的采样。应根据模块所需的ADC功能选择合适的DSC器件。
脉宽调制(PWM)
汽车系统中使用的一些阀门和执行机构由占空比可变的脉冲控制。PWM控制功能的两个常见实例为:燃油喷射阀,该阀门会在脉冲有效时开启以控制喷射到汽缸中的燃油量;以及点火发生器,当脉冲下降为低电压电平时,产生火花。DSC支持自动产生具有指定波形和极性的PWM信号。动力转向、自动变速器和空调等子系统均包含复杂的电机控制算法。有些DSC具备多种片内外设来支持此类高级PWM算法。
正交编码器接口(QEI)
精确而快速地测量汽车以及其中的各种机械构件的速度和位置对于有效控制汽车运行的许多方面非常重要。例如,防碰撞系统需要测量速度和加速度。通常选择正交编码器(如光电编码器)作为这一测量的传感器。有些DSC包含内部正交编码器接口,能够在软件开销最少的情况下有效解码正交编码器产生的信号。
控制器局域网(CAN)
由于一辆汽车包含许多处理器来执行各种各样的功能,因此为了共享传感器和控制信息,不同子系统之间有效而可靠的通信就非常重要。模块之间相互通信的另一个优点是它不需要用多个传感器对同一个物理量进行重复测量,此外还能在系统级进行有效的监视和诊断。例如,电池监视的功能,MCU不仅需要不时地测量电池的电压,还要将控制信号发送给各种其他模块以控制它们的开关,从而优化电池的使用并确保汽车启动。CAN总线标准在汽车网络的通信标准中处于重要地位。许多DSC包含一个或多个片内CAN控制器,使之自然而然地成为了应用在汽车设计中的不二选择。在汽车网络中使用DSC,借助软件对高层协议(如,符合OSEK标准的实时操作系统和CAN应用层实现方案)的支持,还可实现其他额外功能。
典型应用
下面列出了数字信号控制器在汽车中的典型应用。
• 电子动力转向
• 电子离合器和变速箱控制
• 防翻滚和稳定性控制
• 车厢噪声消除
• 高级电池监视系统
• 气囊控制
• 点火控制
• 泊车传感器
• 燃油压力传感器
• 温度控制
• 引擎爆震检测
• 引擎熄火检测
• 自适应导航控制
• 燃料电池
• 车内娱乐设施
• 车载免提电话套件
• 基于人体生物学的无钥门禁
结论
随着汽车系统对功能性、连通性和数学运算能力的要求越来越高,如Microchip dsPIC30F系列等16位数字信号控制器将是用在许多汽车子系统中的处理器架构的理想之选。越来越多的新颖而强大的功能,包括新兴的混合动力(Hybrid)技术和燃料电池技术,正快速引入到汽车设计领域中。这进一步加深了对DSC所具有的功能和多样性的需求。OSEK、基于CAN的协议栈、TCP/IP以及预先打包的DSP算法等软件工具的存在将进一步推进此类架构在大量汽车应用中的使用。
(转载)