新闻中心

EEPW首页>手机与无线通信>设计应用> 基于DM9000AE的S3C2440嵌入式系统的以太网接口设计

基于DM9000AE的S3C2440嵌入式系统的以太网接口设计

作者: 时间:2012-12-10 来源:网络 收藏


本文引用地址://m.amcfsurvey.com/article/153688.htm

4.jpg
图4 NDIS模型的示意图


在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()等等对进行的一系列初始化操作。然后NIC_DRIVER_OBJECT指向DriverStart(),在DriverStart()中C_DM9000只进行了一个非常简单但最重要的操作就是它在此DeviceEnableInterrupt()启动了中断,接下来就是无休止的等待、接收、发送,DM9000就此开始工作了。

5.jpg
图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芯片的网络方案,在实际应用中该运行稳定,能够十分方便地实现系统的网络互连。由于采用了高性能的工业级控制器,系统通讯快速可靠,具有很高的实时性。在日益普及的今天,此方案能够给那些传统不具备网络通讯能力的设备进行智能化改造,也适用于新型智能仪器仪表和工业自动化系统设备的开发,有着广泛的应用前景。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭