



1)模拟输入端的输入信号上迭加有干扰信号(干扰脉冲峰值可达几十伏);(2)读转换结果时,数据线上的干扰信号使读入数据出错;(3)强干扰使AD0809的工作异常。实验表明,数据采集误差增大主要由前两个因素引起。2.5 串行通讯电路效应实验研究 按动开关K,使单片机工作于串口通讯功能检查模块。这部分程序也是循环进行的(提高通讯期间受到冲击的概率),当发现接收数据与发送数据不符时,显示出错信息。在此期间进行冲击实验,图4是RXD脚上的正常波形和通讯出错时的干扰波形。串口通讯出错的原因有两个
1)干扰使CPU内的串口电路工作失误,从而使接收与发送不符;(2)RXD线上的干扰信号使串行数据发生混乱。图4中,RXD上有很强的干扰信号,而且低电平被展宽了3~4倍。这是通讯出错的主要原因。?
1)先在RAM的0000H~1FFFH单元写入数据(“AAH”、“55H”), 然后等待开关K按下,等待期间进行冲击实验。冲击完毕,按下开关K,判断RAM内容是否改变并显示数据改变的个数。(2)先进行循环写(提高写期间受到冲击的概率),在写期间进行冲击实验,冲击完毕,显示数据改变的个数。(3)先写入,然后循环读(提高读期间受到冲击的概率),在读期间进行冲击实验,并显示数据改变的个数。图5是循环读出现2个错误时,采集到的





1)由于在两次写之间约有7~8μs的间隔,在此期间可能发生了不该发生的写操作,从而写入错误数据;(2)循环写时,将数据线上带有干扰的错误数据写入RAM。第三部分实验中RAM内容改变的原因也有两个
1)两次读之间发生了不该发生的写操作,改写了RAM内容;(2)正常读时,将数据线上的错误数据读入CPU。从读写时序图及图5干扰波形来看,以上两种情况都有可能发生。但从实验结果看,第二种可能性较大,第一种可能性则很小。如果在两次读之间发生了不该发生的写操作,循环读时,累计数据改变的个数将使显示的值很大。但实际上,显示只有1~5。
1)干扰使CTC停止计数,CTC不再产生中断;(2)程序跑飞时执行了禁止中断等指令。CTC仍能正常工作是因为程序虽进入死循环,但CTC仍在计数,计满后执行中断子程序(赋初值,P1.1口电位取反),使P1.1口输出正常波形。 每次实验在P1.1口采集到的波形与正常信号相比,其周期、脉宽等都有一定程度的变化。图6给出了P1.1口的正常波形和单片机重启动时的干扰波形。正常波形的正负脉冲宽度为35μs左右;而重启动时干扰脉冲所在的低电平只有15μs,干扰过后,P1.1口一直为高电平(复位时的状态)。
| 欢迎光临 DIY编程器网 (http://www.diybcq.com/) | Powered by Discuz! X3.2 |