2.3软件实现
本系统程序主要分为三部分:PC机人机交互程序、DS89C420作为CAN与PC机之间通信中介的程序、DSP作为CAN网络节点和电机控制功能的程序。PC机人机交互软件它以可视化界面显示CAN网络上各节点ID、控制命令、发送优先级等。DS89C420的作用是将从CAN网络上采集的数据传送到PC机,并把PC机传过来得数据发送到CAN网络上,它实现的功能类似于协议转换。DSP完成的功能包括:根据PC机发送过来的指令控制电机正转、反转和停止,以及将电机的相电流、运行速度等信息分别通过LF2407A的片上A/D转换器大电流电感、正交脉冲编码电路等得到;对电机的控制通过LF2407A的事件管理器模块EVA、EVB输出具有适当占空比的PWM脉冲给大功率IGBT管来实现。
2.3.1主主通信
本设计为基于CAN总线的多主多从通信网络系统,主节点可以是工程师站,也可以是副工程师站或其它操作站,由于控制的需要,主节点之间需要传送一些数据。主—主通信的软件设计关键是掌握好CAN控制器的初始化设置例如ID的设置,数据的发送和接收。由于网卡具有接口函数库及网卡的驱动程序,可以方便地进行主—主通信。通信软件已测试成功,通信界面采用VC编写,如图4所示。
2.3.2主从通信
下面的程序是DSP平台和上位机的通信,主节点CAN网卡中的CAN模块初始化和发送子程序。调试过程中需要注意:通信节点的波特率要求一致;主从通信时要求CANMCR = 0x0480,使通信处于正常发送状态一体成型电感器;CANH与CANL之间连接终端负载电阻抗干扰。
void CANInit()
{ asm("SETCINTM "); /* 禁止中断 */
IMR = IMR | 0x011; /电感厂家/使能CAN中断
CANIMR = 0; //屏蔽所有中断
CANIFR = 0xFFFF; //清除已挂号中断
CANMCR = 0x0480; //CAN处于正常工作状态
CANMCR = CANMCR | 0x1000;//设置CCR,改变配置请求;
While ( (CANGSR & 0x0010) == 0 ){} //设置CCE,更改配置启用;
CANBCR2 = 0x027; //设置波特率50Kbps
CANBCR1 = 0x005E;
CANMCR = CANMCR & 0xEFFF;//清除CCR位;
While ( (CANGSR & 0x0010) == 1 ){} //清除CCE,禁止对配置寄存器进行操作;
CANMailBoxInit(); //初始化邮箱
asm("CLRCINTM ");/* 开中断 */
CANTCR =0x0080;//发送5号邮箱内容;
While ( (CANTCR & 0x8000) == 0 ){}//发送成功 }
3 同步措施及实现
在对多电机的同步控制中,解决电机的实时性问题十分重要。CAN总线具有点对点、一点对多点及全局广播传送数据的功能。虽然CAN总线的信息存取利用了广播式的存取工作方式,信息可以在任何时候由任何节点发送到空闲的总线上,然后根据信息标文符决定是否读取信息包中的数据以判断是否使用这一信息,但是由于各电机的实际情况不同,即使命令同时传送到节点,实际命令的实施时间也不能得到保证。笔者认为仅依靠CAN总线的广播数据功能实现同步控制会产生误差,可以通过软件编程实现误差较小的同步控制。采用两次命令的方式,首先由主站给需要同步的从站用广播的方式发送准备命令和同步速电感器图度,主站确认收到准备好命令之后发送第二次具体的命令即启动同步命令。这样可以使误差相对减少。
4 结束语
本文研究了基于CAN总线的多电机同步控制网络的组成和通信实现,设计有效的将DSP的高速处理能力和CAN(Controller Area Network)总线的高性能、高可靠性结合起来,具有很高的使用价值和广阔的应用前景。以上代码全部调试通过,实验证明适用于多台电机串行通信的实际应用以及可以根据实际的系统进行扩展和移植。
本文作者创新点:电机同步控制措施的提出。
计算机电源“白金”化 80+TM 和计算机产业拯救气候行动计划 (Climate Savers Computing) 给计算机电源设立了一个强有力的效率标准。这些标准的 白金 级别规定计算机电源在 20% 额定负载状态下
[ADI]LT3751原理中文翻译谁懂?英文太差!!!!!如题哪位大神知道LT3751工作原理的,中文翻译,特别是每个引脚定义功能等。
谢谢大神们了。
坐等!!!!!1!
自顶下大神快来!!
没人帮忙算了。
[DCDC]帮忙看看,MOS管发热,低电平上升做的一个利用PWM调节电压的DC-DC电源,输入22V,电流达到3.5A,基本电路图如下:
不接负载输出波形稳定,接上负载后MOS管发热严重,并且输出低电平开始慢慢上升,不知该如何解决?
MOS