延时继电器定时算法的研究.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
延时继电器定时算法的研究

延时继电器定时算法的研究   【摘要】延时继电器的一个重要参数是定时精度。本文以ATTINY13作为控制芯片设计一种高精度的延时算法。本设计具有实用性强、延时范围宽、灵活性好、延时精度高等特点。   【关键词】延时继电器;延时算法;ATTINY13   一、国内目前采用的定时方法   目前国内用来定时的方法主要有以下几种方法:   (1)RC电路的充、放电。这种电路定时精度较低、成品体积较大、调试比较麻烦。   (2)定时芯片。这种电路精度较高,灵活性差,通用性差。   (3)单片机做定时。这种电路实用性强、灵活性好、调试方便、定时范围宽。但是算法设计是否科学将直接影响定时精度的高低,本文以产品成本和定时精度为考虑要素,折中选择价格低廉具有制动重载功能和内部振荡器的ATTINY 13为例,通过改进定时算法来提高定时精度。旨在实现低成本高精度的需求。   二、定时误差来源   (1)振荡器本身误差   由图2-1和图2-2得知影响内部RC振荡器精度主要由ATTINY 13的工作电压和工作温度,而ATTNY13出厂时是在5v、25oC条件下校正的。为了能提高产品在任意温度下的定时精度,就要知道产品工作电压,和工作温度然后对RC振荡器校正,但是即便进行校正后精度也不能太高,太高会导致校正失败一般可以将精度校正到±1%.如果要使用更高精度定时,则推荐用无源晶振加非门做振荡器,或者用有源晶振,这样一来产品成本会有所提高。   (2)定时算法带来误差   传统的定时算法大致会经过如图2-3所示。定时器溢出后,主程序可能正在执行某条指令,执行完这条指令需要的时间为T1,经T1时间后可以响应中断,但在这个过程中可能会有比定时中断更高级的中断申请,如果有则执行高级中断,经过T2后高级中断结束进入定时中断,经T3后定时器/计数器加载初值成功,开始启动下一次定时。经过以上分析得知T1和T2是随机误差,其值是不可预知,而T3是进入定时中断后装载定时初值耗费的时间,它的值是固定的。定时误差为T1+T2+T3,如果能有效减小T1、T2就能达到减小误差提高精度的目的。   三、减小误差方法   (1)RC振荡器校正   对于RC振荡器的校正可以利用STK500,AVRISP,JTAGICE和JTAGICE mkIIAVR校正工具,校正程序可以到ATMEL官方网站下载,校正流程可以参考下面说明(该说明译自ATMEL):   1)下载AVR053的源代码。   2)安装AVR Studio 4.11 SP1。   3)创建工程名为rc_calib,添加源文件RC_Calibration.asm到工程中。   4)在RC_Calibration.asm中选择目标单片机所需的文件,不需要的文件用“;”屏蔽掉。   5)选择接口,和选择目标单片机所需文件方法一样。   6)校正时钟频率使用频率计或者晶体振荡器作为校正源。校正源的时钟信号出现在STK500/AVRISP的MOSI引脚,或者JTAG ICE的TDI引脚。在接口文件的“.EQU CALIB_CLOCK_FREQ=XXXX”语句中来修改XXXX作为所需标称频率值。   7)指定用户系统期望的频率和精度。精度太高会可能校正失败,需要参考数据手册查看能达到的精度。   8)编译工程生成hex二进制文件。   目前国内生产的晶体振荡器精度已经具有较高精度,受温度影响也非常小,一般都不需校正都能实现高精度的定时,但是相应的成本会有所提高,在精度要求非常高的产品中可以考虑使用外接晶振方式。   (2)延时算法设计   1)自动重载补偿   利用定时器0自动重载功能补偿T1和T2其算法流程如图3-1所示。定时/记数寄存器(TCNR0)初始化设定为256-t×fosc/n(t为特定定时时间,n为分频数,fosc为RC振荡频率)。当进入第一次中断后就需要补偿T1,T2,T3将TCNR0的初值设定为256-t×fosc/n+定时器重载值(该值等于(T1+T2)×fosc/n用于补偿T1和T2的消耗)+设定初值所耗费的时钟个数(用于补偿T3的消耗)。重载记数值为定时器重载到设定初值这段时间内的记数值。   以下是ATTINY 13定时器部分参考程序代码,内部RC振荡频率为4.8M,定时时间为0.05S。值得一提的是:在此模式下的定时算法的定时精度跟TCNT0设定的值有关系,在振荡频率一定时TCNT0的值越小能定时时间越长精度越高。由于定时器\记数器0为8位定时器,在振荡频率为4.8M采用1024分频的时候最大定时时间为54.4mS考虑定时计算方便和定时精度,参考程序折中选择50mS作为定时时间。还需注意的是:在有高级中断产生时一定要保证运行完成高级中断的时间小于单次规定

您可能关注的文档

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档