外设驱动库开发笔记45:MS4515DO压力传感器驱动

本文详细介绍了TE公司的MS4515DO压力传感器,包括其功能、I2C地址、数据输出格式以及驱动设计与实现。MS4515DO是一款低成本、高性能的数字输出压力和温度传感器,适用于OEM应用。文章通过分析传感器的特性,展示了如何通过I2C接口获取数据,并定义了传感器对象的属性和操作,包括读写数据和地址修改。此外,还给出了驱动的使用方法和示例,验证了驱动的正确性。

  很多时候我们需要检测流量和压力这些参数,比如我们要检测大气压,或者通过测量差压来获得输送流体的流量等,都需要用到压力传感器。这一篇我们就来讨论MS4515DO压力传感器的数据获取。

1、功能概述

  MS4515DO是TE公司推出的一款基于PCB安装的小型陶瓷基压力传感器。该传感器采用最新的CMOS传感器调节电路,制造出一种低成本、高性能的数字输出压力(14bit)和温度(11bit)传感器,以满足OEM客户最严格的要求。
  MS4515DO完全校准和温度补偿,总误差带在补偿范围内小于1.0%。该传感器采用直流3.3V或5.0V单电源供电模式,对外接口采用I2C总线或三线SPI的模式。其结构图如下:

  MS4515DO和MS4525DO拥有相同的功能和模式,区别只在于输出的物理量单位不同而已。它们都拥有可以检测差压和绝压的型号,但操作是完全一样的,所以本篇的讨论事实上适用于相关系列的全部型号的应用。

1.1、MS4515DO的I2C地址

  作为I2C接口的设备都会有一个设备地址,MS4515DO压力传感器也不例外。而MS4515DO和MS4525DO系列传感器的I2C地址在出厂时已特定写入,并根据型号中的字母来指示其地址设定。具体如下:

  预设的设备地址是7位的,不包含读写位的指示。我们使用时需要将其左移一位并根据读写操作来定义读写位,0为写,1为读。

1.2、数据输出格式

  在I2C通讯模式下,MS4515DO和MS4525DO传感器有四个I2C读取命令,分别为:Read_MR、Read_DF2、Read_DF3和Read_DF4。这四个命令可以获取不同的数据,这些命令的具体报文格式定义如下图:

  所以我们想要获取MS4515DO和MS4525DO传感器的数据就需要通过上述命令来实现。从上述的命令报文格式可以看出,这些命令在本质上是没有差别的,都多少数据完全由主机来控制,也就是我们开发的驱动程序来控制。事实上,我们只需要考虑Read_DF4这个命令就可以涵盖所有想要的数据。
  我们需要注意的是,上述的报文中有两位存储的是状态信息,该状态信息表示获取的数据是最新的数据还是旧数据或者错误报警。通过判断这个数据可以决定我们在数据解析时如何处理相应的报文。

2、驱动设计与实现

  我们已经了解了MS4515DO和MS4525DO传感器的结构、接口方式、设备地址以及数据输出格式。接下来我们就可以考虑如何实现MS4515DO和MS4525DO传感器的驱动程序了。

2.1、对象定义

  我们依然还是先来考虑MS4515DO和MS4525DO传感器的对象定义。我们定义一个对象无非考虑属性和操作两个部分。
  首先我们来考虑MS4515DO和MS4525DO传感器对象的属性。首先MS4515DO和MS4525DO传感器采用I2C接口通讯,所以每台都有一个设备地址。这个地址标识了I2C总线上该设备的唯一性,所以我们将设备地址作为MS4515DO和MS4525DO传感器对象的一个属性。对于MS4515DO和MS4525DO传感器来说存在多种类型,而不同的类型对应不同的数据计算方式,所以针对某一具体实例,我们需要记录它的类型,所以我们为其定义一个类型属性。我们在计算压力值时,不同的量程最后得到的压力值与测量量程有关,所以我们还需要记录实例的量程上下限,所以将这两个数据也定义为对象的属性。为了操作方便我们将最终得到的温度和压力数据也都作为对象的属性。
  从前面的描述中,我们知道MS4515DO和MS4525DO传感器的数据输出格式是固定的,这为我们解析这一数据提供了思路。我们将读出的4个字节与我们想要得到的数据组成联合体,利用结构体和联合体在内存中的关系可以方便的解析数据对象,如下图所示:

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值