论文部分内容阅读
摘 要:针对ENC28J60模块稳定性问题,采用周期重置的方式来提高其连续运行的稳定性;结合网络状态实时监测,对周期重置方式进行改进,改善了系统联网的质量。
关键词:ENC28J60 单片机 稳定性
一、引言
单片机系统作为自动化控制的一个核心部件,随着其应用范围的不断扩大,不同单片机控制系统之间数据交互的需求也在不断的增加。传统的单片机之间通信一般是采用RS232串口来实现,该标准典型的传输速率只有9600bps,同时其传输距离也非常有限,很难适应不断发生的应用需求。相比于串口通信,以太网通信无论是通信速率还是通信距离都有很大的提升;美国微芯公司在2005年推出的ENC28J60是一个能够用于单片机以太网接入的集成电路芯片,该芯片采用28引脚的封装,自带SPI接口能够与带有该类型接口的单片机直接进行高速的数据交互。通过这种方式,可以将单片机控制系统接入到以太网中实现远程高速的数据通信。
然而,在实际的工程实践过程中,在诸如数据通信量过大、系统工作时间太长等因素的影響下,容易导致ENC28J60通信模块无法正常进行数据通信,影响了单片机系统正常功能的发挥。在排除单片机系统自身控制程序问题的前提下,笔者尝试通过以下方式来对该问题进行解决。
二、对ENC28J60模块进行周期重置
该方法设计思路非常简单,就是在单片机中启动一个定时计数器,通过对定时计数器相关寄存器的初始化和单片机控制程序设计,得到一个符合系统需求的ENC28J60模块重置周期,在周期到来后,由单片机系统通过SPI接口向ENC28J60模块发送重置指令,实现对该模块的周期重置。通过测试,发现在该方式下系统能够在连续工作数小时(12小时以上)后,仍能进行数据通信。但是进一步的测试发现,该方式下,会出现较频繁的数据丢包现象。通过分析,发现导致丢包的原因是在ENC28J60模块进行数据接收或者是发送过程中,该模块设定的重置周期到了,此时,由定时计数器产生的中断将使单片机由数据收发流程直接跳转到中断服务程序,进行ENC28J60模块重置工作;该模块重置后,ENC28J60的接收和发送缓存将被清空,虽然单片机控制程序返回到数据接收/发送程序,但是重置时正在接收或发送的数据包已经被清除,从而导致丢包。由于重置周期与数据收时间之间不存在依存关系,因此,由此导致的数据包丢失是随机的,而且,当重置周期越短是,丢包现象越严重。
针对以上存在的问题,对程序进行改进,将ENC28J60模块重置代码从中断服务程序中移出,程序流程如图1所示:。从流程图中可以看出,ENC28J60的每一次重置都将等到数据接收或发送完成之后进行,可以避免数据包丢失的情况出现。通过实际测试,系统能够在长时间(12小时以上)不间断工作之后保持稳定的通信质量,而且数据包丢失的问题得到明显改善。
三、对周期重置的进一步改进
上述对ENC28J60模块进行重置的方式可以解决该模块在出现死机后及时进行复位重置的问题,在一定程度上提高了系统整体的稳定性。然而,这种定时周期重置大部分都是在ENC28J60模块还能正常工作的情况下发生的,对模块本身而言,大部分操作都是多余的,甚至这种频繁的重置将会对模块的性能带来影响。基于这一考虑,对系统进行如下改进(如图2所示):
1、在网络中设置一个服务站点(一般选择在性能稳定的网络服务器中实现)对所有通过ENC28J60接入到网络的单片机系统以时间间隔t为周期发送 “网络状态保持标志数据包”,当单片机系统链接的ENC28J60模块工作正常上,系统将能正常收到“网络状态保持标志数据包”,单片机在收到该数据包后,将对ENC28J60重置标志进行清除,并打开定时计数器,同时将定时计数器的中断周期设置为大于2倍的“网络状态保持标志数据包”发送周期t的某一个数字,比如2.5t,这样设置是为了保证在正常情况下一个时钟中断周期中至少能收到2个“网络状态保持标志数据包”。
2、在定时计数器的中断服务程序中对ENC28J60重置标志进行置位,如果在一个定时计数周能内没有收到至少一个“网络状态保持标志数据包”,就表明网络链接异常,中断返回后,系统将对ENC28J60模块进行重置,从而使系统恢复正常。
在进行以上改进后,对系统进行测试,在系统长时间(12小时以上)不间断工作后,系统仍能正常运行,网络丢包现象得到明显改善。
四、结束语
ENC28J60模块以其自身的优势,已经在自动化控制领域得到了广泛的应用,由此同时,对该模块运行稳定性的要求也越来越高。本文在不改变现有硬件设计的基础上,通过对控制程序进行改进,较好的改善了ENC28J60的工作稳定性,一定程度上满足了一些对单片机网络传输可靠性要求较高的工程应用。■
参考文献
【1】李阳,吴成富,邓红德.基于DSP和ENC28J60的多串口与以太网数据传输系统设计【J】.测控技术,2011,30(12):61-65.
【2】张伟业,黄云龙,成国定,基于ENC28J60以太网通信接口的设计与实现【J】.机电工程,2008,25(1):28-30.
关键词:ENC28J60 单片机 稳定性
一、引言
单片机系统作为自动化控制的一个核心部件,随着其应用范围的不断扩大,不同单片机控制系统之间数据交互的需求也在不断的增加。传统的单片机之间通信一般是采用RS232串口来实现,该标准典型的传输速率只有9600bps,同时其传输距离也非常有限,很难适应不断发生的应用需求。相比于串口通信,以太网通信无论是通信速率还是通信距离都有很大的提升;美国微芯公司在2005年推出的ENC28J60是一个能够用于单片机以太网接入的集成电路芯片,该芯片采用28引脚的封装,自带SPI接口能够与带有该类型接口的单片机直接进行高速的数据交互。通过这种方式,可以将单片机控制系统接入到以太网中实现远程高速的数据通信。
然而,在实际的工程实践过程中,在诸如数据通信量过大、系统工作时间太长等因素的影響下,容易导致ENC28J60通信模块无法正常进行数据通信,影响了单片机系统正常功能的发挥。在排除单片机系统自身控制程序问题的前提下,笔者尝试通过以下方式来对该问题进行解决。
二、对ENC28J60模块进行周期重置
该方法设计思路非常简单,就是在单片机中启动一个定时计数器,通过对定时计数器相关寄存器的初始化和单片机控制程序设计,得到一个符合系统需求的ENC28J60模块重置周期,在周期到来后,由单片机系统通过SPI接口向ENC28J60模块发送重置指令,实现对该模块的周期重置。通过测试,发现在该方式下系统能够在连续工作数小时(12小时以上)后,仍能进行数据通信。但是进一步的测试发现,该方式下,会出现较频繁的数据丢包现象。通过分析,发现导致丢包的原因是在ENC28J60模块进行数据接收或者是发送过程中,该模块设定的重置周期到了,此时,由定时计数器产生的中断将使单片机由数据收发流程直接跳转到中断服务程序,进行ENC28J60模块重置工作;该模块重置后,ENC28J60的接收和发送缓存将被清空,虽然单片机控制程序返回到数据接收/发送程序,但是重置时正在接收或发送的数据包已经被清除,从而导致丢包。由于重置周期与数据收时间之间不存在依存关系,因此,由此导致的数据包丢失是随机的,而且,当重置周期越短是,丢包现象越严重。
针对以上存在的问题,对程序进行改进,将ENC28J60模块重置代码从中断服务程序中移出,程序流程如图1所示:。从流程图中可以看出,ENC28J60的每一次重置都将等到数据接收或发送完成之后进行,可以避免数据包丢失的情况出现。通过实际测试,系统能够在长时间(12小时以上)不间断工作之后保持稳定的通信质量,而且数据包丢失的问题得到明显改善。
三、对周期重置的进一步改进
上述对ENC28J60模块进行重置的方式可以解决该模块在出现死机后及时进行复位重置的问题,在一定程度上提高了系统整体的稳定性。然而,这种定时周期重置大部分都是在ENC28J60模块还能正常工作的情况下发生的,对模块本身而言,大部分操作都是多余的,甚至这种频繁的重置将会对模块的性能带来影响。基于这一考虑,对系统进行如下改进(如图2所示):
1、在网络中设置一个服务站点(一般选择在性能稳定的网络服务器中实现)对所有通过ENC28J60接入到网络的单片机系统以时间间隔t为周期发送 “网络状态保持标志数据包”,当单片机系统链接的ENC28J60模块工作正常上,系统将能正常收到“网络状态保持标志数据包”,单片机在收到该数据包后,将对ENC28J60重置标志进行清除,并打开定时计数器,同时将定时计数器的中断周期设置为大于2倍的“网络状态保持标志数据包”发送周期t的某一个数字,比如2.5t,这样设置是为了保证在正常情况下一个时钟中断周期中至少能收到2个“网络状态保持标志数据包”。
2、在定时计数器的中断服务程序中对ENC28J60重置标志进行置位,如果在一个定时计数周能内没有收到至少一个“网络状态保持标志数据包”,就表明网络链接异常,中断返回后,系统将对ENC28J60模块进行重置,从而使系统恢复正常。
在进行以上改进后,对系统进行测试,在系统长时间(12小时以上)不间断工作后,系统仍能正常运行,网络丢包现象得到明显改善。
四、结束语
ENC28J60模块以其自身的优势,已经在自动化控制领域得到了广泛的应用,由此同时,对该模块运行稳定性的要求也越来越高。本文在不改变现有硬件设计的基础上,通过对控制程序进行改进,较好的改善了ENC28J60的工作稳定性,一定程度上满足了一些对单片机网络传输可靠性要求较高的工程应用。■
参考文献
【1】李阳,吴成富,邓红德.基于DSP和ENC28J60的多串口与以太网数据传输系统设计【J】.测控技术,2011,30(12):61-65.
【2】张伟业,黄云龙,成国定,基于ENC28J60以太网通信接口的设计与实现【J】.机电工程,2008,25(1):28-30.