- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
FPGA控制M9000A.doc
FPGA控制DM9000A进行以太网数据收发的Verilog实现 木文为实现高速数据的实吋远程传输处理,提岀了采用FPGA直接控制DM9000A进行以太网数据收发的设 计思路,实现了一种低成本、低功耗和高速率的网络传输功能,最高传输速率可达100Mbps。
DM9000A 简介
主要特点
DM9000A实现以太网媒体介质访问层(MAC)和物理居(PHY)的功能,包括MAC数据帧的组装/拆分与 收发、地址识别、CRC编码/校验、MLT-3编码器、接收噪声抑制、输出脉冲成形、超时重传、链路完赘 性测试、信号极性检测与纠正等。
工作原理
DM9000A讨以和微处理器以8位或16位的总线方式连接,并讨根据需耍以单工或全双工等模式运行。 在系统上电吋,处理器通过总线配界DM9000A内的网络控制寄存器(NCR)、中断寄存器(ISR)等,以完成 DM9000A的初始化、随后,DM9000A进人数据收发等待状态。
当处理器耍向以太网发送数据帧吋,先将数据打成UDP或IP数据包,并通过8位或16位总线逐字节 发送到DM9000A的数据发送缓存屮,然后将数据长度等信息填充到DM9000A的相应寄存器內,随后发 送使能命令,DM9000A将缓存的数裾和数裾帧信息进行MAC组帧,并发送出去。
当DM9000A接收到外部网络送來的以太网数据时,首先检测数据帧的合法性,如果帧失标志冇误或存 在CRC校验错误,则将该帧数据丢弃,否则将数据帧缓存到内部RAM,并通过中断标志位通知处理器, 处理器收到中断后将DM9000A接收RAM的数据读出进行处理。
DM9000A闩动检测网络连接情况,根据网速设定内部的数据收发速率是10Mbps或100Mbps。同时, DM9000A还能根据RJ45接门是采用对等还是交义连接方式而改变数裾收发{JI脚的方向,因此,无论外部 网线采用对等还是交叉方式,系统均能正常通信。
:基于FPGA和DM9000A的网络接口没计与实现
下面给出DM9000A与FPGA的硬件设计和软件配置方法。FPGA启动以太M发送程序,将解调数据发 送到DM9000A,完成数裾发送过程。在接收方向,网络工作站把控制指令按照一定的帧格式组帧发送到以 太网,DM9000A接收到发给己的以太网帧并通知FPGA启动以太M接收程序,FPGA将相应的数据从 DM9000A的接收FIFO读出。
与FPGA的数据接口和控制接口
DM9000A的外部总线符合ISA标准。可通过ISA总线H接与FPGA无缝连接。It硬件连接原理如图1
图 r DM9000A 与 FPCA 接口
所示。
DM9000A 的 FPGA 控制
初始化模块
DM9000A正常工作需要在上电后对内部寄存器进行初始化,该过程通过FPGA对DM9000A外部控制 总线和数据总线的读写操作完成。具体流程如下所示:
>激活PHY
设H GPR(REG_ 1 F)CEPIO0bit[0]=0 ;
复位后,DM9000A恢复默认的休眠状态,以降低功耗,因此需要首先唤醒PHY。
>进行两次软复位,步骤如下:
设置 NCR(REG_00)bit[2: 0]=011,至少保持 20恥:
清除 NCR(REG_00)bit[2: 0]=000;
设HNCR(REG_00)bit[2: 0]=011,至少保持 20ps;
清除 NCR(REG_00)bit[2: 0]=000;
>配置NCR寄存器;
设置NCR(REG_00)bit[2: 1]=00:配置为正常模式。
通过改变该寄存器可以选择设罝内部或者外部PHY、全双工或者半双工模式、使能唤醒事件等网络操 作。
>淸除发送状态;
设置 NSR(REG_01 )bit[5]= 1 bit[3]= 1 bit[2]=1;
>设置IMR寄存器(REG_FF)PAR bitf7]=l,以肩用RX / TX FIFOSRAM读/写地址指针A动返回功能; >通过IMR寄存器(REG_FF)PRM bit[O] / PTM bit[l],对RX / TX屮断使能。如果需耍在一个数据帧发
送完后产生一个中断,就应该将PTM bit[l]R 1,如果需耍在接收到一帧新数据时产生一个中断,就应 该将 PRM bit[l]置 1;
>设置RCR寄存器,使能数据接收功能。
通过以上步骤,可以通过LED指示灯观测到DM9000A是否已成功初始化。
发送模块
DM9000A中的发送缓冲区可以同吋存储两帧数据,可以按照先后顺序命名为帧I和帧II。DM9000A上 电初始化后,发送缓存区的起始地址是00H,当前数据帧编号为帧I。两帧数据的状态控制字分别记录在 DM9000A的状态寄存器03H和04H中。发送过程如下:
首先,FPGA利用写操作寄存器MWCMD(REG_F8)向DM9000A的发送缓存
文档评论(0)