C超低功耗倾角测量仪论文.docx

上传人:b****5 文档编号:7391231 上传时间:2023-01-23 格式:DOCX 页数:18 大小:55.88KB
下载 相关 举报
C超低功耗倾角测量仪论文.docx_第1页
第1页 / 共18页
C超低功耗倾角测量仪论文.docx_第2页
第2页 / 共18页
C超低功耗倾角测量仪论文.docx_第3页
第3页 / 共18页
C超低功耗倾角测量仪论文.docx_第4页
第4页 / 共18页
C超低功耗倾角测量仪论文.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

C超低功耗倾角测量仪论文.docx

《C超低功耗倾角测量仪论文.docx》由会员分享,可在线阅读,更多相关《C超低功耗倾角测量仪论文.docx(18页珍藏版)》请在冰豆网上搜索。

C超低功耗倾角测量仪论文.docx

C超低功耗倾角测量仪论文

超低功耗倾角测量仪

摘要2

一设计要求3

二系统方案3

2.1总体方案设计3

2.2系统理论分析4

2.3各模块设计比较4

2.3.1角度传感器模块的方案论证与选择4

2.3.2键盘方案选择4

2.3.3液晶模块方案选择4

2.3.4供电模块方案选择5

三电路与程序设计5

3.1硬件电路设计5.

3.1.1主控芯片5

3.1.2倾角传感器5

3.1.3按键部分5

3.1.4供电部分5

3.1.5液晶显示部分5

3.2软件设计6

四测试结果与分析6

4.1测试方案6

4.2测试结果分析6

五结论8

参考文献8

附录一9

附录二13

摘要:

为实现倾角的快速、准确测量,且超低功耗运行,在结构上,系统由供电模块,角度传感器模块,键盘控制模块,以及液晶显示模块构成。

在控制方案中,本系统以MSP430G2553单片机作为主控芯片,由大容量电解电容供电。

系统采用RT9266B为电容充电,随后通过LM26001降压芯片为单片机供电。

在采集倾角信息时,采用MMA8451倾角传感器传递倾斜角度数字信号,经单片机处理

后,通过液晶显示当前角度及三向重力加速度。

经测试,该系统运行稳定,倾角测量误差小,功耗低,多次测试均达到达到了设计要求,实现了指定功能。

关键词:

MSP430超低功耗MMA8451液晶显示

Abstract:

Inordertomeasuretheanglefastandaccurately,andruninthelowpowermode,inthestructure,thesystemconsistsofpowersupplymodule,anglesensormodule,keycontrolmodule,andliquidcrystaldisplaymodule.ThesystemusesMSP430G2553asthemaincontrolchip,andsuppliedbyalargecapacityelectrolyticcapacitor.ThesystemusesRT9266BforchargingthecapacitorandLM26001chipsupplypowerforMCU.Whilecollectingangleinformation,MMA8451sendsbackdigitalsignalofangle,whichisprocessedbytheMCUandshowedbyliquidcrystaldisplaycurrentangleandaccelerationofgravity.Aftertesting,thesystemrunssteadily,.Anglemeasurementerrorissmall.Atthesametime,thesystemachievestheaimoflowpower.Severaltestsaretomeetthedesignrequirements,achievingthespecifiedfunction.

Keywords:

MSP430lowpowerMMA8451LCDdisplay

、设计要求

电K电容C1

图1超低功耗倾角测量仪示意图

(1)倾角测量仪的测角范围为0〜90度,要求每按一下测试按键进行一次测量,显示分辨率为0.1度,精度为凸度。

(2)电容Ci的容量为2200^F,充电到25V后接入测量仪系统。

当以每5

秒一次的频率进行测量时,测量仪至少可以正常工作60秒。

(3)增加可以测量并显示沿X、丫、Z方向重力加速度分量的功能,要求测量精度为凸%,单位为m/s2。

(4)进一步提高倾角测量仪的测量精度,使精度达到±度。

(5)电容Ci的容量改为100"电容,充电到25V后接入系统。

并尽可能地延长使用时间。

(6)自制为电容C1充电的充电装置(充电电压为25V),该充电装置要求使用1.5V干电池(电池可方便拆装)供电。

(充电装置中使用的电容容量不限)。

二、系统总体方案

2.1总体方案设计

超低功耗倾角测量仪是由储有电能的电解电容供电,以MSP430G2553单片

机作为系统的控制核心,整个系统分为角度传感器模块、键盘控制模块、液晶屏

显示模块。

高精度的MMA8451倾角传感器实时测量角度,并通过键盘控制单片机开始测量角度,12864液晶屏实时显示倾角及三向重力加速度的数值。

系统功能框图如图一所示。

传感器

(MMA8451)

MSP430G2553

单片机

液晶显示

(FGC12864-

SPID)

充电电路

p.

电容1

rTILM26001降

(50V/2200uF)I

压电路

 

独立按键

图一系统功能框图

2.2系统理论分析・

2.2.1角度测量原理

MMA8451倾角传感器被固定于斜坡上,内部的加速度感应器将倾角转换成数字信号,并实时传递给单片机,经单片机处理后然后通过液晶屏显示出来。

加速度传感器输出信号和角度之间的关系可以由下面公式给出:

Ax=g*sin(a);

Ay=g*sin(B);

Ax、Ay表示重力加速度,a、B表示倾角角度。

当倾斜角大于60度时,误差较大。

利用线性模拟加速度传感器的灵敏度转化成倾角的灵敏度。

2.2.2单片机供电

利用干电池给大电容Ci充电,电容容量为2200^F,充电到25V后接入LM26001芯片,经LM26001整压降为3.3V后给单片机供电。

充电电路原理图与PCB图见附录图1与图2。

2.3各模块设计比较

2.3.1、角度传感器模块方案论证与选择

方案一、利用MMA8451倾角传感器传递倾斜的角度,该传感器可以不通过A/D转换直接实现角度的液晶显示,测量方便。

使程序更加简洁。

方案二、利用MMA7361倾角传感器传递倾角的角度。

MMA7361倾角传感器返回电压量,要液晶屏上显示需要进行A/D转换,增加了操作的步骤,但是

使程序更加复杂。

故选择方案一。

2.3.2键盘控制模块方案论证与选择

方案一、利用矩阵键盘一次性设置对单片机进行中断唤醒次数,这种方式可

以节约大量管脚资源,但驱动电路相对复杂,适用于大规模键盘控制系统。

方案二、使用单个独立按键,此方案中单片机的操作简单、方便,反应速度快,实现了电路简化。

故选择第二种方案。

2.3.3、液晶显示方案选择

方案一、使用普通类型的12864液晶,但其较耗能高,管脚多且连接复杂,占用资源较多,不适用于超低功耗系统。

方案二、使用FGC12864SPIDA液晶,显示界面更加方便、人性化。

该液晶

模块更低功耗,体积小,显示信息量大,字迹美观,易于被单片机控制。

故选择

2.3.4、供电模块方案选择

方案一、采用直流电源为单片机供电,方式简单易控,但电压会有波动,且效率低,达不到低功耗的要求。

方案二、采用RT9266B芯片先给电容Ci充电到25V,然后通过LM26001降压得到精确的3.3V电压接入单片机为其供电,LM26001工作在开关模式下,效率高,功耗低,调节电压速度快且精准。

故选用方案二进行设计。

三、电路与程序设计

3.1硬件电路设计

3.1.1、主控芯片

MSP430G2553原理图(见附录一图3),工作在低电源电压范围,超低功耗,配置有两个16位Timer_A,三个捕获/比较寄存路器。

并且运算速度快,精度高,完全可以实现要求。

3.1.2倾角传感器

MMA8451是一款具有14位分辨率的智能低功耗、三轴、电容式微机械加速度传感器。

这款加速度传感器具有丰富嵌入式功能,带有灵活的用户可编程选项,可以配置多达两个中断引脚。

嵌入式中断功能可以节省整体功耗,解除主处理器不断轮询数据的负担。

MMA8451具有坐g/±g/±g的用户可选量程,可以实时

输出高通滤波数据和非滤波数据。

该器件可被配置成利用任意组合可配置嵌入式的功能生成惯性唤醒中断信号,这就使MMA8451在监控事件同时,在静止状态保持低功耗模式。

倾角传感器应用原理图(见附录一图4)。

3.1.3按键部分

利用单个独立键盘接入MSP430G2553单片机I/O口,进行中断唤醒,实现对倾角的测量。

3.1.4供电部分

LM26001是一款高效率睡眠1.5A开关稳压器。

该器件具有低电流睡眠模式,以维持在轻载条件下的效率和电流模式控制在宽输入电压范围内精确调节。

同时

具有电源良好,可调软启动,输入欠压保护,内部自举二极管,减少元件数量等优良特点。

系统采用LM26001把电容4V-28V电压降压为3.3V为单片机供电;采用单片机为液晶显示屏供电,提供5V的电压。

3.1.5液晶显示部分

FGC12867SPIDA液晶显示使用ST7567控制器,5V电压驱动,没背光,是一种128*64点阵式液晶模块的低功率COMS技术,与外部CPU接口采用并行或串行两种控制方式。

设计中使用串行控制方式来实现液晶显示功能,显示实

验项目中倾角的角度及三向的重力加速度分量的数值。

(见附录一图5)

3.2软件设计

在该系统中,倾角测量器将倾斜角度以数字量形式传递给单片机,按键实现

中断唤醒,以启动单片机的工作模式,单片机将信号进行运算处理后再将数据转换显示数据传递给液晶显示器。

流程图如图3

初始化

YES

唤醒中断

采样处理

液晶显示

图2、程序流程图

322程序设计部分源程序见附录二

四、测设结果及分析

4.1测试方案

测试仪器:

精密量角器,直尺。

测试方法:

采用三次测量,求平均值,以减小实验误差4.2测试结果及分析

数据测试结果如表一表二所示。

表一:

补偿后所得倾角

真实角度

测量一

测量二

测量三]

平均值

0

0.1

0.2

0

0.100000:

6

5.8

6.1

5.9

5.933333

16

15.8

16.2

16.4

16.333333

35

34.9

35.1

35.2

35.066666

45

44.8

45.3

45.6

45.233333

55

54.7

55.1

55.6

55.133333

65

65.1

65.2

64.9

65.066666「

75

74.6

75.2

75.3

75.033333

85

84.7

85.2

85.5

85.133333

87

86.4

86.9

86.8

87.100000

90

89.9

90.1

90.2

90.066666

表二:

角度及沿X、Y、Z三方向加速度值

实际倾角

Z加速度

X加速度

丫加速度

0

9.88

0.86

0.04

10

9.75

0.30

1.45

25

8.29

0.88

4.87

35

7.43

1.00

6.24

55

5.45

1.06

8.00

65

3.40

0.75

9.00

75

2.22

1.00

9.43

80

1.49

1.03

9.68

85

0.93

0.89

9.79

90

0.10

0.72

9.79

经测试,所有参数与功能均达到了要求值,系统运行稳定

五、总结

本次设计按照题目要求,通过模块化的硬件和软件设计方法,成功地实现了规定的功能。

系统利用MSP430G2553单片机作为控制核心,采用低功耗模式利用倾角传感器测量倾角及沿X、丫、Z轴方向的重力加速度大小,并用低功耗液晶显示其角度值。

系统结构紧凑,硬件配置合理,程序思路清晰而高效。

经过测试,各个模块运行良好,功能均正常精确完成。

当然,由于水平有限,其中的错误和疏漏不可避免,望各位老师予以指正。

最后,感谢大赛组委会给予我们的宝贵参赛机会。

六、参考文献

(1)谭浩强.C语言程序设计[M].北京.清华大学出版社

(2)黄智伟.全国大学生电子设计竞赛训练教程[M].电子工业出版社

(3)王划一.自动控制原理M].国防工业出版社

(4)华成英童诗白.模拟电子技术基础[M].第四版.高等教育出版社,2006

(5)张伟霞廖清.微型机与应用[J].2011年23期

七、附录

附录

C3

1uF

5V

J2

OUT

GND

GND

MC34063

D21N5819

C4220uF/35v“

100UH

1

2

3

4

8

7

6

5

LX

QR

GND

IPK

CT

VIN

GND

CMP

R3

180R

R40.2R

GND

GND

C5

10P

R5

R6

200K

10K

R7

510R

GND

图1充电电路

 

图2、充电电路的PCB图

li

71

6

UVDD|

 

图3LM26001原理图

 

图4LM26001PCB图

 

EN

□NDAGNDVDD三

GND

\/

AGND

MN

VBIAS

\TN

sw

PGOOD

sw

EN

BOOT

STM:

FB

ss

COMP

EREQ

VDD

FEW

GND

Ul

J5X51

■3

GND

\7

AGND

 

图5捕获电路原理图

J6

1

ExtPWR

 

图6MSP430G2553原理图

SDAO

16V-16V、InterfaceVoltage'■;

1.95V-3L6V

QVDD

VDDIO

C

VDDIO

Q

-t-'VDDI

.2JBYP

□z

11

o

1

NCJ3.

GNDR苕

"3■NC

■■“■

NT1;H_

4SCL

gnd'IV

5_GND

o

5

uz

INT2!

_g"

1-1

1-1

]"1

16iii

■7-

11

>8iIli

SCLO

OII4T1

CIMT2

QSAO

 

Figure4.ApplicationDiagram

图7倾角传感器应用图解

附录二

部分源程序:

/**************************************************************

程序功能:

用并行数据传输方式在液晶上综合显示字符、文字和图形注意事项:

根据液晶的供电电压的不同正确选择液晶的供电电压跳线将开发板上PCB插针和LCD插针用短路帽短接测试说明:

观察液晶显示

*************************************************************

#include

#include"chuan.h"

#include"public.h"

#include"lcd.h"

#include"stdio.h"

#include"math.h"

#include"LcdDisplay.h"

inttime=O;

voidmain(){

//关闭看门狗

WDTCTL=WDTPW+WDTHOLD;

//BCSCTL1&=~XT2OFF;//打开XT2振荡器

IO_Set();

LCD_Init();

MMA845x_init();

Ext1」nit();

Timer」nit();

InterFace();

while

(1)

//CPU关闭

{

_BIS_SR(CPUOFF);

}

#pragmavector=TIMERO_AO_VECTOR//中断入口(由中断源决定)

__interruptvoidta_isr(void)//中断名(可自行定义)

{

floattemp;

time++;

if(time>=3)

{time=0;

Get_Acceleration();

//AngleShow(2,2);

temp=sqrt((Ax*Ax+Ay*Ay)/fabs(Az));

AngleShow(2,2,temp);

AccessShow(12,2,Z_Acceleration);

temp=sqrt((Az*Az+Ay*Ay)/fabs(Ax));

AngleShow(2,4,temp);

AccessShow(12,4,X_Acceleration);

temp=sqrt((Ax*Ax+Az*Az)/fabs(Ay));

AngleShow(2,6,temp);

AccessShow(12,6,Y_Acceleration);

}

#pragmavector=PORT1_VECTOR//中断入口(由中断源决定)__interruptvoidP1_interrupt(void)//中断名(可自行定义)

厂_

inti=0;

floattemp;

for(;i<4000;i++);

if(P1IN&0X08);

{

Get_Acceleration();

//AngleShow(2,2);

〃temp=Get_Degree(Z_Acceleration);

〃temp=Get_Degree(Z_Acceleration);temp=sqrt((Ax*Ax+Ay*Ay)/fabs(Az));

AngleShow(2,2,temp);

AccessShow(12,2,Z_Acceleration);

temp=sqrt((Az*Az+Ay*Ay)/fabs(Ax));

AngleShow(2,4,temp);

AccessShow(12,4,X_Acceleration);

temp=sqrt((Ax*Ax+Az*Az)/fabs(Ay));

AngleShow(2,6,temp);

AccessShow(12,6,Y_Acceleration);

}P1IFG=0x00;

}

〃#include"support_common.h"

〃#include"mma8451.h"

#include

#inelude"chuan.h"

#include"stdio.h"

#inelude"math.h"

#include"lcd.h"

//externvoidsci_dis(signedintch0,signedintchi,signedintch2);

#defineSDAP1_2〃IIC数据线定义

#defineSCLP1_4//IIC时钟线定义

#defineSDAI(P1IN&0X04)

#defineSDAINP1DIR&=~0x04

#defineSDAOUTP1DIR|=0x04

//SA0必须接地

//内部数据定义

unsignedcharIIC_ad_main;//器件从地址

unsignedcharIIC_ad_sub;//器件子地址

unsignedchar*IIC_buf;//发送|接收数据缓冲区

unsignedcharIIC_num;//发送|接收数据个数

doubleAx,Ay,Az;

signedintX_Acceleration,Y_Acceleration,Z_Acceleration;//xyz轴加速

度一一一

signedintX_Acceleration_Last=0,Y_Acceleration_Last=0,Z_Acceleration_Last=0;//xyz轴加速度(上次)

signedintZ_Acc_After_Filter=0;

signedintZ_Acceleration_N[10]={0};

doubleDegree_Z,Degree_X,Degree_Y;

floattable3[20]={0.0};

#defineack1//主应答

#defineno_ack0//从应答

//nop指令个数定义

voidNO_OPERATION(void)

{

asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");

}

//•

voidIIC_start(void){

SCL=0;

SDA=1;

asm(”nop");

SCL=1;

NO_OPERATION();

SDA=0;

NO_OPERATION();

SCL=0;

}

//************************************************

〃送停止位SDA=0->1

voidIIC_stop(void){

SCL=0;

asm("nop");

SDA=0;

asm("nop");

SCL=1;

NO_OPERATION();

SDA=1;

NO_OPERATION();

SCL=0;

}

//************************************************

//主应答(包含ack:

SDA=0和no_ack:

SDA=0)voidIIC_ack_main(byteack_main){

SCL=0;

if(ack_main)SDA=0;//ack主应答elseSDA=1;//no_ack无需应答NO_OPERATION();

SCL=1;

NO_OPERATION();

SCL=0;

}

//*************************************************

〃字节发送程序

//发送C(可以是数据也可是地址),送完后接收从应答//不考虑从应答位

voidsend_byte(unsignedcharc){

unsignedchari;

for(i=0;i<8;i++){

SCL=O;

if((c<

asm(”nop");

SCL=1;

NO_OPERATION();

SCL=0;

}

NO_OPERATION();

SDA=1;//发送完8bit,释放总线准备接收应答位asm("nop");

SCL=1;

NO_OPERATION();〃sda上数据即是从应答位

SCL=0;〃不考虑从应答位|但要控制好时序

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 临床医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1