压力传感器在自动称重系统模块当中的应用
按照图5的写周期时序图,89C51向AD7705写寄存器(一字节)汇编程序如下:
在INT0中断服务程序中,读取正在转换通道的A/D值,多次测量数据处理后,切换启动另一通道A/D转换.由于AD7705芯片不区分数据地和模拟地引脚,读写AD7705的信号脉冲必然对模拟信号产生干扰,影响A/D转换数据,所以对采集的数据应利用CPU软件进行抗干扰滤波.本模块每采集4次,采用去大去小、剩下两个数据再取平均值的方法,获得一个数据,既满足系统的速度要求,又使数据相对稳定.
为了增加系统的可靠性,防止AD7705接口迷失而造成系统不能正常工作,应在程序中定时检测A/D转换是否正常,如果一段时间内没有新的A/D转换,仍可通过写入32BIT的“1”对AD7705进行软件复位,重新初始化AD7705.
称重模块由应变片式称重传感器、自跟踪式电桥电源、AD7705模数转换器组成,其框图如图1所示.
重力传感器将皮带上的物重转变成较弱的电压信号,直接经具有完整模拟前端的AD7705调理、放大和A/D转换,转换成数字信号送往微机进行运算处理.微机可以通过软件编程,方便地确定输入通道、放大器增益和数据输出更新率,还可根据信号的特性对信号极性,数字滤波器的第一个凹口等作出设置.
1.1 应变片式称重传感器
称重传感器实际上是一种将重量信号转变为可测量的电信号输出的装置,它的性能在很大程度上决定了给煤机控制器的准确性和稳定性.由于应变片式传感器具有结构简单、输出精度较高、线性和稳定性好等优点,所以本模块采用此型号的传感器.
本模块传感器桥路设计成4枚应变片都受力作用的形式,如图2所示.假如电桥平衡有R1=R2=R3=R4=R,ΔU0=0.应变片受力电阻变化ΔR后,输出电压与输入电压关系为
为了改善其温度特性,传感器中除采用本身温度补偿应变片外,还在不受力方向上各贴两片零点补偿Rw1,Rw2和灵敏度补偿片R01,R02.减少电桥零点随温度的变化和桥输出电压随温度的变化.
1.2 自跟踪式传感器电桥电源
由于应变片式传感器电桥输出信号电压非常小,因而要求供桥的电压也要很稳定,为此,模块采用对称型、并有良好正负电压自跟踪性能的稳压电源,其电路如图3所示.
图3中,IC1B为同相放大器,把高精度稳压集成电路LM431输出的2.5V基准电压放大2倍,经N2驱动,N1限流输出稳定的+5V电压,作为桥电源的正极.IC1A为1倍反相放大器,把IC1B输出的+5V电压反相,再经P2驱动,P1限流输出-5V电压,作为桥电源的负极.桥电源的正负电压绝对值相等、符号相反,所以该电路有效地抑制电桥中点电压的漂移,为传感器提供稳定的电源,提高了传感器输出信号的精度.
1.3 A/D转换器
电阻应变片式传感器其输出电压一般为毫伏级,传统的电路设计方法是在A/D转换前增加一级高精度的测量放大器,这样就增加了成本,模块也较为复杂.AD7705具有完整的模拟前端,能将从传感器接收到的很弱的输入信号经信号调理、滤波、放大和A/D转换,直接转换成串行数字信号输出,无需外部仪表放大器,且AD7705的两个全差分输入通道正好满足模块使用两个称重传感器测量皮带上重量的需要.故本模块采用AD7705作为重力信号的调理、放大和A/D转换电路,通过软件编程可以方便对增益、信号极性、输入通道、数据输出更新率、数字滤波器的第一个凹口作出设置.
AD7705片内主要包括5个寄存器,即:通信寄存器,设置寄存器,时钟寄存器,数据寄存器,测试寄存器.
通信寄存器:8位,管理通道选择,决定下一个操作是读操作还是写操作,以及下一次读或写哪一个寄存器.所有对器件的读/写操作都必须从写入通信寄存器开始.
设置寄存器:8位,决定校准模式、增益设置、单/双极性输入以及缓冲模式.
时钟寄存器:8位,包括滤波器选择位和时钟控制位.
数据寄存器:16位,储存了最近一次A/D采样的转换结果,器件输出的数据从这个寄存器读出.
AD7705的串行接口包括5个信号,即:/CS,SCLK,DIN,DOUT,/DRDY.DIN线用来向片内寄存器传输数据,而DOUT线用来访问寄存器里的数据.SCLK是串行时钟输入,所有的数据传输都和SCLK信号有关./DRDY线作为AD7705的状态信号输出,以提示数据是否准备好,数据输出寄存器中有新的数据字时,/DRDY变为低电平;在数据输出寄存器数据更新前,/DRDY变为高电平,提示这个时候不读数据,以免在寄存器更新过程中读得错误数据./CS用来选择器件.AD7705的基本读写时序如图4和图5所示.
2 AD7705在称重模块中的应用
2.1 AD7705与微处理器接口
AD7705是串行A/D,与微处理器接口十分方便.而89C51集成度高、速度快,其布尔操作和对I/O口的位操作功能可以良好地和AD7705配合使用.
图6是给煤机控制系统中AD7705与单片机89C51的接口电路示意图.AD7705串行时钟信号SCLK由单片机产生,通过P20输出,因只用一片AD7705,使片选CS接地.同时将AD7705的输出状态/DRDY线与89C51的外中断输入口INT0相连,用中断方法对/DRDY线进行监控,当数据寄存器被更新后,/DRDY线的下降沿产生中断,在中断服务程序中及时有效读取采样值.
为增加系统的抗干扰能力,AD7705串行接口输入/输出可用光电隔离.最简单情况是采用查询方式,单片机可用3个I/O口和3个光电耦合器方便地解决A/D转换器与CPU的电隔离,实现两通道A/D转换接口.
2.2 软件实现
就AD7705的设置寄存器、时钟寄存器、数据寄存器的读/写操作过程而言,必须首先对通信寄存器写入相应的代码,指明操作对象和操作类型,然后才能对其进行操作.系统上电后,CPU可先通过写入32BIT的“1”对AD7705进行软件复位,然后再对AD7705两个通道初始化.本模块初始化包括:根据系统设计要求,写时钟寄存器时指明AD7705的主频为2.457 6MHz,设置输出更新率为50Hz;设置增益为64,双极性工作方式,缓冲模式及滤波同步,启动某通道自校正后进行数据转换.由于两个通道初始化程序完全一样,只编写一个通道的初始化子程序即可,其框图如图7所示.
其程序如下:
89C51单片机可应用位操作指令对AD7705操作,按照图4读周期时序图,89C51读AD7705数据寄存器(两字节)典型汇编程序如下: