網絡控制器DM9000A在嵌入式系統(tǒng)中的應用_第1頁
網絡控制器DM9000A在嵌入式系統(tǒng)中的應用_第2頁
網絡控制器DM9000A在嵌入式系統(tǒng)中的應用_第3頁
網絡控制器DM9000A在嵌入式系統(tǒng)中的應用_第4頁
網絡控制器DM9000A在嵌入式系統(tǒng)中的應用_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、網絡控制器dm9000a在嵌入式系統(tǒng)中的應用時間:2008-08-15 10:38:00來源:電子產品世界作者:賈東耀廣州聚暉電子公司彭樹林新太科技股 份有限公司目前,網絡技術在電了產品中的應用越來越廣,更多的嵌入式設備需要提供網絡接口, 以方便與外部互聯(lián)通訊。現在流行的大多數嵌入式cpu(如arm、ppc)都捉供了此類接口, 但對于一些相對復雜的嵌入式系統(tǒng)來說,可能需要擴展以太網口,以滿足網絡通訊需要。木 文介紹一種新款網絡接口芯片dm9000a,它可以很方便的實現與嵌入式cpu的接口,實 現擴展以太網口的功能。dm9000adm9000a是中國臺灣davicom公司推出的一款高速以太網接口

2、芯片,其基本特征 是:集成10/100m物理層接口;內部帶有16k字節(jié)sram用作接收發(fā)送的fifo緩存;支 持8/16bit兩種主機工作模式;通過hp認證的auto-mdix(支持直接互連自動翻轉)功能; 支持tcp/ip加速(ipv4 check sum offload)減輕cpu負擔,提高整機效能;10ns i/o讀寫 時間。dm9000a以太網控制器遵循ieee頒布的802.3以a網傳輸協(xié)議。該電路還集成/ eeprom接口,自舉時通過eeprom接口輸入到芯片中,從而實現自動初始化。硬件接口設計dm9000a可以很方便的與目詢主流的嵌入式cpu以8位或16位的總線方式連接, 本文設計

3、的系統(tǒng)cpu為at91rm9200,它是一個采用arm核的32位微處理器。二者的 接口設計如圖lodm9000aat91rm9200sdodo1rsd15d15cs«mcs3iow«nweior*nobresetnresetcida2i mtpd8eedio"t"dido10k93c46skeecscs圖1 dm9000a與at9irm9200硬件連接系統(tǒng)上電時,at91rm9200通過總線配置dm9000a內部網絡控制寄存器(ncr)、 中斷寄存器(isr)等,完成dm9000a的初始化。隨后,dm9000a進入數據收發(fā)等待狀態(tài)。 當at91rm920

4、0向以太網發(fā)送數據時,先將數據打包成udp或ip數據包,并通過16 bit 總線發(fā)送到dm9000a的數據發(fā)送緩存中,然后將數據長度等信息填充到dm9000a的和應 寄存器內,使能發(fā)送。當dm9000a接收到外部網絡送來的以太網數據時,首先檢測數據幀 的合法性,如果幀頭標志冇誤或存在crc校驗錯誤,則將該幀數據丟棄。否則將數據幀緩 存到內部ram,并通過中斷標志位通知at91rm9200,由at91rm9200對dm9000a接 收到的數據進行處理。linux驅動實現linux網絡驅動體系結構在linux操作系統(tǒng)屮的設備駁動,根據各類外圍i/o設備的不同,分為三類,即字符設 備(如鍵盤、lcd

5、)驅動、塊設備(如破盤、cf卡)驅動和網絡設備(如網卡)驅動。linux 網絡設備驅動程序結構上由四部分組成(圖2):網絡協(xié)議接口,網絡設備接口,設備駁動功 能層及網絡設備介質。圖2 linux網絡驅動體系結構設計開發(fā)linux網絡驅動程序時,最主耍的工作就是完成設備驅動功能層。類似于對 字符設備和塊設備的處理,為了屏蔽網絡環(huán)境中物理網絡設備的多樣性,linux利川面向對 彖的思想對所有的網絡物理設備進行抽彖,定義了一個統(tǒng)一的接口。對于所有網絡碩件的訪 問都是通過接口進行的,接口向用戶提供了一個對于所冇類型的網絡帔件一致化的操作集 合。linux內核提供的統(tǒng)一網絡設備結構為net_device

6、,此結構體位于網絡驅動層的核心地 位。net_device中冇很多供系訪問和協(xié)議層調用的設備方法,其中包括:dev->open:打開設備。open方法應當注冊網絡設備需耍的任何系統(tǒng)資源(i/o 口, irq, dma等),打開破件,進行設備要求的其他設置。devstop:停止設備。該函數應當恢復在打開時進行的操作。 dev->hard_start_xmit:發(fā)送報文。 dev->tx_timeout:發(fā)送超時調用的方法,它應當處理這個問題并恢復報文發(fā)送。 dev->set_mac_address:修改網絡的%更件mac地址。網絡驅動就是要實現這些具體的設備方法。設備初始

7、化網絡的初始化是設備工作的第一步。當系統(tǒng)加載網絡驅動模塊的時候,就會調用初始化 過程。首先利川函數request_mem_region映射dm9000a的數據、地址端口,通過 dmfe_probe函數檢測網絡物理設備是否存在,檢測dm9000a內部串行nic的值是否正 確,然后再對設備進行資源配置,構造設備的net_device數據結構。包括一些低層硬件拮 息:base_addr(網絡接口的i/o基地址),irq(安排的中斷號)等。打開設備和關閉設備open方法在網絡設備被激活的吋被調用,具體dm9000a的破件初始化工作放到這里 來做。對于dm9000a需要完成的初始化包括:對dm9000a

8、內部上電,軟件復位,通過 ncr寄存器設置網絡工作模式,可以選擇設置內部或者外部phy、全雙工或者半雙工模式、 使能喚醒事件等網絡操作,對rx/tx中斷使能,使能數據接收功能。調用request_irq() 申請中斷號登記中斷處理函數,調用netif_cairicr_on偵測連接狀態(tài)。啟動定吋器,調用ne(if_stail_queuc激活設備發(fā)送隊列。這里對dm9000a的中斷設計做了一個特殊處理:通常at91rm9200提供最多32個 中斷源,默認提供7個外部中斷源,但對于較復雜的嵌入式系統(tǒng),可能會而臨中斷源不夠用 的情況。山于at91rm9200的pio可以實現功能復用,因此可以把多余的i

9、o引腳配置為 可用的中斷源。故本系統(tǒng)中,設計dm9000a中斷源與at91rm9200外部i/o 口 pd8引 腳相連。一個pio端口的32個引腳共享一個中斷id,只需要在中斷狀態(tài)寄存器中區(qū)分具 體哪個引腳引起中斷,然后轉向特定的中斷處理函數執(zhí)行操作,就可以實現中斷處理。close所做的ii作和open相反,主要釋放open獲得的資源,以減少系統(tǒng)負擔。數據包發(fā)送數據包的發(fā)送和接收是實現linux網絡驅動程序中兩個最關鍵的過程,對這兩個過程 處理的好壞將直接影響到驅動程序的整體運行質量。數據傳輸通過hard_s(an_xmit函數實現,首先把存放在套接字緩沖區(qū)中的數據發(fā)送到 網絡芯片dm9000

10、a內部的tx fifo sram中,該緩沖區(qū)是由數據結構sk_buff表示,把 耍傳送的數據長度寫入dm9000a中的傳輸包長度寄存器txpll和txplh中。然后使能 傳輸。如果數據發(fā)送成功,則會觸發(fā)一次中斷。實際中會出現多個數據幀傳輸,需??紤]做并發(fā)處理。在發(fā)送時檢測傳輸隊例暫時滿載 時就耍通過netif_stop_queue來暫停,當發(fā)送完成觸發(fā)中斷處理時,調用netif_wake_qucue 函數來重新啟動傳輸隊例。網絡傳輸由于系統(tǒng)忙或碩件的問題發(fā)生延遲,則會調用傳送超時處理函數tx.timeout, 對碩件復位操作。數據包接收數據包的接收是通過中斷處理,當有數據到達時,就產生中斷信號

11、,網絡設備驅動功能 層就調用數據包接收程序來處理數據包的接收,然后網絡協(xié)議接口層調用netif_rx函數把 接收到的數據包傳輸到網絡協(xié)議的上層進行處理。dm9000a接收緩存區(qū)中的每幀數據由4字節(jié)長的首部、有效數據和crc校驗序列構 成。首部4字節(jié)依次是01h、以太網幀狀態(tài)、以太網幀長度低字節(jié)和長度高字節(jié),數據包 接收程序首先檢測如果第一個字節(jié)是01h,則說明有數據;如來是00h,則說明無數據, 需要進行-復位。然后調用函數dev_alloc_skb屮請塊sk_buff結構緩沖區(qū),從dm9000a 讀出數據放置到緩沖區(qū)里,根據獲収的長度信息,判斷是否讀完一幀。如果讀完,接著讀下 幀,直到遇到首字節(jié)是00h的幀,說明接收數據己讀完。接下來填充sk_buff中的一些 信息,使之成為規(guī)范的sk_buff結構,最后調用netif_rx()w數將接收到的數據傳輸到網絡 協(xié)議的上層。結語該設計成功用于某網絡測試設備的主控模塊上,可以通過以a網接入internet,從而實 現從internet上監(jiān)控嵌入式設備。參考文獻:1. davicom corporation,dm9000a application notes vi.20, 20052. lessandro rubini,jonathan

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論