以ARM9芯片和S3C2440嵌入式系统为核心的以太网接口电路设计

发布者:JoyfulSpirit最新更新时间:2023-02-01 来源: elecfans关键字:ARM9芯片  S3C2440  嵌入式系统  以太网接口电路 手机看文章 扫描二维码
随时随地手机看文章

1.引言

随着微电子技术和计算机技术的发展,嵌入式技术得到广阔的发展,已成为现代工业控制、通信类和消费类产品发展的方向。以太网在实时操作、可靠传输、标准统一等方面的卓越性能及其便于安装、维护简单、不受通信距离限制等优点,已经被国内外很多监控、控制领域的研究人员广泛关注,并在实际应用中展露出显着的优势。本文提出了一种基于DM9000AE网络接口芯片和32位三星ARM9处理器S3C2440嵌入式系统的以太网接口的设计方案,并在Windows CE操作系统上开发移植了网络驱动程序实现网络的接入。


2. DM9000AE工作原理

2.1 DM9000的主要特性和总体结构

DM9000AE是DEVICOM(台湾联杰国际)研发的一款10/100M快速以太网控制芯片。DM9000AE实现以太网媒体介质访问层(MAC)和物理层( PHY)的功能,包括MAC数据帧的组装/拆分与收发、地址识别、CRC编码/校验、MLT-3编码器、接收噪声抑制、输出脉冲成形、超时重传、链路完整性测试、信号极性检测与纠正等。DM9000AE内部逻辑结构如图1所示。


DM9000AE具有以下主要性能:①48管脚的LQFP封装,管脚少体积小;②支持8/16位数据总线;③适用于10Base-T和100Base-T,10/100M自适应,适应不同的网络速度要求,④内置16KB的SRAM,用于收发缓冲,降低对主处理器的速度要求;⑤支持IP /TCP /UDP加速,减轻了CPU负担,提高网络速度;⑥支持Back pressure半双工流量控制,与IEEE802.3u兼容,支持IEEE802.3x全双工流量控制;⑦20ns响应时间,2.5V/3.3V低功耗。

以ARM9芯片和S3C2440嵌入式系统为核心的以太网接口电路设计

图1 DM9000AE内部逻辑结构


2.2工作原理

DM9000AE可与微处理器以8 bit或16 bit的总线方式连接,并可根据需要以单工或全双工等模式运行。在系统上电时,处理器通过总线配置DM9000AE内部网络控制寄存器 (NCR)、中断寄存器(ISR)等,完成DM9000AE的初始化。随后DM9000A进入数据收发等待状态。


当处理器要向以太网发送数据帧时,先将数据打包成UDP或IP数据包,并通过8 bit或16bit总线逐字节发送到DM9000A的数据发送缓存中,然后将数据长度等信息填充到DM9000AE相应寄存器内,随后发送使能命令,DM9000AE将缓存的数据和数据帧信息进行MAC组帧,并发送出去。


当DM9000AE接收到外部网络送来的以太网数据时,首先检测数据帧的合法性,如果帧头标志有误或存在CRC校验错误,则将该帧数据丢弃,否则将数据帧缓存到内部RAM,并通过中断标志位通知处理器,处理器收到中断后对DM9000AE接收RAM的数据进行处理。

DM9000AE自动检测网络连接情况,根据网速设置内部的数据收发速率为10Mb/s或100 Mb/s.同时,DM9000AE还能根据RJ45接口连接方式改变数据收发引脚的方向,因此无论外部网线是采用对等还是交叉方式,系统均能正常通信。


3.网络接口硬件电路设计

在嵌入式系统中增加以太网接口,通常由如下两种方法实现。第一种方法采用带有以太网接口的嵌入式处理器。这种方法要求嵌入式处理器有通用的网络接口,通常这种处理器是面向网络应用而设计的,通过内部总线的方法实现处理器和网络数据的交换。另一种方法采用嵌入式处理器+网卡芯片结构。这种方法对嵌入式处理器没有特殊要求,只要把以太网芯片连接到嵌入式处理器的总线上即可。此方法通用性强,不受处理器的限制,但是,处理器和网络数据交换通过外部总线交换数据[3].


本设计采用的是S3C2440这款通用的嵌入式微处理器上扩展以太网接口的方式,即第二种方式。S3C2440A处理器与DM9000AE连接的结构如图2所示,DM9000AE通过总线与处理器相连,中断与处理器外部中断相接。

以ARM9芯片和S3C2440嵌入式系统为核心的以太网接口电路设计

图2 S3C2440A处理器与DM9000AE连接的结构


DM9000AE以太网接口电路如图的连接如图3所示。处理器利用片选DM_CS和地址线BADDR分别连接DM9000AE芯片的CS引脚和CMD引脚,S3C2440的数据线BDATA[15:0]与DM9000AE的数据线SD[15:0]连接,用来实现DM9000与S3C2440之间的数据传输;S3C2440的DM_IOR引脚连接DM9000AE的读引脚IOR#,DM_IOW引脚连接DM9000AE的写引脚IOW#;同时,DM9000AE占用S3C2440的中断引脚EINT7,使得S3C2440能够响应DM9000AE的中断。DM9000AE与网络的连接由接收信号线RX+、RX-和发送信号线TX+、TX-通过隔离变压器E-2023与以太网水晶接头RJ_45相连。隔离变压器的主要作用是将嵌入式系统与外部线路相隔离,防止干扰和烧坏元器件,实现带电的插拔功能。

以ARM9芯片和S3C2440嵌入式系统为核心的以太网接口电路设计

图3 以太网接口电路


4.网络接口模块的软件设计

本系统采用Windows CE操作系统,具有强大的网络支持功能,Windows CE支持包括TCP / IP在内的Internet的所有网络协议。Windows CE的网络驱动程序都遵循NDIS(Network Driver Interface SpecificaTIon,网络驱动接口规范),NDIS提供了两个抽象层,用来把网络驱动程序和协议栈相连。NDIS模型的示意图图4所示。

以ARM9芯片和S3C2440嵌入式系统为核心的以太网接口电路设计

图4 NDIS模型的示意图

DM9000AE在windows CE下的驱动程序就是基于这个模型而编写,被编译成动态链接库,以用户态下的DLL文件形式存在。入口函数为DriverEntry()。DM9000驱动的工作流程如图5所示。


NdisMIniTIalizeWrapper()函数的作用是通知NDIS 一个小端口网卡正在被初始化,此函数在ndis.dll中提供。然后对NDIS40_MINIPORT_CHARACTERISTICS结构体变量初始化,主要是设置一些回调函数(MiniporTInitialize(),MiniportReset(),MiniportInterruptHandler(),MiniportISRHandler(),MiniportQueryInformation(),MiniportSetInformation(),MiniportSend()。接着就是通过NdisMRegisterMiniport()函数利用NDIS40_MINIPORT_CHARACTERISTICS这个结构体向NDIS系统进行注册。再接下来就是MiniportInitialize(),在其中有NIC_DRIVER_OBJECT类的初始化,以及该类的EDriverInitialize()函数调用,在此函数中全面展开了dm9000的所有初始化操作。

对DM9000的所有初始化操作的实现在dm9000.cpp文件中,主要也是通过DeviceEntry()这个函数来实现。在DeviceEntry()这个函数中只做了一件事:new了一个C_DM9000类的实例并return.紧接着就是C_DM9000的实例通过DeviceSetDefaultSettings();DeviceSetEepromFormat();DeviceRetriveConfigurations(hconfig);EDeviceValidateConfigurations()等等对DM9000AE进行的一系列初始化操作。然后NIC_DRIVER_OBJECT指向DriverStart(),在DriverStart()中C_DM9000只进行了一个非常简单但最重要的操作就是它在此DeviceEnableInterrupt()启动了中断,接下来就是无休止的等待、接收、发送,DM9000就此开始工作了。

以ARM9芯片和S3C2440嵌入式系统为核心的以太网接口电路设计

图5 DM9000驱动的工作流程

在完成了驱动程序之后,我们还需要在Platform.reg文件中对DM9000的注册表项进行相应的设置:

[HKEY_LOCAL_MACHINECommDM9000]

“DisplayName”=“Crystal DM9000 ISA Ethernet Controller”

“Group”=“NDIS”

“ImagePath”=“DM9000.DLL”

[HKEY_LOCAL_MACHINECommDM9000Linkage]

“Route”=multi_sz:“DM90001”

[HKEY_LOCAL_MACHINECommDM90001Parms]

“BusNumber”=dword:0

“BusType”=dword:0

“InterruptNumber”=dword:3E

“IoBaseAddress”=dword:D3000000

“RxMode”=“PIO”

“NetworkAddress”=“00-01-33-33-33-33”

[HKEY_LOCAL_MACHINECommDM90001ParmsTcpIp]

“EnableDHCP”=dword:0

“DefaultGateway”=“192.168.126.1”

“UseZeroBroadcast”=dword:0

“IpAddress”=“192.168.126.100”

“Subnetmask”=“255.255.255.0”

“DNS”=“192.168.126.1”

[HKEY_LOCAL_MACHINECommTcpipLinkage]

“Bind”=multi_sz: “ppp”, “DM90001”

将设计的模块与本地局域网连通,并分配MAC地址和IP地址,利用PC的ping程序,得到回应,说明ARP、IP、ICMP协议正常。利用自己编写的基于windows的应用程序,向模块发送连接请求,模块返回正确的应答信息,TCP协议正常。


5.结束语

本文详细介绍了基于三星公司ARM9芯片S3C2440嵌入式系统的网络接口设计方案,在实际应用中该系统运行稳定,能够十分方便地实现嵌入式系统的网络互连。由于采用了高性能的工业级以太网控制器DM9000AE,系统通讯快速可靠,具有很高的实时性。在以太网日益普及的今天,此方案能够给那些传统不具备网络通讯能力的嵌入式设备进行智能化改造,也适用于新型智能仪器仪表和工业自动化系统设备的开发,有着广泛的应用前景。

关键字:ARM9芯片  S3C2440  嵌入式系统  以太网接口电路 引用地址:以ARM9芯片和S3C2440嵌入式系统为核心的以太网接口电路设计

上一篇:基于微处理器S3C2440和WinCE嵌入式实时操作系统的视频数据采集
下一篇:一种基于嵌入式系统的全彩LED显示屏脱机播放系统的设计方案浅析

推荐阅读最新更新时间:2024-11-07 20:57

基于μCLinux的USB芯片FT245BL驱动设计
  0 引 言   μClinux是针对嵌入式控制领域的操作系统,它继承了Linux内核的绝大部分特性,专为没有内存管理单元MMU的嵌入式微处理器而设计。它内核小,效率高,源代码开放,包含了完整的TCP/IP网络协议。ADSP-BF533是ADI公司Blackfin系列的高速数字信号处理器芯片。Blackfin系列是ADI与Intel联合开发的体现高性能体系结构的首款第四代DSP产品,16位定点DSP内核,新型指令结构,支持C/C++编程,主频达600 MHz,内核电压1.2 V,具有动态电源管理能力,功耗低,扩展能力强,被广泛应用于各种信号处理。   这里使用基于Blackfin ADSP-BF533微处理器的μClin
[嵌入式]
入门 | S3C2440启动过程分析
S3C2440启动过程算是一个难点,不太容易理解,而对于S3C2440启动过程的理解,影响了后面裸机代码执行流程的分析,从而看出S3C2440启动过程的重要性。 S3C2440启动方式和启动方式选择 在S3C2440的datasheet《S3C2440A_UserManual_Rev13.pdf》中搜索map,可以在第5章中搜索到下图。 从此图中,可以得知 OM = 01,10,Not using NAND flash for boot ROM OM = 00,Using NAND flash for boot ROM 而OM 又是什么呢? 从S3C2440的datasheet《S3C2440A_UserManua
[单片机]
入门 | <font color='red'>S3C2440</font>启动过程分析
基于Linux的嵌入式系统全程喂狗策略
   引 言   在嵌入式系统中,为了使系统在异常情况下能自动恢复,一般都会引入看门狗电路。看门狗电路其实就是一个计数器。当看门狗启动后,计数器开始自动计数,经过一定时间计数器溢出就会对CPU产生一个复位信号使系统重启。系统正常运行时,需要在看门狗允许的时间间隔内对看门狗计数器清零也即喂狗,不让复位信号产生。   当前在带Linux操作系统的嵌入式系统中,由于Linux操作系统加载时间较长(如10~30 s),一般都超过看门狗的时间间隔(典型值为1.6 s);而如果不采取特殊措施,则系统在Linux操作系统加载过程中复位,Linux操作系统永远无法加载成功。为了解决这个问题,通常有两种方案:做一个看门狗的时间间隔更长的硬件
[嵌入式]
S3C2440开发板-LCD基础(源代码)
首先了解TFT LCD的时序,每个VSYNC信号表示一帧数据的开始,每个HSYNC表示一行数据的开始,无论这些数据是否有效,每个VCLK表示正在传输一个像素的数据,无论它是否有效。VSPW称为垂直同步信号的脉宽,VBPD称为垂直同步信号的后肩,VFPD称为垂直同步信号的前肩。HSPW称为水平同步信号的脉宽,HBPD称为水平同步信号的后肩,HFPD称为水平同步信号的前肩。查看时序图,VSYNC信号有效时,表示一帧数据的开始,VSPW表示VSYNC信号的脉冲宽度为(VSPW+1)个HSYNC信号周期,即(VSYNC+1)行,这(VSPW+1)行的数据无效。VSYNC信号脉冲之后,还要经过(VBPD+1)个HSYNC信号周期,有效的行数
[单片机]
<font color='red'>S3C2440</font>开发板-LCD基础(源代码)
汽车电子的嵌入式设计与发展方向
  嵌入式系统是泛计算领域的重要组成部分,是嵌入式对象宿主体系中完成某种特定功能的专用计算机系统。嵌入式系统有体积小、低功耗、集成度高、子系统间能通信融合的优点。随着汽车技术的发展以及微处理器技术的不断进步,在汽车电子技术中得到了广泛应用。目前,从车身控制、底盘控制、发动机管理、主被动安全系统到车载娱乐、信息系统都离不开嵌入式技术的支持。 1 汽车嵌入式系统发展历程   嵌入式系统诞生于微型机时代,经历了漫长的独立发展的单片机道路 。嵌入式系统的核心是嵌入式微处理器。与嵌入式微处理器的发展类似,汽车嵌入式系统也可以分为三个发展阶段:   第一阶段: SCM(Single Chip Microcomputer)系统。以4位和低
[汽车电子]
汽车电子的嵌入式设计与发展方向
利用嵌入式系统与Internet相连接实现Web服务器的应用
嵌入式Internet是指电子设备通过嵌入式模块而非PC直接接入到Internet,与Internet进行信息交互的过程。目前Internet成为全球最大、信息最丰富的互联网络。用户甚至希望家电设备、仪器仪表以及工业生产中的数据采集与控制等设备也能够连接到Internet上,因为这意味着用户可以方便、快捷、低廉地通过网络进行远程控制、监测和信息传送。美国贝尔实验室的科学家预测,未来将会产生比PC时代多成百上千倍的超级嵌入式Internet服务器。Internet技术和嵌入式技术的相互融合,为嵌入式系统的设计和产品开发带来了前所未有的发展空间和机遇。 1 、单片机嵌入式Web应用的硬件系统设计 在硬件系统的设计中,本文采用了AT
[单片机]
利用<font color='red'>嵌入式系统</font>与Internet相连接实现Web服务器的应用
基于WinCE5.0的嵌入式设备休眠唤醒技术研究
    嵌入式系统应用中降低设备功耗以提高续航能力是其设计的热点 。在休眠状态,系统处于最低电流消耗状态,同时仍维持存储区中的内容,为了减少能量消耗和延长电池寿命,需要让处理器定期进入或退出休眠模式 。Windows CE 作为一个广泛应用于嵌入式设备上的操作系统,提供了完善的电源管理功能。其中,休眠唤醒便是一个重要的功能。本文在结合S3C2440硬件基础上分析休眠唤醒过程,分别采用外部中断唤醒和RTC中断唤醒两种方法实现了休眠唤醒,并给出了具体实现代码。根据相应唤醒需求,将这两种方法应用于北京化工大学诊断与自愈工程研究中心的一款基于S3C2440和WindowsCE 5.0的嵌入式智能巡检分析诊断仪,结果表明能准确达到实际的设置
[嵌入式]
FLASH K9F1G08U0M在MSP430F149嵌入式系统中的应用
NAND Flash是采用NAND结构技术的非易失存储器,具有ROM存储器的特点,存储在该芯片中的数据可在断电情况下维持10年不丢失,而芯片的引脚与访问又具有类似于RAM的特点。NAND FLASH 存储器将数据线与地址线复用为8条线,另外还分别提供了命令控制信号线,因此,NAND FLASH 存储器不会因为存储容量的增加而增加引脚数目。从而极大方便了系统设计和产品升级。 1 元件介绍 1.1 MSP430芯片 MSP430系列单片机是TI公司推出的16位RISC系列单片机,该系列是一组超低功耗微控制器,供电电压范围为1.8V—3.6V。考虑到本系统有微体积、低功耗的要求,在此选用MSP430F149,它具有60KB Fla
[单片机]
FLASH K9F1G08U0M在MSP430F149<font color='red'>嵌入式系统</font>中的应用
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved