基于三轴加速度传感器的倾角测量系统的设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

等待读取。其中 SPI_transmit()是 SPI 发送数据子函数。 SPI 读取子程序:
int SPI_Read(unsigned int addr) { int value; char SFRPAGE_SAVE; SFRPAGE_SAVE = SFRPAGE; SFRPAGE =SPI0_PAGE; NSSMD0=0; SPI_transmit(addr|0XC0); // 将 地 址 与 Read 命 令 存 入 SPI0DAT 寄存器 value=SPI_receive(addr); NSSMD0=1; SFRPAGE = SFRPAGE_SAVE; return value; } //读数据
void SPI_Wrt(unsigned int addr,int dat) { char SFRPAGE_SAVE; SFRPAGE_SAVE = SFRPAGE; SFRPAGE =SPI0_PAGE; NSSMD0=0; SPI_transmit(addr|0X40); SPI_transmit(dat); NSSMD0=1; SFRPAGE = SFRPAGE_SAVE; } //将片选信号置低 //将地址存入 SPI0DAT 寄存器 //将数据存入 SPI0DAT 寄存器
2012.07 SensorWorld
www.sensorworld.com.cn
32LEVEL FIFO
SERIAL I/O
SDA/SDI/SDIO SDO/ALT ADDRESS SCL/SCLK
GND
CS
图3
3V3
ADXL345 功能框图
C1 0.1 F C2 1 F
R1 22
1 Vdd I/O SCL/SCLK 2 SDA/SDI/SDIO GND 3 RES SDO/ALT ADDRESS 4 GND RES 5 GND 6 VS 7 CS ADXL345 NC INT2 INT1
根据时序图,先将片选信号 CS 置低,将写命令与地 址存入 SPI0DAT 寄存器,读取数据后再将片选置高。其 中 SPI_receive()是 SPI 接收数据子函数。 2、系统初始化 系统上电后,先对系统进行初始化。包括端口初始 化、系统时钟初始化、ADXL345 芯片初始化和 SPI 初始 化。 对 C8051F040 单片机所用到的端口进行配置,包括 SPI 通信端口和 LCD 显示连接端口。系统时钟设置为内 部晶振二分频。 对加速度传感器 ADXL345 进行初始化, 设置为自检 功能禁用,4 线制 SPI 接口,低电平中断输出,13 位全 分辨率,输出数据右对齐,±2g 量程。具体初始化程序如 下:
根据时序图,将片选信号 CS 置低后,依次将写命令 和地址、 数据存入 SPI0DAT 寄存器, 再将片选信号置高,
开始
系统初始化
开中断读取加速度值
计算对应倾角值
LCD1602 显示
图6 ADXL345 的四线式 SPI 时序图
图 5 系统软件流程图
34
传 感 器 世 界 2012.07
www.sensorworld.com.cn
图1
ADXL345 三轴加速度分量与倾角关系
arctan
AX 2 2 AY AZ

( 1)
32
传 感 器 世 界 2012.07
www.sensorworld.com.cn
Product Feature
块与单片机以 SPI 通信方式连接,组成框图如图 2 所示。 1、倾角测量模块
图 2 系统组成框图
VS
VDD I/O
辨率等特点。它只有 3 mm×5 mm×1mm 的外形尺寸,面 积大小相当于小拇指指甲盖的 1/3。在典型电压 2.5V 时 功耗电流约为 25~130μA,最大量程可达 16g,另可选
INT 1 INT 2
ADXL345
POWER MANAGEMENT
3-AXIS SENSOR
33
Baidu Nhomakorabea
总线配置到 C8051F040 单片机端口, SCL 配置到 P0.0 口, SDA 配置到 P0.1 口, SDO 口配置到 P0.2 口,片选端口 CS 配置到 P0.3 口, 以达到单片机与传感器间通信和控制 的目的。 四、系统软件设计 系统软件设计流程框图如图 5 所示。软件设计部份 主要由系统初始化、ADXL345 与单片机之间的通信,以 及 LCD1602 显示模块与单片机之间的通信几大部份组 成。 1、SPI 通信 图 6 是 ADXL345 四线式 SPI 的时序图。由于对 ADXL345 的初始化与通信都需要用到 SPI 读写函数,为 使程序有较好的规范性和可移植性,根据此时序图,编 写 SPI 写入和读取子程序,方便其它函数进行调用。 SPI 写入子程序:
14 13 12 11 10 9 8
GND
图4
ADXL345 SPI 通信接口图

AY arctan 2 2 AX AZ A2 A2 X Y arctan AZ
其中, AX 、AY 、AZ —重力加速度在 x,y,z 三轴的分量。 根据得到的三个倾角值,即可得到物体在空间转动 的角度。使用三轴加速度测量倾角,不仅有效灵敏度增 量为常量,而且可以精确测量单位球面周围所有点的角 度,优点显著。 三、系统硬件设计 倾角测量系统硬件部份主要由倾角测量模块、单片 机控制模块和 LCD 显示模块三部份构成。其中传感器模
徐晓翔 一、引言 在许多应用领域中,如设备安装、机器人控制、测量机床仪器导轨的直线度、小车的位姿控制中都 经常需要测量倾角。目前的倾角传感器虽然测量精度高,但价格昂贵,无法在各个领域得到广泛应用。 由于加速度计的输出经处理可得到一个与倾斜角成正比的直流电压,因此可以利用加速度计来测量物体 相对于水平面的倾斜角,尤其是 MEMS 加速度计传感器体积小、重量轻、功耗小、启动快、成本低、可 靠性高、易于实现数字化和智能化[1],因此加速度传感器在不需要测量运动物体倾角的场合,具有很大的 应用价值。 本文介绍一种基于美国 AD 公司生产的三轴加速度传感器 ADXL345 和 SOC 型单片机 C8051F040 的 倾角测量系统,具有结构简单、测量精度和稳定度较高、使用方便等特点。 二、测量原理 ADXL345 模块上电后,加速度使惯性质量偏转、差分电容失衡,使传感器输出与加速度成正比的电 压值。模块对得到的电压值进行模数转换后进行数字滤波,再存入 FIFO 存储器,最后根据中断指令将数 字信号传输给外部控制器。 ADXL345 不直接测量倾斜角度,而是通 过测量静止状态下 X、 Y、 Z 三轴的加速度, 利用重力加速度与其在三轴加速度传感器的 X、 Y、 Z 三轴的分量关系,计算出各轴与重 力加速度的夹角,从而得出系统倾角。重力加 速度在三轴的分量与倾角关系如图 1 所示, 由 此可推导出倾角解算公式[3]为: 陈文芗 叶军君
Product Feature
void ADXL345_Init(void) { SPI_Wrt(0x31,0x28); SPI_Wrt(0x00,0x00); SPI_Wrt(0x00,0xFD); SPI_Wrt(0x00,0x03); SPI_Wrt(0x21,0x00); SPI_Wrt(0x22,0x00); (1.25ms/LSB) SPI_Wrt(0x23,0x00); SPI_Wrt(0x24,0x01); SPI_Wrt(0x25,0x01); SPI_Wrt(0x26,0x2B); SPI_Wrt(0x27,0x00); SPI_Wrt(0x28,0x09); SPI_Wrt(0x29,0xFF); SPI_Wrt(0x2A,0x80); SPI_Wrt(0x2C,0x0B); SPI_Wrt(0x2D,0x28); 眠 ,唤醒功能 SPI_Wrt(0x2E,0x02); SPI_Wrt(0x2F,0x00); SPI_Wrt(0x38,0x9F); } //所有均关闭 开水印中断 //中断功能设定 ,不使用中断 INT1 // 流模式 触发连接 INT1 31 样本 //输出数据速率设为 200Hz //开启 Link,测量功能 ;关闭自动休眠 ,休 //敲击窗口 0:禁用 ; (1.25ms/LSB) //保存检测活动阈值 ; (62.5mg/LSB) //保存检测静止阈值 ; (62.5mg/LSB) //检测活动时间阀值 ; (1s/LSB) } //X 轴误差补偿 ; (15.6mg/LSB) //Y 轴误差补偿 ; (15.6mg/LSB) //Z 轴误差补偿 ; (15.6mg/LSB) //敲击延时 0:禁用 ; (1.25ms/LSB) // 检 测 第 一 次 敲 击 后 的 延 时 0: 禁 用 ; char SFRPAGE_SAVE; SFRPAGE_SAVE = SFRPAGE; SFRPAGE = CONFIG_PAGE; EA=0; for (i=0;i<31;i++) { datax[i]=(SPI_Read(0X32)+(SPI_Read(0x33)<<8))&0X1FFF; datay[i]=(SPI_Read(0X34)+(SPI_Read(0x35)<<8))&0X1FFF; dataz[i]=(SPI_Read(0X36)+(SPI_Read(0x37)<<8))&0X1FFF; } EA=1; SFRPAGE = SFRPAGE_SAVE;
ADXL345 加速度测量模块 SPI 接口 C8051F040 单片机 LCD1602 显示模块
倾角测量模块由三轴加速度传感器 ADXL345 与滤 波电容组成。 ADXL345 是美国 AD 公司于 2008 年推出的采用 MEMS 技术制作,具有 SPI 和 I2C 数字输出功能的三轴 加速度计,具有小巧轻薄、超低功耗、可变量程、高分
SENSE ELECTRONICS
ADC
DIGITAL FILTER
CONTROL AND INTERRUPT LOGIC
择±2、±4、 ±8g 量程,可采用固定的 4 mg/LSB 分辨率 模式,可测 0.25°的倾角变化。此外,还集成了一个 32 级 FIFO 缓存器,用来缓存数据以减轻处理器的负担。图 3 为 ADXL345 功能框图。 2、单片机控制模块 单片机控制模块选用 C8051F040 单片机作为数据处 理和信号控制的核心。 C8051F040 单片机是完全集成的 混合信号系统级芯片( SoC) ,具备控制系统所需的模拟 和数字外设,包括看门狗、 A/D 和 D/A 转换器、电压比 较器、电压基准输出、定时器、PWM、定时器捕捉和方 波输出等。C8051F 系列单片机采用 Flash ROM 技术,集 成 JTAG 支持在线编程, 成为很多测控系统设计的首选[4]。 该系统选用 C8051F040 单片机为系统控制核心,可完成 数据采集、A/D 转换、角度解算、LCD 显示控制等一系 列功能。 3、显示模块 ( 2) 显示模块采用 LCD1602 显示片, 其显示容量为 16×2 个字符,工作电压为 4.5~5.5V,在不开启背光灯时工作 电流为 2mA。优点是显示效果好、价格低、开发方便。 ( 3) LCD1602 液晶总共有 16 个端口,包括背光源正负极、电 源正负极与液晶显示偏压信号, 3 个命令选择端和 8 个数 据 I/O 口。将 3 个命令选择端和 8 个数据 I/O 口配置给 C8051F040 单片机, 设置 P3.0 为数据/命令选择端, P3.1 为读写选择端,P3.5 为使能端,数据 I/O 口分别配置给 P2.0~ P2.7,通过编程实现单片机与液晶屏之间的通信, 达到实时显示倾角的目的。 4、通讯 三 轴 加 速 度 传 感 器 ADXL345 通 过 SPI 接 口 与 C8051F040 单片机进行数据的通信和控制。接口电路原 理图如图 4 所示。 传感器采用单片机的 3.3V 电压源进行供电。将 SPI
摘要:基于美国 AD 公司 ADXL345 三轴加速度传感器,设计了一个以 C8051F040 单片机为核心的 实时倾角测量系统,详细分析了模块的硬件实现以及软件实现方法。经实验结果表明,此系统结构 简单,能够实时检测并显示倾角,具有较好的稳定度和精确度,实际应用中效果良好。 关键词:ADXL345;C8051F040;倾角测量;LCD显示 中图分类号:TP212.9 收稿日期:2012-04-19 文献标识码:B 文章编号:1006-883X(2012)07-0032-05
相关文档
最新文档