高压PTC加热器控制系统的设计
2020-06-04岳秀麟杨春华
石 林,岳秀麟,杨春华
(豫新汽车热管理科技有限公司,河南 新乡 453000)
1 前言
CAN属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络,是目前全球应用最广泛的开放式现场总线之一。CAN总线技术自从开发出来后,在汽车领域被极大范围地推广与使用,尤其在混合动力汽车和纯电动汽车领域,整车各电子控制单元之间通过总线进行通信。越来越多的主车厂还在CAN总线基础上增加了诊断与Bootloader功能,图1为一混动车型的网络拓扑图。
PTC加热器 (包括水暖式与风暖式)做为高压、高功率、高温工作的器件,其内部大多集成控制器,通过CAN总线与整车ECU进行通信。PTC加热器需接收整车的指令来开启/关闭输出或调节输出功率,同时还要将实时的工作状态(耗电功率、故障信息等)放于总线上供ECU提取。在空调总成 (HVAC)的总装车间,生产线通电检测时需要频繁启动PTC加热器,本工装可以模拟ECU控制PTC加热器的通断与PWM占空比,同时将PTC的工作状态与故障信息显示出来,保证了空调总成在线检测的有效进行。本文以风暖式PTC加热器为例设计CAN总线通信工装。
2 CAN通信工装功能介绍
此工装采用CAN2.0B总线协议,按表1中DBC数据表与PTC加热器进行通信,波特率为250kb/s。
它发给PTC加热器一种ID(0x18F00C87)的报文,控制PTC加热器的开关状态与工作占空比,同时接收PTC加热器发送的3种ID (0x18F0012A、0x18F0022A、0x18F00F2A)的报文,分析报文信息并显示出来。此工装包含4个按钮,分别实现PTC启动/停止、显示屏换页、占空比减少1、占空比增加1功能,还包含一液晶显示屏,分PTC工作信息、故障信息、占空比设置3个页面显示。
3 硬件设计
3.1 微处理器
微处理器选用Freescale公司的MC9S12XS128MAL单片机,总线速度可达40MHz,它由16位中央处理单元 (CPU12X)、128KB程序Flash、8KB RAM、8KB数据Flash组成片内存储器。它的主要功能模块包括:内部存储器、内部PLL锁相环模块、MSCAN模块、1个8通道输入/输出比较定时器模块TIM、周期中断定时器模块PIT、16通道A/D转换模块ADC、1个8通道脉冲宽度调制模块PWM等。图2为其最小系统电路图。
此单片机的MSCAN模块支持CAN2.0A/2.0B协议,有两个信号引脚,分为发送 (TX单片机的PM1引脚)和接收(RX单片机的PM0引脚),为TTL电平,需接收发器才能连接到CAN总线上。当TX引脚上的输出电平为低电平时,为显性状态,反之为隐性状态。
3.2 CAN收发器
本设计选用高速CAN收发器TJA1050,它是物理总线和CAN控制器之间的接口,适用的波特率范围从60kb/s到1Mb/s。TJA1050可以为总线提供差动的发送功能,且完全符合ISO 11898标准,是PCA82C250高速CAN收发器的后继产品。
图1 网络拓扑图
表1 DBC数据表
CAN控制器通过一条串行数据输出线TxD和一条串行数据输入线RxD连接到收发器,而收发器则通过两个有差动接收和发送能力的总线终端CANH和CANL连接到CAN-bus总线。通过控制引脚S可以选择两种工作模式:将引脚S搭铁或悬空可以使TJA1050进入高速模式;将引脚S边接高电平可以使TJA1050进入静音模式。图3为本工装CAN收发模块的电路图。
3.3 显示屏与按键
本设计选用MS12864R汉字图形点阵液晶显示模块,可显示汉字及图形,内置8192个中文汉字 (16×16点阵)、128个字符 (8×16点阵) 及64×256点阵显示RAM (GDRAM)。支持多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等。按键输入引脚选用单片机带有中断功能的I/O口(PH0~PH3),且设计有按键防抖电容。图4为显示屏与按键模块电路图。
4 软件设计
4.1 初始化
4.1.1 总线时钟
本设计的MCU工作总线时钟选择内部锁相环 (PLL)时钟,以获得更高的总线时钟频率。首先设置时钟合成寄存器SYNR和时钟分频寄存器POSTDIV,以确定PLL时钟频率 (此设计POSTDIV的值为0,则fPLL=fVOC)。然后设置时钟选择寄存器的控制位PLLSEL=1,从而选定PLL时钟。
锁相环产生时钟频率fPLL以及总线时钟频率fBUS由下面公式得到:
图2 最小系统电路图
图3 CAN收发模块电路图
式中:fOSC——晶振频率,为16MHz;SYNDIV——时钟合成分频系数,设置为3;REFDIV——时钟参考分频系数,设置为1;fPLL——锁相环时钟;fBUS——总线时钟。
4.1.2 ECT定时器
图4 显示屏与按键模块电路图
S12X系列单片机具有8个16位缓冲寄存器的输入捕捉(IC)/输出比较 (OC)通道。ECT定时器模块各个功能的使用,需要依据MCU型号确定可用的寄存器资源,其中主要的寄存器有:输入捕捉/输出比较选择寄存器 (TIOS)、计数寄存器 (TCNT)、控制寄存器 (TCTL1、TCTL2)、系统控制寄存器 (TSCR1、TSCR2)、中断使能寄存器TIE、中断标志寄存器 (TFLG1、TFLG2)、输入捕捉/输出比较寄存器TCx等。具体程序见图5。
图5 ECT定时器程序
4.1.3 MSCAN模块
首先,此设计的总线波特率为250kb/s,当MSCAN模块进入初始化模式后 (INITRQ=1且INITAK=1),需要通过设置总线定时器寄存器CAN0BTR0与总线计数器寄存器CAN0BTR1来实现。计算公式如下:
位时间=预分频值×(1+时间段1+时间段2)/fCANCLK=8×(1+2+13)/32=4
即,波特率为1/位时间=250kb/s,图6为其程序代码。
图6 MSCAN模块程序代码
其次,通过设置控制寄存器CANCTL1=0xC0,使能MSCAN模块,且使用总线时钟源。最后设置控制寄存器CANCTL0=0x00,退出初始化,回到一般运行模式。
4.1.4 中断向量
此工装涉及到3种中断:CAN0接收中断、按键 (H口)中断与定时器1中断,根据中断源设置其向量地址,中断向量程序代码如图7所示。
图7 中断向量程序代码
4.2 主函数
此工装的主函数流程如图8所示。
此工装发送的报文格式如图9所示。
填写报文的内容为:①ID——0x18f00c87;②RTR——0,表示数据帧;③数据——0x00 00 00 00 00 00 00 C9,表示开启工作,占空比100%,如果调节按键3或按键4,此数据中bit1~bit7会变化;④数据长度——8;⑤数据优先级——0,表示最高。
CAN0发送与接收函数流程如图10所示。
其中,ID为扩展帧格式,对标识符寄存器IDR0~IDR3写入程序与读取程序分别如图11和图12所示。
图8 主函数流程图
图9 报文格式
图10 CAN0发送与接收函数流程图
图11 写入程序
图12 读取程序
4.3 中断函数
CAN0接收中断函数流程图与按键中断函数流程如图13与14所示。
图13 CAN0接收中断函数流程图
5 总结
此工装在现有功能基础上可以增加LIN与PWM模块,以适用不同型号的产品,还可以扩展存储芯片,并增加USB模块,这样就可以存储生产线的检测记录,并将数据导出到上位机,便于品质跟踪。
图14 按键中断函数流程图