xielei
驱动牛犊
驱动牛犊
  • 注册日期2003-11-27
  • 最后登录2004-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2042回复:3

这个驱动怎末写?把串口虚拟成网卡行吗?

楼主#
更多 发布于:2003-12-05 17:22
  先把我要做的工作完整的描述一下:
  我现在做的驱动是Modem MASC(Mobitex Asynchronous Serial Communication)driver,Mobitex 是爱立信开发的无线通讯标准,不知大家听说过没有。这个驱动位于数据链路层,在ip层以下,它通过串口上接的专用Modem收发数据,Modem最终通过Mobitex无线网络
收发数据,每个Modem有自己的硬件地址MAN(Mobitex Address Number),就好像网卡的MAC地址一样。所以它没有也不必有IP地址。也就是说我要写的驱动程序不走tcp/ip。
   在Linux 下有一种SOCK_PACKET类型的socket,这种socket是位于数据链路层的,通过把串口虚拟成网卡(通过tty线路规程、网络接口等技术实现),就能和MASC driver通信。当你打开Socket后,然后Bind到的是一个设备名称而不是IP地址。socket包里已经包含了源和目标硬件地址(MAN)。我现在就是想在Windows下实现这个MASC driver,同时又要向上提供一个socket接口,就象Linux下的SOCK_PACKET那样。
   我现在的想法是:在Windows下把串口(COM 口)模拟成网卡。具体描述如下:
   应用程序通过socket接口向网卡驱动传递数据,但数据最终是通过串口发送和接收的,也就是说要在网卡的驱动程序里调用串口的发送函数,串口收到数据后传递给网卡驱动,然后传递给socket接口。
  我的问题是:
  1、SOCK_PACKET怎样在Windows下实现?
  2、我的驱动程序能通过虚拟网卡来实现吗?
  3、Windows下的虚拟网卡是怎样实现的?最好有源码。
  希望各位能指点一二,这几个问题已经困扰我好久了。谢谢各位!
  我的msn: happy_bird2003@hotmail.com 欢迎指教。
笑了
partyd
驱动牛犊
驱动牛犊
  • 注册日期2004-06-23
  • 最后登录2013-01-29
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-10-15 16:19
时间已经过去很久了,估计你也搞定了。不过我还是想谈谈我的看法:windows下的原始套接口要通过编写自己的协议驱动来实现,可以专门定义自己的协议类型来替换IP的(0806),经过滤后就可以用应用程序来访问自己的协议驱动实现数据的收发。
jerry_2002
驱动牛犊
驱动牛犊
  • 注册日期2004-08-04
  • 最后登录2004-10-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-10-22 10:13
我觉得你可以利用PPP协议,将你的IP包从串口直接发送和接受,何必要通过网卡呀
zhangyiwu
驱动牛犊
驱动牛犊
  • 注册日期2004-01-17
  • 最后登录2005-08-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-12-23 23:53
我碰到同样的问题。
只不过串口用用户自定义的链路协议。
在vxworks下,使用ipAttach,即可以将串口驱动与TCP/IP绑定,从而支持SOCKET编程,不知W2000下,如何实现???

PPP是需要两台主机直接交互信息的,可使用中,中间隔着其他设备,又不象MODEM那样透明信道。所以PPP/SLIP以及W2K所提供的串口连接方法都不行。
游客

返回顶部