- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于DP83640IEEE1588协议实现方案
基于DP83640IEEE1588协议实现方案摘要: IEEE1588精确时钟同步协议能够为网络中的各节点提供高精度的时钟同步,在测量和控制系统中具有广泛的应用前景。本文设计了一种嵌入式环境下两个节点进行同步的IEEE-1588协议实现方案,达到了不低于20ns的同步精度。
关键词: 时钟同步;IEEE1588;DP83640
中图分类号:TP39 文献标识码:A 文章编号:1006-4311(2012)23-0307-03
0 引言
IEEE1588协议以以太网为通信介质,通过主、从设备在网络上交互同步报文使得从设备能够不断计算出网络线路延迟和主从时钟时间偏差,并利用该时间偏差调整本地时钟,使本地时钟始终与主时钟保持一致以实现时间同步。
IEEE1588协议同步的精度取决于时间戳的精度。采用软件的方式在网络协议上层标记的时间戳会由于操作系统和网络协议栈的延迟带来较大误差。要实现高精度的时间同步就必须采用硬件辅助的方式在网络协议栈的最底层即物理层(PHY)为同步报文标记时间戳。
DP83640芯片是美国国家半导体公司推出的具备IEEE1588协议硬件支持功能的以太网物理层芯片,它内置一个精度为8ns的IEEE1588数字时钟,能够在报文发送和接收时精确标记时间戳。本文使用DP83640芯片在S3C2440A型ARM处理器和WinCE5.0操作系统构成的嵌入式系统环境下实现了IEEE1588协议,对两个节点进行同步测试,达到不低于50ns的同步精度。
1 硬件设计
DP83640是PHY芯片,不能直接与S3C2440A处理器通信,需要在二者之间加入MAC芯片。在本文中使用的MAC芯片是DM9000芯片,DM9000向上通过16位数据\地址复用总线与S3C2440A处理器连接,如图1所示;向下通过介质无关接口(MII)与DP83640芯片连接,如图2所示。
DM9000的IO基址IO base=(strap pin value of TXD [2:0]) *10H+300H。本文方案中TXD [2:0]均未设置上拉电阻,所以其IO base=0x300。DM9000的地址使能引脚AEN连接S-3C2440A的片选引脚NGSC4,所以DM9000处于S3C2440A的BANK4地址空间,而BANK4的起始地址为0x2000_0000,故DM9000在S3C2440A中的IO基址为0x2000_0300。
DM9000只通过两个IO端口与处理器通信,一个是地址端口,一个是数据端口。当CMD引脚为低电平时,处理器访问的是DM9000的地址端口,当CMD引脚为高电平时,处理器访问的是DM9000的数据端口。本文方案中DM9000的CMD引脚连接S3C2440A的ADDR2地址引脚,所以在S3C2440A内存空间中,DM9000的地址端口为0x2000_0300,数据端口为0x2000_0304。
DM9000内部已经集成一块PHY芯片,其PHY地址为00000B。在本文中,需要使用的PHY芯片是外接的DP83640芯片,因此通过为DP83640的RXD3引脚设置上拉电阻,为COL引脚设置下拉电阻,将DP83640的PHY地址配置为00010B。在需要访问PHY芯片时,使用PHY地址00010B即实现访问DP83640芯片,而不是访问DM9000内部的PHY芯片。
2 软件设计
软件设计分为两部分,一是由DM9000和DP83640构成的网络接口卡(NIC)的驱动程序设计,二是IEEE1588协议的软件实现。
2.1 网卡驱动程序设计 WinCE5.0操作系统下的网卡驱动程序应符合windows网络驱动接口规范(NDIS)。NDIS规范下的网卡驱动程序被称为微端口驱动程序,NDIS规定微端口驱动程序的入口函数为DriverEntry,操作系统通过调用该入口函数来装载驱动程序,在该函数中首先调用NDIS库函数NdisMInitializeWrapper通知NDIS L-ibrary要注册一个Miniport Driver,接着是创建并初始化一个NDIS_MINIPORT_CHARACTERISTICS结构体,最后调用NDIS库函数NdisMRegisterMiniport注册Miniport驱动和NDIS_MINIPORT_CHARACTERISTICS结构体。
在初始化NDIS_MINIPORT_CHARACTERISTICS结构体变量时,指定了8个供上层协议使用的回调函数:MiniportInitialize、MiniportReset、MiniportCheckForHang、MiniportInterruptHandler、MiniportISR-Handler、Minipo
文档评论(0)