一种基于DSP的多轴运动控制器的设计与实现

2006-05-07 15:49:32来源: 互联网

引言

现代化控制日新月异的今天,各类高速、高精度的控制设备得到了广泛的运用。作为一种实时补偿的控制方法,其相应的硬件设备要求在保持控制实时性的基础上,更要具有与主控机进行实时数据交流的能力。此类设备在很多数控设备、机器人控制等方面都有广泛的运用。另一方面,DSP是现在比较热门的技术,其芯片处理速度可以达到几十ns、几ns,甚至更高,处理精度为32位或更高,所以以其作主控芯片,在硬件设计上可实现具有高速、高精度的控制器。

一般具备实时数据补偿能力的控制设备由三部分组成:主控机、控制器、控制实体。控制器(处理器)和主控机相互独立,控制卡通过总线与主控机相连,利用电缆对各采样点的控制信息进行采样,再与控机上存储的预定数据进行某种算法的处理之后,反馈到各控制点,从而实现“离线规划,实时补偿”的控制过程。再则,对于任何一种控制器,希望它的性能稳定,控制精度高,而且功耗低。我们设计的控制器也正是基于此种考虑的,且在各类工业级小板机上得到广泛的运用。它通过PC/104总线,栈连多级的外围设备。PC/104总线是一种在业控制方面运用广泛的工业标准总线结构,它独特的栈连扩展设备的结构设计,使得控制设备的集成度提高,体积更小,质量更轻,而且比插卡型稳定性能更好。

    在设计中,控制器必须达到以下标准:

(1)采用PC/104总线标准;

(2)具备与主控机进行实时数据交换的能力;

(3)集成度高,采样性能稳定,并且低功耗;

(4)单板具备多路控制能力;

(5)采样速率近似达到100ksps。

在综合考虑的基础上,我们选用TMS320F206(以下简称F206)芯片。它有32KB的片内闪速存储器,可以存储可执行程序,从而,在不需要外扩存储器的基础上,就能满足控制运算所需存储空间,而且,片内存储器与外部存储器相比,有几个特点:具有比外部存储器更高的性能、更低的成本价格和更低的功耗。

控制器设计原理

作为一种具备实时数据补偿的控制器,要求采集的数据在第一时间内提交给公用存储器。主控机进行读取,并进行相应处理。处理好的数据反馈给控制器,从而完成一个控制过程。总体示意如图1所示。

1.A/D、D/A转换单元

对于A/D转换单元,我们采用MAX197作为模/数转换器件,如图2所示。针对MAX197的特点,作了以下的设计。

(1)+5V电压供电,8位并行采样数据总线与F206的低8位数据总线连接。MAX197为12位并行采样,其D0~D3与D8~D11并用4根数据线,通过HBEN脚来决定选择D0~D3还是D8~D11。所以利用F206的通用输出引脚XF与HBEN连接,通过置XF实现数据的选择读取。MAX197通过写入相应的数据开始转换,转换结束之后,产生中断INT1,与F206的INT1连接,使程序进入中断子程序,以便对刚采样的数据进行相应的处理。

(2)MAX197的转换时间为6μs,100ksps的采样速率;有8位模拟量输入通道,可通过编程来选择全部或是一部分。为了保证一定的采样速度,控制器选择其中的4路。

(3)采用外部参考内部获取控制,并使用内部时钟。使用AD580产生2.5V的参考电压,作为MAX197的外部电压参考。

(4)通过可编程逻辑芯片对地址线译码,分配给MAX197的I/O空间地址为FAXXH,由译码器产生CSMAX信号,对MAX197进行选通。故对I/O空间FAXXH的操作即为对该芯片的操作。

对于D/A转换单元,我们采用AD7247A作为数/模转换器件,如图3所示。针对AD7247A的特点,作了如下的设计。

(1)单片AD7247A有2通道12位并行输入,故用2片并联形成4通道D/A通路;

(2)主控机±12V电压供电,从而产生±5V的电压输出,用以驱动电机正反转;

(3)采用内部电压参考基准,连接方式如图3所示。

(4)外部译码电路对DSP的地址线进行译码,4个通道分别分配的I/O空间地址为:FBXXH、FCXXH、FDXXH、FEXXH。其中X为不定,一般可选定为0。我们以1个通道采集数据,再由1个通道输出为例,给出下面的相应程序(在F206上已编译连通,可以运行):

.title “A/D、D/A test”

.copy "init.h"

.copy "vector.h"

.mmregs

.text

adport.set 0fa00h /定义A/D口

daport.set 0fe00h /*定义D/A口

start:

clrc cnf /B0映射到数据空间

ldp #0h

setc intm /*关闭所有中断

splk #0ffffh,ifr /*清除中断标志

splk #0001h,imr /*打开INT1中断

splk #0010h,60h

out 60h,icr /MODE1工作方式

splk #0fffh,60h

out 60h,wsgr /*软件等待7周期

splk #80h,0005h /*设全局存储器

clrc intm /使能中断

splk #48h,60h

out 60h,adport /*激活MAX197

ldp #256 /*指向IDT7134

idle /*等待INT1中断

b start

inpt1: /*INT1中断子程序

clrc xf

in 61h,adport /*读低8位到61H

setc xf

in 62h,adport /*读高4位以62H

lac #000fh

and 62h

lacc 62h,8

or 61h

sacl 60h

addk #800h

and #0fffh

sacl 63h

out 63h,daport /*输出到D/A口

clrc intm

ret

timer:ret

inpt23:ret

uart:ret

codtx:ret

codrx:ret

.end

2.看门狗电路

看门狗电路是用来监视F206工作的,电路如图4所示。当出现死机时,它会对F206自动地进行复位,或者,可以通过主控机来复位F206。根据MAX706的特性,当看门狗输出(WDI)的电压保持同一值超过1.6s的时候,将独发看门狗输出(WDO)产生一个负脉冲,所以,可以利用F206的通用输入输出引脚I/O0与看门狗的WDI连接,通过编程实现在一定的时间间隔(不超过1.6s)里。I/O0不断出现高低电平,从而保证在F206正常工作的状态下,看门狗不会对F206复位。一旦DSP工作异常,便可以对其自动复位,从而保证F206始终工作在正常状态。

    另外,在使用者认为有必要对DSP复位的时候,也可以通过向板卡写入(或读出)一个低电平值,从而实现对DSP的复位。该信号线如图4中MRS。

3.双端口RAM及主控机接口电路

为了和主控机进行实时数据交换,我们加上了1个双端口RAM,使F206和主控机均可以对该RAM进行读写操作,只不过相对F206和主控机来说,该RAM的映射地址不同而已。们在这个设计中,选用了IDT7134芯片,它为4K×8bit双端口RAM,设计方案如图5所示,接口部分如图6所示。

(1)F206到IDT7134的接口电路比较简单,只需把相应的地址线和数据线连接起来即可;但是片选电路做了一点调整;利用F206的DS(数据空间选择信号)与PS(程序空间选择信号)进行或运算,再和F206的A15(高位地址线)进行与运算,得到的DS2作为IDT7134的片选信号。这么做有几个优点:首先,可以通过编写CMD文件来分配IDT7134的空间,可以把一部分空间分配给数据空间,另一部分分配给程序空间,这样就可以根据软件运行的要求来分配存储器,灵活性就大多了;另外,还可以通过编写片选芯片,把IDT7134只分配给数据空间或程序空间;其次,A15与片选信号与运算,所以,IDT7134的整个存储空间的地址就是8000H~8FFFH,这就使得我们可以通过软件设定F206的GREG寄存器,把F206能访问的64KB局部数据空间的高端32KB地址空间的全部或一部分分配为全局数据空间,用以和外界进行数据交换。

(2)从PC104总线到IDT7134的接口部分包括部线驱动、板卡片选电路。总线驱动旨在提高板卡工作的稳定性,对衰减的数据总线进行补偿;而板卡选择电路是给该板分配一个I/O地址,例如我们在这块板卡的设计中,分配PC机I/O空间地址D0330H,这样,当主机对I/O空间D0330H进行读写操作即为对该板操作,而不会对其他的附件产生误操作。

(3)对PC/104总线的地址线A19~A12进行译码,产生的PCSS信号作为PC机对IDT7134的选通信号。故在编程时,对于该板卡,只需把段地址设定为D000H即可,偏移地址可为000H~FFFH,就可以实现对IDT7134这4KB的存储空间进行寻址。同时PCSS亦可作为74LS245总线驱动器的使能信号,与PC/104总线的MEMR信号配合(MEMR作为74LS245的方向控制信号),可以很好地实现PC机对双端口RAM的数据读写。

(4)对PC/104总线的地址线A0~A9、PC机的I/O口写信号(IOW)及PC机地址使能信号(AEN)进行译码,在I/O地址330H,产生MRS信号,与看门狗电路连接,从而实现PC机手写复位DSP的功能。

在PC机上实现上述功能,可编写简单的C语言程序:

#include

#include

{ int value;

int rsport=0x330;

outport(rsport,1); /*复位dsp*/

value=peek(0xd000,0x0063); /*读D0063H*/

poke(0xd000,0x0060,1); /*写1到D0060H*/

}

该板卡工作过程可简略叙述为:DSP加电复位,并对相应的控制寄存器置位,对MAX197写入控制字。MAX197开始进行模/数据转换,转换结束后,MAX197触发F206的INT1中断。DSP读出转换结果,存储在双端口RAM中,以便主控机读取。主控机读取数据后,对数据进行相应的算法处理。处理后的结果返回给双端口RAM,DSP再把它送入AD7247进行数/模转换,直接输出。整个过程中,看门狗电路始终处于监控状态,一旦出现异常,将对DSP复位。

小结

该板卡具备4路A/D、D/A高速转换通道,并且采用了二级看门狗电路。在板卡工作过程中,DSP要不断地向看门狗电路写入或擦除。我们通过F206的I/O0来完成此工作,一旦超过1.6s的时间,看门狗认为DSP处于死机状态,从而触发对F206的复位操作,这构成第一级看门狗硬件电路。另外,利用DSP在一定的时间间隔内,向双端口某一固定区域写入某,同时,主控机在另一时刻对此区域读取,之后清除,当主控机发现读取的数值和预定的不同时,认为DSP处于死机状态,则向该板卡写入,从而使DSP复位,这就构成了第二级软件看门狗。该板卡具有双级看门狗后,工作稳定性大大提高,采样性能稳定。

按照该板的电路设计已经做出相应的电路板,通过实验的调试,已经可以实现如本文所叙述的功能。

另外,作为信号采集卡,这也是一种可行的设计。

编辑: 引用地址:http://www.eeworld.com.cn/designarticles/sensor/200605/1384.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部

小广播

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved