1、通频带:0.05Hz35Hz;转换精度:8bit;采样频率:128Hz4 利用LCD显示振动信号,有必要的键盘控制。总体设计方案介绍: 本系统由发射电路和接收电路组成。发射电路主要由加速度传感器构成。接收电路由单片机最小系统和外部串口以及显示部分模块三部分组成。硬件电路设计:(1)使用MMA8452加速度传感器和STC89C52单片机来实现。1.设计目的:了解加速度传感器的工作机理,以及单片机的各种性能;2.设计器材:电源、proteus7.7软件、89C52,MMA8452加速度传感器,导线若干。三设计方案介:该系统目的是便于对一些物理量进行监视、控制。本设计以加速度传感器显示出加速度信号即
2、振动信号,再通过单片机将信号从串口接入电脑显示出来,即完成振动信号的检测功能。(2) 振动传感器的分类1、相对式电动传感器电动式传感器基于电磁感应原理,即当运动的导体在固定的磁场里切割磁力线时,导体两端就感生出电动势,因此利用这一原理而生产的传感器称为电动式传感器。相对式电动传感器从机械接收原理来说,是一个位移传感器,由于在机电变换原理中应用的是电磁感应电律,其产生的电动势同被测振动速度成正比,所以它实际上是一个速度传感器。2、电涡流式传感器电涡流传感器是一种相对式非接触式传感器,它是通过传感器端部与被测物体之间的距离变化来测量物体的振动位移或幅值的。电涡流传感器具有频率范围宽(010 kHZ
3、),线性工作范围大、灵敏度高以及非接触式测量等优点,主要应用于静位移的测量、振动位移的测量、旋转机械中监测转轴的振动测量。3、电感式传感器依据传感器的相对式机械接收原理,电感式传感器能把被测的机械振动参数的变化转换成为电参量信号的变化。因此,电感传感器有二种形式,一是可变间隙,二是可变导磁面积。4、电容式传感器电容式传感器一般分为两种类型。即可变间隙式和可变公共面积式。可变间隙式可以测量直线振动的位移。可变面积式可以测量扭转振动的角位移。5、惯性式电动传感器惯性式电动传感器由固定部分、可动部分以及支承弹簧部分所组成。为了使传感器工作在位移传感器状态,其可动部分的质量应该足够的大,而支承弹簧的刚
4、度应该足够的小,也就是让传感器具有足够低的固有频率。 根据电磁感应定律,感应电动势为:u=Blx&r 。式中B为磁通密度,l为线圈在磁场内的有效长度, r x&为线圈在磁场中的相对速度。从传感器的结构上来说,惯性式电动传感器是一个位移传感器。然而由于其输出的电信号是由电磁感应产生,根据电磁感应电律,当线圈在磁场中作相对运动时,所感生的电动势与线圈切割磁力线的速度成正比。因此就传感器的输出信号来说,感应电动势是同被测振动速度成正比的,所以它实际上是一个速度传感器。6、压电式传感器压电式加速度传感器的机械接收部分是惯性式加速度机械接收原理,机电部分利用的是压电晶体的正压电效应。其原理是某些晶体在一
5、定方向的外力作用下或承受变形时,它的晶体面或极化面上将有电荷产生,这种从机械能(力,变形)到电能(电荷,电场)的变换称为正压电效应。而从电能(电场,电压)到机械能(变形,力)的变换称为逆压电效应。因此利用晶体的压电效应,可以制成测力传感器,在振动测量中,由于压电晶体所受的力是惯性质量块的牵连惯性力,所产生的电荷数与加速度大小成正比,所以压电式传感器是加速度传感器。7、压电式力传感器在振动试验中,除了测量振动,还经常需要测量对试件施加的动态激振力。压电式力传感器具有频率范围宽、动态范围大、体积小和重量轻等优点,因而获得广泛应用。压电式力传感器的工作原理是利用压电晶体的压电效应,即压电式力传感器的
6、输出电荷信号与外力成正比。8、阻抗头阻抗头是一种综合性传感器。它集压电式力传感器和压电式加速度传感器于一体,其作用是在力传递点测量激振力的同时测量该点的运动响应。因此阻抗头由两部分组成,一部分是力传感器,另一部分是加速度传感器,它的优点是,保证测量点的响应就是激振点的响应。使用时将小头(测力端)连向结构,大头(测量加速度)与激振器的施力杆相连。从“力信号输出端”测量激振力的信号,从“加速度信号输出端”测量加速度的响应信号。9、电阻应变式传感器电阻式应变式传感器是将被测的机械振动量转换成传感元件电阻的变化量。实现这种机电转换的传感元件有多种形式,其中最常见的是电阻应变式传感器。电阻应变片的工作原
7、理为:应变片粘贴在某试件上时,试件受力变形,应变片原长变化,从而应变片阻值变化,实验证明,在试件的弹性变化范围内,应变片电阻的相对变化和其长度的相对变化成正比。10、激光传感器激光传感器利用激光技术进行测量的传感器。它由激光器、激光检测器和测量电路组成。激光传感器是新型测量仪表,它的优点是能实现无接触远距离测量,速度快,精度高,量程大,抗光、电干扰能力强等,极适合于工业和实验室的非接触测量应用。智能加速度传感器的工作原理是 :敏感元件将测点的加速度信号转换为相应的电信号,进入前置放大电路,经过信号调理电路改善信号的信噪比,再进行模数转换得到数字信号,最后送入计算机,计算机再进行数据存储和显示。
8、 当传感元件以加速度a运动时,质量块受到一个与加速度方向相反的惯性力作用,发生与加速度成正比a的形变,使悬臂梁也随之产生应力和应变。该变形被粘贴在悬臂梁上的扩散电阻感受到。根据硅的压阻效应,扩散电阻的阻值发生与应变成正比的变化,将这个电阻作为电桥的一个桥臂,通过测量电桥输出电压的变化可以完成对加速度的测量采用MMA7455L的IIC模式MMA7455L是一款低重力、串行数据输出(包括IIC和SPI模式)、低功耗、紧凑型电容式微机械加速度传感器,具有信号调理、低通滤波器、温度补偿、自测、可配置通过中断引脚(INT1或INT2)检测0g、以及脉冲检测(用于快速运动检测)等功能。0g偏置和灵敏度是出
9、厂配置,无需外部器件。我们可以运用指定的0g寄存器和g-Select量程选择对0g偏置进行校准,量程可通过命令选择3个加速度范围(2g/4g/8g,1g=9.807m/s2)。可以实现基于运动的功能,如倾斜滚动、游戏控制、按键静音和手持终端的自由落体硬盘驱动保护、门限检测和点击检测功能等。提供IIC和SPI接口,方便与MCU通讯,因此非常适用于手机或个人设备中的运动运用。MMA7455L还具备待机模式,使它成为电池供电的手持式电子器件的理想选择。MMA7455L同时具有如下特性:封装小,LGA-(3mm*5mm*1mm)封装,具备Z轴自检功能;2.4-3.6V低压操作;可用指定寄存器进行偏移;
10、可编程的阀值中断输出;用于动作识别(撞击、振动、自由落体)的电平检测功能;用于单击和双击识别的脉冲检测功能;在8bit模式下,测量的加速度范围为2g,4g,8g时,其分辨率分别达到64LSB/g,32LSB/g,16LSB/g。可耐高强度冲击达5000g,低功耗特性,使其可用于手持电子设备等。它是由一个表面微机械电容传感元件(g-cell)和一个信号调理ASIC容纳在单一封装中。g-cell是由半导体材料(多晶硅)使用半导体加工(掩膜和蚀刻)工艺成型的机械结构,它可以建模成连接到一个可移动中心质量块的极板和两块固定极板的组合,质量块得极板可以在两块固定的极板间移动。当系统给定一个加速度值时,中
11、心质量块所附属的可移动极板则偏离它的静止位置。这样可移动极板到一边固定板的距离就会增加,到另一边的固定板见间的距离就会减少,距离的班花就是对加速度值得测量。g-cell极板组成了两个背靠背的电容,当在加速度的作用下中从而引起每个电容值的改变(如图4所示)。同时ASIC利用开关电容技术测量g-cell的电容并且从两个电容的差别中提取加速度数据。ASIC再进行型号调理、型号滤波最后提供一个提供一个与加速度成比例的数字输出。MMA7455L的内部结构图如图5所示,X,Y,Z三轴互相垂直 三轴上的加速度值分别由X轴变换器、Y轴变换器、Z轴变换器感知,再经过容压转化器、放大增益、AD转换和各种补偿修正后
12、以数字方式通过SPI或IIC串行接口输出。图4 简明g-cell物理模型图5 MMA7455L内部结构图综上可知,采用MMA7455L的IIC模式电路相对简单,且预计能获得比较好的效果(3). 加速度传感器,连接图如下图所示:(4) 单片机最小系统单片机的最小系统电路图如图6所示,在此介绍复位电路和时钟电路。单片机最小系统复位电路:单片机STC89C52最小系统的复位电路由电阻R2,电容C3和复位开关S2组成,其复位端为第9脚。单片机一上电,由电容电压变化的连续性,端立即变为高点平,实现单片机的上电立即复位功能。单片机上电后,按下复位上电开关S2后,第9脚的电压由原来的低电平变为高电平,使单片
13、机实现复位操作。也就是当该端子上保持两个机器周期的高水平时,可对STC89C52单片机实现复位操作。时钟电路:时钟电路采用内部时钟方式,由电容C1、C4和11.0592MHz的晶振Y1组成,接在单片机的第18和19脚(即XTAL1和XTAL2端)。STC89C52内部有一个用于构成振荡器的高增益反向放大器,它的输入端为芯片引脚XTAL1,输出端为XTAL2。这两个引脚跨接石英晶体和微调电容,构成一个稳定的自激振荡器。电路中的电容C1、 C4可在530 pF之间选择,该电容的大小通常会影响振荡器频率的高低,振荡器的稳定性和起振的快速性。晶体振荡的频率范围通常是在1.2-12MHZ,晶体的频率越高
14、,单片机的运行速度也就越快。但反过来,运行速度越快对存储器的速度要求就越高,对印制电路板的要求也就越高,即要求线间的寄生电容要小。晶体和电容应尽可能安装的与单片机芯片靠近,以减少寄生电容,更好的保证振荡器稳定、可靠的工作。为了提高温度的稳定性,应采用温度稳定性能好的电容。(5) 传感器电路 加速度传感器电路:MMA7455L的芯片引脚功能说明如表1所示。MMA7455L的IIC模式(如图7所示)通信协议是根据菲利普半导体公司的标准,在这个模块的接口中,只有串行数据线(SDA)和串行时钟线(SCL)是需要的。8位串行双向数据传输在标准模式下可以达到100kbit/s,在最快的模式下可以达到400
15、kbit/s。SDA和SCL都是双向数据线,必须通过上拉电阻连接到正电源。电阻选择2.2千欧到4.7千欧比较适宜,在此,我选择4.7千欧。表1 MMA7455L引脚功能说明序号名称描述状态1AVDD_IO3.3V电压输入端(数字)输入2GND地3NC空角、不接或接地4IADDR0IIC地址0位56AVDD3.3V电压输入端(模拟)7CSSPI使能(0),IIC使能(1)8INT1/DRDY中断1/数据就绪输出9INT2中断2101112SDOSPI串行数据输出13SDA/SDI/SDOIIC串行数据输出/SPI串行数据输入/3线串行数据接口输出双向/输入/输出14SCL/SPCIIC/SPI时
16、钟信号输出MMA7455L的IIC模式IIC模式连接的好处是很多芯片可以连接到这条总线上,但是也受总线容量的限制。简单的2线串行IIC模式将连线最小化,因此模块有较少的引脚需要连线,体积小,价格便宜。4 软件设计 部分程序:#include math.h /Keil library stdio.hINTRINS.H#define uchar unsigned char#define uint unsigned int sbit SCL=P27; /IIC时钟引脚定义sbit SDA=P26; /IIC数据引脚定义#define SlaveAddress 0x38 /定义器件在IIC总线中的从地
17、址,根据SA0地址引脚不同修改typedef unsigned char BYTE;typedef unsigned short WORD;BYTE BUF8; /接收数据缓存区 uchar ge,shi,bai,qian,wan; /显示变量int dis_data; /变量int x,y,z;void delay(unsigned int k);void Init_MMA8452(void); /初始化MMA8452void conversion(uint temp_data);void Single_Write_MMA8452(uchar REG_Address,uchar REG_da
18、ta); /单个写入数据uchar Single_Read_MMA8452(uchar REG_Address); /单个读取内部寄存器数据void Multiple_Read_MMA8452(); /连续的读取内部寄存器数据void Delay5us();void Delay5ms();void MMA8452_Start();void MMA8452_Stop();void MMA8452_SendACK(bit ack);bit MMA8452_RecvACK();void MMA8452_SendByte(BYTE dat);BYTE MMA8452_RecvByte();void M
19、MA8452_ReadPage();void MMA8452_WritePage();uchar RX_DATA;void serial_serve(void) interrupt 4 RI=0; RX_DATA=SBUF;/*/串口初始化/9600 bps 11.059 MHz void init_uart() TMOD=0x21; TH1=0xfd; TL1=0xfd; SCON=0x50; PS=1; /串口中断设为高优先级别 TR0=1; /启动定时器 TR1=1; ET0=1; /打开定时器0中断 ES=1; EA=1;/*串口数据发送*void SeriPushSend(uchar
20、 send_data) SBUF=send_data; while(!TI);TI=0;/*void conversion(uint temp_data) wan=temp_data/10000+0x30 ; temp_data=temp_data%10000; /取余运算 qian=temp_data/1000+0x30 ; temp_data=temp_data%1000; bai=temp_data/100+0x30 ; temp_data=temp_data%100; shi=temp_data/10+0x30 ; temp_data=temp_data%10; ge=temp_dat
21、a+0x30; /*/void delay(unsigned int k) unsigned int i,j;for(i=0;ik;i+) for(j=0;j121;j+) ; /*不同的工作环境,需要调整此函数,注意时钟过快时需要修改当改用1T的MCU时,请调整此延时函数*/void Delay5us() _nop_();_nop_();不同的工作环境,需要调整此函数void Delay5ms() WORD n = 560; while (n-);起始信号void MMA8452_Start() SDA = 1; /拉高数据线 SCL = 1; /拉高时钟线 Delay5us(); /延时
22、SDA = 0; /产生下降沿 SCL = 0; /拉低时钟线停止信号void MMA8452_Stop() /拉低数据线 /产生上升沿发送应答信号入口参数:ack (0:ACK 1:NAK)void MMA8452_SendACK(bit ack) SDA = ack; /写应答信号接收应答信号bit MMA8452_RecvACK() CY = SDA; /读应答信号 return CY;向IIC总线发送一个字节数据void MMA8452_SendByte(BYTE dat) BYTE i; for (i=0; i8; i+) /8位计数器 dat = 1; /移出数据的最高位 SDA
23、= CY; /送数据口 MMA8452_RecvACK();从IIC总线接收一个字节数据BYTE MMA8452_RecvByte() BYTE dat = 0; /使能内部上拉,准备读取数据, dat |= SDA; /读数据 return dat;/*单字节写入*void Single_Write_MMA8452(uchar REG_Address,uchar REG_data) MMA8452_Start(); /起始信号 MMA8452_SendByte(SlaveAddress); /发送设备地址+写信号 MMA8452_SendByte(REG_Address); /内部寄存器地址 MMA8452_SendByte(REG_data); /内部寄存器数据 MMA8452_Stop(); /发送停止信号/*单字节读取*/*uchar Single_Read_MMA8452(uch
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1