基于AD7730的发动机燃油消耗测量仪的研制,采用24位∑-ΔA/D转换器AD7730,与称重传感器直接接口。利用AD7730的可编程校准功能,零点、增益数字校准, 取代手调电位器的模拟校准。应用∑-ΔA/D转换原理,量化噪声被移至A/D转换的频带之外, A/D转换有效分辨率可在模拟输入量程、数据输出速率、噪声系数之间作出最佳选择。
发动机燃油消耗测量仪,检测传感器与A/D转换器接口的传统设计方法需要设置前置放大电路,将传感器输出的低量程信号放大到A/D转换器的接口电平信号。传统的标定校准方式,需要调整模拟电路零点、增益、基准电压电位器。手动调整长期以来一直存在校准精度低,调整参数重复一致性差的弊端。
一、硬件电路设计
(一)主体设计
发动机燃油消耗测量电路由称重传感器、A/D转换器、信号处理计算单元、键盘显示接口组成(见图1)。AD7730对模拟输入信号进行过采样、噪声整形、数字滤波和采样抽取后, 转化为高分辨率的数字信号,微处理器读取转换后的数据进行油耗数值计算,以kg/h或g/s的测量单位显示并向上位机传送,按键接口用于校准、标定、时间设定、测量控制的切换。
nload="javascript:if(>740)=740" align=center border=0>
(二)模拟接口
AD7730具有高输入阻抗的缓冲器, 输入通道对传感器的输出信号无衰减。通过编程, 片内可编程增益放大器可以接收0~ 10mV、0~ 20mV、0~ 40mV、0~ 80mV四种单极性, 以及±10mV、±20mV、±40mV、±80mV四种双极性的传感器低量程输出信号。AD7730与称重传感器YZ108B的模拟接口电路见图2, 模拟电路取消前置放大器, 无零点、增益、基准电压调整电位器。传感器单电源 5V供电, 灵敏度2 mV/V, 满量程输出10mV。R1、C1、R2、C2构成模拟低通滤波器, C3共模滤波电容, C4传感器屏蔽电缆层降噪电容。
nload="javascript:if(>740)=740" align=center border=0>
(三)基准电压设置
AD7730 基准电压与传感器激励电压共用一个 5V电源, 当电源电压波动时, 基准电压变化与传感器激励电压变化所受到的影响比例相同, 对传感器检测精度以及A/D转换的数据输出不受电源电压波动的影响,因而取代高精度基准电压电路而不降低系统性能。
(四)数字接口
AD7730三线或四线串行输出接口,可以方便地与各种微控制器和数字信号处理器DSP连接, 并适合于远距离的数据传输。AD7730 连续转换与AT89C52单片机的串行数字接口电路见图3,串行时钟输入SLCK,控制A/D串行数据传送的移位脉冲。AD7730的A/D转换结果、校准系数、工作方式、数据输出速率通过串行数据输入口DIN,串行数据输出口DOUT读写操作完成。状态标志RDY低电平,标示AD7730执行一次转换或校准完毕, 数据寄存器的数字准备就绪可以读取。当RDY高电平,AD7730数据寄存器正在更新数据, 禁止数据传送。
nload="javascript:if(>740)=740" align=center border=0>
(五)印制电路板制作
AD7730 具有24 位的分辨率, 若设定单极性 80mV输入量程, 最低有效位1LSB对应4.77 nV的电压值。在 10mV输入量程、50Hz的输出速率、斩波方式下, 噪声系数只有40nV,最低有效位1LSB对应的电压值更低。由于AD7730的分辨率极高、噪声系数极低,必须十分关注印制电路板的元件布局、芯片模拟地和数字地的接地连接。
印制板器件布局的模拟部分和数字部分分开,分别设计模拟地和数字地敷铜层。双层线路板顶层模拟地和数字地敷铜层互不连接, AD7730芯片下方不布设任何信号线, 用模拟地敷铜层覆围,AD7730和微处理器的晶振用数字地敷铜层覆围。底层模拟地和数字地敷铜层在AD7730管脚的AGND和DGND处一点短接, 降低接地阻抗, 减少接地噪声, 单电源供电时接线端子直流地与印制板模拟地敷铜层连接。模拟输入信号线设计宽线条、采用最短路径靠近AD7730 模拟输入端。AD7730模拟电源端和数字电源端分别用10μF钽电容和0.01μF陶瓷电容并联, 系统工作电源采用线性电源。
二、软件设计
(一)程序结构和控制流程
程序设计分为主程序、按键外部中断、定时中断等控制模块。主程序、按键中断控制流程见图4。上电后主程序首先从非易失存贮器中读取零点、增益校准系数, 写入AD7730片内校正寄存器中。查询有无按键中断和标志位状态, 若无则置动态测量标志并启动定时中断A/D转换。主程序的循环查询到动态标志位后, 转向动态测量, 执行发动机燃油消耗的平均油耗测量计算、显示和串口发送。按键外部中断,完成人机接口的校准、标定、时间设定、测量命令。
nload="javascript:if(>740)=740" align=center border=0>
(二)数字滤波和A/D输出速率的选择
AD7730数字滤波器的滤波方式、建立时间、数据输出速率通过编程选择。第一级数字滤波器SINC工作在斩波方式或非斩波方式, 斩波方式能将失调电压和飘移减至最小。第二级数字滤波器可以选择22阶FIR低通滤波、直通、快速阶跃响应三种方式。在图2电路中, 软件编程控制AD7730工作在斩波方式,两级数字低通滤波, 抑制测量现场发动机运转产生的电磁噪声干扰, 有效提高了A/D转换的分辨率和系统测量精度。
AD7730过采样频率为4.9152MHz,数据输出速率设定可以从50Hz~1200Hz。数据输出速率的选择, 直接影响A/D转换的分辨率和量化噪声。较低的数据输出速率对应较高的分辨率, 输出的量化噪声减小。对±80mV的输入量程, 斩波方式下50Hz数据输出速率, AD7730的峰- 峰分辨率可达18位, 有效分辨率近似为21位 , 噪声系数为115nV。而在400 Hz数据输出速率下, AD7730的峰—峰分辨率只达16.5位, 有效分辨率近似19位, 噪声系数为335nV。有效分辨率高, 标定校准和测量精度提高。在实际应用中, 为避免50Hz的工频干扰, 选择A/D数据输出速率应避免等于、接近或数倍于工频频率。
(三)内部校准和系统校准控制方式
数字校准可以选择AD7730零点、满量程的内部校准和系统校准两种控制方式。内部校准只对AD7730器件本身的增益误差和零点误差进行校准,零点校准和满量程校准的校准电压由芯片内部提供。系统校准则是对整个系统增益误差和零点误差,包括AD7730器件内部误差进行校准, 零点和满量程校准电压需要从外部输入到器件模拟输入端, 并且要保证在校准期间稳定不变。在发动机燃油消耗测量仪中,选择内部校准方式,相对零点和增益校准系数取平均值后,分别存入AD7730片内失调和增益校准寄存器中。AD7730数字滤波器的输出减去零点校准系数的差, 再乘以增益校准系数作为最终的A/D转换结果。
(四)串口数据读写
利用微处理器的串口读写AD7730片内寄存器的数据,串口采用操作模式0时, 串行数据通过RXD引脚读写, 在TXD引脚输出振荡频率的1/12的同步移位脉冲。微处理器串口发送、接收缓冲器数据格式为低位在前、高位在后。AD7730串行数据格式是高位在前, 低位在后。因此, 微处理器读、写数据时一定要根据AD7730各寄存器的字节数分几次读或写, 并且在写数据前或读数据后, 要将数据的高低位的排列顺序分别进行倒序调整。图3电路中,微处理器的串口用于上位机的通讯, 因此用AT89C52的I/O口模拟串口时序,完成对AD7730串口的读写操作。读写AD7730片内寄存器的数据时, 不用进行倒序处理,简化串口数据读写的接口编程。