AD7730是美国ADI公司推出的一款高分辨率的A/D转换器,具有双通道差分模拟输入、24位无失码、21位有效分辨率、±0.0018%线性误差等特点。由于采用∑-Δ转换技术,量化噪声被移至A/D转换的频带以外,因此AD7730特别适合用于宽动态范围内的低频信号A/D转换,具有优良的抗噪声性能。在发动机燃油消耗测量仪中使用AD7730直接与称重传感器和单片机接口,并由单片机读入A/D转换值,进行发动机平均油耗计算并显示输出,就是其应用之一。
1 AD7730的工作原理和内部结构
1.1 ∑-Δ A/D转换器原理
∑-Δ A/D转换器的工作原理如图1所示,它以k倍过采样频率kfs(fs采样频率)采样模拟输入信号,并通过噪声整形电路将fs/2信号带宽内的大部分量化噪声移至A/D转换频带之外的fs/2至kfs/2之间,电路量化噪声降为原来的1/[1]。模拟低通滤滤器只滤除kfs/2以上的噪声,因此需通过数字滤波器和采样抽取电路提取频带内的有用信号,滤除频带之外的量化噪声和无用信号,提高信噪比和有效分辨率。采样抽取的原则应满足Nyquist采样定律[2],采样频率应大于信号频率的两倍(fs>2fa)。∑-Δ A/D转换器的数字滤波器,用户可通过软件编程设置,从而使A/D转换器可在数据输出速率、峰-峰分辨率、噪声系数之间作出最佳的选择。
AD7730内部结构如图2所示,它包含一个24位的∑-Δ A/D转换器、两级可编程的数字滤波器、十三个片内控制寄存器、一个校正微处理器、两路差分模拟输入通道和双向串行输入输出接口。
AD7730具有两路差分模拟输入通道,通过写入方式寄存器的控制位,可设置传感器模拟输入量程范围为0~+10mV、0~+20mV、0~+40mV、0~+80mV(四种单极性信号)以及±10mV、±20mV、±40mV、±80mV(四种双极性信号),并且能够对不同幅度的传感器输入信号实现量程转换。多路转换器MUX的输出在加到片内可编程增益放大器(PGA)之前,要先与片内6位DAC的输出求和,使输入信号在PGA的允许量程范围之内(DAC输出最大能抵消模拟输入信号量程范围内达±77.5mV的失调值)。
1.2.2 串行接口
AD7730工作方式的写入设置和转换结果读出都是通过串行接口对片内相应寄存器进行操作完成的。串行时钟脉冲SCLK是控制A/D串行数据传送的移位脉冲。状态标志/RDY标明AD7730数据寄存器的状态。A/D转换结果、校准系数、工作方式、数据输出速率则通过DIN、DOUT两条数据线进行串行读写操作来完成。图3是AD7730的读写周期时序。
写入AD7730的串行数据要先写入输入移位寄存器。当时钟逻辑引脚POL为高电平时,执行单片机位操作写指令,在SCLK时钟下降沿,将数据传送至AD7730的DIN串行数据输入端;在SCLK时钟上升沿,数据锁存到输入移位寄存器中。当移位寄存器规定的位数全部写入时,输入移位寄存器的内容便被传送至指定的片内寄存器。
当启动AD7730寄存器的读操作时,片内相应寄存器的内容传送到输出移位寄存器。当时钟逻辑引脚POL为高电平时,在SCLK时钟下降沿,数据从输出移位寄存器串行输出到DOUT端口锁存;在SCLK时钟上升沿,执行单片机位操作读指令,DOUT端口的数据便经串行移位读入到单片机。
2 AD7730在发动机燃油消耗测量仪中的应用
2.1 发动机燃油消耗测量仪测量原理
测量仪的称重传感器输出与油杯和杯内燃油重量之和成正比的信号,测控软件根据耗油时间计算油杯内燃油重量与原有燃油重量的差值,以kg/h或g/s为测量单位显示油耗。称重式测量方式只与燃油的重量直接相关,而与燃油的密度、容积无关,因此不存在由于受燃油气泡的影响导致容积的变化而产生的测量误差。测量精度在很大程度上取决于称重传感器和A/D转换器的精度。
A/D转换器与检测传感器接口,传统的设计方式是设置前置放大器或接口模块。以往应用双积分型A/D转换器ICL7135或逐次逼近型A/D转换器AD574与称重传感器接口时,采用运算放大器OP27或仪表放大器AD620组成前置放大电路,并设置零点、增益、基准电压调整电位器。通过前置放大电路与YZ108B称重传感器接口,将称重传感器0~10mV的信号放大到ICL7135的0~2V的接口电平信号或AD574的0~10V的接口电平信号。由于电路标定调试需要调整电位器,所以硬件电路调试一直存在调整精度重复性差的弊端。
本文通过使用24位∑-Δ A/D转换器AD7730与称重传感器直接接口,组建发动机燃油消耗测控装置,如图4所示。硬件电路取消了前置放大电路或接口模块,电路参数可以免调试。A/D转换器的数字滤波、输出速率、基准电压的设置可通过软件编程设定。AD7730内部零点或系统零点及增益校准的编程控制方式取代了手动调整零点、增益、基准电压电位器的参数设定。
2.2 AD7730接口电路设计
在发动机燃油消耗测量仪中,AD7730与YZ108B电阻应变片称重传感器的模拟接口电路和与微处理器的数字接口电路如图5所示。R1、R2、C1、C2组成低通滤波电路,C3为共模滤波电容,C4为传感器屏蔽层降噪电容。通过软件编程设置AD7730模拟信号输入量程为0~10mV,基准电压为5V,并使其处于斩波工作方式和两级数字滤波方式。
AT89C52的P1.0、P1.1、P1.3、P1.4分别与AD7730的SCLK、CS、DOUT、DIN接口,通过控制AD7730的串口时序,完成A/D连续转换的读写操作。P1.2与/RDY连接,通过查询方式控制AD7730。当状态标志/RDY为低电平时,读取AD7730数据寄存器内的A/D转换数据或校准数据。当/RDY为高电平时,AD7730数据寄存器更新数据,禁止数据传送。也可以把/RDY与AT89C52的/INT0或/INT1连接,通过中断方式控制AD7730,或访问状态寄存器的/RDY位以节省一位I/O口。
2.3 印制电路板布局设计
AD7730具有24位的分辨率,在+10mV输入量程、50Hz的输出速率和斩波工作方式下,最低有效位1LSB对应0.596nV的电压值,噪声系数只有40nV [3]。由于AD7730的分辨率极高、噪声系数极低,必须十分注意印制电路板的元件布局、芯片模拟地和数字地的接地连接。
在印制电路板元件布局方面,模拟元件与数字元件要完全分开,避免模拟信号线和数字信号线相互交叉。双面印制板布设模拟地和数字地的铺铜层,要分别覆围所有模拟元件和数字元件。AD7730芯片下方不要布设任何信号线,并用模拟地铺铜层覆围。特别要注意的是,A/D转换器和微处理器的晶振应用数字地覆围屏蔽,并远离模拟信号线,同时避免噪音对印制板其它部位元件产生幅射干扰影响。
印制板顶层模拟地与数字地铺铜层要互不连接,底层模拟地与数字地铺铜层不要在接线端子插座的直流地端短接,而要在AD7730芯片的模拟地AGND和数字地DGND处一点短接,这样更能有效降低接地阻抗和噪声系数。接线端子直流地与印制板模拟地铺铜层要连接,模拟输入信号线线条要宽、采用最短路径靠近AD7730模拟输入端口。AD7730模拟电源和数字电源端要分别用10μF钽电容和0.01μF陶瓷电容并联,系统工作电源要采用线性电源。
2.4 AD7730数据转换的软件编程
对于AD7730数据转换的编程,首先要写通讯寄存器,指定下一步操作是读还是写以及读写那一个寄存器,之后对指定寄存器进行读写操作。下面是用AD7730进行三字节(24位)数据转换并通过串口输出的片内寄存器读写控制子程序:
void writereg(byteword) /*写AD7730片内寄存器子程序*/
unsigned char byteword;
{unsigned char temp;
int i;
CS=0;
temp=0x80;
for(i=0;i<8;i++)
{SCLK=0; /*时钟下降沿,数据传送至AD7730的DIN串行数据输入端*/
if((temp&byteword)= =0)
DIN=0;
else DIN=1;
SCLK=1; /*时钟上升沿,数据锁存到AD7730输入移位寄存器*/
temp=temp>>1;}
DIN=0;
CS=1;}
void read(readtime) /*读AD7730 A/D转换结果子程序*/
int readtime;
{int i, j,t;
unsigned char temp1;
t=0;
CS=0;
DIN=0;
temp1=0x00;
for(i=0;i<readtime;i++)
{while(RDY); /*A/D转换状态标志判断*/
for(j=0;j<24;j++)
{SCLK=0; /*时钟下降沿,数据从输出移位寄存器串行输出到DOUT端口锁存*/
if(DOUT= =0)
temp1= temp1<<1;
else
{ temp1= temp1<<1;
temp1= temp1+0x01;}
SCLK=1; /*时钟上升沿,DOUT端口的数据经串行移位读入到单片机*/
if(j= =7‖j= =15‖j= =23)
{temp3[t]=temp1; /*A/D转换值存入AT89C52单片机内存单元*/
t=t+1;
temp1=0x00;}}}
CS=1;}
2.5 数字滤波器和A/D输出速率的选择
AD7730具有两级数字滤波器,滤波方式、建立时间、数据输出速率可通过对滤波寄存器编程进行选择。第一级滤波器具有斩波和非斩波两种工作方式。斩波方式能够消除调制器产生的量化噪声,对于漂移、噪声抑制和电磁干扰抑制要求较高的应用场合应采用斩波方式。反之,只要求达到较高的转换速率的应用场合应采用非斩波方式。
第二级滤波器具有三种工作方式:①直通方式,第一级滤波器的输出直接作为转换结果。②22阶FIR低通滤波器方式,对第一级滤波器的输出再进行滤波处理。③快速阶跃方式,模拟输入有阶跃变化或通道切换时,可选择该方式提高A/D转换响应。
AD7730数据输出速率与A/D转换有效位数、噪声系数密切相关,较高的数据输出速率对应较低的分辨率。例如±80mV输入、斩波方式下50Hz模拟信号数据输出速率,对应A/D转换峰-峰分辨率为18位,噪声系数为115nV;400Hz模拟信号数据输出速率,对应A/D转换峰-峰分辨率为16.5位,噪声系数为335nV,而有效分辨率等于峰-峰分辨率加2.7位[4]。AD7730允许用户在有效分辨率和输出速率之间作出灵活选择,在满足测控系统测量精度指标的前提下,用户可以选择较高的数据输出速率。
2.6 系统校准和内部校准方式的选择
AD7730具有内部零点校准、内部满量程校准、系统零点校准、系统满量程校准等四种校准方式。
内部校准方式只对AD7730器件本身进行增益误差和零点误差校准,内部零点校准和内部满量程校准的校准电压由芯片内部提供。校准时首先进行内部满量程校准,之后进行内部零点校准。系统校准则方式是对整个系统增益误差和零点误差、包括AD7730器件内部误差进行校准,系统零点和系统满量程校准需要从外部输入校准电压到器件模拟输入端,并且要保证在校准期间稳定不变。系统校准首先执行零点校准,之后执行满量程校准。在发动机燃油消耗测量仪中,选择内部校准,相对零点校正系数和增益校准系数分别存入AD7730片内失调校准寄存器和增益校准寄存器中,AD7730数字滤波器的输出减去零点校准系数的差,再乘以增益校准系数作为最终的A/D转换结果。
3 试验测量结果
发动机台架负荷特性试验的燃油消耗测量设定20s测量一次,平均油耗测量显示数据为每20s更新一次。测量时间可在10s~100s之间设定更改。发动机燃油消耗测量仪油杯内1kg存量燃油作为相对零点,燃油低于1kg时自动充油,大于2kg时停止充油。1~2kg之间的燃油作为动态测量区域,现场应用的静态标定测量误差保持在1.5‰FS以内,小于以往的发动机燃油消耗测量仪5‰~8‰FS的测量误差。在同一工况下采用相同时间间隔的测量,发动机油耗显示数据重复稳定性良好。
上一篇:车载单元中智能电源的设计与实现
下一篇:通过轮胎判断路面状况,利用振动发电机确保电源
推荐阅读最新更新时间:2024-05-02 21:43
- 热门资源推荐
- 热门放大器推荐
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?
- 村田推出高精度汽车用6轴惯性传感器
- 福特获得预充电报警专利 有助于节约成本和应对紧急情况