admin管理员组

文章数量:1534391

2024-07-28 作者:

《工业控制计算机}2014年第27卷第5期 ARM7处理器NUC71 0ADN扩充双网口设计 Design of ARM7 Processor NUC71 0ADN Extended Dual Network 朱开建(深圳市拓邦自动化技术有限公司,广东深圳518000) 摘 要 在ARM7处理器NUC710ADN的第一个网口的基础上,利用网口驱动芯片DM9000AEP扩充了第二个网口,使系统 实现双网口通信。给出了硬件设计电路,对DM9000AEP的驱动程序在i ̄Clinux下的移植过程进行了描述,测试结果表明 双网口都能正常可靠的工作,达到了ARM7处理器进行双网通信的功能要求。 关键词:NUC710ADN,DM9000AEP,ARM处理器,网口驱动芯片,网口驱动移植, ̄Clinux Abstract Based on the first ARM7 processor NUC71 0ADN port,using the network interface driver chip DM9000AEP expanded second network interfaces,allowing the system to achieve the dual network communication.Then the hardware design circuit, the DM9000AEP driver under I ̄Clinux transplant process is described in this paper.Test results show that the dual network can be normal and reliable work,achieves the ARM7 processor for network communication function. Keyworde:NUC710ADN.DM9000AEP,ARM processor,network driver chip,network port driver transplantation,i ̄Clinux 在电力自动化领域,智能设备如通信装置、RTU、FTU等装 来操作的。双方的连接主要包括: 置,为了通信可靠经常要求设备具备双网El通信能力。而一款性 1)数据信号线SDD0一SDD15,NUC710ADN采用16位数 价比高的低端、能工作i ̄Clinux操作系统的ARM7处理器,很难 据总线访问DM9000AEP; 找到具备双网口并且其它功能方面又能令人满意的芯片。这就 2)地址线AD2,接到DM90O0AEP的CMD脚上,AD2决 提出了一个问题:如何在一款其它功能还令人满意的性价比高 定访问类型,AD2为低时,访问DM9OO0AEP的地址端口,AD2 的现有的低端ARM7处理器上,在原有一个网口的基础上再扩 为高时,访问DM900OAEP的数据端口; 充出第二个网口。新唐科技ARM7处理器NUC710ADN正是一 3)片选信号,用NUC710ADN的nECS2。程序初始化时,把 款这样的处理器。本文介绍了一种用网口驱动芯片 nECS2初始化为启始地址0X8C00,0000H,这样DM9000AEP DM9000AEP在NUC710ADN上扩充第二个网口电路的方法。 的地址口地址为O×8C00,O000H,数据口地址为0×8C00, 1 芯片介绍 0004H; 1.1新唐科技ARM7处理器NUC710ADN介绍 4)读写和复位信号,DM9000AEP读信号接NUC710ADN的 NUC710ADN是新唐科技(由华邦电子分割,为华邦电子之 nOE,写信号接nWBE0,复位信号接系统复位信号与0X0A00001 1 关系企业)采用32位的ARM7TDMl微处理器核生产的一款 地址D0位的“与”,这样硬件启动时和软件向0X0A000011地 CPU,标准工作频率可达80MHz,具有省电与低成本的优势。丰 址D0位写入O时都能使芯片复位。 富的接口资源和工业级的工作温度,使该芯片很适合用在工业 5)中断信号,DM90OOAEP的中断信号经7404反相后(默 场所。软件上华邦科技已移植了I.tClinux操作系统,并有充分的 认高电乎有效)接NUC710ADN的中断nlRQO输入; 示例程序,可节省项目开发时间。 另外DM90OOAEP的EEDIO、EECS、EECK三脚悬空不 1I2网口驱动芯片DM9000AEP介绍 用,系统启动时,由程序对DM90O0AEP进行配置。 DM9000AEP是台湾联杰国际公司开发生产的一款全集成 3网口驱动的移植 快速以太网MAC控制器,带有一个通用处理器接口、EEPROM 在NUC710ADN与DM9ooOAEP的硬件连接好后,要使 接口和16KB的SRAM(13KB作为接收FIFO,3KB作为发送 DM9000AEP扩充的第二个网口能够工作,还需要移植 FIFO)。采用单电源供电,可兼容3.3V、5V的IO接口电平。 DM9000AEP驱动程序_3 。采用i ̄Clinux操作系统,内核是 DM9000AEP还提供了介质无关的接口,来连接所有提供 iinux一2.4.20.原有网口驱动程序名w90p710一mac.C位于u— 支持介质无关接口功能的家用电话线网络设备或其他收发器。 Clinux-disVlinux-2.4.x/drivers/neV目录下。 DM9000AEP支持8位和16位接口访问其内部存储器,以 我们采用Davicom(联杰国际)公司提供的DM9000AEP 连接不同的处理器。DM9O0OAEP物理协议层接口支持使用 驱动程序dm9ks c:Version 2.03 2005/1O/17,以此为基础做 10MBps和100MBps双绞线。完全符合IEEE802.3u规范。它 驱动程序移植。过程如下: 的自动协调功能将自动完成配置以最大限度地适合其线路带 (1)在dm9ks.C中修改定义和地址 宽。还支持IEEE 802.3x全双工流量控制_2_。这使DM9000AEP 在dm9ks.C程序的开头加入 应用起来简单,可以容易地移植任何系统下的端口驱动程序。 #define CONFIG_ARCH—W90P71 0 2 NUC710ADN扩充DM9000AEP硬件连接设计 #undef MODULE NUC71OADN芯片内部本身集成了一个1OM/1OOM的以 #undef CONFIG_ARCH—MAINSTONE #ifdef CONFIG ARCH—W90P710 太网MAC控制器,但应用还要求用DM9000AEP扩充第二个 #include<asm/io.h> 独立的网口。NUC71 0ADN是把DM9000AEP做为外部存储器 #include<asm/hardware.h> 24 #include<asm/irq.h #endif ARM7处理器NUC710ADN扩充双网口设计 Command:#route add-net 239.0.0.0 netmask 255.0.0.0 eth0 Command:#ifconfig Io 127.0.0.1 _—#define DM9KSMINIO 释define DM9KSMAX_IO —0x8c000000 Command:#route add—host 255.255.255.255 eth0 0x8c000070 然后在超级终端输入下命令配置启动网口二: ifconfig ethl 162.168.9.49 #define DM9K-IRQ #define DM9KRST _INT_nlRQ0 0X0A00001 1 这样DM9000AEP的基地址就变成了0x8c000000,中断 号为nlRQ0,DM9K_RST是用来程序对DM90o0AEP芯片硬件 复位的。 (2)挂载中断 在dm9ks.c文件的static int dmfe_open(struct net_de— 插上两个网口的网线,这时就可分别从两台电脑PING通 该机器了,结果如图1、图2所示: E: ̄)ping 162.168.B.49一t—l l咖P.Ing.1ng 162.168.8.49"ith 10明 bvte8 of data: .Repl9 Fz.om 162.168.8.49: b,t00-lJ98 ttme-2ms TTL=64 Replg from 1.62.168.8.49: bgtes-l ̄t -l:s TTL-64 vice dev)子程序中加入如下语句: (volatile unsigned int )(AIC_SCR2) =0xO0000007;/ 设置 Repl9 Fz,'om 162.168.8.49: bytes-1@g8 time-1ms TTL-64 图1 电脑甲PING网口一圈 NUC710ADN低电平引起中断 |f(request—irq(INT nlRQ0.&dmfe_interrupt.SA_INTERRUPT,dev一> name,dev)) return—EAGAIN; (3)去掉模块定义 在dm9ks.c文件最后用#ifdef MODULE和#endif去掉 模块的相关定义语句以及init_module(void)、cleanup—module (void)两个子程序。 (4)将驱动加入到w90p710_mac.c文件中 将dm9ks.c复制到w90p710_mac.c同一目录下,在 w90p710一mac.c文件中加入 #include dm9ks c 在w90p710_mac.c的int init_module(void)子程序中加入 media_mode=DM9KS_AUTO; dmfe_dev=dmfe—probe1(): if(IS—ERR(dmfe_dev)) return PTR—ERR(dmfe_dev); 在w90p71 0_mac.c的void cleanup_module(void)子程 序中加入 struct net_device dev=dmfe_dev; unregister_netdev(dmfe_dev); release_region(dev->base—addr,2): #if LINUX VERSION—CODE<KERNEL_VERSION(2,5,0) kfree(dev); #else free .netdev(dev); #endif 到此DM9O0QAEP的驱动已经加入到w90p710_mac.c 中,重新编译系统内核,这样在系统启动过程中加载 NUC71OADN的第一个网口驱动时, 同时也加载了 DM9000AEP的第二个网口驱动。系统启动后,用户的应用程序 可对这两个网口进行独立操作。 4网口驱动的测试 将编译好的系统文件和应用文件重新烧录到硬件后重启。 从电脑串口的超级终端可看到下面信息: 01 eth0 initial ok! <DMg000AEP>I/O:8c000000.VID:90000a46 DM9000AEP—.DEV .NAME is ethl 这表明网口一驱动、网口二驱动都已加载上了。网口一驱动 名为eth0,网口二驱动名为eth1。系统启来后,做应用程序初始 化时对网口一的lP和MAC进行了设置如下: Shell invoked to run file:/bin/init Command:#ifconfig eth0 162.168.8.49 netmask 255.255.255.0 Command:#ifconfig eth0 down Command:#ifconfig eth0 hw ether 00:54:a2:A8:08:31 Command:#ifconfig eth0 up E:\)ping 162.168.9.49一t~1 1000 Ptngin9 162.168.,.49 with l0明byte8 of data: Reply EPom 162.168.9.49:bytes"lm ttm-2 ̄3m8 TTL Reply From 162.168.’.49:bgtes"IM time=1ms TTL-64 Reply fpOn 162.168.9.49;bytes"lU ttM一1_0 TTL-64 Reply f,.Dm 162.168.9.49:bytes-1日∞tiM-1ms TTL-64 图2电脑乙PlNG网口二图 在超级终端输入ifconfig可看到两个网口的信息如下: /tmp>ifconfig eth0 Link encaD:Ethernet HWaddr 00:54:A2:A8:08:31 inet addr:162.168.8 49 Bcast:162.168.255.255 Mask: 255.255.255.0 UP BROADCAST RUNNlNG MUL-TICAST MTU:1 500 Metric:1 RX packets:6813 errors:0 dropped:0 overruns:0 frame:0 TX packets:325 errors:0 dropped:0 overruns:0 carrier:O collisions:0 txqueuelen:1 00 Interrupt:1 7 ethl Link encap:Ethernet HWaddr OO:O2:B2:50:O8:A2 inet addr:1 62.1 68.9.49 Bcast:1 62.1 68.255.255 Mask: 255.255.0.0 UP BR0ADCAST RUNNING MUL‘TlCAST MTU:1500 Metric:1 RX packets:7598 errors:0 dropped:0 overruns:0 frame:0 TX packets:541 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txaueuelen:1 00 Interrupt:2 通过上面测试可知两网口都能独立正常工作。 5结束语 该方案已被应用到公司的电力产品设计中,实践证明,采用 该方案扩充的第二个网口,对第一个网口通信和机器其它功能 不会产生附加影响,通信时工作稳定可靠。 参考文献 f 1]W90P71 0CD 1 6/32一BIT ARM MlCROCONTROLL PRODUCT DATA SHEEIT[K].WINBOND ELECTRONlCS CORPORATlON. september 19。2006 Revision B2:6—12 f2]DM9000A Ethernet Controller with Generaf Processor Inter- face DATA SHEET[K].Davicom Semiconductor Inc.March 3, 201 1 FinaI Version:DM9000A—DS—F01:6 [3]孙天泽,袁文菊,张海峰.嵌人式设计及Linux驱动开发指南:基于 ARM9处理器[M].北京:电子工业出版社,2005 [4]郭秋平.基于ARM系统的Linux平台移植研究[D].杭州:浙江大学, 2Oo6 [收稿日期:2013.11.25] 

本文标签: ARM7处理器NUC710ADN扩充双网口设计