在五自由度主动磁悬浮轴承控制系统中,采用由工控PC+DSP控制器的架构是一种较好的方法,而DSP核心控制器则是磁悬浮轴承控制系统中非常重要的一部分,对主轴位置信号的精确采集是DSP控制器的首要任务。在本控制器中采用MAX115对主轴位置的模拟信号进行采集。
磁悬浮控制器中的ADC选择
在磁悬浮主轴控制器的设计中,对主轴位置的测量是至关重要的。位置传感器的信号经过适当的信号调理电路处理后被传送到A/D采样通道,ADC把得到的模拟信号转换成相应的数字信号,芯片采样的精度和分辨率以及采样转换时间是非常重要的技术参数,它们直接决定着控制速度和控制精度。本控制器中采用的传感器是一种电涡流位移传感器。它是一种高精度无接触式传感器。
本系统要求能分辨1mm位置信号,根据传感器的传感特性,必须要求有至少为12位的分辨率。同时本系统中要求绝对精度不低于±1LSB。由于磁力轴承系统要求的控制周期很短(一般小于200ms),故要求ADC的采样时间也必须很快(一般在20ms内)。
综上考虑选用Maxim公司的MAX115作为ADC来完成主轴位置信号的采集。MAX115是12位2×4通道同步采样逐次比较型ADC,其具有两组ADC,每组4通道连续采集保持;单通道转换时间为2ms;转换精度±1/2LSB;4通道传输率为16ksps;并且内部具有2.5V参考电压和10MHz时钟,极大地精简了外部附加电路;其高速的并行接口可以方便地与DSP相连。
MAX115与TMS320F240的接口电路
图1是磁悬浮轴承DSP控制器的结构简图。
图1 磁悬浮轴承DSP控制器的结构简图
MAX115和DSP硬件的接口设计如图2所示,MAX115引脚A0-A3和引脚D0-D11是具有三态的双向接口,可以直接和DSP相关引脚进行连接。为简化电路设计和增加可靠性,系统中使用的是内部基准电源,此时要将REFIN引脚接上一个0.1mF的旁路电容;同时使用内部时钟10MHz,并将CLK引脚接上VCC。
图2 MAX115与TMS320F240 DSP之间的接口电路图[page]
MAX115的和信号线由DSP的和分别直接连接即可。通过DSP的数据线的D0-D3作为编程地址线从而对其工作模式进行编程。当A/D转换结束后,要从ADC中读取数据,读到14位数据D13-D0时,再将所得数据左移2位,即屏蔽掉低2位无效的输入后,即可得到12位A/D采集数据。另一个问题是MAX115与DSP接口的速度匹配问题,由于DSP速度过快,会导致MAX115无法正常工作,所以系统中采用软件的方法插入等待状态,具体操作见下文的软件设计。
控制器中MAX115的片选()信号、转换开始()信号及读()写()信号都是由MAX7128产生的。MAX7128编程方便,易于调试,用其实现快速地址选通等功能来加快系统的处理速度。其中DSP的参与地址译码。
软件设计
DSP作为下层的CPU来控制数据采集的整个过程。本控制器设计使用的编程软件是TI公司的CCS,采用C语言及嵌入式汇编编程,这样编写的程序简洁,易于读懂。
本控制器采用4通道连续转换,A3A2A1A0=0011。上电后DSP给MAX115写入工作方式,然后送信号,A/D转换开始,转换完成后,MAX115发出请求AD_INT变低,DSP中断立刻开始读取A/D转换结果。MAX115的与DSP的XINT1相连,作为DSP的外部中断输入。当A/D转换完成后,变低,DSP进入中断服务程序,在中断服务程序中将A/D转换结果读出。这种方法应用于快速转换,只要中断来了便进行转换,充分利用了CPU的资源。下面给出了中断方式下DSP控制A/D转换的部分程序。其中主要以中断子程序为主,其它中断初始化及其DSP中断向量程序均省略。
_
____ A/D转换电路 _____
data=0X03;/*MAX115工作方式选择A3A2A1A0=0011*/
asm(" OUT _data,0003h ");
/*选择ADC,并写入工作模式*/
asm("rpt XXX ");
/*XXX为一个数值 其大小应根据实际调试而决定*/
asm(" nop ");
/*延时 匹配速度*/
asm(" OUT _data,1003h ");
/*A/D转换开始用地址1003h来选中信号*/
_____A/D转换结果的读取_____
void AD_INT()
{ asm(" IN _ad_result1,0003h "); /*读入AD_CH1A转换结果*/
ad_result1=ad_result1&0x0fff;
ad_result1=ad_result1*2;
/* CH1A通道最后结果ad_result1*/
asm(" rpt XXX ");
asm(" nop ");
asm(" IN _ad_result2,0003h "); /*读入AD_CH2A转换结果*/
ad_result2=ad_result2&0x0fff;
ad_result2=ad_result2*2;
/* CH2A通道最后结果ad_result2*/
asm(" rpt XXX ");
asm(" nop ");
asm(" IN _ad_result3,0003h "); /*读入AD_CH3A转换结果*/
ad_result3=ad_result3&0x0fff;
ad_result3=ad_result3*2;
/* CH3A通道最后结果ad_result3*/
asm("rpt XXX ");
asm(" nop ")(end)
上一篇:4~20mA电流环隔离接口芯片IDC3516的应用
下一篇:三维CAD与BOM管理系统的接口研究
推荐阅读最新更新时间:2024-05-02 22:38