<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 基于A(yíng)RM和DM9000的網(wǎng)卡接口設計與實(shí)現

基于A(yíng)RM和DM9000的網(wǎng)卡接口設計與實(shí)現

作者: 時(shí)間:2008-07-01 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:針對CPUS3C2410的特點(diǎn),設計開(kāi)發(fā)了外圍接口平臺,通過(guò)驅動(dòng)程序對以太網(wǎng)控制芯片的控制,實(shí)現了網(wǎng)絡(luò )數據傳輸功能。硬件方面主要涉及以太網(wǎng)網(wǎng)絡(luò )接口的設計,軟件方面主要是設計以太網(wǎng)控制芯片驅動(dòng)程序。該嵌入式系統網(wǎng)絡(luò )接入方案具有硬件接口簡(jiǎn)單、外圍器件少、價(jià)格低廉、開(kāi)發(fā)周期短等特點(diǎn)。
關(guān)鍵詞:;;

引言

要實(shí)現小型嵌入式設備的Internet接入,TCP/IP首先要解決的是底層硬件問(wèn)題,即協(xié)議的物理層。Ethernet具有成熟的技術(shù)、低廉的網(wǎng)絡(luò )產(chǎn)品、豐富的開(kāi)發(fā)工具和技術(shù)支持,當現場(chǎng)總線(xiàn)的發(fā)展遇到阻礙時(shí),以太網(wǎng)控制網(wǎng)絡(luò )技術(shù)以其明顯的優(yōu)勢得到了迅猛的發(fā)展,并逐漸形成了現場(chǎng)總線(xiàn)的新標準――Ethernet??紤]到國內局域網(wǎng)大部分是以太網(wǎng),隨著(zhù)交換式網(wǎng)絡(luò )、寬帶網(wǎng)絡(luò )的發(fā)展,基于以太網(wǎng)的嵌入式設備Internet接入應用有著(zhù)現實(shí)意義。

在現有嵌入式系統中,大多數選用的是10Mb/s的以太,其傳輸速率慢,已不能再適應現在人們的要求。而其它10/100Mb/s網(wǎng)卡芯片或工藝復雜或成本較高,不適應工業(yè)制造。而是完全綜合的、成本較低的單一快速以太網(wǎng)控制器芯片,具有通用的處理器接口。它被設計為低功耗、高處理性能,而其設計又非常簡(jiǎn)單,所以可以容易的完成不同系統的軟件驅動(dòng)開(kāi)發(fā)。

DM9000――DAVICOM公司的10/100Mb/s自適應以太網(wǎng)芯片。其特點(diǎn)是:支持8位、16位、32位數據總線(xiàn)寬度;寄存器操作簡(jiǎn)單有效,有成熟的Linux驅動(dòng)程序支持;3.3V接口電平;成本相當低廉;還可以使用MII接口和PHY芯片連接。

1 DM9000與S3C2410的連接

1.1 硬件整體電路設計

硬件上要完成DM9000與芯片S3C2410三大總線(xiàn)連接,以及DM9000與以太網(wǎng)水晶接頭RJ45的連接?;贏(yíng)RM 嵌入式系統和以太網(wǎng)的接口如圖1。

圖1 ARM 嵌入式系統與以太網(wǎng)的接口電路示意圖

1.2 DM9000與S3C2410連接

實(shí)現DM9000與S3C2410連接,必須對兩者間的數據、地址、控制三大總線(xiàn)進(jìn)行連接和轉換。S3C2410是32位微處理器,有32根地址線(xiàn),支持4GB存儲空間。其中0―40000000的1G空間被分為8塊128M 空間,分別由NGCS0―NGCS7片選。DM9000為16位以太網(wǎng)控制芯片。圖2給出了S3C2410與DM9000的連接方法。

圖2 S3C2410與DM9000的邏輯連接

對DM9000讀寫(xiě)操作,首先對DM9000正確尋址。AEN (地址允許)是輸入引腳片選信號。SA4~SA9是地址總線(xiàn)4~9位,當AEN低且SA9和SA8高,而SA7、SA6、SA5、SA4為低時(shí),則DM9000被選中。

圖3 S3C2410與DM9000的連接電路

DM9000 默認I/0 基地址為300H。CMD 引腳用于設置COMMAND 模式,CMD為高時(shí),選擇數據端口。CMD為低時(shí),選地址端口。數據端口和地址端口的地址碼由下式?jīng)Q定:

DM9000地址端口=高位片選地址+300H+0H

DM9000數據端口=高位片選地址+300H+4H

其中,高位片選地址由S3C2410的NGCS3提供,即為:0X100000000H。

實(shí)際設計電路如圖3所示,其中nWAIT為讀寫(xiě)等待信號。由于在S3C2410中以太網(wǎng)卡的中斷為9號中斷,所以 EINT9_ETHERNET為中斷信號。RESET為網(wǎng)卡芯片重啟信號。25MHz OSCILLATOR為芯片提供25MHz的工作頻率。(在本圖中省去了S3C2410芯片)SD0~SD15數據總線(xiàn)與S3C2410的數據總線(xiàn)連接。

2 DM9000驅動(dòng)程序描述

2.1 驅動(dòng)程序整體設計

Linux網(wǎng)絡(luò )驅動(dòng)程序的體系結構可劃分為從上到下依次為網(wǎng)絡(luò )協(xié)議接口、網(wǎng)絡(luò )設備接口層、提供實(shí)際功能的設備驅動(dòng)功能層以及網(wǎng)絡(luò )設備媒介層。Linux內核中提供了網(wǎng)絡(luò )設備接口級別以上層次的代碼,所以移植(或編寫(xiě))特定網(wǎng)絡(luò )硬件的驅動(dòng)程序最主要的工作就是完成設備驅動(dòng)功能層,主要包括數據的接收、發(fā)送等控制。在Linux中所有網(wǎng)絡(luò )都抽象為一個(gè)接口,由結構體 net_device來(lái)表示網(wǎng)絡(luò )設備在內核中的運行情況,即網(wǎng)絡(luò )設備接口。它既包括了網(wǎng)絡(luò )設備接口,如回環(huán)(loopback)設備,也包括了硬件網(wǎng)絡(luò )設備接口,如以太網(wǎng)卡。

驅動(dòng)程序運行時(shí),操作系統先調用檢測例程以發(fā)現安裝的網(wǎng)卡,如網(wǎng)卡支持即插即用,檢測例程自動(dòng)發(fā)現網(wǎng)卡參數。否則,驅動(dòng)程序運行前,設置好網(wǎng)卡參數供驅動(dòng)程序使用。核心發(fā)送數據時(shí),調用驅動(dòng)程序的發(fā)送例程。將數據寫(xiě)入空間,再激活物理發(fā)送過(guò)程。面向物理層接口程序中斷處理例程。當網(wǎng)卡接收數據、發(fā)送過(guò)程結束或出錯時(shí),網(wǎng)卡產(chǎn)生中斷,核心調用中斷處理例程,再判斷中斷發(fā)生原因,并進(jìn)行處理。

驅動(dòng)程序流程如圖4,分為主程序和中斷服務(wù)程序,主程序進(jìn)行DM9000的初始化和網(wǎng)卡檢測、網(wǎng)卡參數獲取。中斷服務(wù)程序以程序查詢(xún)方式識別中斷源,完成相應處理。具體分別如圖4(a)和(b)。

圖4 DM9000驅動(dòng)程序流程

在整個(gè)過(guò)程中,首先要通過(guò)檢測物理設備的硬件特征判斷網(wǎng)絡(luò )物理設備是否存在,然后決定是否啟動(dòng)這個(gè)驅動(dòng)程序。接著(zhù)會(huì )對設備進(jìn)行資源配置,比如,即插即用的硬件就可在這個(gè)時(shí)候進(jìn)行配置;而在本嵌入式平臺上,以太網(wǎng)的MAC地址也在這里指定。配置好硬件占用的資源后,就可向系統申請這些資源,如中斷、I/O空間等。最后,對結構體net_device相應的成員變量初始化,使得一個(gè)網(wǎng)絡(luò )設備可被系統使用。

數據包的發(fā)送和接收是實(shí)現Linux網(wǎng)絡(luò )驅動(dòng)程序中關(guān)鍵的過(guò)程,對這兩個(gè)過(guò)程處理的好壞將直接影響到網(wǎng)絡(luò )的整體運行質(zhì)量。驅動(dòng)程序中并不存在一個(gè)接收方法。應由底層驅動(dòng)程序來(lái)通知系統有數據收到。一般情況下,設備收到數據后都會(huì )產(chǎn)生一個(gè)中斷,在中斷處理程序中驅動(dòng)程序申請一塊sk_buff(如定義為skb),從硬件讀出數據放到申請好的緩沖區中。

3 DM9000驅動(dòng)程序測試

3.1 測試環(huán)境

在調試過(guò)程中,可以先建立可下載的鏡像文件。在目標板上先燒入vivi。通過(guò)vivi將內核映像下載到目標板運行。而網(wǎng)絡(luò )驅動(dòng)是屬于BSP的一部分所以會(huì )在下載地過(guò)程中一同寫(xiě)入目標板。

(1)主機環(huán)境 主機環(huán)境是在Fedora上運行的Linux的集成交叉開(kāi)發(fā)環(huán)境及相關(guān)的測試用軟件。

(2)目標機環(huán)境 目標機的硬件環(huán)境是要作為海信商機使用的SBC2410A(ARM920T內核)開(kāi)發(fā)板。

由主機和目標機共同組成了網(wǎng)絡(luò )驅動(dòng)程序的測試環(huán)境,兩者通過(guò)串口及網(wǎng)線(xiàn)相連,在調試網(wǎng)絡(luò )驅動(dòng)之前要通過(guò)串口加載程序。加載了程序之后就可以針對以太網(wǎng)接口來(lái)進(jìn)行相關(guān)的測試工作。

3.2 硬件測試

當成功的將DM9000網(wǎng)絡(luò )芯片的驅動(dòng)程序加載到Linux內核中后,就要對其進(jìn)行測試。首先,要進(jìn)行的就是硬件的測試。因為DM9000有4個(gè)GPIO端口,這里我們只要對這4個(gè)端口進(jìn)行測試,如果它們能夠正常讀寫(xiě),則可說(shuō)明DM9000網(wǎng)卡應工作在正常狀態(tài)下。

在測試程序進(jìn)行編譯運后,運行過(guò)程中,用萬(wàn)用表分別測量4個(gè)所對應引腳的電壓,經(jīng)測試為3.3V,說(shuō)明該引腳硬件正常,則芯片工作在正常狀態(tài)下。

3.3 驅動(dòng)程序測試

測試過(guò)程中在目標機上編寫(xiě)基于TCP協(xié)議的tcpServer()任務(wù)作為測試用程序,其功能是實(shí)現最簡(jiǎn)單TCP服務(wù)器端程序。上位機運行相應的Client客戶(hù)端程序,由兩端組成TCP的Client-Sever系統進(jìn)行網(wǎng)絡(luò )接口的速度測試和可靠性的測試。

表4-1 測試項目及結果

測試項目

測試方法

測試結果

Ping的響應

連接好測試機與目標機,進(jìn)行ping命令包測試。

測試結果:

能夠成功地響應ping包。

速度測試

可靠性測試

在Client-Sever系統中,進(jìn)行數據流量測試。在Client-Sever系統中,進(jìn)行不間斷測試。

測試結果:

速度為10.8Mbps;

無(wú)丟包現象;誤碼率0

測試結論:通過(guò)對網(wǎng)絡(luò )驅動(dòng)程序的測試,證明所開(kāi)發(fā)的網(wǎng)絡(luò )驅動(dòng)程序實(shí)現了所有先期設計功能,并在速度上得到了驗證,能夠滿(mǎn)足大批量數據的傳輸工作。

傳送3個(gè)包到202.108.9.39,從202.108.9.39接收3個(gè)包,無(wú)丟失。

本文創(chuàng )新點(diǎn):S3C2410A內部沒(méi)有內嵌的專(zhuān)用網(wǎng)卡控制器,因此在以S3C2410A為硬件平臺的嵌入式設備中增設網(wǎng)卡模塊,必須自行設計接口電路并進(jìn)行相應的驅動(dòng)開(kāi)發(fā),本文使用SBC2410(ARM920T內核)開(kāi)發(fā)板,作為軟硬件運行的硬件平臺,設計DM9000快速以太網(wǎng)網(wǎng)卡硬件電路并進(jìn)行驅動(dòng)程序的開(kāi)發(fā)與實(shí)現。

采用此方案設計的網(wǎng)卡接口電路可應用到多種嵌入式設備中,在稅控收款機應用中直接經(jīng)濟效益可達20余萬(wàn)元。

參考文獻

[1]葛立明,范多旺,陳光武.基于A(yíng)RM嵌入式以太網(wǎng)接口設計與實(shí)現[J].微計算機信息,2007,5-2:22

[2]于明,范書(shū)瑞,曾祥燁ARM9嵌入式系統設計與開(kāi)發(fā)教程[M]. 北京:電子工業(yè)出版社,2006

[3]王學(xué)龍. ARM微控制器基礎與實(shí)戰[M]. 北京:北京航空航天大學(xué)出版社,2003

[4]周立功等..嵌入式設計及Linux驅動(dòng)開(kāi)發(fā)指南―基于A(yíng)RM9處理器[M]. 北京:電子工業(yè)出版社,2005.2



關(guān)鍵詞: 9000 ARM DM 網(wǎng)卡

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>