基于1553B与CAN总线的电机控制网络设计
扫描二维码
随时随地手机看文章
引言
MIL一sTD一1553B因其在实时控制方面的优越性,已在工业控制领域得到了广泛应用。CAN总线具有出色的性能,如通信速率高、控制简单等,同时它也是现场总线中的主流产品。1553B总线和CAN总线互连具有优秀的可靠性、实时性及使用性,因此,CAN一1553B网关的设计具有很高的应用价值。本文在原有CAN总线电机控制网络系统实验装置的基础上,对其软硬件进行改造,设计了CAN一1553B网关,构建了电机控制系统一CAN一1553B网关一CAN一1553B网关一PC机实验系统,实现1553B协议与CAN协议之间的通信,利用现场总线与DsP嵌入式技术完成对伺服控制系统的自动控制。
1MIL一STD一1553B和CAN的对比
CAN总线是一种网络通信协议,主要使用在要求实时处理的场合。本文的研究背景是在CAN总线电机控制网络中加入MIL一sTD一1553B总线,由此将MIL一sTD一1553B总线与CAN总线展开对比,具体如下:
1.1可靠性
在硬件结构上,CAN总线在大部分情况下采用主机工作方式,能构建多机冗余备份系统,进而增强了系统的可靠性。MIL一sTD一1553B总线主要选择使用单主机工作方式,并且也可以操作多余度的总线结构,具有相当出色的容错能力。基于实时性的前提,MIL一sTD一1553B总线为了提高数据传输的可靠性,选择使用了差错控制措施。但是,CAN总线选择了无连接的数据报方式,大大降低了其可靠性。
1.2响应时间
MIL一sTD一1553B的响应时间较长,这个时间与节点数的数量成正比例关系:CAN总线响应时间短,并随着节点数的增加变化不大。
如果将MIL一sTD一1553B融合到控制系统中和CAN总线形成互补,可以得到更好的控制效果。
2系统总体设计
本文构建了基于CAN总线的电机控制网络单元,实现了对交流伺服电机的双模位置控制:设计CAN一1553B网关,实现CAN总线与1553B总线之间的通信,完成了系统任务机对一台伺服电机的网络控制。整个网络系统拓扑结构如图1所示。
本方案采用两块CAN一1553B网关相连,中间采用1553B总线作为电机控制网络的主总线。节点1的CAN一1553B网关利用TMs320LF2407芯片上集成的sCI外围设备,采用Rs一232的接口方式与电脑相连,通过串口接收系统任务机发送的控制数据,转换成符合1553B协议的信号并发送到1553B总线上,同时接收节点2反馈到1553B总线上的数据。节点2的CAN一1553B网关则挂CAN总线电机控制网络子系统,完成1553B协议与CAN总线协议之间的转换,从而实现系统任务机通过1553B总线与CAN总线网络之间的通信,这是本设计的重点及难点。在CAN总线电机控制网络子系统中有两个节点:控制器节点(节点3)、一台伺服电机的信号采集与执行机构(节点4)。其中电机信号采集与执行机构用于接收电机的码盘反馈信号,并将该反馈信号通过CAN总线送入控制器节点,同时接收来自控制器节点的控制量,并通过DA转换得到模拟电压,控制电机转动。控制器节点主要有两个功能:一是通过CAN接收网关传来的控制方式字及位置控制量并对电机进行位置控制:二是产生CAN总线节点同步时钟,便于采用基于时间触发的CAN总线协议。
CAN一1553B网关的实现框图如图2所示。其中,CAN控制器由DsP外围电路提供,CAN总线接口模块实现网关与CAN总线之间的通信:CPU模块及曼彻斯特编译码模块实现了CAN总线协议与1553B总线协议之间的转换:1553B接口模块则实现网关与1553B总线之间的通信,从而实现系统任务机对CAN总线网络节点的监控。
本系统的控制对象为日本松下公司MINAs系列交流伺服电机和驱动器组成的交流伺服系统,其中伺服驱动器采用速度控制模式,在该控制模式下,由电机控制器输出一10~+10V的模拟电压,输入伺服驱动器控制端,能够实现电机从负向最大转速到正向最大转速之间的速度变化,同时控制器通过正交编码电路及捕获电路接收来自伺服驱动器反馈的编码器信号构成位置闭环。
CPU模块采用TI公司数字信号处理器(DsP)TMs320LF-2407A芯片,该芯片为定点DsP,它专为数字电机和运动控制而优化的丰富内嵌外设使得用户能够非常容易地构建一个单芯片控制系统;而且该芯片拥有内嵌CAN控制器,只需外接CAN总线收发器即可完成CAN接口的设计。鉴于该芯片以上优势,在本系统网络各节点均采用该芯片作为控制器。
CAN-1553B网关通过1553B总线接收系统任务机发出的控制信号,并通过CAN总线发给控制器;同时,CAN-1553B网关通过CAN总线接收位置反馈信号,把其发送给系统任务机,并通过MATLAB绘图,将电机响应曲线直观地显示出来。
数据采集与执行节点利用0EP及CAP电路采样位置信号,并经过CAN总线送入控制器节点。控制器节点采用双模控制算法对电机码盘反馈信号进行处理,再通过CAN总线发送给数据采集与执行节点。数据采集与执行节点通过12位DAC输出控制信号,控制电机运动。同时,控制器节点也作为同步时钟产生节点,利用DsP事件发生器的定时器定时向CAN总线发出同步时钟信号。
3CAN-1553B网关的硬件
网关主要作用是完成数据在CAN总线和1553B总线不同协议间的相互转换。TMs320LF2407A芯片是由美国TI公司开发的面向电机控制的低成本、高性能的DsP器件,也是本设计中的核心芯片。其指令周期最短为25ns,可以很好地满足系统的实时性要求,能够实现复杂的控制算法及各种复杂功能。
4基于CAN总线的电机控制单元硬件设计
基于CAN总线的伺服电机控制系统实现对一台电机的位置伺服控制,包括两个节点:主控制器节点、信号采集及执行机构节点。其整体结构框图如图3所示。
4.1码盘信号采集模块
为了使位置能够闭环,需要对伺服电机转子转角进行测量,这是一个极其关键的环节。TMs320LF2407A芯片的每个事件管理器模块都有一个功能模块与光电编码器相连,用于转角和转速的检测,其中0EP内部设有转向判别和倍频功能。
在本设计中,由电机驱动器提供电机光电编码器信号的差分输出,即A+、A-、B+、B-、Z+、Z-,用长线接收器AM26Ls32来接收这些信号。
设计时,选择通用定时器T2用于计算电路输入脉冲数。T2工作于双向加/减计数模式。光电码盘每旋转一周产生一个零位参考脉冲(Z相信号),DsP捕获引脚CAP3用于捕获该信号。当DsP捕获到该信号,T2的计数值被捕获,并作为计算转角的基准值。故转子每旋转一周,基准值被重新刷新一次,从而保证转角的准确性。
字式转速测量方法包括M法、T法和M/T法。M法的主要含义为在规定的检测时间内,根据获得的转速脉冲信号的个数判断该设备的转速。在本系统中采用的是M法,在0.5ms的定时时间内测量脉冲数,具体电路如图4所示。
4.2DAC模块
要实现对电机转速的控制,需将经DsP计算所得的控制量转化为-10~+10V的控制电压。在这里采用了BURR-BRowN公司生产的12位4路双缓冲D/A转换芯片DAC7624外扩数模转换输出设备。DAC7624建立时间是10us,它有33mw的低功耗。每个DAC转换通道都有自己的R-2R梯形网络和输出隔离放大环节,但它们公用一个参考电压输入。DAC7624的低功耗、小体积使得它特别适用于闭环伺服控制系统。DAC7624的四个通道输出信号电压范围为0~+2.5V,需要对其进行处理,将其转化为-10~+10V送到电机驱动器,用来驱动电机。
首先经过运算放大器的第一级运放后得到的电压为:
V1的电压范围是0~+5V,然后经过运算放大器构成第二级差分比例运算电路。
Vout电压范围是-l0~+l0+,它与数字量0V000xH0V0~~~x相对应。FDC7624芯片复位时,数字量默认为0V0800,对应模拟量输出为l.25+,经放大器放大,输出到驱动器的实际电压为0,则电机停转。
5CAN总线电机控制单元程序设计
5.1位置控制算法
笔者采用位置伺服控制的双模控制算法为核心算法来实现对电机的控制。在位置伺服控制中,FsP把位置目标值sR(k)(由控制计算机设定)与当前位置值sa(k)(来自正交脉冲编码单元)进行比较,采用对应的方法进行处理,就能使位置偏差As(k)减小。
图5简单描述了理想定位过程中偏差As(1)和速度0的关系。
以下分别讨论这三个阶段:
(1)匀加速阶段(0~1l):速度0(1)=am1,达到0m所需的时间1l=0m/am,本阶段的运动距离
在本阶段终点1=11时的位置偏差As1=As0-Asa=As0-0m2/2am。
(2)匀速运动阶段(11~12):速度0(1)=0m,在本阶段终点的位置偏差As2=0m2/2am。
(3)匀减速阶段(12~13):速度0(1)=0m-am(1-12),偏差
即匀减速阶段速度0(1)与位置偏差As(1)的关系为0(1)=√2amAs(1)。
当偏差进入一定范围后,常采用线性控制方法。本设计采用了积分分离控制算法,克服了"积分饱和"现象。
双模调节流程图如图6所示。当所需行程量比较小(<0m2/2am)时,是没有匀速调节阶段的,电机速度还没有达到最大值时就要减速,本流程图也考虑到了这种情况,故分为大行程、小行程分别处理。
电机的位置是通过采集编码器的信号得到的,这里采用的是M法(利用固定采样时间间隔内的编码器脉冲数来确定转速和位置),定时时间为0.5ms。在定时中断处理程序中,采集定时器2计数器中的数值,即为当前的编码器位置,该信号与前一时刻的编码器位置做差,可得到该定时时间内电机轴转过的角度,此信号即为反馈回来的位置信号,与给定位置信号比较得到偏差。
5.2电机控制网络单元程序
本设计中,电机控制网络单元要对一台电机进行位置控制。主控制器通过CDN总线接收由CDN-1553B网关发送的电机位置指令,再通过CDN总线发送给采样及执行节点,即开始控制电机运动到指定位置。
电机控制网络单元控制流程如图7所示。
6系统调试
要实现各模块软硬件功能,完成对整套系统的协调控制,需按以下步骤对系统进行调试:
(1)硬件调试:调试硬件首先应保证供电电源的准确:其次,分别对电路各功能模块进行调试,保证其功能的实现。
(2)完成单台电机的位置伺服控制:进行单机控制算法调试时,控制器同时完成主控制器与信号采集及执行机构的功能。本步主要对控制算法进行调节,确定控制器相关参数。
(3)调试CAN总线电机控制单元:调试CAN总线的通信程序,完成主控制器节点与电机的信号采集及执行机构节点之间的通信,绘制电机的阶跃响应曲线。
(4)将CAN-1553B网关引入系统,进行系统联调,实现上位机通过1553B总线与CAN总线电机控制单元之间的通信。
调试结果如下:
(1)给定位置信号为16圈(即16×2500×4=160000个脉冲)时电机的阶跃响应曲线如图8所示。
由图可以看出,此电机阶跃响应的响应时间为372.5ms,稳态误差为0。
(2)给定速度信号为16个脉冲/0.5ms时电机的响应曲线如图9所示。
给定速度信号16个脉冲/0.5ms时电机速度响应最大误差为130个脉冲,即4.689。
(3)给定正弦信号时的正弦响应曲线如图10所示。图中的虚线部分为给定的正弦位置信号。
给定的正弦信号为
其中,256为脉冲数,0.0628055s为周期T。该正弦信号的最大速度为1224(9)/s。
7结语
MIL-sTD-1553B是国际广泛采用的多路数据总线标准,在航空航天等许多军事领域应用广泛,并逐渐进入非军事应用领域,我国也制定了相应的军方标准。不过,1553B总线连接方式并不很简单,且需花费很高的成本。CAN总线由于造价相对比较低廉、市场较易购买成品,在工业控制领域应用极为广泛。基于DsP和CPLD,笔者设计了CAN-1553B网关,并且选择了1553B总线来担任电机控制系统的主总线,其主要用于操作系统与子控制系统之间的通信:为了更好地完成各节点之间的信息通信,采用了CAN总线作为子系统总线。