数据处理系统处理数据的方法技术方案

技术编号:2864808 阅读:143 留言:0更新日期:2012-04-11 18:40
一种数据处理系统处理数据的方法,其包含下列步骤:    (a)当一USB主机控制器驱动程序接收到一过滤器驱动程序传来的一请求组时,该USB主机控制器驱动程序根据该请求组向一USB装置索取一笔USB数据;    (b)若该USB主机控制器驱动程序根据该请求组接收到该笔USB数据,则该USB主机控制器驱动程序依据该请求组及该笔USB数据产生一合并数据,再将该合并数据传至该过滤器驱动程序;否则该USB主机控制器驱动程序先将该请求组标注为具有传输错误,再将传输错误发生前所收到的正确数据与该标注为具有传输错误的请求组一起传输至该过滤器驱动程序;    (c)若该过滤器驱动程序由该USB主机控制器驱动程序接收到该合并数据,则该过滤器驱动程序将该合并数据传至一USB装置驱动程序;若该过滤器驱动程序由该USB主机控制器驱动程序接收到该标注为具有传输错误的请求组,则该过滤器驱动程序更新该请求组并将该更新后的请求组传至该USB主机控制器驱动程序;以及    (d)当该USB装置驱动程序接收到的合并数据的笔数达到一预定数目时,则由该USB装置驱动程序输出该多笔合并数据。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及一种处理USB数据的方法,特别是涉及一种以过滤器驱动程序处理USB数据以弥补传输错误的方法。
技术介绍
通用序列总线(universal serial bus,USB)接口是非常普遍的计算机有线数字讯号通讯接口连接标准,一般计算机标准的连接接口中,均提供至少一个标准的USB Series“A”阴连接头。任何一具有USB标准规格接口的外设装置,例如一台具有一标准USB Series“A”阳连接头的USB鼠标,或一具有USB标准规格的接口的数字摄影机,可连接任何一台具有USB标准规格的Series“A”阴连接头的PC,以USB规格版本1.1或2.0的数字讯号互相传递数据。因有传输速率较高及随插即用等优点,市场上具有USB标准规格接口的产品非常众多且成为普遍的趋势,常见的如外接式USB闪速存储卡,外接式硬盘,及USB扫瞄器等。这当中有些是随机存取装置,有些则不是;前者如USB储存装置,后者则如USB扫瞄器。当USB装置在存取数据时发生如Timeout,CRC,Bad PID等情况时,USB主机则无法从USB装置收到正确而有效的数据,像这类的情况称之为发生传输错误(Transaction Error)。在这种情况下,USB主机控制器驱动程序向USB装置要求索取的数据无法全数得到,而只能得到部份正确有效的数据,然而有些USB装置驱动程序会丢弃所收到的部份正确数据,并且传送一错误讯息给上层的应用程序,应用程序的要求即告失败。请参阅图1。图1为已知技术的USB软件分层示意图,其中11为一应用程序,12为一USB装置驱动程序,14为一USB主机控制器驱动程序,15为一USB装置。当应用程序11向USB装置15要求存取数据时,此要求由应用程序11送至USB装置驱动程序12,USB装置驱动程序12将此要求转译成为多个请求组R1,R2,…,及Rn,每个请求组中包含一IRP(I/O requestpacket),一URB(USB request block,以及一IO_STACK_LOCATION(location ofthe current filter driver stack),并将该多个请求组逐一传至USB主机控制器驱动程序14。当USB主机控制器驱动程序14收到一由USB装置驱动程序12传来的请求组时,USB主机控制器驱动程序14会根据该请求组向USB装置15索取一笔相对应的USB数据。USB主机控制器驱动程序14自USB装置15在取得该笔USB数据后,将该笔USB数据连同该请求组一起传给USB装置驱动程序12,USB装置驱动程序12在接收到一预定数目的请求组及其相对应的USB数据后,输出该多个请求组及相对应的USB数据至应用程序11当USB装置15为一非随机存取装置如USB扫瞄器时,若USB扫瞄器15在存取一请求组Rm相对应的数据时发生传输错误,而只成功取得此请求组Rm所要求的数据的部份数据,例如前三分之一长度的数据,则USB主机控制器驱动程序14将USB装置驱动程序12传来的请求组Rm标注为具有传输错误的请求组Rm1,并联合已成功取得的Rm所要求的数据的前三分之一部份,一起传至USB装置驱动程序12。面对此标注为具有传输错误的请求组Rm1及仅三分之一的Rm所对应的USB数据,USB装置驱动程序12有两种可能的做法一是下达重试的指令给USB主机控制器驱动程序14,要求USB主机控制器驱动程序14重新向USB扫瞄器15索取请求组Rm所对应的数据;然而由于USB扫瞄器15不是一随机存取装置,因此无法再次取得之前已成功取得的请求组Rm所对应的前三分之一的数据,而仅能得发生传输错误点之后的数据;第二种做法是直接放弃此发生传输错误的请求组Rm,但如此则原本应用程序11向USB扫瞄器15要求存取数据则宣告失败,例如一图像处理程序原本要求一USB扫瞄器扫瞄一图形,然在扫瞄至图形中间某一行时发生错误并且放弃这一行的图像数据,则此图形的扫瞄即无法完整而告失败。由此可看出一旦发生传输错误,则不论怎么处理,在现行的USB规格架构下,都会丧失部份数据而使得应用程序对于一非随机存取USB装置的存取的要求无法成功,在发生传输错误之前所得的所有数据也全部白费。
技术实现思路
因此本专利技术提出一种以过滤器驱动程序处理USB数据的方法,利用在现行的USB装置驱动程序及USB主机控制器驱动程序中加入一过滤器驱动程序,以在某请求组发生传输错误时,暂存USB主机控制器驱动程序传来的部份的正确数据,并要求USB主机控制器驱动程序取得该请求组所对应的USB数据中尚未取得的部份,合并为完整的该请求组所对应的USB数据后由过滤器驱动程序传送给USB装置驱动程序,以克服上述已知技术中的问题。为此本专利技术披露了一种,其包含当一应用程序传送一请求至一USB装置驱动程序,该USB装置驱动程序将该请求转译成为多个请求组并逐一传至一过滤器驱动程序,该过滤器驱动程序再将该USB装置驱动程序传来的请求组传送至一USB主机控制器驱动程序,该USB主机控制器驱动程序根据此由过滤器驱动程序传来的请求组向一USB装置索取一笔相对应的USB数据;若该USB主机控制器驱动程序根据该请求组接收到该笔USB数据,则该USB主机控制器驱动程序联合该请求组及该笔USB数据产生一合并数据,再将该合并数据传至该过滤器驱动程序;否则该USB主机控制器驱动程序先将该请求组标注为具有传输错误,再将传输错误发生前所收到的正确数据与该标注为具有传输错误的请求组一起传输至该过滤器驱动程序;若该过滤器驱动程序由该USB主机控制器驱动程序接收到该合并数据,则该过滤器驱动程序将该合并数据传至一USB装置驱动程序;若该过滤器驱动程序由该USB主机控制器驱动程序接收到该标注为具有传输错误的请求组,则该过滤器驱动程序更新该请求组并将该更新后的请求组传至该USB主机控制器驱动程序,该USB主机控制器驱动程序再依据此更新后的请求组向该USB装置索取相对应的数据,成功取得数据后再传至该过滤器驱动程序;该过滤器驱动程序会将各次所收到的正确数据组合起来,与该USB装置驱动程序传至该过滤器驱动程序的请求组产生一合并数据并传至该USB装置驱动程序。附图说明图1为已知技术的USB软件分层示意图;和图2为本专利技术的USB软件分层示意图。附图符号说明11,21应用程序12,22USB装置驱动程序23过滤器驱动程序 14,24USB主机控制器驱动程序具体实施方式请参阅图2。图2为本专利技术的USB软件分层示意图,其中21为一应用程序,22为一USB装置驱动程序,24为一USB主机控制器驱动程序,25为一USB装置,而23为本专利技术中新加入的过滤器驱动程序。在本专利技术中,例如应用程序21为一图像处理程序,而USB装置25为一USB扫瞄器时,当图像处理程序21向USB扫瞄器25要求存取数据,此要求由图像处理程序21送至USB装置驱动程序22,USB装置驱动程序22将此要求转译成为多个请求组R1,R2,…,及Rn,每个请求组中包含一IRP,一URB,以及一IO_STACK_LOCATION,并将该多个请求组逐一传至过滤器驱动程序23。当过滤器驱动程序23收到一由USB装置驱动程序22传来的请求组Rk时,过滤器驱动程序23会暂存请求组Rk中本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种数据处理系统处理数据的方法,其包含下列步骤(a)当一USB主机控制器驱动程序接收到一过滤器驱动程序传来的一请求组时,该USB主机控制器驱动程序根据该请求组向一USB装置索取一笔USB数据;(b)若该USB主机控制器驱动程序根据该请求组接收到该笔USB数据,则该USB主机控制器驱动程序依据该请求组及该笔USB数据产生一合并数据,再将该合并数据传至该过滤器驱动程序;否则该USB主机控制器驱动程序先将该请求组标注为具有传输错误,再将传输错误发生前所收到的正确数据与该标注为具有传输错误的请求组一起传输至该过滤器驱动程序;(c)若该过滤器驱动程序由该USB主机控制器驱动程序接收到该合并数据,则该过滤器驱动程序将该合并数据传至一USB装置驱动程序;若该过滤器驱动程序由该USB主机控制器驱动程序接收到该标注为具有传输错误的请求组,则该过滤器驱动程序更新该请求组并将该更新后的请求组传至该USB主机控制器驱动程序;以及(d)当该USB装置驱动程序接收到的合并数据的笔数达到一预定数目时,则由该USB装置驱动程序输出该多笔合并数据。2.如权利要求1所述的方法,其在步骤(d)中,该USB装置驱动程序是将该多笔合并数据输出至一应用程序。3.如权利要求1所述的方法,其在步骤(c)中,若该过滤器驱动程序由该USB主机控制器驱动程序接收到该标注为具有传输错误的请求组,则记录该请求组对应的USB数据发生传输错误的次数。4.如权利要求1所述的方法,其中该请求组包含一IRP(I/O requestpacket),一URB(USB request block)以及一IO_STACK_LOCATION(location ofthe current filter driver stack)。5.如权利要求4所述的方法,其还包含(e)由一应用程序传送一请求至该USB装置驱动程序;(f)该USB装置驱动程序将该请求转译成为多个请求组;(g)由该USB装置驱动程序将该多个请求组逐一传至该过滤器驱动程序;以及(h)由该过滤器驱动程序将该USB装置驱动程序传来的请求组传送至该USB主机控制器驱动程序。6.如权利要求5所述的方法,其还包含(i)当该过滤器驱动程序接收到由该USB装置驱动程序传来的一请求组时,暂存该请求组中的IRP(I/O request packet),URB(USB request block),IO_STA...

【专利技术属性】
技术研发人员:唐文蔚
申请(专利权)人:扬智科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利