4.3.3 Completion Codes - 图1

    意译:

    代码 (二进制) 含义 (助记符) 描述/触发条件
    0000 NOERROR 处理成功,无错误。
    0001 CRC 从端点收到的数据包存在CRC校验错误。
    0010 BITSTUFFING 从端点收到的数据包存在位填充违规。
    0011 DATATOGGLEMISMATCH 从端点收到的数据包,其数据交替位(Data Toggle PID)与预期值不匹配。
    0100 STALL 端点返回了STALL握手包,传输被停止。
    0101 DEVICENOTRESPONDING 设备无响应(对IN令牌)或未提供握手包(对OUT事务)。
    0110 PIDCHECKFAILURE 从端点收到的数据包的PID校验位错误。
    0111 UNEXPECTEDPID 收到了无效或未定义的PID。
    1000 DATAOVERRUN 端点返回的数据量超过允许的最大包长剩余缓冲区大小
    1001 DATAUNDERRUN 端点返回的数据少于最大包长,且不足以填满指定缓冲区(对于等时或中断传输,这不是错误,表示数据结束)。
    1100 BUFFEROVERRUN 主机端错误)在IN传输中,HC从USB总线接收数据的速度快于其写入系统内存的速度。
    1101 BUFFERUNDERRUN 主机端错误)在OUT传输中,HC从系统内存读取数据的速度跟不上USB总线的数据速率。
    111x NOT ACCESSED 此代码由软件在TD提交给HC处理之前设置,表示该TD尚未被HC访问和处理。

    这个表格是用于解读TD(传输描述符)处理结果的状态码字典。当主机控制器(HC)处理完一个TD后,会在该TD的ConditionCode字段填入一个4位代码,以指示该次传输的最终结果。软件通过读取此代码来判断传输是否成功或具体发生了什么错误。