启用CAN控制器的功能,主要借助四个特殊功能寄存器(SPR)实现,CPU对CAN控制器的控制及其访问都通过它们完成,接口结构如图4所示。这四个特殊功能寄存器分别为:(1)地址寄存器(CANADR),CPU通过CANADR读/写CAN控制器的验收码寄存器;(2)数据寄存器(CANDAT),CANDAT对应由CANADR指向的CAN控制器内部寄存器;(3)控制寄存器(CANCON),它具有两个功能,读CANCON意味着访问CAN控制器的中断寄存器,写CANCON意味着访问命令寄存器;(4)状态寄存器(CANSTA),具有两个功能,读CANSTA是访问CAN控制器的状态寄存器,写CANSTA是为后续的DMA传输设备内部数据存储器RAM的地址。此外,DMA逻辑允许CAN控制器与CPU在片主RAM之间的高速数据交换。
在芯片初始化阶段,CPU通过向CANCON和CANSTA写入内容,完成CAN控制器的功能初始化。在实际通讯过程中,CPU则利用四个寄存器使CAN控制器接收和发送数据信息。
5.2BSG变频系统的硬件构成和工作简叙
BSG电机变频器控制系统基本结构如图2所示,该系统包括有:电瓶(120V),谐波抑制器(电感和电容组成的),开关电源(DC-DC多路电源,提供不同工作电路和芯片的电压规范),电流传感器(互感或霍尔),电压采样电路(检测电瓶容量),电片机(AT89C51CC01S),波形发生器(SA8282),模拟开关(CD4066B),光偶隔离驱动器(HCPL-316J),激励和波形处理芯片(AU6802N1),或非门(CD4078B),斯密特反向触发器(CD40106),BSG电机等,系统需通过模块化进行设计来实现。
DC/DC多路电源采用开关电源的标准设计,配合具有不同电压规范需求的多抽头高频变压器,对外输出5V、+12V、-12V、24V等多路隔离直流电。同时考虑到电池组电压的波动范围相对较大(充满时为130V,使用过程中可能降低到70V),在设计中宜选择了适当的电路结构,来满足输入电压适应能力。
控制板是整个系统的核心,采用了AT89C51CC01单片机组成系统、波形发生器(脉宽调制专用芯片)采用SA8282、CAN总线收发器(驱动器)82C250以及主电路和输出电压的转换模块、电流数据采集模块等。
控制板通过SA8282专用芯片向带IPM功能的IGBT三相逆变模块提供3路或6路SPWM信号(其中有3路通过一模拟开关转换)。SA8282芯片由英国的MITEL公司开发生产,其特点是控制简单、频率精度高、运行可靠性高,它支持标准8位MOTEL复用数据总线,可以方便地和单片机交换数据。单片机只需对芯片内部的5个数据寄存器赋值,就可以完成对SPWM波形输出的初始化和实时控制。SA8282芯片为标准28脚双列直插式封装,管脚RPHT、RPHB、YPHT、YPHB、BPHT、BPHB输出三相可独立控制的TTL驱动信号,通过光耦隔离传送,可对应驱动三相逆变桥上的六路IGBT。需要说明的是在对电瓶充电状态时,IGBT的RPHT、RPHB、YPHT输入端将单边关断。
将SA8282专用芯片与IGBT连接后,AT89C51CC01只需要在启动时对其进行初始化,三相输出达到预定值后,SA8282即可以独立驱动IGBT模块。只有在调整SPWM输出时,AT89C51CC01才需要对SA8282指令写入,进行控制。同时,SA8282芯片的TRIP管脚能够响应IGBT(IPM)发出的故障信号,迅速关断所有SPWM波形输出,对逆变电路进行快速保护,并通过TRIPSET状态输出状态位通知AT89C51CC01单片机,确保系统安全。
分布于主电路直流输入端和三相输出端的数据采集模块可对各路电压、电流进行采集,经AT89C51CC01进行A/D变换后保存到数据存储器中,便于CPU判断系统输入/输出是否正常,并进行相应操作。
CAN总线收发器82C250是CAN控制器和物理总线间的接口,简称CAN驱动器。最初为汽车高速通信设计,具有许多针对车辆应用设计的结构。其特点包括:有效减小汽车环境瞬间干扰对信号的影响,具有保护总线能力;防护电池与地之间发生短路;支持低电流待机方式等,因此十分适合变频系统的需要。将82C250与AT89C51CC01的CAN接口输入、输出端相连,便构成了辅助逆变电源对外通讯的接口,参考图2。
5.3 逆变电源系统软件设计
图2中的AT89C51CC01的电源管理功能及逆变电源系统功能是通过C语言编程实现的,在完成其控制功能外,程序力求合理与简化,以适应电动汽车对系统稳定性和可靠性的要求。BSG电机控制工作流程如图5所示。系统上电且运行后,单片机AT89C51CC01首先对SA8282芯片初始化寄存器进行数据初始化,然后根据车辆工作状态确定启动驱动模式或是充电模式程序。模式选定后和启动后,程序不停的检测车辆动力系统工作信息、电瓶电量、三相输出处的电流和电压情况,来适时调整输出的SPWM波形,达到需要且理想工作的状态。因此对于驱动状态:通过电瓶电量(SOC)和输出电流的检测,可以规划出效率的BSG电机的工作参数和参与动力系统工作的持续时间。对于BSG发动状态:通过电瓶电量(SOC)和输出电流的检测,可以规划出合理的充电强度,避免出现动力状态的突变,影响舒适性。
总之动力状态的信息传送、检测和程序判断是对电源有效管理的必要条件,也就是说只有通过对电瓶电量和电流电压的检测方可实现对SA8282控制寄存器参数的有效修改,调整SPWM输出,最终得到BSG电机的高效工作。例如,电机运行一段时间后,电池组电压将下降,导致逆变电源的三相输出电压低于设定值,AT89C51CC01检测到该现象后,发送指令给SA8282,通过改变SPWM的占空比的来提高等效电压输出幅值,确保电源输出的稳定和持续;同样在发电状态也是通过指令改变SA8282的SPWM的输出实现对电瓶充电强度的有效控制。
对于电源管理需要控制程序定期检测数据存储器中的控制参数。若整车控制系统通过CAN通讯修改了逆变电源的运行参数,AT89C51CC01将根据新的运行参数调整输出。
控制程序中的三个中断程序分别为:数据采集程序、CAN总线通讯程序和故障处理程序。
数据采集程序通过芯片内部计数器定时触发,对逆变电源的输入、输出线路进行数据采集,经模/数转换后存入数据存储器,交给CPU进行运行状况判断。CAN总线通讯程序包含若干子程序,其基本程序结构如图6所示。当通讯程序触发后,AT89C51CC01的CAN控制器提据命令字执行相关任务。当系统中某个工作模块请求数据时,将变频器电源的各项运行参数传输给整车系统;当某个工作模块查询节点状态时,将当前CAN节点状态等数据发送出去;当某个工作模块要求修改运行参数时,将接收的数据参数存入数据存储器。
故障处理程序具有最高的中断优先权,即将AT89C51CC01的外部中断0(INT0)管脚与SA8282芯片的TRIPSET管脚相连。当逆变电路发生故障时,IPM会发出故障信号给SA8282芯片的TRIP管脚,由后者在第一时间关断PWM输出,并通过TRIP SET管脚向AT89C51CC01发出中断信号,触发故障处理程序。故障处理程序首先将SA8282关闭;然后通过CAN总线查询各工作模块,并将故障代码和当前系统运行参数写入报文同时发送到总线上;最后电源管理及变频系统将整个BSG电机工作系统关闭,实现安全关机。