0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于dm9000ae的s3c2440嵌入式系统的以太网接口设计

ss 作者:工程师谭军 2018-09-11 15:24 次阅读

本文主要是关于dm9000ae的相关介绍,并着重对基于dm9000ae的s3c2440嵌入式系统以太网接口设计进行了详尽的阐述。

dm9000ae

DM9000AE是一款电子产品,存储转发。

主要特性:

* 支持处理器接口类型:字节/字/双字的I/O指令进行内部数据运算。

* 集成10/100M 收发器

* 支持MII/RMII接口。

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

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

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

* 集成4K的双字SRAM

* 支持存储转发和EEPROM芯片ID。

* 支持4个GPIO管脚。

* 可选EEPROM设置。

* 低功耗模式。

* I/O管脚 3.3V--5V兼容。

* 48-pin cmos工艺 LQFP封装。

应用:接口转换,机顶盒,IP phone,监控处理等

产品优势:

与同类产品比较具有以下独特优势:

* LOCAL BUS芯片,DM9000AE其基本特性是 48pin,10/100MLOCAL-BUS interface;工作模式8/16bit

* 2.5/3.5V低功耗;DM9000AE是全球最小颗粒单芯片, 体积小,便于布线制版

* 通过惠普认证AUTO-Midx(支持直接互连自动翻转)TCP/Ip加速(IPV4 check sum offioad

减轻CPU负担,提高整机效能,20nsl/o读写时间

基于dm9000ae的s3c2440嵌入式系统的以太网接口设计

随着微电子技术和计算机技术的发展,嵌入式技术得到广阔的发展,已成为现代工业控制通信类和消费类产品发展的方向。以太网在实时操作、可靠传输、标准统一等方面的卓越性能及其便于安装、维护简单、不受通信距离限制等优点,已经被国内外很多监控、控制领域的研究人员广泛关注,并在实际应用中展露出显着的优势。本文提出了一种基于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低功耗。

基于dm9000ae的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通过总线与处理器相连,中断与处理器外部中断相接。

基于dm9000ae的s3c2440嵌入式系统的以太网接口设计

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

S3C2440A微处理器是一款由Samsung半导体公司为手持设备和各种多用途应用设计,基于ARM920T内核的16/32位RISC的低功耗、高集成度的微处理器,,采用五级流水线和哈佛结构,289脚FBGA封装,。S3C2440在包含ARM920T核的同时,增加了丰富的外围资源,主要包括1个LCD控制器;3个通道的UART;4个通道的DMA;4个具有PWM功能的16位定时/计数器和1个16位内部定时器,支持外部时钟源;8通道的10位ADC;触摸屏、IIC总线、IIS总线、SD卡和MMC卡、摄像头接口;130位通用I/O口和24位外部中断源。

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相连。隔离变压器的主要作用是将嵌入式系统与外部线路相隔离,防止干扰和烧坏元器件,实现带电的插拔功能。

基于dm9000ae的s3c2440嵌入式系统的以太网接口设计

图3 以太网接口电路

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

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

基于dm9000ae的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就此开始工作了。

基于dm9000ae的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协议正常。

结语

关于dm9000ae的相关介绍就到这了,希望通过本文能让你对dm9000ae有更全面的认识。

相关阅读推荐:DM9000A与基带信号处理平台的结合应用

相关阅读推荐:DM9000AE工作原理 以太网接口电路设计

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式系统
    +关注

    关注

    40

    文章

    3431

    浏览量

    128227
  • dm9000ae
    +关注

    关注

    0

    文章

    3

    浏览量

    7424
收藏 人收藏

    评论

    相关推荐

    基于Blackfin处理器和DM9000AE实现嵌入式软件系统的设计

    本方案所选用的基本芯片包括Blackfin处理器ADSP-BF533、以太网控制器DM9000AE等,功能框图如图1所示。
    的头像 发表于 09-03 17:11 2713次阅读
    基于Blackfin处理器和<b class='flag-5'>DM9000AE</b>实现<b class='flag-5'>嵌入式</b>软件<b class='flag-5'>系统</b>的设计

    8051_DM9000AE参考接口电路

    ;8051_DM9000AE参考接口电路</font>,单片机,DM9000A,DM9000AE,DM9000AEP<br
    发表于 05-07 14:18

    S3C2440嵌入式音频系统设计与实现

    设计开发的基于ARM处理器可同时实现网络收音机和MP3播放器功能的嵌入式平台。利用S3C2440芯片的特点,以ARM处理器及其外围模块为硬件平台,采用嵌入式Linux作为操作
    发表于 05-06 09:06

    DM9000A,DM9000C网络接口电路图

    ,照顾了MCU地址空间有限的情况,MCU和DM9000A的软件/硬件设计非常方便。(我在给S3C2440选一款以太网控制,看到DM9000A,确认可以很方便购买,就立即决定用她了。我把
    发表于 04-07 15:29

    基于S3C2440嵌入式Linux操作系统移植

    本帖最后由 qzq378271387 于 2012-8-16 14:36 编辑 基于S3C2440嵌入式Linux操作系统移植
    发表于 08-16 14:35

    嵌入式百兆以太网参考设计-DM9000CIEP-参考设计

    嵌入式百兆以太网参考设计-DM9000CIEP-参考设计工业级的以太网芯片应用,有需要的可以看看。QQ***
    发表于 03-17 17:48

    U-Boot移植DM9000卡分享!

    S3C2440 NAND K9F2G08SDRAMK4S561632 * 2DM90003.Linux: ubuntu 9.10二、
    发表于 07-29 00:06

    以太网接口怎么实现嵌入式系统的网络互连?

    本文介绍了一个基于三星ARM9芯片S3C2440嵌入式系统以太网接口电路设计方案,采用了工业级以太网
    发表于 04-13 08:29

    怎么实现基于嵌入式S3C2440的船舶导航系统设计?

    怎么实现基于嵌入式S3C2440的船舶导航系统设计?
    发表于 05-21 06:19

    怎么实现基于S3C4480X的嵌入式以太网接口设计?

    本文基于最常用的嵌入式处理器S3C44B0X和以太网驱动器RTL8019AS来设计了一款嵌入式以太网接口
    发表于 05-21 06:00

    如何去实现S3C2440嵌入式系统以太网接口设计?

    DM9000AE工作原理是什么?如何去实现S3C2440嵌入式系统以太网接口设计?
    发表于 05-24 07:28

    STM32与S3C2440的区别在哪

    在学习嵌入式的路上,我们可能会接触到这两个比较典型的MCU。其中最大的区别就是S3C2440能跑linux操作系统,常常作为学习嵌入式linux的硬件平台。可能大家会问既然
    发表于 08-06 09:10

    基于S3C2440DM9000AE以太网接口的设计

    的是S3C2440这款通用的嵌入式微处理器上扩展以太网接口的方式,即第二种方式。S3C2440A处理器与
    发表于 11-05 06:30

    以太网接口芯片DM9000A在嵌入式系统中的应用

    以太网接口芯片DM9000A在嵌入式系统中的应用 目前,网络技术在电子产品中的应用越来越广,更多的嵌入
    发表于 12-26 09:42 2805次阅读
    <b class='flag-5'>以太网</b><b class='flag-5'>接口</b>芯片<b class='flag-5'>DM9000</b>A在<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>中的应用

    DM9000AE工作原理 以太网接口电路设计

    限制等优点,已经被国内外很多监控、控制领域的研究人员广泛关注,并在实际应用中展露出显着的优势。本文提出了一种基于DM9000AE网络接口芯片和32位三星ARM9处理器S3C2440嵌入式
    发表于 04-01 11:58 1.3w次阅读
    <b class='flag-5'>DM9000AE</b>工作原理 <b class='flag-5'>以太网</b><b class='flag-5'>接口</b>电路设计