数字传感器MPXY8020A与MSP430的接口设计

发布者:cyzcee最新更新时间:2012-04-23 来源: 单片机及嵌入式系统应用 关键字:数字传感器  MPXY8020A  MSP430 手机看文章 扫描二维码
随时随地手机看文章

1 概述
    MPXY8020A是摩托罗拉公司于2003年推出的汽车轮胎气压监测传感器。其内部集成了气压传感器、温度传感器和数字接口电路,8引脚SSOP封装;能承受的最大气压为1400MPa。MPXY8020A的功耗比较低,特别适用于轮胎气压和温度监测系统,能和摩托罗拉的无线遥控开锁系统集成在一起,组成低成本、高集成度的系统。此外,MPXY8020A还可应用于其他气压和温度监测系统中。

2 片内结构
    MPXY8020A的功能结构如图1所示。气压信号的采样由电容式传感器完成,温度信号的采样由薄膜电阻完成,此外,片内集成了数字接口电路。整个传感器采用硅CMOS工艺加工而成[1]。


    气压信号的采样分两步完成:首先是把采样电容上的信号转换为电压信号,然后用开关式电容放大器对信号进行放大,以提高采样的准确度。电容放大器带有温度补偿电路,采样偏移量可调,并且可以通过在EEPROM寄存器中写入校正值进行采样信号的校正。气压信号值的大小通过电压比较器确定。在气压转换前,外部微控制器通过MPXY8020A的数字接口输入8位极限值。片内8位DAC(数模转换器)把该值转换成相应的模拟电压,电压比较器把采样的电压值与该值进行比较,在OUT引脚输出比较后的结果。当采样值高于输入值时,OUT引脚为高电平;反之,为低电平。温度信号的采样由带有正温度系数的薄膜电阻完成。由图1可见,通过2路开关,可选择传感器工作于气压采样状态或温度采样状态。温度信号的采样过程与气压信号的采样过程相似。

    在MPXY8020A片内,集成了1个低频率、低功率的5.4 kHz晶体振荡器,1个14级的分频器。通过14级分频,可在OUT引脚得到周期性(一般3 s)的输出信号。该信号还可以用作微控制器的中断源。此外,MPXY8020A片内还集成了1个10级的分频器,通过该分频器,传感器可每隔52 min使外部微控制器复位1次,以防程序长时间跑飞。为了节能,可通过MPXY8020A的引脚,控制其工作于不同的工作状态。

3 引脚功能及工作方式
3.1 引脚功能
    MPXY8020A的各个引脚如表1所列。MPXY8020A的片内电路通过引脚VDD(正电平)和引脚VSS(地)供电。在VDD与VSS之间,通常接1个0.1 ?F的电容进行电源滤波。OUT引脚在采样值高于电压比较器的极限值时,输出1;反之输出0。电压比较器的极限值由外部微控制器通过数字接口输入到MPXY8020A片内的8位DAC寄存器。当MPXYS020A工作于空闲状态时,OUT引脚被置高,直到14级分频器发生溢出时,该引脚输出一个负脉冲。RST引脚通常被置为高电平;当1O级分频器发生溢出时,被置为低电平。这个引脚通常用于使外部微控制器复位。10级分频器的溢出周期为52 min,这跟MPXY8020A的工作状态无关。S0和S1引脚一起,用于工作方式选择。在设置电压比较器的极限值时,DATA引脚为串行数据输入引脚。CLK引脚用于提供串行读写数据的时钟。向MPXY8020A写数据时,在CLK引脚信号的上升沿,串行数据从DATA引脚按时序送到片内移位寄存器,在CLK引脚信号的第8个下降沿,数据被送到片内D/A寄存器。S0、S1、DATA和CLK四个引脚都内置了施密特触发器,以提高芯片的抗干扰性,并且这四个引脚都内置了下拉电阻,所以当它们被悬空时,都为低电平。

3.2工作方式
    MPXY8020A有4种工作方式,其工作于哪种工作方式由S1和S0引脚的电平来决定,如表2所列。只要VDD引脚有足够的供电电压,不管MPXY8020A工作于何种工作方式,其内部的多路开关、D/A寄存器、低频振荡器和输出脉冲分频器都处于激活状态。需要注意的是,无论MPXY8020A工作于气压采样方式还是温度采样方式,所有的EEPROM位都处于激活状态。如果为了节能而把VDD引脚置为低电平,有必要把所有引脚的电平都置为低电平,以免MPXY8020A被误激活。[page]


4 MPXY8020A与MSP430F1232的接口
4.1接口电路
    MPXY8020A传感器和MSP430F1232的接口电路如图2所示。其中的串行通信SPI是靠CLK和DATA引脚实现的。传感器在CLK引脚信号的上升沿读取DATA的1位数据,连续8位为1个周期。对于不具备SPI接口的微控制器,可以通过I/O口软件仿真的方式实现通信。本系统中,通过MSP430F1232的I/O口软件仿真SPI,实现采样极限值的设置。

4.2  软件设计
4.2.1  给MPXY8020A发送1字节数据
    在给MPXY8020A设置气压和温度采样极限值时,极限值以字节为单位发送给MPXY8020A。我们编写了一个向MPXY8020A发送1字节数据的函数,方便于系统中重复调用,该函数的代码如下[2]:

void MPXY8020A_sendByte(uchar MPXY8020A_data){

uchar i;
P3DIR |=mpxy8020_clk+mpxy8020_dat;
//CLK和DAT引脚为输出
Delay650us();
P30UT&=~mpxy8020_clk; //CLK引脚清0
for(i=0;i<8;i++){
if((MPXY8020A_data&BIT7)=BIT7)f
//高位在前
P3OUT |=mpxy8020_dat; //OUT引脚置1
else{
P3OUT &= ~mpxy8020_dat //OUT引脚清0
}
P3OUT |=mpxy8020_clk; //CLK引脚置1
Dday20us(1);
P30UT&=~mpxy8020_clk; //CLK引脚清0
Delay20us(1)。
MPXY8020A_data=MPXY8020A_data<<1;
//左移1位
}

4. 2. 2温度和气压数据的读取
    获取MPXY8020A传感器气压和温度数据的方法有逐次逼近法和报警值检查法。逐次逼近法能够获得8位精度的转换结果,但需要较长的转换时间和消耗较多的电能。报警值检查法是预先设置一个气压或温度的报警值,然后监测OUT引脚的电平来确定气压和温度值是否超过报警值。这是一种低功耗模式,在不需要知道准确的气压/温度值时,可采用这种工作方式。本系统中采用的是逐次逼近法。

    MPXYS020A传感器利用外部的MSP430F1232作为逐次逼近程序的控制器,MSP430F1232将猜测的极限值通过SPI接口串行地发送到传感器的DAR(数/模转换寄存器)。器件内DAR将此猜测值变为模拟值,并与待测的气压值比较,通过OUT引脚给出比较后的结果。每次比较需用64个时钟周期。例如:第1次猜测值为0x80,如果检测OUT脚为高电平,则说明气压值大于0x80,MSP430F1232通过SPI再送人0xC0,检测OUT引脚的状态,如果这次OUT引脚是低电平,说明气压在0x80和0xC0之间,重复这样的过程,直到逼近近似值。整个过程类似对分搜索,首先,取全量程值的一半作为第1个猜测值,并送人数/模转换寄存器,然后监测传感器OUT引脚的输出状态。若OUT引脚的输出为“低”,说明猜测值太大或者和取样值接近;若OUT引脚的输出保持“高”,则说明猜测值太小。转换结果寄存器作为一个变量由MSP430F135实时修改。如果猜测值太小,结果寄存器的最低位置“1”;如果猜测值太大,结果寄存器的最低位置“0”,使用新的猜测值继续逼近,直到得到最终结果。

    用逐次逼近的方法读取MPXY8020A温度数据的程序代码如下:
void MPXY8020A_temperature_sample(void){
uchar MPXY8020A_temp=0;
P3D1R&=~mpxy8020_ut; //INPUT
MPXY8020A_temp=BIT7;//N始值为128,即位7=1
MPXY8020A_standby_state(); //待机模式
MPXY8020A__sendByte(MPXY8020A_Xemp);
//发送极限值
MPXYS020A_temperature_state(); //测量温度模式
MPXY8020A_output_state(); //读数据模式
if((P31N&mpxy8020_out)==mpxy8020_out){
//比较OUT引脚是否为1
MPXYS020A_temp |=BIT6; //位6=1
}
else{
MPXY8020A_temp&=~B1T7;//位7=0
MPXY8020A_temp |=BIT6; //位6=1
://省略部分为从位6到位1的重复逼近的程序,其c
//代码与位7的相似
MPXY8020A_standby_state(); //待机模式
MPXY8020A_sendByte(MPXY8020A_temp);
//发送极限值
MPXY8020A_temperature_state(); //测量温度模式
MPXY8020A_output_state(); //读数据模式
if((P3IN&mpxy8020_out)==mpxy8020_out)
//比较OUT引脚是否为1
{}
else{
MPXY8020A_temp&=~BITO;//位0=0
}
temperature=MPXY8020A_temp;
//用全局变量储存采样值

    读取MPXY8020A气压数据的函数代码与读取温度的函数相似。限于篇幅,本文不再细述。[page]

4.2.3温度和气压数据的转换
(1)温度数据的转换
    根据表3,可以把温度采样值转换为实际温度值。实际温度值的单位为℃。众所周知,单片机对浮点数的处理能力不强,因此,为了便于单片机进行运算和保留更高的准确度,对转换后的实际温度值放大了100倍。例如,1501对应于15.01℃。

    当采样温度值小于-40℃对应的值时,按0.8℃/位的变化率进行计算。温度采样值小于25℃对应的采样值时,以上限为基准进行计算,因为其上限出现的机率更大,这样得出的结果误差会小些;当采样温度值大于25℃对应的采样值时,以下限为基准进行计算,因为下限出现的机率更大。比如,采样值介于25℃对应的采样值和70℃对应的采样值之间,则以25℃为基准。


(2)气压数据的转换
    MPXY8020A测量的气压范围约为0~600 kPa,测得的值与气压之间的转换关系由下式给出:P=2.5×Output±气压误差式中,Output为测量得到的值(在0~255之间),气压误差由MPXY8020A的数据手册给出(将在下一节中讨论);P为转换后的气压值,单位为kPa。

4.2.4气压数据的误差处理
    MPXY8020A所测得的气压是存在误差的,并且,在不同的温度区间、不同的工作电压、不同的气压的情况下,其误差也不一样。MPXY8020A的气压误差由其数据手册给出,表4列出其在250 kPa~450 kPa气压区间下的误差值。

    由表4可以看出,阴影部分的误差较小。当电压低于2.5 V或者温度过低或者温度过高的情况下,所测得的温差比较大。为了减小测量误差,MPXY8020A应工作于2.5~3.3 V的电压区间。

    由于各个传感器的误差不尽相同,因此,可以通过实际测量得出其具体的气压误差,然后再在程序中加上或者减去这个误差值,这样所得出的气压值就更加接近真实值。此外,也可以通过分段多次测量的方法,得到更好的测量结果。


结  论
    MPXY8020A为数字式气压和温度传感器,体积小、接口简单、工作稳定可靠、功耗小;适用于对体积要求比较高的气压和温度测量系统,尤其适用于无线汽车轮胎气压监测系统。本设计已应用于某无线汽车轮胎气压监测系统中,经实践证明使用效果良好。

关键字:数字传感器  MPXY8020A  MSP430 引用地址:数字传感器MPXY8020A与MSP430的接口设计

上一篇:基于MSP430和MAX262程控滤波器的设计
下一篇:基于MSP430F169的深海环境数据采集系统设计

推荐阅读最新更新时间:2024-03-16 12:58

基于LDC1000电感数字传感器的墙体电线位置测量仪设计
一般工程中,当建筑实体建好后,很多基础设施就随之而完成。其中,包括用户用电线路铺设。而在二次装修或做弱电线路二次铺设时,需要避开墙体中220 V电线。多数二次施工过程铺设线路时,均靠工人师傅的经验完成。还有,老旧建筑物电线故障查询时,也需要进行墙体电线探测。文中基于以上需求,研制简易轻便的墙体电线测量仪。2013年,我们制作一台三合板背面电线探测仪,当时使用是漆包线缠绕而成的笨重大电感完成的检测,虽能完成检测,但仪器很笨拙。而当2013年TI公司发布了首款电感数字转换器LDC系列,这样墙体电线位置测量问题就迎刃而解。本测量系统由STM32F107作为主控,LDC1000作为测量传感器完成对墙体电线位置检测。 1 系统设计方案 该墙
[单片机]
基于LDC1000电感<font color='red'>数字</font><font color='red'>传感器</font>的墙体电线位置测量仪设计
液晶12864(st7920控制器)MSP430f149驱动
//mcumsp430f149// //晶振内部dco// //p43rs// //p42r/w// //p41e// //p40rst// //p30-p37db// //===========================================================================// #include /*************************/ #defineUcharunsignedchar #defineUintunsignedint #defineUlongunsignedlong Ucharbusy,hang,lie; /***********************
[单片机]
采用JN338数字转矩转速传感器对转矩转速的测量
0 引言 电动机及机械动力装置旋转轴的转矩一转速特性是电动机及机械动力装置的一项重要参数,转矩转速特性曲线的形状及曲线中的起动转矩、最小转矩、最大转矩等参数,往往是衡量一台电动机或机械动力装置能否顺利起动和稳定运行的重要指标,因此,研制一种数字式、高精度、便携式的转矩转速测量仪器,具有非常现实的意义。 传统的旋转动力系统转矩测试,通常是采用电阻应变桥来检测转矩信号并借助于导电滑环来实现电阻应变桥能源的输入及应变信号的输出,但是,由于被测轴在高速旋转时会产生颤振,使接触点处的接触电阻发生变化,从而使测量误差增大。此外,导电滑环属于摩擦接触,也不可避免地存在磨损及发热,因而限制了旋转轴的转速及导电滑环的使用寿命。 为了更好
[嵌入式]
MSP430低功耗设置小结
设置低功耗模式也就是对SR状态寄存器当中的位进行操作SCG0.SCG1,CPUOFF,OSCOFF等位进行操作 如果我们要设置低功耗模式,那一般来说也是要设置 中断的,在中断函数中打开CPU来执行我们想要执行的程序 大部分时间CPU是处于OFF状态的,这样可以达到降低功耗的目的 void main { unsigned char i; BCSCTL1|=DIVA_2; WDTCTL=_WDT_ADLY_1000; IE1|=WTDIE; while(1) { _BIS_SR(LPM3_bits); i++; } } #pragma vector=WDT_VECTO
[单片机]
基于msp430G2553的低频方波频率、占空比、峰峰值测量函数
使用的平台是TI公司的launch pad,频率和占空比已经实现,峰峰值还有有待改进 1、主函数部分: /********************************************* * _ooOoo_ * * o8888888o * * 88 . 88 * * (| -_- |) * * O = /O * * ____/`---'____ * * .' \| |// `. * *
[单片机]
MSP430 系统时钟 ACLK、MCLK、SMCLK
 MSP430基础时钟模块包含以下3个时钟输入源。 一、4个时钟振荡源 1、LFXT1CLK: 外部晶振或时钟1 低频时钟源 低频模式:32768Hz 高频模式:(400KHz-16MHz) 2、XT2CLK: 外部晶振或时钟2 高频时钟源(400KHz-16MHz) 3、DCOCLK: 内部数字RC振荡器,复位值1.1MHz 4、VLOCLK: 内部低功耗振荡器 12KHz 注:MSP430x20xx: LFXT1 不支持 HF 模式, XT2 不支持, ROSC 不支持. (1)LFXT1CLK 低频时钟源:
[单片机]
基于MSP430F249的ADC7864触摸程序函数
这个例子是我参照51单片机的例子写的,测试过,能正常读取数据,没转换为坐标 使用的是中断法,下降沿促发 //文件名:tourch_screen.h //基于ADS7846的触摸屏程序 //宏定义:对管脚的定义 // #ifndef _touch_screen_h_ #define _touch_screen_h_ extern unsigned int x_zb,y_zb; //测的x,y坐标 //函数:Touch_Port_Ini() //描述:初始化触摸控制端口 //返回值:无 void Touch_Port_Ini(); //初始化端口 #endif //描述:管脚的宏定义 //
[单片机]
高性价比的MSP430应用系统结构设计
MSP430系列单片机作为一个性能优异的MCU在大陆已经得到了广泛的应用。MSP430在高整合性与高性能方面与其他MCU比较有较大优势。该系列芯片的价格也较为合理,目前整合性最好的MAP430F44X系列,整合了60K字节程序存储(可记录数据)、2K字节片内RAM、6个I/O端口(P1、P2能中断)、160段液晶驱动、两个串行端口、4个定时器(其中TB带有7个捕获/比较器、包括看门狗)、模拟比较器、硬件乘法器、8路12位A/D转换器、还有频率调整电路FLL+、系统复位SVS模块等。而较为基本型的MSP430F1101、MSP430C1101只有1K字节程序存储、128字节片内RAM、模拟比较器、两个定时器等。他们的性能比较可参考图一
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved