基于CAN总线的直流无刷电机控制系统*

2012-08-28 06:50辛龙威李晓卉方康玲
电机与控制应用 2012年10期
关键词:无刷电机收发器串口

辛龙威, 李晓卉, 方康玲

(武汉科技大学信息科学与工程学院,湖北武汉 430081)

0 引言

随着人们对空气质量的要求不断提高,汽车排放问题引起了广泛关注。随着未来排放法规的推出,对柴油机排出的氮氧化物(NOx)和微粒(PM)限制越来越严格。采用尿素选择性催化还原(Selective Catalytic Reduction,SCR)技术的发动机可以更有效地降低NOx的排放,并且有明显的节能特点,它将是我国重型柴油机达到第Ⅳ阶段排放标准的最佳选择。

计量泵是柴油机SCR系统的重要组成部分,通常采用直流无刷电机(Brushless DC Motor,BLDCM)往计量泵中泵入尿素溶液以达到对尿素的喷射进行控制。但是,电机在控制尿素喷射的同时,还需要通过 CAN总线与汽车门控单元(Door Control Unit,DCU)保持通信,以保证车辆的正常运转。针对该需求,本文在分析了CAN总线的主要特性基础上,提出了一种基于CAN总线的BLDCM控制系统。

1 CAN总线标准

CAN总线最早是由德国Bosch公司推出,用于汽车内部测量与执行部件之间的数据通信协议。随着CAN总线在车辆上的广泛运用,为规范通信系统和各系统的兼容性,1993年11月ISO颁布了道路交通运输工具数据信息交换高速通信局域网(CAN)国际标准ISO11898,为控制局域网的标准化和规范化铺平了道路。根据ISO定义的OSI模型,CAN2.0B规范定义了物理层和数据链路层规范,这为不同的CAN总线用户制定符合自身需要的应用层协议提供了很大的便利,如果需要建立更加完善的系统,还需要在CAN2.0B的基础上选择合适的应用层协议,CAN 2.0B协议包括标准帧和扩展帧两种报文格式。

CAN总线的主要特性如下:

(1)工作于多主方式,每个节点都可成为主机。

(2)通信介质可为双绞线,同轴电缆或光纤。

(3)CAN的通信距离最远可达10 km,通信速率最高达1 Mbps。

(4)CAN协议采用CRC检验,并可提供相应的错误处理功能,保证了数据通信的可靠性。

(5)具有点对点、一点对多点和全局广播等多种传播方式。

(6)自动关闭。CAN总线可以判断出总线上错误的类型是暂时的数据错误还是持续的数据错误。当节点发生持续的数据错误时,可自动关闭,脱离总线。

2 系统结构

基于CAN总线的BLDCM控制系统主要包括单片机控制电路、以MC33035为核心的驱动电路、BLDCM(包含霍尔位置传感器)、D/A转换电路、CAN收发器电路和测速用到的滤波电路组成,系统结构框图如图1所示。

2.1 MC33035电机驱动模块

在本驱动电路中(见图2),MC33035为电机控制器,MC33039为电子测速器,MPM3003为集成MOS管驱动芯片。霍尔的信号反馈到测速电路,测速电路经F/V变换,将位置传感器的输出信号变换成正比于电机转速的电压信号,经主控电路实现电机精确调速控制;位置传感器反馈信号经主控电路译码成六路驱动输出信号,控制逆变桥电路正常工作;为了更清晰地观察到测速效果,采用滑动变阻器来代替 D/A电路,通过MC33035的11脚来调节无刷电机的转速。

图2 电机驱动模块

图1 系统结构框图

本系统采用飞思卡尔的MC9S12DP512单片机,MC9S12DP512单片机是Freescale公司HCS12系列16位单片机的一种,其内部主要由MCU的基本部分和CAN功能模块组成[1]。无刷电机存在起动死区问题,所谓“起动死区”是指某些BLDCM转子处于特定位置时,起动转矩小,带载起动能力差,无论是加大电流、改变方向,还是断电重起都不能起动,只有人为让电机转动1个角度,避开死点,电机才能正常起动的偶发现象[2]。本文详细给出了MC33035电机驱动模块、测速滤波模块和CAN收发器模块的设计。

2.2 测速滤波模块

基于单片机的转速测量的方法很多,主要有频率测速法(M法)、周期测速法(T法)、MT测速法等。在本系统中采用的是T测速法,及通过测量霍尔传感器发出的相邻脉冲之间的时间T来计算出无刷电机的转速。通过利用一个定时器来测量两个脉冲间的时间T,上升沿触发定时器中断,对于T大于定时周期的情况,利用定时器溢出中断来计算。在脉冲信号送入MCU前须进行滤波限幅处理,这样不仅可以提高脉冲采集精度,而且可以有效防止线上干扰的瞬间突变对芯片I/O口造成的损坏。图3所示为滤波限幅电路,R1,C1,R2构成了一个一阶有源低通滤波器。

图3 测速滤波电路

2.3 CAN 收发器模块

CAN总线上信号使用差分方式传送,用显性(Dominant)和隐性(Recessive)分别表示逻辑“0”和逻辑“1”,两条信号线被称为CAN_H和CAN_L。在隐性状态时,CAN_H和CAN_L的电压差近似为0;在显性状态时,此时CAN_H=3.5 V和CAN_L=1.5 V。为了实现MCU与CAN总线之间信号的正常收发,必须在MCU和CAN总线之间接上总线驱动器。CAN总线驱动器根据不同的CAN物理层协议分为高速CAN总线驱动器和容错CAN总线驱动器[4]。在本系统中采用的是高速CAN总线驱动器PAC82C250,收发器电路如图4所示。

图4 CAN收发器电路

3 软件设计

单片机软件完成的功能主要是PLL锁相环倍频、串口通信、CAN总线通信、电机脉冲测速、无刷电机死区起动和D/A转换。主程序流程图如图5所示,硬件初始化包括串口初始化、定时器初始化和CAN模块初始化。当顺利完成系统初始化之后,通过检测位置传感器的位置,给出下一组编码来完成人为起动,从而避免进入起动死区。然后主程序进入循环,等待定时器溢出中断和端口输入捕捉中断,并调用相应的中断处理函数。在程序中,转速是一个全局变量,当霍尔脉冲下降沿来时,触发输入捕捉中断,更新转速。

CAN总线部分为软件的核心部分,因此在图6、图7中给出了详细的流程图。通过用单片机的CAN0发送数据,CAN1接收数据来模拟CAN总线的收发过程。通过对定时器溢出次数的控制,每隔500 ms通过CAN0将转速数据发送出去,将CAN1接收到的转速通过串口显示。

4 试验结果

根据前面设计的控制系统,外加BLDCM,构成了典型的BLDCM控制系统。采用SW57系列BLDCM,额定电压36 V,空载最大转速5 500 r/min,电机极对数为 2。通过单片机CAN0将转速发送,CAN1将收到的转速通过串口调试工具显示,系统工作正常。为了验证滤波电路的重要性,通过示波器测出了霍尔脉冲波形,图8为滤波前的波形,图9为滤波后的波形。由图8可发现,未进行滤波时,波形中具有大量高频干扰,严重影响数据测量,通过串口会发现出现8 000 r/min明显的错误和较大的波动。滤波后测得的数据波动在20 r/min以内,消除了高频干扰,达到了预期效果。

5 结语

基于CAN总线的控制系统硬件电路简单、易于拓展,针对汽车SCR系统中计量泵要精确控制电机转速的需求,提出了一种采用CAN总线的BLDCM控制系统,试验结果表明该系统能够正常工作,CAN模块能够正常收发数据,具有很好的市场前景。

[1]王宜怀,刘晓升.嵌入式系统——使用HCS12微控制器的设计与应用[M].北京:北京航空航天大学出版社,2008.

[2]郭农斐.一种扩展MC33035芯片起、制动性能的附加电路设计[J].北华大学学报:自然科学版,2007(6):569-572.

[3]周孝锋,陈晓宁,刘俊义,等.简易无刷直流电机测速仪的设计与实现[J].微电机,2009(11):86-88.

[4]李真花,崔健.CAN总线轻松入门与实践[M].北京:北京航空航天大学出版社,2011.

猜你喜欢
无刷电机收发器串口
基于STM32F407的无刷电机调速系统设计
基于无迹卡尔曼滤波的永磁无刷电机转矩脉动抑制研究
浅谈AB PLC串口跟RFID传感器的通讯应用
基于DSP的直流无刷电机电子控制方法研究
Virtex5 FPGA GTP_DUAL硬核两个收发器独立使用的实现
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
基于ARM的无传感器无刷电机水泵控制系统研究
基于RocketIO 高速串行回环通信的实现