• 全国客户服务热线:4006-054-001 疑难解答:173-0411-9111(7X24受理投诉、建议、合作、售前咨询),155-4267-2990(售前),传真:0411-83767788,微信:543646
当前位置:主页 > 技术方案 > 工控技术

FPGA控制DM9000A进行以太网数据收发的Verilog实现

时间:2023-09-29 10:35来源: 作者: 点击:
>FPGA控制DM9000A进行以太网数据收发的Verilog实现
本文为实现高速数据的实时远程传输处理,提出了采用直接控制DMA进行以太网数据收发的设计思路,实现了一种低成本、低功耗和高速率的网络传输功能,最高传输速率可达100Mbps。

DMA简介

主要特点
DMA实现以太网媒体介质访问层(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接口是采用对等还是交叉连接方式而改变数据收发引脚的方向,因此,无论外部网线采用对等还是交叉方式,系统均能正常通信。

基于和DM9000A的网络接口设计与实现

下面给出DM9000A与的硬件设计和软件配置方法。FPGA启动以太网发送程序,将解调数据发送到DM9000A,完成数据发送过程。在接收方向,网络工作站把控制指令按照一定的帧格式组帧发送到以太网,DM9000A接收到发给自己的以太网帧并通知FPGA启动以太网接收程序,FPGA将相应的数据从DM9000A的接收FIFO读出。

与FPGA的数据接口和控制接口
DM9000A的外部总线符合ISA标准。可通过ISA总线直接与FPGA无缝连接。其硬件连接原理如图1所示。


初始化模块
DM9000A正常工作需要在上电后对内部寄存器进行初始化,该过程通过FPGA对DM9000A外部控制总线和数据总线的读写操作完成。具体流程如下所示:


>FPGA控制DM9000A进行以太网数据收发的Verilog实现
热门服务和内容