葛研军, 赵 杨, 杨均悦
(1.大连交通大学 机械工程学院,辽宁大连 116028;
2.大连交通大学 电气信息学院,辽宁大连 116028)
多电机协同控制在造纸、印染、轧钢等工业领域有着广泛应用[1-3]。随着生产工艺的不断提高,对电机控制的高效性和实时性也提出了更高的要求[4]。DSP作为一种高性能处理芯片,能高效地完成对电机的控制。为了满足多电机控制性能和系统的协调运行,可构造双DSP协同处理核心,共同完成对电机的控制。DSP之间的数据传输是实现多电机协同工作的关键,针对控制系统实时性要求,往往采用共享存储器方式。共享存储器方式就是多个处理器之间通过一个共有的存储单元来完成数据的交互,其特点是实时性好、接口电路简单、数据传输量大[5]。双口RAM技术是一种数据共享的有效方式。
双口RAM是具有两组完全对称的地址线、数据线和控制线的静态RAM,同时还具有两套独立的中断逻辑、“忙”逻辑信号。双口RAM内部具有完善的仲裁逻辑电路,能很好地协调多处理器的读/写操作,十分便于多处理器系统的外部扩展应用。本文采用的双口RAM为IDT7024,是IDT公司研制的4 k×16的低功耗COMS型双端口静态RAM,其工业级最大访问时间为55 ns,非常适合芯片间高速、实时的数据通信要求,其功能框图如图1所示。
图1 IDT7024功能框图
DSP对双口RAM的读写操作有如下4种情况:(1)两端异步读写同一单元数据;(2)两端同时读同一单元数据;(3)两端同时对同一单元读写数据;(4)两端对同一单元分别进行读写操作。在第一、二种情况时,两个端口的存取不会出现错误,第三种情况会出现写入错误,第四种情况会出现读出错误[6]。
BUSY方式主要是通过将双口RAM的BUSY信号与DSP的READY信号相连,当一侧DSP先访问到双口RAM时,会使另一侧DSP产生响应等待信号,以达到同一时刻双口RAM的单侧使用。
中断方式是将DSP的外部中断源与双口RAM的左右中断信号相连。当一侧DSP向指定单元写入数据时,会使另一侧产生中断信号。此时DSP响应中断,并再向上级数据单元写入数据,从而释放中断。
旗语方式则是一种软件和硬件相结合的控制分配方式。双口RAM在硬件上提供了8个独立于存储器且具有锁存功能的SEM单元。将与存储器相连的地址线A0~A2经译码电路输入到SEM端口,双口RAM被分割成相互独立的存储单元。此时,数据最低位D0向双口RAM发送“0”后,读取SEM状态,检测存储单元的使用状态,从而制定相应的控制策略。在DSP使用完对应存储单元后,再向此单元对应的SEM写入“1”并释放其所占用的资源。
多电机协同控制系统中,一般要求各电机按某种比例关系同步协调运转,才能保证生产的正常运行。实际由于负载、干扰等因素使某些执行单元参数发生变化时,若协同控制中其他执行单元未及时响应,则会造成系统性能下降,甚至崩溃。
本文多电机控制系统实现四组异步电机系统的协同工作,系统原理图如图2所示。两组DSP TMS320LF2407A构成控制核心,各DSP输出的PWM控制信号通过经驱动模块完成对电机的调速控制。电机的转速、电流等反馈信号传回到DSP,形成对电机的闭环控制,提高了控制系统的稳定性。上位机通过串口发送调速指令,完成对电机速度的在线调控,IDT 7024采用中断仲裁方式实现DSP之间的数据传输。
图2 多电机协同控制原理图
双DSP的控制核心,通过双口RAM完成数据传输,其硬件接口电路连接如图3所示。
DSP与双口RAM之间需要进行电压匹配。DSP TMS320LF2407A为3.3 V供电的COMS芯片,双口RAM IDT7024为5 V供电的TTL芯片,这两组芯片之间需要进行电平转换,否则会造成数据无法识别。本系统基于SN74ALVC16244和SN74ALVC16245驱动DSP的地址线和数据线,以保证双DSP系统扩展的可靠性。
DSP对双口RAM读写操作时,要求读写操作与双口RAM的存储时间相匹配。若存储器的存储速度跟不上DSP的读写要求,则会造成数据丢失,从而使整个系统无法正常工作。本系统中的DSP读写一个字的时间约为100 ns、200 ns,双口RAM IDT7024的读写存储时间约为50 ns。双口RAM存储速度完全满足DSP的读写需求,无需等待时序。
图3 双DSP硬件接口电路
软件编制中,可将双口RAM的存储单元进行分割,以构造一个双向数据通路。两端DSP通过中断响应完成相关数据的传输。分割存储区可从根本上避免读写错误的发生,而且能提高数据传输效率。中断响应过程中可将数据读取到指定的数据区,以便于软件控制且能保证DSP性能。
系统中使用的双口RAM为IDT7024,为高速4×16 bit双端口静态RAM,其存取单元地址为0x000~0xFFF,为了保证系统的高效传递,将双口RAM分割为两个数据存储区0x000~0x7FF和0x800~0xF00。
两侧DSP经过CPLD输出双口RAM片选信号EXCS2,其信号逻辑为 EXCS2≤‘0’WHEN A15=‘0’AND A14=‘0’AND A13=‘0’AND IOS=‘0’AND STRB=‘0’ELSE‘1’;双口RAM存储器在DSP中被扩展为外部IO空间,其数据区域为0x0000~0x1FFF。双口RAM的存储区完全被覆盖,DSP对0x0000~0x0FFF操作就是对双口RAM的空间进行操作,同时需对DSP的CMD文件中对应的IO区域进行相关定义,然后在DSP的集成开发环境中观测IO数据区域0x0000~0x0FFF。若两侧数据一致,并且一侧DSP修改数据时,另一侧DSP可同时检测数据发生变化,则说明两侧DSP已经通过双口RAM连通。
两侧DSP通过中断响应来完成数据读写及更新,数据传输如图4所示。
图4 采用双口RAM的双DSP数据传输
根据双口RAM中断工作方式,利用存储区的0xFFF和0xFFE作为数据传输“信号”,以左侧DSP的中断响应,对数据传输过程进行说明。
(1)对两侧DSP进行初始化,包括DSP存储器配置、外部I/O配置、中断程序设置等。初始化完毕后,DSP运行主程序。
(2)若右侧 DSP向双口 RAM的0x000~0x7FF单元写入数据后,向0xFFE单元写入任意数据时,可使双口RAM左侧产生中断信号。
(4)右侧DSP对双口RAM的中断响应同上,其数据传输信号单元为0xFFF。
该电机协同控制系统中,其软件流程如图5所示。主程序中,系统起动时DSP输出指定速度控制信号。当接收到上位机发送的调速指令后,DSP运算修改受控电机的调速信号,并将另一侧DSP速度指令发送到双口RAM的数据单元中,同时激活另一侧DSP的数据接收中断信号。DSP采用速度、电流闭环控制,保证了电机运行的稳定。
为验证多电机协同控制系统速度调整的高效性和实时性。试验采用了双DSP同时控制4台Y系列异步电机协同工作。起动时4组电机按一定比例关系运行。运行过程中,上位机通过串口在线修改4台电机速度。定义左侧DSP的PWM1~PWM6控制电机为电机1,PWM7~PWM12控制电机为电机2,同理定义右侧电机为电机3和电机4。
电机控制过程中,DSP输出电机控制信号为PWM波形。在系统调试过程中,可通过PWM波来检测数据通信效果,将右侧DSP的PWM参数传输到左侧DSP后,令左侧DSP输出占空比比例为3∶4的PWM波形,其波形如图6所示。
图5 各DSP程序流程图
图6 双DSP的PWM波形
此DSP控制的多电机调速控制系统中,各DSP输出两组SVPWM控制信号,经驱动模块对电机进行调速控制,起始状态时电机1~4的转速比例为1∶2∶3∶6,电机 1 转速为 50 r/min 时,电机2 ~4 分别为 100 r/min、150 r/min、300 r/min。稳定运行后,修改电机2和电机3转速为60 r/min、1 00r/min。各组电机的电流数据可通过反馈通路实时采集到两组DSP中,两组DSP同时采集各组电机的A相电流数据,见图7。
图7 4组电机电流波形
(1)双DSP的多电机控制系统,通过双口RAM技术实现数据的高效传输,并通过速度、电流反馈调节,提高了电机控制的可靠性和稳定性;
(2)对双口RAM进行内部区域分割操作,可实现数据的双向传递,并从根本上解决了双口RAM的读写错误;
(3)通过上位机向双DSP发送速度控制信号后,各电机调节速度响应迅速,满足控制系统的高效性和实时性。
[1]张承慧,石庆升,程金.一种多电机同步传动模糊神经网络控制器的设计[J].控制与决策,2007,22(1):30-34.
[2]张今朝,刘国海,潘天红.多电机同步系统的多模型辨识[J].电机与控制学报,2009,13(1):138-142.
[3]孙文焕,程善美,王晓翔.多电机协调控制的发展[J].电气传动,1999(6):3-6.
[4]CASTRO R,ARAUJO R E,OLIVEIRA H.Control in multi-motor electric vehicle with a FPGA platform[J].IEEE International Symposium on Industrial Embedded Systems 2009,Lausanne,Switzerland,2009.
[5]朱传雨,刘建国,陆亦怀,等.基于双口RAM的高速大容量气溶胶空气动力学粒径信息提取[J].仪器仪表学报,2010,31(3):2168-2172.
[6]唐宗军,杨光,王维,等.基于DSP和单片机的高速数据采集与处理系统[J].仪器仪表学报,2004,25(08增刊):429-430.