基于CAN总线的智能车伺服控制系统
2013-10-22李冀辰高凤岐王广龙乔中涛
李冀辰,高凤岐,王广龙,乔中涛
(军械工程学院纳米技术与微系统实验室,河北石家庄 050003)
0 引言
伺服控制一直是研究的热点,但有许多技术问题仍需研究,比如:应用于高精度跟踪领域的无刷直流电动机伺服控制技术和微电机的多功能模块化问题[1]。这些问题在对智能车控制等方面的工程应用上产生很大障碍。
智能车方便在危险有害环境下作业,在军事上的应用日趋广泛,可以携带爆破装置摧毁重要目标,可以安全有效地排爆,完成核废料处理等任务。为满足智能车控制的实时性和多电机控制的协调性需求,本文提出了一种基于CAN总线的以DSP为核心的智能车电机伺服控制系统。CAN总线是一种多主方式串行通信协议,具有较高的通信速率,使用差分电压进行传送,具有较强的抗电磁干扰能力,广泛应用于各种控制系统中[2]。结合DSP技术能实现对某智能车的运动控制和反馈测量等功能,利用CAN总线完成指令和参数的传输,同时DSP高速处理节点反馈的数据,使得伺服控制系统完成复杂的运动控制,使用更加灵活和方便,能更好地应用在各种分布式的控制系统中[3]。
1 系统结构与工作原理
基于DSP和CAN总线的智能车电机伺服系统由上位机、USB-CAN转换模块、CAN总线、DSP驱动器和直流无刷(BLDC)电机组成。总线系统通常由上位机和伺服驱动器构成,而本文的系统中挂有多个节点,每个节点有固定的ID,各个节点通过DSP收发和处理数据。USB-CAN转换模块实现上位机与CAN总线之间的通信,通过上位机进行监控,可以方便对各个节点控制和管理,完成对BLDC电机的复杂控制。CAN系统结构如图1所示。
2 系统硬件设计
基于CAN总线的BLDC电机伺服系统采用模块化设计方法,由CAN通信模块、智能功率模块(IPM)、电源模块、光耦隔离模块、电流和电压检测模块、保护电路模块、DSP控制模块及外围电路模块组成。DSP控制和CAN通信是系统的核心。
图1 伺服控制系统结构框图Fig 1 Structure block diagram of the servo control system
2.1 DSP 控制模块
本系统的控制模块由DSP芯片TMS320F28335和电机驱动模块构成,驱动部分采用驱动芯片和MOSFET结合的形式,适用于中小电机。DSP输出的PWM经过光电隔离后送入驱动芯片,由驱动芯片驱动MOSFET达到对电机的变频调速。驱动芯片选用IR2136。整体控制模块的结构框图如图2所示。
图2 DSP控制模块Fig 2 DSP control module
DSP控制模块除了电机驱动部分,还要有速度信号(或位置信号)、直流母线电流、母线电压的检测。通过这些信号的检测,利于整个系统的PID控制。针对位置信号,转子位置传感器上带有霍尔元件,传感器输出为3路高速脉冲信号H1,H2,H3用于检测转子的位置。根据转子位置信号改变电动机驱动电路中功率管的导通顺序,实现对电动机转速和转动方向的控制,并且DSP中的A/D转换器将采集到的电机电流和电压信号转换为数字信号进行处理,为下一步控制做准备。
2.2 CAN 通信模块
该DSP芯片集成了增强型CAN总线通信接口(eCAN),它使主监测器能够方便地接入到CAN总线系统中。系统设计不必再外加CAN控制器来实现CAN总线的底层协议,更加方便可靠[4]。该模块支持CAN 2.0B协议,总线通信速率最高可达1 Mbps,拥有32个邮箱,每个邮箱都可配置为接收邮箱或者发送邮箱。CAN总线与内嵌CAN控制器的接口电路如图3所示。
SN65HVD230是3.3 V的CAN收发器,它具有高速、斜率和等待3种工作模式,图中将RS通过一个10kΩ的电阻接地,选择为斜率控制模式,这样就减少了因电平快速上升而引起的电磁干扰。并且根据ISO 11898标准,在CAN总线上的终端节点增加120 Ω的终端电阻,防止了总线信号的反射。
图3 控制器的CAN通信接口电路Fig 3 CAN communication interface circuit of controller
3 伺服软件程序设计
在DSP控制中,关键是软件的设计,尤其是程序中各个寄存器的配置。在系统软件设计中主要包括了初始化模块、电机控制模块、状态监控模块以及数据通信模块[5]。数据流图如图4所示。
图4 系统软件数据流图Fig 4 Data flow diagram of system software
3.1 初始化模块
伺服控制系统的初始化主要包括系统的初始化和CAN模块的初始化。系统初始化主要是针对看门狗模块和PLL模块进行设定,配置系统的时钟。在CAN初始化中,包括的配置GPIO引脚工作方式、初始化邮箱控制区和标志位,重点是进行波特率和邮箱初始化的配置。
在配置波特率时,高速外设时钟由系统时钟SYSCLKOUT和预定标寄存器HISPCP决定。若HISPCP=0,则高速外设时钟HSPCLK=SYSCLKOUT;如果HISPCP≠0,则高速外设时钟HSPCLK=SYSCLKOUT/(HISPCP×2)。在邮箱初始化过程中,主要是配置邮箱的方向、标识符、消息帧的类型、是远程帧还是普通数据帧、消息的数据长度等内容。
在配置邮箱的消息标识寄存器MSGID时,要熟悉寄存器各位的内容。IDE是标识符扩展位,当为0时,是标准标识符模式,消息标识符存储在ID.28~18中;当为1时,是扩展标识符模式,消息标识符存储在ID.28~0中。本文采用了标准标识符模式,接收邮箱寄存器中MSGID设为0x00040000,则对应的实际ID为1。不同的节点邮箱寄存器MSGID不同,利用CAN进行数据传输和协调控制。消息寄存器的位情况如图5所示。
3.2 控制模块
图5 消息标识寄存器MSGIDFig 5 Message identification(MSGID)register
在控制模块中,首先进行系统和CAN模块的初始化,接下来,PC机通过控制界面设定参数,参数通过USB-CAN通信卡转换为CAN信号,发送给DSP的邮箱,DSP接收到信息后,电机控制程序中相应参数被赋值,电机被控制。运动控制系统软件设计的关键是接收主控计算机传来的运动控制指令后,电机是否能够达到要求的速度和角度[6],如果不满足精度要求,就要调用电机调节子程序,利用速度和位置双闭环PID控制完善整个系统。实时地改变控制参数可以实现电机的正反转、加速、减速以及角度的控制[7]。其流程如图6所示。
图6 控制模块软件流程图Fig 6 Software flow diagram of control module
3.3 反馈模块
对各电机控制单元来说,控制率的调节主要是PID参数的校正。当上位机通过CAN总线设定目标位置和初始PID参数后,DSP在执行控制算法的同时,记录下电机运行的位置信息、编码器指示的实际位置信息、电压和电流的采样值,并通过CAN总线传送给上位机,反馈的数据是十六进制,转换为十进制后显示在GUI界面上,同时DSP利用反馈的数据进行运算,计算出超调量、稳态精度、调节时间,速度等参数,实现自调整PID控制。
4 GUI通信界面
本系统利用CAN总线实现复杂的网络通信,作为通用的伺服驱动系统,需要良好的人机交互界面实时监控。DSP的CAN通信程序测试成功,利用VC++编写了通信界面完成上位机和下位机通信。通信界面分为发送区和接收区两大部分。
在发送区首先设定CAN节点的邮箱编号,DSP的通信和控制部分运行后,可以利用界面设定电机转动的方向、速度和角度,发送数据对电机进行实时的操作。在程序内部发送的操作指令完全按照CAN协议的数据格式,DSP接收后直接处理。在接收区,DSP将伺服驱动器直流母线电压电流值和速度值放入CAN模块的邮箱中,反馈到CAN总线上后显示在界面上实时监测,实现良好通信,利于对系统进行监测和管理。
5 实验结果分析
为了检测这个系统的准确度和重复性,对电机转速进行多次设定和控制,测得的数据如表1。
表1 实验数据表(单位:r/min)Tab 1 Experimental data table(Unit:r/min)
分析上表数据,控误差不超过1%,准确度高。对于系统的重复性,在相同测量条件下对转速进行连续多次测量,所得4个正反行程反馈值的绝对误差结果如图7,可见误差在很小的范围内波动,系统运行稳定,采用标准法计算得到系统重复性不超过1%,系统的重复性良好。
图7 4个正反行程反馈值误差分析Fig 7 Error analysis of four positive and negative stroke feedback value
6 结论
本系统基于CAN总线和DSP实现对智能车伺服控制,具有可靠性高、功耗低、体积小等特点。方便扩展DSP的快速运算能力还可以实现更为复杂的控制算法。实验表明:该系统可以对智能车运动快速、准确和稳定地控制,满足恶劣战场环境下对智能车的实时控制要求,具有通用性、实用性和可扩展性等特点,具有一定的实用价值。
[1] 马瑞卿,刘卫国.无刷直流电动机控制中的几个技术问题分析[J].微电机,2012,45(5):77 -79.
[2] 王一帮,李 芳,严奉轩.基于CAN总线的远程 H2监控系统[J].传感器与微系统,2012,31(3):103 -105.
[3] Shi J Z,Zhang H M,Liu X.Novel integrated position measurement unit for stepping motor servo control[J].Measurement,2011,44:80 -87.
[4] 何艳芳,刘德顺,陈晓可.基于CAN总线的电动轮自卸车运行状态监测系统设计[J].仪表技术与传感器,2011(9):59-61.
[5] 赵 君,刘卫国,谭 博.基于CAN总线的分布式多电机控制研究[J].测控技术,2008,27(8):70 -73.
[6] 文海鸥,向中凡,虞君锚.基于 DSP,FPGA和模糊自调整PID控制的仿人机器人控制系统的设计与实现[J].机床与液压,2011,39(21):101 -104.
[7] Mezouki R,Davila J A,Fridman L.Backlash phenomenon observation and identification in electromechanical systems[J].Control Engineering Practice,2007,15(4):447 -457.