FPGA控制DM9000A進(jìn)行以太網(wǎng)數據收發(fā)的Verilog實(shí)現
DM9000A簡(jiǎn)介
主要特點(diǎn)
DM9000A實(shí)現以太網(wǎng)媒體介質(zhì)訪(fǎng)問(wèn)層(MAC)和物理層(PHY)的功能,包括MAC數據幀的組裝/拆分與收發(fā)、地址識別、CRC編碼/校驗、MLT-3編碼器、接收噪聲抑制、輸出脈沖成形、超時(shí)重傳、鏈路完整性測試、信號極性檢測與糾正等。
工作原理
DM9000A可以和微處理器以8位或16位的總線(xiàn)方式連接,并可根據需要以單工或全雙工等模式運行。在系統上電時(shí),處理器通過(guò)總線(xiàn)配置DM9000A內的網(wǎng)絡(luò )控制寄存器(NCR)、中斷寄存器(ISR)等,以完成DM9000A的初始化。隨后,DM9000A進(jìn)人數據收發(fā)等待狀態(tài)。
當處理器要向以太網(wǎng)發(fā)送數據幀時(shí),先將數據打包成UDP或IP數據包,并通過(guò)8位或16位總線(xiàn)逐字節發(fā)送到DM9000A的數據發(fā)送緩存中,然后將數據長(cháng)度等信息填充到DM9000A的相應寄存器內,隨后發(fā)送使能命令,DM9000A將緩存的數據和數據幀信息進(jìn)行MAC組幀,并發(fā)送出去。
當DM9000A接收到外部網(wǎng)絡(luò )送來(lái)的以太網(wǎng)數據時(shí),首先檢測數據幀的合法性,如果幀頭標志有誤或存在CRC校驗錯誤,則將該幀數據丟棄,否則將數據幀緩存到內部RAM,并通過(guò)中斷標志位通知處理器,處理器收到中斷后將DM9000A接收RAM的數據讀出進(jìn)行處理。
DM9000A自動(dòng)檢測網(wǎng)絡(luò )連接情況,根據網(wǎng)速設定內部的數據收發(fā)速率是10Mbps或100Mbps。同時(shí),DM9000A還能根據RJ45接口是采用對等還是交叉連接方式而改變數據收發(fā)引腳的方向,因此,無(wú)論外部網(wǎng)線(xiàn)采用對等還是交叉方式,系統均能正常通信。
基于FPGA和DM9000A的網(wǎng)絡(luò )接口設計與實(shí)現
下面給出DM9000A與FPGA的硬件設計和軟件配置方法。FPGA啟動(dòng)以太網(wǎng)發(fā)送程序,將解調數據發(fā)送到DM9000A,完成數據發(fā)送過(guò)程。在接收方向,網(wǎng)絡(luò )工作站把控制指令按照一定的幀格式組幀發(fā)送到以太網(wǎng),DM9000A接收到發(fā)給自己的以太網(wǎng)幀并通知FPGA啟動(dòng)以太網(wǎng)接收程序,FPGA將相應的數據從DM9000A的接收FIFO讀出。
與FPGA的數據接口和控制接口
DM9000A的外部總線(xiàn)符合ISA標準??赏ㄟ^(guò)ISA總線(xiàn)直接與FPGA無(wú)縫連接。其硬件連接原理如圖1所示。

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