德甲

基于DSP的JPEG图象紧缩的设计与实现奢侈品市场和消费

2020-02-15 08:41:39来源:励志吧0次阅读

基于DSP和CAN的机电同步控制系统与通信 - 通讯/络 - 电子工程

传统的多电机控制系统适用于要求不高、相对简单、机电分布比较集中的场合。而对运动控制中实时性、可靠性、可扩展性、传输距离、传输速度等要求较高的场合,需要采取高传输速度、远传输距离、可靠性较高的通讯方式和处理速度快、功能强大、能够实现复杂控制策略的处理器。

控制器局域CAN(Controller Area Network)是一种有效支持分布式控制和实时控制的串行通讯络。它属于现场总线范畴,与现有的其它总线相比,它是一种分散式、数字化、双向、多站点的通讯系统,具有速率高、可靠性好、智能化高、连接方便等诸多优点,在分布式测试和工业控制等相干领域的运用愈来愈广泛。

数字信号处理器(Digital Signal Processor,DSP)是一种高速专用微处理器,TMS320F2407A运算功能强大,能实现高速输入和高速率传输数据,且带CAN总线接口。它专门处理以运算为主且不允许延迟的实时信号,可高效进行快速傅里叶变换运算。数字信号处理器的精度高,可靠性好,其先进的品质与性能可为机电控制提供高效可靠的平台。

鉴于CAN总线的通信优势和DSP的强大处理能力,利用二者完全可以设计完成要求较高的多机电控制络系统。这类功能强大、智能化和络化程度较高的络系统满足了工艺复杂、要求较高的多机电控制,它正在兴起并成为多机电控制络系统的发展趋势。

1 系统结构及其实现

基于CAN总线络的新型多机电同步控制系统,采取总线式多主多从络拓扑结构。当系统中不仅有工程师层还包括管理层即多个主节点时,主主通讯将实现不同功能主节点的交换(如图1)。整个控制系统由3部份组成:CAN总线、上级PC机、DSP控制系统。系统采取PC 机作为监控主机,实现对各节点的监控和管理;CAN 总线接口卡完成CAN协议的物理层和数据链路层功能,实现PC 机与CAN 总线之间的通讯;各从节点通过DSP完成数据的收发和对交流机电的控制。

主节点采取PC微机(或其他兼容机),通过PCI总线双路智能CAN卡(通信适配器)与CAN总线相连,进行信息交换。CAN卡电路共分为3大部分:由DS89C420微处理机、74LS373锁存器、32KB的RAM 62256、32KB的EPROM 27256组成的主机部份;双口RAMIDT7005S35PF及其控制电路;由SJA1000、光电隔离电路、82C250组成的CAN控制器和CAN总线接口电路。

从节点由两部分构成:电机控制板和功率驱动板。从节点的基本框图如图2所示。机电控制板以TMS320LF2407A为核心,外围采取各功能模块。其中,PWM模块用于驱动功率器件,A/D模块用来把系统所需要的电流摹拟量变换成数字量,实现电流环反馈控制。磁场平衡式霍尔电流传感器(LEM模块)把互感器、磁放大器、霍尔元件和电子线路集成在一起,具有丈量、反馈、保护3种功能,LEM模块的输出输入到DSP的3路A/D转换口,转换成数字信号后,再进行相应的处理。光电码盘把检测信息反馈到DSP的正交编码脉冲电路(QEP),实现速度环反馈控制。当LF2407A的QEP被使能(禁止捕获功能),定时器2对引脚CAP1/QEP1和CAP2/QEP2、定时器4对引脚CAP4/QEP3和CAP5/QEP4上的脉冲数目和频率分别计数,可得到机电的角位移和转速。功率驱动板由整流滤波、IGBT驱动、和IGBT桥和反馈电路组成。

2 软件设计

2.1 CAN 总线络通信协议设计

CAN 总线采取一种串行数据通信协议,它能有效地支持具有较高安全等级的散布实时控制。根据CAN总线技术规范CAN2.0A、CAN2.0B,本文设计了用户通信协议,各个节点都按此协议传送信息。用户通信协议的帧结构共10个字节(2个字节标识符、8个字节数据和变量),其定义如图3所示。

PRI:1为低优先级,0为高优先级,而剩余的优先级由源地址决定,低地址优先级高。

帧类型:100为单帧广播;000为单帧点对点。

命令或物理变量名:cmd0、cmd1的功能定义有很多,表1仅给出了几种典型的定义。节点根据接收到的数据中两个字节的内容来肯定被传送的内容。

物理变量序号:0~255。

Data3~Data0:定义为一个物理变量数据,4字节长整数,原码表示。数据类型为整型、布尔型或浮点型。

2.3软件实现

本系统程序主要分为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总线的信息存取利用了广播式的存取工作方式,信息可以在任何时候由任何节点发送到空闲的总线上,然后根据信息标文符决定是否读取信息包中的数据以判断是不是使用这1信息,但是由于各电机的实际情况不同,即便命令同时传送到节点,实际命令的实施时间也不能得到保证。笔者认为仅依托CAN总线的广播数据功能实现同步控制会产生误差,可以通过软件编程实现误差较小的同步控制。采取两次命令的方式,首先由主站给需要同步的从站用广播的方式发送准备命令和同步速度,主站确认收到准备好命令以后发送第二次具体的命令即启动同步命令。这样可以使误差相对减少。

4 结束语

本文研究了基于CAN总线的多电机同步控制络的组成和通讯实现,设计有效的将DSP的高速处理能力和CAN(Controller Area Network)总线的高性能、高可靠性结合起来,具有很高的使用价值和广阔的应用前景。以上代码全部调试通过,实验证明适用于多台电机串行通信的实际运用和可以根据实际的系统进行扩大和移植。

本文作者创新点:机电同步控制措施的提出。

参松养心胶囊伤肝吗
术后腹胀便秘吃什么好
用什么药治疗口腔 治疗好呢
腰部骨质增生用什么药
小孩碰撞淤青怎么处理
分享到: