阅读:2041回复:3
这个驱动怎末写?把串口虚拟成网卡行吗?
先把我要做的工作完整的描述一下:
我现在做的驱动是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 欢迎指教。 |
|
|
沙发#
发布于:2004-10-15 16:19
时间已经过去很久了,估计你也搞定了。不过我还是想谈谈我的看法:windows下的原始套接口要通过编写自己的协议驱动来实现,可以专门定义自己的协议类型来替换IP的(0806),经过滤后就可以用应用程序来访问自己的协议驱动实现数据的收发。
|
|
板凳#
发布于:2004-10-22 10:13
我觉得你可以利用PPP协议,将你的IP包从串口直接发送和接受,何必要通过网卡呀
|
|
地板#
发布于:2004-12-23 23:53
我碰到同样的问题。
只不过串口用用户自定义的链路协议。 在vxworks下,使用ipAttach,即可以将串口驱动与TCP/IP绑定,从而支持SOCKET编程,不知W2000下,如何实现??? PPP是需要两台主机直接交互信息的,可使用中,中间隔着其他设备,又不象MODEM那样透明信道。所以PPP/SLIP以及W2K所提供的串口连接方法都不行。 |
|