基于倾角传感器的倾角测量系统设计
目前,业内对倾角的测量多是基于MEMS的加速度传感器,SCA100T是由芬兰VTI公司推出,采用三维MEMS技术开发的一款高精度双轴倾角传感器,可同时测量相对于水平面的倾斜和俯仰角度,具有温度补偿功能。本文以塔式起重机为应用背景,采用SCA100T倾角传感器实时采集倾斜信息,检测塔式起重机支撑架的平衡性能,避免由于其过度倾斜而引发事故。以SCA100T为基础设计了一款小巧、灵敏度高的倾角测量系统,分析了SCA100T倾角传感器测角的原理,给出了系统各个模块的软硬件设计方法,同时提供了两种具有可扩展性的应用方法。
1 整体设计
图1所示为本系统的整体结构框图。该系统采用ATmega8单片机控制SCA100T倾角传感器实时检测平台的倾角变化,将传感器输出的数字量进行换算后,转换为实际的倾角值。用户可以根据需要设置警界倾角值和预定平台水平位置,倾角信息可通过LCD实时显示或通过串口输出到上层控制器中。当倾角信息超过预置的警界倾角值时,系统开始报警,表现为蜂鸣器报警和LED灯闪烁。
系统根据输出方式的不同分为两种应用方式:一种是作为独立系统使用,固定在待测平台上;另一种是将该系统作为一个倾角采集模块,挂接在其他电路中使用。前者采用LCD1602实时显示倾角信息,采用串口超级终端预设倾角警界值和水平位置;后者通过串口输出倾角信息,允许软件编程通过发送串口命令进行配置。配置信息均保存在ATmega8单片机内部的EEPROM中。
2 倾角测量原理
本文选用的SCA100T的测量范围为±30°,其内部包含硅电容感应元件、EEPROM存储器、信号调理电路、A/D转换器、温度传感器和SPI传输接口等,SCA100T功能框图如图2所示。该传感器具有X、Y两个通道,分别用来测量倾斜和俯仰的加速度,每个通道具有自测试系统,可内部产生一个静电力来校验全部的信号通道。信号输出有SPI数字信号输出和模拟电压信号输出两种方式,同时可输出温度信息进行温度补偿。
SCA100T的测角原理为:通过测量静态重力加速度的变化,将其转换成倾角变化。SCA100T的硅电容感应元件由3层硅片构成,形成立体结构,当发生倾斜时,中间质量片会倾向某一侧,从而使两侧的电容发生变化。通过电压值可反映相应的加速度值,进而可计算角度值。图3所示分别为X轴与Y轴的倾角变化情况(X/Y是从倾斜方向来划分的),以X轴为例,其加速度值与重力加速度之间的关系为:
Ax=g·sina→α=arcsin(Ax/g)
其中,Ax表示X轴测出的加速度值,g表示重力加速度值,α为X轴倾角。
3 系统硬件设计
系统的整体硬件电路如图4所示。系统采用SCA100T的SPI接口来读取输出信息,可避免额外的A/D采样。由于ATmega8具有1路SPI中断,因此可直接将传感器作为从器件接到单片机的SPI接口上。系统通过控制三极管的开通与关闭来控制蜂鸣器和LED指示灯的导通与关闭,从而达到报警的功能。把ATmega 8单片机的PD2引脚接到三极管的基极,正常工作时将PD2置低电平。当发生报警时,将PD2置高电平,此时三极管导通,蜂鸣器发出响声,LED指示灯变亮。
系统采用LCD1602字符型液晶模块来显示倾角信息,该模块可同时显示两行字符,分别为X轴与Y轴倾角信息。模块通常采用HD44780芯片具有标准的16条引脚线。对于串口传输,系统采用TTL电平和RS232两种输出方式,单片机输出的TTL,电平可经过MAX232芯片转换后变为RS 232信号,通过标准串口线与上位机通信。
采用哪种串口输出方式取决于工作方式。当采用串口超级终端对系统进行预置时,需要用短路块将ATmega8单片机的TTL输出接到MAX232芯片的TTL输入端;当采用软件编程方式时,可直接将ATmega8单片机的TTL输出接到其他电路的TX/RX端,作为其外围电路使用,此时需要注意波特率的设置。
另外,系统设计了模式选择功能,将ATmega8单片机的PB0和PB1引出,前者用于选择是否采用LCD显示,后者用于选择是否进入串口超级终端配置模式。正常工作时,这两个引脚为高电平,表示选择串口超级终端配置模式,允许通过串口软件编程;当用短路块将PB0接地时,表示选择LCD显示方式;当PB1接地时,表示进入串口超级终端,并对系统进行预置。
4 系统软件设计
系统整体的软件流程如图5所示。系统上电后,单片机首先对引脚初始化,设置SPI模式,开SPI和串口中断。如果选择了LCD显示功能,还需要对LCD控制引脚进行初始化,显示初始化信息。然后根据是否选择了串口超级终端配置功能,决定下一步操作。
当该功能被选中时,系统进入超级终端处理程序,首先向PC端超级终端发送提示字符,等待用户选择和输入预设数据,收到相关数据后,将其反馈给PC端显示,同时进行预设处理,并将预设的数值写入EEPROM。当未选中该功能时,系统进入正常的工作状态,如果发生串口中断,则进入串口处理程序,根据收到串口数据帧是预设命令还是请求数据进行不同的处理。前者则将预设数值写入EEPROM,若是后者则将倾角信息上传给上层控制器。如果没有发生串口中断,则主程序通过SPI接口采集传感器输出的加速度数字量,并将其转换为实际倾角信息,判断倾角是否超过预设角度值。如果超过则开始报警,同时如果选中了LCD显示功能,还需要通过并口将数值输出到LCD1602显示。
- 基于数字倾角传感器的线路电子检测尺工作原理及硬件设计(09-22)
- 基于数字倾角传感器的线路电子检测尺工作原理及硬(09-19)
- 频宽、取样速率及奈奎斯特定理(09-14)
- 为什么要进行信号调理?(09-30)
- IEEE802.16-2004 WiMAX物理层操作和测量(09-16)
- 为任意波形发生器增加价值(10-27)