光纤熔接 ERP

弱电论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5016|回复: 2
打印 上一主题 下一主题

沧海骗子老师帮忙分析下采用ICL7135与89S51做双积分A/D转换时产生的时钟漂移

[复制链接]
跳转到指定楼层
1#
发表于 2007-1-26 12:15:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
华为代理商

采用ICL7135与89S51做双积分A/D转换时产生的时钟漂移的原因在哪呀?

如何避免呢?

具体现象:1、现测量数值与实际真实值误差只在+ — 20个计数单位/1ms(可以接受)

2、但是再调整被反项积分的电位器(被测电位器电压)时,速度跟进非常慢,调完了好一会才变为希望测量的值上。(难以接受)

程序如下:#include
#include
#define uchar unsigned char
code char dis_1[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳LED显示数字数组
uchar s,ss,m,sm,h,sh;
bit flag;
bit flag1;

long int k,T0_times,hour,minute,second;
code char scan_con[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //段码判断位数组
data char dis[6]={0x00,0x01,0x02,0x03,0x04,0x05};//位码数据组
sbit BUSY=P3^2;//BUSY为忙判断I/O引脚。
sbit clock=P3^4;//CLOCK为外部时钟脉冲I/O引脚。120KHZ。
sbit DIN=P0^7;
char zhuangtai;
void delay(int t)
{while(t--);
}
scan()
{int c;
uchar a;
dis[0]=s;dis[1]=ss;dis[2]=m;dis[3]=sm;dis[4]=h;dis[5]=sh;
for(c=0;c<1;c++)
{for(a=0;a<6;a++)
 {
  P0=dis_1[dis[a]];
 if(a==2)
{DIN=0;}
  P2=scan_con[a];delay(1)2=0xff;
  }
 
}
}

ad()
{int i,j;

 

 i=TH0;j=TL0;TH0=0x00;TL0=0x00;//TH0、TL0为T0记数/定时器的高低8位寄存器。可软件复位。
 k=256*i+j;
 
 
 s=(char)(k%10);
 ss=(char)(k/10%10);
 m=(char)(k/100%10);
 sm=(char)(k/1000%10);
 h=(char)(k/10000%10);
 sh=(char)(k/100000%10);

 
 }
 void ad_zd(void) interrupt 0 using 0
{
  flag=1;
 zhuangtai=0;
}
main()
{
TMOD=0x0d;IT0=1;TR0=1;IE=0x81;//TMOD控制寄存器低4位GATE、C/T、M1、M0,控制T0记数--外部记数、INT0与TR0一起控制启/停、16位高低8位计数器模式。
while(1)
{
 
  if(flag)
{
 switch(zhuangtai)
 {case 0: ad(); break;
 
  default:;
 }
 flag=0;
}scan();
}

}

程序有问题吗?我试过别的电路方式的记数用此程序,跟进速度正常,硬件电路的问题可能性大,电路已经避免一个错误是:

7135的给定脉冲与计数器的计数脉冲是分开给的,如果用一个脉冲给定那么在单片机工作时若产生强制计数器归0,则7135的稳定性就大大折扣,基本就乱套了,现在就差这个跟进速度的问题没解决了。

期待您的点拨:如有不详请您说明。

能在百忙之中照顾小朋友一下,先谢谢您了~~

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
2#
 楼主| 发表于 2007-2-7 10:55:25 | 只看该作者
华为代理商

Re:沧海骗子老师帮忙分析下采用ICL7135与89S51做双积分A/D转换时产生的时钟漂移

自己回复一下吧问题找到了,呵呵,累死我了,给那些为此问题困惑的朋友一些参考,不过还是建议自己动手实验。

 

由于数字电路是利用上升沿/下降沿很短的脉冲信号,所以会向外部放出包括高频成分的多余电磁波(噪声),而且对外部来的电磁波(噪声)敏感地响应,造成误动作。另外在电路内部也存在线间产生交调失真、数字器件的通/断时电流急骤变化引起电源电压变动等问题。这样就需要在数字电路中考虑布线的电感和寄生电容构成的分布常数电路、防止上冲、下冲造成波形的混乱及信号反射、延迟、衰减、线间电磁干扰的交调失真。而解决这问题的滤波器、屏蔽等都是模拟技术。   由于数字电路技术在汽车、火车、收音机控制中的应用,高可靠性地实现了以前用模拟技术无法实现的高功能。但是由于噪声会引起系统及电路误动作,尤其对机器为系统是致命的问题。而模拟电路即使有噪声,也只是暂时降低数据的精度,一旦噪声消失,就具有自我恢复功能的特征。因此将实现高功能的数字电路和具有自我恢复/自我确认能力的模拟电路组合应用,对防止移动控制系统、数字电路噪声引起的误动作将会是一种安全的方案。

电路设计时要特别注意的地方

  在电路设计后,为了进行工作验证,需要组装电路进行实验。但是结果会经常出现不按设计那样工作。例如设计的放大器却变成了振荡器,在模拟电路中由于混入数字电路来的噪声,使模拟信号的波形失真、工作不稳定、不能顺利得到数据。

  对低频电路来说,无论谁组装,只要布线不接错,各种不同的安装、布线、电路特性几乎没有差异,可得到相同的数据。但是高频却不同了,由于安装方法不同,一般会得到不同特性的数据。

  在高频电路及高速数字电路中,如果有一条线就会形成电感成分(寄生),如果有两条线则在线间就会形成寄生电容成分及互感成分(寄生),即所谓三寄生。所形成的三寄生数值是很微小的,因此在低频时几乎不成问题,但是在高频领域却不能忽略该C、L成分的影响

  最近为了提高机器的性能,经常将从低频到高频的模拟电路、高速数字电路、微型模拟电路及大电流电路等各种电路混在一起,这样会造成电路的不稳定及频率特性恶化。其中主要原因就是在设计时未充分考虑上述三寄生,而无法维持可靠性和安全性。

  另外,电路图中只用二维表现半导体器件及R、C、L的集中参数,但这并不能代表实际电路的性能和功能。实际的动作是三维空间,包括频率就是四维空间了。因此,由交调失真、反射、静电、电磁结合形成的微电流电路在高频电路中会对特性、功能造成影响。最近的IC想根据时代的要求,很多是高速动作的器件,对高频噪声的响应很敏感。因此在使用器件时要根据电路功能选择相应的元器件,尽量避免使用高于要求的高速IC。

  在电路图中通常将电源、地线、信号线的阻抗均按零欧姆考虑的。但是实际上是不存在零欧姆的,而且频率越高,电感和寄生电容的影响越大。结果,电路相互结合及外部电磁场的影响大到不能忽略的程度,造成电路不稳定及频率特性恶化。在模拟电路中应解决误差、噪声及时间延迟问题;而数字电路中解决抗噪声,通过同步使之不受时间延迟的影响,对改善电路特性是非常重要的。

必须注意动态噪声“静电”的影响

  能引起电气设备误动作的噪声源很多,例如我们周围的日光灯、除尘器、无线电收发信机、变压器、变换器等。这些都是属于电磁场噪声源。除此之外,引起误动作的噪声源是静电放电。

  由于静电放电电流和瞬间产生的高电压会使IC破坏,从而使系统或设备造成误动作和故障。为了防止静电放电,从元器件的购买到设备的设计、生产和包装都要采取必要的措施。在设计方面可以采取以下措施:

  (1)避免使用超出要求的高速IC、特别是注意输入电路。在可能的情况下输入电路采用差分方式。滤波电路要紧靠IC连接。

  (2)对半导体进行输入保护。在连接器的输入部分为了使噪声控制在半导体耐压值以下而加入限幅电路。由于CMOS栅极抗静电噪声性能弱,所以不易用于连接器的输入部分。

  (3)避免使用边沿解发型IC,而使用选通方式或带门闩的电路。

  (4)为了抑制误动作的发生率,在控制端、输出端应做成低有效逻辑。

  (5)对高灵敏度的信号输入要进行滤波。将频带外的高频滤除,这对运算放大器不输入过大的信号是很重要的。还要注意所用电容器的引线电感。

  (6)在软件方面也要采取了一些措施。由于静电放电是一次性过渡脉冲,所以可通过多次校验检出错误数据。在微机中为了防止意外停止而设置看门狗电路(监视电路)。

  (7)电子电路及布线要远离放静电的金属机箱。

  (8)机箱的金属和金属连接部分要除去涂料紧密相接,尽可能加螺钉固定。

  为了减少由放电电流产生的电磁场影响,在印制电路板上应该采取如下措施:

  (1)减少环面积

  在所形成的环中由于磁通交联,会在该环中感应电流,环的面积越大磁通交联的越多,感应的电流也就越大。因此为了使电源、地线所形成的环面积最小,应使电源和地线尽量接近布线。在电源、地线之间安装高频旁路电容,使环面积减少(参见图3)。为了减小信号线和地线之间形成的环面积,将信号接近地线进行布线。

  (2)使布线最短。要考虑信号线长度的分配,设计时将低有效信号线加长,而将高有效信号线做成最短。(参见图4)。各器件相互间的布线做成最短,并将连接在输入输出线上的器件安装在端子的附近。

  (3)使用多层线路板,这是在模拟电路及高速数字电路中觉见的。

  在高速数字电路中,脉冲信号的频谱具有非常宽范围的高次谐波成分。使用的工作频率越高,受寄生电容、电感的影响越大。假设具有电感L的图形上流过高频电流I,则电感L产生的压降为:

  V=L·di/dt

  该图形就像一个天线,将辐射噪声发送出去。将地线做成面可减少地线的阻抗,降低放电电流产生的电压降。

  对接口电缆应采取防静电措施:

  电缆的屏蔽线两端连接在机壳上。在可能产生地线环的地方为使高频短路而加旁路电容。在无机壳地时也不应该与逻辑地连接。对于扁平电缆可在信号线和信号线之间加入地线。

开关电源用作模拟信号电源时应注意的问题

  所谓开关电源是通过脉冲调制方式稳定输出电压的电源电路形式。这种方式由于只是开关部分消耗功率,所以开关速度越快电源的效率越高,因此一般使用高速开关器件。这种电源由于效率高,从大功率的机器到小型轻量的机器应用非常广泛。但是伴随着高速开关动作而存在着开关噪声漏出的缺点,这种用作模拟电路的电源,将会产生很多问题。

  将开关电源用作模拟电路的电源使用时,图5所示的高频噪声就会进入模拟信号的频带内,使模拟信号的信/噪比变坏。虽然开关噪声一般只是50~100mVpp,相当小,但由于模拟信号的动态范围大,这样的噪声经常会产生问题。特别是用于A/D变换器等机器中时,当在判断变换时的电平时刻信号上重叠了噪声,就会产生变换错误,从而得不到预期的精度。

  为了解决在模拟电路中使用开关电源存在的问题,可以在选择开关电源时注意以下两个方面:

  (1)开关电源的噪声电平尽量小;

  (2)开关噪声成分不进入信号的频带内。

  由于模拟信号的电平高,开关噪声对信号噪声比就不会产生影响。为了使开关噪声不进入信号频带,最简单的方法是选择比模拟信号的最高频带更高开关频率的电源。

  在无法按上述办法选择时,就必须想办法减少电源产生的开关噪声。这些方法包括:

  (1)在外部增加电容器。

  (2)通过外部电源产生的开关噪声。

  (3)并用系列调节器。

 

3#
发表于 2008-1-19 15:58:52 | 只看该作者
华为代理商

你的个程序我怎么没看明白啊.

用外中断控制计数,你开始中断后计时到什么时候啊,程序哪段能控制啊.

能在百忙之中照顾小朋友一下,先谢谢您了~~

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|广告咨询|VIP注册|关于我们|联系我们|积分规则|手机版|Archiver|弱电之家论坛 ( 京ICP备11008917号-3 )

GMT+8, 2025-7-17 04:46 , Processed in 0.043943 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表