3 MSC1210数据采集系统的软件设计
对MSC1210 ADC的各个控制字的设置将会极大地影响传感器的最终分辨率和稳定性。例如,输入缓冲器使用与否、可编程放大器增益的选择、调制器时钟速度选择(决定模拟采样率以及滤波器型号的选择)等,这些参数的设定都不是一次完成的,有些要经过反复的组合、尝试,最终得到满意的结果。为了避免每次修改程序后必须重新下载到Flash程序存储器中,MSC1210在工作之前的ADC的初始化工作由PC机完全控制。首先,PC机将各种必要的控制信息通过串口传给MSC1210,MSC1210根据这些信息来进行ADC的初始化工作。具体地说就是,PC机向MSC1210发送6个字节,这6个字节中包含了滤波器型号、ACLK、ADCON2和ADCON3寄存器中的抽样值、修改模拟输入信道后的延时值、必须抛弃的数据输出周期数和可编程放大器的增益。然后,MSC1210启动ADC的初始化工作。进入正常工作状态后,pcb抄板如果发现当前数据输出周期数已大于预先设置的必须抛弃的数据输出周期数,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就是微位移传感器在工作时的数据输出的图形显示,两条曲线分别表示其在X轴和Y轴上的受力情况。根据力信息可以方便地计算出位移信息。此次在中科院合肥智能所机器人传感器实验室多维力传感器技术的基础上,利用MSC1210的优势研制成功的微位移传感器,具有体积小、分辨率高、稳定性能好等优点。MSC1210单片机是完整的SoC系统,是功能强大的数据采集芯片,可以广泛应用于仪器仪表、测控和导航等领域。