具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,数据卡的运行可划分为两个阶段:导入(boot)阶段和网络接入阶段,类似PC的BIOS阶段和正常的windows阶段。数据卡插入终端上电后进入boot阶段,在boot阶段完成数据卡开机启动模块(如flash)的初始化,之后进入网络接入阶段。数据卡使用ARM(Advanced RISCMachines),上电后从默认执行的初始地址开始进入boot阶段,boot阶段做一些开机启动模块的初始化,如内存、flash、电源管理芯片等,每一个模块的初始化过程至少对应一个初始化函数,在boot阶段会一个初始化函数一个初始化函数地执行,如:
SDRAM_init()->flash_init()->PMIC_init()...
在数据卡中,只有如内存、flash、电源管理芯片等这些模块初始化后,数据卡才能进行后续模块的运行,内存模块如果不初始化,就无法使用内存,flash不初始化,就无法读取flash中的配置参数,电源不初始化,就无法对其他模块如SIM卡进行供电。当执行完成boot阶段所有的函数后,跳转到网络接入阶段的函数入口,开始进入网络接入阶段。
在网络接入阶段,先进行射频模块等用户应用模块的初始化,之后数据卡向终端(如PC)上报为大容量(Mass Storage)设备,接着PC向大容量设备下发SCSI(Small Computer System Interface,小型计算机系统接口)命令,获取大容量设备的配置信息,数据卡向PC应答为光驱设备的配置信息,PC为数据卡匹配安装光盘驱动程序后,PC会周期下发查询的SCSI命令TEST UNIT READY(0x00),数据卡返回执行失败的状态,PC会紧接着下发命令REQUEST SENSE(0x03),查询当前光驱设备的状态,数据卡收到REQUEST SENSE后响应MEDIA CHANGED状态,从而产生了PC与光驱在光盘插入时的SCSI命令的交互过程,数据卡在FLASH中存放了数据安装光盘的镜像,供PC读取,从PC的角度看,数据卡就与一个光驱插入了光盘一样,该光盘的内容与数据卡的安装光盘一样,具有安装程序,并且AUTORUN.ini中指定了运行数据卡的安装程序。在Windows系统下,当光盘插入光驱时,PC会执行通过光盘中AUTORUN.ini指定的运行文件。通过上述过程,实现了数据卡驱动程序和应用程序的自动安装。安装完成之后,通过安装程序或安装的应用程序下发端口切换命令,通知数据卡将端口从光盘模式切换到网络接入模式,数据卡在内存中保存该端口切换命令。数据卡保存端口切换命令后需重新启动为网络接入模式准备资源,这些资源在之前的开机启动模块初始化和应用模块初始化可能没有被初始化。重新启动后再次初始化开机启动模块、用户应用模块,以及网络接入模式对应的资源,初始化之后切换数据卡的端口到网络接入模式,网络接入模式存储在数据卡的flash中。
安装了驱动和应用程序之后再次插上数据卡时,数据卡还是初始化开机启动模块、用户应用模块后上报光盘,PC判断驱动和应用程序已安装后通过驱动或应用程序下发端口切换命令指示数据卡切换到用户接入模式,数据卡收到端口切换命令后保存端口切换命令。数据卡保存端口切换命令后需重新启动为网络接入模式准备资源,重新启动后再次初始化开机启动模块、用户应用模块,以及网络接入模式对应的资源,初始化之后切换数据卡到网络接入模式,网络接入模式存储在数据卡的flash中。数据卡需要经历两次Boot阶段开机启动模块的初始化,两次网络接入阶段用户应用模块的初始化,才能正常的使用数据卡。
本发明实施例一提供的一种数据卡的端口上报方法的一个实施例,如图2所示,数据卡上电后,包括:
步骤S201,在boot阶段初始化开机启动模块和光盘上报处理模块;
开机启动模块指在boot阶段运行用于启动数据卡的基本模块,但不包括实现数据卡功能的相关的如射频模块、网络接入模块等用户应用模块,具体包括哪些基本模块根据产品具体实现有所不同,现有技术中可以包括内存、flash、电源管理芯片等。
光盘上报处理模块用于在boot阶段运行以向终端上报数据卡为光盘以及与终端进行交互并实现光盘的读取,包括:USB内核程序,用于实现数据卡在boot阶段将USB端口上报和进行USB基本命令的处理,使PC能枚举USB设备,能与数据卡进行正常的USB交互;处理SCSI命令程序,用于数据卡与终端交互,上报Mass Storage设备为光盘并实现光盘的读取功能。
初始化开机启动模块和光盘上报处理模块的方法具体为:逐个运行开机启动模块和光盘上报处理模块对应的初始化函数。
步骤S202,在boot阶段向终端上报为光盘。
在boot阶段向终端上报为光盘具体包括:运行USB内核程序向终端上报USB端口,并运行处理SCSI命令程序向终端上报一个Mass Storage设备,通过SCSI命令的与终端交互并上报MassStorage设备为光盘。
向终端上报为光盘后,使用终端的用户就可以看到映射成光盘的数据卡。
可见,本发明实施例中,将数据卡在boot阶段初始化开机启动模块和光盘上报处理模块后就上报光盘,而不需要等到boot的开机启动模块和网络接入阶段的用户应用模块均初始化之后再上报光盘,使用终端的用户能尽快的看到数据卡插入后上报成光盘,提高了用户的使用体验。
本发明实施例二提供的一种数据卡的启动方法的一个实施例,如图3所示,包括:
步骤S301,在boot阶段初始化开机启动模块和光盘上报处理模块;
开机启动模块指在boot阶段运行用于启动数据卡的基本模块,但不包括实现数据卡功能的相关的如射频模块、网络接入模块等用户应用模块,具体包括哪些基本模块根据产品具体实现有所不同,现有技术中可以包括内存、flash、电源管理芯片等。
光盘上报处理模块用于在boot阶段运行以向终端上报数据卡为光盘以及与终端进行交互并实现光盘的读取,包括:USB内核程序,用于实现数据卡在boot阶段将USB端口上报和进行USB基本命令的处理,使PC能枚举USB设备,能与数据卡进行正常的USB交互;处理SCSI命令程序,用于数据卡与终端交互,上报Mass Storage设备为光盘并实现光盘的读取功能。
初始化开机启动模块和光盘上报处理模块的方法具体为:逐个运行开机启动模块和光盘上报处理模块对应的初始化函数。
步骤S302,在boot阶段向终端上报为光盘;
在boot阶段向终端上报为光盘具体包括:运行USB内核程序向终端上报USB端口,并运行处理SCSI命令程序向终端上报一Mass Storage设备,通过SCSI命令的与终端交互并上报MassStorage设备为光盘。
步骤S303,在boot阶段接收终端向数据卡下发的端口切换命令;
终端向数据卡下发端口切换命令具体包括:在数据卡为首次插入,数据卡驱动程序和应用程序在终端上没有安装时,终端与数据卡(数据卡映射为光盘)交互并实现数据卡驱动程序和应用程序在终端上的安装,安装完成后,安装程序或应用程序向数据卡下发切换到网络接入模式的切换命令;或,
在数据卡已经在终端上安装时,终端上的安装程序或应用程序向数据卡下发切换到网络接入模式的端口切换命令。
进一步的,步骤S301中还包括在boot阶段初始化端口切换命令模块,端口切换命令模块包括端口切换命令存储程序,用于接收到终端下发的端口切换命令后运行端口切换命令存储程序,并将端口切换命令保存在数据卡中,供网络接入阶段初始化的时候使用。初始化端口切换命令模块的方法具体为:运行端口切换命令模块的初始化函数。
终端与光盘交互并实现数据卡驱动程序和应用程序在终端上的安装,以及安装程序或应用程序向数据卡下发切换到网络接入模式的端口切换命令在现有技术中已可实现,在此不再详述。
步骤S304,在网络接入阶段初始化用户应用模块和数据卡的网络接入模式对应的资源后将数据卡切换到网络接入模式。
数据卡中网络接入模式信息保存在数据卡的flash中,可由运营商确定,在网络接入阶段初始化时根据端口切换命令从数据卡的flash中读取网络接入模式并初始化对应的资源。
用户应用模块包括射频模块、网络接入模块等用于实现数据卡的功能的功能模块。在本发明具体的产品实现中,用户应用模块包含的具体模块可能不一样,甚至只包括一部分相关功能模块,只要能实现本发明的将数据卡切换为网络接入模式。
数据卡的网络接入模式对应的资源包括网络接入模式的端口,比如数据卡的网络接入模式为NDIS(Network Driver Interface Specification,网络驱动接口规范)时,网络接入阶段的初始化就应包括NDIS端口初始化。
初始化用户应用模块和数据卡的网络接入模式对应的资源的方法具体为:运行用户应用模块和数据卡的网络接入模式对应的资源的初始化函数。
在数据卡切换端口为网络接入模式后,用户就可以通过终端看到并使用数据卡提供服务。
数据卡的boot阶段和网络接入阶段分别对应不同的函数,当boot阶段的所有函数执行完后将跳转到网络接入阶段函数的入口,开始网络接入阶段。如何执行boot阶段和网络接入阶段的函数以及如何从boot阶段跳转到网络接入阶段在现有技术中已经可以实现,在此不再详述。
可见,本发明实施例中,将数据卡在boot阶段初始化开机启动模块和光盘上报处理模块后就上报光盘,而不需要等到boot的开机启动模块和网络接入阶段的用户应用模块均初始化之后再上报光盘,使用终端的用户能尽快的看到数据卡插入后上报成光盘,提高了用户的使用体验。同时,数据卡在boot阶段获得端口切换命令,并在网络接入阶段用户应用模块的初始化的同时初始化网络接入模式对应的资源,随后完成端口切换,避免了一次重新启动,提高了用户的使用体验。
本发明实施例三还提供一种数据卡,如图4所示,包括:
Boot单元10,包括开机启动模块初始化函数和光盘上报处理模块初始化函数,用于在boot阶段运行开机启动模块初始化函数和光盘上报处理模块初始化函数初始化开机启动模块和光盘上报处理模块。
开机启动模块指在boot阶段用于启动数据卡的基本模块,但不包括实现数据卡功能的相关的如射频模块、网络接入模块等用户应用模块,具体包括哪些基本模块根据产品具体实现有所不同,现有技术中可以包括内存、flash、电源管理芯片等。
光盘上报处理模块用于在boot阶段运行以向终端上报数据卡为光盘以及与终端进行交互并实现光盘的读取,包括:USB内核程序,用于实现数据卡在boot阶段将USB端口上报和进行USB基本命令的处理,使PC能枚举USB设备,能与数据卡进行正常的USB交互;处理SCSI命令程序,用于数据卡与终端交互,上报Mass Storage设备为光盘并实现光盘的读取功能。
初始化开机启动模块和光盘上报处理模块的方法具体为:逐个运行开机启动模块和光盘上报处理模块对应的初始化函数。
光盘上报处理模块用于在boot阶段运行以向终端上报数据卡为光盘具体包括:光盘上报处理模块运行USB内核程序向终端上报USB端口,并运行处理SCSI命令程序向终端上报一Mass Storage设备,通过SCSI命令的与终端交互并上报MassStorage设备为光盘。
进一步的,boot单元还包括端口切换命令模块初始化函数,用于在boot阶段运行所述端口切换命令模块初始化函数初始化端口切换命令模块,端口切换命令模块包括端口切换命令存储程序,用于接收到终端下发的端口切换命令后运行端口切换命令存储程序,并将端口切换命令保存在数据卡中。
初始化端口切换命令模块的方法具体为:运行端口切换命令模块初始化函数。
终端向数据卡下发端口切换命令具体包括:在数据卡为首次插入,数据卡驱动程序和应用程序在终端上没有安装时,终端与数据卡(数据卡映射为光盘)交互并实现数据卡驱动程序和应用程序在终端上的安装,安装完成后,安装程序或应用程序向数据卡下发切换到网络接入模式的切换命令;或,
在数据卡已经在终端上安装时,终端上的安装程序或应用程序向数据卡下发切换到网络接入模式的端口切换命令。
进一步的,数据卡还包括网络接入单元20,用于在网络接入阶段初始化用户应用模块和数据卡的网络接入模式对应的资源后将数据卡切换到所述网络接入模式,所述用户应用模块包括用于实现数据卡的功能的功能模块。
数据卡中网络接入模式信息保存在数据卡的flash中,可由运营商确定,在网络接入阶段初始化时根据端口切换命令从数据卡的flash中读取网络接入模式并初始化对应的资源。
用户应用模块包括射频模块、网络接入模块等用户可应用的功能模块。
初始化用户应用模块和数据卡的网络接入模式对应的资源的方法具体为:运行用户应用模块和数据卡的网络接入模式对应的资源的初始化函数。
在数据卡切换端口为网络接入模式后,用户就可以通过终端看到,并使用数据卡提供服务。
可见,本发明实施例中,数据卡在boot阶段初始化开机启动模块和光盘上报处理模块后就上报光盘,而不需要等到boot的开机启动模块和网络接入阶段的用户应用模块均初始化之后再上报光盘,使用终端的用户能尽快的看到数据卡插入后上报成光盘,提高了用户的使用体验。同时,数据卡在boot阶段获得端口切换命令,并在网络接入阶段用户应用模块初始化的同时初始化网络接入模式对应的资源,随后完成端口切换,避免了一次重新启动,提高了用户的使用体验。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。