1 引言 軟件無線電(SDR)技術近年來發展迅速,在無線通信中的數字接收機領域應用尤為廣泛。FPGA(現場可編程門陣列)以其高集成度、高可靠性和靈活性,在軟件無線電平臺的設計中發揮著重要的核心作用。同時,SDR中的數據接口設計也是關鍵的環節。以太網是目前最通用的數據接口之一,但是中低端FPGA通常不具備以太網接口,這為FPGA在SDR中的應用造成了不便。如果為FPGA配置以太網接口,與外部網絡實現通信,將有利于SDR平臺的功能延伸,方便數據傳輸和與現有系統接口。 DM9000A是Davicom公司生產的一款功能強大的以太網控制器,支持10/100 M以太網速率,可與嵌入式微處理器(MPU)、單片機等以多種方式(如ISA總線等)接口,具有體積小、功耗低、配置靈活、使用簡單等特點。但在傳統應用中,很少有將DM9000A和FPGA直接結合應用的實例,為解決FPGA的以太網接口問題,通常的解決方案是采用單片機或者MPU在FPGA和以太網控制器之間進行數據轉發,但弊端是成本提高和功耗增加。 本文在自行設計開發的OQPSK全數字接收機中,為實現高速解調數據的實時遠程傳輸處理及接收機參數的遠程配置,提出了采用FPGA直接控制DM9000A進行以太網數據收發的設計思路。采用Xilinx系列XC2V1000 FPGA和DM9000A,實現低成本、低功耗和高速率的SDR平臺的網絡傳輸功能,其最高傳輸速率可達100 Mb/s。 2 DM9000A工作原理 2.1 主要特性和總體結構 DM9000A的主要特性如下: 支持8/16位數據總線; 適用于10Base-T和100Base-T; 10/100 M自適應,適應不同的網絡速率要求; 內置16 KB的SRAM,用于收發緩沖,降低對主處理器的速度要求; 與IEEE 802.3u兼容,支持IEEE802.3x全雙工,可同時收發; 具有睡眠模式,可降低功耗; 采用48引腳LQFP封裝,縮小PCB面積。 DM9000A功能結構框圖如圖1所示,DM9000A實現以太網媒體介質訪問層(MAC)和物理層(PHY)的功能,包括MAC數據幀的組裝/拆分與收發、地址識別、CRC編碼/校驗、MLT-3編碼器、接收噪聲抑制、輸出脈沖成形、超時重傳、鏈路完整性測試、信號極性檢測與糾正等。 2.2 工作原理 DM9000A可與微處理器以8 bit或16 bit的總線方式連接,并可根據需要以單工或全雙工等模式運行。在系統上電時,處理器通過總線配置DM9000A內部網絡控制寄存器(NCR)、中斷寄存器(ISR)等,完成DM9000A的初始化。隨后,DM9000A進入數據收發等待狀態。 當處理器要向以太網發送數據幀時,先將數據打包成UDP或IP數據包,并通過8 bit或16 bit總線逐字節發送到DM9000A的數據發送緩存中,然后將數據長度等信息填充到DM9000A的相應寄存器內,隨后發送使能命令。DM9000A將緩存的數據和數據幀信息進行MAC組幀,并發送出去。 當DM9000A接收到外部網絡送來的以太網數據時,首先檢測數據幀的合法性,如果幀頭標志有誤或存在CRC校驗錯誤,則將該幀數據丟棄。否則將數據幀緩存到內部RAM,并通過中斷標志位通知處理器,處理器收到中斷后對DM9000A接收RAM的數據進行處理。 DM9000A自動檢測網絡連接情況,根據網速設置內部的數據收發速率為10 Mb/s或100 Mb/s。同時,DM9000A還能根據RJ45接口連接方式改變數據收發引腳的方向,因此無論外部網線是采用對等還是交叉方式,系統均能正常通信。 3 SDR接收機網絡接口設計 在SDR接收機中,中頻模擬信號經過A/D轉換、數字下變頻、抽取濾波等解調處理后,形成連續的解調數據流,其速率為10 Mb/s。在FPGA內部,解調輸出的數據流和以太網接口部分通過FIFO進行緩沖,當解調數據達到規定的數據幀長度時,FPGA啟動以太網發送程序,將解調數據發送到DM9000A,完成數據發送過程。在接收方向,網絡工作站把控制指令按照一定的幀格式組幀發送到以太網,DM9000A接收到發給自身的以太網幀并通知FPGA啟動以太網接收程序。FPGA將相應的數據從DM9000A的接收FIFO讀至FPGA內部RAM中,利用數據中的控制命令配置接收機參數,完成網絡對SDR接收機的遠程控制。 3.1 與FPGA的數據接口和控制接口 DM9000A的外部總線符合ISA標準。可通過ISA總線直接與FPGA無縫連接。其硬件連接原理如圖2所示。 DM9000A內部集成了PHY功能,因此與以太網接口可以無縫連接。如圖3所示。 3.2 DM9000A的FPGA控制 3.2.1 初始化模塊 DM9000A正常工作需要在上電后對內部寄存器進行初始化。該過程是通過FPGA對DM9000A外部控制總線和數據總線的讀寫操作完成的。具體流程如下: 1) 激活PHY 設置GPR(REG_1F) CEPI00 bit[0]=0; 由于復位后,DM9000A恢復默認的休眠狀態以降低功耗,因此需要首先喚醒PHY。 2) 進行兩次軟復位,步驟如下: 設置NCR(REG_00)bit[2:0]=011;至少保持20μs; 清除NCR(REG_00)bit[2:0]=000; 設置NCR(REQ_00)bit[2:0]=011;至少保持20μs; 清除NCR(REG_00)bit[2:0]=000; 3) 配置NCR寄存器 設置NCR(REG_00)bit[2:1]=00;配置為正常模式。 通過改變該寄存器可以選擇設置內部或者外部PHY、全雙工或者半雙工模式、使能喚醒事件等網絡操作。 4) 清除發送狀態 設置NSR(REG_01)bit[5]=1 bit[3]=l bit[2]=l; 5) 設置IMR寄存器(REG_FF)PAR bit[7]=l;啟用RX/TX FIFO SRAM讀/寫地址指針自動返回功能。 6) 通過IMR寄存器(REG_FF)PRM bit[0]/PTM bit[1],對RX/TX中斷使能。如果需要在一個數據幀發送完后產生一個中斷,應將PTM bit[1]置為1,如果需要在接收到一幀新數據時產生一個中斷,應將PRM bit[1]置為1; 7) 設置RCR寄存器,使能數據接收功能。 以上步驟完成后.可以通過LED指示燈觀測DM9000A是否已成功完成初始化。 3.2.2 數據發送模塊 DM9000A的發送緩沖區可同時存儲兩幀數據,按照先后順序命名為幀I和幀II,DM9000A上電初始化后,發送緩存區的起始地址是00H,當前數據幀編號為幀I。兩幀數據的狀態控制字分別記錄在DM9000A的狀態寄存器03H和04H中。發送過程如下: 首先,FPGA利用寫操作寄存器MWCMD(REG_F8)向DM9000A的發送緩存區中寫入發送數據幀,寫數據幀時需要先寫入6字節的目的MAC地址,再寫入6字節的源MAC地址,最后寫入發送數據。 隨后,FPGA利用寫操作寄存器MWCMD(REG_F8)將數據幀長度寫入寄存器FCH和FDH,數據長度為16位,將高8位寫入寄存器FCH,低8位寫入寄存器FDH。 最后,FPGA將發送控制寄存器TCR(REG_02)的bit[1]置為高電平,向DM9000A發出發送數據指令。DM9000A自動進行一些處理才將數據發送至以太網,包括:插入報頭和幀起始分隔符;插入來自上層協議的數據,如果數據量小于64字節,則自動補齊64字節;根據目標地址、源地址、長度/類型和數據產生CRC校驗序列,并插入校驗序列位。這些處理都無需FPGA干預。處理完畢后,DM9000A即開始發送幀I。在幀I發送的同時,幀II的數據即可寫入發送緩存區。在幀I發送完后,將幀II的數據長度寫入寄存器FCH和FDH,最后將發送控制寄存器NSR(REG_01)的bit[1]置為高電平,即可開始幀II的發送。依此類推,下面發送的幀將會繼續編號為幀I,幀II,幀I,幀II……按照同樣的方式發送。 如果FPGA將中斷屏蔽寄存器IMR(REG_FF)的bit[1]置為高電平,那么發送完畢后,DM9000A將會產生一個指示發送完成的中斷信號。在發送過程中,FPGA可以查詢寄存器標志位寄存器NSR(REG_01)中的TX1END bit[2]或者TX2END bit[3]得到數據幀的發送狀態。 發送流程如圖4所示。寄存器ISR中的PTS標志位是發送中斷標志位,當一幀數據發送完畢,PTS=0,FPGA檢測到該標志后,應清除標志位以便發送新的數據幀。這里需要注意的是,向FC、FD所寫的幀長度應該是包含目的MAC地址段、源MAC地址段和有效數據的總長度。 3.2.3 接收模塊 DM9000A中的接收緩存區是一個環形結構,初始化后的起始地址為0C00H,每幀數據都有4字節長的首部,然后是有效數據和CRC校驗序列。首部4字節依次是01H、狀態、長度低字節和長度高字節,幀結構如圖5所示。 首部4字節含義如下: 第一個字節用于檢測接收緩存區中是否有數據。如果這個字節是01 H,表明接收到了數據;如果為00H,則說明沒有數據。但是如果第一個字節既不是01H,也不是00H,DM9000A就必須作一次軟復位來從這種異常狀態中恢復。 第二個字節存儲以太網幀狀態,由此可判斷所接收幀是否正確。 第三和第四字節存儲以太網幀長度。后續的字節就是有效數據。 接收過程如下: 查看中斷狀態寄存器。如果接收到新數據,寄存器ISR的PRS位將被置為0; 如果檢測到PRS=0,清除PRS,FPGA開始讀取接收緩存區數據。如果第一個字節是01H,則說明有數據;如果是00H,則說明無數據,需要進行復位; 根據獲取的長度信息,判斷是否讀完一幀。如果讀完,接著讀下一幀,直到遇到首字節是00H的幀,說明接收數據已讀完。FPGA可以重新查看中斷狀態寄存器,等待新的有效數據幀。接收流程如圖6所示。 4 結束語 本文對以太網控制器DM9000A的原理和功能進行介紹,并結合自行開發的SDR接收機平臺。基于FPGA設計實現了100 M以太網接口。其設計思路新穎,硬件連接簡單。整體系統具有功耗低、體積小、運行穩定可靠等優點。SDR平臺的開發融入網絡設計理念,在應用中有廣泛的前景,大大拓寬了SDR的功能。擴展了SDR的應用領域。 |
愛欣文科技有限公司 [了解我們]:愛欣文科技有限公司,長期從事國際最新集成電路(IC)代理銷售業務.總公司下設香港公司和深圳公司及武漢公司,以及在內地各有關地區業務辦事處等機構,構成了國際國內IC市場營銷業務的立體網絡,是一個國際集成電路(IC)專業化全球化的代理銷售公司. 公司接受榮譽授權,全面代理臺灣DAVICOM聯杰國際﹑MAGCOM磁威、美國C2、TMC晶揚等國際知名1品牌集成電路(IC)及其相關的全線產品。 [網絡系列集成電路專家]:DAVICOM(臺灣聯杰國際)網絡芯片產品線 Davicom高速以太網路晶片(其"性價比"優于SMSC LAN9210,AX88796,CS8900A,RTL8019......) ①10/100MB/S SWITCH和高速以太網絡芯片 DM9006EP-64PIN LQFP,采用0.18工藝制成,2PORT SWTICH,支持遠程喚醒,IGMP,STP協議功能 DM9003EP-64PIN LQFP,采用0.25工藝制成,2PORT SWTICH,支持遠程喚醒,HP 雙絞線自適功能 DM9000AEP LQFP48PIN,采用0.25工藝制成,低功耗供電電壓2.5V-3.3V DM9000CEP LQFP48PIN,采用0.18工藝制成,低功耗供電電壓1.8v-2.5v,支持AUOT-MIX功能. DM9000CIEP_工規網絡芯片(工作溫度-45--80度) DM9000E - (SMSC LAN91C111 Equivalent)ISA接口高速以太網絡三合一單芯片(含 MII / RMII 接口). ②10MB/S 以太網絡芯片 DM9008AE - 0.25工藝制成,LOCAL BUS接口以太網絡三合一單芯片 ③10/100MB/S 高速以太網絡實體層收發器 DM9161B - 低功率, 高速以太網絡實體層收發器. 48-pin 0.35um. DM9161A - 低功率, 高速以太網絡實體層收發器. Auto-MDIX. 48-pin 0.25um. DM9161C -- 低功率, 高速以太網絡實體層收發器 DM9161E DM9161BIEP-工業級物理層PHY芯片(工作溫度-45--80度) DM8203EP - FAST Ethernet Switch,內置IGMP,STP功能。 ④DAVICOM¬¬¬--MODEM芯片:DM562P/DM562AP,性價比優異,該款IC由 兩個芯片組成DM6588和DM6580 ,同異步兼容,內置驅動器,支持FSK和DTMF來電顯示,同時,也8支持56K V.90 DATA /14.4-33.6K 彩色FAX/Voice/Speaker Phone For Embedded System [強大的免費技術支持]: 我公司為國內總代理商,免費為客戶提供網絡部分整套的產品生產解決方案,在產品生產過程中如果遇到技術上的問題我們可以免費提供下列服務: ①提供完整的開發資料及強大的技術支援,成熟可靠的產品方案. ②芯片的數據手冊,原理圖,驅動. ③Layoeut(布板指南). ④編程指南.可以提供各種產品方案,由原廠工程師解決各種技術問題。 [產品應用領域]:它是以嵌入式系統為核心, 其網絡產品廣泛應用在IPTV,DVB-C+IP,DVR/DVS, VOD、IPCAMERA VOIP,金融POS及商務終端,安防監控,門禁,稅控機和工業控制,功能控制及監控,智能抄表系統,教學實驗裝置,網絡網絡器件,網絡產品,上網本EPC等Embedded Production領域! [聯系我們]:如需開發資料的請與我聯系,謝謝! 電話:0755-86677600 傳真:0755-86677606 地址:深圳南山區高新北區新西路2號東方信息港綜合樓5樓503號 聯系人:任先生 電話:134 2896 8359 在線QQ:1870232565 E-Mail:bab_ren@axwdragon.com |
STM32系列CPU配套網絡芯片 DM9161A DM9161C 及 DM9000C CPU有MAC接口用DM9161C DM9161N CPU無MAC接口通過FSMC總線與DM9000A BUS總線連接擴展網口 深圳市僑峰科技有限公司 (DAVICOM中國區總代理) 嵌入式以太網絡接口芯片供應商,軟件及硬件設計服務與咨詢 聯絡方式:Jonny.chu#qftek#com 電#話:13554902206 DM9000A DM9000C DM9161A DM9161C DM8203 DM9620 DM9162N |