完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
` 本帖最后由 diangongshi 于 2011-12-8 11:10 编辑 常见的错误观点: 1.我需要用单片机实现精确定时 2.通过各种技巧来修正或避免定时器中断误差的产生 3.用定时器可以获得比软件定时更高的定时精度 破题: 1.指标不明 世界上没有绝对的精确,只有具体的需求。80年代,一块每天误差30秒的机械手表叫“精确”,90年代,一块每年误差10分钟的石英手表叫“精确”,现在的CDMA系统离开了GPS系统授时就会崩溃——没有定义的精确是没有意义的。要求精确的人自己都说不清楚需要精确到什么程度,所以这个讨论本身就是没有意义的。 解决方案:分析自己的具体系统需要多高的定时精度,给出指标。典型的现代RTC系统误差是10分钟/年。其实很少有应用需要高精度的时钟。 2.方向错误 [a]单片机的所有时间基准来源于主时钟,典型地,主时钟有片内RC振荡器和片外石英晶体。 RC振荡器的典型精度为5%,不可能精确。 石英晶体的输出频率与温度和负载电容(晶体旁边接到地的那两个电容)有很大关系,石英晶体的误差包括初始误差、温度漂移和年老化3种,初始误差是在规定的激励功率下,石英晶体配合厂家规定的负载电容(常见值为16pF)和室温下测定,市面普通晶体的初始误差约为20ppm;负载电容包括晶体的封装寄生电容、电路板上焊接的两个电容,电路板的寄生电容、单片机输入引脚的寄生电容组成,当这些电容的和与厂家的测定条件不同时,晶体的输出频率还将发生偏移(pull),漂移值约为十几到二十几ppm每pF;当温度偏移时,晶体的输出频率也将发生类似sin曲线的漂移,该漂移可达数十ppm;晶体每年另存在约5ppm的老化漂移,漂移方向不定。 【图片为晶体的温漂曲线】 综上:很多人在使用晶体时根本没有注意这些影响频率的因数,综合一般人的使用习惯,晶体的实际误差约在100-200ppm左右。 解决方案:不了解晶体精度的人,没有权利谈“精确定时”,对于确实需要足够精度晶体频率的应用,应与晶体供应厂家仔细核对设计指标,使用温补晶体,对负载电容使用NPO的第一类电介质电容完成,对晶体部分加屏蔽,严格电路板设计等方式保证足够的时钟源精度。 单片机基于程序运行,当其为多个中断源服务时,特别是当存在这非周期中断时(例如按键),中断服务时间就有可能延迟定时器中断的相应。然而这几乎是一个权衡,如果一个单片机只为定时服务,其会退化为一个ASIC而失去灵活性,这种情况下最佳的解决方案是使用功耗更低、功能更单一和更便宜的RTC芯片。 另一方面,任何振荡频率不能被2整除的晶体,用于秒定时时都会存在误差,若非其他应用条件的限制,应优先考虑使用32768的RTC晶体,软件修正属万不得已的方法,会导致软件复杂度增加。 解决方案:尽量使用32768的晶体作为“秒”相关应用的时钟源,使用该晶体直接驱动定时器,并且使用定时器的溢出自装载功能以减轻软件负担,减少其他中断影响所带来的定时偏差。 3.思路问题 上已述及,单片机的所有行为都是基于主时钟的,除非是带有预取指流水线的系统(例如NXP ARM中的MAM),程序的运行时间都是确定的,并且与定时器处于同一精度级别。由于中断需要现场保护和恢复,其时间对初学者较为复杂;当禁止中断时,软件演示反而更容易得到“高确定度”的延时。 解决方案:尽量减少中断源,让定时器处于高中断优先级,对于简单的局部短延时,使用软件延时完成,对有流水线加速的单片机,尽量使用定时器。 4.结论 综上所述,所有的争论来源于没有给出具体的指标和应用要求,需要多精确的时钟?有哪些资源可用?有哪些设计的限制条件需要考虑?在这些问题没有指明的情况下,讨论任何方案都是没有意义的,“精确定时”本身就是一个伪命题。 解决方案:没有通吃天下的方案,只有最适合当前系统的方案,任何方案都是在权衡利弊后作出的选择。 ` |
|
相关推荐 |
|
你正在撰写讨论
如果你是对讨论或其他讨论精选点评或询问,请使用“评论”功能。
503 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1756 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
1183 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
1053 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1287 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12022 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 21:51 , Processed in 0.369820 second(s), Total 34, Slave 27 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号