一种接入usb网卡的方法、usb网卡及pc的制作方法

文档序号:8000424阅读:103来源:国知局
一种接入usb网卡的方法、usb网卡及pc的制作方法
【专利摘要】本发明提供一种接入USB网卡的方法、USB网卡及PC,该方法包括:USB网卡接入PC进行上电操作后,根据所述PC的请求,上报设备描述符和配置描述符;所述PC接收并根据所述设备描述符和所述配置描述符选择支持当前操作系统的配置信息,加载与该配置信息对应的设备驱动。通过本发明可以解决上述免驱方案中需要进行文件安装以及模式切换才能接入无线网络的问题,提升用户体验。
【专利说明】-种接入USB网卡的方法、USB网卡及PC

【技术领域】
[0001] 本发明涉及嵌入式【技术领域】,尤其涉及一种接入通用串行总线(Universal Serial BUS,简称USB)网卡的方法、USB网卡及PC。

【背景技术】
[0002] 随着USB技术的不断成熟,USB虚拟网卡以即插即用和热插拔功能成为连接网络 的一种常用方式。USB网卡发展初期,与USB产品一起销售给用户的还有一个光盘,这个光 盘提供了 CM(Connection Manager,连接管理器)软件和驱动程序,驱动程序用于驱动USB 网卡,CM软件提供给用户联网以及短信、电话本等的访问接口。
[0003] 上面这种方式无疑会产生硬件成本,每个USB网卡都要附带一个光盘。因此为了 解决这个弊端,后面采用了 USB虚拟光盘机制。USB网卡首次接入计算机,呈现给用户的是 一个虚拟的光盘,光盘介质中存放有CM安装程序和驱动安装程序,用户安装之后,USB网卡 会进行一次模式切换,切换到正常工作模式,用户可以通过安装的CM软件与USB网卡进行 通信。上面这种方式是目前USB网卡应用最广的一种使用方式,但是这种方式还是会存在 一定的问题,最显著的就是兼容问题和用户体验。
[0004] 兼容问题表现:用户使用的系统有MAC系统以及所有的windows系统,还有可能是 Linux,单针对windows,就有很多黄叹号问题,导致端口无法使用;当然还有很多无端口、 无法联网以及切换失败问题,都与特定的系统有关。用户体验表现:由于要安装CM软件以 及驱动,用户必须要等待一定的时间(数分钟)才能使用该数据卡。
[0005] 针对以上不足,目前研发出了免驱USB网卡。免驱USB网卡实际是借用了 windows 系统和MAC系统以及Linux系统自带的以太网卡驱动的优势,将网卡上报为RNDIS (Remote Network Driver Interface Specification,远程网络驱动接口规范)和 ECM(Ethernet Control Model,以太网控制模型)设备,操作系统中自带了这类设备驱动,从而实现了免 驱。但是对于windows系统来说,RNDIS驱动需要一个引导文件来帮助设备安装驱动,因此 还是需要多出一个安装步骤,涉及到安装,也就少不了虚拟光驱和模式切换,因此上面的免 驱并非真正意义上的免驱。对于MAC和Linux系统,在收到第一条SCSI (Small Computer System Interface,小型计算机系统专用接口)指令的时候判断是否收到OS (Operating System,操作系统)描述符,没有收到0S描述符,那么切换到ECM模式,但是这种切换时间 较晚,必须要加载完成MS (微软)驱动和光驱驱动才行,而且光盘设备会出现然后消失,用 户可以感知到这一变化,用户体验方便不是太好,而且由于有电话本以及短信业务,必须给 用户一些访问接口,所以免驱设备也进行了 CM软件的安装。


【发明内容】

[0006] 本发明要解决的技术问题是提供一种接入USB网卡的方法、USB网卡及PC,以实现 免驱接入无线网络。
[0007] 为了解决上述技术问题,本发明提供了一种接入USB网卡的方法,包括:
[0008] USB网卡接入PC进行上电操作后,根据所述PC的请求,上报设备描述符和配置描 述符;
[0009] 所述PC接收并根据所述设备描述符和所述配置描述符选择支持当前操作系统的 配置信息,加载与该配置信息对应的设备驱动。
[0010] 进一步地,上述方法还具有下面特点:所述PC根据所述设备描述符和所述配置描 述符选择支持当前操作系统的配置信息,加载与该配置信息对应的设备驱动,包括:
[0011] 如所述PC当前操作系统为windows系统,贝U所述PC向所述USB网卡发送索要支 持windows系统的配置请求;
[0012] 所述USB网卡向所述PC上报支持windows系统的配置信息;
[0013] 所述PC从所述配置信息中获取字串描述符后,向所述USB网卡下发获取微软扩展 属性特征描述符的请求;
[0014] 所述USB网卡接收到所述请求后向所述PC上报微软扩展属性特征描述符;
[0015] 所述PC接收到所述微软扩展属性特征描述符后,根据所述微软扩展属性特征描 述符加载对应的设备驱动。
[0016] 进一步地,上述方法还具有下面特点:所述支持windows系统的配置信息包括以 下任一种:
[0017] 远程网络驱动接口规范配置信息、只读光盘配置信息和人机接口设备配置信息。
[0018] 进一步地,上述方法还具有下面特点:所述微软扩展属性特征描述符包括:
[0019] 扩展兼容ID特征描述符和扩展属性特征描述符。
[0020] 进一步地,上述方法还具有下面特点:所述PC根据所述设备描述符和所述配置描 述符选择支持当前操作系统的配置,加载与该配置对应的设备驱动,包括:
[0021] 如所述PC当前操作系统为非windows系统,则所述PC向所述USB网卡发送索要 支持非windows系统的配置的请求;
[0022] 所述USB网卡向所述PC上报支持非windows系统的配置信息;
[0023] 所述PC加载与该配置信息对应的设备驱动。
[0024] 进一步地,上述方法还具有下面特点:所述非windows系统的配置信息包括:
[0025] 以太网控制模型设备配置信息。
[0026] 为了解决上述问题,本发明还提供了一种USB网卡,其中,包括:
[0027] 数据存储模块,用于存储硬件厂商设备信息,其中包括多套配置信息以和描述符 信息;
[0028] 信息上报模块,用于接入PC进行上电操作后,根据所述PC的请求,上报设备描述 符和配置描述符。
[0029] 进一步地,上述USB网卡还具有下面特点:
[0030] 所述信息上报模块,还用于接收到所述PC发送的索要支持windows系统的配置请 求后,向所述PC上报支持windows系统的配置信息;接收到所述PC下发获取微软扩展属性 特征描述符的请求后,向所述PC上报微软扩展属性特征描述符。
[0031] 进一步地,上述USB网卡还具有下面特点:
[0032] 所述支持windows系统的配置信息包括以下任一种:
[0033] 远程网络驱动接口规范配置信息、只读光盘配置信息和人机接口设备配置信息,
[0034] 所述微软扩展属性特征描述符包括:
[0035] 扩展兼容ID特征描述符和扩展属性特征描述符。
[0036] 进一步地,上述USB网卡还具有下面特点:
[0037] 所述信息上报模块,还用于接收到所述PC发送的索要支持非windows系统的配置 请求后,向所述PC上报支持非windows系统的配置信息。
[0038] 进一步地,上述USB网卡还具有下面特点:所述非windows系统的配置信息包括:
[0039] 以太网控制模型设备配置信息。
[0040] 为了解决上述问题,本发明还提供了一种个人电脑,其中,包括:
[0041] 数据接收模块,用于接收并根据所述设备描述符和所述配置描述符选择支持当前 操作系统的配置信息;
[0042] 加载模块,用于加载与该配置信息对应的设备驱动。
[0043] 在一优选实施例中,所述数据接收模块,具体用于当操作系统为windows系统,则 向USB网卡发送索要支持windows系统的配置请求,接收所述USB网卡上报的支持windows 系统的配置信息,从所述配置信息中获取字串描述符后,向所述USB网卡下发获取微软扩 展属性特征描述符的请求,接收所述USB网卡上报的微软扩展属性特征描述符;
[0044] 所述加载模块,具体用于根据所述微软扩展属性特征描述符加载对应的设备驱 动。
[0045] 在一优选实施例中,所述数据接收模块,具体用于当操作系统为非windows系统, 则向USB网卡发送索要支持非windows系统的配置请求后,接收所述USB网卡上报的支持 非windows系统的配置信息;
[0046] 所述加载模块,具体用于加载与该配置信息对应的设备驱动。
[0047] 综上,本发明提供一种接入USB网卡的方法、USB网卡及PC,可以解决上述免驱方 案中需要进行文件安装以及模式切换才能接入无线网络的问题,提升用户体验。

【专利附图】

【附图说明】
[0048] 图1是本发明实施例的接入USB网卡的系统的示意图;
[0049] 图2为本发明实施例的接入USB网卡的方法的流程图;
[0050] 图3是本发明一具体实施例的接入USB网卡的方法的流程图。

【具体实施方式】
[0051] 为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明 的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中 的特征可以相互任意组合。
[0052] 图1是本发明实施例的接入USB网卡的系统的示意图,本实施例的系统包括:USB 设备侧(即USB网卡)和PC,其中,
[0053] USB网卡包含两个模块:信息上报模块和数据存储模块,其中,
[0054] 数据存储模块负责硬件厂商设备信息的存储,其中包括设备硬件厂商信息、多套 配置信息以及特性描述符信息;
[0055] 信息上报模块负责与PC打交道,当PC侧发送USB控制请求给USB设备侧,信息上 报模块从数据存储模块读取对应的数据,回复给PC。
[0056] 具体地,信息上报模块,可以用于接入PC进行上电操作后,根据所述PC的请求,上 报设备描述符和配置描述符。
[0057] 所述信息上报模块,还可以用于接收到所述PC发送的索要支持windows系统的配 置请求后,向所述PC上报支持windows系统的配置信息;接收到所述PC下发获取微软扩展 属性特征描述符的请求后,向所述PC上报微软扩展属性特征描述符。
[0058] 所述信息上报模块,还可以用于接收到所述PC发送的索要支持非windows系统的 配置请求后,向所述PC上报支持非windows系统的配置信息。
[0059] PC侧可以包含两个功能模块:数据接收模块和加载模块,其中,
[0060] 数据接收模块负责与USB设备侧的信息上报模块通信,USB侧上报的信息被存储 在数据接收模块;
[0061] 加载模块提供了一种特殊的机制,可以通过修改注册表中的键值,可以将接收到 的数据放置到指定的位置。
[0062] 在一优选实施例中,所述数据接收模块,具体可以用于当操作系统为windows系 统,则向USB网卡发送索要支持windows系统的配置请求,接收所述USB网卡上报的支持 windows系统的配置信息,从所述配置信息中获取字串描述符后,向所述USB网卡下发获取 微软扩展属性特征描述符的请求,接收所述USB网卡上报的微软扩展属性特征描述符; [0063] 所述加载模块,具体可以用于根据所述微软扩展属性特征描述符加载对应的设备 驱动。
[0064] 在一优选实施例中,所述数据接收模块,具体用于当操作系统为非windows系统, 则向USB网卡发送索要支持非windows系统的配置请求后,接收所述USB网卡上报的支持 非windows系统的配置信息;
[0065] 所述加载模块,具体用于加载与该配置信息对应的设备驱动。
[0066] 图2为本发明实施例的接入USB网卡的方法的流程图,如图2所示,本实施例的方 法可以包括:
[0067] S11、USB网卡接入PC进行上电操作后,根据所述PC的请求,上报设备描述符和配 置描述符;
[0068] S12、所述PC接收并根据所述设备描述符和所述配置描述符选择支持当前操作系 统的配置信息,加载与该配置信息对应的设备驱动。
[0069] 这样,通过本发明实施例的方法可以实现免驱接入无线网络。
[0070] 图3是本发明一具体实施例的接入USB网卡的方法的流程图,如图3所示,可以包 括以下步骤:
[0071] 步骤101,首先USB网卡接入PC,进行上电操作。
[0072] 步骤102, USB网卡接收到PC发送的获取描述符的请求,进行设备描述符的上报, 其中设备描述符的最后一位代表设置为配置描述符的个数。
[0073] 设备描述符用来描述USB设备的总体信息,例如设备所属的设备类、子类信息,供 应商信息以及设备所支持的配置数,配置描述符描述了此配置所支持的接口个数以及配置 值。
[0074] 步骤103,PC发送获取配置描述符的USB请求,USB网卡进行多套配置描述符的上 报。
[0075] 对于windows系统来说,微软0S描述符为IHV(独立硬件厂商)提供了一种在设 备固件中存储被称为0S特征描述符的描述各种厂商特定信息的方法。对于实现新特征类 型的设备经常是还没有分到合适的类和子类码,IHV可以通过在固件中将信息存储为扩展 兼容ID (标识符)0S特征描述符的方式来回避此问题。然后微软就可以在USB设备插入时 获取到这个信息,并利用其帮助确定要加载哪个默认驱动。对于厂商需要提供给0S的额外 的一些信息或属性,可以存储在扩展属性0S特征描述符中。
[0076] 因此对于Windows系统,USB网卡首先要选择自己需要实现为何种设备类型,可以 直接将自身上报为RNDIS设备或者CDR0M或者HID (人机接口设备)设备类型,前提是微软 系统中自带了这些设备的驱动。
[0077] 本实施例的USB网卡需要支持微软0S描述符(0S字串描述符和0S特征描述符)。 0S字串描述符被存储在字符串索引ΟχΕΕ位置。USB网卡在0S获取字串描述符时通过上报 非零的bMS_Vend 〇rC〇de (这是描述符当中的一个字段,是各个厂商定义的编码,提供给微 软操作系统识别用的)并且满足微软对0S字串描述符的定义,那么操作系统就会进一步下 发0S特征描述符。
[0078] 本实施例支持两种特征描述符,扩展兼容ID特征描述符和扩展属性特征描述符。 0S特征描述符可以携带最长为16Mb大小的数据,这个大小足可以放置那些硬件厂商想要 提供的任何一些数据信息。扩展兼容ID特性描述符用来帮助0S找到兼容的系统驱动,扩 展属性描述符用来进行一些特殊信息的存储,例如UI (用户界面)文件、快捷方式等。
[0079] 如果设备要提供的数据长度大于一个USB请求所可以获取的最大长度64K,那么 操作系统会自动读取剩余的部分。
[0080] 对于windows系统,包括以下步骤:
[0081] 步骤104. 1,windows系统不支持多套配置,所以仅仅索要第一套配置,也就是 RNDIS配置信息,或者其他操作系统可以提供驱动的设备类型。
[0082] PC机发送获取配置描述符请求来索要,USB网卡将RNDIS配置信息返回给PC机。
[0083] 对于XP以上的windows系统,RNDIS驱动均为系统驱动,只要提供正确的特性描 述符,驱动就可以自动加载,符合本实施例的免驱宗旨。XP系统由于有一些漏洞,RNDIS驱 动不能自动加载,本实施例的设备侧提供了特殊的扩展属性描述符,可以将inf文件(驱动 的索引文件)和其他信息拷贝到指定目录,因此也可以做到免驱。
[0084] 步骤104. 2, USB网卡的驱动层进行RNDIS配置信息或⑶ROM(只读光盘)配置信 息或HID (人机接口设备)配置信息的上报,配置信息中包含一个通信接口和一个设备接 口,另外还包括必要的功能描述符。
[0085] 步骤104. 3, PC获取ΟχΕΕ位置的字串描述符,将bMS_VendorCode值写到注册表 中,进而操作系统会下发GET_MS_DESCRIPT0R (获取微软扩展属性特征描述符)。
[0086] USB网卡的驱动层随即上报特性描述符,如果USB网卡设备侧缓冲区中存放的数 据长度大于一个字节的最大十六进制数OxFF,操作系统会不断去读取剩余的数据,直到最 后的数据长度小于OxFF。
[0087] 步骤104. 4,对于USB网卡上报的特性描述符,扩展兼容ID用于指导操作系统加载 对应的设备驱动,扩展属性特性描述符的每个属性区段,都可以指导操作系统做一系列的 动作,例如,存储信息到制定的位置,创建快捷方式,修改注册表等,这一系列的动作可以完 成web Π 和PC Π 的安装,
[0088] PC的操作系统和USB设备完成剩余的信息交互后,转步骤106。
[0089] 操作系统通过微软0S描述符的机制将需要安装的Π 以及其他信息传输到PC (个 人电脑)侦彳指定的位置,这样就实现了在USB设备上报过程中Π 和其他安装信息的自动安 装,不用多余的虚拟光盘设备的上报和模式切换过程,大大提高了用户体验,减少了兼容问 题的发生。
[0090] 对于非windows系统,例如MAC系统和Linux系统,不支持微软描述符,但是支持 多配置,所谓多配置就是USB网卡设备可以配置为两种工作模式,具体在设备描述符和配 置描述符中体现。
[0091] 首先,设备描述符中的bNumConfigurations (配置描述符个数,是描述符的一个 字段)的值需要置为设备所能支持的设备个数,设备将第一套配置和第二套配置存储在 USB协议栈中,第一套配置为支持windows系统的RNDIS端口模式,第二套配置为支持非 windows系统的ECM模式。
[0092] 操作系统获得两套配置之后,会对第一套配置信息进行识别,如果没有匹配的系 统驱动,那么检查第二套配置,如果有匹配的系统驱动,那么就会使用第二套配置。
[0093] 这样就避免了从光盘设备到ECM设备或者利用微软描述符判断操作系统之后才 进行端口切换的弊端,可以在最短的时间内完成端口的上报和驱动的加载。
[0094] 对于非windows系统,相对windows来说更加简单,可以包括以下步骤:
[0095] 步骤105. 1,非windows系统会根据设备描述符上报的配置描述符的个数,逐个索 要。
[0096] 然后对USB网卡设备提供的多个配置描述符进行模式匹配,如果有相应的驱动, 那么加载上对应的系统驱动,如果没有,那么不进行安装。
[0097] 本实施例提供了两套配置,一套用于windows系统,是RNDIS设备,一套是非 windows系统,为ECM+光盘的复合设备。
[0098] 非windows系统会自动选择第二套配置。
[0099] 步骤105. 2, USB设备再次进行ECM和光盘复合设备的上报。
[0100] 非windows系统会对多套配置逐个索要,USB设备根据系统索要的配置描述符索 引进行上报。
[0101] 上报为ECM+光盘主要是为了在光盘设备中放置一些软件,可以让用户更方便的 使用数据卡的一些功能,例如电话本,短信等等。当然如果只单纯上网的话,上报单ECM设 备也可以,设备侧只要设置为连上PC机之后自动联网即可。
[0102] PC接收到上报后,根据系统中是否有对应几套配置的驱动信息来选择使用哪个配 置。由于非windows系统不支持RNDIS驱动,所以PC机自动加载ECM和光盘设备驱动,之 后用户可以根据自己的需要完成光盘内软件的安装,进行联网操作。
[0103] 步骤106,完成整个枚举流程,USB网卡准备就绪,进入正常工作模式。
[0104] 对于上述实施例中提到的RNDIS设备和ECM设备,可以转换为其他系统提供驱动 的其他设备类型。
[0105] 此具体实施方法,包括但不限于使用RNDIS、ECM设备、微软的扩展属性特征描述 符,类似技术均在本发明的包含范围之内。
[0106] 本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令 相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘 等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应 地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的 形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
[0107] 以上仅为本发明的优选实施例,当然,本发明还可有其他多种实施例,在不背离本 发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变 和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
【权利要求】
1. 一种接入USB网卡的方法,包括: USB网卡接入PC进行上电操作后,根据所述PC的请求,上报设备描述符和配置描述 符; 所述PC接收并根据所述设备描述符和所述配置描述符选择支持当前操作系统的配置 信息,加载与该配置信息对应的设备驱动。
2. 如权利要求1所述的方法,其特征在于:所述PC根据所述设备描述符和所述配置描 述符选择支持当前操作系统的配置信息,加载与该配置信息对应的设备驱动,包括: 如所述PC当前操作系统为windows系统,则所述PC向所述USB网卡发送索要支持 windows系统的配置请求; 所述USB网卡向所述PC上报支持windows系统的配置信息; 所述PC从所述配置信息中获取字串描述符后,向所述USB网卡下发获取微软扩展属性 特征描述符的请求; 所述USB网卡接收到所述请求后向所述PC上报微软扩展属性特征描述符; 所述PC接收到所述微软扩展属性特征描述符后,根据所述微软扩展属性特征描述符 加载对应的设备驱动。
3. 如权利要求2所述的方法,其特征在于:所述支持windows系统的配置信息包括以 下任一种: 远程网络驱动接口规范配置信息、只读光盘配置信息和人机接口设备配置信息。
4. 如权利要求2所述的方法,其特征在于:所述微软扩展属性特征描述符包括: 扩展兼容ID特征描述符和扩展属性特征描述符。
5. 如权利要求1所述的方法,其特征在于:所述PC根据所述设备描述符和所述配置描 述符选择支持当前操作系统的配置,加载与该配置对应的设备驱动,包括: 如所述PC当前操作系统为非windows系统,则所述PC向所述USB网卡发送索要支持 非windows系统的配置的请求; 所述USB网卡向所述PC上报支持非windows系统的配置信息; 所述PC加载与该配置信息对应的设备驱动。
6. 如权利要求5所述的方法,其特征在于:所述非windows系统的配置信息包括: 以太网控制模型设备配置信息。
7. -种USB网卡,其特征在于,包括: 数据存储模块,用于存储硬件厂商设备信息,其中包括多套配置信息以和描述符信 息; 信息上报模块,用于接入PC进行上电操作后,根据所述PC的请求,上报设备描述符和 配置描述符。
8. 如权利要求7所述的USB网卡,其特征在于: 所述信息上报模块,还用于接收到所述PC发送的索要支持windows系统的配置请求 后,向所述PC上报支持windows系统的配置信息;接收到所述PC下发获取微软扩展属性特 征描述符的请求后,向所述PC上报微软扩展属性特征描述符。
9. 如权利要求8所述的USB网卡,其特征在于: 所述支持windows系统的配置信息包括以下任一种: 远程网络驱动接口规范配置信息、只读光盘配置信息和人机接口设备配置信息, 所述微软扩展属性特征描述符包括: 扩展兼容ID特征描述符和扩展属性特征描述符。
10. 如权利要求7所述的USB网卡,其特征在于: 所述信息上报模块,还用于接收到所述PC发送的索要支持非windows系统的配置请求 后,向所述PC上报支持非windows系统的配置信息。
11. 如权利要求10所述的USB网卡,其特征在于:所述非windows系统的配置信息包 括: 以太网控制模型设备配置信息。
12. -种个人电脑,其特征在于,包括: 数据接收模块,用于接收并根据所述设备描述符和所述配置描述符选择支持当前操作 系统的配置信息; 加载模块,用于加载与该配置信息对应的设备驱动。
13. 如权利要求12所述的个人电脑,其特征在于: 所述数据接收模块,具体用于当操作系统为windows系统,则向USB网卡发送索要支 持windows系统的配置请求,接收所述USB网卡上报的支持windows系统的配置信息,从所 述配置信息中获取字串描述符后,向所述USB网卡下发获取微软扩展属性特征描述符的请 求,接收所述USB网卡上报的微软扩展属性特征描述符; 所述加载模块,具体用于根据所述微软扩展属性特征描述符加载对应的设备驱动。
14. 如权利要求12所述的个人电脑,其特征在于: 所述数据接收模块,具体用于当操作系统为非windows系统,则向USB网卡发送索要支 持非windows系统的配置请求后,接收所述USB网卡上报的支持非windows系统的配置信 息; 所述加载模块,具体用于加载与该配置信息对应的设备驱动。
【文档编号】H04L12/02GK104216728SQ201310219834
【公开日】2014年12月17日 申请日期:2013年6月3日 优先权日:2013年6月3日
【发明者】卢翠玲, 邓庆田, 马少峰, 张楠 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1