摘要:将中科院合肥智能所机器人传感器实验室的多维力传感器技术与TI公司新推出的MSC1210单片机相结合,可实现机器人对微小位移的高分辨率检测。文章首先简要介绍微位移传感器结构特点,然后结合实际使用情况较为详细地说明MSC1210的多路输入复用器、PGA、滤波器等新特性,在此基础上构建微位移检测的硬件平台。同时,为传感系统设计智能人机交互接口,帮助用户根据实际需要方便选择诸如采样率、滤波器型号等相关参数,以求达到满意的应用效果。
关键词:多维力传感器 MSC1210 微位移检测
引 言
微操作已在许多应用领域得到了应用,特别是在纳微米级的定位系统中,要求传感器能检测出微小的力和位移的信息[1]。目前用于微位移检测的原理较多,如光学式、磁和电感式、电容式和压电式等[2,3],但这些大多不便用于机器人对微小的多维力和位移信息的获取。为了将技术成熟的多维力传感器用于微力和微位移信息获取,中科院合肥智能所机器人传感器实验室在改造多维力传感器结构参数的同时,充分利用德州仪器(TI)的MSC1210单片机的许多新特性,如其自带的8路24位高精度ΣΔ A/D转换器、可编程增益放大(PGA)和滤波器等,实现了对力和位移的高精度测量。本文主要从微型机的应用角度展开探讨,希望能为提高传感器的集成化程度、分辨率、稳定性和人机交互能力作出一点贡献。
图1MSC1210 ADC方框图
1 多维力传感器特点与MSC1210简介
微位移传感器结构主要借鉴实验室的机器人六维腕力传感器结构特点,在设计中同样采用双E型膜片结构[4]。首先用改进的二维力传感器来检测作用于物体上的X和Y两维上的力信息,再将其换算成平面的位移信息。同时,它在机器人六维力传感器基础上改变了相关的结构参数,如量程和
国家自然科学基金项目。资助号:60343006,60375027。灵敏度等,以便实现对微小的力和位移信息的获取。
美国德州仪器公司(Texas Instruments)新推出了一种功能很强的带24位A/D转换器的微处理器MSC1210[5]。MSC1210具有一些增强特性,特别适合测量高精度温度、压力传感器等输出的微弱信号。MSC1210主要包括增强型8052微控制器核心、闪存、高性能模拟功能和高性能外设。增强型8052微控制器核心包括双数据指示器,执行指令的速度比标准8052核心快3倍。这种MIPS功能使用户能够根据特殊需求优化速度、功率及噪声。图1是MSC1210 ADC 的方框图。
高精度微位移传感器电路模块的核心是MSC1210单片机。它完成微弱信号的多路切换、信号缓冲、PGA编程放大、24位ΣΔ A/D转换、数字滤波、数据处理、信号校准以及UART通信等功能[6]。以下结合微位移传感器的使用作简要介绍。
MSC1210 输入复用器比一般ADC 灵活,它的每个输入引脚均可针对特定的测量而配置成正输入或负输入。与启动ADC 部件通常定义输入对相比,MSC1210 可把一个引脚定义为负输入,把另一个定义为正输入,使设计方便自由。微位移传感器一组桥路输出分别接MSC1210 ADC的AIN0与AIN1,作为一路差分输入;另一组桥路输出分别接MSC1210 ADC的AIN2与AIN3,作为第二路差分输入。ADMUX寄存器初始化赋值为:ADMUX=0x01。
按照TI公司的MSC1210的数据说明,输入缓冲器可降低ADC 测量中偏移的可能性。只要输入信号的特征允许,就应该采用它。惟一不采用输入缓冲器的情况是,其中一个模拟输入上的最大电压低于正轨电压高于1.5 V。不带缓冲器时,MSC1210 的输入阻抗是5 MΩ/PGA。启用缓冲器时,该阻抗一般为10 GΩ。输入电压范围缩小,同时模拟电源电流升高。在不是上述“惟一”的情况下,实验中并没有使用缓冲,而是清零ADC 控制寄存器(ADCON0.3) 中的BUF 位,即关闭缓冲,取得的效果却较为理想,传感器的零点输出偏差变化较小。
可编程增益放大器(PGA) 的增益可设置为1、2、4、8、16、32、64 或128。利用PGA 可大大提高ADC 的有效分辨率。当然增益设置要合理,否则噪声也随之放大了。实验中微位移传感器的增益设置为64(准确地说,应该是MSC1210 ADC的PGA的增益)。
MSC1210数字滤波器有快速建立、sinc2 或sinc3三种,还有一个自动模式 。在输入信道或PGA改变后,自动模式可把sinc 滤波器修改到最佳的可用选项。在切换到新的信道后,它可把快速建立滤波器用于下两次转换,其中的第一次转换应被抛弃。然后,使用sinc2、随后使用sinc3 滤波器来提高噪声性能。这种操作可以同时融合sinc3 滤波器的低噪声优势和快速恢复时间滤波器的快速响应。数字滤波器中的sinc是数字滤波器中FIR滤波器的一种,常用在ΔΣ的ADC。当输入信道突然变化时,输出需要一定时间来正确表示新的输入。所需要的时间取决于所采用的滤波器的类型。sinc2通常代表需要2个周期的数据输出时间,sinc3代表需要3个周期的数据输出时间,其他需要1个周期的数据输出时间。通俗地说,若采用sinc3滤波器,则当输入信道改变后,最先采样输出的3个数据不能使用,应该抛弃;只有第4个输出数据是可使用的。这一点至关重要。
MSC1210既可以采用内部参考电压,也可以采用外部参考电压。参考电压的开机配置是内部 2.5 V。通过ADCON0寄存器可以选择参考电压。实验中启用了内部参考电压,通过设置ADCON0.4 (VREFH)选择为 1.25 V。需要注意的是,启用内部 VREF并不会消除外部连接需要。REFOUT引脚必须仍连接到 VREF+,而 VREF-必须仍连接到 AGND,以便内部 VREF能够正常操作。由于篇幅限制,MSC1210 ADC的其他功能在此不作介绍。
2 传感器的硬件组成
由于MSC1210 ADC的高度集成化,硬件系统构成很简洁。图2是微位移传感器的部分效果图。应变电阻片通过特殊的工艺,并且按照特定的方向被粘贴到E型膜片的表面上,连接组成两组自动解耦的惠斯通全桥电路,作为原始的力信息的模拟输出。小巧的电路板被放置于圆形的孔径之中。
图2传感器部分效果
图3为实验系统的电路结构示意。实验系统主要由传感器本体(输出原始的模拟信号)、MSC1210核心、串口通信电路和PC机组成。如前所述,微位移传感器一组桥路输出分别接MSC1210 ADC的AIN0与AIN1,作为一路差分输入;另一组桥路输出分别接MSC1210 ADC的AIN2与AIN3,作为第二路差分输入。MSC1210通过RS232与PC机通信,实现信息的显示和对MSC1210的控制。
图3传感系统电路结构示意
3 MSC1210数据采集系统的软件设计
对MSC1210 ADC的各个控制字的设置将会极大地影响传感器的最终分辨率和稳定性。例如,输入缓冲器使用与否、可编程放大器增益的选择、调制器时钟速度选择(决定模拟采样率以及滤波器型号的选择)等,这些参数的设定都不是一次完成的,有些要经过反复的组合、尝试,最终得到满意的结果。为了避免每次修改程序后必须重新下载到Flash程序存储器中,MSC1210在工作之前的ADC的初始化工作由PC机完全控制。首先,PC机将各种必要的控制信息通过串口传给MSC1210,MSC1210根据这些信息来进行ADC的初始化工作。具体地说就是,PC机向MSC1210发送6个字节,这6个字节中包含了滤波器型号、ACLK、ADCON2和ADCON3寄存器中的抽样值、修改模拟输入信道后的延时值、必须抛弃的数据输出周期数和可编程放大器的增益。然后,MSC1210启动ADC的初始化工作。进入正常工作状态后,如果发现当前数据输出周期数已大于预先设置的必须抛弃的数据输出周期数,MSC1210就认为这个输出数据及其以后的输出数据都是有效的了,但它并不立刻将数据发送给PC机,而是要马上修改模拟输入通道,然后再使前一输入通道的输出是无效的,紧接着进入下一个数据输出周期。MSC1210的工作流程可简单用图4表示。
图4MSC1210工作流程
PC机除对MSC1210 ADC的初始化控制外,主要负责将MSC1210通过RS232串口发送上来的数据用可视化的图形实时地显示于窗口适当位置。每次MSC1210向PC机发送4个字节。这4个字节是如下定义的:第1个字节表示传感器的通道号,0表示AIN0与AIN1差分输入,即X维的信息;1表示AIN2与AIN3差分输入,即Y维的信息。后三个字节是输出数据的24位二进制表示,是MSC1210 ADC的转换结果。当PC机处理进程检测到输入缓冲区满4个字节后,读取缓冲区的数据,同时清空输入缓冲区。根据第1个字节识别通道后,将数据转换为电压值后显示到相应位置(单位:mV),并且在窗口中开辟两块图形显示区域,分别实时显示X轴和Y轴的信号变化情况。为了更好地观测到信号的微小变化,进程提供了图形的放大显示功能。为了方便,放大倍数可选为12.5倍和125倍。图5为PC机与MSC1210的交互界面。
图5微位移传感器在工作时的数据输出
4 实验结果
经过反复试验,结合实际的要求,最终把微位移传感器的数据输出率定位在10 Hz,分辨率高达15位,具有很高的稳定性,取得了良好效果。相关参数选择如下:MSC1210的滤波器型号为sinc3,ACLK为1,ADCON2和ADCON3寄存器中的抽样值设为1080,将模拟输入缓冲关闭,模拟输入通道改变后抛弃3个数据输出周期,采用偏移和增益内部自校正。图5就是微位移传感器在工作时的数据输