一种usb_3g网卡用户态自动识别与拨号方法和装置的制造方法_2

文档序号:9263619阅读:来源:国知局
rd 语句的功能是挂载硬件设备中的存储设备,例如CF卡。
[0038]然后,执行Isusb命令以获取USB设备信息,包括如下步骤:
[0039]执行命令lsusb〉/cfcard/usbdev,从而将Isusb显示的设备信息以usbdev文件形式保存在挂载的存储设备目录下,进而保存内核探测到的所有USB设备信息。其中,在存储设备目录中,每个USB设备信息包括:设备的总线编号、设备编号、设备的厂商运营代码和产品IDo
[0040]下面对Isusb命令进行说明。在本发明的实施方式中,用户态USB_3G网卡的自动探测使用Isusb的命令,Isusb是一个用来显示系统中所有USB总线设备或连接到该总线上所有设备的工具。一般显示格式如下:
[0041]Bus 001 Device 001:1D ld6b:0002
[0042]Bus 002 Device 002:1D I92ChOOl5 中兴 MF628 WCDMA(联通)
[0043]Bus 002 Device 003:1D 12dl: 1506 华为 EC122 CDMA (电信)
[0044]其中,Bus 002表示USB_3G网卡设备的总线编号,Device 003表示USB_3G网卡设备的设备编号,ID后依次为USB_3G网卡的厂商运营代码和产品ID。
[0045]需要说明的是,USB_3G网卡的厂商运营代码、产品ID都是唯一的,并且根据产品ID即可知道USB_3G网卡的类型,是电信、联通或是移动。其中,厂商运营代码可作为显示信息,产品ID则是用于判断卡类型而拨号需要使用的信息。
[0046]以Bus 002 Device 002:1D 192d: 0015 为例,192d 为中兴的厂商 Vendor Id, 0015为该USB_3G网卡的产品Product Id。
[0047]以 Bus 002 Device 003:1D 12dl: 1506 为例,12dl 为华为的 Vendor Id,1506 为该USB_3G 网卡的产品 Product Id。
[0048]步骤S4,用户态创建全局USB设备信息表,全局USB设备信息表用于存储多个厂商的运营商代码Vendor Id、每个厂商支持的USB_3G网卡的产品代码Product Id和USB_3G网卡的网络类型。在本发明的实施方式中,全局USB设备信息表为全局的二维数组。
[0049]具体地,在用户态创建全局usb_dev_table表格,用于保存多个厂商的厂商Vendor IcU每个厂商已支持的所有USB_3G网卡的产品Product Id及其对应的设备类型(CDMA或WCDMA),以备后续步骤中和用户态探测到的USB_3G网卡信息对比使用。
[0050]步骤S5,用户态创建一个线程,用于自动识别插入的USB_3G网卡类型并自动拨号连接,比较本次全局变量和上次全局变量的值是否相等,如果不等则认为探测到有新的USB_3G网卡插入。
[0051]根据步骤SI中共享内存全局变量在USB初始化函数中累加,即有USB_3G插入时此数值增加,该共享内存值用户态也可见。比较本次全局变量和上次全局变量的值是否相等。
[0052]图2是根据本发明实施方式的探测USB_3G网卡插入的流程图。
[0053]步骤S51,获取本次全局变量和上次全局变量的值。
[0054]步骤S52,判断本次全局变量和上次全局变量的值是否相等,如果相等则执行步骤S54,否则执行步骤S53。
[0055]步骤S53,探测到有新的USB_3G网卡插入。
[0056]当有USB_3G网卡插入时,共享内存的全局变量加一。因此如果本次全局变量和上次全局变量的值不相等,即发生变化,则必然是增加的变化,从而可以判断有新的USB_3G网卡插入。
[0057]步骤S54,不作操作。
[0058]当本次全局变量和上次全局变量的值相等时,则不做任何操作以免损耗系统性會K。
[0059]步骤S6,从存储设备目录中提取USB_3G网卡设备信息,将USB_3G网卡设备信息与全局USB设备信息表进行比对以识别该新插入的USB_3G网卡类型。
[0060]当判断有新的3G网卡插入,则开始自动探测并拨号。具体地,首先在用户态程序中以文件形式open之前保存的/cfcard/pcidev文件,然后从所有USB设备的信息中将USB_3G网卡的设备信息提取出来。通过扫描方式将USB_3G网卡设备信息中的厂商的运营商代码Vendor Id与全局USB设备信息表中的所有厂商的运营商代码Vendor Id进行比对,检测出新插入一个USB_3G网卡的厂商。同时保存USB_3G网卡的设备信息,例如总线编号Bus IcU设备编号Device Id、产品代码Product Id等。
[0061]同时,在全局USB设备信息表中根据产品代码Product Id获取并记录USB_3G网卡对应的设备类型,例如CDMA或WCDMA。
[0062]步骤S7,根据新插入的USB_3G网卡类型和所述pppd可执行文件,控制新插入的USB_3G网卡执行自动拨号连接。
[0063]具体地,根据步骤S6探测到USB_3G网卡类型,通过system下发“pppd callwcdma-connect\cdma_connect”命令实现USB_3G网卡的自动拨号连接。
[0064]根据本发明实施方式的USB_3G网卡用户态自动识别与拨号方法,通过设置标志USB_3G网卡的全局变量,每当探测到新插入的USB_3G网卡则执行加一操作,以及通过比较本次全局变量和上次全局变量的值是否相等,以及将USB_3G网卡设备信息与全局USB设备信息表进行比对以识别,在用户态USB_3G上网卡自动探测3G网卡类型、3G网卡厂商运营代码、3G网卡产品ID以及3G网卡所在USB总线的总线编号、设备编号等信息,并根据探测到内容实现自动拨号连接上网。本发明对于用户态实现USB_3G网卡自动识别与自动拨号,对内核修改小、简单易行。
[0065]图3为根据本发明实施方式的USB_3G网卡用户态自动识别与拨号装置的结构图。
[0066]如图3所示,本发明实施方式的USB_3G网卡用户态自动识别与拨号装置,包括:共享内存操作模块l、pppd可执行文件存储模块2、已探测USB设备信息存储模块3、全局USB设备信息存储模块4、USB_3G网卡识别模块5和自动拨号连接模块6。
[0067]具体地,共享内存操作模块I用于在内核初始化时申请共享内存,并将共享内存的地址赋值给全局变量,全局变量在探测到有插入USB_3G网卡时进行累加操作。
[0068]具体地,以Linux系统为例,共享内存操作模块I在Linux内核初始化时申请一块共享内存,将该共享内存的地址赋值给全局变量。其中,全局变量在USB的初始化函数usb_serial_device_probe函数中进行累加操作。即,共享内存操作模块I每当探测到新插入一个USB_3G网卡时,共享内存的全局变量的值加1,用作用户态扫描探测USB_3G网卡的标志位。
[0069]pppd可执行文件存储模块2用于在预设目录下存储pppd可执行文件,其中pppd命令为USB_3G网卡拨号使用命令。pppd命令自编译pppd开源程序,生成pppd可执行文件并放在预设目录下,以备用户态自动拨号使用。
[0070]在本发明的实施方式中,预设目录可以为/usr/sbin或/usr/bin。
[0071]已探测USB设备信息存储模块3用于修改内核文件,执行Isusb命令以获取USB设备信息,保存内核探测到的所有USB设备信息至存储设备目录。
[0072]其中,已探测USB设备信息存储模块3修改Linux内核/etc/init.d/rcS文件,在该文件中添加两条语句:/bin/mount/dev/sdal/cfcard 和 lsusb>/cfcard/usbdev,其中 /bin/mount/dev/sdal/cfcard语句的功能是挂载硬件设备中的存储设备,例如CF卡。
[0073]然后,已探测USB设备信息存储模块3执行Isusb命令以获取USB设备信息,包括如下步骤:执行命令lsusb>/cfcard/usbdev,从而将Isusb显示的设备信息以usbdev文件形式保存在挂载的存储设备目录下,进而保存内核探测到的所有USB设备信息。其中,在存储设备目录中,每个USB设备信息包括:设备的总线编号、设备编号、设备的厂商运营代码和产品ID。
[0074]下面对lsusb命令进行说明。在本发明的实施方式中,用户态USB_3G网卡的自动探测使用Isusb的命令,Isusb是一个用来显示系统中所有USB总线设备或连接到该总线上所有设备的工具。一般显示格式如下:
[0075]Bus 001 Device 001:1D ld6b:0002
[0076]Bus 002 Device 002:1D I92ChOOl5 中兴 MF628 WCDMA(联通)
[0077]Bus 002 Device 003:1D 12dl: 1506 华为 EC122 CDMA (电信)
[0078]其中,Bus 002表示USB_3G网卡设备的总线编号,Device 003表示USB_3G网卡设备的设备编号,ID后依次为USB_3G网卡的厂商运营代码和产品ID。
[0079]需要说明的是,USB_3G网卡的厂商运营代码、产品ID都是唯一的,并且根据产品ID即可知道USB_3G网卡的类型,是电信、联通或是移动。其中,厂商运营代码可作为显示信息,产品ID则是用于判断卡类型而拨号需要使用的信息。
[0080]以Bus 002 Device 002:1D 192d: 0015 为例,192d 为中兴的厂商 Vendor Id, 0015为该USB_3G网卡的产品Product Id。
[0081]以 Bus
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1