微电子机械系统ADXL345的应用研究
黄晓东
(九江职业技术学院机械工程学院 江西 332007) Application Research of MEMS ADXL345
HUANG Xiao-Dong
(School of Mechanical Engineering, Jiu Jiang Vocational and Technical College, Jiangxi 332007)
摘 要:微电子机械系统因其成本低、可靠性高、功耗低、体积小和重量轻等特点,在便携式电子设备中应用广泛,本文通过S3C2440针对美国ADI公司最新推出的三轴数字加速度计ADXL345进行运动特性的检测研究,为该器件的应用开发提供了一种方法。
关键词:微电子机械系统;ADXL345;加速度计;运动检测;S3C2440;IIC总线 Abstract:Micro Electro Mechanical Systems(MEMS) because of its low cost、high reliability、low power consumption、small volume and light weight characteristics widely used in portable electronic devices, in light of tri-axial digital accelerometer ADXL345 that latest manufactured by the ADI company of U.S, this paper researched its motion characteristics detection by S3C2440, provides a method for the device application development.
Key words:MEMS;ADXL345;Accelerometer;Motion detection;S3C2440;IIC BUS
中图分类号:TP212.9
0 引言
近年来,随着微电子机械系统(Micro Electro Mechanical Systems MEMS)的发展和广泛应用,Analog Devices公司近日开发出一款新式运动传感器件三轴数字iMEMS(集成微机电系统)加速度计ADXL345,因其功耗低、体积小和质量轻的特性,广泛用于电量有限的便携式电子消费品。国内对此应用研究刚属起步阶段,本文通过三星ARM9 S3C2440对其运动特性的检测,开发ADXL345的软硬件接口,为实际应用提供一种方法。
1 微电子机械系统概述
微电子机械系统是通过建立在微米/纳米技术基础上的微电子机械技术,是近年来发展起来的一种新型多学科交叉的技术,该技术将对未来人类生活产生革命性的影响,它涉及机械、电子、化学、物理、光学、生物、材料等学科。三轴数字加速度计ADXL345就是一种检测物体机械运动的集成微电子机械系统。 1.1 加速度计工作原理
加速度计实际是一种机械传感器,为多晶硅表面微加工结构,置于晶圆顶部。由于应用加速度,多晶硅弹簧悬挂于晶圆表面的结构之上,提供力量阻力。差分电容由独立固定板和活动质量连接板组成,能对结构偏转进行测量。加速度使惯性质
量偏转、差分电容失衡,输出的值与加速
度成正比。相敏解调用于确定加速度的幅度和极性。 图1 加速度计工作原理示意图 1.2 三轴数字加速度计ADXL345简介
ADXL345是一款小而薄的超低功耗3轴加速度计,分辨率高(13位),测量范围达±16g(g为重力加速度)。数字输出数据为16位,可通过SPI或IIC接口访问。ADXL345非常适合移动设备应用。它可以在倾斜检测应用中测量静态重力加速度,还可以测量运动或冲击导致的动态加速度。其高分辨率(3.9mg/LSB),能够测量不到1.0°的倾斜角度变化。除此外还提供多种特殊检测功能(活动和非活动、敲击以及自由落体)。【1】集成式存储器管理系统采用一个32级先进先出(FIFO)缓冲器,用于存储数据,将上位机处理器负荷降至最低,并降低整个系统功耗。采
用基于运动的智能电源管理,以极低的功耗进行加速度测量。 图2 ADXL345引脚配置图
2 ADXL345 在物体运动检测中的应用
2.1 ADXL345检测一般运动
任何空间运动都可以分解为沿坐标轴的直线运动,ADXL345是3轴加速度计,可以检测3个坐标轴上的物体加速度,可以通过对加速度的时间积分和双重时间积分来得到物体的即时运动速度和位置信息。
2.2 ADXL345检测震动和敲击
物体的震动在震动方向有很高的加速度,敲击会在冲击方向产生较高加速度,ADXL345可以通过检测加速度来确定震动和敲击的大小和方向。 2.3 ADXL345检测翻转和倾斜 如图3所示,物体的翻转和倾斜均可以通过ADXL345三轴加速度数据gx、gy和gz来测量,根据ADXL345的工作原理有g2=gx2+gy2+gz2 , g为重力加速度,gx、gy和gz分别为重力加速度在三轴的分量,并且三轴与重
力方向的夹角θx、θy、θz可以表述为:θx=arcsin(gx/g),其他两轴类
推。由此可以确定物体在空间的姿态。 图3 物体的翻转和倾斜
3 读取ADXL345 的检测数据
ADXL345按照设置的数据输出频率(在寄存器0x2c中设置)将检测到的实时三轴数据保存在6个8位寄存器0x32至0x37中,每两位分别保存x、y、z轴数据,高位在后低位在前,为二进制补码。数据格式可以变化,数据寄存器应执行多字节读取。最值得一提的是集成了一个32级先进先出(FIFO)存储器管理系统,可用于输出数据的缓冲,降低主机处理器负荷,并降低整体系统功耗。 3.1 ADXL345的通讯模式
ADXL345采用串行的SPI、IIC两种操作模式进行通讯。这里只介绍IIC模式,如图4片选引脚拉高至VDD I/O。ADXL345符合IIC总线规范,作为从设备使用,支持快速
数据传输模式,支持多字节读写。地址引脚处于高电平,器件的7位IIC地址是0x1D,随后为R/W位。即0x3A写、
0x3B读,否则,地址为0x53,0xA6写、0xA7读【1】。 图4 ADXL345 的IIC模式通讯
3.2 采用中断方式读取数据
ADXL345为驱动中断提供两个输出引脚:INT1和INT2,默认配置为高电平有效,可通过DATA_FORMAT寄存器(地址0x31)中的INT_INVERT位更改设置。提供了八种中断功能:DATA_READY(数据准备就绪)、SINGLE_TAP(单击)、DOUBLE_TAP(双击)、Activity(活动)、Inactivity(非活动)、FREE_FALL(自由落体)、Watermark(水印)和Overrun(溢出),可同时使用。设置INT_ENABLE寄存器(地址0x2E)的适当位,允许中断,并映射到INT1或INT2引脚,功能根据INT_MAP寄存器(地址0x2F)内容而定。更改和配置中断时,应先通过清零INT_ENABLE寄存器的对应位,禁用中断,然后再使能中断。3.3与上位机S3C2440的通讯
【1】
本文采用三星ARM9结构的S3C2440作为上位机与ADXL345进行通讯,读取三轴的加速度值。S3C2440采用IICSCL/GPE14、IICSDA/GPE15引脚作为IIC接口
【2】
,可以与ADXL345直
接通讯,硬件连接如图4。其中中断引脚int2或int1直接与S3C2440的EINT8/GPG0等连接,触发外部中断,从而在程序中通过中断服务程序来读取输出数据,并显示成曲线图。由于篇幅所限本文只给出IIC的读写程序代码以供参考,程序在ADS2.1中编译并调试通过。
//写入数据
void WrADXL345 (U32 slvAddr,U32 addr,U8 data) { _iicMode = WRDATA; _iicPt = 0;
_iicData[0] = (U8)addr; _iicData[1] = data; _iicDataCount = 2;
rIICDS = slvAddr; //0x3A rIICSTAT = 0xf0; //开始发送 while(_iicDataCount!=-1); _iicMode = POLLACK; while(1)
{ rIICDS = slvAddr; _iicStatus = 0x100;
rIICSTAT = 0xf0; //开始发送 rIICCON = 0xaf; //保持总线 while(_iicStatus==0x100) ;
if(!(_iicStatus&0x1)) break;//接受应答 }
rIICSTAT = 0xd0; //停止发送 rIICCON = 0xaf; //保持总线
Delay(1); //等待 }//写入结束 //读取数据
void RdADXL345 (U32 slvAddr,U32 addr,U8 *data,int len)
{ _iicMode = SETRDADDR; _iicPt = 0;
_iicData[0] = (U8)addr; _iicDataCount = 1; rIICDS = slvAddr;
rIICSTAT = 0xf0; //开始发送 while(_iicDataCount!=-1) ; _iicMode = RDDATA; _iicPt = 0;
_iicDataCount = len; rIICDS = slvAddr;
rIICSTAT= 0xb0; //开始读取 rIICCON = 0xaf; //保持总线 while(_iicDataCount!=-1) ; } //读取结束
4 检测应用实验结果
如上所述原理和硬件连接,通过ADS2.1编程,可以清楚地显示ADXL345的三个坐标轴的输出数据曲线图,并随着物体做震动、敲击、翻转、倾斜等运动,显示屏上均可以得到相应的曲线图。如图5所示。表明文中所述方法可以有效地
检测物体(安装有ADXL345)的运动姿态。
图5 三个坐标轴的输出数据曲线图
5 结论
本文对三轴数字加速度计ADXL345在物体运动姿态的检测中的应用进行了初步研究,根据其工作原理,利用嵌入式实时系统输出其实时三轴数据曲线图。为ADXL345在无线手持设备、个人导航器件和其他移动设备中的应用开发提供了一种借鉴方法。
参考文献:
【1】 ADXL345 使用手册 美国Analog Devices公司发布 【2】 S3C2440 使用手册 韩国三星公司发布
作者简介
姓名: 黄晓东 出生年月: 1971.12 籍贯: 江西高安, 民族: 汉族 学 历 :硕士研究生 职称: 副教授
性别: 男 专业方向: 机械工程 E_mail: h_xd@yeah.net 单位:九江职业技术学院 机械工程学院 职务: 副院长
电话:13807923053(手机)0792-8261171(办公)0792-8261171(传真) 通信地址:江西省九江市十里大道1188号 QQ:10478375