微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 基于ARM和DM9000的网卡接口设计与实现

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

时间:12-07 来源:互联网 点击:


                                    图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余万元。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top