57

帖子

0

TA的资源

一粒金砂(初级)

41
 
看看就好。
此帖出自WindowsCE论坛
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

42
 
不错!
此帖出自WindowsCE论坛
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

43
 
学习了,感谢各位
此帖出自WindowsCE论坛
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

44
 
淡淡的留个言
此帖出自WindowsCE论坛
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

45
 
不错 牛
此帖出自WindowsCE论坛
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

46
 
学习
此帖出自WindowsCE论坛
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

47
 
学习!
此帖出自WindowsCE论坛
 
 
 

回复

90

帖子

0

TA的资源

一粒金砂(初级)

48
 
虽然调试过wince下的dm9000网卡驱动,但对整体架构还真不是很了解。学习ing
此帖出自WindowsCE论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

49
 
路过。。学习中。。。。
此帖出自WindowsCE论坛
 
 
 

回复

190

帖子

0

TA的资源

一粒金砂(中级)

50
 
关注!
此帖出自WindowsCE论坛
 
 
 

回复

51

帖子

0

TA的资源

一粒金砂(初级)

51
 
ding xia
此帖出自WindowsCE论坛
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

52
 
谢谢各位的关注!
刚才在万方上找了一篇文章,感觉有用,在这里贴出来和大家共享!不过图就没有了,我不会贴,嘿嘿,原谅下,回头有需要的,我可以发给你们。
3.2网络驱动接口的具体实现
实际网络驱动的编写,就是理解wincE下网络驱动程序的构架,然后针对实际的硬件编写代码,实现相应的中间层Miniport Driver接口函数。下面结合利用WinCE5.0内核在脉冲发生器嵌入式主板上移植编写嵌入式CS8900网卡驱动程序的实例,介绍网卡驱动程序Miniport Driver接口的具体实现(由于本驱动的硬件设备是CS8900,所以在函数接口的取名上一律用CS8900代替Miniport Driver)。
3.2.1网络驱动程序的入口函数
DriverEntry,该函数中首先调用NdisMinitializeWrapper函数来通知NDIS Library要注册一个Miniport。然后初始化MINIPORT结构体,所有的Miniport的相关接口函数都会赋到 MINIPORT 结构中, 最后调用NdisMRegisterMiniport来注册Miniport。通过此函数,实现了Miniport Driver接口与NDIS接口的对接。
3.2.2网络设备的初始化接口
Miniportlnitialize, 该函数为调用函数CS8900RegisterAdapter来完成网络设备的初始化,而CS8900RegisterAdapter 又会调用CS8900Initialize,CS8900Initialize函数会相继调用:findCS,查找网络设备;resetCS,重启网络控制器,并设置工作模式为16bit的I/0模式;InitIrq,开启网络控制器的中断;initCS,设置临时的物理地址,为网络控制器设置与嵌入式芯片之间中断的硬件连接,以及总线读写的时序。
此帖出自WindowsCE论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

53
 
3.2.3网络数据包的发送
WinCE网络数据发送的流程:当上层协议驱动要发数据时,调用NdisSend请求NDIS发送数据包,NDIS将会调用紧接其下的中间层驱动的CS8900Send,该函数首先调用NdisQueryPacket,得到需要发送包的数据信息,并拷贝到一个缓冲区暂存,这样做的目的是保证包数据不被丢失。然后调用CS8900RequestTransmit,向网络控制器发送传送数据的请求,最后调用函数CS8900CopyTxFrame完成数据包的发生。
3.2.4网络数据的接收和中断
网络设备的接收数据包时通过中断实现,当网络接口接收到新数据包时,发送完成或者报错误信息及连接状态都会出发中断,通常中断处理程序通过检测硬件状态寄存器判断是哪种情况。
当网络设备有数据到来的时候,将触发中断,相应的中断处理程序接管中断后,将调用Miniport Driver所注册的中断处理例程CS8900Isr,通过读取CS8900的中断寄存器判断是否是接收到数据中断,如果是就调用数据接收函数CS8900ReceiveEvent。Miniport Driver通常在这里把网卡上的数据拷贝到Miniport Driver缓冲区队列中去,出于效率的考虑,Miniport Driver这时可能不会立即通知上层处理新的数据,因为很可能,马上还有随后的新的数据到来,当接收到的包的数量达到一定程度的时候,驱动程序的接收线程会调用函数NdisMIndicateReceivePacket指示新的NDIS新数据的到来。
3.2.5Miniport Driver其他接口
    CS8900Reset,复位硬件网卡;
CS8900Querylnformation,网卡信息查询函数;
CS8900Setlnformation,设置网卡信息函数。
此帖出自WindowsCE论坛
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

54
 
我帮顶。友情支持
此帖出自WindowsCE论坛
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

55
 
此帖出自WindowsCE论坛
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

56
 
关注!
此帖出自WindowsCE论坛
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

57
 

此帖出自WindowsCE论坛
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

58
 
关注
此帖出自WindowsCE论坛
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

59
 
我是帮顶的
此帖出自WindowsCE论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

60
 
我接分的,帮顶一个
此帖出自WindowsCE论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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