在Linux系统中通过切换3G数据卡工作模式实现联网的方法

文档序号:6424656阅读:153来源:国知局
专利名称:在Linux系统中通过切换3G数据卡工作模式实现联网的方法
技术领域
本发明属于无线通信技术领域,涉及一种3G数据卡工作模式的转换方法,特别是在Linux系统中通过切换3G数据卡工作模式实现联网的方法。
背景技术
3G数据卡是指应用于电脑并采用第三代移动通信技术接入互联网的设备。根据 3G网络的技术标准3G数据卡分为3类WCDMA数据卡,TD数据卡,CDMA上网卡。3G数据卡是用于通过3G移动通信网络访问hternet的一个设备,跟手机一样,它也需要使用SIM 卡。一般手机也有数据卡的功能,只不过手机多了个语音功能,多了屏幕、键盘等硬件和一些应用软件,可以说数据卡就是把手机简化成一个只有数据通信功能,没有屏幕、没有键盘的一种设备。3G数据卡是作为一种调制解调器来使用的,它把电脑送来的PPP格式的数据信号调制在无线电载波上发送给移动通信网的机站,反过来把接收到的无线信号解调出来还原成PPP数据包传给电脑。目前市面上的3G数据卡以USB接口的居多,都是设计成用于WINDOWS操作系统上面,为了便于用户使用,3G数据卡设计成如下工作方式首先,数据卡刚插进PC时,它表现为一个⑶-ROM设备,并且该⑶-ROM包含一套自动运行、自动安装的软件,该软件包括驱动、 及拨号管理程序等。当这套软件运行并安装后,它能自动识别插进去的3G数据卡,并往该 3G数据卡的USB接口里写入一些特殊的命令,迫使该3G数据卡进行工作模式的切换,转化为一个调制解调器设备,这个调制解调器设备既可以用WINDOWS的拨号程序拨号连接互联网,也可以由上述自动安装的应用程序进行拨号连接。由于种种原因数据卡厂家一般不提供在Linux下的驱动程序,使得数据卡在 Linux环境下应用受到限制。目前在Linux下使用3G数据卡,主要需要完成两方面的工作,一方面是切换3G 数据卡的工作模式,另外一方面是进行PPP拨号。对于切换3G数据卡的工作模式,有一些开源的项目,这类项目都工作于Linux的用户空间,通过usbfs文件系统访问usb接口, 进行切换,并使用内核自带的一个驱动程序作为驱动,经常需要手工给该驱动程序加入新设备的ID号,也就是说需要修改代码才能使用,从而给用户带来麻烦。市场上,厂家推出新 3G数据卡的速度很快,这些开源项目并没有对这些新出3G卡的支持。另外这些项目依赖于桌面Linux的很多功能才能工作,不利于在各类嵌入式Linux系统如用户端设备CPE中的使用。对于进行PPP拨号,则可以使用通用的PPP相关软件进行。

发明内容
本发明为了解决在Linux系统中切换3G数据卡工作模式给用户带来的不便,设计了在Linux系统中通过切换3G数据卡工作模式实现联网的方法,可以很方便地将用于
4WINDOWS系统的3G数据卡在Linux系统下驱动起来,而无需用户进行调试,更不需要对内核的代码进行修改,从而使对Linux、及3G数据卡的特性不了解的用户也可以很方便地在 Linux系统下使用3G数据卡上网。本发明采用的技术方案是在Linux系统中通过切换3G数据卡工作模式实现联网的方法,本方法用于将插入计算机中的3G数据卡的工作模式由CD-ROM状态切换为调制解调器状态以实现联网,关键在于在计算机中增设模式切换管理模块、以虚拟文件作为用户接口的串口驱动程序模块、及第一存储器,收集各种3G数据卡工作模式切换配置信息、并建立索引表,一种3G数据卡对应一条索引记录,每条索引记录中包括索引号、3G数据卡的 PID、VID号、及模式切换所需配置信息,将上述索引表存储于第一存储器中,上述切换3G数据卡工作模式实现联网的方法的详细步骤如下
A、3G数据卡与计算机借助usb口物理连接后,模式切换管理模块接收到3G数据卡的插入信息,继而判断是否具备工作模式切换的条件,如果是,进行步骤B ;如果否,跳至步骤G ;
B、模式切换管理模块从usbfs文件系统中获取插入的3G数据卡的PID、及VID号,再利用上述PID、及VID号作为索引信息从第一存储器中检索3G数据卡对应的模式切换所需切换信息,如果没有检索到,跳至步骤C ;如果检索到对应的切换记录,跳至步骤E ;
C、将3G数据卡进行出仓操作,继而模式切换管理模块判断工作模式切换是否成功,如果否,跳至步骤D ;如果是,跳至步骤G ;
D、依次利用切换配置文件的每条记录中的配置信息进行切换,将第一个能够成功实现工作模式切换的记录中的PID、及VID号用此3G数据卡的PID、及VID号替换,从而生成一个新的切换索引记录,并把该记录存储至第一存储器中,跳至步骤F ;
E、模式切换管理模块通过usbfs文件系统向3G数据卡的usb接口写入所得的配置信息,进行工作模式切换,若切换成功,则跳到F,若切换不成功,跳到H ;
F、模式切换管理模块通过usbfs文件系统获取切换后的3G数据卡的PID,VID信息,并把将所得PID、VID信息写入串口驱动模块的虚拟文件接口中,使得串口驱动模块能够识别已进行工作模式切换后的3G数据卡;
G、若计算机检索到调制解调器,启动相关的拨号程序实现联网;
H、结束、退出工作模式切换流程。本发明的有益效果是本发明所述技术方案解决了 3G数据卡在Linux
环境下使中,切换所述3G数据卡工作模式不方便的问题,根据目前使用情况,所述方案适用市面上所有3G数据卡,做到只要把所述3G数据卡插入运行所述系统硬件的USB接口,所述系统就能够把该数据卡的工作模式由CD-ROM状态切换为调制解调器状态。


图1是本发明方法的流程图。
具体实施例方式
在Linux系统中通过切换3G数据卡工作模式实现联网的方法,本方法用于将插入计算机中的3G数据卡的工作模式由CD-ROM状态切换为调制解调器状态以实现联网,重要的是在计算机中增设模式切换管理模块、以虚拟文件作为用户接口的串口驱动程序模块、
5及第一存储器,收集各种3G数据卡工作模式切换配置信息、并建立索引表,一种3G数据卡对应一条索引记录,每条索引记录中包括索引号、3G数据卡的PID、VID号、及模式切换所需配置信息,将上述索引表存储于第一存储器中,上述切换3G数据卡工作模式实现联网的方法的详细步骤如下
A、3G数据卡与计算机借助usb口物理连接后,模式切换管理模块接收到3G数据卡的插入信息,继而判断是否具备工作模式切换的条件,如果是,进行步骤B ;如果否,跳至步骤G ;
B、模式切换管理模块从usbfs文件系统中获取插入的3G数据卡的PID、及VID号,再利用上述PID、及VID号作为索引信息从第一存储器中检索3G数据卡对应的模式切换所需切换信息,如果没有检索到,跳至步骤C ;如果检索到对应的切换记录,跳至步骤E ;
C、将3G数据卡进行出仓操作,继而模式切换管理模块判断工作模式切换是否成功,如果否,跳至步骤D ;如果是,跳至步骤G ;
D、依次利用切换配置文件的每条记录中的配置信息进行切换,将第一个能够成功实现工作模式切换的记录中的PID、及VID号用此3G数据卡的PID、及VID号替换,从而生成一个新的切换索引记录,并把该记录存储至第一存储器中,跳至步骤F ;
E、模式切换管理模块通过usbfs文件系统向3G数据卡的usb接口写入所得的配置信息,进行工作模式切换,若切换成功,则跳到F,若切换不成功,跳到H ;
F、模式切换管理模块通过usbfs文件系统获取切换后的3G数据卡的PID,VID信息,并把将所得PID、VID信息写入串口驱动模块的虚拟文件接口中,使得串口驱动模块能够识别已进行工作模式切换后的3G数据卡;
G、若计算机检索到调制解调器,启动相关的拨号程序实现联网;
H、结束、退出工作模式切换流程。步骤A中,模式切换管理模块进行是否存在需进行工作模式切换的3G数据卡的判断方法为检测新插入的SB设备是否存在存储类型的接口、或串口类型的接口,如果存在有存储类型的接口、不存在串口类型的接口设备,则表示存在需要进行工作模式切换的3G 数据卡,如果存在有存储类型的接口、同时也存在串口类型的接口,则表示不存在需要进行工作模式切换的3G数据卡。步骤C中,模式切换管理模块进行工作模式切换是否成功的判断方法为检测原来的USB设备是否消失,并且是否出现新的带有串口类型接口的USB设备,如果是,则表示切换不成功,如果否,则表示切换不成功。步骤A中,模式切换管理模块实现接收3G数据卡插入事件的过程如下=Linux的 usb驱动系统检测到3G数据卡插入事件,发送信息通知热插拔处理系统,热插拔处理系统转发信息至模式切换管理模块。所述的第一存储器中存储的索引表是借助WEB接口、或TR069接口完成内容的更新。本发明在具体实施时,首先,为第一存储器中的各种3G数据卡工作模式切换所需的配置信息建立索引表,一种3G数据卡对应一条索引记录,每条索引记录中包括索引号、 3G数据卡的PID、VID号、及模式切换所需配置信息,将上述索引表存储于第一存储器中,备用,另外,上述PID是3G数据卡的产品标识符,VID是3G数据卡的制造商标识符;如果Linux 内核的usb驱动系统检测到有3G数据卡插入事件,通过Linux的netlink socket机制发信息给运行于用户空间的热插拔处理系统,该系统过滤到部分事件,再转发信息给模式切换管理模块,模式切换管理模块对该USB设备的接口类型进行检测,如果检测到存在有存储类型的接口、且不存在串口类型的接口,则表示该3G数据卡工作在CD-ROM状态,需要进行工作模式的切换,如果存在有存储类型的接口、同时也存在串口类型的接口,则表示该3G 数据卡工作在调制解调器的工作状态,无需再进行工作模式的切换,可以直接进行PPP拨号联网。进行工作模式切换的过程为模式切换管理模块从usbfs文件系统中获取3G数据卡的PID、及VID号,再利用上述PID、及VID号作为索引信息从第一存储器中的索引表中检索3G数据卡对应的模式切换所需配置信息,如果没有检索到,将该3G数据卡进行出仓操作,因为大部分3G数据卡都默认支持出仓命令进行工作模式的切换,如果出仓操作都无法成功完成切换,那就尝试采用遍历的方法,即依次用第一存储器中索引表中的每条索引记录中的切换配置信息进行切换,将第一个能够成功实现工作模式切换的索引记录中的PID、 及VID号用此3G数据卡的PID、及VID号替换生成一个新的记录,并把该记录存储至第一存储器中,下次再使用该3G数据卡就可以直接利用该配置信息切换了,因为同一个采用同一个芯片商芯片的3G数据卡的切换过程都是相似的,仅仅是相关的制造商标识符,产品标识符不同,所以我们可以采用遍历,把已知的所有切换方法更换掉相关的标识符后应用于新的3G数据卡上,基本上都能找到一个适用的方法,这个遍历的过程有点久,有时需要要求用户插拔3G数据卡,因此,在具体实现时可以提示用户,要不要进行这一步操作;如果检索到对应的配置记录,模式切换管理模块使用检索到的配置信息记录通过usbfs文件系统向 usb设备发出相关的切换命令,然后通过usbfs文件系统查看具有原来PID,VID的usb设备是否还存在,如果不存在,则查看是否新出现了具有串行接口的新USB设备,如果有这样的设备,表明已经切换成功,然后需要通过usbfs文件系统获取新USB设备的PID,VID及其它所需信息,把这些信息写入串口驱动模块的虚拟文件接口,让所述串口驱动模块驱动该USB设备;拨号软件检索到调制解调器后,就可以启动PPP拨号实现联网。如果系统在网络客户终端设备CPE中使用,则本技术方案提供一个TR069的接口, 和TOB接口用于更新所述的第一存储器中存储的索引表,所述的第一存储器中存储的索引表是借助WEB接口、或TR069接口完成内容的更新。
权利要求
1.在Linux系统中通过切换3G数据卡工作模式实现联网的方法,本方法用于将插入计算机中的3G数据卡的工作模式由CD-ROM状态切换为调制解调器状态以实现联网,其特征在于在计算机中增设模式切换管理模块、以虚拟文件作为用户接口的串口驱动程序模块、 及第一存储器,收集各种3G数据卡工作模式切换配置信息、并建立索引表,一种3G数据卡对应一条索引记录,每条索引记录中包括索引号、3G数据卡的PID、VID号、及模式切换所需配置信息,将上述索引表存储于第一存储器中,上述切换3G数据卡工作模式实现联网的方法的详细步骤如下A、3G数据卡与计算机借助usb口物理连接后,模式切换管理模块接收到3G数据卡的插入信息,继而判断是否具备工作模式切换的条件,如果是,进行步骤B ;如果否,跳至步骤G ;B、模式切换管理模块从usbfs文件系统中获取插入的3G数据卡的PID、及VID号,再利用上述PID、及VID号作为索引信息从第一存储器中检索3G数据卡对应的模式切换所需切换信息,如果没有检索到,跳至步骤C ;如果检索到对应的切换记录,跳至步骤E ;C、将3G数据卡进行出仓操作,继而模式切换管理模块判断工作模式切换是否成功,如果否,跳至步骤D ;如果是,跳至步骤G ;D、依次利用切换配置文件的每条记录中的配置信息进行切换,将第一个能够成功实现工作模式切换的记录中的PID、及VID号用此3G数据卡的PID、及VID号替换,从而生成一个新的切换索引记录,并把该记录存储至第一存储器中,跳至步骤F ;E、模式切换管理模块通过usbfs文件系统向3G数据卡的usb接口写入所得的配置信息,进行工作模式切换,若切换成功,则跳到F,若切换不成功,跳到H ;F、模式切换管理模块通过usbfs文件系统获取切换后的3G数据卡的PID,VID信息,并把将所得PID、VID信息写入串口驱动模块的虚拟文件接口中,使得串口驱动模块能够识别已进行工作模式切换后的3G数据卡;G、若计算机检索到调制解调器,启动相关的拨号程序实现联网;H、结束、退出工作模式切换流程。
2.根据权利要求1所述的在Linux系统中通过切换3G数据卡工作模式实现联网的方法,其特征在于步骤A中,模式切换管理模块进行是否存在需进行工作模式切换的3G数据卡的判断方法为检测新插入的SB设备是否存在存储类型的接口、或串口类型的接口,如果存在有存储类型的接口、不存在串口类型的接口设备,则表示存在需要进行工作模式切换的3G数据卡,如果存在有存储类型的接口、同时也存在串口类型的接口,则表示不存在需要进行工作模式切换的3G数据卡。
3.根据权利要求1所述的在Linux系统中通过切换3G数据卡工作模式实现联网的方法,其特征在于步骤C中,模式切换管理模块进行工作模式切换是否成功的判断方法为 检测原来的USB设备是否消失,并且是否出现新的带有串口类型接口的USB设备,如果是, 则表示切换不成功,如果否,则表示切换不成功。
4.根据权利要求1所述的在Linux系统中通过切换3G数据卡工作模式实现联网的方法,其特征在于步骤A中,模式切换管理模块实现接收3G数据卡插入事件的过程如下 Linux的usb驱动系统检测到3G数据卡插入事件,发送信息通知热插拔处理系统,热插拔处理系统转发信息至模式切换管理模块。
5.根据权利要求1所述的在Linux系统中通过切换3G数据卡工作模式实现联网的方法,其特征在于所述的第一存储器中存储的索引表是借助WEB接口、或TR069接口完成内容的更新。
全文摘要
在Linux系统中通过切换3G数据卡工作模式实现联网的方法,本发明为了解决在Linux系统中切换3G数据卡工作模式给用户带来的不便设计的,本发明方法实现了很方便地将用于WINDOWS系统的3G数据卡在Linux系统下驱动起来,而无需用户进行调试,更不需要对内核的代码进行修改,从而使对Linux、及3G数据卡的特性不了解的用户也可以很方便地在Linux系统下使用3G数据卡上网。
文档编号G06K7/00GK102222207SQ20111013388
公开日2011年10月19日 申请日期2011年5月23日 优先权日2011年5月23日
发明者汪澜, 王志波, 申常扳, 胡祖敏 申请人:深圳市共进电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1