信息处理装置及其控制方法_3

文档序号:9326632阅读:来源:国知局
201接收到中断通知时,由于在步骤S305中的确定,CPU 201确定发生了数据接收,处理进行到步骤S307,取消在USB功能控制器215上设置的NAK响应,并且取消在NAK响应的设置期间的数据接收中断设置。这由图6的附图标记610指示。
[0051]接下来,为了因针对数据608接收到NAK 609而进行失败发送重试,PC 101发送PING包611以进行针对打印机装置102的响应准备确认。此时,由于打印机装置102当前处于通过步骤S307中的处理,打印机装置102能够进行响应的状态,因此打印机装置102返回ACK 612。注意,此时,如果在PING包611的发送之前没有进行步骤S307中的设置处理,则返回NAK。在这种情况下,PC 101再度发送PING包,直到PC 101从打印机装置102接收ACK为止。
[0052]以这种方式,为了重试发送之前在发送期间失败的数据608,接收到ACK 612的PC101发送输出包613和数据614。此时,由于打印机装置102能够接收数据614,因此打印机装置102返回ACK 615。其后,在打印数据继续的情况下,PC 101发送输出包616和数据617,并且通过返回ACK 618,打印机装置102变得能够继续打印处理。
[0053]如上所述,根据该处理,当打印机装置试图转变到睡眠状态时,即使在针对USB接口设置NAK响应之前PC发送打印数据的情况下,也能够执行打印,而打印数据不会消失。
[0054]根据如上所述的第一实施例,即使在当打印机装置试图转变到睡眠状态时PC发送打印数据的情况下,也能够执行打印,而打印数据不会消失。
[0055](第二实施例)
[0056]接下来,说明本发明的第二实施例。在上述第一实施例中,给出了如下示例的说明,即,当在打印机装置102被设置为进行NAK响应之后PC 101在预定时间段内发送打印数据时,由于针对NAK响应期间的数据接收中断的设置,CPU 201能够接收打印数据。
[0057]与之相对,在第二实施例中,将给出如下示例的说明,在该示例中,即使当打印机装置102正在转变到睡眠状态同时从PC 101发送打印数据,打印数据也不消失,其中仅进行NAK响应的设置,而不进行针对NAK响应期间的数据接收中断设置。注意,由于根据第二实施例的打印机装置102的结构与上述第一实施例相同,因此将省略对其说明。
[0058]图7是用于描述根据第二实施例的打印机装置102到睡眠状态的转变处理的流程图。注意,通过CPU 201执行展开到RAM 204中的程序来实现流程图所例示的处理。流程图所例示的处理是在打印机装置102转变到电力消耗被减少的睡眠状态的情况下的处理。
[0059]首先,在步骤S701中,CPU 201确认是否从PC 101接收到打印数据。然后在步骤S702中,如果CPU 201确定在预定时间段内未从PC 101接收到打印数据或控制数据,则处理进行到步骤S703。基于在步骤S702中做出的确定,如果确定接收到了数据,则处理返回步骤S701。然而,在这种情况下,SOF包不被确定为数据。在步骤S703中,CPU 201设置USB功能控制器215,以当接收到数据时进行NAK响应设置。接下来,处理进行到步骤S704,并且CPU 201确定紧接进行了步骤S703中的NAK响应设置之前是否发生了数据接收。在步骤S704中,如果CPU 201确定没有发生数据接收,则处理进行到步骤S705,CPU 201继续用于转变到睡眠状态的处理,此后打印机装置102转变到电力消耗被减少的睡眠状态。
[0060]另一方面,在步骤S704的确定中CPU 201确定紧接NAK响应设置处理完成之前发生了数据接收的情况下,处理进行到步骤S706,并且CPU201取消在USB功能控制器215上的NAK响应设置。通过执行步骤S706中的处理,打印机装置102再度能够从PC 101接收打印数据,并且能够重新开始打印处理。
[0061]接下来,将参照图8给出在进行在图7的流程图中说明的步骤S701-〉步骤S702-〉步骤S703-〉步骤S704-〉步骤S705的处理的情况下,在PC 101与打印机装置102之间进行的USB通信序列的流程的说明。
[0062]图8是说明从根据第二实施例的PC 101向打印机装置102发送SOF包的示例的序列图。
[0063]在此,由于没有要由PC 101发送给打印机装置102的打印数据,因此周期性地发送SOF包801和802。由于接收的包仅是SOF包,并且没有数据包,因此在步骤S702中打印机装置102的CPU 201确定在预定时间段内没有数据接收。在图8的步骤S803中,CPU201设置USB功能控制器215以进行NAK响应,并且执行图7的步骤S703中的处理。其后,由于不存在打印数据,PC 101以规律的间隔发送SOF包804和805。因此,在步骤S704中,打印机装置102的CPU 201确定紧接NAK设置处理之前没有发生数据接收,处理进行到步骤S705,并且打印机装置102转变到睡眠状态。这由图8的806指示,并且由于打印机装置102变得对PC 101不可见,因此停止SOF包的发送。
[0064]接下来,将参照图9给出在进行图7的流程图中步骤S701-〉步骤S702_>步骤S703-〉步骤S704-〉步骤S706的处理的情况下,在PC 101与打印机装置102之间经由USB进行的通信处理的流程的说明。这是对当PC 101在紧接设置了 NAK响应之前发送打印数据时的情况的说明。
[0065]图9是用于说明紧接根据第二实施例的打印机装置102设置NAK响应之前,打印数据被发送给打印机装置102的示例的序列图。
[0066]首先,由于没有要由PC 101发送给打印机装置102的打印数据,因此周期性地发送SOF包901和902。由于接收的包仅是SOF包,并且没有数据包,因此在步骤S702中打印机装置102的CPU 201确定在预定时间段内没有数据接收。当CPU 201进行处理以执行步骤S703中的处理时,当PC 101发送打印数据时,打印机装置102接收打印数据的头。换言之,当PC 101将输出包903和数据904发送给打印机装置102时,尚未完成步骤S703中的处理的打印机装置102接收数据904并回复ACK 905。在这种情况下,由于USB功能控制器215以ACK 905来响应,因此CPU 201不知道已接收了数据904。
[0067]接下来,在906中,在数据接收中断到达CPU 201之前,存在步骤S703中的处理被执行的定时。在此,由于PC 101已接收到ACK 905,因此PC 101继续试图发送打印数据,并且PC 101发送输出包907和数据908。此时,由于在步骤S703的处理中针对数据接收设置了 NAK响应,因此打印机装置102回复NAK 909。然后,在与之接近的定时,由数据904的接收引起的中断到达CPU 201。以这种方式,当CPU 201接收到中断通知时,由于步骤S704中的确定,CPU 201确定已发生了数据接收,处理进行到步骤S706中的处理,并且取消针对USB功能控制器215的NAK响应设置。这由图9中的附图标记910指示。
[0068]另一方面,由于PC 101接收到NAK 909,因此进行针对数据908的失败发送的重试。然后,首先发送PING包911以确认对打印机装置102的响应的准备。此时,由于打印机装置102当前处于能够通过步骤S706中的处理进行响应的状态,因此打印机装置102返回ACK 912。注意,此时,如果步骤S706中的设置处理没有在PING包911的发送之前发生,则返回NAK。在这种情况下,PC 101再度发送PING包,直到PC 101从打印机装置102接收至IJACK为止。以这种方式,为了进行之前发送失败的数据908的重试发送,接收到ACK 912的PC 101发送输出包913和包914。此时,由于打印机装置102能够接收数据914,因此打印机装置102返回ACK 915。其后,在打印数据继续的情况下,PC 101发送输出包916和数据917,打印机装置102返回ACK 918,并且打印机装置102变得能够继续打印处理。
[0069]接下来,将参照图10给出在进行图7的流程图中步骤S701-〉步骤S702_>步骤S703-〉步骤S704-〉步骤S705的处理的情况下,在PC 101与打印机装置102之间经由USB进行的通信处理的流程的说明。这是对当PC 101在设置了 NAK响应之后发送打印数据时的通信序列的情况的说明。
[0070]图10是用于说明通信序列的示例的序列图,该通信序列用于说明如下的示例,在该示例的情况下,在根据第二实施例的打印机装置102设
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1