新聞中心

EEPW首頁 > EDA/PCB > 設計應用 > FPGA控制DM9000A進行以太網(wǎng)數(shù)據(jù)收發(fā)的Verilog實現(xiàn)

FPGA控制DM9000A進行以太網(wǎng)數(shù)據(jù)收發(fā)的Verilog實現(xiàn)

作者: 時間:2010-08-18 來源:網(wǎng)絡 收藏
本文為實現(xiàn)高速數(shù)據(jù)的實時遠程傳輸處理,提出了采用直接控制DMA進行以太網(wǎng)數(shù)據(jù)收發(fā)的設計思路,實現(xiàn)了一種低成本、低功耗和高速率的網(wǎng)絡傳輸功能,最高傳輸速率可達100Mbps。

DMA簡介

主要特點
DMA實現(xiàn)以太網(wǎng)媒體介質(zhì)訪問層(MAC)和物理層(PHY)的功能,包括MAC數(shù)據(jù)幀的組裝/拆分與收發(fā)、地址識別、CRC編碼/校驗、MLT-3編碼器、接收噪聲抑制、輸出脈沖成形、超時重傳、鏈路完整性測試、信號極性檢測與糾正等。

工作原理
DM9000A可以和微處理器以8位或16位的總線方式連接,并可根據(jù)需要以單工或全雙工等模式運行。在系統(tǒng)上電時,處理器通過總線配置DM9000A內(nèi)的網(wǎng)絡控制寄存器(NCR)、中斷寄存器(ISR)等,以完成DM9000A的初始化。隨后,DM9000A進人數(shù)據(jù)收發(fā)等待狀態(tài)。

當處理器要向以太網(wǎng)發(fā)送數(shù)據(jù)幀時,先將數(shù)據(jù)打包成UDP或IP數(shù)據(jù)包,并通過8位或16位總線逐字節(jié)發(fā)送到DM9000A的數(shù)據(jù)發(fā)送緩存中,然后將數(shù)據(jù)長度等信息填充到DM9000A的相應寄存器內(nèi),隨后發(fā)送使能命令,DM9000A將緩存的數(shù)據(jù)和數(shù)據(jù)幀信息進行MAC組幀,并發(fā)送出去。

當DM9000A接收到外部網(wǎng)絡送來的以太網(wǎng)數(shù)據(jù)時,首先檢測數(shù)據(jù)幀的合法性,如果幀頭標志有誤或存在CRC校驗錯誤,則將該幀數(shù)據(jù)丟棄,否則將數(shù)據(jù)幀緩存到內(nèi)部RAM,并通過中斷標志位通知處理器,處理器收到中斷后將DM9000A接收RAM的數(shù)據(jù)讀出進行處理。

DM9000A自動檢測網(wǎng)絡連接情況,根據(jù)網(wǎng)速設定內(nèi)部的數(shù)據(jù)收發(fā)速率是10Mbps或100Mbps。同時,DM9000A還能根據(jù)RJ45接口是采用對等還是交叉連接方式而改變數(shù)據(jù)收發(fā)引腳的方向,因此,無論外部網(wǎng)線采用對等還是交叉方式,系統(tǒng)均能正常通信。

基于和DM9000A的網(wǎng)絡接口設計與實現(xiàn)

下面給出DM9000A與的硬件設計和軟件配置方法。FPGA啟動以太網(wǎng)發(fā)送程序,將解調(diào)數(shù)據(jù)發(fā)送到DM9000A,完成數(shù)據(jù)發(fā)送過程。在接收方向,網(wǎng)絡工作站把控制指令按照一定的幀格式組幀發(fā)送到以太網(wǎng),DM9000A接收到發(fā)給自己的以太網(wǎng)幀并通知FPGA啟動以太網(wǎng)接收程序,F(xiàn)PGA將相應的數(shù)據(jù)從DM9000A的接收FIFO讀出。

與FPGA的數(shù)據(jù)接口和控制接口
DM9000A的外部總線符合ISA標準??赏ㄟ^ISA總線直接與FPGA無縫連接。其硬件連接原理如圖1所示。


初始化模塊
DM9000A正常工作需要在上電后對內(nèi)部寄存器進行初始化,該過程通過FPGA對DM9000A外部控制總線和數(shù)據(jù)總線的讀寫操作完成。具體流程如下所示:

上一頁 1 2 下一頁

關(guān)鍵詞: Verilog 9000A FPGA 9000

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉