在“863”国家重大专项燃料电池城市客车项目中,燃料电池发动机占有举足轻重的地位。随着对燃料电池控制研究的逐渐深入,新的控制策略需要了解燃料电池在车用恶劣环境下的性能变化,以及燃料电池同其他部件之间的配合情况。因此,设计专用的燃料电池数据支持系统以记录并分析其运行数据对于分析燃料电池发动机在车用工况下的特性有着十分重要的意义。
传统的车用数据记录系统一般用于记录交通事故发生前一段时间(如15min内)汽车的一些运行参数,其作用类似于飞机上的“黑匣子”。传统车用数据记录系统记录的数据仅为影响到汽车行驶安全的关键参数,如刹车信号、安全气囊等,其存储数据的时间跨度不长,并且随着车辆的运行,新的数据会覆盖前次记录的数据。而燃料电池数据支持系统的设计目的为分析燃料电池客车的运行状态以及燃料电池在车用条件下的性能,需要记录整车所有的运行参数。同时,为了保证记录数据在时间上的完整性,在记录数据被导入数据分析系统进行处理和保存之前,已记录数据不会被覆盖。本文所述的数据支持系统,利用燃料电池控制器的TPU模块作为控制单元,可在既不影响主控制任务实时性又不增加额外控制器的前提下进行数据的存储和时间的获取。
本文所述的数据支持系统,不仅适用于燃料电池发动机控制系统,还具有较强的适应性,稍加改动即可应用于多种控制器。
1 数据支持系统处理器选型
常规的车用数据记录系统有两种方案:直接在控制单元的处理器上进行数据记录功能的开发,或者使用额外的处理器进行数据记录功能的开发。前者的优点是可以直接利用控制程序中的变量作为存储数据,无需进行额外的变量传递和采集,但是处理器在执行数据存储任务时会占用正常工作资源,降低控制单元的实时性能;后者在运行过程中虽然不占用主控制器资源,但是需要通过外部总线、双口RAM、模拟量采集等方式来获取存储数据,设计较为复杂,并且增加成本。总之,两种常用的方案各有利弊。
在燃料电池城市客车控制系统中,燃料电池发动机控制任务较多,加入数据支持系统后,无疑会增加控制器CPU的负担,降低控制的实时性与可靠性。另一方面,燃料电池数据支持系统需要记录的数据较多,如采用单独的处理器,则需要进行大量的数据交换工作,会显著增加成本。本文针对所述两种方案的弊端,设计了一种新的数据支持系统方案——使用燃料电池发动机电控单元处理器中的TPU模块作为数据支持系统的运算单元。
燃料电池控制器数字核心为Freescale公司的MPC5xx系列单片机,相对于其他大部分车用处理器,该系列单片机拥有独特的TPU模块。TPU(Timer Processor Unit),即时间处理单元。在该模块的结构中,包括独立的运算单元、程序空间、内存区域、中断系统、端口,可以认为TPU是一个嵌入在MPC5xx内部的小型微处理器。
同常规的单片机程序不同,TPU模块的程序由微码编写,经过编译器编译后,集成在主程序工程文件中并由下载线烧写到单片机的Flash中。单片机复位完成后,在初始化任务中将TPU程序下载到TPU模块的程序内存,即DPTRAM中(如图1左所示)。在此后的正常运行过程中,CPU总线同DPTRAM断开(如图1右所示),TPU模块通过TPU内部总线从DPTRAM中取指令,并在TPU模块内部的运算单元中执行,TPU拥有独立的RAM区和寄存器进行临时变量的存放。因此,在正常运行过程中,TPU和CPU是相互独立的处理器,TPU的运行不占用CPU资源,从而不会影响主控制任务的实时性。
在程序的正常运行过程中,TPU与CPU之间通过Host Interface(如图2所示)进行连接,CPU可以通过修改HSR寄存器的值来触发TPU运行,TPU可以通过产生CPU中断的方式与CPU交互。此外,CPU和TPU可以通过一段公共的内存单元(Parameter RAM)交换数据。MPC5xx系列单片机拥有两个独立的TPU模块——TPUA和TPUB,共有8 KB的程序存储空间。每个TPU模块拥有16路输入/输出通道,以及256 B的Parameter RAM、2个定时器,并可触发16路中断,能够独立完成较为复杂的任务。