一般单片机都会有一些标志寄存器,可以用来判断复位原因;另外你也可以自己在RAM中埋一些标志。在每次程序复位时,通过判断这些标志,可以判断出不同的复位原因;还可以根据不同的标志直接跳到相应的程序。这样可以使程序运行有连续性,用户在使用时也不会察觉到程序被重新复位过。 如何测试单片机系统的可靠性 有读者希望了解用用什么方法来测试单片机系统的可靠性,邓宏杰指出:“当一个单片机系统设计完成,对于不同的单片机系统产品会有不同的测试项目和方法,但是有一些是必须测试的: 1.测试单片机软件功能的完善性。这是针对所有单片机系统功能的测试,测试软件是否写的正确完整。 2.上电、掉电测试。在使用中用户必然会遇到上电和掉电的情况,可以进行多次开关电源,测试单片机系统的可靠性。 3.老化测试。测试长时间工作情况下,单片机系统的可靠性。必要的话可以放置在高温,高压以及强电磁干扰的环境下测试。 4、ESD和EFT等测试。可以使用各种干扰模拟器来测试单片机系统的可靠性。例如使用静电模拟器测试单片机系统的抗静电ESD能力;使用突波杂讯模拟器进行快速脉冲抗干扰EFT测试等等。 单片机里的时钟源详解 无论是单片机还是微处理器,它们的核心都是大规模的时序逻辑电路,而驱动时序逻辑电路的动力则是准确而稳定的时钟源——不要小看定语“准确而稳定”哦,实际上人类的科技之所以能如此稳定、高速的发展,就是离不开准确而稳定的时钟源。比如单片机所使用的晶体振荡器,就是一种比较准确的时钟源。 在晶体振荡器之前,振荡源一般是LC振荡电路等电路,但它们会受到外界的影响(振动、温度等),其误差可能达到kHz级别。长时间的工作情况下其准确度也难以保证。无线电和数字电路的发展迫使一种准确且稳定的时钟源诞生,于是就有了晶体振荡器。 将石英晶体按照一定的方式切割,并向其施加电压,它就会在外加电场的作用下开始振动,这种性质被称作“压电性”。这就使得石英晶体拥有了能够与外界的振荡谐振的能力。按照同样的方式切割出来的晶体拥有着相同的振荡频率,这也就使得批量生产石英晶体成为了可能。
实用的石英晶体振荡器的内部一般是这样的:一片精密切割好的晶体放置在中间,被两片化学处理过的金属氧化物夹在中间,并用结实的金属外壳包装好。这也是为什么晶振的电路图符号是一两个电极夹着一个晶体。典型的石英晶体振荡器的应用电路如下图所示:
这种电路被称作皮尔斯振荡器,利用一个反相器来完成电路。下方的两个电容一般取相同的电容值,它们的取值可以微弱的影响整个电路的振荡频率。它们的作用是与石英晶体构成带通滤波器,在石英晶体的共振频率上形成一个180度的相移。这个电路最常见于单片机的时钟部分。 对于石英晶体来说,被切割的越细,其共振频率越高——但也不是无极限的,切割的过细的话,石英晶体将很容易破碎。而这个极限频率大概为20MHz。那那些20MHz以上的晶体是怎么制作的呢?
实际上,对于超过20MHz的晶体,它们所利用的是晶体振荡频率中的谐波。我们可以加强晶体的奇数倍谐波并利用它。比如我想要使用50MHz的晶体的话,我可以制造一块10MHz的晶体,并使它的结构增强5倍谐波(50MHz)。对于这样的晶体来说,如果需要纯净的50MHz的话,在使用时就需要使用外接的谐振电路选择出这个50MHz的谐波。
对于时钟源这种东西来说,我们永远不会介意它的精度高,越高越好。但是即使是晶振这种有很长历史的振荡器,也足够我们好好研究上一段时间了呢! (责任编辑:admin) |