基于ARM和DM9000的网卡接口设计与实现

发布时间:2010-12-7 21:25    发布者:conniede
关键词: arm , DM9000 , 测试 , 网卡
1 引言

要实现小型嵌入式设备的Internet接入,TCP/IP首先要解决的是底层硬件问题,即协议的物理层。Ethernet具有成熟的技术、低廉的网络产品、丰富的开发工具和技术支持,当现场总线的发展遇到阻碍时,以太网控制网络技术以其明显的优势得到了迅猛的发展,并逐渐形成了现场总线的新标准——Ethernet。考虑到国内局域网大部分是以太网,随着交换式网络、宽带网络的发展,基于以太网的嵌入式设备Internet接入应用有着现实意义。

在现有嵌入式系统中,大多数选用的是10Mb/s的以太网卡,其传输速率慢,已不能再适应现在人们的要求。而其它10/100Mb/s网卡芯片或工艺复杂或成本较高,不适应工业制造。而DM9000是完全综合的、成本较低的单一快速以太网控制器芯片,具有通用的处理器接口。它被设计为低功耗、高处理性能,而其设计又非常简单,所以可以容易的完成不同系统的软件驱动开发。

DM9000——DAVICOM公司的10/100Mb/s自适应以太网芯片。其特点是:支持8位、16位、32位数据总线宽度;寄存器操作简单有效,有成熟的Linux驱动程序支持;3.3V接口电平;成本相当低廉;还可以使用MII接口和PHY芯片连接。

2 DM9000与S3C2410的连接

2.1 硬件整体电路设计

硬件上要完成DM9000与ARM芯片S3C2410三大总线连接,以及DM9000与以太网水晶接头RJ45的连接。基于ARM 嵌入式系统和以太网的接口如图1。


                                  图1 ARM 嵌入式系统与以太网的接口电路示意图

2.2 DM9000与S3C2410连接

实现DM9000与S3C2410连接,必须对两者间的数据、地址、控制三大总线进行连接和转换。S3C2410是32位微处理器,有32根地址线,支持4GB存储空间。其中0—40000000的1G空间被分为8块128M 空间,分别由NGCS0—NGCS7片选。DM9000为16位以太网控制芯片。图2给出了S3C2410与DM9000的连接方法。


                                   图2 S3C2410与DM9000的逻辑连接

对DM9000读写操作,首先对DM9000正确寻址。AEN (地址允许)是输入引脚片选信号。SA4~SA9是地址总线4~9位,当AEN低且SA9和SA8高,而SA7、SA6、SA5、SA4为低时,则DM9000被选中。


                                图3 S3C2410与DM9000的连接电路

DM9000 默认I/0 基地址为300H。CMD 引脚用于设置COMMAND 模式,CMD为高时,选择数据端口。CMD为低时,选地址端口。数据端口和地址端口的地址码由下式决定:

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

DM9000数据端口=高位片选地址+300H+4H

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

实际设计电路如图3所示,其中nWAIT为读写等待信号。由于在S3C2410中以太网卡的中断为9号中断,所以 EINT9_ETHERNET为中断信号。RESET为网卡芯片重启信号。25MHz OSCILLATOR为芯片提供25MHz的工作频率。(在本图中省去了S3C2410芯片)SD0~SD15数据总线与S3C2410的数据总线连接。

3 DM9000驱动程序描述

3.1 驱动程序整体设计

Linux网络驱动程序的体系结构可划分为从上到下依次为网络协议接口、网络设备接口层、提供实际功能的设备驱动功能层以及网络设备媒介层。Linux内核中提供了网络设备接口级别以上层次的代码,所以移植(或编写)特定网络硬件的驱动程序最主要的工作就是完成设备驱动功能层,主要包括数据的接收、发送等控制。在Linux中所有网络都抽象为一个接口,由结构体 net_device来表示网络设备在内核中的运行情况,即网络设备接口。它既包括了网络设备接口,如回环(loopback)设备,也包括了硬件网络设备接口,如以太网卡。

驱动程序运行时,操作系统先调用检测例程以发现安装的网卡,如网卡支持即插即用,检测例程自动发现网卡参数。否则,驱动程序运行前,设置好网卡参数供驱动程序使用。核心发送数据时,调用驱动程序的发送例程。将数据写入空间,再激活物理发送过程。面向物理层接口程序中断处理例程。当网卡接收数据、发送过程结束或出错时,网卡产生中断,核心调用中断处理例程,再判断中断发生原因,并进行处理。

驱动程序流程如图4,分为主程序和中断服务程序,主程序进行DM9000的初始化和网卡检测、网卡参数获取。中断服务程序以程序查询方式识别中断源,完成相应处理。具体分别如图4(a)和(b)。


                                    图4 DM9000驱动程序流程

在整个过程中,首先要通过检测物理设备的硬件特征判断网络物理设备是否存在,然后决定是否启动这个驱动程序。接着会对设备进行资源配置,比如,即插即用的硬件就可在这个时候进行配置;而在本嵌入式平台上,以太网的MAC地址也在这里指定。配置好硬件占用的资源后,就可向系统申请这些资源,如中断、I/O空间等。最后,对结构体net_device相应的成员变量初始化,使得一个网络设备可被系统使用。

数据包的发送和接收是实现Linux网络驱动程序中关键的过程,对这两个过程处理的好坏将直接影响到网络的整体运行质量。驱动程序中并不存在一个接收方法。应由底层驱动程序来通知系统有数据收到。一般情况下,设备收到数据后都会产生一个中断,在中断处理程序中驱动程序申请一块sk_buff(如定义为skb),从硬件读出数据放到申请好的缓冲区中。

4 DM9000驱动程序测试

4.1 测试环境

在调试过程中,可以先建立可下载的镜像文件。在目标板上先烧入vivi。通过vivi将内核映像下载到目标板运行。而网络驱动是属于BSP的一部分所以会在下载地过程中一同写入目标板。

(1)主机环境 主机环境是在Fedora上运行的Linux的集成交叉开发环境及相关的测试用软件。

(2)目标机环境 目标机的硬件环境是要作为海信商机使用的SBC2410A(ARM920T内核)开发板。

由主机和目标机共同组成了网络驱动程序的测试环境,两者通过串口及网线相连,在调试网络驱动之前要通过串口加载程序。加载了程序之后就可以针对以太网接口来进行相关的测试工作。

4.2 硬件测试

当成功的将DM9000网络芯片的驱动程序加载到Linux内核中后,就要对其进行测试。首先,要进行的就是硬件的测试。因为DM9000有4个GPIO端口,这里我们只要对这4个端口进行测试,如果它们能够正常读写,则可说明DM9000网卡应工作在正常状态下。

在测试程序进行编译运后,运行过程中,用万用表分别测量4个所对应引脚的电压,经测试为3.3V,说明该引脚硬件正常,则芯片工作在正常状态下。

4.3 驱动程序测试

测试过程中在目标机上编写基于TCP协议的tcpServer()任务作为测试用程序,其功能是实现最简单TCP服务器端程序。上位机运行相应的Client客户端程序,由两端组成TCP的Client-Sever系统进行网络接口的速度测试和可靠性的测试。

表4-1 测试项目及结果

测试项目
测试方法
测试结果
Ping的响应
连接好测试机与目标机,进行ping命令包测试。
测试结果:
能够成功地响应ping包。
速度测试
可靠性测试
在Client-Sever系统中,进行数据流量测试。在Client-Sever系统中,进行不间断测试。
测试结果:
速度为10.8Mbps;
无丢包现象;误码率0

5 测试结论

通过对网络驱动程序的测试,证明所开发的网络驱动程序实现了所有先期设计功能,并在速度上得到了验证,能够满足大批量数据的传输工作。

传送3个包到202.108.9.39,从202.108.9.39接收3个包,无丢失。

本文创新点

S3C2410A内部没有内嵌的专用网卡控制器,因此在以S3C2410A为硬件平台的嵌入式设备中增设网卡模块,必须自行设计接口电路并进行相应的驱动开发,本文使用SBC2410(ARM920T内核)开发板,作为软硬件运行的硬件平台,设计DM9000快速以太网网卡硬件电路并进行驱动程序的开发与实现。

采用此方案设计的网卡接口电路可应用到多种嵌入式设备中,在税控收款机应用中直接经济效益可达20余万元。
本文地址:https://www.eechina.com/thread-44785-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
axw_bab 发表于 2011-11-29 12:35:53
爱欣文科技有限公司
[了解我们]:爱欣文科技有限公司,长期从事国际最新集成电路(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
LZZ19880228 发表于 2012-12-27 11:38:24
深圳市爱欣文科技是DAVICOM的一级代理商。供应DAVICOM全系列产品DM9000EP DM9161AEP DM9000AEP  DM9000CEP DM9601EP DM9161EP DM9620 DM9621等芯片。原装现货,供货稳定价格优惠,欢迎大家咨询与定购。

新出两款USB 2.0以太网桥接器DM9620/DM9621,主要应用于USB Dongle、家庭迷你音乐站(Docking Station)、便携式多媒体播放器(PMP)和数字电视机上盒(STB)。DM9621及DM9620是针对USB 2.0至10/100Mbps提供的单芯片解决方案。它集成USB 2.0接收器、高速以太网络MAC+PHY+usb接口,支持MII总线,RMII总线,RESEV,USB2.0,在全速的情况下,可以达到480M/s,支持AUTO-mix等功能。 DM9621(LQFP,48pin) ,DM9621/DM9620均已获得WHQL及USB-IF认证,并提供Win 98/Me/2000/XP、VISTA  WIN7 WinCE、Linux和MacOS等版本的驱动程序

①提供完整的开发资料及强大的技术支援,成熟可靠的产品方案.

②芯片的数据手册,原理图,驱动.

③Layoeut(布板指南).

④编程指南.可以提供各种产品方案,由原厂工程师解决各种技术问题。

如需开发资料的朋友,请与我们联系。谢谢   联系人:廖先生
ADD:深圳市南山区高新北区新西路2号东方信息港1栋503室
TEL:0755-86677600
FAX:0755-86677606
Mobile:15899877934
MSN:adan-liao@hotmail.com
QQ:761227397
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表