引言
现代化控制日新月异的今天,各类高速、高精度的控制设备得到了广泛的运用。作为一种实时补偿的控制方法,其相应的硬件设备要求在保持控制实时性的基础上,更要具有与主控机进行实时数据交流的能力。此类设备在很多数控设备、机器人控制等方面都有广泛的运用。另一方面,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<dos.h>
#include<conio.h)
{ 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复位,这就构成了第二级软件看门狗。该板卡具有双级看门狗后,工作稳定性大大提高,采样性能稳定。
按照该板的电路设计已经做出相应的电路板,通过实验的调试,已经可以实现如本文所叙述的功能。
另外,作为信号采集卡,这也是一种可行的设计。