基于CAN总线分布式无刷电动机控制系统的设计摘要:介绍一种利用积分编码器来检测转子磁极位置,形成电子换相逻辑,由DSP56F807计算处理,进行速度和电流的PI控制调节,通过CAN现场总线进行数据的发送和接收,形成的分布式电机控制系统。详细描述了控制系统的硬件构成和软件实现流程,最后给出了实验结果和结论。 1引 言 CAN(Contoller Area Network)总线是一种分布式实时控制系统的串行通信局域网。其信号传输采用短帧结构,因而传输时间短,受干扰的概率低,具有实时性强、高性能、高可靠性等优点,被广泛应用于各种控制系统中的检测和执行机构之间的数据通信。无刷直流电动机在运行过程中要进行换相控制和转速控制,而换相控制需要有位置反馈机制,比如霍尔元件、光电码盘,或者利用梯形反电动势特点进行反电动势过零检测等。电机速度控制也需要根据位置反馈信号,计算出转子速度,再利用PI或PID等控制方法,实时调整PWM占空比等来实现定子电流调节。MOTOROLA公司的DSP56F80X系列整合了通用数字信号处理器快速运算功能和单片机外围丰富的特点,具有较强的数据处理能力和控制功能。其中DSP56F807是该系列中适用于工控领域应用而设计的一款新型芯片,它内部集成有GPIO、ADC、SPI、SCI、PWM、编码器输入、错误检测控制、CAN控制器等丰富的控制资源。在本系统中,利用DSP56F807和CAN总线的各自优点构建一个高速、稳定的分布式电机控制系统。 2分布式控制系统的结构 本系统主要分为两部分:其一为CAN网络通讯,实现分布式监控;其二为执行部件,控制电机动作。硬件整体框图如图l所示。 该系统结构可分为三个层次:第一层是PC机与CAN总线接口层。实现PC机与CAN通讯总线之间的可视化操作控制,采用CAN总线通讯适配卡实现,本系统中采用了PCl9820CAN总线接口卡;第二层为CAN总线与DSP控制器56F807接口层。该层实现CAN总线和DSP56F807控制板的CAN控制器的物理接口和通信;第三层作为56F807的GPIO口无刷直流电机的驱动接口,采用对56F807控制板的电气隔离保护和电机的大电流驱动,完成电机的实际动作。图1中的外虚框为控制板,内虚框为DSP56F807控制芯片。 CAN总线与内嵌CAN控制器的DSP56FS07接口电路如图2所示,在图2中,PCA82C250T为DSP56F807内嵌式CAN控制器与CAN总线接口的收发器,是驱动CAN控制器和物理总线间的接口。8引脚封装,传输速率可达1Mbps。它提供了对CAN总线的差动发送能力以及对CAN控制器的差动接收能力;电阻R10为CAN驱动器的终端匹配电阻。J1是一个六端口接插件,用于连接到PC机上的CAN总线适配卡PCCAN的D型九针接口。R10可以通过J13连接器来实现允许或禁止。
DSP控制芯片与无刷直流电动机的驱动接口电路如图3所示,DSP56F807内部有两个PWM模块,可以控制两个电机,我们采用了PWMA模块进行三相无刷电动机控制,驱动电路接口中MCl4504B实现DSP的TL到CMOS的转换,用以驱动三相TMOS功率桥MPM3003,对三相无刷电动机通电。其中MPM3003是MOTOROLA公司的三相功率桥,采用12引脚的单列直插封装,内部由上桥臂的三个P沟道功率场效应管和下桥臂的三个N沟道功率场效应管组成,能正常工作于60 V电压下,输出电流10A。DSP56F807主要作用是接受来自CAN总线的命令控制字,并按控制字对三相电机执行加速、减速、正反转等动作控制,即对DSP56F807芯片进行编程,采集积分编码器的数据,判断转子的位置,并计算转子的转速,经PI运算后,输出六路占空比可控PWM信号,经电路的转换和功率驱动,依次控制电机三相绕组的导通。在此无刷电动机控制中要用到DSP56F807的相位检测模块、错误保护模块、过 电流保护模块、PWM模块等。需注意的是在电机控制过程中,首先要根据所用电机参数,估计控制电机的频率范围,频率过高会引起电机的失步,而过低则不能驱动电机。 3分布式控制系统的软件设计 本系统的软件设计是完成基于CAN总线的分布式控制系统的关键所在。CAN总线的多机通讯由软件编程实现数据的接受和发送。在两个CAN节点中,一个为上位计算机中的PCICAN接口卡,另一个为DSP56F807控制板,进行现场的三相无刷直流电动机的控制,同时又与上位计算机进行CAN通讯,实现两节点通讯,接受远程节点的请求数据帧,并发送数据帧,把现场的状态和相关数据通过CAN接口,发送到上位计算机,便于计算机监视和处理。 3.1现场控制器的软件设计 现场控制器采用DSP56F807芯片,软件部分主要由现场控制电机部分和CAN通讯部分组成。对于DSP56800/E系列产品,Motorola公司提供了两个有力的软件开发工具:一个是Codewarrior集成开发环境,另外一个是Embedded SDK。较高版本的Codewareior集成开发环境具有一个ProcessorExpert(PE)插件接口,PE继承了SDK的开发经验,并且得到进一步优化和提高。开发者可以不用SDK,而在带有PE的Codewarrior集成开发环境下进行软件开发,并且还可以把以前SDK下的程序移植到PE环境下。作者的开发是在Codewarrior 6.0下进行的,主要包含由以下几个内容: (1)现场控制系统的系统初始化,包括CPU的初始化、中断相量的初始化、CAN模块的初始化、PWM的模块的初始化、相位检测块模块的初始化等。根据电机的起动指令和转子位置信号,经运算后生成电机控制PWM频率信号,PWM模块被设置为互补模式,转换频率为16 kHz,PWM通道的屏蔽和交换由PWM通道控制寄存器控制,PWM通道控制寄存器的内容来自于相位检测信号,速度控制采用PI控制算法,实现电机的转速控制。程序的主流程如图4所示。
(2)CAN信息的发送部分,CAN发送和接收采用定时中断方式,每50 ms中断一次。MSCAN模块具有三个发送缓冲器结构,可预先安排多个等待发送的信息,获得最优化的实时性能。每个发送缓冲器带有一个优先级寄存器(TBPR),用户可以通过编程确定信息发送的顺序。CPU通过一组发送缓冲器空标志位(TXE[2=0]),确认有效的发送缓冲器,当标志位为1时,CPU将标识符、控制位和数据内容存储到发送缓冲器中,并将该标志位清零。当标志位再次置为1时,说明缓冲器成功地发送了信息,并产生发送中断,重装发送缓冲器。发送流程图如图5所示。 (3)CAN信息的接收部分,MSCAN具有双缓冲器的接收结构,两个缓冲器轮流映射到一个存储器区域。后台的接收缓冲器(RxBG)单独地与MSCAN相联系,而CPU只能访问前台的接收缓冲器(RxFG),这一结构简化了软件的处理过程。接收流程图如图6所示。当MSCAN控制器接收信息时,先将要接收的信息的标识符与接收缓冲器的标识符进行比较,只有标识符相同的信息才能被接收。MSCAN控制器的接收滤波器使得接收缓冲器可以忽略更多的位来接收信息。 图5 MSCAN的发送流程 图6 MSCAN的接收流程 3.2上位计算机的监控软件设计 本系统使用工业控制计算机作为上位机,采用PCI一9820双路非智能CAN接口卡,该接口卡配备两通道的九针D型逻辑独立CAN接口,每个通道有光电隔离增强系统在恶劣环境中使用的可靠性,接口卡采用WDM驱动程序支持WIN98、WIN2000和XP操作系统。PCI_9820提供如VCI_[nitCAN()、VCI_ResetCAN()、VCI_SkmCAN()、VCI_ReadCAN—Status()、VCI—GetReceiveNum()、VCI_ClearBuffet()、VCI_Transmlt()和VCI_Receive()等丰富的函 数,方便用户调用和编程。 系统的监控软件采用Visual c++6.0来编程施实现的。本设计根据软件总体设计的要求和过程,对系统的信息管理及监控程序按不同的功能进行功能分解,划分为不同的模块。计算机控制系统的信息管理及监控软件主要包括CAN总线数据通信、设备状态控制和数据管理三个部分。数据采集和通信模块利用PCCAN接口卡,接收现场控制器上传的电流、转子位置、故障点、电机的运行状态等数据,用于记录、存储和分析。设备控制部分根据采集到的数据判断系统当前的运行状态,并可通过修改运行参数对设备工作状态进行调整。数据管理部分负责数据的统计、查询、打印输出以及数据库的备份和维护。系统软件整体结构框图如图7所示。 4结语 DSP56F800/E系列兼有DSP的高速信号处理能力和MCU的丰富外设,在很多控制领域,都是较为理想的控制芯片,而CAN总线具有多主站运行和分散仲裁以及广播通信的特点,CAN总线不分主次节点可在任意时刻主动向网络上其它节点发送信息,实现数据的可靠通信。因此将CAN总线与DSP控制系统的技术融合,将是分布式控制系统的发展趋势之一。 本系统是针对三相无刷直流电动机的分布式监控系统而设计的,目前运行良好,其技术完全可以移植到楼宇自动化、工业机器人等其它需要远程监控的场合。
|