当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 讲师博文 > 基于4412的dm9000驱动移植

基于4412的dm9000驱动移植 时间:2018-09-29      来源:未知

1 概述

以太网高速稳定的特性比Wifi无线传输有一定的优势,当无线传输无法满足一些智能设备,需要开发设计以太网模块。Linux支持以太网系统,结合4412开发板,重点学习dm9000驱动的设计与实现。

2 硬件资源分析

2.1 4412开发板以太网方案

UT4412BV02 评估板板载100M/10M 自适应网口,网口芯片采用DM9000芯片。接口采用具有Link / Active 指示灯和隔离变压器的RJ45 插座。如下图所示:

图 2 1 以太网接口图

开发板以太网的硬件连接图如下所示:

图 2 2 硬件连接图

SD[0-15]为数据接口(与PCU的DATA[15:0]对应连接); 

INT为中断信号(与CPU的EINT5接口相连);

地址线ADDR2,由于DM9000的地址信号和数据信号复用,使用CMD引脚来区分它们(CMD为低时数据总线上传输的是地址信号,CMD为高时数据总线上传输的是数据信号)。访问DM9000内部寄存器时,需要先将CMD置为低电平,发出地址信号,然后将CMD置为高电平,读写数据;

其它外围电路控制接口暂不需要驱动配置管理。

2.2 DM9000网卡

DM9000是一款高度集成的、低成本的单片快递以太网MAC控制器,含有通用处理器接口、10M/100M物理层和16kB的SRAM。DM9000的特点:

支持的处理接口类型:以字节/字/双字的I/O指令访问DM9000内部数据。

集成的10M/100M收发器。

支持MII/RMII接口。

支持半双工背压流量控制模式。

IEEE802.3x全双工流量控制模式。

支持远端唤醒和连接状态变化。

集成4KB的双字SRAM。

支持4个GPIO管脚。

低功耗模式。

I/O管脚3.3V和5V兼容。

100-pinCMOS工艺LQFP封装。

3 驱动代码设计

3.1 驱动代码设计

1) 初始化数据结构

define  S5P_PA_DM9000    EXYNOS4_PA_SROM_BANK(3) 

static struct resource smdkv210_dm9000_resources[] = {

[0] = {

.start = S5P_PA_DM9000,

.end = S5P_PA_DM9000 + 0x3,

.flags = IORESOURCE_MEM,

},

[1] = {

.start = S5P_PA_DM9000 + 0x4,

.end = S5P_PA_DM9000 + 0x7,

.flags = IORESOURCE_MEM,

},

[2] = {

.start = IRQ_EINT(5),

.end = IRQ_EINT(5),

.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,

},

};

static struct dm9000_plat_data smdkv210_dm9000_platdata = {

.flags=DM9000_PLATF_16BITONLY|DM9000_PLATF_NO_EEPROM,

.dev_addr = { 0x00, 0x09, 0xc0, 0xff, 0xec, 0x48 },

};

 

struct platform_device smdkv210_dm9000 = {

.name = "dm9000",

.id = -1,

.num_resources = ARRAY_SIZE(smdkv210_dm9000_resources),

.resource = smdkv210_dm9000_resources,

.dev = {.platform_data = &smdkv210_dm9000_platdata,

},

};

3.2 测试驱动

查看以太网口(ifconfig),如下图所示,出现“eth0”设备,则网卡正常加载成功。

将编译好的内核镜像烧写到开发板上,利用PC机进行测试,用网线连接PC和开发板接口,分别设置PC和开发板的IP地址,利用ping命令测试网络可通性,则证明开发板的以太网驱动可行。

具体步骤如下:

1设置开发板的IP地址。

ifconfig eth0 192.168.1.10 netmask 255.255.255.0(设置开发板的IP地址)

2设置PC机的IP地址。

设置PC机的IP地址为192.168.1.11,子网掩码255.255.255.0。

3用网线将开发板与PC机相连。

4测试连通性,在主机上运行ping命令,观察是否丢包及网速。

ping 192.168.1.10

上一篇:define和typedef的区别

下一篇:EXYNOS4412时钟管理单元译文

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部