控制/MCU
随着计算机技术、网络通信技术的进步,组建分布式网络化测试系统,提高测试效率、共享信息资源,已成为现代测试系统发展的方向。分布式测试系统通过网络等通信媒介把分布于各测试点、独立完成特定功能的测试设备连接起来,以达到测试资源共享和协同工作等目的。时钟同步是分布式系统的核心技术之一,其目的是维护一个全局一致的物理或逻辑时钟,使得系统内各个节点中与时间有关的信息、事件及行为有一个全局一致的解释。IEEE1588精确时钟协议是当前分布式测试系统中时钟同步研究的热点。采用硬件支持的IEEE1588协议能够在以太网中不同结点之间实现纳秒级的时钟同步,为工厂自动化、测试和测量以及通信等领域需要高精度时钟同步的应用提供了一种有效的解决方案。本文采用具有IEEE1588精确时钟协议硬件支持功能DP83640芯片在基于ARM和WinCE的嵌入式系统平台上实现IEEE1588协议,为基于嵌入式系统的智能测试仪器组成分布式测试系统奠定了基础。
1 IEEE1588协议原理
IEEE1588的全称是“网络测量和控制系统的精密时钟同步协议标准”,简称精确时钟协议(Precision Time Protocol,PIP)。IEEE1588协议是通用的提升网络系统定时同步能力的规范,在起草过程中主要参考以太网来编制,使分布式通信网络能够具有严格的定时同步,并且应用于工业自动化系统。基本构思是通过硬件和软件将网络设备(客户机)的内时钟与主控机的主时钟实现同步,提供同步建立时间小于10μs的运用,与未执行IEEE1588协议的以太网延迟时间1000μs相比,整个网络的定时同步指标有显著的改善。
IEEE1588时钟协议在进行时钟同步时,主时钟设备按照一定的时间间隔(一般为2 s)周期性地以广播方式发送同步报文(Sync)和同步跟随报文(FollowUp),且在FollowUp报文中记录Sync报文的发送时间戳t1,而从时钟设备接收Syne报文记录接收时间戳为t2;然后,从时钟设备节点定期发送延迟请求报文(Delay_Req)(一般4~60 s发送一次),并记录其发送时间戳t3,主时钟设备接收判延迟请求后,记录接收时间戳t4,并给相应从节点发送延迟请求响应报文(Delay_Resp),该报文信息中包古时间戳t4。通过得到的4个时间戳,可以计算出主从时钟之间的偏移量Toffset和网络传输的线路延迟ms_delay,其过程如图1所示。
2 硬件设计
由于IEEE1588协议运行于以太网,在基于ARM的嵌入式系统上采用DP83640芯片移植IEEE1588协议的硬件基确是为系统增加以太网接口电路。以太网接口电路主要由媒体访问控制(Medium Access Control,MAC)器和物理层(Physical Layer,PHY)收发器两部分构成。MAC控制器芯片实现OSI模型数据链路层的功能,提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能。PHY芯片实现OSI模型物理层的功能,定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。ARM处理器、MAC芯片与PHY芯片三者之间的关系是MAC芯片向上通过其处理器接口(Processor Interface)与ARM处理器的高级外设总线(APB)连接,向下通过其媒体独立接口(Media Independent Interface,MII)接口与PHY芯片连接。最终,PHY芯片与RJ45接口连接。
本文使用SAMSUNG公司的S3C2440A型ARM处理器,其内部设有集成MAC控制器,而DP83640芯片只是PHY收发器,因此二者之间还需要增加MAC芯片。由于目前常用的以太网控制器都集成了MAC控制器和PHY收发器,这里选用DAVICOM公司的DM9000以太网芯片,其特点是:具有MII接口可以和片外PHY芯片连接;寄存器操作简单有效;成本低廉。
实现S3C2440A与DM9000连接,必须对两者间的数据、地址、控制三大总线进行连接和转换,其连接关系如图2所示。
3 软件设计
软件设计分为两个步骤:1)是基于DM9000和DP83640进行以太网通信的驱动程序设计;2)是通过DP83640进行时钟同步的应用程序设计。
本文使用WinCE5.0操作系统,WinCE5.0系统下网络驱动程序的编写必须符合网络驱动接口规范NDIS(Network Driver Interface Stan dard)。NDIS的层次结构如图3所示,其中最上层的Winsock是提供给应用层的接口。NDIS位于协议驱动层下面,硬件驱动Miniport Driver之上。协议驱动层通过调用NDIS封装的接口函数,实现与底层硬件驱动的交互。WinCE下网络驱动程序的设计主要是在NDIS构架下,针对实际的硬件编写代码,实现相应的中间层Miniport Driver接口函数。其主要完成的功能有:DM9000与DP83640的初始化;网络数据包的发送;网络数据的接收和中断。
4 结论
IEEE1588协议通过在以太网上发送和接收同步报文来实现时钟同步,同步的精度取决于记录报文发送和接收时间的时间戳的精度,因此要实现高精度的时钟同步必须通过硬件支持在通信协议的底层加入和提取时间戳。本文通过在ARM-WinCE嵌入式系统平台上设计了使用DP836 40芯片作为PHY收发器的以太网接口电路及其驱动程序,实现了IEEE1588协议在ARM-WinCE平台上的移植,并达到了不低于1 μs的同步精度,为基于ARM-WinCE平台的测试仪器组建分布式测试系统奠定了基础。
全部0条评论
快来发表一下你的评论吧 !