基于Pcap01的电容式液位传感器系统设计
扫描二维码
随时随地手机看文章
摘要 为精确测量汽车油箱油量,利用电容量随极板间介质变化的原理,设计了基于电容转数字芯片Pcap01的电容式液位传感器测量系统。采用柱形电容传感器等措施,减小了寄生和杂散电容,并通过Pcap01内部寄存器的设置,实现了数据校准。该系统在自行设计的实验平台上进行了多次实验,结果表明,系统具有良好的精度和线性度,并最终提出了电容式液位测量方案。
随着汽车工业正向着节能、高速、经济的方向发展,使得现代汽车均采用数字化系统设计。由于汽车油箱大多采用异型结构,所以为了使得油量测量的精度和稳定性得到提高,各大汽车厂商都在致力于解决这一问题。
液位测量常用的方法有滑动电位器法,电感线圈法,数字电容法等。滑动电位器法是目前中低档汽车大多采用的检测方法,但当油垢覆盖电位器后,其阻值会发生变化,造成误差过大,使此类油箱传感器成为易损件。电感线圈法为现在高档汽车多采用的方法,但其结构复杂、成本高、无法广泛使用。数字电容法是相对易实现、设计灵活、成本低、精度高的测量方法,但需解决线性度和补偿校正等问题。
汽油或柴油是具有电气绝缘特性的液体混合物,黏度低、流动性好、蒸发性强,测量对象的这些物理特性为使用电容式液位传感器创造了条件;另一方面,高速发展的微电子技术能够以相对低廉的价格去实现小电容的精确测量,这种测量方案具有广阔的市场前景。
1 硬件设计
1.1 电容式测量油量原理
电容式传感器是将被测非电量的变化转换成电容量变化的一种传感器。电容式液位传感器是以液位变化时,引起介电常数变化为原理的。当被测液体的液面在电容式圆柱形套筒电极间变化时,引起电极间不同介电常数介质的高度发生变化,从而导致电容变化。本电容传感器采用圆柱形套筒结构,如图1所示。
电容式传感器外壳和内圆柱采用钛合金材料,构成两个电极板,设外壳半径为R1;内圆柱半径为R2;汽油介电常数为ε0;真空中的介电常数为ε1;圆柱套筒的高度为H;液面的高度为L;忽略边缘效应,当L=0时,传感器处于零点,电容值最小,传感器电容量
可见当传感器中各参数都确定时,传感器电容值CH与液面高度L成线性关系。
1.2 Peap01简介
Pcap01是一款带有单片机处理单元的专用电容测量的电容数字转换单芯片方案,其内部结构原理如图2所示。其前端转换单元是基于Acam公司的PICOCAP测量原理。这种转换测量原理提供了对于转换时间范围最小可达2μs的高精度时间转换。芯片内部带有一个48位DSP单元,这个处理单元将处理电容测量的信息,获得测量数据,并将结果送到芯片输出端口。所得数据将存放在内部RAM当中,而内部有OTP或者SRAM两种方法编写程序。
Pcap01有漂移和接地两种连接电容传感器的方式,由于本设计管脚资源充足,为提高抗干扰性,采用漂移连接法,电容传感器通过屏蔽线直接连到Pcap01,测得的电容值转换成数字值,精度最高可达21位有效位,可通过读取读寄存器中待测电容与参考电容的比率从而计算出待测电容值。实验设计量程为16~45 pF,而Pcap01可测量范围覆盖达到几F到几百nF,所以满足本设计对于测量范围的要求。
电容传感器数据可在芯片内部进行校准,然后通过SPI或者I2C数据串行接口进行传送。Pcap01带有标准固件,提供了20个配置和参数寄存器以及12个读寄存器。
1.3 数字电容式液位传感器应用系统
本设计通过Pcap01带有的标准固件03.01.xx配置电容测量寄存器并进行读取,选择STM32F103ZET6通过I2C串行总线接收来自Pcap01的数字电容测量值,然后将数据发送至LCD屏显示,其系统框图如图3所示。
这里采用单一传感器漂移模式,根据电容传感器测量数据选择20 pF陶瓷电容为参考电容连接在PC0和PC1两端,待测电容连接在PC2和PC3两端。设置配置寄存器为漂移单一电容模式,内部放电电阻为90 kΩ,选择电容测量的触发源为持续触发模式。
通过读寄存器Res1读到的是C/C参舞考比率,无符号固定点数带有3位整数和21位小数,数值为0~7.999 9,精度为0.477×10-6。虽然Pcap01有着内部接地补偿和外部漂移寄生电容补偿,但为了保证系统可靠运行和高精度测量,还要解决好外围电路的抗干扰和屏蔽问题,其中去耦电容的选择以及电源的稳定性都是系统硬件设计的重要环节。
2 软件结构设计
系统的软件设计包括Pcap01部分和STM32F103ZET6部分。Pcap01部分主要包括寄存器的配置,以及电容数据采集模块;STM32F103ZET6部分主要包括与Pcap01的串行通讯和与LCD屏通讯显示数据两部分。Pcap01部分软件采用汇编语言编写,STM32F103ZET6部分软件则使用C语言编写。
2.1 Pcap01部分软件设计
在软件开发评估过程中,是将固件写到SRAM中的。Pcap01的SRAM地址空间为4 k x 8 bit。开始上电后发送0x88,这个命令将复位所有状态。发送8位数据至000到FFF的任意SRAM地址并从此地址再读回数据,进行通讯测试后再次发送操作码0x88状态全复位。固件Pcap01_standard.hex由ACAM公司官方提供,数据发送至SRAM后,就可按照设计要求进行配置寄存器的设置了。设计选择的是单一漂移电容模式,一个传感器,一个参考电容,完全补偿,内部放电电阻为90 kΩ,持续触发,电容测量的循环时间为20μs。电容测量的循环时间是一个重要的CDC参数,需要注意电容放电时间的大小,设置的循环时间一定要足够长,默认情况下设置的循环时间>2倍的放电时间,所以选择20μs可以满足设计要求。配置寄存器设置完后发送部分复位操作码0x8a和开始电容测量指令0x8c,等待100 ms后就可从Res1寄存器中读取C/C参考的比率。
2.2 STM32F103ZET6部分软件设计
STM32F103ZET6是一款基于ARM Cortex—M3内核的32位处理器,内部带有I2C硬件接口。如今I2C总线协议已成为芯片间低速串行通信的事实标准,应用范围将越来越广。I2C总线在传输数据过程中共有3种类型信号,分别是开始信号、结束信号和应答信号。在读时序中,STM32F103ZET6在发送开始信号后的第1个Byte就要发送一个单独的7位设备地址,Pcap01作为从机的设备地址为1010000。STM32F103ZET6接收到数据,进行数据转化后滤波,再通过8位数据总线的并行接口发送至LCD液晶屏显示。软件流程图如4所示。
3 实验验证与结果分析
为验证系统的测量精度和性能,对样机进行了实验测试,采用30 cm高度的电容式传感器和93号汽油在自行设计的实验平台上进行多次实验。
3.1 精度分析
传感器测得的电容值与参考电容的比率C/C参考存放于Pcap01的Res1寄存器中,对10 cm和20 cm高度的汽油进行多次测量,结果如表1所示。
Pcap01的测量比率范围为0~7.999 9,从测量结果可以看到,24位的测量结果可以稳定在高12位,去除整数位,小数位可以稳定在9位,则测量精度为20/(29-1)=0.04 pF。
3.2 线性度分析
由式(1)可知,电容C与液面高度x成正比关系,图6为测量范围0~35cm,进给量为0.5 cm时的传感器电容值与高度值的变化曲线,从图中可以看出,系统具有较好的线性度。
4 结束语
本文利用电容转数字芯片Pcap01,结合STM32对于电容数据的处理,充分考虑了信号的屏蔽与抗干扰等问题,通过在自行设计的实验平台上进行的测量精度与线性度分析实验显示系统具有较高的可靠性。利用Pcap01设计的液位传感器系统具有结构简单、精度高、测量范围广的特点,适合用于油箱、油库等的液位测量中。