本科毕业设计基于加速度传感器的坠落检测系统.docx
《本科毕业设计基于加速度传感器的坠落检测系统.docx》由会员分享,可在线阅读,更多相关《本科毕业设计基于加速度传感器的坠落检测系统.docx(25页珍藏版)》请在冰点文库上搜索。
本科毕业设计基于加速度传感器的坠落检测系统
目录
摘要:
1
0前言2
1单片机简介2
1.1STC89C52引脚及其功能3
1.2中断系统5
1.3定时器/计数器7
1.4串行口及IIC总线接口8
2ADXL345加速度传感器简介9
2.1ADXL345工作原理9
2.2ADXL345内部寄存器介绍10
2.3ADXL345通过IIC总线方式连接简介11
3LCD1602液晶简介12
3.1主要接口及存储器映射12
3.2基本操作时序13
4系统分析与实现13
4.1硬件连接14
4.2程序流程15
4.3部分程序代码16
4.4系统运行说明20
5结论20
参考文献21
基于加速度传感器的坠落检测系统
(河南大学物理与电子学院,河南开封,475004)
摘要:
硬盘在读写数据时,磁头与碟片之间的间距很小,同时碟片转速也很高,因此,外界的震动很容易就可能对硬盘造成很大的伤害,造成数据丢失的后果。
为提高耐用性我们必须能够可靠的检测到“自由落体”坠落,保证硬盘磁头在碰撞到来前停止工作,从而避免或减轻硬盘可能受到的损坏。
ADXL345是一款非常适合移动设备的加速度传感器,低功耗、高分辨率,可通过SPI或IIC数字接口访问数字输出数据。
它可以检测静态或动态重力加速度,自由落体检测功能可以检测器件是否正在掉落。
这里利用ADXL345三轴加速度计检测重力加速度的方法,检测系统状态,模拟硬盘坠落保护系统。
同时,根据三轴测量结果,计算各方向的倾斜角度,实现对系统姿态的感知。
关键词:
MEMS;ADXL345;单片机;坠落检测;
TheFallsensingSystemBasedonDigitalAccelerometer
GaoXiang
(SchoolofPhysicsandElectronics,HenanUniversity,HenanKaifeng475004,China)
Abstract:
Thespacebetweenthereadheadanddiscissosmallwhileharddiskisreadingorwritingdata,thespeedisveryhighinthesametime,alittleshockmaycauseconsiderabledamagetotheharddiskanddestroydata.WemustdetectFree-fallreliabletoensurethereadheadstopreadingorwritingdatabeforetheshockcomes,inordertoavoidorlessdamaging,
TheADXL345isasmall,thin,ultralowpoweraccelerometerwithhighresolution,whichiswellsuitedformobiledeviceapplications,itsdigitaloutputdataisaccessiblethroughertheraSPIorIICdigitalinterface.Itmeasuresthestaticaccelerationofgravityanddynamicaccelerationresultingfrommotionorshock.Free-fallsensingdetectsifthedeviceiffalling.
Bythewayofcheckthemeasurementsofacceleration,tojudgewhetherthesystemisfallingdown,wecansimulatethefallsensingsystemofharddisk.Similar,comparingtheaccelerationonanyaxisandcalculatetheinclinationchanges,torealizethedetectionandcontrolofthesystem.
Keywords:
MEMS;ADXL345;Microcontrollers;Fallsensing;
0前言
随着高保真多媒体内容的不断演进,大大的改善了我们的视听体验,同时也带来巨大的存储容量需求,高容量硬盘更多的用在便携式电子设备中,硬盘驱动器的自我保护变得至关重要。
硬盘的损坏大多来自于磁头同盘片的摩擦,只要能够保证高速旋转的盘片远离磁头,基本的冲击和坠落是很难伤害到盘片的。
正常工作下,磁头和盘片是有一定间隙的,但在意外的冲击和碰撞下,磁头和高速旋转的盘片接触猛烈摩擦而损伤盘片,造成数据损坏丢失。
为保证磁头不与盘片接触,各大厂商都开发了保护技术,从原理上来说无非是通过检测坠落,在硬盘遇到明显的加速度和失重的情况下,让磁头复位,从而起到保护数据的作用。
单片机(Single-ChipMicrocontrollers)是一种集成电路芯片,它不是为了完成某个逻辑功能的芯片,而是一个微型的计算机系统。
它包含了具有数据处理能力的中央处理器、随机存储器、只读存储器、多个I/O口和中断系统、定时器/计数器功能。
它具有低电压、低功耗、抗干扰能力强、可靠性高的优点。
作为一个计算机发展的重要分支,单片机广泛用于仪器仪表、家用电器、网络通信、汽车电子等各种智能化管理和控制领域。
本文主要介绍以STC89C52单片机为核心的加速度传感器应用,利用ADI公司的ADXL345数字加速度计测量加速度,判断系统的姿态,通过IIC串行总线方式将数据传送给单片机,辅以LCD1602液晶显示单元将数据实时显示出来,通过定时监测加速度数据,可以分析系统的倾斜方向、运动状态等信息。
本设计以最高200Hz的速率检测系统的重力加速度,可靠地判断系统是否处于自由落体状态,提供报警功能,从而模拟出笔记本硬盘坠落保护系统。
1单片机简介
MCS-51系列单片机是Intel公司1980年推出的8位单片机,至今30多年来,51单片机经久不衰,并得到了极其广泛的应用[1]。
STC89C52系列单片机是STC推出的高速、低功耗、强抗干扰的单片机,工作电压为5.5V-3.8V,内置8K片内存储器,片上集成1280字节或512字节RAM。
STC89C52单片机包含中央处理器(CPU)、程序储存器(Flash)、数据存储器(SRAM)、定时/计数器、UART串口、看门狗等,几乎包含了数据采集和控制中所需的所有单元模块。
1.1STC89C52引脚及其功能
本设计选用的单片机封装为PDIP-40,引脚及引脚功能如图1.1所示。
图1.1STC89C52引脚图
1.1.1电源引脚VCC和GND
VCC(40脚):
电源端,+5V。
GND(20脚):
接地端。
1.1.2外接晶体引脚XTAL1和XTAL2
XTAL1(19脚):
内部时钟电路反相放大器输入端,接外部晶振的一个引脚。
当直接用外部时钟源时,此引脚是外部时钟源的输入端。
XTAL2(18脚):
内部时钟电路反相放大器的输出端,接外部晶振的另一端。
当直接使用外部时钟源时,此引脚是外部时钟源的输入端。
图1.2外部晶振电路
本设计中外部晶振电路原理图如图1.2所示。
选用的为两个30pF的瓷片电容和振荡频率为11.0592MHz的晶振。
1.1.3复位引脚RST
RST(9脚):
RST是单片机复位信号输入端,高电平有效。
当此输入端保持两个机器周期(24个时钟振荡周期)的高电平时,就可以完成复位操作。
同时,STC89C52提供有四种复位方式:
外部引脚RST复位,软件复位,掉电/上电复位,看门狗复位。
本设计的RST复位如图1.3所示。
图1.3外部引脚RST复位
1.1.4输入/输出端口P0、P1、P2和P3
P0端口(P0.0~P0.7,39~32脚):
P0口是一个漏极开路的8位准双向I/O端口。
P1端口(P1.0~P1.7)、P2端口(P2.0~P2.7)、P3端口(P3.0~P3.7):
P1、P2和P3端口是带有内部上拉电阻的8位双向I/O端口。
在STC89C52中,P3端口还用于一些复用功能,其复用功能如表1.1所示。
表1.1P3端口复用功能
端口引脚
复用功能
P3.0
RXD串行输入口
P3.1
TXD串行输出口
P3.2
外部中断0
P3.3
外部中断1
P3.4
T0定时器0/计数器0外部输入
P3.5
T1定时器1/计数器1外部输入
P3.6
外部数据存储器写脉冲
P3.7
外部数据存储器读脉冲
1.2中断系统
中断系统是为使CPU具有对外界紧急事件的实时处理能力而设置的。
当CPU正在处理某件事情的时候,外部发生的某一事件(如一个电平的变化、一个脉冲沿的发生或定时器计数溢出等)请求CPU迅速去处理,于是,CPU暂时中止当前的工作,转去处理所发生的事件。
中断服务处理完该事件以后,再回到原来被中止的地方,继续原来的工作,这样的过程称为中断[2]。
过程如图1.4所示。
图1.4中断过程
1.2.1中断优先级
微型机的中断系统一般允许多个中断源,当几个中断源同时向CPU请求中断,要求为它服务时,通常优先处理最紧急事件的中断请求,规定每一个中断源都有一个优先级,CPU总是先响应优先级最高的中断请求。
STC89C52的中断优先级顺序如图1.5所示。
图1.5中断优先级顺序
当CPU正在处理一个中断源请求的时候,发生了另外一个优先级更高的中断请求,如果CPU能够暂停对原来中断源的服务程序,转去处理优先级更高的中断请求源,处理完以后,再回到原来低级中断服务程序,这样的过程称为中断嵌套。
1.2.2中断控制
STC89C52中断系统有四个特殊功能寄存器:
定时器控制寄存器(TCON),串行口控制寄存器(SCON),中断允许寄存器(IE),中断优先级寄存器(IP)。
中断控制寄存器标志位如图1.6所示[3]。
图1.6中断控制寄存器标志位
TF1和TF0为定时器/计数器溢出请求中断标志位。
硬件置1和置0。
IE1和IE0为外部中断请求标志。
IT1和IT0为外部中断触发方式控制位。
TI:
串行口发送中断标志位。
CPU将数据写入发送缓冲期SBUF中时就启动发送。
没发送完一帧数据,硬件置位T1,CPU响应中断后,必须在中断服务程序中软件清0。
RI:
串行口接收中断请求标志位。
同样,由硬件置1,并且必须在中断服务程序中软件清0。
EA:
中断允许总控制位。
EA=0时屏蔽所有中断请求。
EA=1时CPU开中断。
ES:
串行口中断允许位。
ET1:
定时器/计数器T1溢出中断允许位。
ET1=0时禁止T1中断。
ET1=1时允许T1中断。
EX1:
外部中断1中断允许位。
EX1=0时禁止外部中断1中断。
EX1=1时允许外部中断1中断。
ET0:
定时器/计数器T0溢出中断允许位。
ET0=0时禁止T0中断。
ET0=1时允许T0中断。
EX0:
外部中断0中断允许位。
EX0=0时禁止外部中断0中断。
EX0=1时允许外部中断0中断。
PS:
串行口中断优先级控制位。
PT1:
定时器/计数器T1中断优先级控制位。
PX1:
外部中断1中断优先级控制位。
PT0:
定时器/计数器T0中断优先级控制位。
PX0:
外部中断0中断优先级控制位。
若某个或某几个控制位为1,则相应的中断源就规定为高级中断。
反之,若控制位为0,则相应中断源就规定为低级中断。
1.3定时器/计数器
STC89C52内部设置有两个16位定时器/计数器T0和T1,可用于定时控制、延时、对外部事件计数和检测等。
每个定时器由两个8位特殊功能寄存器构成,工作方式和功能由特殊功能寄存器TMOD和TCON所控制。
1.3.1定时器的控制
图1.7TMON的位定义及作用
图1.8TCON的位定义及作用
TMOD和TCON是两个8位寄存器,其中,低四位用于T0,高四位用于T1。
TMOD和TCON的位定义及作用如图1.7和1.8所示。
1.3.2定时器的工作模式
定时器T0由两个8位特殊功能寄存器TH0和TL0组成,定时器T1由两个8位特色功能寄存器TH1和TL1组成。
由TMOD中M1,M0控制四种工作模式。
其中:
模式013位计数器
模式116位计数器
模式2自动重装8位计数器
模式3T0:
分为两个8位计数器;T1:
停止计数
模式2的8位自动重载计数器在程序初始化时,低八位和高八位由软件赋予相同的初值,一旦低八位计数溢出,便置位TF0,并将高八位中的初值自动装入低八位,继续计数。
这种模式特别适合用于串行口波特率发生器。
在本设计中,定时器主要用于坠落检测的定时以及串行口通信的波特率发生器。
1.4串行口及IIC总线接口
1.4.1STC89C52串行口简介
STC89C52内部集成有一个全双工串行通信口,设有两个互相独立的接收、发送缓冲器,可以同时发送和接收数据。
两个缓冲器公用一个地址码(99H),统称为串行通信特殊功能寄存器SBUF。
STC89C52串行口对应的引脚是P3.0/RXD和P3.1/TXD。
在本设计中,主要用于程序下载以及与上位机通信的扩展。
1.4.2IIC总线接口简介
IIC总线是PHILIPS公司推出的串行总线。
IIC总线是一种具有自动寻址、高低速设备同步和仲裁等功能的高性能串行总线,能够实现完善的全双工数据传输。
IIC总线只有两根信号线:
数据线SDA和时钟线SCL[4]。
IIC总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。
SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号;SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号。
IIC总线起始和终止信号如图1.9所示。
图1.9IIC总线起始/终止信号
在IIC总线上每传送一位数据都有一个时钟脉冲相对应。
当接收器接收到一个数据/地址字节后需要进行其他工作而无法立即接收下一个字节时,接收器便可向SCL线输出低电平,迫使SDA线处于等待状态,直到接收器准备好接收新的数据/地址字节时,再释放时钟线SCL(SCL=1),使SDA线上数据传输得以继续进行。
利用SDA线进行数据传输时,发送器每发完一个数据字节后,都要求接收方发回一个应答信号。
但与应答信号相对应的时钟仍由主控器在SCL线上产生,因此主控发送器必须在被控接收器发送应答信号前,预先释放对SDA线的控制,以便主控器对SDA线上应答信号的检测。
IIC总线在本设计中的具体应用在后边介绍。
2ADXL345加速度传感器简介
ADXL345是ADI公司于2008年推出的采用MEMS技术具有SPI和IIC数字输出功能的三轴加速度计,具有小巧轻薄、超低功耗、可变量程、高分辨率等特点。
它的最大量程可达±16g,数字输出数据为16位二进制补码格式,可通过SPI(3线或4线)或IIC数字接口访问[5]。
ADXL345 提供一些特殊的运动侦测功能,可在倾斜敏感应用中测量静态重力加速度,也可在运动甚至振动环境中测量动态加速度,非常适合于移动设备应用,可广泛应用于手机、游戏和定点装置、医疗设备、工业仪表仪器、个人导航设备和硬盘驱动器(HDD)保护等。
2.1ADXL345工作原理
ADXL345是一款完整的3轴加速度测量系统,可选择的测量范围有±2g,±4g,±8g或±16g。
该传感器为多晶硅表面微加工处理,置于晶圆顶部。
由于应用加速度,多晶硅弹簧悬挂于晶圆表面的结构之上,提供力量阻力。
差分电容由独立固定板和活动质量连接板组成,能对结构偏转进行测量。
加速度使惯性质量偏转、差分电容失衡,从而传感器输出的幅度与加速度成正比。
相敏解调用于确定加速度的幅度和极性。
ADXL345可以自动调节功耗,与输出数据速率成比例。
2.2ADXL345内部寄存器介绍
2.2.1寄存器0x00—DEVID(只读)
D7D6D5D4D3D2D1D0
11100101
DEVID寄存器保存0xe5的固定器件ID代码。
2.2.2寄存器0x1E、0x1F、0x20—OFSX、OFSY、OFSZ(读/写)
OFSX、OFSY、OFSZ寄存器以二进制补码形式设置偏移调整,比例因子为15.6mg/LSB,与选取的测量范围无关。
偏移寄存器的的存储值自动添加到加速度数据,结果数据存储在数据寄存器。
加速度传感器为机械结构,内部包含有可移动的元件,这些可移动的运动部件对机械应力非常灵敏,为了保证测量值的准确,校准测量偏移很有必要。
2.2.3寄存器0x2C—BW_RATE(读/写)
D7D6D5D4D3D2D1D0
000LOWER_POWER速率
LOWER_POWER为0设置正常功耗,为1设置为低功耗模式,此时噪声增加。
速率位选择输出数据速率和带宽,默认为0x0a。
当选择速率过高时可能会导致采样丢失。
2.2.4寄存器0x32至0x37—DATAX0、DATAX1、DATAY0、DATAY1、DATAZ0和DATAZ1(只读)
图2.1ADXL345输出数据格式
寄存器0x32、0x33保存X轴输出数据;寄存器0x34、0x35保存Y轴输出数据;寄存器0x36、0x37保存Z轴输出数据。
ADXL345输出数据是二进制补码,在13位分辨率模式下,高四位是符号位,如图2.1所示。
2.3ADXL345通过IIC总线方式连接简介
ADXL345可以使用SPI总线和IIC总线连接方式作为从机运行。
本系统采用IIC方式连接,
引脚拉高置VCC,如图2.2所示。
图2.2ADXL345模块
IIC总线上所有的外围器件都有规范的器件地址。
器件地址由7位组成,和一位方向位构成了IIC总线的寻址字节SLA。
SLA高四位是IIC总线外围接口固有的地址编码。
最低位数据方向R/W规定了总线上主机对从机的数据传送方向,R——接收,W——发送。
其余三位为引脚地址,是由IIC总线外围器件地址端口在电路中连接电源或接地的不同而生成的地址数据。
当主机向ADXL345某寄存器写单字节数据时,串行时钟线SCL=1,串行数据线SDA发生一个由高到低的跳变,即为开始信号;主机总线发送从机地址+写信号,从机接收到之后发送应答信号;主机接收到应答信号之后发送从机寄存器地址,从机接收到之后发送一个应答信号;主机向总线写一个字节数据,从机接收到之后发送一个应答信号;主机发送停止信号。
单字节写入完成。
主机从ADXL345读取单字节数据时,先发送开始信号;发送从机地址+写信号,传感器发送应答信号;主机发送从机寄存器地址,从机发送应答信号;主机发送开始信号,发送从机地址+读信号,从机发送应答信号之后便开始向主机发送指定寄存器的一个字节数据;主机接收完发送非应答,发送结束信号结束单字节读取。
连续写入、连续读取数据时序图如图2.3所示[5]。
图2.3ADXL345IIC器件寻址
3LCD1602液晶简介
LCD1602液晶显示器为字符型液晶,能够同时显示16*2即32个字符。
采用HD44780液晶芯片,内部自带字符存储器,可以方便的显示数字、字母等简单字符。
3.1主要接口及存储器映射
LCD1602液晶常用端口为14个,主要接口如图3.1所示。
图3.1LCD1602液晶接口说明
LCD1602液晶工作电压为4.5-5.5V,以5*7点阵方式显示字符,其控制器内部带有80字节的RAM缓冲区,其控制器内部还设有一个数据地址指针,首行从80H开始,第二行从C0H开始,可以通过他们来访问内部的全部80字节RAM,显示出的前16个字符,每个字符对应一个地址,如图3.2所示。
图3.2LCD1602RAM地址映射图
3.2基本操作时序
LCD1602液晶的RS引脚为数据/命令选择端,高电平选择数据,低电平选择命令。
RW引脚为读/写选择端,高电平选择读,低电平选择写。
EN为使能信号端。
其基本操作时序如下:
写指令时,RS=L,RW=L,D0-D7=指令码,E=高脉冲;
写数据时,RS=H,RW=L,D0-D7=指令码,E=高脉冲;
读状态时,RS=L,RW=H,E=H,输出D0-D7状态字;
读数据时,RS=H,RW=L,E=H,输出D0-D7数据。
每次对控制器进行读写操作之前,都必须进行检测,确保D7为0,表示控制器空闲,可以操作。
4系统分析与实现
硬盘坠落保护系统是一个帮助保护硬盘驱动器免受强烈的物理震动或者坠落所导致损坏的自主功能,它一直监视着硬盘的移动,并且在预测到坠落或类似可能导致损坏的事件时暂停硬盘驱动器。
本设计是基于数字加速度计ADXL345的坠落检测和蜂鸣器报警的硬盘坠落保护模拟系统。
本系统可细分为单片机控制与数据处理、加速度传感器检测与报警、液晶显示三个子系统,如图4.1所示。
功能设计为:
利用传感器测量加速度值,通过IIC总线发送给控制中心——单片机,控制中心处理接受到的数据,计算出加速度的方向和大小,将这些内容发送给显示器实时显示,同时,检测加速度数据是否正常,一旦超过正常范围,立即触发报警装置报警。
图4.1系统框图
4.1硬件连接
本设计硬件连接分为3部分,单片机最小系统、LCD1602液晶与报警模块、ADXL345加速度传感器。
4.1.1STC89C52RC最小系统
图4.2单片机最小系统
单片机最小系统包含单片机电源部分、复位电路和外部振荡电路,如图4.2所示。
4.1.2LCD1602液晶显示与报警模块
LCD1602液晶模块连接如图4.3所示。
指令/数据选择端RS与P1^0连接,读写选择端RW与P1^1连接,使能端EN与P1^3连接,数据端口D0-D7与P0口连接。
图4.3LCD1602液晶显示与报警模块连接原理图
为提高单片机I/O口驱动能力,选用了PNP三极管9012驱动蜂鸣器[6]。
蜂鸣器控制端口为P1^5。
4.1.3ADXL345模块
数字加速度传感器采用IIC总线连接方式,其中数据线SDA与P1^3连接,时钟线SCL与P1^4连接。
电源连接选用+5V,与单片机相同。
如图4.4所示。
图4.4ADXL345连接原理图
4.2程序流程
当开机上电之后,系统先要初始化LCD1602显示和ADXL345加速度传感器,设置显示模式,设置加速度传感器工作模式、数据输出速率等。
初始化完成后测试传感器是否正常,读取寄存器0x00的数据,正常值为0xE5,错误则跳转到错误处理,在LCD1602液晶显示器上显示“ERROR!
”。
连续读出寄存器0x32至0x37的数据,由于ADXL345输出数据格式为二进制补码形式,因此需要进行数据处理。
与此同时,定时器0定时产生中断,在中断服务子程序中检测是否坠落。
当检测到坠落时蜂鸣器发声报警。
程序流程如