I²C数字化输出传感器的应用与编程

时间 : 2019-09-03      作者 :

        数字化传感器采用的输出形式有: I²C总线、SPI总线、Microwire/PLUS总线、one-wire单总线等。MPM3808型压力传感器是一款 I²C总线输出的数字化产品。


 应用方案  /

一体化水下明渠流量计是MPM3808传感器一个典型的应用。


I²C数字化输出传感器的应用与编程

一体化水下明渠流量计内部有三种传感器,集流速、水位、温度数据实时采集于一体。采用超声传感器探测流速,测量点在探头的前方,不破坏流场,测量精度高,量程宽,响应快;采用安装在后部的压力传感器测量水位,压强受水流影响较小;内置温度传感器测量温度,做数字化温度修正。

利用速度面积法,综合计算所测液体的流量。非常适合于明渠、河道及难以建造标准断面(如巴歇尔槽)的明渠流速、流量测量。


 /  方案应用产品  /

I²C数字化输出传感器的应用与编程
麦克公司生产的MPM3808 型 I²C 数字压力传感器,经过多年市场推广,应用领域逐步扩大,产品优势明显:

1、传感器的输出一致性误差可以达到0.5%以内,传感器的特性参数可完全相同,因而具有良好的互换性;

2、电磁兼容性能优良,传感器的抗干扰能力增加,比模拟信号更为可靠;
3、标准的数字通讯接口,信号可直接连到单片机,单片机能获得并处理更多不同的参量,实现多功能的智能仪器。


/   产品编程   /

数字信号输出传感器数据采集,需要做单片机的编程,较模拟信号传感器复杂,这是制约其推广应用的结点所在。我们以MPM3808型 I²C输出传感器为例,说明数字化传感器读取测量数据方法。
MPM3808型 I²C输出数字化传感器,  I²C默认通讯地址:0x28,write:0x50,read:0x51;SCLK时钟频率:100KHz ~ 400KHz。

I²C主器件(如单片机)发送7 位从器件地址(0×28)和第8 位=1(读),传感器作为从器件发送一个确认信号(ACK)表示通讯连接成功。接着从器件向主器件返回两个字节的压力数据(P[13:8]和P[7:0])、两个字节的温度数据(T[10:3]和T[2:0])。 I²C通讯流程如下:


I²C数字化输出传感器的应用与编程

I²C通讯流程)

 I²C是一种常用的通信方式,许多单片机集成开发环境IDE(Integrated Development Environment)集成了 I²C库,可以直接调用几个函数实现 I²C通信。如调用库函数wire.h ,通讯流程如下:

Wire.begin(4,5);   

 // 初始化 I²C bus, SDA:4,SCL:5

Wire.beginTransmission(0x28);  

// 开始一次传输数据

Wire.endTransmission(void);  

// 通讯结束,主机发送STOP 信号

Wire.requestFrom(0x28, 4);   

// 从0X28 设备读取4个字节数据

Wire.available();   

// 收到的是字节数

Wire.read();  

// 收到的是数据, P1, P2,T1,T2

pressure = P1 <<8 | P 2;   

// 14位压力数据(BIN)

temperature = T1 <

// 11位温度数据(BIN)

注意:单片机从MPM3808读取的数据为码值,压力为14位二进制数(0 ~ 16383),温度为11位二进制数(0 ~ 2047)。如,传感器基本量程:0 ~ 300Kpa,输出信号(5% ~ 95%):819 ~ 15563,读取的码值与压力、温度的转换如下图:

I²C数字化输出传感器的应用与编程

(如图所示:将单片机采集到的I²C数据,通过串口用SecureCRT终端仿真打印显示)

目前大多数传感器应用是采用模拟输出信号,但 I²C等数字输出传感器应用的便利性,已得到越来越多的设计人员认可。传感器采用串行总线技术,可以使系统的硬件简化、体积减小、可靠性提高,同时系统的升级和扩充极为容易。